Переменные и типы данных
Last updated
Last updated
Переменные используются для хранения данных и состоят из идентификатора (имени) и области в памяти, где хранится их значение. Переменную можно представить как коробку с названием, в которой что-то лежит (значение).
Идентификатор — это имя переменной, функции, параметра или класса. Состоит из одного или нескольких символов в следующем формате:
Первым символом должна быть буква a-z
или A-Z
, символ подчеркивания _
или знак доллара $
.
Другие символы могут быть буквами a-z
, A-Z
, цифрами 0-9
, подчеркиваниями _
и знаками доллара $
.
Все идентификаторы чувствительны к регистру. Это значит, что переменные user
, usEr
и User
различны.
Имя переменной должно быть понятным.
Использование camelCase-нотации для идентификаторов это стандарт. При таком подходе, первое слово пишется строчными буквами, а каждое дополнительное начинается с прописной буквы. К примеру: user
, greetUser
, getUserData
, isActive
, activeGuestCount
, totalWorkerSalary
.
Есть список зарезервированных ключевых слов, которые имеют специальное значение и используются для определенных конструкций. Нельзя использовать ключевые слова как идентификаторы.
В современном JavaScript есть 2 ключевых слова для объявления переменных.
let
— объявляет переменную, которой можно присвоить новое значение после объявления, то есть переопределить.
const
— так же объявляет переменную, но с одним отличием: объявляемая переменная должна быть немедленно инициализирована значением и этой переменной не может быть присвоено другое значение после инициализации.
Создание переменной без ключевого слова let
или const
приведет к ошибке.
Единственное отличие const
и let
состоит в том, что const
запрещает повторное присваивание переменной какого-либо значения. Объявление const
делает код более читаемым, так как переменная всегда ссылается на одно и то же значение. В случае с let
такой уверенности нет.
Будет разумно использовать let
и const
так:
Используйте const
по умолчанию, большинство переменных будут объявлены именно так.
Используйте let
, если потребуется присвоить переменной другое значение во время выполнения скрипта.
Имена КОНСТАНТ - переменных, значение которых не изменяется никогда на протяжении работы всего скрипта, обычно записываются в формате UPPER_SNAKE_CASE
.
Абсолютное большинство переменных – константы в другом смысле, они просто не изменяют значение после присвоения. Но при разных запусках скрипта, это значение может быть разным. Имена таких переменных записывают используя формат camelCase
.
Важно различать неопределенные и необъявленные переменные.
Неопределенная (undefined) — это переменная, которая была объявлена, но не инициализирована значением, по умолчанию ей присваивается значение undefined
как начальное.
Необъявленная (undeclared или not defined) — это переменная, которая не была объявлена в доступной области видимости.
Попытка обратиться к пременной до ее объявления вызовет ошибку.
JavaScript это динамический, слабо типизированный язык, поэтому переменная не ассоциируется с каким-либо типом данных, тип есть у значения переменной. То есть переменная может хранить значения разных типов.
Целые числа и числа с плавающей запятой. После объявления переменной, можно инициализировать ее числовым значением.
2.2. String
Строки - это просто текст, последовательность из нуля или более символов. Строка начинается и заканчивается одиночной '
или двойными кавычками "
. Открывающая и закрывающая кавычки должны быть одинаковые.
Логический тип данных, флаги состояния. Имеет только два значения: true
и false
, в нижнем регистре. Например на вопрос включен ли свет в комнате можно ответить да (true
) или нет (false
).
true
— да, верно, истина, 1
false
— нет, неверно, ложь, 0
Обратите внимание на имена переменных содержащих буль. Они задают вопрос, и ответ на его — да или нет.
Особое значение, которое по сути значит ничто
. Используется в тех ситуациях, когда необходимо явно указать отсутсвие значения. К примеру если в базе данных не нашли пользователя, то можно сказать что значение null
.
Еще одно специальное значение. По умолчанию, когда переменная объявляется, но не инициализируется, ее значение не определено, ей присваивается undefined
.
Для получения типа значения переменной, используется оператор typeof
, который возвращает на место своего вызова тип значения переменной указанного после него. Возвращаемое значение это просто строка в которой указан тип.