我是Javascript的新手,但在我的脑海中,如果我没有输入“是”,那么下面的陈述应该是假的。或者没有'。但是,脚本似乎忽略了这一点,只是返回true或false,具体取决于是否a = 1。有人可以解释我做错了什么吗?非常感谢提前。
var a = 1;
var box1 = prompt("Type 'yes' or 'no' for statement to be true");
if ((box1 === "yes" || "no") && a === 1) {
alert("Hooray!");
}

答案 0 :(得分:3)
您需要将条件更改为:
(box1 === "yes" || box1 === "no")
您的情况评估为:box1
等于"是"或"否"。任何非空字符串的字符串都将计算为true
,因此" no"转换为true
,这意味着您的条件总是评估为真。
var a = 1;
var box1 = prompt("Type 'yes' or 'no' for statement to be true");
if ((box1 === "yes" || box1 === "no") && a === 1) {
alert("Hooray!");
}

答案 1 :(得分:2)
你需要打破这个条件:
<script>
var a = 1;
var box1 = prompt("Type 'yes' or 'no' for statement to be true");
if ((box1 === "yes" || box1 === "no") && a === 1) {
alert("Hooray!");
}
</script>
你的条件是:(box1等于&#34;是&#34;或&#34;没有&#34;)和等于1 请注意&#34;否&#34;是一个独立的条件。 &#34;无&#34;作为布尔值是真的! 所有字符串都不是&#34;&#34; (空)是真的。 所以是:(方框1等于&#34;是&#34;或真)和等于1