JavaScript if语句总是返回true
对应的html:JavaScript if语句总是返回true,javascript,boolean-logic,boolean-expression,Javascript,Boolean Logic,Boolean Expression,对应的html: <html> <title></title> <head> </head> <body> <FORM NAME="Calculator"> <TABLE BORDER=4> <TR> <TD> <input type="text" name="Input" Size="22" value=""> <input type="text" n
<html>
<title></title>
<head>
</head>
<body>
<FORM NAME="Calculator">
<TABLE BORDER=4>
<TR>
<TD>
<input type="text" name="Input" Size="22" value="">
<input type="text" name="notepad" value="">
<br>
</TD>
</TR>
<TR>
<TD>
<INPUT TYPE="button" NAME="one" VALUE=" 1 " class ="digit" >
<INPUT TYPE="button" NAME="two" VALUE=" 2 " class ="digit" >
<INPUT TYPE="button" NAME="three" VALUE=" 3 " class ="digit" >
<INPUT TYPE="button" NAME="plus" VALUE=" + " class ="operand">
<br>
<INPUT TYPE="button" NAME="four" VALUE=" 4 " class ="digit">
<INPUT TYPE="button" NAME="five" VALUE=" 5 " class ="digit">
<INPUT TYPE="button" NAME="six" VALUE=" 6 " class ="digit">
<INPUT TYPE="button" NAME="minus" VALUE=" - " class="operand">
<br>
<INPUT TYPE="button" NAME="seven" VALUE=" 7 " class ="digit">
<INPUT TYPE="button" NAME="eight" VALUE=" 8 " class ="digit">
<INPUT TYPE="button" NAME="nine" VALUE=" 9 " class ="digit">
<INPUT TYPE="button" NAME="times" VALUE=" x " class ="operand">
<br>
<INPUT TYPE="button" NAME="clear" VALUE=" c " class ="special">
<INPUT TYPE="button" NAME="zero" VALUE=" 0 " class ="digit">
<INPUT TYPE="button" NAME="Execute" VALUE=" = " class ="solve">
<INPUT TYPE="button" NAME="div" VALUE=" / " class ="operand">
<br>
</TD>
</TR>
</TABLE>
</FORM>
<script type = "text/javascript" src="C:\Users\Quonn\Desktop\QBJS\calculatorjs.js">
</script>
</body>
</html>
x是通过点击计算器上的按钮传入的。即使info.className不是数字/操作数,if语句也返回true。
我需要在if语句中更改什么才能使其返回false?您没有正确使用
|
运算符
|
运算符用于或两个值。它出现在两个值之间
从你的例子来看:
首先它检查您的左侧状况:
info.className==“数字”
如果为true,则|
运算符返回true(它不计算右侧)
否则,它会评估您病情的右侧:
“操作数”
这将始终计算为true,因为字符串“operand”不等于a
要解决此问题,需要在| |
运算符的两侧使用正确的表达式:
if (info.className === "digit" || info.className === "operand") {
alert("Yay");
}
您没有正确使用
|
运算符
|
运算符用于或两个值。它出现在两个值之间
从你的例子来看:
首先它检查您的左侧状况:
info.className==“数字”
如果为true,则|
运算符返回true(它不计算右侧)
否则,它会评估您病情的右侧:
“操作数”
这将始终计算为true,因为字符串“operand”不等于a
要解决此问题,需要在| |
运算符的两侧使用正确的表达式:
if (info.className === "digit" || info.className === "operand") {
alert("Yay");
}
解释为布尔值的字符串将始终返回true if(info.className==“数字”| |“操作数”) 应该是
如果(info.className==“digit”| | info.className==“operand”)被解释为布尔值的字符串将始终返回true if(info.className==“数字”| |“操作数”) 应该是 if(info.className==“digit”| | info.className==“操作数”)
if (info.className === "digit" || info.className === "operand")