发布网友
共1个回答
热心网友
这2个运算符经常用到,总是弄混,记录下。。。
a()
&&
b()
:如果执行a()后返回true,则执行b()并返回b的值;如果执行a()后返回false,则整个表达式返回a()的值,b()不执行;
a()
||
b()
:如果执行a()后返回true,则整个表达式返回a()的值,b()不执行;如果执行a()后返回false,则执行b()并返回b()的值;
&&
优先级高于
||
代码如下
alert((1
&&
3
||
0)
&&
4);
//结果4
①
alert(1
&&
3
||
0
&&
4);
//结果3
②
alert(0
&&
3
||
1
&&
4);
//结果4
③
分析
语句①:1&&3
返回3
=>
3
||
0
返回
3
=>
3&&4
返回
4
语句②:先执行1&&3
返回3,在执行0&&4返回0,最后执行结果比较
3||0
返回
3
语句③:先执行0&&3
返回0,在执行1&&4返回4,最后执行结果比较
0||4
返回
4
注:非0的整数都为true,undefined、null和空字符串”"
为false。