В некоторых интервью в Великобритании спрашивали о разнице между 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
Использованная литература: