逻辑运算符:就是布尔值(true 和 false)的“算数”运算。逻辑运算符包括:逻辑与&&、逻辑或||和逻辑非!
一、a && b 【逻辑与】
①、如果执行 a 后返回true,则执行 b 并返回 b 的值;
②、如果执行 a 后返回false,则整个表达式返回 a 的值,b 不执行;
运算过程:
1、计算&&第一个操作数(左边的值),如果左侧表达式的值可转换为 false(如 null、undefined、NaN、0、""、false),那么就会结束运算,直接返回第一个操作数的值。
2、如果左侧的值为true,计算&&第二个操作数(右侧的值),返回该值。
二、a || b 【逻辑或】
①、如果执行 a 后返回true,则整个表达式返回 a 的值,b 不执行。
②、如果执行 a 后返回false,则执行 b 并返回 b 的值;
运算过程:
1、计算 || 第一个操作数(左边的值),如果左侧表达式的值可转换为 true,那么就会结束运算,直接返回第一个操作数的值。
2、如果左侧的值为false(如 null、undefined、NaN、0、""、false),计算 || 第二个操作数(右侧的值),返回该值。
三、!a 【逻辑非】
逻辑非运算!是布尔取反操作(NOT)。作为一元运算符,直接放在操作数之前,把操作数的值转换为布尔值,然后取反并返回。
注意:逻辑与和逻辑或运算的返回值不必是布尔值,但是逻辑非运算的返回值一定是布尔值。