в JavaScript команда создания переменной никакого значения не возвра-
щает, поэтому интерпретатор печатает undefi ned.
В этом примере и дальше мы будем давать переменным англоязыч-
ные имена, потому что английский — основной язык всей IT-области
и программы принято писать только латиницей (кроме комментариев
и строковых значений). Использовать русскоязычные имена перемен-
ных — это как если при составлении математических уравнений вме-
сто x и y вы использовали бы русские буквы. Можно, но не принято.
Итак, чтобы задать переменной значение, используйте знак «равно»:
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 содержит
значение 8, а numberOfSiblings — 4, JavaScript вычислил, сколько
будет 8 / 4, вернув в результате 2.
Имена переменных
Вводя имена переменных, будьте внимательны и не допускайте опеча-
ток. Даже если вы перепутаете строчные и заглавные буквы, интерпре-
татор JavaScript не поймет, чего вы от него хотите! Например, если вы
случайно введете имя numberOfCandies со строчной буквой c, воз-
никнет ошибка:
numberOfcandies / numberOfSiblings;
Reference
ReferenceError: numberOfcandies is not defined
error —
ошибка
данных
Увы, JavaScript следует вашим указаниям буквально. Если вы непра-
вильно ввели имя переменной, JavaScript не поймет, что вы имели в виду,
и выдаст сообщение об ошибке.
Еще один нюанс именования переменных в JavaScript — в именах
не должно быть пробелов, из-за чего они могут оказаться сложными для
чтения. Если бы я назвал переменную numberofcandies, без заглавных
букв, читать программу стало бы труднее, поскольку неясно, где в этом
имени заканчиваются отдельные слова.
Один из обычных способов решения этой проблемы — писать каждое
слово с заглавной буквы: NumberOfCandies. Такую манеру именования
30 Часть I. Основы
называют верблюжьей записью, поскольку выпирающие
заглавные буквы напоминают верблюжьи горбы.
Имена переменных принято начинать со строчной
буквы, поэтому с заглавной буквы обычно пишут все слова
имени, кроме самого первого: numberOfCandies. В этой
книге я также использую эту форму верблюжьей записи;
впрочем, вы можете называть свои переменные как вам
угодно!
Создание новых переменных на основе
вычислений
Можно создавать новые переменные, выполняя матема-
тические действия с переменными, созданными ранее.
Давайте с помощью переменных выясним, сколько секунд
в году и каков ваш возраст в секундах! Но для начала разбе-
ремся, сколько секунд в одном часе.
Сколько секунд в часе
Сначала создадим две новые переменные — secondsInAMinute
Seconds
(количество секунд в минуте) и minutesInAHour (количество минут
in a minute —
в часе) — и присвоим им обеим значение 60 (поскольку, как мы знаем,
секунд
в минуте
в минуте 60 секунд, а в часе 60 минут). Теперь создадим переменную
secondsInAHour (количество секунд в часе), и пусть ее значение рав-