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

javascript中优先级问题

javascript中优先级问题

qq_天蝎的尾巴卍_0 2016-12-09 16:16:23
var year=2000;if(year%4 == 0 && year%100 !=0 || year%400 ==0 ){ var str = year+'是闰年';}if括号中运算符运行顺序?
查看完整描述

3 回答

?
viviier

TA贡献5条经验 获得超3个赞

((year%4 == 0) && (year$100 != 0)) || (year%400 == 0)

先计算 year%4 == 0

然后计算 year%100 != 0

然后计算 (year%4 == 0) &&  (year%100 != 0)

再然后计算 year%400 == 0

最后计算 ((year%4 == 0) &&  (year%100 != 0)) || year%400 == 0


如有错误请指正


---------------------------------修改线


看了一下下面的回复,好像我的答案是错误的。应该是:

 (year%4 ==0 )&& ((year%100 !=0) || (year%400 ==0)) 

先计算 year%4 == 0 false就返回false true进行下一步判断 

然后计算 year%100 != 0 false进行下一步判断 true返回true 

再计算 year%400 ==0 false返回false true返回true

查看完整回答
1 反对 回复 2016-12-09
  • viviier
    viviier
    看了一下下面的回复,好像我的答案是错误的。应该是: (year%4 ==0 )&& ((year%100 !=0) || (year%400 ==0)) 先计算 year%4 == 0 false就返回false true进行下一步判断 然后计算 year%100 != 0 false进行下一步判断 true返回true 再计算 year%400 ==0 false返回false true返回true
?
颖颖颖颖

TA贡献1条经验 获得超0个赞

从左到右执行

&&这个是如果第一个条件返回的是true,就执行第二个条件,返回第二个条件的答案,否则直接返回第一个条件

||这个是如果第一个条件是true,直接返回第一个调节的执行结果,否则返回第二条件的执行结果

查看完整回答
反对 回复 2016-12-10
?
cleartime

TA贡献7条经验 获得超0个赞

运算符    描述    

. [] ()    字段访问、数组下标、函数调用以及表达式分组    

++ -- - ~ ! delete new typeof void    一元运算符、返回数据类型、对象创建、未定义值    

* / %    乘法、除法、取模    

+ - +    加法、减法、字符串连接    

<< >> >>>    移位    

< <= > >= instanceof    小于、小于等于、大于、大于等于、instanceof    

== != === !==    等于、不等于、严格相等、非严格相等    

&    按位与    

^    按位异或    

|    按位或    

&&    逻辑与    

||    逻辑或    

?:    条件    

= oP=    赋值、运算赋值    

,    多重求值    


查看完整回答
反对 回复 2016-12-09
  • qq_天蝎的尾巴卍_0
    qq_天蝎的尾巴卍_0
    大神,我问的是这段代码中if括号里的运行顺序?
  • cleartime
    cleartime
    year%4 == 0 && year%100 !=0 || year%400 ==0; &&前面为true则执行后面的,反之,前面为false则不执行后面的 ||前面为false则执行后面的,反之,前面为true则不执行后面的 所以执行的顺序是2000%4==0为true则执行后面的2000%100 !=0为false则执行后面的2000%400==0为true,if里面为true,则2000是闰年
  • 3 回答
  • 0 关注
  • 1241 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信