Выразительный JavaScript | страница 14
Переменные
Как же программа хранит внутреннее состояние? Как она его запоминает? Мы получали новые величины из старых, но старые величины это не меняло, а новые нужно было использовать сразу, или же они исчезали. Чтобы захватить и хранить их, JavaScript предлагает нечто под названием «переменная».
>var caught = 5 * 5;
И это даёт нам второй вид инструкций. Специальное ключевое слово (keyword) >var
показывает, что в этой инструкции мы объявляем переменную. За ним идёт имя переменной, и, если мы сразу хотим назначить ей значение – оператор = и выражение.
Пример создаёт переменную под именем >caught
и использует её для захвата числа, которое получается в результате перемножения 5 и 5.
После определения переменной её имя можно использовать в выражениях. Величина переменной будет такой, какое значение в ней сейчас содержится. Пример:
>var ten = 10;
>console.log(ten * ten);
>// → 100
Переменные можно называть любым словом, которое не является ключевым (типа >var
). Нельзя использовать пробелы. Цифры тоже можно использовать, но не первым символом в названии. Нельзя использовать знаки пунктуации, кроме символов >$
и >_
.
Переменной присваивают значение не навсегда. Оператор >=
можно использовать на существующих переменных в любое время, чтобы присвоить им новое значение.
>var mood = "лёгкое";
>console.log(mood);
>// → лёгкое
>mood = "тяжёлое";
>console.log(mood);
>// → тяжёлое
Представляйте себе переменные не в виде коробочек, а в виде щупалец. Они не содержат значения – они хватают их. Две переменные могут ссылаться на одно значение. Программа имеет доступ только к значениям, которые они содержат. Когда вам нужно что-то запомнить, вы отращиваете щупальце и держитесь за это, или вы используете существующее щупальце, чтобы удержать это.
Переменные как щупальца
Пример. Для запоминания количества денег, которые вам должен Василий, вы создаёте переменную. Затем, когда он выплачивает часть долга, вы даёте ей новое значение.
>var vasyaDebt = 140;
>vasyaDebt = vasyaDebt - 35;
>console.log(vasyaDebt);
>// → 105
Когда вы определяете переменную без присваивания ей значения, щупальцу не за что держаться, оно висит в воздухе. Если вы запросите значение пустой переменной, вы получите >undefined
.
Одна инструкция >var
может содержать несколько переменных. Определения нужно разделять запятыми.
>var one = 1, two = 2;
>console.log(one + two);
>// → 3
Ключевые и зарезервированные слова
Слова со специальным смыслом, типа >var
– ключевые. Их нельзя использовать как имена переменных. Также есть несколько слов, «зарезервированных для использования» в будущих версиях JavaScript. Их тоже нельзя использовать, хотя в некоторых средах исполнения это возможно. Полный их список достаточно большой.