为了账号安全,请及时绑定邮箱和手机立即绑定

操作符之间的优先级难道错了吗,我觉得该题为false

jq1=numa + 30 >10 && numb * 3<20;

document.write("jq1的值是:"+jq1+"<br>");


结果是  true

正在回答

5 回答

说到优先级, 是先是算术运算符,再进行比较运算符, 最后是逻辑运算符;

jq1=numa + 30 >10 && numb * 3<20; 

它的运算顺序是:

  1. numa + 30. (假设结果为A(数值))

  2. A >10.(假设结果为B,(true或false))

  3. numb * 3.(假设结果为C(数值))

  4.  C<20;(假设结果为D,(true或false))

  5. B && D

&&这个是"并且"操作符, 两边同时为ture, jq1的结果就为true, 否则为false;(顺带一提, &&操作也叫"中断操作符", 也就是说, 如果第一项为false那么就不会验证后面比较运输符的真假, 直接返回false, 只有第一项为真时,第二项才会开始验证, 以此类推.)

你的提问中没有给出numa的值, 结果为ture, 那numa的值肯定是大于-20并且小于6.6666的一个正数.

如果numa的值大于6.666...那么numb * 3 < 20的验证就为false, 进而jq1为false.

2 回复 有任何疑惑可以回复我~

jq1=numa + 30 >10 && numb * 3<20;相当于jq1={[(numa+30)>10]&&[(numb*3)<20]}

0 回复 有任何疑惑可以回复我~

true

1 回复 有任何疑惑可以回复我~

是TRUE,是先是算术,再是比较。在逻辑。再赋值

1 回复 有任何疑惑可以回复我~

为什么不是true

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

操作符之间的优先级难道错了吗,我觉得该题为false

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信