javascript中null是什麼

bluepeach發表於2021-09-11

javascript中null是JS提供的一種特殊值,表示缺少物件;在javascript中可以使用嚴格相等運算子來檢查null值,其檢查語句如“missingObject === null;”。

javascript中null是什麼

本文操作環境:windows7系統、javascript1.8.5版,DELL G3電腦。

javascript中null是什麼?

JavaScript中關於null的一切

JavaScript有2種型別:基本型別(string, booleans number, symbol)和物件。
物件是複雜資料結構,JS 中最簡單的物件是普通物件:一組鍵關聯值

let myObject = {
  name: '前端小智'
}

但是在某些情況下無法建立物件。 在這種情況下,JS 提供一個特殊值null —表示缺少物件。

let myObject = null

1. null的概念

值 null 特指物件的值未設定,它是 JS 基本型別 之一,在布林運算中被認為是falsy。

例如,函式greetObject()建立物件,但是在無法建立物件時也可以返回null:

function greetObject(who) {
  if (!who) {
    return null;
  }
  return { message: `Hello, ${who}!` };
}

greetObject('Eric'); // => { message: 'Hello, Eric!' }
greetObject();       // => null

但是,在不帶引數的情況下呼叫函式greetObject() 時,該函式返回null。 返回null是合理的,因為who引數沒有值。

2. 如何檢查null

檢查null值的好方法是使用嚴格相等運算子

const missingObject = null;
const existingObject = { message: 'Hello!' };

missingObject  === null; // => true
existingObject === null; // => false

missingObject === null的結果為true,因為missingObject變數包含一個null 值。

如果變數包含非空值(例如物件),則表示式existObject === null 的計算結果為false

2.1 null 是虛值

nullfalse、0、''、undefined、NaN都是虛值。如果在條件語句中遇到虛值,那麼 JS 將把虛值強制為false

Boolean(null); // => false

if (null) {
  console.log('null is truthy')
} else {
  console.log('null is falsy')
}

2.2 typeof null

type null的結果是什麼

typeof null; // => 'object'

為什麼是'object',typoef null為object是早期 JS 實現中的一個錯誤

要使用typeof運算子檢測null值。 如前所述,使用嚴格等於運算子myVar === null

如果我們想使用typeof運算子檢查變數是否是物件,還需要排除null值:

function isObject(object) {
  return typeof object === 'object' && object !== null;
}

isObject({ prop: 'Value' }); // => true
isObject(15);                // => false
isObject(null);              // => false

3. null 的陷阱

null經常會在我們認為該變數是物件的情況下意外出現。然後,如果從null中提取屬性,JS 會丟擲一個錯誤。
所以說我麼你想要從一個物件上取屬性的時候,要注意判斷這個物件可能是null, 要不然的話可能會出錯。

【推薦學習:《》】

4. null 的替代方法

當無法構造物件時,我們通常的做法是返回null,但是這種做法有缺點。在執行堆疊中出現null時,剛必須進行檢查。

嘗試避免返回 null 的做法:

  • 返回預設物件而不是null
  • 丟擲錯誤而不是返回null

5. null vs undefined

undefined是未初始化變數物件屬性的值
nullundefined之間的主要區別是,null表示丟失的物件,而undefined表示未初始化的狀態。

提示:文章寫完後,目錄可以自動生成,如何生成可參考右邊的幫助文件

以上就是javascript中null是什麼的詳細內容,更多請關注php中文網其它相關文章!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2558/viewspace-2827277/,如需轉載,請註明出處,否則將追究法律責任。

相關文章