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ụ:
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.
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.
Quick summary:
- var: function-scoped, can be re-declared, and reading before declaration gives undefined.
- let: block-scoped (if, for, {}), can be reassigned.
- const: block-scoped, cannot be reassigned.
Example:const user = { name: "An" } can still do user.name = "Binh" because you are changing a property, not reassigning user.
For beginners: default to const, use let only when value must change, avoid var.