(function(){
var b1 = b2 = b3 = b4 = 100;
})();
console.log(b1); //100
console.log(b2); //100
console.log(b3); //100
console.log(b4); //100
这里的分配是右关联的,因此分配了100。
这是一种不好的做法。更好的版本是
(function(){
'use strict';
var b1 = 100,
b2 = 100,
b3 = 100,
b4 = 100;
})();
问题:是否有任何错误分配的情况
var b1 = b2 = b3 = b4 = 100;
可能是首选还是永远不会被使用?
答案 0 :(得分:5)
这不可行,因为这两个代码示例并不相同。第一个等于:
var b1;
b4 = 100;
b3 = b4;
b2 = b3;
b1 = b2;
因此,您只在本地范围内定义b1
,b2..b4
全局声明。这意味着必须完全避免。
我也非常怀疑console.log(b1);
输出100
根据你的例子。
(function(){
var b1 = b2 = b3 = b4 = 100;
})();
console.log(b1); //100 <-- this is not true
console.log(b2); //100
console.log(b3); //100
console.log(b4); //100
另一方面 - 对于已经声明的变量 - 使用
进行初始化或赋值// we assume a, b and c have been declared already
a = b = c = 100;
是您的项目/团队惯例的主题。从技术角度来看,使用它很好。