billfeller.github.io
billfeller.github.io copied to clipboard
运算符优先级
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);