美文网首页
js中的!!和!

js中的!!和!

作者: wylb868 | 来源:发表于2021-04-01 10:56 被阅读0次

自己之前判断常用if(a)判断a有值或是true,if(!a)判断a没值或是false的
但是看到有的人会用if(!!a)或者if(!!!a),就纳闷,这样不是多此一举吗?

因为如果a有值或是true

var a = 1 或 a='1',a={},a=[],a=true
if(a){
  console.log(a)
}
if(!!a){
  console.log(a)
}
两者的结果是一样的

因为如果a没值或是false

var a = null 或 a=undefined,a=NaN,a='',a=false
if(!a){
  console.log(a)
}
if(!!!a){
  console.log(a)
}
两者的结果也是一样的

所以感觉在判断时使用!!或者!!!是多余的。
除非我们是要返回一个值或者给另一个变量赋值时,且确定要返回一个布尔值,为了防止a为空导致返回空值,可以使用。如:

var isShow = !!a
或者
function isCan(a){
  return !!a
}

所以!!类似一个强制类型转换,转换为布尔值,当我们不需要转换类型,感觉没有必要使用。

这个仅仅是本人的观点,如有不同见解,烦请留言

相关文章

  • js中的 || 和 &&

    ||和&& var a = a || {}在js中,|| 以及 &&,进行运算,返回的东西,一般不是true或者f...

  • JS中的{} + [] 和 [] + {}

    在Js中,由于它的弱类型语言特性,存在大量的隐式转换。基础类型(即string, boolean,number,n...

  • JS中的 || 和 &&

    &&: 输入表达式的第一个falsy值,如果都为真,输出最后一个truey值比如:1 && null && 2 /...

  • js中的&&和||

    js中&&运算符优先级大于|| ?&& 和 || 的作用只有一个(定义):进行布尔值的且和或的运算。当运算到某一个...

  • js中的!!和!

    自己之前判断常用if(a)判断a有值或是true,if(!a)判断a没值或是false的但是看到有的人会用if(!...

  • js 中==和===

    js是弱类型语言,==比较时会进行隐式转换。比如 1 == '1'是true,因为会把他们自动转化为数字进行处理。...

  • 单引号和双引号

    JS中 js中单引号和双引号的区别(html中属性规范是用双引号,js中字符串规定是用单引号)(js中单引号区别和...

  • 概念集合

    JS中的数组和Arrary的区别 js中的数组就是array对象

  • js中 == 和 === 的区别

    今天看一些项目文档,找到了一个ele的node面试文档,里面总结了一些招聘问题,我感觉还是有点干货中文地址Engl...

  • js中 !==和 !=的区别

    在使用var result = this.$storage.getSync('versionText');时,发现...

网友评论

      本文标题:js中的!!和!

      本文链接:https://www.haomeiwen.com/subject/xhxtkltx.html