В этом руководстве вы узнаете об объектах JavaScript и о том, как эффективно манипулировать свойствами объекта.
Введение в объекты JavaScript
В JavaScript объект представляет собой неупорядоченный набор пар ключ-значение. Каждая пара ключ-значение называется свойством.
Ключ свойства может быть строкой. А значением свойства может быть любое значение, например, строка, число, массив и даже функция.
JavaScript предоставляет вам множество способов создания объекта. Чаще всего используется литеральная нотация объекта.
В следующем примере создается пустой объект с использованием литеральной записи объекта:
let empty = {};Чтобы создать объект со свойствами, вы используете key:value в фигурных скобках. Например, в следующем примере создадим новый объект person :
let person = { firstName: 'John', lastName: 'Doe' };Объект person имеет два свойства firstName и lastName с соответствующими значениями 'John' и 'Doe'.
Когда объект имеет несколько свойств, вы используете запятую ( , ) для их разделения, как в приведенном выше примере.
Доступ к свойствам
Чтобы получить доступ к свойству объекта, вы используете одну из двух нотаций: точечную или нотацию, подобную массиву.
1) Точечная запись(.)
Ниже показано, как использовать запись через точку для доступа к свойству объекта:
objectName.propertyName
Например, чтобы получить доступ к свойству firstName объекта person, вы используете следующее выражение:
person.firstName
В этом примере создается объект person и отображаются имя и фамилия в консоли:
let person = { firstName: 'John', lastName: 'Doe' };
console.log(person.firstName);
console.log(person.lastName);2) Массивная нотация( [] )
Ниже показано, как получить доступ к значению свойства объекта через нотацию, подобную массиву:
objectName['propertyName']
Например:
let person = { firstName: 'John', lastName: 'Doe' };
console.log(person['firstName']); console.log(person['lastName']);Если имя свойства содержит пробелы, его необходимо заключить в кавычки. Например, следующий address объект имеет в качестве свойства 'building no' :
let address = { 'building no': 3960, street: 'North 1st street', state: 'CA', country: 'USA' };Чтобы получить доступ к свойству 'building no', вам нужно использовать нотацию, подобную массиву:
address['building no'];
Если вы используете точечную нотацию, вы получите ошибку:
address.'building no';
Ошибка:
SyntaxError: Unexpected string
Обратите внимание, что не рекомендуется использовать пробелы в именах свойств объекта.
Чтение из свойства, которое не существует, приведет к undefined. Например:
console.log(address.district);
Выход:
undefined
Изменение значения свойства
Чтобы изменить значение свойства, вы используете оператор присваивания( = ). Например:
let person = { firstName: 'John', lastName: 'Doe' };
person.firstName = 'Jane'; console.log(person);Выход:
{ firstName: 'Jane', lastName: 'Doe' }В этом примере мы изменили значение свойства firstName объекта person с 'John' на 'Jane'.
Добавление нового свойства к объекту
В отличие от объектов в других языках программирования, таких как Java и C#, вы можете добавить свойство к объекту после создания объекта.
Следующий оператор добавляет свойство age к объекту person и присваивает ему значение 25:
person.age = 25;
Удаление свойств объекта
Чтобы удалить свойство объекта, вы используете оператор delete :
delete objectName.propertyName;
В следующем примере свойство age удаляется из объекта person :
delete person.age;
Если вы попытаетесь повторно получить доступ к свойству age, вы получите undefined значение.
Проверка существования свойства
Чтобы проверить, существует ли свойство в объекте, вы используете оператор in :
propertyName in objectName
Оператор in возвращает значение true, если propertyName существует в objectName.
В следующем примере создается объект employee и используется оператор in для проверки наличия в объекте свойств ssn и employeeId :
let employee = { firstName: 'Peter', lastName: 'Doe', employeeId: 1 };
console.log('ssn' in employee);
console.log('employeeId' in employee);Выход:
false true
Заключение
- Объект представляет собой набор пар ключ-значение.
- Используйте запись через точку (
.) или запись в виде массива ([]) для доступа к свойству объекта. - Оператор
deleteудаляет свойство объекта. - Оператор
inпроверяет, существует ли свойство в объекте.
