问答详情
源自:2-12 保持先后顺序(操作符优先级)

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

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

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


结果是  true

提问者:遇见更美的你 2017-03-28 16:09

个回答

  • 本可以拥有一切
    2017-03-28 16:45:39
    已采纳

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

    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.

  • 呦呦慕粉
    2017-04-30 22:38:21

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

  • 全系魔法师
    2017-03-28 16:29:06

    true

  • qq_在倪锝笑容里沉醉不醒_0
    2017-03-28 16:17:49

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

  • 孔子东游1
    2017-03-28 16:16:51

    为什么不是true