Back to JavaScript
2026-05-125 min read

Dot notation (JavaScript)

Learn Dot notation (JavaScript) step by step with clear examples and exercises.

Title: Mastering Dot Notation in JavaScript - A full guide

Why This Matters

Understanding and mastering dot notation is crucial for navigating and manipulating objects in JavaScript, a fundamental skill for both beginners and experienced developers. It's essential for handling real-world projects, debugging complex issues, and acing coding interviews. Dot notation provides a more readable and convenient way to access object properties and methods compared to using square bracket notation.

Prerequisites

Before diving into dot notation, you should have a solid understanding of the following concepts:

  1. JavaScript basics: variables, data types, operators, functions, and control structures.
  2. Objects in JavaScript: creating objects, properties, methods, and accessing object properties using square bracket notation.
  3. Understanding the difference between dot notation and square bracket notation for accessing object properties.
  4. Familiarity with the this keyword and its role in object methods.
  5. Knowledge of variable scopes and hoisting in JavaScript.

Core Concept

Dot notation is a shorthand way to access an object's property by concatenating the property name directly to the object reference with a dot (.). This method is more readable and convenient when dealing with simple, single-level properties or methods.

const person = {
firstName: "John",
lastName: "Doe"
};

console.log(person.firstName); // Output: John
console.log(person.lastName); // Output: Doe

When using dot notation to call a method on an object, the this keyword is automatically bound to the object instance, allowing you to access its properties without passing them as arguments:

const car = {
brand: "Toyota",
model: "Corolla",
getDetails() {
return `${this.brand} ${this.model}`;
}
};

console.log(car.getDetails()); // Output: Toyota Corolla

Accessing deeply nested properties with dot notation

While it's more common to use square bracket notation for accessing deeply nested or complex properties, you can still use dot notation by chaining multiple dots (.) between the object reference and the nested property names:

const nestedObject = {
level1: {
level2: {
property: "value"
}
}
};

console.log(nestedObject.level1.level2.property); // Output: value

Worked Example

Let's create a more complex example of using dot notation to manipulate an object and its properties:

const student = {
name: "Alice",
age: 20,
address: {
city: "New York",
state: "NY"
}
};

// Accessing properties
console.log(student.name); // Output: Alice
console.log(student.age); // Output: 20
console.log(student.address.city); // Output: New York
console.log(student.address.state); // Output: NY

// Modifying properties
student.age = 21;
student.address.city = "Los Angeles";

console.log(student.age); // Output: 21
console.log(student.address.city); // Output: Los Angeles

Common Mistakes

Forgetting property existence

Ensure that the object contains the property you're trying to access, or use a conditional check before accessing the property.

if (person.address) {
console.log(person.address);
} else {
console.log("No address found.");
}

Accessing properties with spaces or special characters

Avoid using spaces or special characters in property names, as they may cause issues when using dot notation. Instead, use camelCase or underscore notation for such cases:

const objectWithSpecialChars = {
"first name": "John",
last_name: "Doe"
};

console.log(objectWithSpecialChars["first name"]); // Output: John
console.log(objectWithSpecialChars.last_name); // Output: Doe

Forgetting to include this keyword in object methods

When defining methods inside an object, make sure to use the this keyword to reference the object's properties:

const car = {
brand: "Toyota",
model: "Corolla",
getDetails() {
return `${this.brand} ${this.model}`;
}
};

console.log(car.getDetails()); // Output: Toyota Corolla

Assigning a value to an undefined property

If you attempt to assign a value to an undefined property using dot notation, JavaScript will automatically create the property and assign the value:

const person = { firstName: "John" };
person.lastName = "Doe";
console.log(person); // Output: { firstName: 'John', lastName: 'Doe' }

Practice Questions

  1. Create a simple object representing a car with properties brand, model, and year. Access and modify these properties using dot notation.
  2. Define an object with methods for calculating the area of a rectangle and a circle. Use dot notation to call these methods.
  3. Given the following objects, access the value of the fruit property:
const fruitBasket = {
apples: 5,
bananas: 3,
fruit: "apple"
};

const apple = {
name: "Apple",
color: "Red"
};
  1. Create an object representing a person with properties name, age, and address. Nest the address property with its own properties city and state. Access and modify these properties using dot notation.
  2. Write a function that takes an object as a parameter, checks if it has a favoriteFood property, and returns the value of that property or a default message if it doesn't exist.

FAQ

What happens if I try to access a non-existent property using dot notation?

If you attempt to access a non-existent property using dot notation, JavaScript will return undefined. To avoid this issue, always check whether the property exists before trying to access it.

if (person.address) {
console.log(person.address);
} else {
console.log("No address found.");
}

Can I use dot notation with nested properties?

Yes, you can use dot notation to access nested properties by chaining multiple dots (...) between the object reference and the nested property names. However, it's more common to use square bracket notation for accessing deeply nested or complex properties:

const nestedObject = {
level1: {
level2: {
property: "value"
}
}
};

console.log(nestedObject.level1.level2.property); // Output: value

Is there a limit to the number of properties an object can have in JavaScript?

No, there is no limit to the number of properties an object can have in JavaScript. You can add as many properties as you need, but keep in mind that large objects may impact performance.

Dot notation (JavaScript) | JavaScript | XQA Learn