布尔操作符
布尔操作符有:与(&&)、或(||)、非(!)
逻辑非
逻辑非操作符可用于ECMAScript中的所有值,遵循以下规则:
- 如果操作数是一个对象(包括空对象),返回false
- 如果操作数是一个空字符串,返回true,否则返回false
- 如果操作数是数值0或者NaN,返回true,其它均返回false
- 如果操作数是null或者undefined,返回true
同时使用两个逻辑非操作符,实际上就会模拟Boolean()转换类型的行为
书中此句话的意思应该是 !!variable 实际上就是求variable是真值还是假值
逻辑与
逻辑与的操作规则,我的理解是:如果第一个操作是真值就返回第二个操作数(必须声明),如果第一个操作数是假值直接返回第一个操作数
逻辑与属于短路操作
对于书中这句话我的理解是:如果第一个操作数是假值,便不会对第二个操作数求值,因为已经可以确定的返回第一个操作数
逻辑或
逻辑或的操作规则,我的理解是:如果第一个操作数是真值,直接返回第一个操作数,如果第一个操作数是假值,直接返回第二个操作数(必须声明)
逻辑或属于短路操作
对于书中这句话我的理解是:如果第一个操作数是真值,便不会对第二个操作数求值,因为已经可以确定的返回第一个操作数
逻辑或操作符常用在赋值操作中