JS基础-逻辑运算符
Posted wmui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS基础-逻辑运算符相关的知识,希望对你有一定的参考价值。
逻辑运算符对操作数进行布尔运算,经常和关系运算符配合使用,逻辑运算符分为逻辑非!
、逻辑与&&
和逻辑或||
,可以应用于任何数据类型
逻辑非
逻辑非用!
表示,它会先把操作数转为布尔值,然后再取反。如果同时使用两个逻辑非操作符,则相当于使用Boolean()
转型函数。
!!\'a\'; // true
!!\'\'; // false
!!1; // true
!!0; // false
!!true; // true
!!false; // false
!!null; // false
!!undefined; // false
!!NaN; // false
!!{}; // true
!![]; // true
逻辑与
逻辑与用两个和号&&
表示,要两个操作数,当操作数都为true时返回true,否则返回false。
逻辑与可以应用于任何数据类型,当操作数不是布尔值时,返回结果也不一定是布尔值。
逻辑与属于短路操作,如果第一个操作数能决定结果,则不对第二个操作数求值。
逻辑与运算求值过程,如果第一个操作数是false,结果返回第一个操作数;如果第一个操作数是true,无论第二个操作数是true还是false,返回第二个操作数。
\'\' && \'a\'; // \'\'
\'a\' && \'b\'; // \'b\'
\'a\' && \'\'; // \'\'
逻辑与运算符可以连用,返回第一个布尔值为false的表达式
\'a\' && \'b\' && null && \'\'; // null
关系运算符的优先级高于逻辑与和逻辑或,所以关系表达式可以不加圆括号。
if( a==2 && b==3) {
// todo
}
应用一:代替if语句
if(a === b) {
do()
}
// 等价于
(a === b) && do()
应用二:用于回调函数
function fn(cb) {
if(cb) {
cb()
}
}
// 等价于
function fn(cb) {
cb && cb()
}
逻辑或
逻辑或运算用||
表示,要两个操作数,当两个操作数有都为false时返回false,否则返回true
逻辑或也可以应用于任何数据类型,当操作数不是布尔值时,返回结果也不一定是布尔值。
逻辑或也属于短路操作,如果第一个操作数能决定结果,则不对第二个操作数求值。
逻辑或运算求值过程,如果第一个操作数是true,结果返回第一个操作数;如果第一个操作数是false,无论第二个操作数是true还是false,返回第二个操作数。
\'\' || \'a\'; // \'a\'
\'a\' || \'b\'; // \'a\'
\'a\' || \'\'; // \'a\'
逻辑或运算符可以连用,返回第一个布尔值为true的表达式
\'a\' || \'b\' || null || \'\'; // \'a\'
应用:为变量设置默认值
function fn(a) {
var b = a || \'\'
}
以上是关于JS基础-逻辑运算符的主要内容,如果未能解决你的问题,请参考以下文章