【发布时间】:2018-10-17 22:28:07
【问题描述】:
我开始了 JavaScript 入门课程,我们正在学习逻辑运算符。我的脚本的目标是在满足几个条件时打印一条语句。
我有 3 个变量(例如 x、y、z),如果 x = a ||,我需要将其打印到控制台b AND y = c || d 和 z = e || f.
我的代码是:
var flavor = "strawberry";
var vessel = "cone";
var toppings = "cookies";
if (flavor === "vanilla" || "chocolate" && vessel === "cone" || "bowl" && toppings === "sprinkles" || "peanuts") {
console.log("I'd like two scoops of " + flavor + "ice cream in a " + vessel + "with " + toppings + ".");
} else {
console.log("No ice cream for you.");
}
它需要有香草或巧克力 && 锥形或碗 && 洒或花生才能真实打印。使用我的代码,它会打印变量中的任何值,无论它们是什么。
我的代码有语法错误吗?或者你不能在一个陈述中比较那么多东西吗?正如我所说,这是一门入门课程,所以我无法想象开始会那么复杂。我的大脑中没有什么东西在燃烧。哈哈
任何帮助/解释将不胜感激。
提前致谢!!
【问题讨论】:
-
flavor === "vanilla" || "chocolate"->flavor === "vanilla" || flavor === "chocolate"并在其余情况下重复。您可能需要一个帮助函数来使您的代码更具可读性。 -
仅供参考,真正发生的是
if ((flavor === "vanilla") || (true && (vessel === "cone")) || (true && (toppings === "sprinkles")) || true),如您所见,它始终是true。 -
这一直持续到最后一次比较。无论我将浇头改成什么,它都会打印出声明。
标签: javascript logical-operators