ECMAScript运算符之《逻辑运算符》

浏览: 2,063次 日期:2018年06月13日 19:27:37 作者:青格勒

逻辑运算符也叫做Boolean 运算符。

Boolean运算符是非常重要的一个知识点,它使得程序语言得以正常运行。

Boolean运算符有三种:

1、NOT(逻辑非)

2、AND(逻辑与)

3、OR(逻辑或)

 

学习其他逻辑运算符之前需要知道ToBoolean操作

分别来一个例子看一下:

1、Undefined

console.log('Undefined:' + Boolean(undefined));

 

2、Null

console.log('Null:' + Boolean(null));

3、Boolean

console.log('Boolean_false:' + Boolean(false));
console.log('Boolean_true:' + Boolean(true));

 

4、Number

console.log('Number_0:' + Boolean(0));
console.log('Number_-0:' + Boolean(-0));
console.log('Number_NaN:' + Boolean(NaN));
console.log('Number_1:' + Boolean(1));

 

5、String

console.log('Number_空:' + Boolean(""));
console.log('Number_值:' + Boolean("cenggel.com"));

 

6、Object

console.log('Object:' + Boolean(function(){}))

 

好了,了解这个之后咱们就可以看正题了。

 

一、逻辑 NOT 运算符

逻辑 NOT 运算符由感叹号(!)表示,逻辑 NOT 运算符返回的一定是 Boolean 值(undefined报错)。

逻辑 NOT 运算符的行为如下图:

 

咱们来个例子说明一下:

先定义一组var

var num1 = [1,2,3,4];
var num2 = 0;
var num3 = 2;
var num4 = null;
var num5 = NaN;

 

1、Object

console.log(!num1);

 

2、数字0

console.log(!num2);

 

3、0以外的数字

console.log(!num3);

 

4、null

console.log(!num4);

 

5、NaN

console.log(!num5);

 

6、undefined

console.log(!num6);

 

应用方面再来几个例子:

例子1:

var num1 = true;
console.log('反的结果:' + !num1)
for(var i=0; i<3; i++){
    if(!num1){
        //当!num == true的时候执行
        console.log('true')
    }else{
        console.log('false')
    }
}

 

例子2

var num2 = false;
if (!num2){
    //当!num == true的时候执行
    for(var i=0; i<2; i++){
        console.log(i + '我执行了!')
    }
}else{
    console.log('没有执行!')
}

 

例子3:

//可以使用两个!!来进行两次转
var num3 = false;
console.log(!num3);//true
console.log(!!num3);//false

 

 

二、逻辑 AND 运算符

1、逻辑 AND 运算符用双和号(&&)表示

2、同时满足的时候返回false

3、逻辑 AND 运算的运算数可以是任何类型的,不止是 Boolean 值

逻辑and运算符的规则如下:

 

如果某个运算数不是原始的 Boolean 型值,逻辑 AND 运算并不一定返回 Boolean 值:

这个来点例子了解一下:

又是一组var:

var num1 = [1,2,3];
var num2 = [4,5,6];
var num3 = null;
var num4 = NaN;
var num5 = true;
var num6 = false;

 

1、如果一个运算数是对象,另一个是 Boolean 值,当值里面有false的时候:false,有true的时候输出第二个

console.log("1:" + (num5 && num1)); // 123
console.log("1:" + (num1 && num5)); // true
console.log("1:" + (num6 && num1)); // false
console.log("1:" + (num1 && num6)); // false

 

2、如果两个运算数都是对象,返回第二个对象

console.log("2:" + (num1 && num2));

 

3、如果某个运算数是 null,返回 null(值里面除Boolean外)

console.log("3:" + (num3 && num2)); //null
console.log("3:" + (num3 && num4)); //null
console.log("3:" + (num5 && num3)); //null
console.log("3:" + (num6 && num3)); //false

 

4、如果某个运算数是 NaN,返回 NaN(值里面除Boolean外,第一个值是NaN永远都是NaN)

console.log("4-1:" + (num2 && num4));//NaN
console.log("4-2:" + (num6 && num4));//false
console.log("4-3:" + (num5 && num4));//NaN
console.log("4-4:" + (num3 && num4));//null

 

5、如果某个运算数是 undefined,报错(除第一个值为false)

console.log("5-1:" + (num3 && num7));//报错
console.log("5-2:" + (num5 && num7));//报错
console.log("5-3:" + (num6 && num7));//false,因为第一个的时候遇到了false,所以不会报错

 

三、逻辑 OR 运算符

逻辑 OR 运算符由双竖线(||)表示:

 

与逻辑 AND 运算符相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值:

来几个例子说明一下这些:

啥也不说了,直接来var一下:

var num1 = [1,2,3];
var num2 = [4,5,6];
var num3 = null;
var num4 = NaN;
var num5 = false;
var num6 = true;

 

1、如果一个运算数是对象,另一个是false,则返回该对象

console.log("1-1:" + (num5 || num1));//1,2,3
console.log("1-2:" + (num1 || false));//1,2,3

 

2、如果两个运算数都是对象,返回第一个对象

console.log("2:" + (num1 || num2));//1,2,3

 

3、如果最后一个运算数是null,并且其他运算数值均为 false,则返回null

console.log("3:" + (false || num3));//null

 

4、如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN

console.log("4:" + (false || num4));//NaN

 

5、如果某个运算数是 undefined,发生错误

console.log("4:" + (false || num7));//报错

文章链接:http://cenggel.com/js/95.html

本文章由:青格勒编辑,转载请带上文章链接。w

借鉴网址:【http://www.w3school.com.cn】

点击任意位置关闭窗口,感谢您的支持。


打赏规则 - 为了避免对于打赏模式产生误解,说明一下几点内容:

  • 1.打赏纯粹自愿,金额不限,别太多,1块就行;
  • 2.打赏不能作为解答疑问的理由;
  • 3.打赏不能帮你做毕业设计或论文;
  • 4.打赏不能帮你做工作中的项目;
  • 5.打赏就是这不能那不能,只是单纯打赏而已。
  • 5.最后谢谢支持。
关闭
相关文章

发表评论

邮箱地址不会被公开。 必填项已用*标注