Skip to content

Объекты

Объекты

// Доступ к свойствам с помощью точечной нотации
const student = {
firstName: "alex",
mark: 5,
};
console.log(student);
console.log(student.firstName);
console.log(student.mark);
student.mark -= 1;
console.log(student);
// Доступ к свойствам с помощью скобочной нотации
const student = {
firstName: "alex",
mark: 5,
};
console.log(student);
console.log(student["firstName"]);
console.log(student["mark"]);
student["mark"] -= 1;
console.log(student);
// Деструктуризация объекта
const student = {
firstName: "alex",
mark: 5,
};
const { firstName, mark } = student;
console.log(firstName);
console.log(mark);
// Массив объектов
const users = [
{
name: "allen",
age: 30,
gender: "male"
},
{
name: "bob",
age: 25,
gender: "male"
},
{
name: "caroline",
age: 35,
gender: "female"
}
];
console.log(users[0].name);
console.log(users[0]["age"]);

Ссылочные и значимые типы данных

// Значимый тип данных
let a = 5;
let b = a;
console.log(a);
// ссылочный тип данных (объект)
let a = { name: "allen", age: 30 };
let b = a;
b.age = 40;
console.log(a);
console.log(b);

Поверхностное копирование, Глубокое копирование

// Поверхностное копирование (объект)
let a = { name: "allen", age: 30 };
let b = { ...a };
b.age = 40;
console.log(a);
console.log(b);
// Проблемы поверхностного копирования (объект)
let a = { name: "allen", details: { city: "New York" } };
let b = { ...a };
b.details.city = "London";
console.log(a);
console.log(b);
// Глубокое копирование (объект)
let a = { name: "allen", details: { city: "New York" } };
let b = JSON.parse(JSON.stringify(a));
b.details.city = "London";
console.log(a);
console.log(b);

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

// сравнение ссылок
const a = { name: "alex"};
const b = { name: "alex"};
console.log(a === b); // false
// глубокое сравнение
const a = { name: "alex"};
const b = { name: "alex"};
console.log(JSON.stringify(a) === JSON.stringify(b)); // true