Javascript--Boolean运算符

本文详细介绍了三种布尔运算符:逻辑NOT、逻辑AND和逻辑OR的使用方法及特点,并通过实例展示了这些运算符如何应用于JavaScript中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Boolean运算符有3种:

1.逻辑NOT

逻辑NOT由!表示.与逻辑OR和逻辑AND运算符不同的是:逻辑NOT运算符返回的一定是Boolean值.

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

    • 如果运算数是对象,返回false
    • 如果运算数是0以外的其他任何数字,返回false
    • 如果运算数是0,返回true
    • 如果运算数是null,返回true
    • 如果运算数是NaN,返回true
    • 如果运算数是undefined,发生错误
    • 对Boolean值求非,从而得到真正的Boolean值

例子:

        function display(value){
            document.write(value+"<br/>");
        }
        
        display(!new Object());        
        display(!100);
        display(!0);
        display(!null);
        display(!NaN);
        display(!true);
        display(!false);
        
        //undefined
        display(!ss);

结果:

image

总结:

  • 如果运算数是0,null,NaN以及未定义的值,则求非之后,结果为true
  • 如果运算数是0以外的任何数字或对象,则求非之后,结果为false

2.逻辑AND运算符

逻辑AND运算符由&&表示.逻辑AND是简便运算,即:如果第一个运算数决定了结果,就不再计算第二个运算数,对于逻辑与来说,如果第一个运算数是false,无论第二个运算数的值是什么,都不可能等于true.

下面采用真值的方式来描述:

第一个操作数第二个操作数结果
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

逻辑AND运算符的运算数可以是任何类型的,不止是Boolean值.如果某个运算数不是原始的Boolean值,逻辑AND并不一定返回Boolean值.

    • 如果第一个运算数是对象,那么返回第二个运算数
    • 如果某个运算数是null,则返回null
    • 如果某个运算数是NaN,则返回NaN
    • 如果某个运算数是undefined,则发生错误

例子:

        function display(value){
            document.write(value+"<br/>");
        }
        
        var trueValue = true;
        var falseValue = false;
        
        var obj1 = new Object();
        obj1.name="obj1";
        
        var obj2 =new Object();
        obj2.name="obj2";
        
        var result;
        //如果第一个运算数是对象,另一个运算数是Boolean值,则返回Boolean值
        result = obj1 && trueValue;
        display(result); 
        result = obj1 && falseValue;
        display(result); 
        
        //如果第一个运算数是Boolean值,则会按照简便运算方式运行
        result = trueValue && obj1;//obj1 && true;
        display(result.name);
        result = falseValue && obj1;
        display(result);  
        display(trueValue && 'www')
        
        
        //如果两个运算数都是对象,则返回第二个对象
        result = obj1 && obj2;
        display(result.name);  
        
        //如果某个运算数是null,则返回null
        result = obj1 && null;
        display(result);
        
        //如果某个运算数是NaN,则返回NaN
        result = obj1 && NaN;
        display(result);
        
        //如果某个运算数是undefined,则发生错误
        result = obj1 && ss;
        display(result);

结果:

image

总结:

  • 当变量为null,NaN以及未定义值的时候和false一样,拥有否决权,分别返回null,NaN,undefined.
  • 当运算数为对象时,都将通过运算.如果第一个运算数通过运算,那么将返回第二个运算数.
  • 当运算数未被声明时,引发错误.

3.逻辑OR运算符

逻辑OR运算符由||表示.逻辑OR运算符也是简便运算,如果第一个运算数为true,则不再计算第二个运算数.

下面采用真值的方式来描述:

第一个操作数第二个操作数结果
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

逻辑OR运算符的运算数可以是任何类型的,不止是Boolean值.如果某个运算数不是原始的Boolean值,逻辑OR并不一定返回Boolean值.

    • 如果第一个运算数是对象,则返回该对象
    • 如果第一个运算数为false,null,NaN,undefined,第二个运算数为null,则返回null
    • 如果第一个运算数为false,null,NaN,undefined,第二个运算数为NaN,则返回NaN
    • 如果第一个运算数为false,null,NaN,undefined,第二个运算数为undefined,则引发错误.

例子:

        function display(value){
            document.write(value+"<br/>");
        }
        
        var trueValue = true;
        var falseValue = false;
        
        var obj1 = new Object();
        obj1.name="obj1";
        
        var obj2 =new Object();
        obj2.name="obj2";
        
        var result;       
        
        //如果第一个运算数是对象,则返回该对象
        result = obj1 || trueValue;
        display(result.name); 
        result = obj1 || falseValue;
        display(result.name);                 
        result = obj1 || obj2;
        display(result.name);  
        
        //如果第一个运算数为false,null,NaN,undefined,第二个运算数为null,则返回null
        display(false || null);
        
        //如果第一个运算数为false,null,NaN,undefined,第二个运算数为NaN,则返回NaN
        display(null || NaN);
        
        //如果第一个运算数为false,null,NaN,undefined,第二个运算数为undefined,则引发错误
        display(NaN || ss);
        display(ss || ss);

结果:

image

转载于:https://www.cnblogs.com/oneword/archive/2009/12/24/1631344.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值