Skip to main content

Objects

Objects definition

  • Objects are a collection of named values (key value pairs)
  • It is common practice to declare them with the const keyword.
  • The named values are called properties.
  • Order the properties don't matter.
const person = {
name: 'Steve Dsouza',
age: 22,
motherTongue: 'Konkani',
techStack: ['HTML', 'CSS', 'Javascript'],
};

Retrieving data from objects

Dot & Bracket Notation

  • values from objects can be retrieved using the . or []notation
  • to retrieve values with ., It has to be the actual property name.
  • to retrieve values with [],It can be computed values that correspond to the property name.
const person = {
firstName: 'ABC',
lastName: 'EFG',
age: 22,
motherTongue: 'Konkani',
techStack: ['HTML', 'CSS', 'Javascript'],
};
// using the dot notation
console.log(person.firstName); // output => ABC
// using the bracket notatiom
const nameKey = 'Name';
console.log(person['first' + nameKey]); // output => ABC

Object methods

Objects can have methods in them. As methods are just function expressions they can be stored in an object.

  • There could be a possibility that a method calcAge can be called multiple times in the program. This would cause a lot of resource use if the function was big and complex.
  • It is good practice to store the values back into the object, so it can be later accessed as a property.
const person = {
firstName: 'ABC',
lastName: 'EFG',
birthYear: 2001,
motherTongue: 'Konkani',
techStack: ['HTML', 'CSS', 'Javascript'],

calcAge: function () {
this.age = 2023 - this.birthYear;
return 2023 - this.birthYear;
},
};

console.log(person.calcAge()); // output=> 22
console.log(person.age); // output=> 22

Object destructuring

  • The destructuring assignment syntax is a JavaScript expression that makes it possible to unpack values properties from objects, into distinct variables.
    const object = { a: 10, b: 2 };
    const { a, b } = object;
    console.log(a); //output => 10
  • We can have different variable name from the property names.
    const person = {
    name: 'Steve',
    surname: 'Dsouza',
    };
    const { name: firstName, surname: lastName } = person;
    console.log(firstName, lastName); //output => Steve Dsouza

Optional Chaining

  • The optional chaining (?.) operator accesses an object's property or calls a function.
    • If the object accessed or function called using this operator is undefined or null, the expression short circuits and evaluates to undefined instead of throwing an error.
  • This is often used when using API's , when we don't know what are the property names.
  • Can be used with arrays as well.
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah',
},
};

const dogName = adventurer.dog?.name;
console.log(dogName); //output => undefined
const catName = adventurer.cat?.name;
console.log(catName); //output=> Dinah

Object Keys, values, entries

  • Used to get object properties and values.
  • Returns an array.
const object1 = {
a: 'somestring',
b: 42,
c: false,
};

console.log(Object.keys(object1)); // output=> ["a","b","c"]
console.log(Object.values(object1)); // output=>["somestring", 42, false]
console.log(Object.entries(object1));
// output => [ [ 'a', 'somestring' ], [ 'b', 42 ], [ 'c', false ] ]
// Entries returns it as a key value pair