JavaScript中的逻辑运算符的各种用法

逻辑运算符又称布尔运算符,最早的应用应该是在数字电路中,有“&” ,“|” ,“!”,这三种运算符;在编程语言中,“&”,“|”称为按位运算符,“&&”,“||”称为短路运算符,编程中的逻辑运算符有些值得注意的地方;下面就对JavaScript中的逻辑运算进行一些总结。


1,逻辑非(!)


console.group('逻辑非(!)')
            //操作数是一个对象返回true
            console.log(! {name:'Turing'})
            //操作数是一个空字符串返回false
            console.log(! '')
            //操作数是一个非空字符串返回true
            console.log(! 'Hello')
            //操作数是数值0,返回true
            console.log(! 0)
            //操作数是NaN,返回true
            console.log(! NaN)
            //操作数是undefined,返回true
            console.log(!undefined)
            //操作数是null,返回true
            console.log(! null)

console.groupEnd()

TODO: 非运算的结果是布尔值,“!”运算之前会对操作数进行类型转换,空字符串,NaN,undefined,null,数值0都会被转化为布尔值false,其余的操作数会被转化为true


2,按位与(&)

console.group('按位与(&)')
            console.log(3 & 6)//2
            console.log(3 & '')//0
            console.log(3 & '5' )//1
            console.log('2' & '2') //2
            console.log('2s' & '2s') //0
            console.log({name:'Jobs'} & {name:'Turing'})//0
            console.log(true & true)//1
            console.log('Hello' & 'OK') //0
           console.log([3] & [3])//3
            console.log([3,3] & [3]) //0
           console.log(null & null) // 0
 console.groupEnd()

TODO:“&”运算的返回值是数字,按位与运算和数电中的与运算思想是一样的,是对二进制数进行运算;如果操作数是数字那么就对操作数进行二进制的与运算,例如3 & 6 ,相当于二进制 11 & 110 ,结果是二进制数10 ,打印输出的结果就是十进制数2;如果操作数是纯数字字符串,那么会被转化为数字去正常进行与运算,否则就变为0 ;如果操作数是数组对象时,那么当数组中仅有一个数字(或字符串数字)时也能正常转化为数字去进行运算,否则就会变为0;操作数是其他的对象时都会被变为0。


3,逻辑与(&&)


console.group('逻辑与&&')
            console.log({name:"Jobs"} && {name:"Turing"}) //Object { name: "Turing" }
            console.log(null && undefined) //null
            console.log([0] && {name:"Turing"}) //Object { name: "Turing" }

            console.log(3 && 5) //5

console.groupEnd()


TODO :逻辑&&运算的返回值是操作数,根据操作数的(被转化为布尔值时的)布尔值来确定是返回前一个操作数还是后一个操作数,如果前一个数(转化为布尔值)是true,那么返回后一个操作数,否则返回前一个操作数(这里也体现了短路运算的内涵)。被视为false的操作数和非运算一样


4,逻辑或(||)


TODO:计算原理和逻辑与运算一样,返回的是操作数;若前一个(转化为布尔值)是true则返回前一个数,否则返回后一个数


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值