js中!和!!的区别及用法
js中!和!!的区别及用法
js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值,
1、!可将变量转换成boolean类型,null、undefined和空字符串取反都为false,其余都为true。
1 !null=true
2
3 !undefined=true
4
5 !''=true
6
7 !100=false
8
9 !'abc'=false
2、!!常常用来做类型判断,在第一步!(变量)之后再做逻辑取反运算,在js中新手常常会写这样臃肿的代码:
判断变量a为非空,未定义或者非空串才能执行方法体的内容
var a;
if(a!=null&&typeof(a)!=undefined&&a!=''){//a有内容才执行的代码
}
实际上我们只需要写一个判断表达:
if(!!a){//a有内容才执行的代码...
}
就能和上面达到同样的效果。a是有实际含义的变量才执行方法,否则变量null,undefined和''空串都不会执行以下代码。
可以总结出来,“!”是逻辑与运算,并且可以与任何变量进行逻辑与将其转化为布尔值,“!!”则是逻辑与的取反运算,尤其后者在判断类型时代码简洁高效,省去了多次判断null、undefined和空字符串的冗余代码。
3、三个感叹号
三个感叹号没有什么意义,和一个感叹号的效果是一样的。一般他们认为!!表示将一个变量转为boolean型,再加一个!是对boolean型取反,和!false或者!true一样。
js中!和!!的区别及用法相关推荐
- js中继承的几种用法总结(apply,call,prototype)
本篇文章主要介绍了js中继承的几种用法总结(apply,call,prototype) 需要的朋友可以过来参考下,希望对大家有所帮助 一,js中对象继承 js中有三种继承方式 1.js原型(proto ...
- 第22篇 js中的this指针的用法
前面把js的相关知识总结了下,今天把js中的上下文的this,对于强类型语言,this的用法非常的单一,因为他们没有js特有的动态绑定. 首先看下面代码: function funcA() {this ...
- js中try和catch的用法
js中try和catch的用法 版权声明:本文为@lyhh5原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明 原文链接:https://blog.csdn.net/l ...
- JS中 ?? 与 || 的区别
JavaScript 中 ?? 与 || 的区别 相同点 用法相同,都是前后是值,中间用符号连接.根据前面的值来判断最终返回前面的值还是后面的值. 值1 ?? 值2 值1 || 值2 不同点 判断方式 ...
- JS中break和continue的用法
break和continue的用法 Break--跳出循环.判断,用于判断或循环语句中 Continue--跳出本次循环,只能用于循环语句中. 区分是否为自定义标识符,其后加冒号,为自定义标识符. B ...
- js中innerHTML与innerText的用法与区别【转自http://blog.sina.com.cn/johnpu】
用法:SupeSite/X-Space官方站%x-ZP$k?'DWZ_{ SupeSite/X-Space官方站K?_/T9s3^QJ a4X <div id="test"& ...
- js 中null,undefined区别
首先摘自阮一峰先生的文章: 大多数计算机语言,有且仅有一个表示"无"的值,比如,C语言的NULL,Java语言的null,Python语言的None,Ruby语言的nil. 有点奇 ...
- js取服务器系统时间,JS中new Date()用法及获取服务器时间
1.获取服务器时间: var now = new Date($.ajax({async: false}).getResponseHeader("Date")); 2.new Dat ...
- js中动态函数的一些用法尝试
在js中,经常会使用到函数,普通函数虽然很方便,但是,形式略显复杂,特别是代码量大的时候,这时,我们可以使用动态函数,动态函数形式比较简洁,并且比普通函数表达式更灵活,其结构如下: var fun_n ...
最新文章
- 机器学习的基础图表!
- pandas dataframe与series
- mysql中的执行计划_MySQL中的执行计划explain详解
- 蓝松短视频经验分享----抠图和动画设计
- 人人网的系统架构 网上搜集
- JSTL-EL表达式
- gifcam使用缩小内存_Fedora 上的桌面环境内存占用测试 | Linux 中国
- cookie 和 token 都存放在 header 中,为什么不会劫持 token?____token和cookie的区别
- elipse+pydev+python开发arcgis脚本程序
- Nodejs事件循环
- ubuntu下装java
- Apache 虚拟主机
- React 小案例 路由跳转
- ip模拟工具modify headers
- 数字化生产车间可视化管理——电子看板
- php 修改图像大小,如何改变图片大小
- linux 怎么烧录光盘,Linux下的光盘烧录工具brasero
- h5前端开发培训,html5学习笔记
- CRUD的意思???
- 互联网创业的准备——架构
热门文章
- Android中的数据传递之Parcelable接口
- (二)OpenStack---M版---双节点搭建---数据库安装和配置
- php自定义扩展函数,Laravel框架中扩展函数、扩展自定义类的方法
- MaximumGap的思想
- java 内部类泛型,java – 使用泛型强制转换为内部类
- idea配置jfinal_intellij idea安装与配置(Java开发配置篇)
- 和php工具箱一样的,将php工具箱或其它类似工具正确安装好,并写出安装步骤与注意事项...
- build.xml java打包_配置pom.xml用maven打包java工程的方法(推荐)
- 我的世界服务器伤害增加bug,我的世界服务器BUG解决办法大全
- 如何防范SpringBoot 相关漏洞?