Ép kiểu ngầm (implicit type coercion) trong JavaScript là gì?
Ép kiểu ngầm (implicit type coercion) trong JavaScript là gì?
Ép kiểu ngầm (implicit type coercion) trong JavaScript là quá trình tự động hoặc ngầm định chuyển đổi giá trị từ một kiểu dữ liệu này sang kiểu dữ liệu khác, như từ chuỗi sang số[1]. Điều này thường xảy ra khi bạn áp dụng các toán tử cho các giá trị có kiểu khác nhau hoặc khi giá trị được sử dụng trong một ngữ cảnh cụ thể mà ở đó kiểu dữ liệu cần phải được chuyển đổi
Ví dụ về ép kiểu ngầm:
const value1 = "5";
const value2 = 9;
let sum = value1 + value2;
console.log(sum); // Kết quả là "59"
Trong ví dụ trên, JavaScript đã tự động chuyển đổi số 9 thành một chuỗi và sau đó nối hai giá trị lại với nhau, kết quả là một chuỗi "59". JavaScript đã có thể chọn chuyển đổi chuỗi "5" thành một số và trả về tổng là 14, nhưng nó không làm vậy. Để có kết quả này, bạn cần phải chuyển đổi rõ ràng "5" thành một số bằng cách sử dụng phương thức Number()
Có ba loại chuyển đổi trong JavaScript:
Chuyển đổi cho các giá trị nguyên thủy và đối tượng hoạt động khác nhau. Ví dụ, chuyển đổi một đối tượng thành một giá trị nguyên thủy sẽ diễn ra thông qua phương thức nội bộ [[ToPrimitive]]
của đối tượng đó
Một số quy tắc chuyển đổi ngầm định:
+
với một số và một chuỗi, số sẽ được chuyển đổi thành chuỗi và sau đó thực hiện nối chuỗi||
, &&
, !
), giá trị sẽ được chuyển đổi ngầm định sang boolean==
thực hiện cả so sánh và ép kiểu ngầm định nếu cần thiết, trong khi toán tử bằng chặt ===
không thực hiện ép kiểu và chỉ trả về true
nếu cả kiểu và giá trị của hai biến là giống nhauÉp kiểu ngầm có thể hữu ích nhưng cũng có thể gây ra những lỗi không mong muốn, đặc biệt là khi so sánh các giá trị với toán tử bằng lỏng lẻo. Do đó, việc sử dụng toán tử bằng chặt được khuyến nghị để tránh những hành vi không mong muốn này
junior
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào