为什么这个 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")。试一试 :)