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


Posted in Javascript onSeptember 21, 2014

!!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false;

经常看到这样的例子:

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 相关文章推荐
jquery ready函数源代码研究
Dec 06 Javascript
基于JQuery的抓取博客园首页RSS的代码
Dec 01 Javascript
jQuery中(function($){})(jQuery)详解
Jul 15 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
Aug 09 Javascript
Node.js插件安装图文教程
May 06 Javascript
vue组件 $children,$refs,$parent的使用详解
Jul 31 Javascript
最后说说Vue2 SSR 的 Cookies 问题
May 25 Javascript
微信小程序将字符串生成二维码图片的操作方法
Jul 17 Javascript
Vue.Draggable拖拽功能的配置使用方法
Jul 29 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
Feb 02 Javascript
Vue路由守卫之路由独享守卫
Sep 25 Javascript
JavaScript简单编程实例学习
Feb 14 Javascript
原生JavaScript实现合并多个数组示例
Sep 21 #Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
Sep 21 #Javascript
将数字转换成大写的人民币表达式的js函数
Sep 21 #Javascript
判断window.onload是否多次使用的方法
Sep 21 #Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 #Javascript
JS实现清除指定cookies的方法
Sep 20 #Javascript
JS合并数组的几种方法及优劣比较
Sep 19 #Javascript
You might like
PHP基础学习小结
2011/04/17 PHP
PHP迭代器实现斐波纳契数列的函数
2013/11/12 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
JQuery 入门实例1
2009/06/25 Javascript
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
python中的二维列表实例详解
2018/06/19 Python
Django实现分页功能
2018/07/02 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
python实现FTP循环上传文件
2020/03/20 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
元旦文艺汇演主持词
2014/03/26 职场文书
《诚实与信任》教学反思
2014/04/10 职场文书
争先创优个人总结
2015/03/04 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
Python OpenCV形态学运算示例详解
2022/04/07 Python