1.1 Ép kiểu tường minh
Ép kiểu trong JavaScript là quá trình chuyển đổi giá trị từ một kiểu dữ liệu sang kiểu dữ liệu khác. Có hai loại ép kiểu: ép kiểu tường minh (thủ công) và ép kiểu ngầm định (tự động). Hiểu rõ các quá trình này quan trọng để tránh lỗi và tạo ra mã dễ đoán.
Ép kiểu tường minh, còn gọi là ép kiểu thủ công, được thực hiện bằng cách sử dụng các hàm và phương thức tích hợp của JavaScript. Đây là kiểu ép mà lập trình viên rõ ràng chỉ định kiểu dữ liệu nào nên được chuyển đổi sang kiểu khác.
Các phương thức chính của ép kiểu tường minh:
1. Ép kiểu sang chuỗi
- Phương thức
String(value)
: chuyển đổi giá trị sang chuỗi
let num = 123;
let str = String(num);
console.log(typeof str); // "string"
value.toString()
: phương thức của đối tượng, chuyển đổi giá trị sang chuỗi
let bool = true;
let str = bool.toString();
console.log(typeof str); // "string"
2. Ép kiểu sang số
Number(value)
: chuyển đổi giá trị sang số
let str = "456";
let num = Number(str);
console.log(typeof num); // "number"
parseInt(value, base)
: chuyển đổi chuỗi sang số nguyên. Tham sốbase
chỉ định cơ số hệ số
let str = "123";
let num = parseInt(str, 10);
console.log(typeof num); // "number"
parseFloat(value)
: chuyển đổi chuỗi sang số thập phân
let str = "123.45";
let num = parseFloat(str);
console.log(typeof num); // "number"
3. Ép kiểu sang boolean
Boolean(value)
: chuyển đổi giá trị sang boolean
let str = "";
let bool = Boolean(str);
console.log(typeof bool); // "boolean"
1.2 Ép kiểu ngầm định
Ép kiểu ngầm định, còn được gọi là tự động hoặc ẩn, được thực hiện bởi JavaScript tự động khi thực hiện các phép toán với các kiểu dữ liệu khác nhau. Ép kiểu ngầm định có thể dẫn đến kết quả không mong muốn, vì vậy cần hiểu và sử dụng cẩn thận.
1. Ép kiểu sang chuỗi
Khi cộng bất kỳ đối tượng nào với chuỗi, JavaScript sẽ cố gắng chuyển đổi nó thành chuỗi.
Ví dụ:
let result = "The number is " + 123;
console.log(result); // "The number is 123"
2. Ép kiểu sang số
Khi sử dụng bất kỳ toán tử số học nào (ngoại trừ +) với chuỗi chứa số.
let result = "123" - 0;
console.log(result); // 123 (số)
Cách nó hoạt động trong thực tế:
let result = "123" - 10;
console.log(result); // 113 (số)
let result2 = "123" + 10;
console.log(result2); // 12310 (chuỗi)
3. Ép kiểu sang boolean
Khi sử dụng giá trị trong ngữ cảnh logic (toán tử điều kiện, vòng lặp, v.v.).
let value = "hello";
if (value) {
console.log("Value is truthy"); // Kết quả: "Value is truthy"
}
Ví dụ về chuyển đổi trong ngữ cảnh logic:
false
,0
,""
(chuỗi rỗng),null
,undefined
, vàNaN
được xem là giá trị sai (false
)- Tất cả các giá trị khác được xem là giá trị đúng (
true
)
if ("") {
console.log("This won't be logged.");
} else {
console.log('"" is considered false in a boolean context.');
}
// '"" is considered false in a boolean context.'
1.3 Ví dụ về ép kiểu ngầm định
Ví dụ với phép toán số học:
let width = "100";
let height = "200";
let area = Number(width) * Number(height); // Ép kiểu tường minh
console.log(area); // 20000
let perimeter = (+width) + (+height); // Sử dụng dấu cộng đơn để ép kiểu tường minh
console.log(perimeter); // 300
Ví dụ với ngữ cảnh logic:
let userInput = ""; // Chuỗi rỗng
if (!userInput) {
console.log("Người dùng không nhập dữ liệu."); // Ép kiểu ngầm định từ chuỗi sang boolean
}
Ví dụ với kiểu kết hợp:
let value = "10";
let increment = 5;
let result = value + increment; // Ép kiểu ngầm định từ số sang chuỗi
console.log(result); // "105"
result = Number(value) + increment; // Ép kiểu tường minh từ chuỗi sang số
console.log(result); // 15
GO TO FULL VERSION