js中运算符&& 和 || 的使用记录
这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。