эти операции, показан на рис. 2.1. Сначала он умножает
1405 - 7.75
57 * 3, получая 171 (выделено красным). Затем делит 31 / 4,
получая 7.75 (выделено синим). Затем складывает 1234 + 171,
1397.25
получая 1405 (выделено зеленым). И наконец, вычитает
1405 − 7.75, что дает 1397.25 — окончательный результат.
Но как быть, если вы хотите выполнить сложение
и вычитание до умножения и деления? Для примера предпо-
ложим, что у вас есть 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
ПОПР ОБУ ЙТЕ !
Предположим, ваша подруга пытается подсчитать с помощью 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. Однако
в JavaScript команда создания переменной никакого значения не возвра-
щает, поэтому интерпретатор печатает undefi ned.
В этом примере и дальше мы будем давать переменным англоязыч-
ные имена, потому что английский — основной язык всей IT-области
и программы принято писать только латиницей (кроме комментариев
и строковых значений). Использовать русскоязычные имена перемен-
ных — это как если при составлении математических уравнений вме-
сто
Итак, чтобы задать переменной значение, используйте знак «равно»:
var age = 12;
Аge — возраст
undefined
Задание значения переменной называют
присваиваем значение 12 переменной age). И опять в консоли появля-
ется undefi ned, поскольку мы только что создали новую переменную.
(В дальнейших примерах я буду пропускать это undefi ned.)
Теперь в интерпретаторе есть переменная age, которой присвоено
значение 12. И если ввести в консоли имя age, интерпретатор выдаст
значение этой переменной:
age;
12
Здорово! При этом значение переменной не высечено в камне (
вздумается его обновить, просто используйте знак «равно» еще раз.
age = 13;
13
2. Типы данных и переменные 29
На этот раз я не использовал ключевое слово var, поскольку перемен-
ная age уже существует. Писать var нужно только при
менной, а не при ее использовании. И обратите внимание: поскольку мы
не создавали новой переменной, команда присваивания вернула значе-
ние 13, которое и было напечатано в следующей строке.
Вот чуть более сложный пример — решение задачи про карамельки
без помощи скобок:
Number
var numberOfSiblings = 1 + 3;
of siblings —
var numberOfCandies = 8;
число братьев
numberOfCandies / numberOfSiblings;
и сестер
2
Number
of candies —
число конфет
Сначала мы создали переменную с именем numberOfSiblings
(количество братьев и сестер) и присвоили ей значение выражения
1 + 3 (которое JavaScript вычислил, получив 4). Потом мы создали
переменную numberOfCandies (количество карамелек) и присво-
или ей значение 8. И наконец, мы ввели: numberOfCandies / num-
berOfSiblings. Поскольку переменная numberOfCandies содержит