Добрый день! Сегодня я вам расскажу о типе данных «Объекты». Это, пожалуй, один из самых используемых типов данных в JavaScript. Он представляет собой набор пар «ключ и значение», при этом ключ — это всегда строка, а значение — это произвольный тип данных. Это может быть примитив, boolean, number, string. Это может быть функция, это может быть массив или вложенный объект. Итак, начнем с создания объекта. Он создается с помощью литеральной записи в виде открывающейся и закрывающейся фигурной скобки. Так мы создали пустой объект. Но мы можем сразу же задать объект, в котором будут содержаться уже вложенные свойства. Как вы видите, здесь свойства всех возможных типов и в том числе вложенный объект. Для изменения какого бы то ни было свойства, нам необходимо обратиться к нему с помощью так называемой точечной аннотации, то есть имя переменной, которая хранит объект, точка и имя свойства, к которому мы хотим обратиться. После этого мы ставим знак равенства и пишем, что мы хотим поместить в это свойство. Таки образом осуществляется присваивание значения. А получение значения происходит точно так же, но после имени свойства ставится точка с запятой, и не выполняется операция присваивания. Так мы обращаемся к полю на чтение. С помощью оператора delete мы можем удалить значения какого бы то ни было ключа из объекта. Важно понимать, что удаляется только один конкретный выбранный нами ключ, а не весь объект. С помощью точечной аннотации мы можем обратиться не только к свойству, которое напрямую лежит в этом объекте, личному свойству, так и ко свойству вложенного объекта, если таковой есть внутри нашего объекта. Так мы можем обратиться и к полю ID нашего твита, так и к имени пользователя, который находится в объекте юзера, который находится внутри нашего объекта твита. Иногда нам заранее неизвестно, к какому имени ключа мы хотим обратиться. И например, оно вычисляется путем конкретизации некоторых строк. Тогда нам необходимо заключить все это исчисляемое выражение в квадратные скобки после имени переменной, которая ссылается на наш объект. Таким образом, мы обратимся к полю по ключу, которое будет возвращено после конкретизации наших строк. И всегда когда мы обращаемся к полю, имя которого нам неизвестно и хранится в переменной, нам необходимо использовать именно квадратные скобки и точечная аннотация при этом не подходит. Для итерирования по объекту существует специальный метод keys у объекта Object, который возвращает нам массив из всех ключей нашего объекта. А для итерации по объекту мы можем применять оператор for, который был рассмотрен в предыдущей лекции. И на каждой итерации нашего цикла мы будем получать имя ключа, и подставляя это имя ключа в квадратные скобки, мы сможем обратиться к нашему значению и получить его на каждой итерации для каждого элемента нашего объекта и впоследствии что-то сделать с этим полученным нами значением. Для проверки наличия того или иного свойства внутри объекта существует метод hasOwnProperty, который проверяет, есть ли это свойство у объекта или нет. И он возвращает true, если свойство есть, и false, если такого свойства нет. На этом всё. Мы рассмотрели то, как создаются объекты, как можно по ним итерироваться, как получать доступ к их полям и то, как проверять их наличие. Спасибо!