(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))