深入js系列-類型(null)


首先null是表示什么狀態呢

這個是需要和上篇的undefined做一個區分

undefined 從未賦值 非關鍵詞(也就是可以定義為變量名或者賦值給它)
null 曾經賦值、目前沒值 關鍵詞

typeof “失靈了”
var a = null
typeof  a // "object"而不是"null"

這個bug是第一版Javascript留下來的。在這個版本,數值是以32字節存儲的,由標志位(1~3個字節)和數值組成。標志位存儲的是低位的數據。這里有五種標志位:
000:對象,數據是對象的應用。
1:整型,數據是31位帶符號整數。
010:雙精度類型,數據是雙精度數字。
100:字符串,數據是字符串。
110:布爾類型,數據是布爾值。
最低位有一位,那么標志位只有一個1字節長度;或者是零位,標志位有3個字節長度,多出兩個了字節,一共多出四種類型。

有兩個特殊的數值:
undefined(JSVAL_VOID)是-2^30(一個超出整數范圍的數字)
null(JSVAL_NULL)是機器代碼的空指針,一個對象類型的引用,值是零。

我們可以這樣辨別

(!a && typeof === "object") //true
// 或者
a === null
null小結

null 是作為一個值的預定位來使用的,比如在vue里面data,你不能定義k-v形式為k-undefined,這樣無法響應,

可以這樣辨認

(!a && typeof a === "null")
a === null


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM