给定以下代码:
var fn = function () {
var x = 'x',
y = 'y';
this.a = 'a',
this.b = 'b',
this.c = 'c';
this.d = 'd',
this.e = 'e';
}
可以看出,两者兼而有之。
使用一个或另一个的好处是什么?
我的理解是,分号是语句的结尾。并且应该使用逗号将多个声明串在一起。
那么,在这个例子中应该只有两个分号,这样说安全吗?
var fn = function () {
var x = 'x',
y = 'y';
this.a = 'a',
this.b = 'b',
this.c = 'c',
this.d = 'd',
this.e = 'e';
}
发布于 2013-03-19 04:02:52
逗号运算符是可以在表达式中使用的运算符。它用于分离出多个不同的表达式,其含义是“计算以下所有表达式,然后生成最终表达式的值”。例如:
a = 1, b = 2, c = 3
表示“计算a = 1
,然后是b = 2
,然后是c = 3
,然后计算为表达式c = 3
的值。
分号不是运算符,不能在表达式中使用。它用作JavaScript语法的一部分,用于标记被视为语句的表达式的结尾。例如,你可以说
a = 1; b = 2; c = 3;
这意味着“有三个语句要按顺序执行:计算第一个表达式作为第一个语句,第二个表达式作为第二个语句,第三个表达式作为第三个语句”。
在这一点上,两者并不是完全可以互换的。例如,您不能编写
var a = 1, var b = 2;
因为var a = 1
和var b = 2
是语句,而不是表达式,因此不能用逗号分隔。在这里你必须使用分号。
(注:你可以说
var a = 1, b = 2;
因为该语言特别允许使用逗号作为声明语句语法的一部分。在这里,逗号不用作运算符。)
同样的,你也不能说
a = (b = 1; c = 2);
因为在这里,表达式的右侧必须是一个表达式,而不是语句,并且使用;
来分隔语句。内部的分号必须是逗号。(话又说回来,这段代码在一开始就相当笨拙和不寻常,所以您可能根本不应该这样做!)
从风格的角度来看,逗号运算符很少使用,而且足够晦涩,可能会让相当称职的JavaScript程序员绊倒。因此,我强烈建议不要使用它,而是遵循JavaScript中关于使用分号终止语句的既定约定,即使使用逗号分隔每个用作语句的表达式在语法上是合法的,也是等效的。
希望这能有所帮助!
发布于 2013-03-19 03:59:43
最好始终保持与约定一致。要么全是分号,要么全是逗号,我肯定你更喜欢使用分号,而不是到处都是逗号。
也没有速度增益,所以没什么好担心的。
https://stackoverflow.com/questions/15485735
复制相似问题