逻辑与&&
逻辑与操作符由两个和号(&&)表示,有两个操作数,相当于and。
逻辑与的布尔值:需要两个操作数都是true才会返回true。
逻辑与操作属于短路操作,即如果第一个操作数是false,那么就不会再对第二个操作数求值。
var a=A&&B;==>A是一个表达式,B也是一个表达式。如果A表达式判定为布尔表达式的值的false,则a的结果就是A表达式的结果,如果A表达式判定为布尔表达式的值的true,则a的结果就是B表达式的结果。如果a是A表达式那么B表达式不运行。
逻辑或||
逻辑或操作符由两个竖线符号(||)表示,有两个操作数,相当于or。
逻辑或的布尔值:两个操作数只要任意一个是true就会返回true。
逻辑或操作符也是短路操作符,如果第一个操作数的求值结果为true,就不会对第二个操作数求值了
var a=A||B;==>A是一个表达式,B也是一个表达式。如果A表达式判定为布尔表达式的值的true,则a的结果就是A表达式的结果,如果A表达式判定为布尔表达式的值的false,则a的结果就是B表达式的结果。如果a是A表达式那么B表达式不运行。
逻辑非!
逻辑非操作符由一个叹号(!)表示,可以应用于js中的任何值。无论这个值是什么数据类型,这个操作符都会返回一个布尔值。逻辑非操作符首先会取出它的操作数的值然后转换为一个布尔值,最后再对其求反。
逻辑与&&和逻辑或||,不一定返回布尔值,而逻辑非!一定会返回一个布尔值。
ps:同时使用两个逻辑非操作符,可以用于将一个值转换为与其对应的布尔值。
布尔判定
空字符串,±0和NaN,undefined,null布尔判定为false;
任何非空字符串,任何非0数字以及任何引用数据布尔判定为true。