Cơ bảnKiến thức cơ bản

Biến trong JavaScript: var, let, const khác nhau gì?

8 phút đọc0 lượt xem
#biến javascript#var let const#javascript cơ bản#es6 javascript#scope javascript

Biến trong JavaScript: var, let, const khác nhau gì?

Khi học JavaScript, bạn sẽ gặp 3 cách khai báo biến: var, let, và const. Dùng cái nào? Khác nhau ở đâu? Bài viết này giải thích tất cả.

Biến trong JavaScript là gì?

var ten = "Minh";       // Cách cũ (ES5) — Không khuyến nghị
let tuoi = 22;          // Cách mới (ES6) — Nên dùng
const PI = 3.14159;     // Hằng số — Dùng mặc định

var — Vấn đề của cách cũ

// var có function scope — Gây bug!
function viDu() {
    var x = 10;
    if (true) {
        var x = 20;    // Cùng biến x — bị ghi đè!
    }
    console.log(x);    // 20 (không phải 10 như mong đợi)
}

// Hoisting — khai báo trước dùng không báo lỗi
console.log(ten);    // undefined (không lỗi — dễ gây nhầm)
var ten = "Minh";

let — Biến hiện đại (Khuyến nghị)

// let có block scope — An toàn hơn
function viDu() {
    let x = 10;
    if (true) {
        let x = 20;    // Biến x KHÁC trong block này
    }
    console.log(x);    // 10 (không bị ảnh hưởng!)
}

let diem = 8.0;
diem = 8.5;    // OK — có thể gán lại

const — Hằng số

const PI = 3.14159;
PI = 3;    // TypeError!

// Object/Array: có thể thay đổi nội dung
const sinh_vien = { ten: "Minh", tuoi: 22 };
sinh_vien.tuoi = 23;    // OK!
sinh_vien = {};          // TypeError!

So sánh var vs let vs const

varletconst
ScopeFunctionBlockBlock
HoistingCó (undefined)KhôngKhông
Gán lạiĐượcĐượcKhông
Khi nào dùngKhông bao giờGiá trị thay đổiMặc định

Template Literals (ES6)

const ten = "Lan";
const tuoi = 20;

// Cách cũ
const info1 = "Tôi là " + ten + ", " + tuoi + " tuổi";

// Template literal — rõ hơn
const info2 = `Tôi là ${ten}, ${tuoi} tuổi`;

Kết luận

Quy tắc đơn giản: dùng const mặc định, let khi cần thay đổi, không bao giờ dùng var.

Về tác giả

Ảnh đại diện tác giả Kenji — họa tiết hình học

Kenji

Kỹ sư phần mềm full-stack (Web), hơn 5 năm kinh nghiệm thực tế

  • Python
  • DB
  • Hạ tầng
  • Đào tạo & cố vấn
  • AI

Làm việc cùng đồng nghiệp người Việt, tôi thấy thiếu tài liệu kỹ thuật rõ ràng bằng tiếng Việt. codeahoc là nơi tôi chia sẻ theo hướng thực tế, dễ áp dụng.

Nguyên tắc nội dung

  • Ưu tiên nguồn gốc và góc nhìn từ thực tế triển khai.
  • Nếu có sai sót, nội dung sẽ được cập nhật và sửa kịp thời.

Khóa học liên quan

The Complete JavaScript Course 2026: From Zero to Expert!

Khóa học JavaScript toàn diện nhất từ cơ bản đến nâng cao.

4.7499.000 ₫
Xem khóa học →

React - The Complete Guide (incl. React Router & Redux)

Làm chủ React.js với các dự án thực tế, hooks, Redux.

4.6499.000 ₫
Xem khóa học →

Node.js, Express, MongoDB & More: The Complete Bootcamp

Backend với Node.js: REST API, authentication, MongoDB.

4.7499.000 ₫
Xem khóa học →
Quảng cáo