Программы оперируют данными. Данные надо где-то хранить. Хранить в соответствии с типом и структурировано. Ведь нельзя же одинаково хранить молоко и мыло. Во-первых их надо хранить отдельно, в разных условиях: молоко в холодильнике, мыло на полке в шкафу.
Данные хранятся в специальных хранилищах: переменных. Переменная — это как абстрактная коробка, в которую мы кладем конкретное значение определенного типа. Мы можем изменять значение в коробке столько раз, сколько захотим. При этом старые значения удаляются безвозвратно, если не были сохранены куда-то еще.
Так же и с переменными. У каждой из них свой тип, поэтому свои особые условия хранения в памяти компьютера. И чтобы компьютер понял, что ему необходимо выделить ресурсы под переменную, а не под функцию, существует специальное слово (или инструкция языка программирования)
let или устаревший вариант var.
let string = “Hi!”; let number = 152;
Можно объвить несколько переменных в одной строке:
let user = ‘Mark’, age = 35, job = ‘manager’;
Различия между let и var. Область видимости: локальные и глобальные переменные.
Существует глобальная и локальная область видимости для переменной. Глобальные переменные доступны во всем модуле, в любой функции или объекте модуля. Локальная переменная доступна только внутри функции или внутри логического блока, ограниченного фигурными скобками {}.
Разница в том, что для var не существует блочной области видимости. К примеру, переменная, объявленная в блоке условия if, будет видна и доступна для обращения и изменения и за скобками блока условия.
if (true) { var message = ‘Just some info’; // используем var вместо let }
console.log(message); // значение будет доступно, не приведет // к ошибке и содержимое переменной message будет выведено в консоль.
А если написать тоже самое, но через let, то вот что будет:
if (true) { let message = ‘Just some info’; // используем var вместо let } console.log(message); // Error: message is not defined. “Переменная не определена”.
Т.е. интерпретатор JavaScript не видит переменную message, он не знает о ее существовании, потому что она удалилась как только токен исполнение программы вышел за закрывающую фигурную скобку (то бишь за пределы) блока if.
Аналогично и для циклов.
for (var i = 0; i < 10; i++) { // ... } console.log(i); // i=10. Т.е. i доступна вне цикла.
Преобразования типов.
Строковые преобразования
Когда переменную нужно явно преобразовать из любого другого примитивного типа к строке, используется конструкция вида
String(value).
Т.е.если true становится “true”, undefined становится “undefined ” итд.
Числовое преобразование
Когда есть запись математического выражения, то численное выражение происходит автоматически. Например:
console.log(“15” / “5”); // 3. Строка превратилась в число
Но можно использовать явное преобразование при помощи
Number(value)
Но не всегда значение можно преобразовать в число, даже при помощи явного преобразования.
let string = Number("Этот текст - строка"); console.log(string); // Nan, преобразование не удалось
Логическое преобразование
Самое простое будет логическое преобразование. Потому что вариантов немного )
Автоматически логические преобразования происходят в логических операциях. К примеру:
let age = 14 + 5; if (age > 18) { // true, здесь мы проверяем, меньше или больше 18 переменная age? // получаем, что age = 19 больше 18, что приобретает значение ИСТИНА }
Явное преобразование происходит с помощью функции Boolean(value).
Например:
console.log(Boolean(1)) // выведет true console.log(Boolean(0)) // выведет false