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

 更新时间:2014年09月21日 11:32:18   投稿:whsnow  
!!一般用来将后面的表达式强制转换为布尔类型的数据,因为javascript是弱类型的语言,所以有时需要强制转换为相应的类型

!!一般用来将后面的表达式强制转换为布尔类型的数据(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入门教程基础篇

    javascript入门教程基础篇

    这篇文章主要介绍了javascript入门教程,全部内容都是javascript的基础知识,内容很全面,特别适合刚刚学习javascript的朋友学习,希望大家仔细阅读javascript教程。
    2015-11-11
  • 文字溢出实现溢出的部分再放入一个新生成的div中具体代码

    文字溢出实现溢出的部分再放入一个新生成的div中具体代码

    说文字溢出,如何实现溢出的文字放入一个新生成的div中,原理就是判断是否能在div里放下,如果不能,则在应该断开的地方,差入到新的div中
    2013-05-05
  • js图片自动轮播代码分享(js图片轮播)

    js图片自动轮播代码分享(js图片轮播)

    这篇文章主要介绍了js图片自动轮播代码,利用图片width显示位置来播放图片和利用数组放入图片经行轮播,需要的朋友可以参考下
    2014-05-05
  • js图片轮播特效代码分享

    js图片轮播特效代码分享

    这篇文章主要介绍了js图片轮播特效,图片切换效果特别适合做产品演示,感兴趣的小伙伴可以参考下
    2015-09-09
  • 鼠标左键单击冲突的问题解决方法(防止冒泡)

    鼠标左键单击冲突的问题解决方法(防止冒泡)

    一个页面实现了两种右键菜单,当鼠标左键单击空白处时,右键菜单并不隐藏,下面为大家解决鼠标左键单击冲突的问题
    2014-05-05
  • js技巧之十几行的代码实现vue.watch代码

    js技巧之十几行的代码实现vue.watch代码

    相信很多的用vue的人都知道vue双向绑定的原理建立在,给属性绑定了getter和setter,在属性被改变的同时触发视图的再渲染。而本期也是借助这两个内置方法实现vue内的watch
    2018-06-06
  • 基于JavaScript实现全选、不选和反选效果

    基于JavaScript实现全选、不选和反选效果

    这篇文章主要为大家详细介绍了基于JavaScript实现全选、不选和反选效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • JS实现瀑布流效果

    JS实现瀑布流效果

    这篇文章主要为大家详细介绍了JS实现瀑布流效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • IE bug table元素的innerHTML

    IE bug table元素的innerHTML

    做项目时遇到一个数据表需要展示,由于坚定着使用合理标签表示合适内容,于是使用了table,悲剧开始了。
    2010-01-01
  • JS 事件绑定函数代码

    JS 事件绑定函数代码

    JS 事件绑定函数代码,解决了浏览器兼容,现在可以兼容IE6 7 8 FF 谷歌
    2010-04-04

最新评论