假值
- undefined
- null
- 0
- -0
- NaN
- “” 空串
真值
- 除了以上6个假值外,其余的值都是真值
逻辑与&&
- 当操作数都是布尔值时,执行布尔与操作
- 如果第一个操作数是假值,返回第一个操作数
- 如果第一个操作数是真值,返回第二个操作数
o && o.x;//如果对象o是null,那么就不会计算o.x
(a==b) && stop();//有条件地执行stop()
逻辑或||
- 如果第一个操作数为真值,返回第一个操作数
- 如果第一个操作数为假值,返回第二个操作数
var myObject = prefer||backup;//避免为对象赋null或undefined值
//backup 负责在prefer不包含有效值的情况下提供后备值
//从一组备选表达式中,选出第一个真值表达式
var max = max_width||preference.max_width||500;
function fun(p)
{
p=p||{};//如果没有传入参数p,则使p={}
}