在Javascript中进行多变量赋值的正确方法

时间:2015-01-09 00:21:11

标签: javascript

(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; 

可能是首选还是永远不会被使用?

1 个答案:

答案 0 :(得分:5)

这不可行,因为这两个代码示例并不相同。第一个等于:

var b1;
b4 = 100;
b3 = b4;
b2 = b3;
b1 = b2;

因此,您只在本地范围内定义b1b2..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;

是您的项目/团队惯例的主题。从技术角度来看,使用它很好。