js中!和!!的区别及用法

一、!和!!对比

1、介绍

  • js中 ! 的用法是比较灵活的,它做逻辑运算常常会用!做类型判,可将变量转换成boolean类型,null、undefined和空字符串取反都为true,其余都为false。
1.1实例:(取反)
!null=true
 
!undefined=true
 
!''=true
 
!100=false
 
!'abc'=false

2、介绍

  • !!常常用来做类型判断,在第一步!(变量)之后再做逻辑取反运算,在js中新手常常会写这样臃肿的代码
2.1实例: (判断变量a为非空,未定义或者非空串)
var a;
if(a!=null&&typeof(a)!=undefined&&a!=''){
    //a有内容才执行的代码  
}

实际上我们只需要写一个判断表达:
if(!!a){
    //a有内容才执行的代码...  
}

二、总结

  • “!”是逻辑与运算,并且可以与任何变量进行逻辑与将其转化为布尔值
  • “!!”则是逻辑与的取反运算,尤其后者在判断类型时代码简洁高效,省去了多次判断null、undefined和空字符串的冗余代码。

你可能感兴趣的:(js中!和!!的区别及用法)