Выбрать главу

// массив

let names = ["Jerry", "Elaine", "George", "Kramer"];

let alsoNames = new Array("Dennis", "Frank", "Dee", "Mac");

// округленное число

let roundNumber = Math.round("3.14");

// текущая дата

let today = new Date();

// объект boolean

let booleanObject = new Boolean(true);

// бесконечность

let unquantifiablyBigNumber = Number.POSITIVE_INFINITY;

// объект string

let hello = new String("Hello!");

Вас может несколько озадачить то, что примитивы string, boolean, symbol, bigint и number могут существовать и в форме объектов. Внешне эта объектная форма выглядит очень похожей на примитивную. Вот пример:

let movie = "Pulp Fiction";

let movieObj = new String("Pulp Fiction");

console.log(movie);

console.log(movieObj);

При выводе обоих вариантах вы увидите одинаковый результат. Тем не менее внутренне movie и movieObj весьма различны. Первый буквально является примитивом типа string, а второй имеет тип Object. Это ведет к интересному (а иногда и непонятному) поведению, о котором я постепенно расскажу в процессе изучения встроенных типов.

КОРОТКО О ГЛАВНОМ

Если вам кажется, что все оборвалось на самом интересном месте, то это вполне нормально. Главный вывод здесь в том, что примитивы составляют большинство основных типов, которые вы будете использовать. Объекты несколько сложнее и состоят из примитивов или других объектов. Мы узнаем обо всем этом больше, когда начнем углубляться в тему. Помимо прочего, мы также узнали имена встроенных типов и некоторые присущие им особенности.

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

Глава 13. Массивы

Давайте представим, что вы хотите составить список на листке бумаги. Назовем его продукты. Теперь запишите в нем пронумерованный список, начинающийся с нуля, и перечислите все, что вам нужно (рис. 13.1).

Рис. 13.1. Список продуктов

Написав простой список, вы получили пример массива из реальной жизни. Листок бумаги, проименованный как продукты, это и есть ваш массив. Предметы же, которые вы хотите купить, — это значения массива.

В этом уроке вы не только узнаете, какие продукты я предпочитаю покупать, но и познакомитесь с очень распространенным типом — массивом.

Поехали!

Создание массива

Сейчас для создания массивов крутые чуваки используют открывающиеся и закрывающиеся квадратные скобки. Ниже приведена переменная groceries (продукты), инициализированная как пустой массив:

let groceries = [];

Такой скобочный способ создания массива больше известен как литеральная нотация массива.

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

let groceries = ["Milk", "Eggs", "Frosted Flakes", "Salami", "Juice"];

Обратите внимание, что теперь массив содержит Milk (молоко), Eggs (яйца), Frosted Flakes (глазированные хлопья), Salami (салями) и Juice (сок). Считаю необходимым напомнить о важности запятых.

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

Обращение к значениям массива

Одна из прелестей массивов в том, что вы имеете легкий доступ не только к ним самим, но и к их значениям, аналогично выделению одного из продуктов в вашем списке (рис. 13.2).

Рис. 13.2. Массивы позволяют выборочно обращаться к отдельным элементам

Для этого вам достаточно знать простую процедуру обращения к отдельному элементу.

Внутри массива каждому элементу присвоен номер, начиная с нуля. На рис. 13.2 Milk имеет значение 0, Eggs — 1, FrostedFlakes соответствует значение 2 и т. д. Формально эти номера называются значением индекса (индексами).

В данном случае наш массив groceries объявлен следующим образом:

let groceries = ["Milk", "Eggs", "Frosted Flakes", "Salami", "Juice"];

Если мне понадобится обратиться к одному из элементов, то все, что потребуется, — это передать значение его индекса:

groceries[1]

Значение индекса передается массиву внутри квадратных скобок. В текущем примере мы обращаемся к значению Eggs, так как именно этому элементу соответствует позиция индекса 1. Если передать 2, то вернется FrostedFlakes. Вы можете продолжать передавать значения индекса, пока они не закончатся.