undefined
undefined類型只有undefined一個(gè)值.
表示變量已經(jīng)定義,但是沒有值
或者變量未定義
- 變量已定義,但是沒有值
var a
a // undefined
- 變量未定義
typeof b // undefined
null
null指向不存在的對(duì)象, 表示變量是一個(gè)空的對(duì)象指針.
typeof null // object
undefined和null
- undefined和null都保存在棧內(nèi)存上, 區(qū)別是null是個(gè)對(duì)象指針, 但是值是空.
- undefined可以被隱形類型轉(zhuǎn)換為null
undefined == null // true
- 如果我們定義預(yù)定義一個(gè)對(duì)象, 可以先賦值為null.
- null和undefined都是保存在棧內(nèi)存上, 區(qū)別是null實(shí)際上還指向堆內(nèi)存.
- 判斷對(duì)象是否存在某一個(gè)鍵的時(shí)候, 可以
if ( obj.c == null ) {
//doSomething
}
這樣等于了
if ( obj.c === null || obj.c === undefined ) {
//doSomething
}