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

типов. Далее мы по очереди рассмотрим каждый тип данных и изучим

различные способы работы с ними.

! Наверное, вы заметили, что все эти команды оканчиваются

на точку с запятой (;). Этим символом обозначают конец каждой

отдельной команды или инструкции языка JavaScript — примерно

так же, как точка отмечает конец предложения.

Числа и операторы

JavaScript позволяет выполнять основные математические опера-

ции, такие как сложение, вычитание, умножение и деление. Для

их записи используются символы +, −, * и /, которые называют

опе раторами.

Консоль JavaScript можно использовать как калькулятор. Один

из примеров — сложение 3 и 4 — нам уже знаком. Давайте вычислим

что-нибудь посложнее: сколько будет 12345 плюс 56789?

12345 + 56789;

69134

Посчитать это в уме не так уж просто, а JavaScript мгновенно спра-

вился с задачей.

26 Часть I. Основы

Можно сложить несколько чисел с помощью нескольких знаков «плюс»:

22 + 33 + 44;

99

Также JavaScript умеет вычитать...

1000 - 17;

983

умножать (с помощью символа «звездочка»)...

123 * 456;

56088

и делить (с помощью косой черты — слэша)...

12345 / 250;

49.38

Кроме того, можно объединять эти простые операции, составляя

более сложные выражения, вроде такого:

1234 + 57 * 3 - 31 / 4;

1397.25

Есть один нюанс — результат вычислений зависит

1234 + 57 * 3 - 31 / 4

от порядка, в котором JavaScript выполняет отдельные

операции. В математике существует правило, по которому

1234 + 171 - 31 / 4

умножение и деление выполняются прежде, чем сложение

и вычитание, и JavaScript ему следует.

1234 + 171 - 7.75

Порядок, в котором интерпретатор JavaScript выполняет

эти операции, показан на рис. 2.1. Сначала он умножает

1405 - 7.75

57 * 3, получая 171 (выделено красным). Затем делит 31 / 4,

получая 7.75 (выделено синим). Затем складывает 1234 + 171,

1397.25

получая 1405 (выделено зеленым). И наконец, вычитает

1405 − 7.75, что дает 1397.25 — окончательный результат.

Но как быть, если вы хотите выполнить сложение

Рис. 2.1. Очередность выполнения

и вычитание до умножения и деления? Для примера предпо-

операций: умножение, деление,

ложим, что у вас есть 1 брат, 3 сестры и 8 карамелек, которые

сложение, вычитание

2. Типы данных и переменные 27

вы решили поровну разделить между ними (свою долю вы уже прикарма-

нили). Нужно разделить 8 на общее количество братьев и сестер.

Попытаемся это сделать:

8 / 1 + 3;

11

Это не может быть верным ответом! Не получится дать

каждому родственнику по 11 карамелек, если у вас всего-то

8 конфет! Проблема в том, что JavaScript выполняет деление

прежде, чем сложение, то есть он делит 8 на 1 (что равно 8)

и затем прибавляет 3, получая в результате 11. Чтобы испра-

вить эту ошибку, заставим JavaScript сначала выполнить

сложение, воспользовавшись скобками:

8 / (1 + 3);

2

Так гораздо лучше — вышло по две карамельки каждому из род-

ственников. Скобки вынудили JavaScript сложить 1 и 3 до деления 8 на 4.

ПОПР ОБУ ЙТЕ !

Предположим, ваша подруга пытается подсчитать с помощью JavaScript,

сколько ей нужно купить воздушных шаров. Она устраивает вечеринку

и хочет, чтобы каждый из гостей смог надуть по 2 шарика. Сначала было

приглашено 15 человек, но потом ваша подруга позвала еще 9.

Она написала такой код:

15 + 9 * 2;

33

Однако ответ, судя по всему, неверен.

Где надо поставить скобки, чтобы JavaScript сначала складывал, а потом

умножал, и сколько шариков нужно вашей подруге на самом деле?

Переменные

Значениям в JavaScript можно давать имена, используя переменные.

Переменная похожа на ящичек, в который помещается лишь один пред-

мет. Чтобы положить туда что-то еще, прежнее содержимое придется

заменить.

Чтобы создать новую переменную, используйте ключевое слово var,

после которого укажите имя переменной. Ключевое слово — это слово,

28 Часть I. Основы

обладающее для JavaScript особым значением. В данном случае, когда

JavaScript встречает слово var, он понимает, что следом указано имя

новой переменной. Например, вот как создать переменную с именем nick:

var nick;

Undefined —

undefined

значение

не определено

Мы создали новую переменную под названием nick. В ответ консоль

выдала undefi ned — «значение не определено». Однако это не ошибка!

JavaScript всегда так делает, если команда не возвращает какого-либо

значения. Вы спросите, а что такое «возвращать значение»? Вот пример:

когда вы ввели 12345 + 56789;, консоль вернула значение 69134. Однако