谈谈JS中的!!

 更新时间:2017年12月07日 10:55:52   作者:钻石悦  
!!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false。下面看看通过本文给大家介绍了JS中的!!,需要的朋友参考下吧

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

var a;
var b=!!a;

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

因为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。

JS中的“!!”

var o={flag:true}; 
 var test=!!o.flag;//等效于var test=o.flag||false; alert(test);

由于对null与undefined用!操作符时都会产生true的结果,

所以用两个感叹号的作用就在于,

如果明确设置了o中flag的值(非 null/undefined/0""/等值),自然test就会取跟o.flag一样的值;

如果没有设置,test就会默认为false,而不是 null或undefined。

总结

以上所述是小编给大家介绍的JS中的!!,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • easyUI实现(alert)提示框自动关闭的实例代码

    easyUI实现(alert)提示框自动关闭的实例代码

    下面小编就为大家带来一篇easyUI实现(alert)提示框自动关闭的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • JS运动框架之分享侧边栏动画实例

    JS运动框架之分享侧边栏动画实例

    这篇文章主要介绍了JS运动框架之分享侧边栏动画,实例分析了javascript操作div及css的技巧,需要的朋友可以参考下
    2015-03-03
  • 轻松实现javascript数据双向绑定

    轻松实现javascript数据双向绑定

    这篇文章教大家轻松实现javascript数据双向绑定,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • JS实现新浪博客左侧的Blog管理菜单效果代码

    JS实现新浪博客左侧的Blog管理菜单效果代码

    这篇文章主要介绍了JS实现新浪博客左侧的Blog管理菜单效果代码,可实现基于鼠标点击事件动态操作页面元素样式的功能,界面美观大方,简洁实用,需要的朋友可以参考下
    2015-10-10
  • javascript中CheckBox全选终极方案

    javascript中CheckBox全选终极方案

    在javascript页面中实现CheckBox或者Radio的选中状态是一件很容易的事情,下面我们来给大家展示下在asp.net中使用javascript中CheckBox全选终极方案,有需要的小伙伴可以参考下。
    2015-05-05
  • javascript检查浏览器是否已经启用XX功能

    javascript检查浏览器是否已经启用XX功能

    本文给大家分享的是检测浏览器是否支持cookie功能,检查浏览器是否已经启用Java支持功能以及获取当前浏览器的信息,十分的实用,有需要的小伙伴可以参考下。
    2015-07-07
  • Javascript页面跳转常见实现方式汇总

    Javascript页面跳转常见实现方式汇总

    这篇文章主要介绍了Javascript页面跳转常见实现方式,结合实例汇总分析了JavaScript常用的七种页面跳转实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • javascript表单验证 - Parsley.js使用和配置

    javascript表单验证 - Parsley.js使用和配置

    大家还记得我们曾经介绍过的表单验证jquery插件jquery.validationEngine吧;天介绍的Parsley同样也可以帮助你只使用简单的配置即可实现表单验证功能,基于它的强大DOM-API,感兴趣的你可以不要错过了哦
    2013-01-01
  • 一个js导致的jquery失效问题的解决方法

    一个js导致的jquery失效问题的解决方法

    这篇文章主要介绍了一个js导致的jquery失效问题的解决方法,有需要的朋友可以参考一下
    2013-11-11
  • javascript实现手机震动API代码

    javascript实现手机震动API代码

    一个新的API出来了。HTML5 (很快)将支持用户设备振动。这明显是很有趣的事情,比如它可以用户触发提醒,提升游戏体验,下面小编给大家整理javascript手机震动api,需要的朋友可以参考下
    2015-08-08

最新评论