层次一
两操作数均为布尔值时,对两布尔值进行与运算
层次二
当两操作数为真假值时
**假值:**undefined,null,“”,false,0,-0,NaN
真值:除此之外的为真值
层次三
首先计算“&&”左侧值,若左侧值是假值,直接返回假值,不计算右侧
var o={x:1};
var p=null;
o&&o.x//=>1
p&&p.x//=>null:p是假值,返回不计算之后的操作数,如计算p.x抛出类型错误异常
当前行为被称为短路
if(a==b)stop();//
(a==b)&&stop();//两者相同含义
当右侧操作数表达式具有副作用时要格外注意。