Type coercion là cơ chế JavaScript tự động ép kiểu dữ liệu từ kiểu này sang kiểu khác khi thực hiện các phép toán giữa các kiểu khác nhau.
Ví dụ dễ gặp:
"5" + 3 // "53" (ép số 3 thành chuỗi rồi nối chuỗi)
"5" - 3 // 2 (ép chuỗi "5" thành số rồi trừ)
true + 1 // 2 (ép true thành 1)Vì sự linh hoạt này, code có thể sinh ra kết quả bất ngờ (bug tiềm ẩn) nếu không kiểm soát tốt kiểu dữ liệu.
Cách phòng tránh:
- Luôn sử dụng === (strict equality) thay vì == để tránh ép kiểu ngầm định khi so sánh.
- Ép kiểu một cách tường minh (explicit) bằng Number(), String(), Boolean() khi cần thiết để code rõ ràng hơn.
Type coercion is JavaScript automatically converting types during operations.
Common examples:
- "5" + 3 -> "53" (string concatenation)
- "5" - 3 -> 2 (converted to number)
So you can get surprising results if types are unclear.
Safer approach: use === and explicit conversion with Number(), String(), Boolean().