Skip to main content

Kiểu dữ liệu

Types (Kiểu dữ liệu)​

Primitives​

Khi làm việc với kiểu primitive, bạn thao tác trực tiếp trên giá trị.

  • string, number, boolean, null, undefined, symbol, bigint
const foo = 1;
let bar = foo;
bar = 9;
console.log(foo, bar); // => 1, 9

symbol và bigint không thể được polyfill một cách đầy đủ/chính xác, vì vậy không nên sử dụng chúng khi target các trình duyệt hoặc môi trường không hỗ trợ native.

Complex​

Với kiểu phức tạp (object, array, function), bạn thao tác trên reference (tham chiếu).

const foo = [1, 2];
const bar = foo;
bar[0] = 9;
console.log(foo[0], bar[0]); // => 9, 9

References (Tham chiếu)​

Dùng const cho mọi reference; tránh var​

Đảm bảo không gán lại reference, tránh bug và code khó hiểu.

// ❌ Tránh
var a = 1;
var b = 2;

// ✅ Tốt
const a = 1;
const b = 2;

Cần gán lại thì dùng let, không dùng var​

let có phạm vi block, var là function-scoped.

// ❌ Tránh
var count = 1;
if (true) {
count += 1;
}

// ✅ Tốt
let count = 1;
if (true) {
count += 1;
}

let và const là block-scoped​

var là function-scoped; let/const chỉ tồn tại trong block được khai báo.

{
let a = 1;
const b = 1;
var c = 1;
}
console.log(a); // ReferenceError
console.log(b); // ReferenceError
console.log(c); // 1