这些逻辑运算是否相同?


(day == ("Monday" || "Tuesday" || "Wednesday"))
OR
(day == "Monday" || day == "Tuesday"|| day == "Wednesday")

我将它们置于"IF"状态,我不确定它们是否做同样的事情?

No.

首先计算用括号括起来的表达式。在您的代码段中,这意味着在以下行中:

(day == ("Monday" || "Tuesday" || "Wednesday"))

在考虑其他任何事情之前,首先评估("Monday" || "Tuesday" || "Wednesday")。这是三个非空字符串 - 非空字符串是真实的。因为 JavaScript 使用短路求值,表达式每次都会求值到第一个真值,"Monday",每次。

因此,第一个条件等价于此:

(day == "Monday")

第二个条件,正如它所写的:

(day == "Monday" || day == "Tuesday"|| day == "Wednesday")

如果你想一次根据多个值检查一个变量,我强烈建议使用数组。以下条件在逻辑上等效于第二个条件:

(["Monday", "Tuesday", "Wednesday"].includes(day)) 

相关内容

  • 没有找到相关文章

最新更新