为什么aaa = 1,2,3
工作并设置值aaa
to 1
?
为什么不var bbb = 1,2,3
work?
为什么var bbb = (1,2,3)
工作并设置值bbb
to 3
?
这里发生了很多事情,但基本上,它归结为逗号运算符 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator.
逗号运算符计算其两个操作数(从左到右)并返回第二个操作数的值。
这段代码:
aaa = 1,2,3
相当于:
aaa = 1;
2;
3;
So aaa
被隐式声明并赋值为 1。请注意,控制台上的输出是最后一条语句 3 的结果。
这段代码:
var bbb = 1,2,3
是一个语法错误,因为变量声明中的逗号用于在一行中声明多个变量。正如 MDN 文章指出的那样,
请注意,其中的逗号var
声明是not逗号运算符,因为它不存在于表达式中。相反,它是一个特殊的字符var
将多个语句合并为一个的语句。
所以这段代码大致相当于:
var bbb = 1;
var 2;
var 3;
当然,2
不是有效的标识符,因此此时失败。
这段代码:
var bbb = (1,2,3)
与第一个非常相似,只是因为数值被括在括号中,所以首先对它们进行求值。所以这大致相当于:
1;
2;
var bbb = 3;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)