Biến và Kiểu Dữ Liệu trong JavaScript
Biến (variable) là khái niệm quan trọng trong mọi ngôn ngữ lập trình, giúp lưu trữ và thao tác dữ liệu. JavaScript cung cấp nhiều kiểu dữ liệu khác nhau để xử lý thông tin một cách linh hoạt.
Trong bài học này, chúng ta sẽ tìm hiểu:
- Cách khai báo biến bằng var, let, const và sự khác nhau giữa chúng.
- Các kiểu dữ liệu nguyên thủy như Number, String, Boolean, Null, Undefined, Symbol, BigInt.
- Các kiểu dữ liệu tham chiếu như Object, Array, Function.
- Cách kiểm tra kiểu dữ liệu bằng typeof.

Biến và Kiểu Dữ Liệu trong JavaScript
1. Giới thiệu về biến: var
, let
, const
Trong JavaScript, biến được khai báo bằng var
, let
, hoặc const
.
Sử dụng var
(cách cũ, không nên dùng nữa)
-
var
có phạm vi function scope (tồn tại trong toàn bộ function chứa nó). - Có thể khai báo lại trong cùng một phạm vi.
- Có hoisting (di chuyển khai báo biến lên đầu phạm vi).
Ví dụ với var
var name = "Alice";
console.log(name); // Alice
var name = "Bob"; // Không lỗi khi khai báo lại
console.log(name); // Bob
Hạn chế của var
:
- Có thể khai báo lại, dễ gây lỗi logic.
- Không có block scope, dẫn đến lỗi khi dùng trong vòng lặp.
Sử dụng let
(nên dùng)
-
let
có phạm vi block scope (chỉ tồn tại trong cặp{}
chứa nó). - Không thể khai báo lại trong cùng một phạm vi.
- Có thể gán lại giá trị.
Ví dụ với let
let age = 25;
console.log(age); // 25
age = 30; // Được phép gán lại giá trị
console.log(age); // 30
// let age = 35; Lỗi: Không thể khai báo lại biến đã tồn tại
Ưu điểm của let
:
- An toàn hơn
var
vì không thể khai báo lại trong cùng một phạm vi. - Có block scope giúp tránh lỗi khi sử dụng trong vòng lặp.
Sử dụng const
(dùng cho giá trị không đổi)
-
const
có phạm vi block scope nhưlet
. - Không thể gán lại giá trị sau khi khai báo.
Ví dụ với const
const pi = 3.14;
console.log(pi); // 3.14
// pi = 3.1415; Lỗi: Không thể gán lại giá trị cho biến const
Khi nào dùng const
?
- Khi bạn chắc chắn giá trị không thay đổi, như hằng số.
- Khi khai báo mảng, đối tượng, nhưng có thể thay đổi nội dung bên trong.
Ví dụ với const
chứa mảng hoặc đối tượng
const numbers = [1, 2, 3];
numbers.push(4); // Hợp lệ vì thay đổi nội dung bên trong
console.log(numbers); // [1, 2, 3, 4]
// numbers = [5, 6, 7]; Lỗi: Không thể gán lại toàn bộ mảng
Tóm tắt sự khác nhau
Loại biến | Phạm vi | Có thể khai báo lại? | Có thể gán lại giá trị? |
---|---|---|---|
var |
Function scope | Có | Có |
let |
Block scope | Không | Có |
const |
Block scope | Không | Không |
2. Kiểu dữ liệu nguyên thủy trong JavaScript
JavaScript có 7 kiểu dữ liệu nguyên thủy (Primitive Types):
Kiểu dữ liệu | Mô tả | Ví dụ |
---|---|---|
Number | Số nguyên, số thực | let x = 10; |
String | Chuỗi ký tự | let name = "Alice"; |
Boolean | Giá trị đúng/sai | let isStudent = true; |
Null | Giá trị rỗng | let a = null; |
Undefined | Biến chưa có giá trị | let b; |
Symbol | Giá trị duy nhất, tránh trùng lặp | let sym = Symbol('id'); |
BigInt | Số lớn hơn 2^53-1 | let big = 12345678901234567890n; |
Ví dụ minh họa
let num = 42; // Number
let str = "Hello"; // String
let isTrue = true; // Boolean
let empty = null; // Null
let notDefined; // Undefined
let uniqueId = Symbol("id"); // Symbol
let bigNumber = 9007199254740991n; // BigInt
3. Kiểu dữ liệu tham chiếu (Reference Types)
Các kiểu dữ liệu tham chiếu gồm Object, Array, Function, lưu trữ tham chiếu đến giá trị thay vì giá trị trực tiếp.
1. Object (Đối tượng)
let person = { name: "Alice", age: 25 };
console.log(person.name); // Alice
2. Array (Mảng)
let numbers = [1, 2, 3, 4];
console.log(numbers[0]); // 1
3. Function (Hàm)
function greet() {
return "Hello!";
}
console.log(greet()); // Hello!
Lưu ý quan trọng:
- Biến chứa giá trị nguyên thủy lưu trực tiếp giá trị.
- Biến chứa giá trị tham chiếu lưu địa chỉ tham chiếu đến vùng nhớ.
Ví dụ: Tham chiếu trong Object
let obj1 = { name: "Alice" };
let obj2 = obj1;
obj2.name = "Bob";
console.log(obj1.name); // Bob (do obj1 và obj2 cùng tham chiếu đến một vùng nhớ)
4. Kiểm tra kiểu dữ liệu với typeof
typeof
giúp kiểm tra kiểu dữ liệu của biến:
console.log(typeof 42); // "number"
console.log(typeof "Hello"); // "string"
console.log(typeof true); // "boolean"
console.log(typeof {}); // "object"
console.log(typeof []); // "object" (mảng cũng là object)
console.log(typeof function(){}); // "function"
console.log(typeof null); // "object" (đây là lỗi của JavaScript)
console.log(typeof undefined); // "undefined"
Kết luận
- Biến trong JavaScript có thể khai báo bằng
var
,let
,const
, trong đólet
vàconst
được ưu tiên hơn. - JavaScript có 7 kiểu dữ liệu nguyên thủy và 3 kiểu tham chiếu.
- Dùng
typeof
để kiểm tra kiểu dữ liệu.

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com