null 和 undefined
null和undefined都是代表空/沒有的意思, 但是其中還是有一些區別, null代表空值, undefined代表沒值
null
null往往代表意料之中的沒值,通常是由認爲賦值,並且會在之後的操作中對其進行賦值(當然,不是一定賦值);
let person = null; // => null
undefined
undefined 一般代表不是人爲的沒值,一般由瀏覽器或者其他環境自動賦值爲undefined, 後面可賦值,也可不賦值
let person; // => undefined 這是解析器的默認行爲
具體體現上的區別:
// 轉化爲數字類型
Number(null); // => 0;
Number(undefined); // NaN
// typeof語法
typeof null; // => Object; 這是一個歷史bug, 因爲在最開始,null被認爲是一個不存在對象的佔位符,後來被ECMAScript沿襲下來
typeof undefined; // => undefined
//判斷相等
null == undefined; // => true
null === undefined; // => false 不嚴格相等