Большую часть времени компьютерной программе необходимо работать с некоторым набором информации. Вот два примера:
- Приложение Facebook — информация может включать пользователей, сообщения и многое другое.
- Приложение Amazon — информация может включать товары, которые продаются, данные пользователей и информацию о доставке.
поэтому в компьютерных программах переменные используются для хранения этой информации.
Переменная
Переменная — это именованное хранилище для данных. Мы можем использовать переменные для хранения вкусностей, посетителей и других данных.
Чтобы создать переменную в JavaScript, используйте ключевое слово let
.
Оператор ниже создает (другими словами: объявляет) переменную с именем «message»:
let message;
Теперь мы можем поместить в него некоторые данные, используя оператор присваивания =
:
let message;
message = 'Hello'; // store the string
Теперь строка сохраняется в области памяти, связанной с переменной. Мы можем получить к нему доступ, используя имя переменной:
let message; message = 'Hello!';
alert(message); // shows the variable content
Чтобы быть кратким, мы можем объединить объявление переменной и присвоение в одну строку:
let message = 'Hello!'; // define the variable and assign the value
alert(message); // Hello!
Мы также можем объявить несколько переменных в одной строке:
let user = 'John', age = 25, message = 'Hello';
Это может показаться короче, но мы не рекомендуем это делать. Для лучшей читаемости используйте одну строку для каждой переменной.
Многострочный вариант немного длиннее, но легче читается:
let user = 'John';
let age = 25;
let message = 'Hello';
Некоторые люди также определяют несколько переменных в этом многострочном стиле:
let user = 'John',
age = 25,
message = 'Hello';
…Или даже в стиле «сначала запятая»:
let user = 'John'
, age = 25
, message = 'Hello';
Технически все эти варианты делают одно и то же. Так что это дело личного вкуса и эстетики.
var
вместо let
В старых сценариях вы также можете найти другое ключевое слово: var
вместо let
:
var message = 'Hello';
Ключевое слово var
почти совпадает с let
. Он также объявляет переменную, но немного другим, «старомодным» способом.
Между let
и var
есть небольшие различия, но для нас они пока не имеют значения. Мы подробно рассмотрим их в главе Старый var.
Аналогия из реальной жизни
Мы можем легко понять концепцию «переменной», если представим ее как «коробку» для данных с наклейкой с уникальным именем.
Например, переменную message
можно представить как поле с меткой "message"
со значением "Hello!"
в нем:
Мы можем поместить любое значение в поле.
Мы также можем изменить его столько раз, сколько захотим:
let message;
message = 'Hello!';
message = 'World!'; // value changed
alert(message);
При изменении значения старые данные удаляются из переменной:
Мы также можем объявить две переменные и скопировать данные из одной в другую.
let hello = 'Hello world!';
let message;
// copy 'Hello world' from hello into message message = hello;
// now two variables hold the same data alert(hello); // Hello world! alert(message); // Hello world!
Двойное объявление вызывает ошибку
Переменная должна быть объявлена только один раз.
Повторное объявление одной и той же переменной является ошибкой:
let message = "This";
// repeated 'let' leads to an error let message = "That"; // SyntaxError: 'message' has already been declared
Итак, мы должны объявить переменную один раз, а затем обращаться к ней без let
.
Именование переменных
Есть два ограничения на имена переменных в JavaScript:
- Имя должно содержать только буквы, цифры или символы
$
и_
. - Первый символ не должен быть цифрой.
Примеры допустимых имен:
let userName;
let test123;
Когда имя состоит из нескольких слов, обычно используется camelCase. То есть: слова идут друг за другом, каждое слово, кроме первого, начинается с заглавной буквы: myVeryLongName
.
Что интересно — знак доллара '$'
и знак подчеркивания '_'
тоже можно использовать в именах. Это обычные символы, как и буквы, без особого значения.
Эти имена действительны:
let $ = 1; // declared a variable with the name "$" let _ = 2; // and now a variable with the name "_"
alert($ + _); // 3
Примеры некорректных имен переменных:
let 1a; // cannot start with a digit
let my-name; // hyphens '-' aren't allowed in the name
Регистр имеет значение
Переменные с именами apple
и AppLE
— это две разные переменные.
Нелатинские буквы разрешены, но не рекомендуются
Можно использовать любой язык, включая кириллицу или даже иероглифы, вот так:
let имя = '...';
let 我 = '...';
Технически здесь нет ошибки. Такие имена разрешены, но существует международное соглашение об использовании английского языка в именах переменных. Даже если мы пишем небольшой сценарий, у него может быть долгая жизнь впереди. Людям из других стран, возможно, потребуется прочитать его некоторое время.
Зарезервированные имена
Существует список зарезервированных слов, которые нельзя использовать в качестве имен переменных, поскольку они используются самим языком.
Например: let
, class
, return
и function
зарезервированы.
Код ниже дает синтаксическую ошибку:
let let = 5; // can't name a variable "let", error!
let return = 5; // also can't name it "return", error!
Задание без use strict
Обычно нам нужно определить переменную перед ее использованием. Но в старые времена было технически возможно создать переменную простым присвоением значения без использования let
. Это все еще работает сейчас, если мы не поместим use strict
в наши скрипты для обеспечения совместимости со старыми скриптами.
// note: no "use strict" in this example
num = 5; // the variable "num" is created if it didn't exist
alert(num); // 5
Это плохая практика, которая вызовет ошибку в строгом режиме:
"use strict";
num = 5; // error: num is not defined
Константы
Чтобы объявить постоянную (неизменную) переменную, используйте const
вместо let
:
const myBirthday = '18.04.1982';
Переменные, объявленные с использованием const
, называются «константами». Их нельзя переназначить. Попытка сделать это вызовет ошибку:
const myBirthday = '18.04.1982';
myBirthday = '01.01.2001'; // error, can't reassign the constant!
Когда программист уверен, что переменная никогда не изменится, он может объявить ее с помощью const
, чтобы гарантировать и четко сообщить об этом факте всем.
Сводка
Мы можем объявить переменные для хранения данных, используя ключевые слова var
, let
или const
.
let
— это современное объявление переменной.var
— объявление переменной старой школы. Обычно мы его вообще не используем, но мы рассмотрим тонкие отличия отlet
в главе Старая 'var' на всякий случай, если они вам понадобятся.const
— похоже наlet
, но значение переменной изменить нельзя.
Переменные должны быть названы таким образом, чтобы мы могли легко понять, что находится внутри них.