逻辑运算又称布尔运算,主要用于多条件的判断,逻辑运算符包括:逻辑与&&、逻辑或||和逻辑非!。其中逻辑与有点不务正业,经常出现在并不需要判断多条件是否同时成立的场合。逻辑与是一种短路(偷懒)逻辑,如果左侧表达式为false,则直接短路返回结果,不再运算右侧表达式。运算逻辑如下:
- 计算第一个操作数(左侧表达式)的值;
- 检测第一个操作数的值。如果左侧表达式的值可转换为 false(如
null、undefined、NaN、0、""、false),那么就会结束运算,直接返回第一个操作数的值; - 如果第一个操作数可以转换为 true,则计算第二个操作数(右侧表达式)的值;
- 返回第二个操作数的值。
仿分支结构
利用逻辑与运算符的特性,可以用来实现一个类似switch的分支结构:
var n = 3;
n == 1 && console.log('choice 1');
n == 2 && console.log('choice 2');
n == 3 && console.log('choice 3');
!n && console.log("no choice");
知识点
依靠第一个运算数,就能得出整个运算的逻辑结果,则返回第一个表达式;
依靠第二个运算数,才能得出整个运算的逻辑结果,则返回第二个表达式。