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

 更新时间:2014年04月10日 15:30:45   作者:  
这篇文章主要介绍了JavaScript中双叹号(!!)的作用,需要的朋友可以参考下
经常看到这样的例子:
复制代码 代码如下:

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使用正则控制input输入框允许输入的值方法大全

    javascript使用正则控制input输入框允许输入的值方法大全

    在做项目的时候,我们经常会遇到控制input输入框允许输入的值为数字,字母,汉字或者混排的情况,那么我们怎么来处理呢,下面我们就来探讨怎么通过用javascript正则来实现
    2014-06-06
  • Javascript类型系统之undefined和null浅析

    Javascript类型系统之undefined和null浅析

    这篇文章主要介绍了Javascript类型系统之undefined和null的知识,通过本文还简单给大家介绍了javascript中null和undefined的区别的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • js鼠标悬浮出现遮罩层的方法

    js鼠标悬浮出现遮罩层的方法

    这篇文章主要介绍了js鼠标悬浮出现遮罩层的方法,以实例形式较为详细的分析了html及css页面布局与js特效的实现方法,是非常实用的技巧,需要的朋友可以参考下
    2015-01-01
  • Google Suggest ;-) 基于js的动态下拉菜单

    Google Suggest ;-) 基于js的动态下拉菜单

    Google Suggest ;-) 基于js的动态下拉菜单...
    2006-10-10
  • JS原型链 详解及示例代码

    JS原型链 详解及示例代码

    本文主要介绍JS原型链的知识,这里整理了相关资料及简单实现示例代码,有兴趣的小伙伴可以参考下
    2016-09-09
  • webpack的 rquire.context用法实现工程自动化的方法

    webpack的 rquire.context用法实现工程自动化的方法

    这篇文章主要介绍了webpack的 rquire.context用法实现工程自动化的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • javascript移动端 电子书 翻页效果实现代码

    javascript移动端 电子书 翻页效果实现代码

    这篇文章主要介绍了javascript移动端 电子书 翻页效果实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 详解JavaScript对象序列化

    详解JavaScript对象序列化

    这篇文章主要为大家介绍了JavaScript对象序列化的相关资料,需要的朋友可以参考下
    2016-01-01
  • JS定义网页表单提交(submit)的方法

    JS定义网页表单提交(submit)的方法

    这篇文章主要介绍了JS定义网页表单提交(submit)的方法,实例分析了javascript实现表单提交执行自定义函数的方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 5秒后跳转到另一个页面的js代码

    5秒后跳转到另一个页面的js代码

    跳转到另一个页面的方法有很多,在本文将为大家详细介绍下js中如何实现5秒后跳转到另一个页面,感兴趣的朋友可不要错过
    2013-10-10

最新评论