JavaScript дозволяє Vs var (з прикладами)

У цьому посібнику ви дізнаєтесь про різницю між let і var у JavaScript за допомогою прикладів.

У JavaScript обидва ключові слова varта letвикористовуються для оголошення змінних.

letКлючове слово було введено в пізніших версіях JavaScript , відомої як ES6 (ES2015) . І це найкращий спосіб оголошення змінних.

JavaScript дозволяє Vs var

Ось огляд відмінностей між letі var.

дозволяти змінний
нехай має блок-сферу дії. var - це область дії функції.
let не дозволяє повторно оголошувати змінні. var дозволяє повторно оголосити змінні.
Підйом не відбувається в let. Піднімання відбувається в var.

JavaScript дозволяє Vs var у Local Scope

var - це область дії функції

Змінна, оголошена всередині функції, varможе бути використана в будь-якому місці функції. Наприклад,

 // program to print text // variable a cannot be used here function greet() ( // variable a can be used here var a = 'hello'; console.log(a); ) // variable a cannot be used here greet(); // hello

У наведеній вище програмі змінна a оголошена за допомогою var. Змінна a може використовуватися де завгодно всередині функції greet.

нехай має блок-сферу дії

До змінної, оголошеної з, letможна отримати доступ лише всередині блоку коду. Наприклад,

 // program to print the text // variable a cannot be used here function greet() ( let a = 'hello'; // variable b cannot be used here if(a == 'hello')( // variable b can be used here let b = 'world'; console.log(a + ' ' + b); ) // variable b cannot be used here console.log(a + ' ' + b); // error ) // variable a cannot be used here greet();

Вихідні дані

 hello world Uncaught ReferenceError: b не визначено

У наведеній вище програмі змінна a оголошена всередині функції, і до неї можна отримати доступ в будь-якому місці всередині функції (a стає областю дії функції).

Однак змінна b оголошується всередині ifоператора блоку. b буде з блоком, і доступ до нього можна отримати лише всередині ifблоку.

Отже, при спробі отримати доступ до b поза ifблоком, виникає помилка (як показано вище в програмі).

Примітка : Змінні, оголошені всередині функції, будуть функціонувати як для, так varі для let.

let не дозволяє повторно оголошувати змінні

1. Змінна, оголошена з, varможе бути повторно оголошена. Наприклад,

 var a = 5; // 5 var a = 3; // 3

Змінна, оголошена з, letне може бути повторно оголошена в тому самому блоці або в тій самій області. Наприклад,

 let a = 5; let a = 3; // error 

Вихідні дані

 Uncaught SyntaxError: Ідентифікатор "а" вже оголошено

2. Перевизначення змінної з varіншим обсягом або блоком також змінює значення зовнішньої змінної. Наприклад,

 var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3

Повторне оголошення змінної з letіншим обсягом або блоком розглядає цю змінну як іншу змінну. І значення змінної зовні не змінюється. Наприклад,

 let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5

3. Коли змінна, оголошена з var, використовується у циклі, значення цієї змінної змінюється. Наприклад,

 var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3

У наведеній вище програмі forцикл повторно оголошує змінну a. Отже, значення в кінці aзмінюється на 3 .

Коли змінна, оголошена let , використовується в циклі, значення змінної не змінюється. Наприклад,

 let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2

У наведеній вище програмі forцикл обробляє змінну а як змінну, відмінну від заявленої вище. І область дії цієї змінної знаходиться лише всередині forциклу. Отже, значення змінної а в кінці залишається 2 .

нехай не дозволяє підняття

Змінні, оголошені за допомогою var, піднімаються до верхньої частини області програми. Наприклад,

 console.log(a); var a; // undefined (not an error)

Ключове слово letне дозволяє піднімати. Наприклад,

 console.log(a); let a; // Uncaught ReferenceError: a is not defined

Якщо ви хочете дізнатись більше про підйом, відвідайте JavaScript підйом.

let і var Підтримка браузера

Більшість сучасних браузерів підтримують використання let. Однак деякі браузери підтримують не повністю let.

Щоб дізнатись більше, відвідайте JavaScript, дозвольте підтримку браузера.

Примітка : У випадку глобального масштабу, і те, varі інше letповодитимуться однаково. Наприклад,

 var a = 5; // 5

Змінна a має глобальний масштаб і доступ до неї можна отримати в будь-якому місці програми.

 let a = 5; // 5

Змінна a має глобальний масштаб і доступ до неї можна отримати в будь-якому місці програми.

Цікаві статті...