javaScript 雙感嘆號用法

2021-08-28 16:58:13 字數 1484 閱讀 1768

在偶爾看原始碼的過程中。

看到有些判斷的用法是:

var a;

if(!!a)

為什麼要用兩個感嘆號(❕)呢?

因為js 是弱型別,單純用乙個! 感嘆號去轉義可能會發生不必要的錯誤

這是知乎上的某個比較好的總結

雙感嘆號才能真正的將他轉換成對應的boolean值,第乙個感嘆號是將其轉化成boolean型別的值,但是這一操作得到的是其取反以後的值,在進行一次取反運算才能得到其對應真正的布林值

轉換成標準的布林型別作為判斷才比較好

console.log('-----單純判斷')

console.log('{}',{},typeof {})

console.log('',,typeof )

console.log('""',"",typeof "")

console.log('nan',nan,typeof nan)

console.log('undefined',undefined,typeof undefined)

console.log('null',null,typeof null)

console.log('0',0,typeof 0)

console.log('-----單感嘆號')

console.log('!{}',!{},typeof !{})

console.log('!',!,typeof !)

console.log('!""',!"",typeof !"")

console.log('!nan',!nan,typeof !nan)

console.log('!undefined',!undefined,typeof !undefined)

console.log('!null',!null,typeof !null)

console.log('!0',!0,typeof !0)

console.log('-----雙感嘆號')

這裡是我作的簡單分析,只是並沒看出太大的區別。

因為本身雙感嘆號就是完全把本身的字段轉換成布林型別,所以判斷會舒服一些。

alert帶感嘆號

msgbox prompt buttons title helpfile,context msgbox 函式的語法具有以下幾個命名引數 部分 描述 prompt 必要。字串表示式,作為顯示在對話方塊中的訊息。prompt 的最大長度大約為 1024 個字元,由所用字元的寬度決定。如果 prompt ...

function與感嘆號

如果在function之前加上感嘆號 會怎麼樣?比如下面的 function true 在控制台執行後得到的值時true,為什麼是true這很容易理解,因為這個匿名函式沒有返回值,預設返回的就是undefined,求反的結果很自然的就是true。所以問題並不在於結果值,而是在於,為什麼求反操作能夠讓...

function與感嘆號

最近有空可以讓我靜下心來看看各種 function與感嘆號的頻繁出現,讓我回想起2個月前我回杭州最後參加團隊會議的時候,西子劍影丟擲的一樣的問題 如果在function之前加上感嘆號 會怎麼樣?比如下面的 function true 在控制台執行後得到的值時true,為什麼是true這很容易理解,因...