typeofinstanceof差別

typeof 操作符

typeof 用於獲取一個變量的數據類型。它會返回一個表示類型的字符串。例如:
typeof 對於基本數據類型通常很有用,但對於物件和類,typeof 可能不會返回很有用的信息。

instanceof 操作符

instanceof 用於檢查一個對象是否是一個特定類型的實例,或者說,一個對象是否是一個構造函數的實例。它會返回一個布爾值。例如:
舉個例子,如果你有一個自定義的構造函數:
使用 instanceof 可以檢查 myInstance 是否是 CustomType 的實例:

區別

  1. 用途和返回值
      • typeof 用於獲取變量的數據類型,返回一個字符串。
      • instanceof 用於檢查對象是否是一個特定類型的實例,返回一個布爾值。
  1. 對於基本類型和物件的處理
      • typeof 更適合用於檢查基本數據類型。
      • instanceof 更適合用於檢查對象是否屬於特定的類型或構造函數的實例。
  1. 對於 null 和物件
      • typeof null 會返回 "object"。
      • null instanceof Object 會返回 false
  1. 原型鏈
      • instanceof 會考慮原型鏈。如果一個對象是一個類型的實例,那麼它也會被認為是該類型原型鏈上的所有類型的實例。
      • typeof 不會考慮原型鏈,它僅僅返回一個表示變量類型的字符串。