布尔操作符
1、逻辑非
这个符号应用于所有值,无论这个值是什么数据类型,这个操作符都会返回一个布尔值。逻辑非会先将需要他操作的数值转换为一个布尔值,然后再求反。
- 如果这个操作数是一个对象,返回false
- 如果这个操作数是一个空字符串,返回true,非空为false
- 如果操作数值为0,则返回true
- 如果操作数是任意非0数值(包括Infinity),返回false
- 如果是null,则返回true;
- 如果是NaN,则返回true;
- 如果是undefine则返回true;
如果同时使用两次逻辑非运算符,实际上就辉模拟Boolean()转型函数的行为,最终结果相同.
2、逻辑与
两个&&号组成
两个都为真才真,一个为假就是假.
- 如果第一个操作数是对象,则返回第二个操作数
- 如果第二个操作数是对象,则只有第一个操作数求值结果为true的情况下才会返回该对象
- 如果两个操作数都是对象,则返回第二个
- 如果有一个是null,则返回null
- 如果有一个是NaN,则返回NaN
- 如果有一个是undefined,则返回undefined。
如果第一个操作数为假,则后面的不执行
3、逻辑或
两个||组成
两边的数值有一个为真就是真
- 如果第一个操作数是对象,则返回第一个操作数。
- 如果第一个操作数的求值结果是false,则返回第二个操作数;
- 如果两个操作数都是对象,则返回第一个操作数,
- 如果两个都是Null,则返回null
- 如果两个都是NaN,则返回NaN
- 如果两个都是undefined,则返回undefined
同上都是短路运算,要是第一个操作数为真,后面的操作数就不执行
逻辑或语句可以用于避免给变量赋上null或者undefined值
比如var myObj=a || b; 中
a包含优先赋给myObj的值,而b负责在a没有有效值的时候提供后备值
4958

被折叠的 条评论
为什么被折叠?



