Undefined
表示變量已聲明,但未被初始化。需要注意的是當使用typeof操作符判斷數據類型時,未被聲明的變量和未初始化的變量返回的值都為undefined
var message; console.log(typeof message);//undefined console.log(typeof age);//undefined
null:表示一個空對象指針
使用typeof操作符返回的值是'object',需要注意的是,undefined值是派生自null值的,因此ECMA-262規定對它們的相等性測試要返回true。
console.log(null == undefined);//true
undefined與null的區別
(1)undefined表示一個變量沒有被聲明,或者被聲明了但沒有被賦值
(2)null是一個表示“沒有值”的值
(3)Javascript將未賦值的變量默認值設為undefined
(4)Javascript從來不會將變量設為null。它是用來讓程序員表明某個用var聲明的變量時沒有值的。
(5)undefined不是一個有效的JSON,而null是
(6)undefined的類型(typeof)是undefined,null的類型(typeof)是object.
PS:它們都是基本類型
他們都是falsy (Boolean(undefined) // false, Boolean(null) // false)
你可以這樣判斷一個變量是否是undefined
typeof variable === "undefined"
你可以這樣判斷一個變量是否是null
variable === null
雙等號比較時它們相等,但三等號比較時不相等
null == undefined // true null === undefined // false