# JavaScript中undefined 與 null 的差異 :book: undefined表示變量已經聲明但尚未賦值,其值為**undefined**、類型為**undefined** 任何變量均可通過設置值為 **undefined** 進行清空。其類型也將是 **undefined**。 ```javascript= let test; alert(test); //輸出 undefined alert(typeof test); //輸出類型 undefined let ppl = undefined;//值是undefined,類型是undefined ``` :book: null 是一個賦值,是用來給開發者來宣告”空值”的,其類型為**物件(object)** ,它被看做不存在的事物, ```javascript= let test = null; alert(test); //輸出 null alert(typeof test); //輸出類型 object ``` ## 兩者差異 Undefined 與 null 的值相等,但類型不相等: ```javascript= typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true ``` ### :toilet:利用網友提供的圖解法來解釋 ![](https://i.imgur.com/j5F2sqD.png) Non-zero value : 非零的數值,值(衛生紙)存在 0 : 即為空值 "",類型是 "string" null : 有定義一個東西,但是內容為零 undefined : 未定義是甚麼東西 ## 比一比 | | 基本輸出|string | number | boolean| | -------- | -------- | -------- |---|---| | undefined | undefined 類型:nudefined | undefined|NaN|false| | null | null 類型:object | null |0 |false| ## 參考資料 > [JavaScript 数据类型](https://www.w3school.com.cn/js/js_datatypes.asp) > [What is the difference between null and undefined in JavaScript?](https://stackoverflow.com/questions/5076944/what-is-the-difference-between-null-and-undefined-in-javascript)
{"metaMigratedAt":"2023-06-16T12:18:39.377Z","metaMigratedFrom":"Content","title":"JavaScript中undefined 與 null 的差異","breaks":true,"contributors":"[{\"id\":\"663fae2d-2bb5-4437-90b7-96f11a50e120\",\"add\":1375,\"del\":84}]"}
Expand menu