JavaScript碎碎念

文章目录

!和!!

逻辑非运算符!接受一个参数,并按如下运作:

  1. 将操作数转化为布尔类型:true/false。
  2. 返回相反的值。
alert( !true ); // false
alert( !0 ); // true

两个非运算!! 用时候用来将某个值转化为布尔类型

alert( !!"non-empty string" ); // true
alert( !!null ); // false

第一个非运算将该值转化为布尔类型并取反,第二个非运算再次取反。最后我们就得到了一个任意值到布尔值的转化。
有一个略显冗长的方式也可以实现同样的效果 —— 一个内建的 Boolean 函数:

alert( Boolean("non-empty string") ); // true
alert( Boolean(null) ); // false

??

空值合并运算符(nullish coalescing operator)的写法为两个问号??

它对待null和undefined的方式类似,当一个值既不是null也不是undefined时,将其称为“已定义的”
a??b的结果是:
● 如果a是已定义的,则结果为a
● 如果a不是已定义的,则结果为b

||比较
或运算符可以与??运算符相同的方式使用,优先级相同
区别:
||返回第一个真值
??返回第一个已定义的值

||无法区分false、0、空字符串""和null/undefined,都是假值

如果只想在变量的值为null/undefined时使用默认值,也就是说,当该值确实未知或未被设置时,就可以使用??

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值