【发布时间】:2021-05-13 13:49:36
【问题描述】:
我有一个非常基本的声明,它没有输出正确的值,但我不明白为什么。
我的变量具有以下值:
var bedroomNums = "0_1"
但此输出在 Chrome 控制台中显示为 true:
bedroomNums != ("0_0" || "0_1" || "0_2")
我正在尝试创建一个IF 声明来表示:
if bedroomNums doesnt equal X or Y or Z then the statement is true
我试过了:
bedroomNums != "0_0" || bedroomNums != "0_1" || bedroomNums != "0_2"
但这也显示为真
我哪里错了
【问题讨论】:
-
我认为您似乎真正在寻找的不是一个合乎逻辑的
OR,而是一个合乎逻辑的AND(满足每个条件)。 -
bedroomNums不能同时是三个不同的值。如果它等于“0_0”,那么它必然不会等于“0_1”,因此这些或条件中的至少两个必须是是的。 -
bedroomNums != "0_0" && bedroomNums != "0_1" && bedroomNums != "0_2" -
这不是您要执行的操作的正确语法。每个表达式都需要比较
bedroomNum(即( bedroomNums != "0_0" && bedroomNums != "0_1" && bedroomNums != "0_2") -
@AnthonyBroadbent 您在评论中提供的内容在技术上是有效的 ECMAScript 语法,但不会像您认为的那样工作。字符串值是“truthy”,所以
"0_0" && "0_1" && "0_2"实际上是true && true && true。根据bedroomNums的类型和值,这种比较可能不会返回您期望或需要的结果。
标签: javascript