javscript布尔操作符

在ECMAScript中提供了Boolean()转换函数以及三个布尔操作符,这三个布尔操作符分别为逻辑非、逻辑与、逻辑或,这三个操作符通常用作于某些值的求反,比较模式等。学好这一点知识也非常的重要,奠定了以后在一些比较模式中基础。

1.Boolean()转型函数

Boolean()转型函数可以对任何类型的值进行转换为一个有效的布尔值,它的转换规则如下:

  1、Boolean值:true转换结果为true,false转换结果为false。
  2、String值:非空字符转换为true,空字符转换为false。
  3、Number值:任何非零数值以及Infinity转换为true,零以及NaN转换为false。
  4、Object值:任何对象转换为true,null转换为false。
  5、Undefined:所有Undefined值均转换为false。

2.逻辑非(!)

逻辑非只有一个操作数,逻辑非由一个感叹号组成,逻辑非可以应用于所有类型的值并且返回一个布尔值,逻辑非在进行操作的时候首先会利用Boolean()转型函数对操作数进行转换为一个布尔值,然后在对其值进行求反并返回这个布尔值。如:

1 var test1 = null; var test2 = “xsscript”; 
2 var test3 = 123; 
3 !test1; 返回true;
4 !test2; 返回false; 
5 !test3; 返回false;

 

3.逻辑与(&&)

逻辑与有两个操作数,逻辑与由两个和符号构成”&&”,逻辑与是一个短路操作,也就是它有些时候可以通过一边的值来确定结果。逻辑与对于布尔值的运算规则如下:

第一个值为true的时候,会对第二个值进行判断,如果第二个值为true则返回true,如果第二个值为false则返回false。
如果两个值中第一个值是false逻辑与运算就不继续判断第二个值了,因为判断第二个值是属于无意义的,就算第二个值是true也不能改变结果。
逻辑与对于其他类型值的操作返回的值和上面的规则很相似,但是返回的值是操作值的类型,可以这样来想”在逻辑与进行其他类型值运算的时候,在内部隐式的用Boolean()转型函数转换为布尔值,然后对其进行运算,但是返回的值还是原操作数值”。逻辑与对于其他类型值的运算规则其实可以用前一段话来想,然后对其用布尔值的方式进行运算,就很简单的理解了逻辑与操作符。

逻辑与的运算规则如下:
  两个操作数都为true的时候返回第二个操作数原值
  第一个操作数为false的时候返回第一个操作数原值
  第二个操作数为false的时候返回第二个操作数原值

4.逻辑或(||)

逻辑或有两个操作数,逻辑或由两个竖线符号构成”||”,逻辑或是一个短路操作,也就是它有些时候可以通过一边的值来确定结果。逻辑或对于布尔值的运算规则如下:

第一个值为true的时候,则返回true,因为第二个值就算为false也不会对结果产生影响。
第一个值是false逻辑或会继续对第二个值进行判断,如果第二个值为true则返回true,如果第二个值为false,则返回false。
逻辑或对于其他类型值的操作返回的值和上面的规则很相似,但是返回的值是操作值的类型,可以这样来想”在逻辑或进行其他类型值运算的时候,在内部隐式的用Boolean()转型函数转换为布尔值,然后对其进行运算,但是返回的值还是原操作数值”。逻辑或对于其他类型值的运算规则其实可以用前一段话来想,然后对其用布尔值的方式进行运算,就很简单的理解了逻辑或操作符。

逻辑或的运算规则如下:
第一个操作数为true的时候则返回第一个操作数原值 第一个操作数为false的时候
第二个操作数为true则返回第二个操作数原值
两个数都为false的时候则返回第二个操作数原值。

文档信息