Biến Và Kiểu Dữ Liệu Trong JavaScript: Hướng Dẫn Đầy Đủ Cho Web Developer
Tìm hiểu chi tiết về biến và kiểu dữ liệu trong JavaScript, bao gồm var, let, const và các kiểu dữ liệu phổ biến, kèm ví dụ thực tế.

Biến và kiểu dữ liệu trong JavaScript: Kiến thức nền tảng mọi web developer phải nắm
Trong hành trình trở thành một web developer chuyên nghiệp, việc hiểu rõ biến và kiểu dữ liệu trong JavaScript là cực kỳ quan trọng. Đây là nền tảng để bạn nắm vững logic, xử lý dữ liệu, làm việc với API, framework và viết ứng dụng web hoàn chỉnh.
Nếu bạn đang tìm kiếm một hướng dẫn chi tiết, dễ hiểu và tối ưu SEO cho chủ đề “Biến và kiểu dữ liệu” — bài viết này chính là dành cho bạn.
1. Biến là gì?
Biến (variable) là một khái niệm dùng để lưu trữ giá trị để có thể tái sử dụng trong chương trình. Bạn có thể gán, thay đổi hoặc đọc giá trị của biến bất cứ lúc nào trong quá trình chạy code.
Trong JavaScript, có 3 cách khai báo biến:
varletconst
1.1 Sự khác nhau giữa var, let và const
| Từ khóa | Phạm vi (Scope) | Có thể gán lại? | Hoisting | Ghi chú |
|---|---|---|---|---|
var | function scope | ✔ Có | ✔ Có (undefined) | Tránh dùng nếu có thể |
let | block scope | ✔ Có | ✔ Có (but not initialized) | Dùng phổ biến nhất |
const | block scope | ✘ Không | ✔ Có (but not initialized) | Dùng cho giá trị không đổi |
Ví dụ:
let age = 20;
age = 21; // hợp lệ
const PI = 3.14;
PI = 3.15; // ❌ lỗi: không thể gán lại2. Kiểu dữ liệu là gì?
Kiểu dữ liệu (data types) là dạng của giá trị được lưu trong biến. JavaScript là ngôn ngữ dynamic type — nghĩa là kiểu dữ liệu được xác định khi code chạy, không phải khi viết code.
JavaScript gồm hai nhóm chính:
- Primitive types (dữ liệu nguyên thủy)
- Non‑primitive types (dữ liệu tham chiếu)
2.1 Các kiểu dữ liệu nguyên thủy (Primitive Types)
2.1.1 Number
Dùng cho cả số nguyên và số thực.
let price = 12000;
let pi = 3.14159;2.1.2 String
Chuỗi ký tự, được đặt trong '', "" hoặc `.
let name = "Phạm Thành Nam";2.1.3 Boolean
Kiểu đúng/sai: true hoặc false.
let isActive = true;2.1.4 Null
Giá trị rỗng có chủ đích.
let car = null;2.1.5 Undefined
Biến được khai báo nhưng chưa gán giá trị.
let x;
console.log(x); // undefined2.1.6 Symbol
Dùng để tạo identifier duy nhất (ít dùng với người mới).
2.1.7 BigInt
Dùng cho số nguyên lớn hơn giới hạn của Number.
let big = 9007199254740991n;2.2 Các kiểu dữ liệu tham chiếu (Non‑Primitive Types)
- Object
- Array
- Function
- Date
- Map/Set, v.v.
Ví dụ Object
const user = {
name: "Nam",
age: 24,
};Ví dụ Array
const numbers = [1, 2, 3, 4, 5];Ví dụ Function
function sum(a, b) {
return a + b;
}3. Cách kiểm tra kiểu dữ liệu
JavaScript cung cấp từ khóa typeof:
typeof 123; // "number"
typeof "hello"; // "string"
typeof true; // "boolean"
typeof undefined; // "undefined"
typeof {}; // "object"
typeof []; // "object" (đây là điểm cần chú ý)
typeof null; // "object" (lỗi lịch sử của JS)Để kiểm tra Array chính xác:
Array.isArray([]);4. Sự khác nhau giữa kiểu nguyên thủy và tham chiếu
4.1 Dữ liệu nguyên thủy — lưu theo giá trị (by value)
let a = 10;
let b = a;
a = 20;
console.log(b); // 10 (không đổi)4.2 Dữ liệu tham chiếu — lưu theo địa chỉ (by reference)
const obj1 = { name: "Nam" };
const obj2 = obj1;
obj1.name = "PTN";
console.log(obj2.name); // "PTN" (cùng thay đổi)5. Tại sao cần hiểu kỹ “Biến và kiểu dữ liệu”?
- Tránh bug khó hiểu
- Viết code tối ưu hơn
- Hiểu cách hoạt động của framework (React, Node.js…)
- Làm việc với API hiệu quả
- Tối ưu performance, memory
- Dễ debug
6. Những lỗi thường gặp khi làm việc với biến và kiểu dữ liệu
6.1 Quên dùng let/const → tạo biến global
x = 10; // ❌ rất nguy hiểm6.2 Nhầm lẫn giữa null và undefined
null→ chủ động “không có gì”undefined→ chưa được gán
6.3 Dùng var dẫn đến hoisting không mong muốn
console.log(a); // undefined
var a = 5;6.4 Dùng == thay vì ===
== có ép kiểu (coercion) → dễ lỗi=== so sánh đúng cả kiểu và giá trị → an toàn
0 == "0"; // true
0 === "0"; // false7. Ví dụ thực tế: Validate form bằng biến và kiểu dữ liệu
function validateForm(data) {
if (typeof data.username !== "string" || data.username.length < 3) {
return false;
}
if (typeof data.age !== "number" || data.age < 18) {
return false;
}
return true;
}
console.log(
validateForm({ username: "Nam", age: 24 })
);8. Checklist học “Biến và kiểu dữ liệu” cho người mới
- Hiểu var/let/const
- Biết cách phân biệt null & undefined
- Thuộc 7 primitive types
- Hiểu object, array, function
- Biết dùng typeof và Array.isArray
- Hiểu cơ chế copy value vs reference
9. Kết luận
Chủ đề biến và kiểu dữ liệu là một trong những phần quan trọng nhất khi học JavaScript. Chỉ khi nắm chắc nền tảng này, bạn mới có thể tiếp tục học sâu hơn về DOM, async, API, framework, Node.js và xây dựng ứng dụng thực tế.
Nếu bạn muốn mình viết tiếp chuỗi chủ đề JavaScript cơ bản — như toán tử, function, scope, closure, async/await — chỉ cần nhắn mình nhé!