Block-scope là gì? Đặc điểm và Ví dụ cụ thể
Block-scope trong JavaScript là một khái niệm quan trọng liên quan đến phạm vi hoạt động của biến. Một biến có block-scope nghĩa là nó chỉ có thể được truy cập trong khối lệnh (block) mà nó được khai báo.
Đặc Điểm của Block-scope
- Block: Một block trong JavaScript thường được định nghĩa bởi cặp ngoặc nhọn
{}
. Điều này bao gồm các cấu trúc nhưif
,for
,while
, v.v. let
vàconst
: Các biến được khai báo bằnglet
hoặcconst
có block-scope. Điều này nghĩa là chúng chỉ tồn tại và có thể truy cập được trong block mà chúng được khai báo.
So sánh với Function-scope
- Trái ngược với block-scope,
var
trong JavaScript có function-scope, tức là biếnvar
chỉ được hạn chế trong phạm vi của một hàm mà không bị hạn chế bởi các blocks nhỏ hơn như loops hay conditional blocks.
Ví dụ Cụ thể
if (true) {
let x = 5;
console.log(x); // 5
}
console.log(x); // ReferenceError: x is not defined
for (let i = 0; i < 3; i++) {
console.log(i); // 0, 1, 2
}
console.log(i); // ReferenceError: i is not defined
Trong ví dụ trên:
- Biến
x
được khai báo bằnglet
trong một blockif
. Nó có thể được truy cập trong block này nhưng không thể truy cập từ bên ngoài block. - Tương tự, biến
i
được khai báo trong vòng lặpfor
và chỉ có thể truy cập được trong vòng lặp đó.
Block-scope giúp lập trình viên quản lý và kiểm soát phạm vi của biến một cách chặt chẽ hơn, giảm thiểu nguy cơ xung đột và lỗi do truy cập biến không chính xác từ bên ngoài phạm vi của chúng.