换句话说,为什么这不显示警报?
var x;
if (x = 1 && x > 0) {
alert(x);
}
据我了解,x = 1 应该将 1 分配给 x 并返回 1。x > 0 检查失败。为什么?
最佳答案
实际上,&&
操作将优先于赋值。
在您的情况下,x
将是 1 && x > 0
的结果,即 false
。
var x;
if (x = 1 && x > 0) {
alert(x);
}
console.log(x); // false
您可以使用括号强制执行操作顺序,as shown by Nina Scholz .
关于javascript - 为什么我不能在 Javascript 的同一个 if 语句中赋值然后检查一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42655868/