1. вар
Это старый способ объявления переменных в JavaScript, и теперь это самое слабое ключевое слово для определения переменной. Переменная, объявленная с помощью var, может быть или не быть переназначена, и, поскольку она находится в области действия, переменная может использоваться или не использоваться для вся функция. Если переменная случайно переназначается в цикле for (область действия блока), тогда все может легко пойти не так. В этом случае люди могут перезаписать родительские назначения. Например,
var foo='outside';
if(true){
var foo = 'inside'
console.log(foo); //print inside
}
console.log(foo); //print inside
Чтобы уточнить, var находится в области действия. Таким образом, если вы выполняете переназначение в функции, переменная вне функции не будет изменена.
var foo='outside';
var fooFunction = function(){var foo='inside'}
fooFunction();
console.log(foo); //print outside
Другая потенциальная проблема с var заключается в том, что на нее можно сослаться до того, как она будет назначена. Например,
var x = 'foo';
console.log(x); //foo
console.log(y); //undefined, no errors!!
var y = 'late foo'; //late foo
console.log(y);
Ошибок при использовании переменной перед объявлением нет. Движок Javascript читает приведенный выше скрипт как
var x ='foo';
var y ='late foo';
console.log(x); //foo
console.log(y); //undefined, no errors!!
console.log(y); //late foo
Хотя люди могут избежать этой проблемы, используя 'use strict', const и let по-прежнему надежнее и могут уменьшить потенциальную ошибку и сделать код более понятным.
2. пусть
Когда дело доходит до ситуации, когда мне нужно переназначить переменную, let более приветствуется, чем var после ES6. Причина в том, что let находится в области блока, что означает, что он существует только в своей области. Например,
let foo='outside'; if(true){ let foo = 'inside' console.log(foo); //print inside
} console.log(foo); //print outside
После условия if foo равно «снаружи», а не значению, которое мы имеем внутри оператора if («внутри»).
3. константа
const используется, когда вы не хотите переназначать переменную. Он остается постоянным после объявления. В результате const всегда является для меня параметром по умолчанию, если мне не нужно переназначать переменную. Таким образом, мы также можем избежать случая, когда мы время от времени объявляем одно и то же имя переменной в других файлах.