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基础-逻辑运算符的主要内容,如果未能解决你的问题,请参考以下文章

js基础知识第二天(逻辑运算符)

JS基础 运算符

js中这些符号是啥意思:&,,===,!,++

js中这些符号是啥意思:&,,===,!,++

20个简洁的 JS 代码片段

20个简洁的 JS 代码片段