2012-03-05 63 views
10

我在一段代码中发现了这一点,我在想它是干什么的?将b分配给x ...但,c是怎么回事?逗号在JavaScript中的赋值语句中做了什么?

var x = b, c; 
+0

可能重复[\ x = y,z \'逗号赋值在JavaScript中](http://stackoverflow.com/questions/12769922/xyz-comma-assignment-in-javascript) – 2013-03-18 20:11:02

回答

15

声明两个变量,xc,并分配值b到可变x

这等同于更明确的形式*

var x = b; 
var c; 

JavaScript允许每var关键字–每个新的变量由逗号分隔的多个声明。这是JSLint建议的样式,它指示开发人员使用每个函数的单个变量(来自JSLint的错误消息是Combine this with the previous 'var' statement.)。

*实际上,由于吊装,它将被解释为var x; var c; x = b

+0

ahhh yes okay,make感。 – capdragon 2012-03-05 15:09:50

+3

一个类似的语法通常出现在for循环中:'for(var i = 0,l = array.length; i 2012-03-05 15:10:41

+4

这实际上并不是一个逗号运算符,当然?这是一个多变量的声明。 – stusmith 2012-03-05 15:13:06

5

限定两个局部变量xc - 同时设定x的值等于b值。

5

cundefined

这相当于:

var x = b; 
var c; 
3

这是一样

var x = b; 
var c; 

其中一个很聪明很愚蠢至极添加到语言。

+0

+1:“这么聪明,这是非常愚蠢的” – Teddy 2012-03-05 15:30:32