Monday, November 11, 2024

JavaScript, How to check a property of an object exist or not

There are several ways to check if a property exists in an object in JavaScript:

1. Using the in Operator

The in operator checks if a property exists in the object, including properties in the prototype chain.
const obj = { name: 'Alice' };
console.log('name' in obj); // true
console.log('age' in obj);  // false

2. Using hasOwnProperty Method

The hasOwnProperty method checks only the object’s own properties, excluding inherited properties from the prototype chain.
console.log(obj.hasOwnProperty('name')); // true
console.log(obj.hasOwnProperty('age'));  // false

3. Using Object.hasOwn (ES2022)

Object.hasOwn is similar to hasOwnProperty, checking only the object’s own properties but more concise.
console.log(Object.hasOwn(obj, 'name')); // true
console.log(Object.hasOwn(obj, 'age'));  // false

4. Using Undefined Check

Directly checking if the property is undefined is another way, though it doesn’t differentiate between a property that doesn’t exist and one that exists but is set to undefined.
console.log(obj.name !== undefined); // true
console.log(obj.age !== undefined);  // false

5. Using Object.keys or Object.hasOwnProperty in a Conditional Check

If you want to verify the existence of a property without triggering inherited properties or possible undefined values, combining Object.keys() with includes() works well.
console.log(Object.keys(obj).includes('name')); // true
Each method has its best use case, depending on whether you need to include prototype properties or ensure that only the object's own properties are checked.

No comments:

Post a Comment

Hot Topics