Programming Language
JavaScript
Object
JavaScript Object

Complete Understanding Objects in JavaScript

Objects are a core feature in JavaScript, allowing you to store and manage data in a flexible way. This article will explain what objects are, how to create and use them, and how to handle their properties.

What is an Object in JavaScript?

An object in JavaScript is a collection of key-value pairs. Each key (also called a property) is a string (or symbol), and each value can be any type of data, including other objects, functions, and arrays.

const person = {
  name: 'Alice',
  age: 30,
  isStudent: false
};

Why Do We Need Objects?

Objects are useful because they allow you to:

  • Group Related Data: Keep related values together.
    • Organize Code: Structure your code in a more readable way.
    • Encapsulate Data: Bundle data and functions into a single entity.
    • List of Objects in JavaScript

In JavaScript, there are various built-in objects such as:

  • Object
  • Array
  • Date
  • Math
  • String
  • Number
  • RegExp

Creating an Object in JavaScript

Declaring Objects in JavaScript

  • You can declare objects using several methods:
Using Object Literals

The most common way to create an object is by using an object literal.

const car = {
  brand: 'Toyota',
  model: 'Corolla',
  year: 2020
};
By Creating an Instance of the Object Using new Keyword

You can also create an object instance using the new keyword.

const person = new Object();
person.name = 'Bob';
person.age = 25;
By Creating a Constructor

Constructors allow you to create objects with similar properties.

function Person(name, age) {
  this.name = name;
  this.age = age;
}
 
const person1 = new Person('Alice', 30);
const person2 = new Person('Bob', 25);

Retrieving Data from Objects

Using Dot (.) Notation

You can access object properties using dot notation.

const car = {
  brand: 'Toyota',
  model: 'Corolla'
};
 
console.log(car.brand); // 'Toyota'

Using Bracket ([]) Notation

You can also access properties using bracket notation, which is useful when property names are dynamic or not valid identifiers.

const car = {
  brand: 'Toyota',
  model: 'Corolla'
};
 
console.log(car['model']); // 'Corolla'

Handling Non-Existent Properties

When you try to access a property that doesn’t exist, it returns undefined.

const car = {
  brand: 'Toyota'
};
 
console.log(car.model); // undefined

Updating Object Values

You can update the values of existing properties using either dot notation or bracket notation.

const car = {
  brand: 'Toyota',
  model: 'Corolla'
};
 
car.model = 'Camry'; // Using dot notation
car['year'] = 2021; // Using bracket notation

Copying an Object in JavaScript

Shallow Copy

A shallow copy creates a new object with the same top-level properties. Changes to nested properties affect both the original and the copied object.

Using Object.assign()
const original = { name: 'Alice', age: 30 };
const copy = Object.assign({}, original);
 
copy.age = 31;
console.log(original.age); // 30
Using Spread Operator
const original = { name: 'Alice', age: 30 };
const copy = { ...original };
 
copy.age = 31;
console.log(original.age); // 30

Deep Copy

A deep copy creates a new object with all nested objects copied as well. Changes to nested properties do not affect the original object.

Using JSON.parse() and JSON.stringify()
const original = { name: 'Alice', address: { city: 'Wonderland' } };
const copy = JSON.parse(JSON.stringify(original));
 
copy.address.city = 'Neverland';
console.log(original.address.city); // 'Wonderland'

Deleting Object Properties

You can remove properties from an object using the delete operator.

const car = {
  brand: 'Toyota',
  model: 'Corolla'
};
 
delete car.model;
console.log(car.model); // undefined

Checking if a Property or Method Exists in an Object

Using in Operator

The in operator checks if a property exists in an object.

const car = { brand: 'Toyota', model: 'Corolla' };
console.log('brand' in car); // true
console.log('year' in car); // false

Accessing (Iterating/Looping) Through Objects in JavaScript

Using Object.keys()

The Object.keys() method returns an array of an object's property names.

const car = { brand: 'Toyota', model: 'Corolla' };
const keys = Object.keys(car);
 
keys.forEach(key => {
  console.log(key, car[key]);
});

Using for...of Loop

Combine Object.keys() with a for...of loop to iterate over properties.

const car = { brand: 'Toyota', model: 'Corolla' };
for (const key of Object.keys(car)) {
  console.log(key, car[key]);
}

Using forEach Loop

The forEach method can be used to iterate over the array returned by Object.keys().

const car = { brand: 'Toyota', model: 'Corolla' };
Object.keys(car).forEach(key => {
  console.log(key, car[key]);
});

Conclusion

JavaScript objects are versatile and powerful tools for managing and organizing data. They allow you to group related information, access and modify data, and perform various operations efficiently. Understanding how to use objects effectively will help you write better and more organized code.