js中(双感叹号)符号的用法解读

最近在前端vue工程开发中看到一个js用法,对js初学者来说这是一个容易混淆的地方,趁此机会研究研究!!的用法。

if (!!getItem('Authorization')) {
console.log('已登录')
}

1、!的用法

!可将变量转换成布尔类型,对null、undefined和空字符串取反后均为true,对于非空字符串或非null对象,执行!运算后则为false,例如:
!null = true;
!undefined = true;
!'' = true;
!'wang' = false;


2、!!的用法

知道了!用法,!!就好理解啦,其实就是取非后再取非,常常用来做非空判断。!!常常可以简化代码,例如下面判断变量val为非null,未定义或者非空串才能执行方法体。
复杂写法:

var val;
if(val!=null&&typeof(val)!=undefined&&val!=''){
    console.log('执行...');
}

利用!!只需要写一个判断表达:

if(!!val){
    console.log('执行...');
}

两种写法达到的效果相同,val是有实际含义的变量才执行if内容,否则变量是null、undefined或''时都不会执行以下if代码块。综上所述!可以与变量进行逻辑与运算,然后转换为布尔值,!!正是这种运算的一个很好运用,使js在判断变量类型时变得高效。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值