В этом блоге мы рассмотрим ключевые слова var, let и const в javascript.
После выхода ES6 понимание этих ключевых слов и того, как они работают внутри javascript, стало немного запутанным.
Давайте начнем с области применения let, var и const.
Область применения
let:- переменные, объявленные в let’s, находятся в области видимости блока
const:- переменные, объявленные в const, также находятся в области видимости блока
var:- переменная, объявленная с помощью var, находится в функциональной области видимости
function abc () {
var a=10
}
console.log(a) // gives an error
for(let i = 0;i<2;i++){
console.log( i ) // print 1 2
}
console.log(i) // gives an error
{
const b=1;
console.log(b)// print 1
}
console.log(b)// gives an error
- для var выдает ошибку, так как переменная находится в функциональной области видимости, поэтому она не может быть доступна вне функции
- for let внутри блока цикла for выводит вывод, но вне блока выдает ошибку, так как let является заблокированной областью видимости
- для const внутри фигурных скобок, он печатает значение, но вне скобок выдает ошибку, так как это тоже область видимости блока.
Давайте проверим переназначение значений let, const и var
- var:- переназначение разрешено
- let:- переназначение разрешено
- const:- переназначение не разрешено
var a = 1 ;
a = 2;
console.log(a) // print 2
let l = 1;
l = 2 ;
console.log(l) // print 2
const c = 1 ;
c=2
consol.log(c) // give an error
- для var переназначение значения показывает последнее значение 2
- для let также переназначение значения показывает последнее значение 2
- для const переназначение значения выдает ошибку, так как переназначение не разрешено
Проверим повторное декларирование let, const и var
- let:- Повторное декларирование не разрешено
- var:- Переопределение разрешено
- const:- Переопределение не разрешено
var v = 1;
var v = 20;
console.log(v);// prints 20
let i = 1;
let i = 20;
console.log(i); // gives an error
const c = 1;
const c = 20;
console.log(c) // gives an error
- для var нет ошибки и печатается последнее объявленное значение
- для let и const возникает ошибка, так как не допускается повторное объявление переменной
Вот некоторые различия между let, const и var, надеюсь, вам понравится.