为什么这个 and/or 场景评估为 false?
Why does this and/or scenario evaluate to false?
为什么会这样 return false
?
var flavor = "chocolate";
console.log(flavor == ("vanilla" || "chocolate"));
如果我改为输入:
var flavor = "chocolate";
console.log(flavor == ("vanilla" && "chocolate"));
它 returns true
。这对我来说没有意义,因为从逻辑上讲,味道不能同时等于巧克力和香草。有人可以帮助我理解我应该如何思考吗?
(flavor == ("vanilla" || "chocolate"))
returns false 因为 ("vanilla" || "chocolate")
returns 和 "vanilla"
一样,所以你实际上是在比较"chocolate" == "vanilla"
,其中 returns false.
(flavor == ("vanilla" && "chocolate"))
returns true 因为 ("vanilla" && "chocolate")
returns 因为 "chocolate"
, 所以 "chocolate" == "chocolate"
显然 returns true.
我想你真正想要的是(flavor == "vanilla" || flavor == "chocolate")
和(flavor == "vanilla" && flavor == "chocolate")
。试一试 :)
为什么会这样 return false
?
var flavor = "chocolate";
console.log(flavor == ("vanilla" || "chocolate"));
如果我改为输入:
var flavor = "chocolate";
console.log(flavor == ("vanilla" && "chocolate"));
它 returns true
。这对我来说没有意义,因为从逻辑上讲,味道不能同时等于巧克力和香草。有人可以帮助我理解我应该如何思考吗?
(flavor == ("vanilla" || "chocolate"))
returns false 因为 ("vanilla" || "chocolate")
returns 和 "vanilla"
一样,所以你实际上是在比较"chocolate" == "vanilla"
,其中 returns false.
(flavor == ("vanilla" && "chocolate"))
returns true 因为 ("vanilla" && "chocolate")
returns 因为 "chocolate"
, 所以 "chocolate" == "chocolate"
显然 returns true.
我想你真正想要的是(flavor == "vanilla" || flavor == "chocolate")
和(flavor == "vanilla" && flavor == "chocolate")
。试一试 :)