Mẹo lập trình Javascript: So sánh câu lệnh const, let và var
By JoeVu, at: 18:33 Ngày 25 tháng 11 năm 2023
Thời gian đọc ước tính: __READING_TIME__ minutes


Trong JavaScript, let
, const
, và var
được sử dụng để khai báo biến, nhưng chúng có một số khác biệt về phạm vi, hoisting và khả năng thay đổi.
-
var
(Khai báo biến):
- Các biến được khai báo bằng
var
có phạm vi hàm, nghĩa là phạm vi của chúng bị giới hạn trong hàm mà chúng được định nghĩa.
- Các biến
var
được hoisting lên đầu phạm vi của chúng trong giai đoạn thực thi, điều này có nghĩa là bạn có thể sử dụng biến trước khi nó được khai báo trong mã.
- Các biến
var
có thể được khai báo lại và gán lại.
function variable_declaration() {
var x = 10;
if (true) {
var x = 20; // Cùng một biến như trên, không phải là một biến mới
console.log(x); // Xuất ra 20
}
console.log(x); // Xuất ra 20, không phải 10
} - Các biến được khai báo bằng
-
let
(Khai báo phạm vi khối):
- Các biến được khai báo bằng
let
có phạm vi khối, nghĩa là phạm vi của chúng bị giới hạn trong khối (một cặp dấu ngoặc nhọn) mà chúng được định nghĩa.
- Các biến
let
cũng được hoisting, nhưng chúng không được khởi tạo cho đến khi trình thông dịch đến khai báo của chúng trong mã.
- Các biến
let
có thể được gán lại, nhưng không thể khai báo lại trong cùng một phạm vi.
function variable_declaration() {
let x = 10;
if (true) {
let x = 20; // Biến khác với biến bên ngoài khối
console.log(x); // Xuất ra 20
}
console.log(x); // Xuất ra 10, không bị ảnh hưởng bởi khối bên trong
} - Các biến được khai báo bằng
-
const
(Khai báo hằng số):
- Các biến được khai báo bằng
const
có phạm vi khối giống nhưlet
.
- Các biến
const
phải được gán một giá trị khi được khai báo, và giá trị đó không thể được thay đổi hoặc gán lại.
- Giống như
let
, các biếnconst
không được hoisting cho đến khi khai báo của chúng.
function variable_declaration() {
const x = 10;
// x = 20; // Điều này sẽ dẫn đến lỗi, vì các biến const không thể được gán lại
console.log(x); // Xuất ra 10
} - Các biến được khai báo bằng
Nhìn chung, tốt nhất nên sử dụng const
theo mặc định và chỉ sử dụng let
khi bạn biết giá trị của biến sẽ thay đổi. var
được sử dụng ít thường xuyên hơn trong JavaScript hiện đại do hành vi phạm vi hàm và những điểm kỳ lạ của hoisting. Sử dụng const
và let
có thể giúp ngăn ngừa việc gán lại không mong muốn và cải thiện tính rõ ràng của mã.