Chuyển đổi loại JavaScript
- Chuyển đổi chuỗi thành số
- Chuyển đổi số thành chuỗi
- Chuyển đổi ngày thành số
- Chuyển đổi số thành ngày
- Chuyển đổi Boolean thành Numbers
- Chuyển đổi số sang Boolean
Chuyển đổi loại JavaScript
Các biến JavaScript có thể được chuyển đổi thành một biến mới và một kiểu dữ liệu khác:
- Bằng cách sử dụng một hàm JavaScript
- Tự động bằng chính JavaScript
Chuyển đổi chuỗi thành số
Phương thức toàn cục Number()
có thể chuyển đổi chuỗi thành số.
Các chuỗi chứa số (như "3,14") chuyển đổi thành số (như 3,14).
Chuỗi trống chuyển đổi thành 0.
Bất kỳ thứ gì khác chuyển đổi thành NaN
(Không phải số).
Number("3.14") // returns 3.14
Number(" ") // returns 0
Number("") // returns 0
Number("99 88") // returns NaN
Phương pháp số
Trong chương Phương pháp số , bạn sẽ tìm thấy nhiều phương pháp hơn có thể được sử dụng để chuyển đổi chuỗi thành số:
Method | Description |
---|---|
Number() | Returns a number, converted from its argument |
parseFloat() | Parses a string and returns a floating point number |
parseInt() | Parses a string and returns an integer |
The Unary + Operator
Toán tử một ngôi + có thể được sử dụng để chuyển đổi một biến thành một số:
Thí dụ
let y = "5";
// y is a string
let x = + y;
// x is a number
Nếu không thể chuyển đổi biến, nó vẫn sẽ trở thành một số, nhưng với giá trị NaN
(Không phải là một Số):
Thí dụ
let y = "John";
// y is a string
let x = + y; // x is a number (NaN)
Chuyển đổi số thành chuỗi
Phương thức toàn cục String()
có thể chuyển đổi số thành chuỗi.
Nó có thể được sử dụng trên bất kỳ loại số, ký tự, biến hoặc biểu thức nào:
Thí dụ
String(x) // returns a string from a number variable x
String(123) // returns a string from a number literal 123
String(100 + 23) // returns a string from a number from an expression
Phương pháp Số toString()
cũng làm như vậy.
Thí dụ
x.toString()
(123).toString()
(100 + 23).toString()
Nhiều phương pháp hơn
Trong chương Phương pháp Số , bạn sẽ tìm thấy nhiều phương pháp hơn có thể được sử dụng để chuyển đổi số thành chuỗi:
Method | Description |
---|---|
toExponential() | Returns a string, with a number rounded and written using exponential notation. |
toFixed() | Returns a string, with a number rounded and written with a specified number of decimals. |
toPrecision() | Returns a string, with a number written with a specified length |
Chuyển đổi ngày thành số
Phương thức toàn cục Number()
có thể được sử dụng để chuyển đổi ngày tháng sang số.
d = new Date();
Number(d) // returns 1404568027739
Phương pháp ngày tháng getTime()
cũng làm như vậy.
d = new Date();
d.getTime() // returns 1404568027739
Chuyển đổi ngày thành chuỗi
Phương thức toàn cục String()
có thể chuyển đổi ngày tháng thành chuỗi.
String(Date()) // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
Phương thức Date toString()
cũng làm như vậy.
Thí dụ
Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
Trong chương Phương pháp ngày tháng , bạn sẽ tìm thấy nhiều phương pháp hơn có thể được sử dụng để chuyển đổi ngày tháng thành chuỗi:
Method | Description |
---|---|
getDate() | Get the day as a number (1-31) |
getDay() | Get the weekday a number (0-6) |
getFullYear() | Get the four digit year (yyyy) |
getHours() | Get the hour (0-23) |
getMilliseconds() | Get the milliseconds (0-999) |
getMinutes() | Get the minutes (0-59) |
getMonth() | Get the month (0-11) |
getSeconds() | Get the seconds (0-59) |
getTime() | Get the time (milliseconds since January 1, 1970) |
Chuyển đổi Boolean thành Numbers
Phương thức toàn cục Number()
cũng có thể chuyển đổi boolean thành số.
Number(false) // returns 0
Number(true) // returns 1
Chuyển đổi Boolean thành chuỗi
Phương thức toàn cục String()
có thể chuyển đổi boolean thành chuỗi.
String(false) // returns "false"
String(true) // returns "true"
Phương thức Boolean toString()
cũng làm như vậy.
false.toString() // returns "false"
true.toString() // returns "true"
Chuyển đổi loại tự động
Khi JavaScript cố gắng hoạt động trên kiểu dữ liệu "sai", nó sẽ cố gắng chuyển đổi giá trị thành kiểu "đúng".
Kết quả không phải lúc nào cũng như bạn mong đợi:
5 + null // returns 5 because null is converted to 0
"5" + null // returns "5null" because null is converted to "null"
"5" + 2 // returns
"52" because 2 is converted to "2"
"5" - 2 // returns 3 because "5" is converted to 5
"5" * "2" // returns
10 because "5" and "2" are
converted to 5 and 2
Chuyển đổi chuỗi tự động
JavaScript tự động gọi hàm của biến toString()
khi bạn cố gắng "xuất" một đối tượng hoặc một biến:
document.getElementById("demo").innerHTML = myVar;
// if myVar = {name:"Fjohn"} // toString converts to "[object Object]"
// if myVar = [1,2,3,4] // toString converts to "1,2,3,4"
// if myVar = new Date() // toString converts to "Fri Jul 18 2014 09:08:55 GMT+0200"
Các số và boolean cũng được chuyển đổi, nhưng điều này không hiển thị rõ ràng:
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
Bảng chuyển đổi loại JavaScript
Bảng này hiển thị kết quả của việc chuyển đổi các giá trị JavaScript khác nhau thành Số, Chuỗi và Boolean:
Original Value |
Converted to Number |
Converted to String |
Converted to Boolean |
Try it |
---|---|---|---|---|
false | 0 | "false" | false | |
true | 1 | "true" | true | |
0 | 0 | "0" | false | |
1 | 1 | "1" | true | |
"0" | 0 | "0" | true | |
"000" | 0 | "000" | true | |
"1" | 1 | "1" | true | |
NaN | NaN | "NaN" | false | |
Infinity | Infinity | "Infinity" | true | |
-Infinity | -Infinity | "-Infinity" | true | |
"" | 0 | "" | false | |
"20" | 20 | "20" | true | |
"twenty" | NaN | "twenty" | true | |
[ ] | 0 | "" | true | |
[20] | 20 | "20" | true | |
[10,20] | NaN | "10,20" | true | |
["twenty"] | NaN | "twenty" | true | |
["ten","twenty"] | NaN | "ten,twenty" | true | |
function(){} | NaN | "function(){}" | true | |
{ } | NaN | "[object Object]" | true | |
null | 0 | "null" | false | |
undefined | NaN | "undefined" | false |
Giá trị trong dấu ngoặc kép cho biết giá trị chuỗi.
Giá trị màu đỏ cho biết giá trị (một số) người lập trình có thể không mong đợi.