如何在 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 運算子。