Js中为我们提供了三种逻辑运算符
情况一:Boolean值的情况
!----非
---可以用来对一个值进行非运算
(对一个布尔值进行取反操作:true变成false,false变成true)
对非布尔值进行运算,会将其转换为布尔值
可以为任意数据类型做两次非运算,可以将其转换为布尔值
&&---与-------------false ---都得为真才是真
---可以为任意数据类型做两次非运算,可以将其转换为布尔值
只要有一个false,就返回false
Js中的与是短路的与:
第一个值为true,会检查第二个值;
第一个值为false,不会检查第二个值。
||---或--------------true --- 有一个真,就是真
---可以为任意数据类型做两次或运算,可以将其转换为布尔值
只要有一个true,就返回true
Js中的或是短路的或:
第一个值为true,不会检查第二个值;
第一个值为false,才会检查第二个值。
情况二:非布尔值的情况
对于非Boolean值进行与或运算时,会将其转换为Boolean值,然后在运算,返回原值
与运算
【1】如果两个值都为true,则返回后边的那个true
var result=2&&1; document.write("result="+result); 返回1
【2】如果一个值是false,一个值是true,返回为false的那个值
var result=0&&1; document.write("result="+result); 返回0
【3】如果两个值都是false时,返回前边的那个false
var result=0&&NaN; document.write("result="+result);
或运算
【1】如果两个值都为true,则返回前边的那个true
var result=2||1; document.write("result="+result); 返回2
【2】如果一个值是false,则直接返回第二个值
var result=NaN&&1; document.write("result="+result); 返回1