摘要:取反運(yùn)算形式上是一個(gè)感嘆號(hào),用于將布爾值變?yōu)橄喾粗导醋兂勺兂伞?duì)于非布爾值的數(shù)據(jù)取反運(yùn)算符會(huì)自動(dòng)將其轉(zhuǎn)成布爾值。如果對(duì)一個(gè)值連續(xù)兩次取反運(yùn)算,等于將其轉(zhuǎn)成對(duì)應(yīng)的布爾值,于函數(shù)的作用都相同。
取反運(yùn)算形式上是一個(gè)感嘆號(hào),用于將布爾值變?yōu)橄喾粗?即true變成false,false變成true。
!true //false
!false //true
對(duì)于非布爾值的數(shù)據(jù),取反運(yùn)算符會(huì)自動(dòng)將其轉(zhuǎn)成布爾值。規(guī)則是,以下六個(gè)值取反后為true,其他值取反后都為false。
undefined
null
false
0(包括+0和-0)
NaN
空字符串("")
這意味著,取反運(yùn)算符有轉(zhuǎn)換數(shù)據(jù)類型的作用。
!undefined // true
!null // true
!0 // true
!NaN // true
!"" // true
!54 // false
!"hello" // false
![] // false
!{} // false
上面代碼中,不管什么類型的值,經(jīng)過取反運(yùn)算后,都變成了布爾值。
如果對(duì)一個(gè)值連續(xù)兩次取反運(yùn)算,等于將其轉(zhuǎn)成對(duì)應(yīng)的布爾值,于Boolean函數(shù)的作用都相同。這是一種常用的類型轉(zhuǎn)換的寫法。
!!x
// 等同于
Boolean(x)
上面代碼中,不管X是什么類型的值,經(jīng)過兩次取反運(yùn)算后,變成了與Boolean函數(shù)結(jié)果相同的布爾值。所以,兩次取反就是將一個(gè)值轉(zhuǎn)成布爾值的簡便寫法。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/103259.html
摘要:將任一數(shù)值與執(zhí)行按位與操作,其結(jié)果都為。中應(yīng)用判斷奇偶性偶數(shù)奇數(shù)按位異或規(guī)則每一位都不同,結(jié)果才為將任一數(shù)值與進(jìn)行異或操作,其結(jié)果為。 位運(yùn)算在算法中很有用,速度可以比四則運(yùn)算快很多。 To2orTo10 JS中十進(jìn)制轉(zhuǎn)二進(jìn)制: (val).toString(2)JS中二進(jìn)制轉(zhuǎn)十進(jìn)制: parseInt(val, 2) JS中規(guī)定安全整數(shù)的范圍是-2^53~2^53,所以大于90071...
摘要:原碼補(bǔ)碼和反碼原碼一個(gè)數(shù)在計(jì)算機(jī)中是以二進(jìn)制的形式存在的,其中第一位存放符號(hào)正數(shù)為負(fù)數(shù)為。中的位運(yùn)算在中按位操作符會(huì)將其操作數(shù)轉(zhuǎn)成補(bǔ)碼形式的有符號(hào)位整數(shù)。原文鏈接由扯到中的位運(yùn)算 這個(gè)話題的由來是2016年3月份的時(shí)候 NPM 社區(qū)發(fā)生了‘left-pad’事件,不久后社區(qū)就有人發(fā)布了用來補(bǔ)救的,也是現(xiàn)在大家能用到的 left-pad 庫。 最開始這個(gè)庫的代碼是這樣的。 module....
摘要:按位取反按位取反運(yùn)算符,對(duì)一個(gè)表達(dá)式執(zhí)行位非求非運(yùn)算。如果語句后面不使用標(biāo)簽,則只能進(jìn)入下一輪的內(nèi)層循環(huán)。語句用于立即終止本輪循環(huán),返回循環(huán)結(jié)構(gòu)的頭部,開始下一輪循環(huán)。代表的是分組,即小括號(hào)里面的小正則捕獲到的內(nèi)容。 JS按位取反 Javascript 按位取反運(yùn)算符 (~) ,對(duì)一個(gè)表達(dá)式執(zhí)行位非(求非)運(yùn)算。如 ~1 = -2; ~2 = -3;來看看~1的計(jì)算步驟: 將1(這里...
摘要:業(yè)務(wù)越復(fù)雜,邏輯就越復(fù)雜,判斷就越多比較判斷比較判斷是比較兩個(gè)值,返回一個(gè)布爾值,表示是否滿足比較條件。對(duì)于非布爾值的數(shù)據(jù),取反運(yùn)算符會(huì)自動(dòng)將其轉(zhuǎn)為布爾值。 前端學(xué)習(xí):教程&開發(fā)模塊化/規(guī)范化/工程化/優(yōu)化&工具/調(diào)試&值得關(guān)注的博客/Git&面試-前端資源匯總 歡迎提issues斧正:========== JavaScript-判斷 代碼中,多多少少會(huì)有判斷語句。業(yè)務(wù)越復(fù)雜,邏輯就越...
摘要:第二個(gè)問題非基礎(chǔ)類型則不好處理,其實(shí)像這種比較的方法,往往不是用于處理普遍情況的,往往是在特殊場景發(fā)揮奇效的。沒有最好的方案,只有最合適的方案。這樣才能使得正數(shù)和負(fù)數(shù)的表示統(tǒng)一起來,具體可以參閱補(bǔ)碼的歷史,這里不過多展開了。 原文: https://github.com/HCThink/h-... github 首頁(star+watch,一手動(dòng)態(tài)直達(dá)): https://gith...
閱讀 2062·2023-04-25 21:11
閱讀 2963·2021-09-30 09:47
閱讀 2272·2021-09-24 09:48
閱讀 4428·2021-08-23 09:43
閱讀 895·2019-08-30 15:54
閱讀 559·2019-08-28 18:01
閱讀 1397·2019-08-27 10:55
閱讀 588·2019-08-27 10:55