如果foo ="4.3"为什么foo ==("4.3"||"4.4")等于true,但foo ==("4.4"||"4.3")等于false?

cha*_*tic -2 javascript if-statement

他们不应该是真的还是我错过了什么?

我正在尝试编写一个将变量与一组选项匹配的if语句.我总是这样做: if (variable == "4.3" || variable == "4.4")

但是其他方式不会更短并仍然有效吗?

小智 6

你的代码有效地做了什么

foo == "4.3"
Run Code Online (Sandbox Code Playgroud)

第二是

foo == "4.4"
Run Code Online (Sandbox Code Playgroud)

它不是以任何值运行或与之相比.它正在评估"4.3"|| "4.4"并使用第一个truthy值.在第一种情况下,"4.3",在第二种情况下,"4.4",因为值的顺序.

您可以使用以下内容充当:

(["4.3","4.4"]).indexOf(foo) > -1
Run Code Online (Sandbox Code Playgroud)

您可以向数组添加更多值以便在以后适当时进行匹配.