let

let - об'являє зміну з блоковою областю видимості

Синтаксис:

let var1 [= value1] [, var2 [= value2]] [..., varN [= valueN]];

Параметри:

var1 - назва змінної.

value1 - значення змінної. Будь який тип даних або функція.

Опис:

let дозволяє оголосити локальну змінну з обмеженою поточним блоком { } коду областю видимості. Відміну від var , яке оголошує змінну глобально або локально в усій функції незалежно від області блоку.

Старі браузери не підтримують let, так як це стандарт ES6.

Над відмінно від var до змінної яка оголошена за допомогою let не можна звертатися до її оголошення, так як виникне помилка: alert(x); //ReferenceError, звертаємося до змінної яка буде оголошена у наступному рядку let x=10; //оголошення змінної x

Приклад:

var x=5; if(x>3){ let y='не двійка'; //зміна x буде видимою лише у блоці if {...} console.log(y); } alert(y); //ReferenceError: y is not defined - змінної y не існує

Приклад різниці між var і let:

function LET(a){ if(a<0){ let a=0; console.log(a); //0 } console.log(a); //-9 } function VAR(a){ if(a<0){ var a=0; console.log(a); //0 } console.log(a); //0 } VAR(-9); LET(-9);

Подвійне оголошення змінної у одному ж блоці призведе до синтаксичної помилки коду:

let x=5; alert(x); let x=12; //SyntaxError: Identifier 'x' has already been declared

Оголошення змінної такої ж самої назви у різник блоках не призводить до помилки:

if(10>1){ let x=5; //оголошення змінної x в межах блоку if {...} alert(x); } let x=12; alert(x);

Зверніть увагу що switch має лише один блок.

var a=3; switch( a ){ case 0 : let b=3; break; case 1 : let b; //SyntaxError через повторного оголошення змінної break; }

Приклад використання let у циклі for:

var i = 15; for(let i = 0; i < 10; i++){ console.log(i) ; } alert(i); //15