JavaScript 如何检查一个对象是否存在

JavaScript 如何检查一个对象是否存在

对象包含了JavaScript中的属性和它们的值。我们可以使用大括号({})创建一个对象。它与变量类似,但我们分配一个对象值,而不是将数字、字符串或布尔值分配给变量。

因此,在本教程中,我们将学习如何在JavaScript中检查对象是否存在。简而言之,我们要学习检查对象变量是否存在的方法。

使用try-catch语句

一般来说,我们使用try-catch语句来处理JavaScript中的错误。我们可以在尝试块中尝试访问对象或其属性,如果程序没有找到该对象,就会引发错误并转到catch块,而不完成尝试块代码的执行。

语法

用户可以按照下面的语法,使用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操作符来检查变量的类型。在这里,我们将检查变量类型是否等于 “对象”,这意味着对象存在;否则,如果我们得到 “未定义 “或任何其他数据类型,这意味着该变量不是对象类型。

语法

用户可以按照下面的语法,使用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.
}

在上述语法中,对象是一个包含对象的变量。

示例

在下面的例子中,我们已经创建了电话对象,它包含了一些属性和作为键值对的值。之后,我们用if-else语句来检查代码中的电话对象是否存在。

用户可以观察到,由于电话对象的存在,控制权进入了if块的输出。

<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操作符。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

JavaScript 教程