功能名称后的空格有误吗?

sup*_*lle 37 javascript

我正在使用JSLint,我在函数名后添加一个空格时出错.为什么那么糟糕?

function coolness () {
    var hi = "this";
}
Run Code Online (Sandbox Code Playgroud)

错误:第1行的问题19:"冷静"和"(')之间的意外空间.

seb*_*eli 50

据克罗克福德说,

对于命名函数,请勿在函数名和括号之间插入空格:

function doStuff() {
  //stuff here
}
Run Code Online (Sandbox Code Playgroud)

对于匿名函数,DO在function关键字和括号之间插入空格:

function () {
  //stuff here
}
Run Code Online (Sandbox Code Playgroud)

  • 恕我直言(和Crockford's)这使得这两种功能更容易区分.我认为坚持Crockford的规则,即使你自然不是一个好主意,因为它们使用JSLint是一致且可验证的.它们是Javascript的事实上的代码样式规则.除非你有充分的理由使用不同的东西,否则我不会.(并且不同意Crockford,因为你总是以另一种方式编码并不是一个很好的理由) (25认同)
  • @DavidJames我发现它更像是一致性问题.如果你在"if"和"for"和"while"之后添加一个空格,你应该在"function"之后放一个空格. (10认同)
  • 克罗克福德的基本原理:"如果省略空间,那么看起来功能的名称就是功能,这是一个不正确的读数." 我发现这没有说服力.这会困扰任何人吗?它会导致错误吗? (4认同)
  • @rjmunro +1 - 评论.它目前是页面上唯一一个"解释为什么不好"的地方(没有简单地教条地重复约定规则). (3认同)
  • 这并不难。在 function 关键字后放置一个空格。时期。 (3认同)

Int*_*ang 44

JSLint不是Javascript语法检查器,因为它是Javascript样式检查器.它使用的风格指南是道格拉斯克罗克福德写的.

有些人不同意他的风格决定,有些人则这样做.它们不是法律,您不需要遵守它们.替代JS棉短绒如JSHint存在.

您正在运行到特定的规则是在这里:

函数名称与其参数列表的(左括号)之间不应有空格.

Javascript不是对空格敏感的.如果它让你感觉更好,你可以添加这个空间.(但这不是标准的.)


Bog*_*san 12

请检查下面的javascript代码会话,你会找到你的答案.

http://crockford.com/javascript/code.html#function

函数名称和参数列表的(左括号)之间应该没有空格.在(右括号)和开始语句体的{(左大括号)之间应该有一个空格.身体本身缩进了四个空格.}(右大括号)与包含函数声明开头的行对齐.

函数示例:

function outer(c, d) {
    var e = c * d;

    function inner(a, b) {
        return (e * a) + b;
    }

    return inner(0, 1);
 }
Run Code Online (Sandbox Code Playgroud)

匿名函数示例:

div.onclick = function (e) {
    return false;
};
Run Code Online (Sandbox Code Playgroud)