两个惊叹号的作用(!!)
来源:互联网 发布:linux nvidia 显卡驱动 编辑:程序博客网 时间:2024/05/01 07:53
先用一个简单的例子说明:
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。
在jQuery中比较经典的例子如下:(jQuery 1.7.0.js: Line 748)
grep: function( elems, callback, inv ) { var ret = [], retVal; inv = !!inv; // Go through the array, only saving the items // that pass the validator function for ( var i = 0, length = elems.length; i < length; i++ ) { retVal = !!callback( elems[ i ], i ); if ( inv !== retVal ) { ret.push( elems[ i ] ); } } return ret; }
在使用grep函数的时候,如果给出了第三个参数且非null/undefined/0""/等值,则inv为true,否则为false。这样做的目的就是保证inv和retVal的值都只能在true/false中取,而非其它值,为后续判断提供便利。
- 两个惊叹号的作用(!!)
- 关于C语言中两个惊叹号(!)的问题
- synchronized的两个作用
- typename的两个作用
- "不公平录取线"评论:困惑的问号和愤慨的惊叹号
- 如何消除原生Android网络状态上的惊叹号
- waitKey (x)的两个作用
- javascript的!!两个感叹号的作用
- 这个惊叹号不能少,否则引发“syntax error `end of file' unexpected”的错误
- 网卡上两个指示灯的作用
- C#中两个冒号(::)的作用
- 单片机晶振上两个电容的作用
- JavaScript中两个感叹号的作用
- Comparable 与 Comparator 两个接口的作用
- JavaScript中两个感叹号(!!)的作用
- JavaScript中两个感叹号的作用
- JavaScript中两个感叹号(!!)的作用
- C语言中static的两个作用
- PL/SQL Developer 调试函数
- javadoc生成文档时总是报java.lang.IllegalArgumentException错 .
- php学习笔记(五)字符串及其相关处理函数
- java定时操作
- 写一个SqlHelper类
- 两个惊叹号的作用(!!)
- Oracle数据库中的同义词创建
- Windows7 64位机上Emgu CV2.4.2安装与配置
- php学习笔记(六)数组及其相关处理函数
- 小散们:放下屠刀回头是岸
- 打包文件
- 查询数据库死锁
- 写一个数据集DataSet---ds,向其中添加一个数据表DataTable ---dt,并创建该表的列和行。然后将本本表作为数据源绑定到GradView中。
- 获取字符串首字母拼音