Введение
Объекты являются одним из ключевых типов данных в JavaScript. Они позволяют хранить и структурировать данные, представляя их в виде пар “ключ-значение”. В этом уроке мы рассмотрим, как создавать объекты, добавлять и получать доступ к их свойствам, а также как обновлять и удалять свойства объектов.
Что такое объект
Объект — это структура данных, которая позволяет хранить наборы значений в виде пар “ключ-значение”.
Пример объекта:
let person = {
name: "Иван",
age: 30,
isEmployed: true
};
Создание объектов
Создание объекта с использованием литерала объекта
Наиболее распространенный способ создания объекта — использование литерала объекта, заключенного в фигурные скобки {}
.
Литерал — это запись, которая представляет фиксированное значение в исходном коде. Литералы используются для создания значений типов данных, таких как строки, числа, объекты и массивы.
Пример создания объекта:
let car = {
make: "Toyota",
model: "Camry",
year: 2020
};
Создание пустого объекта:
let emptyObject = {};
Доступ к свойствам объекта
Доступ с использованием точечной нотации
Свойства объекта — это пары “ключ-значение”, хранящиеся внутри объекта. Ключами обычно являются строки, а значениями могут быть любые типы данных, включая другие объекты.
Свойства объекта могут быть доступны с помощью точечной нотации.
Точечная нотация — это синтаксис, используемый для доступа к свойствам объекта. В этом синтаксисе используется точка .
между именем объекта и именем свойства.
Пример доступа к свойствам:
let person = { // person - имя объекта
name: "Иван", // name - имя свойства
age: 30,
isEmployed: true
};
console.log(person.name); // "Иван"
console.log(person.age); // 30
console.log(person.isEmployed); // true
Доступ с использованием квадратных скобок
Свойства объекта также могут быть доступны с помощью квадратных скобок. Это полезно, если имя свойства хранится в переменной или содержит специальные символы.
Пример доступа к свойствам:
let person = {
name: "Иван",
age: 30,
"is-employed": true
};
console.log(person["name"]); // "Иван"
console.log(person["age"]); // 30
console.log(person["is-employed"]); // true
console.log(person["gender"]); // undefined - свойство объекта не существует
Доступ к свойствам через переменные
Если имя свойства хранится в переменной, можно использовать квадратные скобки для доступа к этому свойству.
Пример доступа к свойствам:
let person = {
name: "Иван",
age: 30,
isEmployed: true
};
let propertyName = "age";
console.log(person[propertyName]); // 30
Заключение
Доступ к свойствам объектов — это важный навык для эффективного программирования на JavaScript. Понимание различных способов доступа к свойствам объектов, таких как точечная нотация и квадратные скобки, позволяет гибко манипулировать данными. Умение работать с именами свойств, хранящимися в переменных, позволяет создавать более динамичный и адаптивный код.
Контрольные вопросы
Что такое объект в JavaScript?
- Структура данных, которая позволяет хранить наборы значений в виде пар “ключ-значение”.
- Переменная, хранящая одно значение.
- Функция для выполнения арифметических операций.
- Объект, содержащий методы для работы с числами.
Что такое свойства объекта?
- Пары “ключ-значение”, хранящиеся внутри объекта.
- Переменные, объявленные внутри функции.
- Значения, возвращаемые функцией.
- Методы, вызываемые на объекте.
Как получить доступ к свойству объекта с использованием точечной нотации?
object[key];
object.key;
object->key;
object(key);
Когда следует использовать квадратные скобки для доступа к свойствам объекта?
- Когда имя свойства известно и является допустимым идентификатором.
- Когда имя свойства хранится в переменной или содержит специальные символы.
- Когда свойство является методом.
- Когда необходимо удалить свойство из объекта.
Какой синтаксис используется для создания объекта с использованием литерала объекта?
let obj = {};
let obj = [];
let obj = ();
let obj = <>;
Какое значение возвращается, если свойство объекта не существует?
null
undefined
false
0
Что такое литерал объекта?
- Синтаксис, используемый для создания объекта, заключенного в фигурные скобки
{}
. - Метод для создания новых экземпляров объекта.
- Объект, содержащий свойства и методы.
- Специальная функция для инициализации объекта.
Упражнение
Вот несколько упражнений по теме «Работа с объектами в JavaScript»:
Упражнение 1: Создание объекта и доступ к его свойствам
Создайте объект student
с несколькими свойствами: name
, age
, grade
. Используйте точечную нотацию для доступа к свойствам и выведите их значения в консоль.
let student = {
name: "Алихан",
age: 20,
grade: "A"
};
console.log(student.name); // Алихан
console.log(student.age); // 20
console.log(student.grade); // A
Упражнение 2: Доступ к свойствам объекта с использованием квадратных скобок
Создайте объект book
с несколькими свойствами: title
, author
, yearPublished
. Используйте квадратные скобки для доступа к свойствам и выведите их значения в консоль.
let book = {
title: "Война и мир",
author: "Лев Толстой",
yearPublished: 1869
};
console.log(book["title"]); // Война и мир
console.log(book["author"]); // Лев Толстой
console.log(book["yearPublished"]); // 1869
Упражнение 3: Доступ к свойствам объекта через переменные
Создайте объект city
с несколькими свойствами: name
, population
, country
. Используйте переменные для доступа к свойствам и выведите их значения в консоль.
let city = {
name: "Алматы",
population: 1870000,
country: "Казахстан"
};
let propertyName = "population";
console.log(city[propertyName]); // 1870000
propertyName = "name";
console.log(city[propertyName]); // Алматы
Упражнение 4: Добавление и обновление свойств объекта
Создайте объект car
с несколькими свойствами: make
, model
, year
. Добавьте новое свойство color
и обновите значение свойства year
. Выведите результат в консоль.
let car = {
make: "Toyota",
model: "Camry",
year: 2020
};
car.color = "черный"; // добавление нового свойства
car.year = 2021; // обновление существующего свойства
console.log(car);
// { make: 'Toyota', model: 'Camry', year: 2021, color: 'черный' }
Упражнение 5: Удаление свойства объекта
Создайте объект user
с несколькими свойствами: username
, email
, password
. Удалите свойство password
и выведите результат в консоль.
let user = {
username: "user1",
email: "user1@example.com",
password: "123456"
};
delete user.password; // удаление свойства
console.log(user);
// { username: 'user1', email: 'user1@example.com' }
Упражнение 6: Проверка существования свойства в объекте
Создайте объект person
с несколькими свойствами: firstName
, lastName
, age
. Проверьте существование свойства age
и свойства address
в объекте, выведите результат в консоль.
let person = {
firstName: "Динара",
lastName: "Кайратова",
age: 28
};
console.log("age" in person); // true
console.log("address" in person); // false
Упражнение 7: Итерация по свойствам объекта
Создайте объект laptop
с несколькими свойствами: brand
, model
, price
. Используйте цикл for...in
для перебора всех свойств объекта и выведите их ключи и значения в консоль.
let laptop = {
brand: "Apple",
model: "MacBook Pro",
price: 2000
};
for (let key in laptop) {
console.log(key + ": " + laptop[key]);
}
// brand: Apple
// model: MacBook Pro
// price: 2000
Упражнение 8: Динамическое добавление свойств в объект
Создайте пустой объект house
. Динамически добавьте свойства type
, rooms
, location
. Выведите результат в консоль.
let house = {};
house.type = "Квартира";
house.rooms = 3;
house.location = "Астана";
console.log(house);
// { type: 'Квартира', rooms: 3, location: 'Астана' }
Упражнение 9: Копирование объекта
Создайте объект original
с несколькими свойствами. Скопируйте все свойства в новый объект copy
и выведите оба объекта в консоль.
let original = {
a: 1,
b: 2,
c: 3
};
let copy = {};
for (let key in original) {
copy[key] = original[key];
}
console.log(original); // { a: 1, b: 2, c: 3 }
console.log(copy); // { a: 1, b: 2, c: 3 }
Упражнение 10: Сравнение объектов
Создайте два объекта с одинаковыми свойствами и значениями. Напишите функцию, которая сравнивает два объекта на равенство (сравнивает свойства и значения). Выведите результат в консоль.
let obj1 = {
name: "Айгуль",
age: 25
};
let obj2 = {
name: "Айгуль",
age: 25
};
function areObjectsEqual(obj1, obj2) {
let keys1 = Object.keys(obj1);
let keys2 = Object.keys(obj2);
if (keys1.length !== keys2.length) {
return false;
}
for (let key of keys1) {
if (obj1[key] !== obj2[key]) {
return false;
}
}
return true;
}
console.log(areObjectsEqual(obj1, obj2)); // true