billfeller.github.io icon indicating copy to clipboard operation
billfeller.github.io copied to clipboard

运算符优先级

Open billfeller opened this issue 7 years ago • 0 comments

var a  = 1, b = null;
a == 1 && b = 2;
console.log(b);

// Uncaught ReferenceError: Invalid left-hand side in assignment

原因:运算符优先级 && > = ,所以 a == 1 && b = 2; 相当于 (a == 1 && b) = 2;,此时左值其实是一个布尔值,尝试给布尔值赋值,就会引起这个错误。

正确代码:

var a  = 1, b = null;
a == 1 && (b = 2);
console.log(b);

billfeller avatar May 20 '17 01:05 billfeller