4当前位置:网页制作JavaScript教程javascript中双感叹号(!!)作用示…
4网页制作分类
CSS | HTML
FrontPage | DreamWeaver
JavaScript | ASP
.Net | PHP
JSP | XML
数据库 | PhotoShop
FireWorks | Flash
视频 | 其它
4赞助商链接
4最新网页制作
·浅谈JavaScript中定义变量时有无var声明的区别
·通过Jquery获取URL参数并转码
·Javascript获取时间间隔的方法
·Javascript获取视频时长
·javascript中双感叹号(!!)作用示例介绍
·javascript:void(0)使用探讨
·JS设置下拉框为只读的方法
·JS转化毫秒为时间格式代码
·Js控制CSS切换样式表实现网页风格切换
·网页更换皮肤样式功能浅析
4热门网页制作
·网页自动适应客户端分辨率的实现
·JS网页加载进度条
·突破IE屏蔽限制弹出新窗口
·三级下拉联动链接菜单
·文本框控制字数和禁止粘贴
·33个JavaScript经典效果
·JS获取页面地址栏参数
·JavaScript去除空格的三种方法
·又一个全国省市双级联动下拉选择框
·全国省市县无刷新多级联动菜单
4相关网页制作
·showModalDialog/showModelessDialog用法
·下拉菜单的制作
·全国省市县无刷新多级联动菜单
·灵活简洁的新窗口打开链接方式
·javascript获取textarea光标位置和内容的方法
·判断输入的IP是否合法
·不错的数字格式化转换函数
·浅谈JavaScript中定义变量时有无var声明的区别
·JS的IE和Firefox兼容性汇编
·JS变量作用域及可访问性的探讨
javascript中双感叹号(!!)作用示例介绍
类别:JavaScript教程    来源:网络    时间:2014/4/13    贴士:推荐给好友
收藏本页 8 
  经常看到这样的例子:
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:void(0)使用探讨
·下一篇:Javascript获取视频时长
本站部分内容收集整理于网络,仅用于学习,不存在商业目的,如有涉及版权等问题请联系站长,本站将在第一时间内进行处理!
Copyright © 2007-2010 Zzsky.Cn  中国站长天空  网站制作维护:可乐猫  QQ:8127544(请注明来意)
设为首页  加入收藏  联系站长  友情链接  闽ICP备12017729号