Javascript | |操作符是如何工作的,为什么不在这个if中工作?

Javascript | |操作符是如何工作的,为什么不在这个if中工作?,javascript,Javascript,我目前正在学习JavaScript的基础知识,只想问一个关于| |运算符的快速问题。你看,我目前正在阅读w3school的JavaScript指南,我看到| |与&配对,这是我使用并理解的运算符。W3学校将其描述为等同于“或”。因为我在if中使用了&来表示几个条件,所以我认为| |应该表示几个可接受的结果。在我以前的一个脚本中添加了它之后,它根本不起作用 函数reply() { var answer=document.getElementById(“questionPrompt”).valu

我目前正在学习JavaScript的基础知识,只想问一个关于| |运算符的快速问题。你看,我目前正在阅读w3school的JavaScript指南,我看到| |与&配对,这是我使用并理解的运算符。W3学校将其描述为等同于“或”。因为我在if中使用了&来表示几个条件,所以我认为| |应该表示几个可接受的结果。在我以前的一个脚本中添加了它之后,它根本不起作用


函数reply()
{
var answer=document.getElementById(“questionPrompt”).value;
如果(答案=“Ok”| |“Ok”)
{
document.getElementById(“rightResponse”).innerHTML=“Ok”;
document.getElementById(“错误响应”).innerHTML=“”;
}
否则{
document.getElementById(“错误响应”).innerHTML=“确定”;
document.getElementById(“rightResponse”).innerHTML=“”;
}
}


确定?
这是因为首先计算的是
答案==“确定”
,然后将结果与
“确定”
进行比较。由于
“ok”
本身就是一个真实值,因此无论输入如何,您的比较结果都将始终为
真实值

尝试:
if(answer==“Ok”| answer==“Ok”)

您想要
if(answer==“Ok”| answer==“Ok”)
。停止使用W3Schools(这太糟糕了)。MDN是它所在的位置~每个条件都必须生成一个布尔值。在
if(answer==“Ok”| |“Ok”)
中,第二个条件不是布尔值。如果(回答==“Ok”|回答==“Ok”)