JavaScript函数后面的空格

16
我知道在JavaScript中空格是不相关的,但我很好奇样式方面的问题。
例如定义函数时:
function Foo(a, b, c) {}

我在函数名后面不加空格。但是,如果我将函数创建为表达式:

Bar(function (a, b, c) {
    // do something
})
或者
{
    Foo: function (a, b, c) {
        // do something
    }
}
我发现自己在输入函数时自然会打一个空格。我想这是因为我训练自己在函数关键字(或通常的关键字)后立即键入空格。然而,根据上下文,空格可能看起来很尴尬。哪个更有意义?大多数人做什么?
如果此前已经有人问过,请见谅,我没有看到相关内容。

正如你所说,这并不相关,也没有实际建设性。这只是一个选择的问题!这种类型的问题并不适合在StackOverflow上讨论,因为它只会引发个人偏好的争论。 - James Allardice
3
我关心的只有:http://javascript.crockford.com/code.html - Diodeus - James MacFarlane
我刚刚注意到Sublime Text 3的默认JS语法高亮仅在函数和(...)之间有空格时才着色函数参数。 - northamerican
1
函数名后面的空格错误 还是开放的时候,为什么这个问题被标记为“不具建设性”? - Dan Dascalescu
4个回答

23
我也是这样做的。
function () { ... }
function name() { ... }

按照我的理解,这种写法更合理。在function关键字后面加上空格会使代码更易读(我在处理ifwhile等语句时也是这样做的),而不把空格放在函数名后面也是有道理的,因为通常在调用函数时不加空格。


仅仅因为我的个人偏好与你的评论相似:我在定义函数名后放置一个空格,在调用函数时不加空格,这样我可以立即看到function关键字的用途(由于某种原因,我发现这可能会导致一些混乱)。 - Nicolas Le Thierry d'Ennequin
更好的答案在函数名后面的空格是错误的吗? - Dan Dascalescu

5

这是个人偏好问题。毫无疑问,适当的间距有助于阅读性,这总是一个好主意。

但是,当涉及到 JavaScript编码风格 时,重要的是始终将起始花括号放在同一行(由于自动分号插入),不像:

function myFunc() 
{
    return
    {
        name: 'Jane'
    };
}

var f = myFunc();
console.log(f); // undefined

阅读更多:


0
我的建议:
如果()是函数调用运算符,不要在它前面加空格。在所有其他情况下,在它前面加一个空格。
function f ( x ) {
    // ...
}

var g = function ( y ) {
    // ...
};

f( 1 );
g( 2 );

这样,您可以更轻松地识别调用运算符。


21
我觉得这真的很难读。有太多空白了。我会把 ( 后面和 ) 前面的间距去掉。 - J. K.

0

我同意,在编写 Javascript 时,我希望我的代码尽可能地易读性强。我发现在关键字之间加入空格有助于让代码更易于阅读。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接