В некоторых интервью в Великобритании спрашивали о разнице между var, let и const в JavaScript. И я решил в нескольких словах поделиться тем, что я о них думаю, и тем, что само по себе, тем самым я закрепил концепцию и в своем уме. :)

Вар

В этом коде JavaScript var является более старой опцией для объявления новостной переменной для JS. Он много использовался до спецификации 2015 (ES6). Мы можем объявить переменную глобально или локально. В обоих случаях необходимо учитывать область действия блока.

повторная декларация или обновление

Мы можем объявить переменную и переобъявить ее в той же или другой области видимости.

var test = "hello world zero"
var test = "hello world one"

или просто

test = "hello world three"

вар подъемный

Инициализация переменной необязательна, но если переменная не была начальным значением, значением по умолчанию является undefined перед запуском кода, и он вызывает

По словам Мабиси Ваки в



Подъем

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

Пример ниже возможен без ошибок, потому что подъемный механизм.

console.log (test);
var test = “hello world”
// undefined

Позволять

Было добавлено по спецификации ECMAScript 2015 — ES6. введены два новых ключевых слова let и const для объявления переменных.

повторная декларация или обновление

Объявление ограничено областью действия оператора блока, такого как функция. Мы не можем делать декларацию дважды, если вы это сделаете, произойдет ошибка.

let x = 1; let x = 2 
// Uncaught SyntaxError: Identifier ‘x’ has already been declared

Но мы можем обновлять переменную сколько угодно раз.

let x = 1; x = 2; x = 3; x = 4;

Мир let пришел из математики, этого слова много в математических предлогах, как в начале теоремы.

вар подъемный

Это не применяется. если вы это сделаете, также произойдет ошибка.

console.log (test);
let test = “hello world”
// Uncaught ReferenceError: test is not defined

Постоянная

Его нельзя повторно объявить или обновить. Его нужно инициализировать, если он не инициализирован, у нас будет ошибка компиляции.

const SHOULD_BE_INITIALIZED = "Hello World";

повторно инициализирован

const TEST; TEST = "Hello World"
// Uncaught SyntaxError: Missing initializer in const declaration

повторная декларация

const TEST = "Hello World"; TEST="Hello World 2"
// Uncaught SyntaxError: Identifier ‘test’ has already been declared

Использованная литература: