【发布时间】:2014-01-21 05:55:31
【问题描述】:
如果结果已知,javascript 是否会跳过语句?我问这个是因为由于某种原因,当结果为alert('You Lose') 时,我的代码不是console.log(b)。当结果为 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');
}
}
【问题讨论】:
-
validateFunction 是做什么的?您的 c 变量未使用 var 关键字声明,这意味着它可能是隐式全局的,并且正在被更改。另外,您如何调用示例函数?如果你没有传入一个变量,那么它将有一个未定义的值,这是假的。
-
validateFunction 只是对一些东西做一些数学运算,但只返回真或假。对 c var 部分感到抱歉。我在这里发布的方式与我在代码中的方式不同。为此,C 始终等于 true。
-
据我所知,如果
c严格等于等于布尔值true,您的代码只会执行console.log(b)。它与任何其他变量值无关。你的问题到底是什么? -
回答直接问题:不,它没有。
标签: javascript if-statement console.log