如果结果已经知道,js是否会跳过语句?

时间:2014-01-21 05:55:32

标签: javascript if-statement console.log

如果结果已知,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');
    }


}

2 个答案:

答案 0 :(得分:1)

在我看来,c不是===是真的。要进行验证,请向if (c === true)添加一个包含console.log('C is not === true.');

效果的else子句

答案 1 :(得分:0)

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

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

如果第一个表达式为false,则在OR语句中也会发生相同的情况。