工作生活

表达式与操作符(二)

2019-06-30  本文已影响0人  别闹23

布尔操作符(也叫逻辑操作符)

布尔操作符有三种:与(&&)·或(||)·非( !)

&&:找到第一个为flase的值并返回

表达式1&&表达式2&&表达式3&&表达式..........

返回的只有俩种结果:ture flase

在一个有操作数不是布尔值的情况下,逻辑与操作就不一定返回值,此时遵守下列规则:

1.如果第一个操作数隐式转换后为ture,则返回第二个操作数。

2.如果第一个操作数隐式转换后为flase,则返回第二个操作数。

3.如果有一个操作数是Null,则返回Null。

4.如果有一个操作数是NaN,则返回NaN。

5.如果有一个操作数是Underfined,则返回Underfined。

例子如下:

结婚:身份证&&户口本

&&:俩边都成立才成立,如果前面有一个值不成立则返回第一个值,如果俩边都成立则返回第二个成立得值。

返回的是起决定性作用的那个值

console.log(ture&&flase)   //flase
console.log(ture&&ture&&flase) //flase
console.log(true&&true)   //ture
console.log(ture&&null)  //null
console.log(null&&ture)  //null
console.log(null&&null)  //null
console.log(4&&8)  //8
console.log(0&&ture)  //ture
console.log(''&&null&&0)  //''
console.log(4&&underfined)  //underfined
console.log(7&&"abc")  //abc

或(||):找到第一个为ture的值并返回

表达式1 || 表达式2

返回的只有俩种结果: ture flase

有一个为ture 结果返回ture

只要有一个条件成立返回ture

在一个有操作数不是布尔值的情况下,逻辑与操作就不一定返回值,此时遵守下列规则:

1.如果第一个操作数隐式转换后为ture,则返回第二个操作数。

2.如果第一个操作数隐式转换后为flase,则返回第二个操作数。

3.如果俩个操作数是Null,则返回Null。

4.如果俩个操作数是NaN,则返回NaN。

5.如果俩个操作数是Underfined,则返回Underfined。

总结:几乎所有语言中||和&&都遵循“短路”原理。

console.log(null||4)   //4
console.log(flase||null||0)   //0
console.log(1||5)   //1  
console.log('abc'||flase||4)   //abc
console.log('flase'||0||underfined)   //flase
console.log(7||0||9||ture)  //7
console.log(0||null||nan)  //nan

**!(或)(取反)

1无论操作数是什么类型,逻辑非都会返回第一个布尔值。

2逻辑非操作符首先会将他的操作数转换为布尔值,然后再 对其取反

3同时使用俩个逻辑操作符时,第一个逻辑非操作会基于无论什么操作数都会返回一个布尔值,

而第二个逻辑非则对该布尔值取反(!!变量==》Boolean(变量))

例子:

alert(!flase);//ture
alert('blue');//flase
alert(!0);//ture
alert(!NaN);//ture
alert(!“”);//ture
alert(!12345);//flase
console.log(!5);//flase
console.log(!'add');//flase
console.log(!!NaN);//ture

**大神勿喷!谢谢

上一篇下一篇

猜你喜欢

热点阅读