a = 1;
b = "1";
if (a == b && a = 1) {
console.log("a==b");
}
上面的JavaScript代码在Google Chrome 26.0.1410.43中会在if
语句中导致错误:
Uncaught ReferenceError: Invalid left-hand side in assignment
我认为这是因为语句的第二部分&&
中的变量a
无法被赋值。然而,当我尝试下面的代码时,我完全困惑了!
a = 1;
b = "1";
if (a = 1 && a == b) {
console.log("a==b");
}
为什么一个语句是正确的,而另一个语句是错误的?
(
和)
来确定运算符优先级。 - Mehmet Inceif(a==1 && a == b)
。 - Ashish Rawat