逻辑与
1 语法规范
&&
2 用法
当符号两端都有表达式时,只有两边结果都为true时,整个表达式才是ture。只要有一侧为flase时,整个表达式结果为flase。也就是所说的一假则假
逻辑与操作符是一种短路操作符,其第一个操作数就决定了结果,那么永远不会对第二个操作数求值
3 使用注意点
逻辑与操作符适用于任何类型的操作数,不限于布尔值。如果有操作数不是布尔值,但它并不一定会返回布尔值:
如果第一个操作数是对象,则返回第二个操作数
如果第二个操作数是对象,则只有第一个操作数的值为ture才会返回该对象
如果两个操作数都是对象,则返回第二个操作数
如果第一个操作数为null,则返回null
如果第一个操作数为NaN,则返回NaN
如果第一个操作数为undefined,则返回undefined
4 实例
<script>
1>2&&console.log(1);
因为左边表达式为假,所以在控制台不会出输出1
</script>
<script>
1<2&&console.log(1);、
左边表达式为真,所以运行右边表达式
</script>
逻辑或
1 语法规范
||
2 用法
当符号两端都有表达式时,只有当符号两端运算式运算结果都为false,整个表达式的结果才为false。当右侧运算式运算结果为true时,整个表达式运算结果就是true。也就是所说的一真则真
逻辑或操作符也具有短路的特性,对于逻辑或而言,第一个操作数为ture是,第二个操作数就不会再被求值了
3 使用注意点
如果第一个操作数是对象,则返回第一个操作数
如果第一个操作数是false,则返回第二个操作数
如果两个操作数都是对象,则返回第一个操作数
如果两个操作数都是null,则返回null
如果两个操作数都是NaN,则返回NaN
如果两个操作数都是undefined,则返回undefined
4 实例
<script>
1<2||console.log(1);
由于左边表达式为真,所以不运行右边表达式
</script>
<script>
1>2||console.log(1);
由于左边表达式为假,所以运行右边表达式
</script>
逻辑非
1 语法规范
!(叹号)
2 使用规则
这个操作符始终会返回布尔值,无论应用的是什么数据类型。逻辑非操作符首先将操作数转化为布尔值,然后再对其进行取反操作
对于一个数同时使用两个叹号(!!),相当于调用了转型函数Boolean()
console.log(!!"blue")//ture
console.log(!!NAN)//false
console.log(!!12345)//ture