Free PDF guide download here JavaScript Objects Tutorial for Beginners

JavaScript Objects Tutorial for Beginners

Welcome to the JavaScript Objects tutorial for beginners! This guide is designed to help you learn JavaScript Objects from scratch. We’ll cover the basics, provide coding examples, and include quiz questions to test your understanding. By the end of this tutorial, you’ll have a solid foundation in JavaScript Objects and how to use them effectively in your programs. Let’s get started!


Introduction to JavaScript Objects

Why Learn About Objects?

Objects are a fundamental part of JavaScript and are used to represent real-world entities, organize data, and build complex data structures. Understanding objects is crucial for:

  • Organizing Code: Keep related data and functions together.
  • Modeling Real-world Entities: Represent complex data structures.
  • Using Libraries and Frameworks: Many JavaScript libraries heavily rely on objects.

What is an Object in JavaScript?

An object is a collection of properties, where each property is an association between a key (also called a property name) and a value. The keys are strings (or Symbols), and the values can be of any data type, including other objects.

Example:

let person = {

  firstName: ‘John’,

  lastName: ‘Doe’,

  age: 30,

  isEmployed: true

};

In this example, person is an object with properties firstName, lastName, age, and isEmployed.


Creating Objects

There are several ways to create objects in JavaScript.

1. Object Literals

The most common way to create an object is using an object literal, which is a comma-separated list of key-value pairs wrapped in curly braces {}.

Syntax:

let objectName = {

  key1: value1,

  key2: value2,

  // …

};

Example:

let car = {

  make: ‘Toyota’,

  model: ‘Corolla’,

  year: 2020

};

2. Using the new Keyword

You can create an empty object using the new keyword and the Object() constructor.

Example:

let obj = new Object();

Adding properties:

obj.property1 = ‘Value1’;

obj.property2 = ‘Value2’;

3. Constructor Functions

Constructor functions allow you to create multiple objects with the same structure.

Example:

function Person(firstName, lastName, age) {

  this.firstName = firstName;

  this.lastName = lastName;

  this.age = age;

}

let person1 = new Person(‘Alice’, ‘Smith’, 25);

let person2 = new Person(‘Bob’, ‘Johnson’, 30);

4. Classes (ES6)

Introduced in ES6, classes provide a cleaner syntax for creating constructor functions.

Example:

class Animal {

  constructor(name, sound) {

    this.name = name;

    this.sound = sound;

  }

  makeSound() {

    console.log(`${this.name} says ${this.sound}`);

  }

}

let dog = new Animal(‘Dog’, ‘Bark’);

dog.makeSound(); // Outputs: Dog says Bark


Accessing Object Properties

You can access object properties using two notations:

1. Dot Notation

Syntax:

objectName.propertyName;

Example:

console.log(person.firstName); // Outputs: John

2. Bracket Notation

Syntax:

objectName[‘propertyName’];

Example:

console.log(person[‘lastName’]); // Outputs: Doe

When to use Bracket Notation:

  • When the property name contains spaces or special characters.
  • When the property name is a variable.

Example with Variable:

let property = ‘age’;

console.log(person[property]); // Outputs: 30


Modifying Objects

You can add, update, or delete properties of an object.

Adding Properties

Example:

person.email = ‘john.doe@example.com’;

console.log(person.email); // Outputs: john.doe@example.com

Updating Properties

Example:

person.age = 31;

console.log(person.age); // Outputs: 31

Deleting Properties

Use the delete keyword.

Example:

delete person.isEmployed;

console.log(person.isEmployed); // Outputs: undefined


Nested Objects

Objects can contain other objects as properties.

Example:

let student = {

  name: ‘Charlie’,

  age: 20,

  address: {

    street: ‘123 Main St’,

    city: ‘New York’,

    zipCode: ‘10001’

  }

};

console.log(student.address.city); // Outputs: New York

Access nested properties using chained dot notation or bracket notation.


Methods in Objects

A method is a function stored as a property in an object.

Example:

let calculator = {

  add: function(a, b) {

    return a + b;

  }

};

