M麦
2015-06-05 10:57
为什么不可以不定义jq1和jq2,然后直接在下面代码中写入
document.write("numa大于numb的分数吗?"+numa>numb+"<br>");
document.write("numa不等于numb的分数吗?"+numa!=numb);
可以不定义jq1和jq2得到同样的结果,需要通过加( )来提高优先计算级别,如
document.write("numa大于numb的分数吗?"+(numa>numb)+"<br>");
document.write("numa不等于numb的分数吗?"+(numa!=numb));
得到的结果也是:
numa大于numb的分数吗?false
numa不等于numb的分数吗?true
但是
document.write("numa大于numb的分数吗?"+numa>numb+"<br>");得到的结果是:true
因为"numa大于numb的分数吗?"+numa>numb+"<br>"计算类型是:String+Number>Number+String,根据运算法则,先计算+,在计算>,因此最后需要比较的是String>String,(String+Number = String)即"numa大于numb的分数吗?1">"7<br>",值为true.所以最后document.write()返回true
注: 当关系运算符操作,两个操作数都是字符串(String)时,比较两个字符串对应的字符编码值(即Unicode)
"numa大于numb的分数吗?1"的第一位是n,"7<br>"的第一位是7,n的字符编码值为110,7的字符编码值为55,110比55大,返回true
同理,
document.write("numa不等于numb的分数吗?"+numa!=numb);返回的值也是true;//String+Number!=Number,及String!=Number,优先运算+,再运算!=,答案为true
可以啊,会有效果的,你自己看看
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题