Trong hướng dẫn này, bạn sẽ tìm hiểu về chuyển đổi kiểu trong JavaScript với sự trợ giúp của các ví dụ.
Trong lập trình, chuyển đổi kiểu là quá trình chuyển đổi dữ liệu từ kiểu này sang kiểu khác. Ví dụ: chuyển đổi String
dữ liệu sang Number
.
Có hai loại chuyển đổi kiểu trong JavaScript.
- Implicit Conversion – automatic type conversion
- Explicit Conversion – manual type conversion
Chuyển đổi ngầm định của JavaScript
Trong một số tình huống nhất định, JavaScript tự động chuyển đổi kiểu dữ liệu này sang kiểu dữ liệu khác (thành kiểu phù hợp). Đây được gọi là chuyển đổi ngầm định.
Ví dụ 1: Chuyển đổi ngầm định thành chuỗi
// numeric string used with + gives string type
let result;
result = '3' + 2;
console.log(result) // "32"
result = '3' + true;
console.log(result); // "3true"
result = '3' + undefined;
console.log(result); // "3undefined"
result = '3' + null;
console.log(result); // "3null"
Lưu ý : Khi một số được thêm vào một chuỗi, JavaScript sẽ chuyển đổi số đó thành một chuỗi trước khi nối.
Ví dụ 2: Chuyển đổi ngầm định thành số
// numeric string used with - , / , * results number type
let result;
result = '4' - '2';
console.log(result); // 2
result = '4' - 2;
console.log(result); // 2
result = '4' * 2;
console.log(result); // 8
result = '4' / 2;
console.log(result); // 2
Ví dụ 3: Kết quả chuỗi không phải số đến NaN
// non-numeric string used with - , / , * results to NaN
let result;
result = 'hello' - 'world';
console.log(result); // NaN
result = '4' - 'hello';
console.log(result); // NaN
Ví dụ 4: Chuyển đổi Boolean Ngầm định thành Số
// if boolean is used, true is 1, false is 0
let result;
result = '4' - true;
console.log(result); // 3
result = 4 + true;
console.log(result); // 5
result = 4 + false;
console.log(result); // 4
Lưu ý: JavaScript coi 0 là false
và tất cả các số khác 0 là true
. Và, nếu true
được chuyển đổi thành một số, kết quả luôn là 1.
Ví dụ 5: Chuyển đổi null thành Số
// null is 0 when used with number
let result;
result = 4 + null;
console.log(result); // 4
result = 4 - null;
console.log(result); // 4
Ví dụ 6: undefined được sử dụng với number, boolean hoặc null
// Arithmetic operation of undefined with number, boolean or null gives NaN
let result;
result = 4 + undefined;
console.log(result); // NaN
result = 4 - undefined;
console.log(result); // NaN
result = true + undefined;
console.log(result); // NaN
result = null + undefined;
console.log(result); // NaN
Chuyển đổi rõ ràng JavaScript
Bạn cũng có thể chuyển đổi kiểu dữ liệu này sang kiểu dữ liệu khác theo nhu cầu của mình. Chuyển đổi loại mà bạn thực hiện theo cách thủ công được gọi là chuyển đổi loại rõ ràng.
Trong JavaScript, các chuyển đổi kiểu rõ ràng được thực hiện bằng các phương pháp tích hợp sẵn.
Dưới đây là một số phương pháp chuyển đổi rõ ràng phổ biến.
1. Chuyển đổi thành số một cách rõ ràng
Để chuyển đổi chuỗi số và giá trị boolean thành số, bạn có thể sử dụng Number()
. Ví dụ,
let result;
// string to number
result = Number('324');
console.log(result); // 324
result = Number('324e-1')
console.log(result); // 32.4
// boolean to number
result = Number(true);
console.log(result); // 1
result = Number(false);
console.log(result); // 0
Trong JavaScript, các chuỗi và null
giá trị trống trả về 0 . Ví dụ,
let result;
result = Number(null);
console.log(result); // 0
let result = Number(' ')
console.log(result); // 0
Nếu một chuỗi là một số không hợp lệ, kết quả sẽ là NaN
. Ví dụ,
let result;
result = Number('hello');
console.log(result); // NaN
result = Number(undefined);
console.log(result); // NaN
result = Number(NaN);
console.log(result); // NaN
Lưu ý : Bạn cũng có thể tạo ra các số từ chuỗi sử dụng parseInt()
, parseFloat()
, điều hành unary +
và Math.floor()
. Ví dụ,
let result;
result = parseInt('20.01');
console.log(result); // 20
result = parseFloat('20.01');
console.log(result); // 20.01
result = +'20.01';
console.log(result); // 20.01
result = Math.floor('20.01');
console.log(result); // 20
2. Chuyển đổi thành chuỗi một cách rõ ràng
Để chuyển đổi các kiểu dữ liệu khác thành chuỗi, bạn có thể sử dụng String()
hoặc toString()
. Ví dụ,
//number to string
let result;
result = String(324);
console.log(result); // "324"
result = String(2 + 4);
console.log(result); // "6"
//other data types to string
result = String(null);
console.log(result); // "null"
result = String(undefined);
console.log(result); // "undefined"
result = String(NaN);
console.log(result); // "NaN"
result = String(true);
console.log(result); // "true"
result = String(false);
console.log(result); // "false"
// using toString()
result = (324).toString();
console.log(result); // "324"
result = true.toString();
console.log(result); // "true"
Lưu ý : String()
mất null
và undefined
và chuyển đổi chúng thành chuỗi. Tuy nhiên, toString()
đưa ra lỗi khinull are passed.
3. Chuyển đổi sang Boolean một cách rõ ràng
Để chuyển đổi các kiểu dữ liệu khác thành boolean, bạn có thể sử dụng Boolean().
Trong JavaScript, undefined
, null
, 0
, NaN
, ''
cải để false
. Ví dụ,
let result;
result = Boolean('');
console.log(result); // false
result = Boolean(0);
console.log(result); // false
result = Boolean(undefined);
console.log(result); // false
result = Boolean(null);
console.log(result); // false
result = Boolean(NaN);
console.log(result); // false
Tất cả các giá trị khác cho true
. Ví dụ,
result = Boolean(324);
console.log(result); // true
result = Boolean('hello');
console.log(result); // true
result = Boolean(' ');
console.log(result); // true
Bảng chuyển đổi loại JavaScript
Bảng hiển thị việc chuyển đổi các giá trị khác nhau thành Chuỗi, Số và Boolean trong JavaScript.
Value | String Conversion | Number Conversion | Boolean Conversion |
1 | “1” | 1 | true |
0 | “0” | 0 | false |
“1” | “1” | 1 | true |
“0” | "0" | 0 | true |
“ten” | "ten" | NaN | true |
true | “true” | 1 | true |
false | “false” | 0 | false |
null | “null” | 0 | false |
undefined | “undefined” | NaN | false |
” | “” | 0 | false |
‘ ‘ | ” “ | 0 | true |
Bạn sẽ tìm hiểu về việc chuyển đổi các đối tượng và mảng sang các kiểu dữ liệu khác trong các bài hướng dẫn sau.