The*_*Man 57 javascript syntax
给出以下代码
var fn = function () {
var x = 'x',
y = 'y';
this.a = 'a',
this.b = 'b',
this.c = 'c';
this.d = 'd',
this.e = 'e';
}
Run Code Online (Sandbox Code Playgroud)
你可以看到两者兼而有之.
使用其中一个会有什么好处?
我的理解是分号是结束声明的.并且逗号应该用于将多个声明串起来.
那么说这个例子那么应该只有两个分号是安全的吗?
var fn = function () {
var x = 'x',
y = 'y';
this.a = 'a',
this.b = 'b',
this.c = 'c',
this.d = 'd',
this.e = 'e';
}
Run Code Online (Sandbox Code Playgroud)
tem*_*def 78
逗号运算符是可以在表达式中使用的运算符.它用于分离多个不同的表达式,其含义是"计算以下所有表达式,然后生成最终表达式的值".例如:
a = 1, b = 2, c = 3
Run Code Online (Sandbox Code Playgroud)
指"评估a = 1,然后b = 2,然后c = 3,然后评估对表达式的值c = 3.
分号不是运算符,不能在表达式中使用.它用作JavaScript语法的一部分,用于标记被视为语句的表达式的结尾.例如,你可以说
a = 1; b = 2; c = 3;
Run Code Online (Sandbox Code Playgroud)
这意味着"有三个语句按顺序执行:将第一个表达式计算为第一个语句,将第二个表达式计算为第二个语句,将第三个表达式计算为第三个语句."
在这方面,两者并不是完全可以互换的.例如,你不能写
var a = 1, var b = 2;
Run Code Online (Sandbox Code Playgroud)
因为var a = 1和var b = 2是语句,而不是表达式,因此不能用逗号分隔.你必须在这里使用分号.
(注意:你可以说
var a = 1, b = 2;
Run Code Online (Sandbox Code Playgroud)
因为该语言特别允许使用逗号作为声明语句的语法的一部分.这里,逗号不用作运算符.)
同样,你不能说
a = (b = 1; c = 2);
Run Code Online (Sandbox Code Playgroud)
因为这里表达式的右侧必须是表达式,而不是语句,并且;用于分隔语句.内部分号必须是逗号.(然后,这个代码首先非常尴尬和不寻常,所以你可能根本不应该这样做!)
从风格角度来看,逗号运算符很少被使用,并且模糊不清以至于它可能会使合理的JavaScript编码器绊倒.因此,我强烈建议不要使用它,而是遵循JavaScript中关于使用分号来终止语句的既定约定,即使使用逗号分隔出每个用作语句的表达式在语法上是等同的和语法上的.
希望这可以帮助!
gdo*_*ica 31
不,逗号有三个含义.
var每个变量之前.两个例子;
alert((2,3)); //3
Run Code Online (Sandbox Code Playgroud)
请注意,var语句中的逗号不是逗号运算符,因为它在表达式中不存在.相反,它是var语句中的一个特殊字符,它将多个组合成一个.实际上,该逗号的行为几乎与逗号运算符相同.
Jiv*_*ngs 10
这没关系.据我所知,使用逗号没有速度优势.
只要用你喜欢的任何东西:)
这就是JavaScript - The Good Parts所说的:
逗号运算符可能导致过于棘手的表达式.它还可以掩盖一些编程错误.
JSLint期望看到逗号用作分隔符,但不能用作运算符(for语句的初始化和增量部分除外).它不期望在数组文字中看到省略元素.不应使用额外的逗号.逗号不应出现在数组文字或对象文字的最后一个元素之后,因为它可能被某些浏览器误解释.
| 归档时间: |
|
| 查看次数: |
15252 次 |
| 最近记录: |