詳解JavaScript?(!!)?中的雙感嘆號(hào)是干什么用的
JavaScript (!!) 中的雙感嘆號(hào)是干什么用的?
如果您曾在某人的 JavaScript 代碼中注意到雙感嘆號(hào) (!!),您可能會(huì)好奇它的用途和作用。這很簡(jiǎn)單:這是一種將變量轉(zhuǎn)換為布爾值(真或假)的捷徑。讓我解釋。
typeof JavaScript!= '靜態(tài)'
JavaScript 不是靜態(tài)語(yǔ)言,而是動(dòng)態(tài)語(yǔ)言。這意味著變量可以引用或保存任何類(lèi)型的值,此外,該類(lèi)型可以隨時(shí)更改。無(wú)論您喜歡靜態(tài)語(yǔ)言還是動(dòng)態(tài)語(yǔ)言,都由您決定。
但是,我們當(dāng)然可以對(duì) JavaScript 中的類(lèi)型有所了解。以下是 JavaScript 中各種數(shù)據(jù)類(lèi)型的快速列表:
- 布爾值
- 細(xì)繩
- 數(shù)字
- 目的
布爾數(shù)據(jù)類(lèi)型是所有數(shù)據(jù)類(lèi)型中最簡(jiǎn)單的,因?yàn)樗菃蝹€(gè)位值:0(假)或 1(真)。
真與真
我們可以將變量設(shè)置為布爾值,并在評(píng)估 if 語(yǔ)句時(shí)使用它。這是我們的簡(jiǎn)單示例。
功能() { var thisIsTrue = true; 如果(thisIsTrue){ window.alert('當(dāng)然是!'); } }
執(zhí)行上述函數(shù)時(shí),我們將收到警報(bào) 那當(dāng)然是! 因?yàn)樽兞?code> 這是真實(shí)的 被設(shè)置為布爾值 真的
.
現(xiàn)在,讓我們看看 JavaScript 如何評(píng)估非布爾值以將其轉(zhuǎn)換為布爾值。
功能() { 無(wú)變量 = ''; 如果(什么都沒(méi)有){ window.alert('沒(méi)什么'); } 別的 { window.alert('嗯?'); } }
執(zhí)行上述函數(shù)時(shí),我們將收到警報(bào) 嗯? 因?yàn)樽兞康闹?code> 沒(méi)有什么 被評(píng)估為假。這就是通常所說(shuō)的 真相 相對(duì) 謬誤 .
JavaScript 認(rèn)為以下值是假的:
- 很多時(shí)候:
“”
0
無(wú)效的
不明確的
鈉
JavaScript 認(rèn)為以下值為真:
- 目的:
{}
- 種類(lèi):
[]
- 非空字符串:
“任何事物”
- 非零數(shù):
3.14
- 日期:
新日期();
運(yùn)行您的代碼的 JavaScript 引擎將在必要時(shí)嘗試將值轉(zhuǎn)換(或強(qiáng)制)為布爾值,例如在 if 語(yǔ)句中求值時(shí)。
那么為什么要雙感嘆號(hào)呢?
在某些情況下,您可能希望將變量強(qiáng)制轉(zhuǎn)換為顯式布爾值。因?yàn)??嗯,第一個(gè)原因是大多數(shù)時(shí)候開(kāi)發(fā)人員不使用類(lèi)型安全的比較運(yùn)算符。
類(lèi)型安全的比較運(yùn)算符是:
- 嚴(yán)格相等:
===
- 嚴(yán)格不相等:
!==
使用類(lèi)型安全的比較運(yùn)算符時(shí),您正在檢查值是否相等(或不相等)以及類(lèi)型是否相同。如果沒(méi)有類(lèi)型安全的比較運(yùn)算符,您將允許 JavaScript 引擎根據(jù)真/假邏輯自由地強(qiáng)制您的變量為真或假。
要將 JavaScript 變量轉(zhuǎn)換為布爾值,只需使用兩個(gè)感嘆號(hào):
功能() { var name = '布賴(lài)恩'; //警報(bào)'字符串' window.alert(類(lèi)型名稱(chēng)); //轉(zhuǎn)換為布爾值 var bool = !!name; //警報(bào)'布爾' window.alert(bool 類(lèi)型); }
在上面的示例代碼中,我們正在轉(zhuǎn)換字符串 “布賴(lài)恩”
為了一個(gè)值 布爾值
.所以第二個(gè)警報(bào)將表明該變量現(xiàn)在是 布爾值
勇氣。
由 Brian F Love 的博客免費(fèi)翻譯,您可以在此處訪問(wèn)原始文章: https://brianflove.com/2014-09-02/whats-the-double-exclamation-mark-for-in-javascript/
到此這篇關(guān)于JavaScript (!!) 中的雙感嘆號(hào)是干什么用的?的文章就介紹到這了,更多相關(guān)JavaScript (!!) 雙感嘆號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript中關(guān)鍵字 in 的使用方法詳解
這篇文章主要介紹了JavaScript中關(guān)鍵字 in 的使用方法詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10JS實(shí)現(xiàn)讀取Excel文件內(nèi)容并生成二維碼
這篇文章主要為大家介紹了如何使用JavaScript實(shí)現(xiàn)讀取Excel文件內(nèi)容并生成二維碼下載到本地,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-04-04JavaScript console對(duì)象與控制臺(tái)使用示例詳解
這篇文章主要介紹了JavaScript console對(duì)象與控制臺(tái)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-10-10詳解小程序云開(kāi)發(fā)攻略(解決最棘手的問(wèn)題)
這篇文章主要介紹了詳解小程序云開(kāi)發(fā)攻略(解決最棘手的問(wèn)題),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09js實(shí)現(xiàn)無(wú)需數(shù)據(jù)庫(kù)的縣級(jí)以上聯(lián)動(dòng)行政區(qū)域下拉控件
縣級(jí)以上聯(lián)動(dòng)行政區(qū)域下拉控件,想必大家對(duì)此也有所熟悉,本文為大家介紹下使用js實(shí)現(xiàn)無(wú)需數(shù)據(jù)庫(kù)的聯(lián)動(dòng)下拉控件,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08Javascript Web Worker使用過(guò)程解析
這篇文章主要介紹了Javascript Web Worker使用過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03