詳解JavaScript?(!!)?中的雙感嘆號(hào)是干什么用的
JavaScript (!!) 中的雙感嘆號(hào)是干什么用的?
如果您曾在某人的 JavaScript 代碼中注意到雙感嘆號(hào) (!!),您可能會(huì)好奇它的用途和作用。這很簡(jiǎn)單:這是一種將變量轉(zhuǎn)換為布爾值(真或假)的捷徑。讓我解釋。
typeof JavaScript!= '靜態(tài)'
JavaScript 不是靜態(tài)語言,而是動(dòng)態(tài)語言。這意味著變量可以引用或保存任何類型的值,此外,該類型可以隨時(shí)更改。無論您喜歡靜態(tài)語言還是動(dòng)態(tài)語言,都由您決定。
但是,我們當(dāng)然可以對(duì) JavaScript 中的類型有所了解。以下是 JavaScript 中各種數(shù)據(jù)類型的快速列表:
- 布爾值
- 細(xì)繩
- 數(shù)字
- 目的
布爾數(shù)據(jù)類型是所有數(shù)據(jù)類型中最簡(jiǎn)單的,因?yàn)樗菃蝹€(gè)位值:0(假)或 1(真)。
真與真
我們可以將變量設(shè)置為布爾值,并在評(píng)估 if 語句時(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)換為布爾值。
功能() { 無變量 = ''; 如果(什么都沒有){ window.alert('沒什么'); } 別的 { window.alert('嗯?'); } }
執(zhí)行上述函數(shù)時(shí),我們將收到警報(bào) 嗯? 因?yàn)樽兞康闹?code> 沒有什么 被評(píng)估為假。這就是通常所說的 真相 相對(duì) 謬誤 .
JavaScript 認(rèn)為以下值是假的:
- 很多時(shí)候:
“”
0
無效的
不明確的
鈉
JavaScript 認(rèn)為以下值為真:
- 目的:
{}
- 種類:
[]
- 非空字符串:
“任何事物”
- 非零數(shù):
3.14
- 日期:
新日期();
運(yùn)行您的代碼的 JavaScript 引擎將在必要時(shí)嘗試將值轉(zhuǎn)換(或強(qiáng)制)為布爾值,例如在 if 語句中求值時(shí)。
那么為什么要雙感嘆號(hào)呢?
在某些情況下,您可能希望將變量強(qiáng)制轉(zhuǎn)換為顯式布爾值。因?yàn)椋苦?,第一個(gè)原因是大多數(shù)時(shí)候開發(fā)人員不使用類型安全的比較運(yùn)算符。
類型安全的比較運(yùn)算符是:
- 嚴(yán)格相等:
===
- 嚴(yán)格不相等:
!==
使用類型安全的比較運(yùn)算符時(shí),您正在檢查值是否相等(或不相等)以及類型是否相同。如果沒有類型安全的比較運(yùn)算符,您將允許 JavaScript 引擎根據(jù)真/假邏輯自由地強(qiáng)制您的變量為真或假。
要將 JavaScript 變量轉(zhuǎn)換為布爾值,只需使用兩個(gè)感嘆號(hào):
功能() { var name = '布賴恩'; //警報(bào)'字符串' window.alert(類型名稱); //轉(zhuǎn)換為布爾值 var bool = !!name; //警報(bào)'布爾' window.alert(bool 類型); }
在上面的示例代碼中,我們正在轉(zhuǎn)換字符串 “布賴恩”
為了一個(gè)值 布爾值
.所以第二個(gè)警報(bào)將表明該變量現(xiàn)在是 布爾值
勇氣。
由 Brian F Love 的博客免費(fèi)翻譯,您可以在此處訪問原始文章: 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)文章
JS偽繼承prototype實(shí)現(xiàn)方法示例
這篇文章主要介紹了JS偽繼承prototype實(shí)現(xiàn)方法,結(jié)合實(shí)例形式對(duì)比分析了基于prototype實(shí)現(xiàn)模擬繼承的相關(guān)操作技巧,需要的朋友可以參考下2018-06-06JS中正則表達(dá)式只有3種匹配模式(沒有單行模式)詳解
下面小編就為大家?guī)硪黄狫S中正則表達(dá)式只有3種匹配模式(沒有單行模式)詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07使用threejs實(shí)現(xiàn)滾動(dòng)效果的示例代碼
某一天我在刷抖音時(shí),看到一個(gè)UI設(shè)計(jì)師分享了一個(gè)好看的網(wǎng)頁滾動(dòng)動(dòng)效設(shè)計(jì),那種飄逸流暢的動(dòng)畫效果立刻抓住了我的眼球,我腦海里立刻開始想象用代碼如何實(shí)現(xiàn)這個(gè)效果,所以本文給大家分享了如何使用threejs實(shí)現(xiàn)滾動(dòng)效果,感興趣的朋友可以參考下2024-01-01JS下拉框內(nèi)容左右移動(dòng)效果的具體實(shí)現(xiàn)
這篇文章介紹了JS下拉框內(nèi)容左右移動(dòng)效果的具體實(shí)現(xiàn)方法,有需要的朋友可以參考一下2013-07-07Javascript訪問Promise對(duì)象返回值的操作方法
這篇文章介紹了如何在JavaScript中使用Promise對(duì)象來處理異步操作,通過使用fetch()方法和Promise對(duì)象,我們可以從后端API獲取數(shù)據(jù)并處理返回值,文章展示了如何使用.then()鏈?zhǔn)讲僮骱蚢sync/await語法來訪問Promise對(duì)象的返回值,感興趣的朋友一起看看吧2025-03-03javascript 事件對(duì)象 坐標(biāo)事件說明
javascript 事件對(duì)象 坐標(biāo)事件說明,學(xué)習(xí)js坐標(biāo)事件的朋友可以參考下。2010-05-05