Hiểu nhanh:
- var: function scope, có thể khai báo lại, dùng trước khi khai báo sẽ ra undefined.
- let: block scope (if, for, {}), cho phép gán lại.
- const: block scope, không cho gán lại biến.
Ví dụ:
javascript
const user = { name: "An" };
user.name = "Binh"; // Hợp lệBạn vẫn sửa được user.name vì bạn đang thay đổi thuộc tính bên trong object, không phải gán lại biến user bằng một object khác.
Khác biệt scope thấy rõ ở vòng lặp: for (var i = 0; i < 3; i++) {} — sau vòng lặp i vẫn tồn tại (giá trị 3, vì function scope); với let j thì j không tồn tại bên ngoài block.
Lời khuyên: Mặc định dùng const, khi cần đổi giá trị thì dùng let, hạn chế tối đa sử dụng var.