Объект и его внутреннее представление — JavaScript

Что такое объект JavaScript

Объекты в JavaScript состоят из пар ключ/значение любого типа и похожи на словари в Python, HashMaps в Java и т. д. Давайте посмотрим!

Создание объектов JavaScript

Используйте { } для создания пустого объекта.

const person = {};

Вы также можете определить объект с уже включенными парами ключ/значение, используя синтаксис литерала объекта. В данном случае я создаю объект с четырьмя свойствами: first, last, age и email.

const person = {
    first: "Abhijeet",
    last: "Pawar",
    age: 23,
    email: "[email protected]"
}

Работа со свойствами объекта

После создания объекта со свойствами вы можете получить доступ к каждому свойству с помощью записи через точку. После вашего объекта вы ставите точку (.), за которой следует имя свойства, которое вы ищете.

console.log(person.first) //Abhijeet
console.log(person.last) //Pawar
console.log(person.age) //23

В качестве альтернативы вы можете использовать следующий синтаксис, используя скобки и имя свойства, которое вы ищете внутри скобок.

console.log(person["first"]) //Abhijeet
console.log(person["last"]) //Pawar
console.log(person["age"]) //23

Вы также можете использовать точечную запись или именованную запись для обновления свойств.

person.name = abhi;
person.age = 24;
console.log(person.name) //abhi
console.log(person.age) //24

Чтобы удалить свойство объекта, вы можете вызвать команду delete, а затем указать свойство, которое хотите удалить. После удаления свойства оно будет возвращать неопределенное значение при попытке доступа к нему.

delete person.age
console.log(person.age); //undefined

Сравнение объектов

В JavaScript объекты являются ссылочным типом. Два разных объекта никогда не бывают равными, даже если они обладают одинаковыми свойствами. Только сравнение одной и той же ссылки на объект с самой собой дает истину.

// Two variables, two distinct objects with the same properties
let p1 = { name:"alex" };
let p2 = { name:"john" };
//Here p1 and p2 are pointing to two different objects
p1==p2; //false
p1===p2; //false
//Two variables, single object
let p1 = { name:"sam" };
let p2 = p1;
//Here p1 and p2 are pointing to same object
p1==p2; //true
p1===p2; //true