當前位置:
首頁 >
js中两个感叹号的原理与用法分析
發布時間:2025/4/16
26
豆豆
生活随笔
收集整理的這篇文章主要介紹了
js中两个感叹号的原理与用法分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在javascript中有時會看到有兩個!!的用法
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);??
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;?? ????}??
? ? ? ? ?
? ? ? ? ? 這段例子,演示了在undifined和null時,用一個感嘆號返回的都是true,用兩個感嘆號返回的就是false,所以兩個感嘆號的作用就在于,如果明確設置了變量的值(非null/undifined/0/""等值),結果就會根據變量的實際值來返回,如果沒有設置,結果就會返回false。
?
? ? ?這是jquery中一個比較經典的例子,
? ? ?在使用grep函數的時候,如果給出了第三個參數且非null/undefined/0""/等值,則inv為 ? ? true,否則為false。這樣做的目的就是保證inv和retVal的值都只能在true/false中取,而非其它值,為后續判斷提供便利。
總結
以上是生活随笔為你收集整理的js中两个感叹号的原理与用法分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS 移动端触屏滑动
- 下一篇: EasyTable2.1 功能更加强大,