JavaScript có 7 kiểu nguyên thủy, và mọi thứ khác (mảng, hàm, object) đều là object.
Các kiểu nguyên thủy: , , , , , , .
JavaScript có 7 kiểu nguyên thủy, và mọi thứ khác (mảng, hàm, object) đều là object.
Các kiểu nguyên thủy: , , , , , , .
stringnumberbooleannullundefinedbigintsymboltypeof "hi"; // "string"
typeof 42; // "number" (cả số nguyên và số thực)
typeof true; // "boolean"
typeof undefined; // "undefined"
typeof 10n; // "bigint"
typeof Symbol(); // "symbol"
typeof null; // "object" ← lỗi lịch sử nổi tiếng!
typeof {}; // "object"
typeof []; // "object" (mảng là object)
typeof function(){};// "function"
1. Kiểu nguyên thủy là bất biến và được sao chép theo giá trị; object được sao chép theo tham chiếu.
let a = 5; let b = a; b++; // a vẫn là 5 (bản sao độc lập)
let x = {n:1}; let y = x; y.n = 2; // x.n giờ là 2 (cùng một object!)
2. typeof null === "object" là một lỗi tồn tại lâu đời trong ngôn ngữ mà bạn phải nhớ — để kiểm tra null, hãy so sánh trực tiếp (x === null).
Hiểu được giá trị-so-với-tham-chiếu giải thích vì sao việc thay đổi một object dùng chung lại ảnh hưởng đến "cả hai" biến, vì sao {} === {} là false, và vì sao bạn phải sao chép object (spread) trước khi thay đổi chúng trong các UI điều khiển bởi state như React.
Thư viện câu hỏi phỏng vấn IT với đáp án chi tiết — từ Junior đến Senior.
Ủng hộ