Menu
CoddyTech

Phạm vi khối lệnh, let và const

Bài học 3 trên 9 trong khóa học Những phần khó trong JavaScript hiện đại (ES6+) của Coddy.

Phạm vi khối lệnh là gì? Trước đó, phạm vi của một biến là gì? 

Phạm vi của một biến là vùng mà biến đó có thể được truy cập, tức là ta chỉ có thể dùng biến trong phạm vi của nó.

Trước ES6, người ta khai báo biến bằng từ khóa var. Các biến này chỉ có phạm vi toàn cục và phạm vi hàm (cục bộ).

Trong ES6, ta có thể khai báo biến bằng từ khóa let và const, các biến này có phạm vi khối lệnh. 

Khối lệnh là một vùng nằm bên trong cặp dấu ngoặc nhọn mở và đóng, nơi ta có thể viết code JS, ví dụ: { // any code }.

{
  let x = 2;
}
// Không thể dùng x ở đây
// vì không thể truy cập x bên ngoài khối lệnh (block) ở trên

Điều tương tự cũng áp dụng cho const, vì nó cũng có phạm vi khối lệnh.

Các biến được khai báo bằng const phải được khởi tạo, và ta không thể thay đổi hoặc gán giá trị mới sau lần khởi tạo đầu tiên!

const pi = 3.14;
pi = 4.2 // Lỗi, không thể gán giá trị mới cho hằng số khai báo bằng const

 

Như đã đề cập trước đó, var không có phạm vi khối lệnh, mà có phạm vi toàn cục hoặc phạm vi hàm.

{
  var x = 2;
}
// Có thể dùng x ở đây vì x có phạm vi toàn cục.

 

Một số điểm quan trọng: 

  • Không thể khai báo lại biến được khai báo bằng let / const.
  • Phải khai báo biến được khai báo bằng let / const trước khi sử dụng.
  • Biến được khai báo bằng let / const không thể được hoisted.
challenge icon

Thử thách

Dễ

Tạo hai biến (variable) bên trong hàm (function) đã cho: name = "Coddy" bằng let, age = 25 bằng const. In ra các giá trị này bằng console.log().

Tự làm thử

function getInfo() {
    // Viết code ở đây
}

Tất cả bài học trong Những phần khó trong JavaScript hiện đại (ES6+)

Tự luyện tập: Trình biên dịch JavaScript online