有两种方法可以查找javascript对象中是否存在键。
假设我们有一个“员工”对象,如下所示。
var employee = { name: "Ranjan", age: 25 }
现在,我们需要检查雇员对象中是否存在“名称”属性。
我们可以对对象使用“ 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
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