詳解JavaScript?(!!)?中的雙感嘆號是干什么用的
JavaScript (!!) 中的雙感嘆號是干什么用的?
如果您曾在某人的 JavaScript 代碼中注意到雙感嘆號 (!!),您可能會好奇它的用途和作用。這很簡單:這是一種將變量轉(zhuǎn)換為布爾值(真或假)的捷徑。讓我解釋。
typeof JavaScript!= '靜態(tài)'
JavaScript 不是靜態(tài)語言,而是動態(tài)語言。這意味著變量可以引用或保存任何類型的值,此外,該類型可以隨時更改。無論您喜歡靜態(tài)語言還是動態(tài)語言,都由您決定。
但是,我們當(dāng)然可以對 JavaScript 中的類型有所了解。以下是 JavaScript 中各種數(shù)據(jù)類型的快速列表:
- 布爾值
- 細(xì)繩
- 數(shù)字
- 目的
布爾數(shù)據(jù)類型是所有數(shù)據(jù)類型中最簡單的,因為它是單個位值:0(假)或 1(真)。
真與真
我們可以將變量設(shè)置為布爾值,并在評估 if 語句時使用它。這是我們的簡單示例。
功能() { var thisIsTrue = true; 如果(thisIsTrue){ window.alert('當(dāng)然是!'); } }
執(zhí)行上述函數(shù)時,我們將收到警報 那當(dāng)然是! 因為變量 這是真實的
被設(shè)置為布爾值 真的
.
現(xiàn)在,讓我們看看 JavaScript 如何評估非布爾值以將其轉(zhuǎn)換為布爾值。
功能() { 無變量 = ''; 如果(什么都沒有){ window.alert('沒什么'); } 別的 { window.alert('嗯?'); } }
執(zhí)行上述函數(shù)時,我們將收到警報 嗯? 因為變量的值 沒有什么
被評估為假。這就是通常所說的 真相 相對 謬誤 .
JavaScript 認(rèn)為以下值是假的:
- 很多時候:
“”
0
無效的
不明確的
鈉
JavaScript 認(rèn)為以下值為真:
- 目的:
{}
- 種類:
[]
- 非空字符串:
“任何事物”
- 非零數(shù):
3.14
- 日期:
新日期();
運(yùn)行您的代碼的 JavaScript 引擎將在必要時嘗試將值轉(zhuǎn)換(或強(qiáng)制)為布爾值,例如在 if 語句中求值時。
那么為什么要雙感嘆號呢?
在某些情況下,您可能希望將變量強(qiáng)制轉(zhuǎn)換為顯式布爾值。因為?嗯,第一個原因是大多數(shù)時候開發(fā)人員不使用類型安全的比較運(yùn)算符。
類型安全的比較運(yùn)算符是:
- 嚴(yán)格相等:
===
- 嚴(yán)格不相等:
!==
使用類型安全的比較運(yùn)算符時,您正在檢查值是否相等(或不相等)以及類型是否相同。如果沒有類型安全的比較運(yùn)算符,您將允許 JavaScript 引擎根據(jù)真/假邏輯自由地強(qiáng)制您的變量為真或假。
要將 JavaScript 變量轉(zhuǎn)換為布爾值,只需使用兩個感嘆號:
功能() { var name = '布賴恩'; //警報'字符串' window.alert(類型名稱); //轉(zhuǎn)換為布爾值 var bool = !!name; //警報'布爾' window.alert(bool 類型); }
在上面的示例代碼中,我們正在轉(zhuǎn)換字符串 “布賴恩”
為了一個值 布爾值
.所以第二個警報將表明該變量現(xiàn)在是 布爾值
勇氣。
由 Brian F Love 的博客免費(fèi)翻譯,您可以在此處訪問原始文章: https://brianflove.com/2014-09-02/whats-the-double-exclamation-mark-for-in-javascript/
到此這篇關(guān)于JavaScript (!!) 中的雙感嘆號是干什么用的?的文章就介紹到這了,更多相關(guān)JavaScript (!!) 雙感嘆號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS中正則表達(dá)式只有3種匹配模式(沒有單行模式)詳解
下面小編就為大家?guī)硪黄狫S中正則表達(dá)式只有3種匹配模式(沒有單行模式)詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07