JavaScript undefined 與 null 的區別
紀錄一下 JavaScript undefined 與 null 的區別
每當自己對工作覺得沒動力時,都會補充基礎知識充電一下,買個進階課程,學習其他技能等等。
紀錄 JavaScript undefined 與 null 的區別。
知識點整理
- undefined 代表變數被宣告了,可是卻沒有賦值
- null 代表的是沒有值,也就是「不存在」
- 變數的預設值為 undefined
- 如果得到 null 就代表是有被人為操作過的,JS 預設不會將值設定為 null
- 在 JSON 資料格式當中,不能使用 undefined,如果要表示空值則必須使用 null
- typeof undefined 變數會得到 undefined 字串
- typeof null 變數會得到 object 字串
- undefined 與 null 都會被視為 false
- 如果調用未定義的變數會噴例外錯誤,undefined 則不會
範例
var foo
console.log(foo) // undefined
console.log(typeof foo) // undefined
var bar = null
console.log(bar) // null
console.log(typeof bar) // object
typeof null 應該是要為 null 的,可是當初設計成 object 就用到現在了
參考:https://2ality.com/2013/10/typeof-null.html
console.log(null == undefined) // true
console.log(null === undefined) // false
==
左右兩邊為 null 或是 undefined 則回傳 true
===
左右兩邊為 null 或是 undefined 則回傳 false
參考:https://262.ecma-international.org/5.1/#sec-11.9.3
參考:https://262.ecma-international.org/5.1/#sec-11.9.6