Javascript 逻辑运算符前的字符串不会显示在警报()中
如果我执行此命令:Javascript 逻辑运算符前的字符串不会显示在警报()中,javascript,Javascript,如果我执行此命令: alert( "Is 4 equal to 5 ? lets see " + 4 == 5 ) 它将逻辑值显示为false,但前面的字符串“Is 4等于5?Let see”丢失了,有人能解释为什么会这样吗 执行将发生在以下行: "Is 4 equal to 5 ? lets see " + 4 // "Is 4 equal to 5 ? lets see 4" "Is 4 equal to 5 ? lets see 4" == 5 // false alert(false)
alert( "Is 4 equal to 5 ? lets see " + 4 == 5 )
它将逻辑值显示为false,但前面的字符串“Is 4等于5?Let see”丢失了,有人能解释为什么会这样吗 执行将发生在以下行:
"Is 4 equal to 5 ? lets see " + 4 // "Is 4 equal to 5 ? lets see 4"
"Is 4 equal to 5 ? lets see 4" == 5 // false
alert(false);
你想要的是:
"Is 4 equal to 5 ? lets see " + (4 == 5)
评估结果如下:
4 == 5 // false
"Is 4 equal to 5 ? lets see " + false
alert("Is 4 equal to 5 ? lets see false")
您的输入将被比较为
"Is 4 equal to 5 ? lets see 4" == 5
将数字比较部分用括号括起来
alert("Is 4 equal to 5 ? lets see " + (4 == 5));
为什么会发生这种情况
因为+
的优先级高于中的=
比较运算符
这个因此,+
对零件进行评估,然后得到零件
与数字相比
为什么括号起作用
()
分组具有最高优先级,因此将对其进行评估
第一。因此,它内部的表达式也将被计算
如果希望显示文本和false,请将比较结果存储在变量中,如
var result=4==5代码>然后警报(“4等于5?让我们看看”+结果)代码>啊,我现在明白了,这也是有时显示错误布尔值的原因,因为tooThat的原因是1+2==3
没有给出1+false
/NaN
操作顺序。疯狂是有秩序的,就像你在数学中做方程式一样。