Большую часть времени компьютерной программе необходимо работать с некоторым набором информации. Вот два примера:

  1. Приложение Facebook — информация может включать пользователей, сообщения и многое другое.
  2. Приложение 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:

  1. Имя должно содержать только буквы, цифры или символы $ и _.
  2. Первый символ не должен быть цифрой.

Примеры допустимых имен:

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, но значение переменной изменить нельзя.

Переменные должны быть названы таким образом, чтобы мы могли легко понять, что находится внутри них.