Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Các kiểu dữ liệu nguyên thủy (Primitive) trong JavaScript

JavaScript có 7 kiểu dữ liệu nguyên thủy (primitive) – là các giá trị bất biến, không phải object, không có phương thức riêng (nhưng JS tự động wrap tạm khi truy cập property/method).

Danh sách 7 kiểu Primitive

1. String (Chuỗi)

Dãy ký tự Unicode. Viết trong dấu nháy đơn, kép hoặc backtick.

"Hello World"
'JavaScript'
`Template literal: ${bien}`

2. Number (Số)

Số thực 64-bit (IEEE 754). Bao gồm integer, float, NaN, Infinity.

42, 3.14, -10, 1e5, NaN, Infinity

3. BigInt (Số nguyên lớn - ES2020)

Số nguyên độ chính xác tùy ý, thêm hậu tố n.

9007199254740991n
123n + 456n // 579n

4. Boolean (Logic)

Chỉ 2 giá trị: true (đúng) và false (sai).

true
false

5. Undefined (Chưa định nghĩa)

Biến đã khai báo nhưng chưa gán giá trị. Giá trị mặc định của tham số không truyền, property không tồn tại.


let x;
console.log(x); // undefined

6. Null (Rỗng)

Giá trị rỗng được gán chủ động. Kiểu typeof null === "object" là bug lịch sử của JS.


let y = null;
console.log(y); // null

7. Symbol (Duy nhất - ES6)

Giá trị duy nhất, không thể trùng lặp. Dùng làm key object riêng tư.


const id = Symbol('id');
const id2 = Symbol('id');
console.log(id === id2); // false

Bảng so sánh nhanh

KiểutypeofMutable?So sánh
String"string"KhôngGiá trị
Number"number"KhôngGiá trị
BigInt"bigint"KhôngGiá trị
Boolean"boolean"KhôngGiá trị
Undefined"undefined"KhôngGiá trị
Null"object" ⚠️KhôngGiá trị
Symbol"symbol"KhôngGiá trị

Primitive vs Object Wrapper


// Primitive
"hello".length; // 5 - JS tự wrap tạm String object

// Object wrapper (KHÔNG KHUYẾN NGHỊ)
new String("hello"); // Object, typeof = "object"
typeof "hello" === typeof new String("hello"); // false

Lưu ý quan trọng

  • Primitive được truyền theo giá trị (copy).
  • Không thể thêm property vào primitive: "a".prop = 1 không báo lỗi nhưng "a".prop là undefined.
  • null và undefined không có wrapper object.
  • Dùng Object(value) để bọc primitive thành object nếu cần (hiếm).