如何检查JavaScript对象中是否存在键?

有两种方法可以查找javascript对象中是否存在键。

假设我们有一个“员工”对象,如下所示。

   var employee = {
      name: "Ranjan",
      age: 25
   }

现在,我们需要检查雇员对象中是否存在“名称”属性。

1)'输入'运算符

我们可以对对象使用“ in”运算符来检查其属性。如果没有发现对象的任何实际属性,则“ in”运算符还将查找继承的属性。

在以下示例中,当检查“ toString”是否存在时,“ in”运算符将仔细检查对象的属性。一旦确认不存在,就涉及对象的基本属性。由于“ toString”是基本属性,因此显示“ true”,如输出所示。

示例

<html>
<body>
<script>
   var employee = {
      name: "Ranjan",
      age: 25
   }
   document.write("name" in employee);
   document.write("</br>");
   document.write("salary" in employee);
   document.write("</br>");
   document.write("toString" in employee);
</script>
</body>
</html>

输出

true
false
true


2) hasOwnProperty() 

此方法仅检查对象的实际属性,而不检查任何继承的属性。如果存在实际属性,则此方法根据其可用性显示true或false。

在以下示例中,我们还搜索了诸如“ toString”之类的继承属性,因此它显示为false,如输出所示。

示例

<html>
<body>
<script>
   var employee = {
      name: "Ranjan",
      age: 25
   }
   document.write(employee.hasOwnProperty('toString'));
   document.write("</br>");
   document.write(employee.hasOwnProperty('name'));
   document.write("</br>");
   document.write(employee.hasOwnProperty('salary'));
</script>
</body>
</html>

输出结果

false
true
false