JavaScript null 與 undefined
-
JavaScript 中的
null
-
JavaScript 中的
undefined
-
為什麼人們會混淆
null
和undefined
與 JavaScript 中的相同 -
JavaScript 中
null
和undefined
之間的區別
JavaScript 是一種強大的語言,但使用不同的資料型別可能會造成混淆,尤其是對於初學者而言。null
和 undefined
資料型別似乎什麼都不代表,但它們是不同的。
需要區分這些並知道何時使用哪一個以避免執行時錯誤。
本文討論 null
和 undefined
及其區別。
JavaScript 中的 null
null
是 JavaScript 中的一個物件。如果它沒有意義,那沒關係,因為它是 JavaScript 中的一個錯誤。它應該是原始資料型別之一,但進行此更改會破壞許多現有的程式碼庫。
這是一個使用者分配的值; JavaScript 永遠不會單獨為變數提供 null
的值。它是分配給留空的變數的值。它可以稱為空值。
JavaScript 中的 undefined
undefined
是一種狀態。當我們宣告一個變數但從未用值初始化它時,它被稱為未定義。它是 JavaScript 用來初始化變數的預設值。它也是一個空值。
為什麼人們會混淆 null
和 undefined
與 JavaScript 中的相同
null
和 undefined
在以下方面是相同的:
- 兩者都是原始資料型別。
- 如果你使用相等運算子
==
比較它們,則返回 true。
null == undefined; // returns true
JavaScript 將兩者都視為空值。
- 在表示式中使用時,
undefined
和null
都會產生false
。
!!undefined; // false
!!null; // false
JavaScript 中 null
和 undefined
之間的區別
- 型別差異
console.log(typeof (null)); // object
console.log(typeof (undefined)); // undefined
在上面的示例中,我們使用 typeof
運算子來檢查它們的資料型別。它將 null
資料型別作為 object
返回,將 undefined
資料型別返回為 undefined
。儘管相等運算子 ==
返回 true,但標識運算子 ===
將返回 false,因為它們的值相等但具有不同的資料型別。
- 算術運算
null
在執行算術運算時表現得像一個沒有值的數字。執行操作會給出類似於 null 為 0
的結果。
console.log(4 + null); // 4
console.log(4 * null); // 0
console.log(4 - null); // 4
console.log(4 / null); // Infinity
需要注意的是,雖然它在算術運算中可能被視為 0
,但 null
的值不是 0
。
同時,undefined
在算術運算中使用時返回 NaN
。
console.log(4 + undefined); // NaN
console.log(4 * undefined); // NaN
console.log(4 - undefined); // NaN
console.log(4 / undefined); // NaN
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn