遇见更美的你
2017-03-28 16:09
jq1=numa + 30 >10 && numb * 3<20;
document.write("jq1的值是:"+jq1+"<br>");
结果是 true
说到优先级, 是先是算术运算符,再进行比较运算符, 最后是逻辑运算符;
jq1=numa + 30 >10 && numb * 3<20;
它的运算顺序是:
numa + 30. (假设结果为A(数值))
A >10.(假设结果为B,(true或false))
numb * 3.(假设结果为C(数值))
C<20;(假设结果为D,(true或false))
B && D
&&这个是"并且"操作符, 两边同时为ture, jq1的结果就为true, 否则为false;(顺带一提, &&操作也叫"中断操作符", 也就是说, 如果第一项为false那么就不会验证后面比较运输符的真假, 直接返回false, 只有第一项为真时,第二项才会开始验证, 以此类推.)
你的提问中没有给出numa的值, 结果为ture, 那numa的值肯定是大于-20并且小于6.6666的一个正数.
如果numa的值大于6.666...那么numb * 3 < 20的验证就为false, 进而jq1为false.
jq1=numa + 30 >10 && numb * 3<20;相当于jq1={[(numa+30)>10]&&[(numb*3)<20]}
true
是TRUE,是先是算术,再是比较。在逻辑。再赋值
为什么不是true
JavaScript进阶篇
468192 学习 · 21891 问题
相似问题