如果结果已知,javascript是否会跳过语句?我问这个是因为出于某种原因,当结果为console.log(b)
时,我的代码不会alert('You Lose')
。当结果为alert('You Win')
时,它会执行console.log。
C
始终等于true
。
所以当a = false
不是console.log(b)
时,a = true
时却console.log(b)
为什么?
function example(c) {
var b = true;
var a = validateFunction($('.div1')); // returns true or false
console.log(a);
if (c === true) { // c always equals true
b = validateFunction($('.div2')); // returns true or false
console.log(b);
}
if (a === true && b === true) {
alert('You Win');
}
else {
alert('You Lose');
}
}
答案 0 :(得分:1)
在我看来,c
不是===是真的。要进行验证,请向if (c === true)
添加一个包含console.log('C is not === true.');
答案 1 :(得分:0)
是的,大多数语言从左到右解析语句,并在确定结果后立即停止。
由于if语句中的第一个表达式返回false,因此整个语句不能返回true,因此它甚至不会尝试解析它。
如果第一个表达式为false,则在OR语句中也会发生相同的情况。