3.Sự khác nhau giữa var và let

1: Variable scopes(Phạm vi sử dụng của các biến) Các biến var sẽ thuộc phạm vi toàn cục(global scope) khi bạn định nghĩa chúng bên ngoài function. Ví dụ: var counter; Trong ví dụ trên, counter là biến global scope. Nó có nghĩa là biến counter có thể truy cập từ bất kỳ function nào.

1: Variable scopes(Phạm vi sử dụng của các biến)

Các biến var sẽ thuộc phạm vi toàn cục(global scope) khi bạn định nghĩa chúng bên ngoài function. Ví dụ:

var counter;

Trong ví dụ trên, counter là biến global scope. Nó có nghĩa là biến counter có thể truy cập từ bất kỳ function nào.
Khi bạn khai báo một biến bên trong một function sử dụng từ khóa var, phạm vi của biến sẽ là local. Ví dụ

function increase() {
    var counter = 10;
}
// cannot access the counter variable here

Trong ví dụ này, biến counter là local trong function increase(). Nó không thể truy cập bên ngoài function.
Ví dụ tiếp theo hiển thị các số từ 0 đến 4 bên trong vòng lặp for và hiển thì số 5 bên ngoài vòng lặp

for (var i = 0; i < 5; i++) {
	console.log("Inside the loop:", i);
}

console.log("Outside the loop:", i);

Output:

Inside the loop: 0 
Inside the loop: 1 
Inside the loop: 2 
Inside the loop: 3 
Inside the loop: 4 
Outside the loop: 5

Trong ví dụ này, biến i là biến global. Vì vậy, Nó có thể truy cập cả bên trong và sau vòng lặp for.
Ví dụ tiếp theo chúng ta sẽ sử dụng từ khòa let thay thế cho từ khóa var:

for (let i = 0; i < 5; i++) {
	console.log("Inside the loop:", i);
}

console.log("Outside the loop:", i);

Trong trường hợp này, code của chúng ta sẽ hiển thị các số từ 0 đến 4 bên trong vòng lặp for và một lỗi tham chiếu.

Inside the loop: 0
Inside the loop: 1
Inside the loop: 2
Inside the loop: 3
Inside the loop: 4

The error:

Uncaught ReferenceError: i is not defined

Vì sử dụng từ khóa let, biến i là một blocked scope. Có nghĩa là biến i chỉ tồn tại và có thể truy cập bên trong block for.
Trong Javascript, một block(một khối) được phân tách bằng một cặp dấu ngoặc nhọn {} như các câu lệnh if…else và for.

if(condition) {
   // inside a block
}

for(...) {
  // inside a block
}

2: Creating global properties(tạo thuộc tính global)

Biến global var được thêm vào global object như những properties. Global object là window trên web browser và global trên Node.js:

var counter = 0;
console.log(window.counter); //  0

Tuy nhiên, biến let thì không được thêm vào global object:

let counter = 0;
console.log(window.counter); // undefined

3: Redeclaration(Khai báo lại)

Từ kháo var cho phép bạn khai báo lại một biến mà không gặp bất kỳ lỗi nào:

var counter = 10;
var counter;
console.log(counter); // 10

Tuy nhiên, nếu bạn khai báo lại với từ khóa let, bạn sẽ nhận được một lỗi:

let counter = 10;
let counter; // error

Nguồn: viblo.asia

Bài viết liên quan

Thay đổi Package Name của Android Studio dể dàng với plugin APR

Nếu bạn đang gặp khó khăn hoặc bế tắc trong việc thay đổi package name trong And

Lỗi không Update Meta_Value Khi thay thế hình ảnh cũ bằng hình ảnh mới trong WordPress

Mã dưới đây hoạt động tốt có 1 lỗi không update được postmeta ” meta_key=

Bài 1 – React Native DevOps các khái niệm và các cài đặt căn bản

Hướng dẫn setup jenkins agent để bắt đầu build mobile bằng jenkins cho devloper an t

Chuyển đổi từ monolith sang microservices qua ví dụ

1. Why microservices? Microservices là kiến trúc hệ thống phần mềm hướng dịch vụ,