雙嘆號( !! ) 一般用來將後面的表示式強制轉換為布林型別的資料,true / false。
因為js是弱型別的語言(變數沒有固定的資料型別),所以有時需要強制轉換為相應的型別,比如:
a = parseint('3456'); //顯示轉換
b = someobject.tostring(); //顯示轉換,將物件轉換為字串
c = "3456" + 0; //隱式轉換,轉換為數字
d = 3456 + ""; //隱式轉換,轉換為字串
布林型別的轉換,js約定規則為:
false / undefinded / null / 0 / "" ---> false
true / 1 / somestring / [object] ---> true
對於 false / null 等值,用 !操作符時都會產生true的結果,所以 !! 的作用在於將這些值轉換為 等價 的布林值。
var foo;
console.log( !foo ); //true
console.log( !!foo ); //false
var o = ;
console.log( !o.name ); //false
console.log( !!o.name ); //true
所以,雙嘆號的作用在於,如果變數的值為 null / undefined / 0 / 『 『 時,結果返回 false ;如果明確設定了變數的值,結果會根據變數的實際值來返回。
ruby 中嘆號問號的作用
ruby中的方法可以以問號和嘆號結尾,問號通常用於謂語方法,這種方法返回乙個布林值。例如array和hash類都定義了乙個empty?方法,這個方法用於測試資料結構中有沒有元素。如果方法以嘆號結尾,這意味著我們在使用這個方法的時候要小心,比如大多數核心的ruby類庫方法都提供兩個同名的方法,乙個以嘆...
C 中感嘆號( ) 作用盤點
與等號共同組成關係運算子,檢查兩個運算元的值是否相等,如 a b 稱為邏輯非運算子。用來逆轉運算元的邏輯狀態。如果條件為真則邏輯非運算子將使其為假。如 bool a true bool b a 來自於 c 8 的新特性,比較冷門,國內的翻譯 c 8 的文章基本都沒有提到。它是乙個非常有用的特性。官方...
JS中 的作用
是將表示式強制轉化為bool值的運算,nan undefined null 0 都為false 兩次取反的作用 讓a的結果只能是false或者是true 如果a是0 兩次取反當然是false 如果a是null 兩次取反是false 如果a是undefined 兩次取法是false 其餘的比如a 10...