如果已经知道结果,JS是否会跳过陈述



如果结果已经知道,JavaScript跳过语句是否?我之所以问这个,是因为出于某种原因,当结果为 alert('You Lose')时,我的代码不会console.log(b)。当结果为 alert('You Win')时,它确实是console.log。

C总是等于 true

因此,当a = falseconsole.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');
    }

}

在我看来 c不是=== true。要验证,请在if (c === true)中添加其他子句,该子句包含一些 console.log('C is not === true.');

的效果

是的,大多数语言在从左到右的语句中解析,并在其确定结果后立即停止。

由于您在if语句中的第一个表达式返回false,因此整个语句无法返回true,因此它甚至不会尝试解析。

如果第一个表达式为false。

最新更新