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 số thành ngày
- Chuyển đổi Boolean thành số
- Chuyển đổi số thành 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 chức năng 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()
chuyển đổi một biến (hoặc một giá trị) thành một số.
Chuỗi số (như "3,14") chuyển đổi thành số (như 3,14).
Một chuỗi trống (như "") chuyển thành 0.
Một chuỗi không phải số (như "John") chuyển đổi thành NaN
(Không phải số).
Ví dụ
Những thứ này sẽ chuyển đổi:
Number("3.14")
Number(Math.PI)
Number(" ")
Number("")
Những thứ này sẽ không chuyển đổi:
Number("99 88")
Number("John")
Hãy tự mình thử »Phương pháp số
Trong chương Các Phương thức Số , bạn sẽ tìm thấy nhiều phương thức 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 |
Toán tử đơn nhất +
Toán tử + đơn nguyên có thể được sử dụng để chuyển đổi một biến thành số:
Nếu biến không thể chuyển đổi thì nó vẫn sẽ trở thành số, nhưng có giá trị NaN
(Không phải số):
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ố, chữ, biến hoặc biểu thức nào:
Ví 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
Hãy tự mình thử » Phương thức Number toString()
cũng làm như vậy.
Thêm phương pháp
Trong chương Các Phương thức Số , bạn sẽ tìm thấy nhiều phương thức 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ành số.
d = new Date();
Number(d) // returns 1404568027739
Phương thức ngày 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()
làm như vậy.
Ví dụ
Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
Trong chương Phương thức ngày tháng , bạn sẽ tìm thấy nhiều phương thức 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 số
Phương thức toàn cục Number()
cũng có thể chuyển đổi booleans 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 booleans 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 một loại dữ liệu "sai", nó sẽ cố gắng chuyển đổi giá trị thành loại "đú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
Hãy tự mình thử »Chuyển đổi chuỗi tự động
JavaScript tự động gọi hàm toString()
của biến 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 | Try it » |
true | 1 | "true" | true | Try it » |
0 | 0 | "0" | false | Try it » |
1 | 1 | "1" | true | Try it » |
"0" | 0 | "0" | true | Try it » |
"000" | 0 | "000" | true | Try it » |
"1" | 1 | "1" | true | Try it » |
NaN | NaN | "NaN" | false | Try it » |
Infinity | Infinity | "Infinity" | true | Try it » |
-Infinity | -Infinity | "-Infinity" | true | Try it » |
"" | 0 | "" | false | Try it » |
"20" | 20 | "20" | true | Try it » |
"twenty" | NaN | "twenty" | true | Try it » |
[ ] | 0 | "" | true | Try it » |
[20] | 20 | "20" | true | Try it » |
[10,20] | NaN | "10,20" | true | Try it » |
["twenty"] | NaN | "twenty" | true | Try it » |
["ten","twenty"] | NaN | "ten,twenty" | true | Try it » |
function(){} | NaN | "function(){}" | true | Try it » |
{ } | NaN | "[object Object]" | true | Try it » |
null | 0 | "null" | false | Try it » |
undefined | NaN | "undefined" | false | Try it » |
Giá trị trong dấu ngoặc kép biểu thị giá trị chuỗi.
Giá trị màu đỏ biểu thị các giá trị (một số) mà người lập trình có thể không mong đợi.