首頁 >web前端 >前端問答 >javascript中null是什麼

javascript中null是什麼

藏色散人
藏色散人原創
2021-09-01 14:03:179277瀏覽

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, 要不然的話可能會出錯。

【推薦學習:《javascript基礎教學》】

4. null 的替代方法

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

嘗試避免傳回null 的做法:

  • 傳回預設物件而不是null
  • 拋出錯誤而不是返回null

5. null vs undefined

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

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

##

以上是javascript中null是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn