JavaScript中&&与||的独特用法

在JavaScript中,&& 和||不仅用于 boolean 类型也用于对象。
&&:

  1. 如果&&左侧是为 false ,那么直接返回 false。
    console.log(false&&true);//false
    console.log(false&&“abc”);//false
    统统直接返回false。

  2. 如果&&左侧为 true,则执行&&右边的语句,并返回右边语句的返回值。
    console.log(true&&“abc”);//abc
    console.log(true&&false);//false
    console.log(true&&(1+2));//3

  3. 如果&&左右两边的返回值都是 object 类型(不是boolean类型),则返回第二个对象。
    console.log(“abc”&&“def”);//def
    console.log(1+1&&10+11);//21

  4. 如果&&左右任何一边是 NaN,则返回 NaN。
    console.log(NaN&&true);//NaN
    console.log(NaN&&“abc”);//NaN

  5. 如果&&左右任何一边是 null,则返回 null。
    console.log(null&&true);//null
    console.log(null&&“abc”);//null

  6. 如果&&左右任何一边是 undefinded,则返回 undefined。
    console.log(undefinded&&true);//undefinded
    console.log(undefinded&&“abc”);//undefinded

  7. 如果null,NaN,undefined同时出现(两个或三个),谁在&&左边返回谁。
    console.log(null&&NaN&&undefined);//null
    console.log(NaN&&null&&undefined);//NaN
    console.log(undefined&&NaN&&null);//undefined

||:

  1. 如果||左侧为 true, 则直接返回 true。
    console.log(true||“abc”);//true
    console.log(true||false);//true

  2. 如果||左侧为 false,则执行||右边的语句,并返回右边语句的返回值。
    console.log(false||true);//true
    console.log(false||“abc”);//abc
    console.log(false||(1+2));//3

  3. 如果&&左右两边的返回值都是 object 类型(不是boolean类型),则返回第一个对象。
    console.log(“abc”||“def”);//abc
    console.log(1+1||10+11);//2

  4. 如果||左右两边都是 null,则返回 null,否则返回另一个对象。
    console.log(null||null);//null
    console.log(null||“abc”);//abc

  5. 如果||左右两边都是 NaN,则返回 NaN,否则返回另一个对象。
    console.log(NaN||NaN);//NaN
    console.log(NaN||“abc”);//abc

  6. 如果||左右两边都是 undefined,则返回 undefined,否则返回另一个对象。
    console.log(undefined||undefined);//undefined
    console.log(undefined||“abc”);//abc

  7. 如果null,NaN,undefined同时出现(两个或三个),谁在||右边返回谁。
    console.log(null||NaN||undefined);//undefined
    console.log(NaN||null||undefined);//undefined
    console.log(undefined||NaN||null);//null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值