console.log(calculator.add(5, 3)); // Outputs: 8

Shorthand Syntax (ES6):

let calculator = {

  add(a, b) {

    return a + b;

  }

};


The this Keyword

In the context of an object method, this refers to the object itself.

Example:

let person = {

  firstName: ‘David’,

  lastName: ‘Williams’,

  fullName: function() {

    return this.firstName + ‘ ‘ + this.lastName;

  }

};

console.log(person.fullName()); // Outputs: David Williams

Explanation:

  • this.firstName refers to the firstName property of the person object.

Object Constructors and Prototypes

Constructor Functions

As shown earlier, constructor functions allow you to create multiple objects with similar properties and methods.

Example:

function Animal(name, sound) {

  this.name = name;

  this.sound = sound;

}

Animal.prototype.makeSound = function() {

  console.log(`${this.name} says ${this.sound}`);

};

let cat = new Animal(‘Cat’, ‘Meow’);

cat.makeSound(); // Outputs: Cat says Meow

Prototypes

Every JavaScript function has a prototype property that allows you to add properties and methods to all instances created by that constructor.

Example:

function Person(name) {

  this.name = name;

}

Person.prototype.greet = function() {

  console.log(‘Hello, my name is ‘ + this.name);

};

let person1 = new Person(‘Emma’);

let person2 = new Person(‘Liam’);

person1.greet(); // Outputs: Hello, my name is Emma

person2.greet(); // Outputs: Hello, my name is Liam


Quiz Questions

Q1: How do you create an object using an object literal?

A. let obj = Object();
B. let obj = {};
C. let obj = new Object();
D. let obj = create Object();

Answer: B. let obj = {};


Q2: Given the object let car = { make: ‘Ford’, model: ‘Mustang’ };, how do you access the model property using dot notation?

A. car[model];
B. car.model;
C. car->model;
D. car(‘model’);

Answer: B. car.model;


Q3: How do you add a new property color with the value ‘red’ to the car object?

A. car.color = ‘red’;
B. car[‘color’] = ‘red’;
C. Both A and B
D. addProperty(car, ‘color’, ‘red’);

Answer: C. Both A and B


Q4: What does the this keyword refer to inside an object method?

A. The global object
B. The object itself
C. The method
D. Undefined

Answer: B. The object itself


Q5: How do you delete the age property from an object person?

A. remove person.age;
B. delete person.age;
C. person.age = null;
D. person.delete(‘age’);

Answer: B. delete person.age;


Q6: In JavaScript, what is a method?

A. A property
B. A function stored in an object property
C. A variable
D. An event

Answer: B. A function stored in an object property


Q7: How do you define a method greet in an object user using the ES6 shorthand syntax?

A. user.greet = function() { … };
B. user = { greet() { … } };
C. user = { function greet() { … } };
D. user.greet() = { … };

Answer: B. user = { greet() { … } };


Q8: What will be the output of the following code?

function Person(name) {

  this.name = name;

}

Person.prototype.sayHi = function() {

  console.log(‘Hi, ‘ + this.name);

};

let person = new Person(‘Olivia’);

person.sayHi();

A. Hi, undefined
B. Hi, Olivia
C. Error
D. Hi, [object Object]

Answer: B. Hi, Olivia


Q9: Which of the following is a correct way to create a nested object?

A.

let obj = {

  a: {

    b: 2

  }

};

B.

let obj = {

  a: [b: 2]

};

C.

let obj = {

  a: b: 2

};

D.

let obj = {

  a = {

    b = 2

  }

};

Answer: A.


Q10: How do you access the value 2 in the nested object obj from the previous question?

A. obj.a.b;
B. obj[‘a’][‘b’];
C. Both A and B
D. obj.a[‘b’];

Answer: C. Both A and B


Conclusion

Congratulations! You’ve learned about JavaScript Objects, including how to create them, access and modify their properties, work with methods, understand the this keyword, and use constructors and prototypes. Objects are a fundamental part of JavaScript and are essential for building complex applications.