在偶爾看原始碼的過程中。
看到有些判斷的用法是:
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這很容易理解,因...