
Danh sách bài học
Var, Let và Const
Dẫn nhập
Trong bài viết hôm nay, Kteam sẽ giới thiệu cho các bạn 3 từ khóa để khai báo biến: Var, Let và Const
Nội dung
Để theo dõi bài này tốt nhất, bạn nên xem qua bài:
- Sổ tay Javascript
- ECMAScript là gì?
- Node.js là gì?
- Cơ chế bất đồng bộ trong Javascript
- Node.js hoạt động như thế nào?
- Promise là gì?
- Async/Await là gì?
Bài này sẽ giới thiệu những nội dung sau:
- Ý nghĩa của các từ khóa khai báo
- Vì sao không nên dùng Var
Ý nghĩa của các từ khóa khai báo
var: là cách khai báo từ trước đến nay của Javascript, việc khai báo var xem như biến trở thành ông vua. Phạm vi của var xem như phạm vi toàn cục hoặc phạm vi nằm trong 1 function. Ví dụ khi khai báo a phạm vi toàn cục thì có thể truy cập bất cứ đâu:
function declaration() {
console.log(a)
}
var a = 10
declaration()
let: là cách khai báo biến chỉ có thể truy cập trong block {} bọc nó, khác với var có thể truy cập xuyên suốt function chứa nó. Ví dụ a trong if và ngoài if vẫn là 2 biến khác nhau:
function declaration() {
let a = 10
if (a > 5) {
let a = 5
console.log(a)
}
console.log(a)
}
declaration()
const: biến khai báo const sẽ thành hằng số, phạm vi truy cập const tương tự let. Ví dụ:
function declaration() {
const a = 10
if (a > 5) {
const a = 5
console.log(a)
}
a = 6
}
declaration()
Lưu ý: nếu biến const là kiểu dữ liệu tham chiếu thì giá trị thật bên trong vẫn có thể thay đổi, trừ khi thay đổi địa chỉ tham chiếu sẽ báo lỗi
const a = []
a.push(1)
a.push(2)
a.push(3)
console.log(a)
a = []
Vì sao không nên dùng Var
Var là cách khai báo của Javascript từ xưa đến giờ, tuy nhiên trong phát triển phần mềm nó đã sinh ra những vấn đề lớn. Ví dụ:
var greeter = "Hi Kteam";
var flag = true;
if (flag) {
var greeter = "Hello Kteam";
}
console.log(greeter)
Vì phạm vị truy cập của var nằm khá lớn, nên trong phát triển phần mềm có khi ta gặp sai sót như đặt biến trùng tên thì có thể gặp sự cố đáng tiếc.
Hoặc khi sử dụng callback thì var có thể gặp 1 số vấn đề như sau:
for (var i = 0; i < 5; i++) {
setTimeout(function(){
console.log(i)
}, 1000)
}
Lúc này, callback sẽ lấy giá trị i cuối cùng của i vì đã kết thúc vòng lặp
Để khắc phục được tình trạng, ta sẽ thay thế dùng let, vì mỗi vòng lặp sẽ tạo ra 1 scope khác nhau:
for (let i = 0; i < 5; i++) {
setTimeout(function(){
console.log(i)
}, 1000)
}
let và const được ra đời từ Javascript ES6 để cải thiện vấn đề quản lý biến, mặc dù không hủy cách khai báo var nhưng khả năng của 2 tính năng mới giúp chúng ta không cần phải sử dụng var sau này nữa.
Kết
Như vậy Kteam đã giới thiệu về Var, Let và Const
Ở bài tiếp theo, Kteam sẽ giới thiệu cho các bạn Class trong Javascript
Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.
Tải xuống
Tài liệu
Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Var, Let và Const dưới dạng file PDF trong link bên dưới.
Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com
Đừng quên like và share để ủng hộ Kteam và tác giả nhé!

Thảo luận
Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.
Nội dung bài viết
Khóa học
Trong thời gian gần đây, JavaScript luôn là ngôn ngữ rất nhiều lập trình viên và sinh viên IT đang quan tâm và bàn tán vì tính linh hoạt, đa năng và cơ hội nghề nghiệp hấp dẫn mà ngôn ngữ này mang lại. Với sự phát triển nhanh các tính năng mới của JavaScript khiến nhiều người đang nghiên cứu cũng khó nhớ hết những tính năng và hiểu bản chất cụ thể của nó.
Thông qua khóa học SỔ TAY JAVASCRIPT, đây chỉ là những ghi chép mà Kteam tổng hợp như để có thể nghiên cứu lại khi cần thiết và giúp các bạn học hiểu được những tính năng JavaScript hiện nay.