How do I check if an object has a specific property in JavaScript?
Davide S
davide s profile pic

In JavaScript, there are several approaches to check if an object has a specific property. Here are a few commonly used methods: 1. Using thein operator: Thein operator can be used to check if a property exists in an object, including properties inherited from its prototype chain. Here's an example:

1
2
3
4
5

const obj = { name: 'John', age: 30 };

console.log('name' in obj); // Output: true
console.log('city' in obj); // Output: false

In this example, thein operator is used to check if theobj has the properties'name' and'city'. It returnstrue for'name' since the property exists, andfalse for'city' since it does not. 2. Using thehasOwnProperty() method: ThehasOwnProperty() method allows you to determine if an object has a specific property directly defined on itself, excluding properties inherited from its prototype chain. Here's an example:

1
2
3
4
5

const obj = { name: 'John', age: 30 };

console.log(obj.hasOwnProperty('name')); // Output: true
console.log(obj.hasOwnProperty('city')); // Output: false

In this example, thehasOwnProperty() method is called on theobj to check if it has the properties'name' and'city'. It returnstrue for'name' since the property exists, andfalse for'city' since it does not. 3. Using theObject.keys() method: TheObject.keys() method returns an array containing all the enumerable property names of an object. By checking if a specific property name exists in this array, you can determine if the object has that property. Here's an example:

1
2
3
4
5

const obj = { name: 'John', age: 30 };

console.log(Object.keys(obj).includes('name')); // Output: true
console.log(Object.keys(obj).includes('city')); // Output: false

In this example, theObject.keys(obj) returns an array of property names (['name', 'age']). Theincludes() method is then used to check if'name' and'city' are present in the array, returningtrue for'name' andfalse for'city'. Choose the method that best suits your requirements. Thein operator is useful when you want to check for properties in the object, including those inherited from prototypes. ThehasOwnProperty() method is suitable for checking properties directly defined on the object. TheObject.keys() method provides a way to obtain an array of property names and perform checks using array methods.