今天看到一个前辈使用了三个感叹号来判断值,就查了一下,综合了几篇文章的观点

1、一个感叹号

!可将变量转换成boolean类型,null、undefined和空字符串取反都为false,其余都为true。

!null=true

!undefined=true

!''=true

!100=false

!'abc'=false

2、两个感叹号

!!常常用来做类型判断,在第一步!(变量)之后再做逻辑取反运算

let a;

if(a!=null&&typeof(a)!=undefined&&a!=''){

//a有内容才执行的代码

}

if(!!a){

//a有内容才执行的代码...

}

上面两种写法实现的功能一样,下面一种明显更简单

3、三个感叹号

三个感叹号没有什么意义,和一个感叹号的效果是一样的。一般他们认为!!表示将一个变量转为boolean型,再加一个!是对boolean型取反,和!false或者!true一样。

本文转载自:https://blog.csdn.net/lx_1024/article/details/79807228

js 两个感叹号,js 一个两个三个感叹号区别相关推荐

  1. 每天一道LeetCode-----一个整数序列,每个元素出现两次,只有一个(两个)出现一次,找到这个(这两个)元素

    Single Number 原题链接Single Number 一个整数序列,每个数字都出现两次只有一次数字出现了一次,找到只出现一次的那个数字 位运算的异或算法有如下几个性质 值相同的两个数字异或结 ...

  2. JS对url进行编码和解码(三种方式区别)

    Javascript语言用于编码的函数,一共有三个,最古老的一个就是escape().虽然这个函数现在已经不提倡使用了,但是由于历史原因,很多地方还在使用它,所以有必要先从它讲起. escape 和 ...

  3. linux url解码,js对url进行编码和解码(三种方式区别)

    *** 只有 0-9[a-Z] $ - _ . + ! * ' ( ) , 以及某些保留字,才能不经过编码直接用于 URL. ***例如:搜索的中文关键字,复制网址之后再粘贴就会发现该URL已经被转码 ...

  4. 感叹号的形状像什么_三个感叹号的句子

    八世界地图引出的发现找出课文中连用三个感叹号的句子读一读想一想它们表现了 <八世界地图引出的发现>课文中连用三个感叹号的句子: 瞧!这两个地方的形状竟是这般不可思议地吻合!魏格纳被自己偶然 ...

  5. js如何将数据放在一个内置窗口里面_Java 爬虫遇上数据异步加载,试试这两种办法!...

    这是 Java 爬虫系列博文的第三篇,在上一篇 Java 爬虫遇到需要登录的网站,该怎么办? 中,我们简单的讲解了爬虫时遇到登录问题的解决办法,在这篇文章中我们一起来聊一聊爬虫时遇到数据异步加载的问题 ...

  6. [js] 在DOM上同时绑定两个点击事件(一个用捕获,一个用冒泡),事件总共会执行几次,先执行哪个事件?

    [js] 在DOM上同时绑定两个点击事件(一个用捕获,一个用冒泡),事件总共会执行几次,先执行哪个事件? 两次 先捕获,后冒泡 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一 ...

  7. html判断整数小数点后两位小数点,js控制input框只能输入数字和一位小数点且小数点后面只有两位小数...

    js控制input框只能输入数字和一位小数点且小数点后面只有两位小数 js控制input框只能输入数字和一位小数点且小数点后面只有两位小数 212或 0.66; 过滤 00000,1.10,0.00 ...

  8. [前台]---js重复上传一张图片两次,第二次失败的解决办法和思路

    js重复上传一张图片两次,第二次会失败,解决办法就是修改input的value值. 先上代码: <input style="display:none" type=" ...

  9. js中如何截取小数点后两位数字

    用Javascript取float型小数点后两位,例22.127456取成22.13,如何做? 1. 最笨的办法. 1 function  get() 2 { 3    var s = 22.1274 ...

最新文章

  1. 2015级C++第14周实践项目 模板
  2. IOS开发笔记2-C语言基础复习
  3. 第一次使用VS Code时你应该知道的一切配置
  4. linun——SElinux的简单理解
  5. 非域计算机上模拟域用户,App-V如何让非域内(工作组)PC 也能享受应用程序虚拟化...
  6. Gridview一次更新所有记录
  7. mysql 创建分区表_Mysql分区表及自动创建分区Partition
  8. 一起学习C语言:初步进入编程世界(一)
  9. 数百名车主因断网被锁车外 马斯克:将确保此类事件不再发生
  10. powershell 设置代理_WSL2中使用proxychains ng代理加速
  11. JDBC工具类,基于C3P0的数据库连接池,提供获取连接池、获取连接对象、释放资源和封装事务操作的方法...
  12. 操作系统原理实验一(一)
  13. web前端课程设计——K.X的博客
  14. 微信公众号:地图定位
  15. Lebesgue可测函数
  16. 使用hosts屏蔽网站
  17. 线性方程组(六)- 线性方程组的应用
  18. 入坑NLP - 自然语言处理领域概述
  19. 手写文字怎么识别,手写文字识别的方法
  20. Strategic game poj1463

热门文章

  1. 北京交管12123学法减分之当前部门业务尚未开通
  2. sklearn.KFold用法示例
  3. 分享五款名不见经传但是非常实用的小众软件
  4. PS入门(1-3) 图像通道
  5. matlab 高斯脉冲整形,matlab高斯脉冲波形
  6. Python单步运行方法
  7. 夏利和法拉利的对比测试报告
  8. Python实现google翻译,免费多线程使用谷歌翻译接口
  9. GitLab的权限管理及Merge Request
  10. 漫谈百度阿里腾讯三巨头基因,盈利移动未来