【发布时间】:2017-02-28 13:01:05
【问题描述】:
有人可以向我解释或向我指出以下功能为何不起作用的文档吗?
var x = 1;
var y = 2;
var z = 1;
function logicTest() {
if ((x && y && z) === 1) {
return true;
} else {
return false;
}
}
console.log(logicTest())
我知道我可以按如下方式把它打出来:
var x = 1;
var y = 2;
var z = 1;
function logicTest() {
if (x === 1 && y === 1 && z === 1) {
return true;
} else {
return false;
}
}
console.log(logicTest())
但我真的想了解为什么第一个不起作用,以及是否有更好的方法来键入第二个 if/then 语句,或者这就是它永远必须采用的方式。
谢谢!
【问题讨论】:
-
任何语言的文档都无法列出所有无效语法的内容。
-
因为
&&和||与布尔运算符一起使用,在第一种情况下,您尝试对整数值进行操作。在第二种情况下,个别条件解析为布尔值并按原样工作。 -
@DavidThomas 不,JavaScript 中的
&&运算符确实 not 评估为布尔值。结果值取决于 input 值;在这种情况下,该表达式将产生一个数字 (1)。 -
@DavidThomas 是的,我刚刚意识到控制台中的
1 && 2给了我 2 而不是true
标签: javascript if-statement logic