JavaScript中双叹号(!!)作用示例介绍


Posted in Javascript onApril 10, 2014

经常看到这样的例子:

var a; 
var b=!!a;

a默认是undefined。!a是true,!!a则是false,所以b的值是false,而不再是undefined,也非其它值,主要是为后续判断提供便利。

!!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false;
因为javascript是弱类型的语言(变量没有固定的数据类型)所以有时需要强制转换为相应的类型,类似的如:

a=parseInt(“1234″) 
a=”1234″-0 //转换为数字 
b=1234+”” //转换为字符串 
c=someObject.toString() //将对象转换为字符串

其中第1种、第4种为显式转换,2、3为隐式转换

布尔型的转换,javascript约定规则为

false、undefinded、null、0、”” 为 false
true、1、”somestring”、[Object] 为 true

对null与undefined等其他用隐式转换的值,用!操作符时都会产生true的结果,所以用两个感叹号的作用就在于将这些值转换为“等价”的布尔值;
再来看看:

var foo; 
alert(!foo);//undifined情况下,一个感叹号返回的是true; 
alert(!goo);//null情况下,一个感叹号返回的也是true; 
var o={flag:true}; 
var test=!!o.flag;//等效于var test=o.flag||false; 
alert(test);

这段例子,演示了在undifined和null时,用一个感叹号返回的都是true,用两个感叹号返回的就是false,所以两个感叹号的作用就在于,如果明确设置了变量的值(非null/undifined/0/”“等值),结果就会根据变量的实际值来返回,如果没有设置,结果就会返回false。
Javascript 相关文章推荐
Javascript 生成指定范围数值随机数
Jan 09 Javascript
jquery 学习之二 属性(类)
Nov 25 Javascript
说明你的Javascript技术很烂的五个原因
Apr 26 Javascript
js自动闭合html标签(自动补全html标记)
Oct 04 Javascript
使用js dom和jquery分别实现简单增删改
Sep 11 Javascript
jQuery中:gt选择器用法实例
Dec 29 Javascript
nw.js实现类似微信的聊天软件
Mar 16 Javascript
JavaScript实现带标题的图片轮播特效
May 20 Javascript
JavaScript修改作用域外变量的方法
Mar 25 Javascript
easyui导出excel无法弹出下载框的快速解决方法
Nov 10 Javascript
node.js操作MongoDB的实例详解
Oct 11 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
Jul 29 Javascript
js实现图片旋转的三种方法
Apr 10 #Javascript
javascript:void(0)的问题使用探讨
Apr 10 #Javascript
ajax请求乱码的解决方法(中文乱码)
Apr 10 #Javascript
php的文件上传入门教程(实例讲解)
Apr 10 #Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
Apr 10 #Javascript
javascript的propertyIsEnumerable()方法使用介绍
Apr 09 #Javascript
常见的原始JS选择器使用方法总结
Apr 09 #Javascript
You might like
PHP date函数参数详解
2006/11/27 PHP
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
input按钮的事件处理大全
2010/12/10 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
webpack打包非模块化js的方法
2018/10/24 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
vant IndexBar实现的城市列表的示例代码
2019/11/20 Javascript
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
Python 常用string函数详解
2016/05/30 Python
python实现员工管理系统
2018/01/11 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
2014升学宴答谢词
2014/01/26 职场文书
小学生成长感言
2014/01/30 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
杨善洲电影观后感
2015/06/04 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
V Rising 服务器搭建图文教程
2022/06/16 Servers