给定以下代码:
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';
}
4条答案
按热度按时间qv7cva1a1#
逗号运算符是可在表达式中使用的运算符。它用于分隔多个不同的表达式,其含义是“计算以下所有表达式的值,然后生成最终表达式的值”。例如:
表示“先求
a = 1
的值,然后求b = 2
的值,再求c = 3
的值,然后求表达式c = 3
的值。分号不是运算符,不能在表达式中使用。它用作JavaScript语法的一部分,用于标记被视为语句的表达式的结尾。例如,您可以说
这就意味着“有三个语句要按顺序执行:将第一个表达式作为第一个语句求值,将第二个表达式作为第二个语句求值,将第三个表达式作为第三个语句求值。
在这方面,这两个词是不能完全互换的。例如,你不能写
因为
var a = 1
和var b = 2
是语句,而不是表达式,因此不能用逗号分隔,在这里你必须使用分号。(注意:你可以说
因为语言特别允许逗号作为声明语句语法的一部分,这里逗号不用作运算符。)
同样,你不能说
因为这里表达式的右边必须是表达式,而不是语句,并且
;
用于分隔语句,所以内部的分号必须是逗号。(再说一遍,这段代码一开始就非常笨拙和不寻常,所以你可能根本不应该这样做!)从风格的Angular 来看,逗号操作符很少使用,而且很难理解,可能会让相当称职的JavaScript程序员犯错误。因此,我强烈建议不要使用它,而是遵循JavaScript中关于使用分号终止语句的既定约定,即使使用逗号分隔用作语句的表达式在语法上是等效和法律的的。
44u64gxh2#
不逗号有三种意思。
1.对于变量声明,它只允许您省略每个变量前面的
var
。1.对于表达式,“逗号运算符计算其两个操作数(从左到右),并返回第二个操作数的值。"
1.在函数声明和函数调用中分离参数,但这对每个程序员来说都应该是显而易见的。
示例2;
注意,var语句中的逗号不是逗号操作符,因为它不存在于表达式中。相反,它是var语句中的一个特殊字符,用于将多个var语句合并为一个。实际上,逗号的行为与逗号操作符几乎相同。
MDN
When is the comma operator useful?
nhn9ugyo3#
这真的不重要。据我所知,使用逗号对速度没有任何好处。
就用你喜欢的:)
这就是 JavaScript - The Good Parts 的意思:
逗号运算符可能导致表达式过于复杂,它还可能掩盖一些编程错误。
JSLint希望看到逗号用作分隔符,而不是用作运算符(for语句的初始化和增量部分除外)。它不希望看到数组文本中的省略元素。不应使用额外的逗号。逗号不应出现在数组文本或对象文本的最后一个元素之后,因为它可能会被某些浏览器误解。
qybjjes14#
最好始终保持与约定一致。要么全部使用分号,要么全部使用逗号,我敢肯定您更喜欢在任何地方使用分号而不是逗号。
也没有速度增益,所以没有什么可担心的。