Переменные представляют из себя именованные области, местом пребывания которых является оперативная память компьютера. Основное предназначение именованной области — это хранение разнообразной информационной составляющей.

В случае, когда программа требует сохранения значений, для их последующего использования в необходимый момент, такие значения присваиваются переменным. При присваивании переменным, значения сохраняются в ячейках памяти, связанных с определенными переменными. После подобной процедуры, в случае выполнения программы, при указании пользователем имени переменной, её место в коде занимает уже необходимое значение. Именно переменные в JavaScript позволяют определять символьные имена значениям, тем самым делая в программе возможным прямое обращение к значению по имени.

Также, понятие переменная в JavaScript может изменять своё значение в процессе выполнения программы. Содержимое переменных не постоянно и доступно для изменений, отсюда и происходит само название.

Начиная со стандарта ECMAScript 6 переменную рекомендуют объявлять с помощью инструкции let. Считается, что такой способ улучшает характеристики памяти, уменьшает наличие ошибок при использовании областей видимости и упрощает чтение кода. Помимо этого, инструкция var также остается доступной. Какую именно инструкцию использовать каждый решает сам. Особенно стоит отметить, что есть некоторые нюансы переопределения переменных, при проверке которых в строгом режиме может выводиться сообщение о том, что переменная переопределена. Так повторное объявление переменных в одной области видимости с использованием инструкций var и let приводят к разным результатам. В случае с ключевым словом var произойдет банальная перезапись, в то время как повторное объявление let будет вызывать ошибку.

JavaScript имеет весомую отличительную черту от таких языков программирования как С, С++, Javа и прочих, а именно, не является строго типизированным языком. Наглядное преимущество JavaScript заключается в возможности содержания JavaScript переменными значений различных типов. Одним и тем же переменным можно присваивать как числа, так и строки, а также другие значения.

В прочих типизированных языках программирования вышеприведенный пример не применим. Отсутствие типизации в JavaScript наделяет язык чудесной способностью автоматических преобразований значений из одних типов в другие. То есть, значение интерпретируется в контексте его применения, к примеру:

Тип значения null будет иметь вид:
-в строковом контексте "null";
-в числовом 0;
-в логическом fаlse;
-в объективном Errоr.

В отличие от переменных константы объявляются с помощью ключевого слова const и служат только для чтения. Константы нельзя модифицировать. При попытке изменить значение будет возбуждено исключение.