--- sidebar_position: 2 --- # Переменные **Переменная** – это «именованное хранилище» для данных. Можно объявить при помощи: - **let** - **const** (константа, т.е. изменению не подлежит) - **var** (устаревший способ, подробности позже) ```js let message; message = 'Hello'; // сохранить строку 'Hello' в переменной с именем message let user = 'John', age = 25, message = 'Hello'; let user = 'John', age = 25, message = 'Hello'; ``` Имя переменной может включать: - Буквы и цифры, однако цифра не может быть первым символом. - Символы $ и _ используются наряду с буквами. - Иероглифы и символы нелатинского алфавита также допустимы, но обычно не используются. Переменные типизируются динамически. В них могут храниться любые значения. Всего существует 8 типов данных: - **number** для целых и вещественных чисел, - **bigint** для работы с целыми числами произвольной длины, - **string** для строк, - **boolean** для логических значений истинности или ложности: true/false, - **null** – тип с единственным значением null, т.е. «пустое значение» или «значение не существует», - **undefined** – тип с единственным значением undefined, т.е. «значение не задано», - **object** и **symbol** – сложные структуры данных и уникальные идентификаторы; их мы ещё не изучили. Оператор `typeof` возвращает тип значения переменной, с двумя исключениями: ```js typeof null == "object" // ошибка в языке typeof function(){} == "function" // именно для функций ```