小编she*_*ock的帖子

为什么Javascript运算符"&&"如此奇怪?

a = 1;
b = "1";
if (a == b && a = 1) {
    console.log("a==b");
}
Run Code Online (Sandbox Code Playgroud)

上面的Javascript代码会导致if Google Chrome 26.0.1410.43 中的语句出错:

未捕获的ReferenceError:赋值中的左侧无效

我想这是因为该变量a在声明的第二部分&&,a=1不能分配.但是,当我尝试下面的代码时,我完全糊涂了!

a = 1;
b = "1";
if (a = 1 && a == b) {
    console.log("a==b");
}
Run Code Online (Sandbox Code Playgroud)

为什么一个陈述是对的,但另一个陈述是错的?

javascript google-chrome operator-precedence

18
推荐指数
3
解决办法
1245
查看次数