Open In App

JavaScript delete Operator

Last Updated : 06 Jan, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

The delete operator in JavaScript removes properties from objects, including inherited ones, and creates holes in arrays without changing their length. If a deleted property holds an object with no other references, that object is automatically released by JavaScript’s garbage collector over time.

Syntax

delete object
// or
delete object.property
// or
delete object['property']

Parameter: It does not take any parameters.

Return type: The delete operator returns true for non-existent properties but fails (false) when attempting to delete variables or functions.

Example 1: In this example, we deletes the salary property from the emp object. If successful, it returns true. After deletion, console.log(emp) confirms the updated object without salary.

javascript
let emp = { 
    firstName: "Raj", 
    lastName: "Kumar", 
    salary: 40000 
} 

console.log(delete emp.salary);
console.log(emp);

Output
true
{ firstName: 'Raj', lastName: 'Kumar' }

Example 2: In this example, the age property in obj is made non-configurable, preventing deletion. delete obj.age returns false, and the age property remains unchanged in the obj object.

javascript
// Define an object with a non-configurable property
let obj = {
  name: "John"
};

Object.defineProperty(obj, 'age', {
  value: 30,
  // Making 'age' property non-configurable
  configurable: false
});

console.log(obj); // { name: 'John', age: 30 }

// Attempt to delete the non-configurable property 'age'
let result = delete obj.age;
console.log(result);

console.log(obj); 

Output
{ name: 'John' }
false
{ name: 'John' }

Example 3: In this example, delete arr[0] removes the element at index 0, leaving an empty slot. The array retains its original length, but index 0 is now undefined.

javascript
let arr = [1, 2, 3]

console.log(delete arr[0]); //true
console.log(arr); //[empty, 2, 3]

Output
true
[ <1 empty item>, 2, 3 ]

Example 4: In this example, globalVar is declared with var and localVar with let. They cannot be deleted using the delete operator because variables declared using var, let, or const are not properties of the global object (in a browser environment, this would be window), but rather local variables or properties of the local scope.

JavaScript
var globalVar = 10;
let localVar = 20;

console.log(delete globalVar); // false, deletion fails
console.log(delete localVar);  // false, deletion fails

console.log(globalVar); // 10, deletion failed
console.log(localVar);  // 20, deletion failed

Output
false
false
10
20

Conclusion

Some developers use setting an object property’s value to null or undefined as an alternative method. However, this doesn’t fully remove the property; it still exists with the value of null or undefined. It can cause issues with operations like the ‘for…in’ loop. Additionally, using the delete operator in loops can significantly slow down the program. Therefore, it’s best to use delete only when it’s really necessary to remove an object property.



Next Article

Similar Reads