如何在 JavaScript 中檢查物件是否存在?


物件包含 JavaScript 中的屬性及其值。我們可以使用花括號 ({}) 建立物件。它類似於變數,但我們分配物件值而不是將數字、字串或布林值分配給變數。

因此,在本教程中,我們將學習如何檢查物件是否在 JavaScript 中存在。簡而言之,我們必須學習檢查物件變數存在的方法。

使用 try-catch 語句

通常,我們使用 try-catch 語句來處理 JavaScript 中的錯誤。我們可以在 try 塊中嘗試訪問物件或其屬性,如果程式找不到該物件,它會引發錯誤並進入 catch 塊,而不會完成 try 塊程式碼的執行。

語法

使用者可以按照以下語法使用 try-catch 塊來檢查物件是否已定義。

try {
   let value = object.prop;
   // object is defined
} catch {
   // object is not defined
}

我們在上面語法的 try 塊中訪問未定義的物件。

示例

在下面的示例中,我們使用了 try-catch 語句。在 try 塊中,我們試圖訪問物件的 prop 屬性,該屬性未定義。

使用者可以在輸出中觀察到,執行控制列印來自 catch 塊的訊息,但不會列印來自 try 塊的訊息,因為我們正在訪問未定義的物件,這將引發錯誤。

<html>
<body>
   <h3>Using the <i>try-catch block</i> to check if the object is defined in JavaScript.</h2>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      try {
         let value = object.prop;
         output.innerHTML += "The object is successfully defined!"
      } catch {
         output.innerHTML += "The object is not defined!"
      }
   </script>
</body>
</html>

使用 typeof 運算子

開發人員可以使用 typeof 運算子來檢查變數的型別。在這裡,我們將檢查變數型別是否等於“object”,這意味著物件存在;否則,如果我們得到“undefined”或任何其他資料型別,則表示變數不是物件型別。

語法

使用者可以按照以下語法使用 typeof 運算子檢查物件是否存在。

let objType = typeof obj === ‘object’;

在上面的語法中,嚴格相等運算子匹配來自 typeof 運算子的返回值和“object”字串。

示例

在下面的示例中,我們建立了 obj 物件。當用戶單擊按鈕時,它會呼叫 isObjectDefined() 函式。在 isObjectDefined() 函式中,我們使用 typeof 運算子獲取 obj 變數的型別並將其儲存在 objType 中。之後,我們將 objType 變數的值與“object”進行比較,以檢查物件是否存在。

<html>
<body>
   <h2>Using the <i>typeof</i> operator to check if the object is defined in JavaScript.</h2>
   <p id = "output"></p>
   <button onclick = "isObjectDefined()"> Check for Object </button>
   <script>
      let output = document.getElementById("output");
      let obj = {
         prop1: "hello",
         prop2: "Users!"
      }
      function isObjectDefined() {
         let objType = typeof obj;
         if (objType === "object") {
            output.innerHTML += "The code contains the object!"
         } else {
            output.innerHTML += "The code doesn't contain the object!"
         }
      }
   </script>
</body>
</html>

使用 if-else 語句

眾所周知,我們可以將條件傳遞給 if 語句。變數或物件本身表示布林值。當變數存在幷包含除“null”之外的一些值時,它實際上是一個布林值;否則,它是一個假布林值。當我們使用假布林值作為 if 語句的條件時,控制始終進入 else 塊。

語法

使用者可以按照以下語法使用 if-else 語句檢查物件是否存在。

if (object) {
   // object exists
} else {
   // object doesn’t exist.
}

在上面的語法中,object 是一個包含物件的變數。

示例

在下面的示例中,我們建立了 phone 物件,其中包含一些屬性和值作為鍵值對。之後,我們使用 if-else 語句檢查 phone 物件是否存在於程式碼中。

使用者可以觀察輸出,控制進入 if 塊,因為 phone 物件存在。

<html>
<body>
   <h2>Using the <i>if-else</i> statement to check if the object is defined in JavaScript.</h2>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      let phone = {
         "color": "blue",
         "RAM": "8GB",
         "ROM": "128GB"
      }
      if (phone) {
         output.innerHTML += "The phone object defined in the code!"
      } else {
         output.innerHTML += "The phone object isn't defined in the code!"
      }
   </script>
</body>
</html>

使用者學習了三種檢查物件是否存在的方法。使用者可以根據自己的需求使用任何一種方法。如果他們還需要捕獲其他錯誤,他們可以使用 try-catch 塊;否則,他們使用普通的 if-else 語句而不是 typeof 運算子。

更新於: 2023年1月19日

6K+ 閱讀量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告