{"id":3881,"url":"\/distributions\/3881\/click?bit=1&hash=e456b64697230d93edcda0dd20f3c8aa5d4abd88effca1a7571a12fa6564c38a","title":"\u0413\u0435\u0439\u043c\u0434\u0435\u0432-\u043a\u043e\u043d\u043a\u0443\u0440\u0441, \u0433\u0434\u0435 \u043f\u0440\u0438\u0437\u044b: \u0438\u043d\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u0438 \u0438 \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435","buttonText":"\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c","imageUuid":"a410dbd1-804c-54dc-84ea-e6227d71d9b4","isPaidAndBannersEnabled":false}
Vladimir Shaitan

Тип данных Object в JavaScript

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

Object

object - ссылочный тип данных, является то самостоятельной единицей, имеющей свойства и определённый тип.

У объекта есть свойства которые с ним ассоциируется. Свойство объекта можно понимать как переменные закрепленные за ним.

Для того чтобы создать объект у нас есть несколько способов.

Конструктор класса

// Вызов конструктора класса Object let objectExample_1 = new Object(); // Далее наполняем его данными objectExample_1.name = 'John'; objectExample_1.age = 22;

В примере выше мы создали внутри объекта свойства name и age и записали в них данные.

Литерал

Мы можем использовать более простой и удобный синтаксис для создания объектов.

let objectExample_2 = {} // наполнение объекта данными objectExample_2.name = 'Alice'; objectExample_2.age = 30; console.log(objectExample_2)

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

let objectExample_3 = { name: 'Vladimir', age: 25 } console.log(objectExample_3)

Как видите, литеральный синтаксис намного удобнее нежели создание через конструктор класса. Его и будем использовать.

let user = { firstName: 'John', lastName: 'Doe', age: 30, gender: 'male' }

Допустим я хочу получить имя данного пользователя.

console.log(user); console.log(user.firstName);

Аналогичным образом я могу получить доступ ко всем значениям свойств объекта.

console.log(user.lastName); console.log(user.age); console.log(user.gender);

Синтаксис квадратных скобок - []

Ключи в объектах это всегда строки или Symbol, сосредоточимся пока на строках. Как мы знаем строки не всегда могу состоять из одного слова в котором нет пробелов и как быть если нам нужно создать свойство в объекте имя которого будет состоять из 2х слов разделенных пробелами или вообще будет являться выражением. Для этого будем использовать [ ].

let student = { firstName: 'John', ['last name']: 'Dou', // Имя свойства содержащее пробел ['student-' + 'age']: 30, // Вычисляемое имя свойства } console.log(student);

Получить значения этих свойств у нас просто так не получится. Если мы будем использовать синтаксис точки '.' то получим ошибку. Вместо этого будем использовать квадратные скобки [ ].

console.log(student.firstName) // Обычный способ console.log(student['last name']) console.log(student['student-age'])

Готово, теперь все работает!

Вложенные объекты

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

const deepObject = { name: 'Mazda', model: '#1', owner: { firstName: 'John', lastNam: 'Doe', age: 12 } } console.log(deepObject)

Это простой пример, на самом деле вложенность может быть очень большой, важно понимать что так можно делать.

Array

array - массив данных, а также итерируемый объект, также относится к типу данных object. Ключи для элементов массива создаются автоматически и являются индексами, позицией элемента внутри массива.

Индексирование массива начинается с нуля.

const arr = ['John', 'Alice', 'Andrew', 'Antony']; console.log(arr)

У массива есть длинна (length), это свойство содержит количество элементов массива.

console.log(arr.length);

Берем элементы по их индексу.

console.log( arr[0], arr[1], arr[2], arr[3] )

Если мы хотим гарантировано получить значение последнего элемента в массиве.

console.log( arr[arr.length - 1] )

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

Функции

Функции - это участки кода которые можно переиспользовать, в этом уроке мы не будем их рассматривать подробно.

Для создания функции существует несколько способов ключевое слово function и стрелочный синтаксис.

function foo(a, b) { return a + b; } const bar = (a, b) => { return a - b; } console.log(foo); console.log(bar);

Функции также являются объектами и относятся к типу данных object.

P.S. Подпишись на мой youtube и telegram канал чтобы регулярно получать новый контент.

0
Комментарии
Читать все 0 комментариев
null