с тремя парами «ключ-значение» (лапы, имя, окрас). При создании объ-
екта используются фигурные скобки {} вместо квадратных, к которым
70
мы привыкли, создавая массивы. Внутри фигурных ско-
бок можно вводить пары «ключ-значение», а вместе скобки
и пары значений называются литералом объекта . Литерал
объекта — это быстрый способ создания объекта вместе с его
содержимым.
! Мы уже встречались с литералами массивов (например, ["a", "б",
"в"] ), числовыми литералами (например, 37 ), строковыми литера-
лами (например, "лось" ) и булевыми литералами ( true и false ).
Литерал — это когда значение записывается сразу и целиком,
а не составляется постепенно, шаг за шагом.
Например, чтобы создать массив с числами от 1 до 3, можно вве-
сти литерал массива [1, 2, 3] . Альтернативный способ — создать
пустой массив и методом push добавить в него значения 1, 2 и 3.
Не всегда заранее известно, что за данные будут храниться в мас-
сиве или объекте, поэтому создавать массивы и объекты с помощью
одних лишь литералов не получится.
Key — ключ
{ "key1": 99 }
Ключ, обязательно
Значение
строковый
любого типа
Рис. 4.1. Общий синтаксис создания объекта
На рис. 4.1 показан базовый синтаксис создания нового объекта.
При создании объекта ключ записывается перед двоеточием (:),
а значение — после. Это двоеточие напоминает знак «равно», поскольку
значения, стоящие слева, присваиваются именам (ключам), стоящим
справа, что похоже на создание переменных со значениями. Все пары
«ключ-значение» должны быть разделены запятыми — в нашем примере
эти запятые стоят в конце строк. И обратите внимание, что после завер-
шающей пары «ключ-значение» ("color": "Черепаховый") запятую
ставить не нужно — следом за этой парой ставится закрывающая фигур-
ная скобка.
Ключи без кавычек
Создавая первый объект, мы писали имена ключей в кавычках, однако
это не обязательно. Следующая запись тоже является допустимым лите-
ралом объекта:
71
var cat = {
legs: 3,
name: "Гармония",
color: "Черепаховый"
};
JavaScript знает, что ключи всегда строковые, поэтому можно обхо-
диться без кавычек. В этом случае имена ключей должны соответ-
ствовать тем же правилам, что и имена переменных: например, в них
не должно быть пробелов. Но если ключ указан в кавычках, пробелы
в его имени допустимы:
var cat = {
legs: 3,
Full name —
"full name": "Гармония Филомена Уси-Пусечка Морган",
полное имя
color: "Черепаховый"
};
Помните, что, хотя ключ всегда является стро-
ковым (в кавычках он записан или без), значение,
соответствующее этому ключу, может быть любого
типа — даже переменной, в которой хранятся
данные.
Кроме того, весь объект можно записать одной
строкой, хотя читать такую программу будет, пожа-
луй, не слишком удобно:
var cat = { legs: 3, name: "Гармония", color: "Черепаховый" };
Доступ к значениям внутри объектов
Хранящиеся в объектах значения можно получить с помощью квадрат-
ных скобок — так же, как элементы массива. Единственное различие
в том, что вместо индекса (число) используется ключ (строка).
cat["name"];
"Гармония"
Точно так же, как необязательны кавычки при записи литерала объ-
екта, их можно опускать и при доступе к значениям по ключу. Однако
в этом случае код будет немного другим:
72 Часть I. Основы
cat.name;
"Гармония"
Такую запись называют точечной нотацией . Вместо того чтобы
писать имя ключа в кавычках внутри квадратных скобок, мы просто ста-
вим точку, после которой пишем имя ключа, без кавычек. И, аналогично
ключам без кавычек при записи литерала, такой прием сработает, только
если ключ не содержит специальных символов — например, пробелов.
Теперь предположим, что вы хотите узнать, какие вообще ключи
есть у данного объекта. Для этого в JavaScript есть удобное средство —
команда Object.keys():
Object key —
ключ объекта
Dog — пес
var dog = { name: "Оладушек", age: 6, color: "белый",
Bark — лай
bark: "Гав тяф тяф!" };
var cat = { name: "Гармония", age: 8, color: "черепаховый" };
Object.keys(dog);
["name", "age", "color", "bark"]
Object.keys(cat);
["name", "age", "color"]
Object.keys(anyObject) возвращает массив, содержащий все ключи
объекта anyObject.
Добавление элементов объекта
Пустой объект похож на пустой массив, только вместо квадратных ско-
бок при его создании используются фигурные:
Читать дальше
Конец ознакомительного отрывка
Купить книгу