Chuyển đổi loại JavaScript
- Trang trước JS typeof
- Trang tiếp theo Giải cấu trúc JS
Number()
Chuyển đổi số,String()
Chuyển đổi chuỗi,Boolean()
Chuyển đổi giá trị Boole.
Kiểu dữ liệu của JavaScript
JavaScript có năm loại dữ liệu có thể chứa giá trị:
- Chuỗi (string)
- Số (number)
- Boole (boolean)
- Đối tượng (object)
- Hàm (function)
Có ba loại đối tượng:
- Đối tượng (Object)
- Ngày (Date)
- Mảng (Array)
Có hai loại dữ liệu không thể chứa giá trị:
- null
- undefined
toán tử typeof
Bạn có thể sử dụng typeof
Sử dụng toán tử để xác định loại dữ liệu của biến JavaScript.
ví dụ
typeof "Bill" // Trả về "chuỗi" typeof 3.14 // Trả về "số" typeof NaN // Trả về "số" typeof false // Trả về "boolean" typeof [1,2,3,4] // Trả về "object" typeof {name:'Bill', age:62} // Trả về "object" typeof new Date() // Trả về "object" typeof function () {} // Trả về "function" typeof myCar // Trả về "undefined" * typeof null // Trả về "object"
Lưu ý rằng:
- Loại dữ liệu của NaN là số
- Loại dữ liệu của mảng là đối tượng
- Loại dữ liệu của ngày tháng là đối tượng
- Loại dữ liệu của null là đối tượng
- Loại dữ liệu của biến không được định nghĩa là undefined
- Loại dữ liệu của biến chưa được gán giá trị cũng là undefined
Bạn không thể sử dụng typeof
để kiểm tra đối tượng JavaScript có phải là mảng (hoặc ngày tháng) hay không.
Loại dữ liệu của toán tử typeof
typeof
Toán tử không phải là biến. Nó thuộc về toán tử. Toán tử (ví dụ +
-
*
/
)không có loại dữ liệu.
Nhưng,typeof
Luôn luônTrả về chuỗi(bao gồm loại của toán tử).
Thuộc tính constructor
constructor
Thuộc tính trả về hàm构造器 của tất cả các biến JavaScript.
ví dụ
"Bill".constructor // Trả về "function String() { [native code] }" (3.14).constructor // Trả về "function Number() { [native code] }" false.constructor // Trả về "function Boolean() { [native code] }" [1,2,3,4].constructor // Trả về "function Array() { [native code] }" {name:'Bill', age:62}.constructor // Trả về "function Object() { [native code] }" new Date().constructor // Trả về "function Date() { [native code] }" function () {}.constructor // Trả về "function Function(){ [native code] }"
Bạn có thể kiểm tra constructor
Thuộc tính để xác định đối tượng có phải là mảng (chứa từ "Array"):
ví dụ
function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; }
Hoặc đơn giản hơn, bạn có thể kiểm tra đối tượng có phải là hàm mảng không:
ví dụ
function isArray(myArray) { return myArray.constructor === Array; }
Bạn có thể kiểm tra constructor
Thuộc tính để xác định đối tượng có phải là ngày tháng (chứa từ "Date"):
ví dụ
function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1; }
Hoặc đơn giản hơn, bạn có thể kiểm tra đối tượng có phải là hàm ngày tháng không:
ví dụ
function isDate(myDate) { return myDate.constructor === Date; }
Chuyển đổi loại JavaScript
Biến JavaScript có thể được chuyển đổi thành biến mới và loại dữ liệu khác:
- Bằng cách sử dụng hàm JavaScript
- Bằng cách sử dụng JavaScript bản thânTự độngChuyển đổi
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 cho bất kỳ loại số, văn bản, biến hoặc biểu thức nào:
ví dụ
String(x) // Trả về chuỗi từ biến số x String(123) // Trả về chuỗi từ văn bản số 123 String(100 + 23) // Trả về chuỗi từ giá trị số trong biểu thức
phương pháp số toString()
Cùng vậy.
ví dụ
x.toString() (123).toString() (100 + 23).toString()
trongphương pháp sốTrong chương này, bạn sẽ học thêm về các phương pháp có thể sử dụng để chuyển đổi số liệu thành chuỗi:
phương pháp | mô tả |
---|---|
toExponential() | Trả về chuỗi, làm tròn số và viết dưới dạng số thập phân với hệ số nhân. |
toFixed() | Trả về chuỗi, làm tròn số và viết dưới dạng số thập phân với số chữ số được chỉ định. |
toPrecision() | Trả về chuỗi, viết số dưới dạng độ dài được chỉ định. |
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) // trả về "false" String(true) // trả về "true"
phương pháp boolean toString()
Cùng vậy.
false.toString() // trả về "false" true.toString() // trả về "true"
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ành chuỗi.
String(Date())
Phương thức ngày tháng toString()
Cùng vậy.
ví dụ
Date().toString()
trongPhương thức ngày thángTrong chương này, bạn sẽ tìm thấy nhiều phương pháp khác nhau để chuyển đổi ngày thành chuỗi:
phương pháp | mô tả |
---|---|
getDate() | Lấy ngày theo giá trị số (1-31) |
getDay() | hoặc theo giá trị số (0-6) của tuần |
getFullYear() | Lấy năm bốn chữ số (yyyy) |
getHours() | Lấy giờ (0-23) |
getMilliseconds() | Lấy miliseconds (0-999) |
getMinutes() | Lấy phút (0-59) |
getMonth() | Lấy tháng (0-11) |
getSeconds() | Lấy giây (0-59) |
getTime() | Lấy thời gian (miliseconds từ ngày 1 tháng 1 năm 1970) |
Chuyển đổi chuỗi thành số trị
Phương thức toàn cục Number()
Có thể chuyển đổi chuỗi thành số.
chuỗi chứa số (ví dụ "3.14") sẽ chuyển đổi thành số (ví dụ 3.14).
chuỗi trống sẽ chuyển đổi thành 0。
Các chuỗi khác sẽ được chuyển đổi thành NaN
(Not a number,không phải số)。
Number("3.14") // trả về 3.14 Number(" ") // trả về 0 Number("") // trả về 0 Number("99 88") // trả về NaN
trongphương pháp sốTrong chương này, bạn sẽ tìm thấy nhiều phương pháp khác nhau để chuyển đổi chuỗi thành số:
phương pháp | mô tả |
---|---|
parseFloat() | giải thích chuỗi và trả về số thập phân. |
parseInt() | giải thích chuỗi và trả về số nguyên. |
toán tử một ngôi +
một ngôi +
toán tửCó thể sử dụng để chuyển đổi biến thành số:
ví dụ
var y = "5"; // y là chuỗi var x = + y; // x là số
Nếu không thể chuyển đổi biến, nó vẫn sẽ là số nhưng giá trị của nó là NaN
(Not a number):
ví dụ
var y = "Bill"; // y là chuỗi var x = + y; // x là số (NaN)
Chuyển đổi boolean thành số
Phương thức toàn cục Number()
Cũng có thể chuyển đổi boolean thành số.
Number(false) // Trả về 0 Number(true) // Trả về 1
Chuyển đổi ngày tháng thành số
Phương thức toàn cục Number()
Dùng để chuyển đổi ngày tháng thành số.
d = new Date(); Number(d)
Phương thức ngày tháng getTime()
Cùng vậy.
d = new Date(); d.getTime()
Chuyển đổi loại dữ liệu tự động
Nếu JavaScript cố gắng thao tác với một loại dữ liệu "sai", nó sẽ cố gắng chuyển đổi giá trị đó thành loại dữ liệu "đúng".
Kết quả không luôn là điều bạn mong đợi:
5 + null // Trả về 5 vì null được chuyển đổi thành 0 "5" + null // Trả về "5null" vì null được chuyển đổi thành "null" "5" + 2 // Trả về 52 vì 2 được chuyển đổi thành "2" "5" - 2 // Trả về 3 vì "5" được chuyển đổi thành 5 "5" * "2" // Trả về 10 vì "5" và "2" được chuyển đổi thành 5 và 2
Chuyển đổi chuỗi tự động
JavaScript tự động gọi biến toString()
Hàm, khi bạn cố gắng "xuất ra" đối tượng hoặc biến:
document.getElementById("demo").innerHTML = myVar; // Nếu myVar = {name:"Fjohn"} // toString chuyển đổi thành "[object Object]" // Nếu myVar = [1,2,3,4] // toString chuyển đổi thành "1,2,3,4" // Nếu myVar = new Date() // toString chuyển đổi thành ""
Số và boolean cũng sẽ được chuyển đổi, nhưng không rõ ràng:
// Nếu myVar = 123 // toString chuyển đổi thành "123" // Nếu myVar = true // toString chuyển đổi thành "true" // Nếu myVar = false // toString chuyển đổi thành "false"
Bảng chuyển đổi loại JavaScript
Bảng dưới đây liệt kê kết quả chuyển đổi các giá trị JavaScript khác nhau thành số, chuỗi và boolean:
Giá trị gốc | Chuyển đổi thành số | Chuyển đổi thành chuỗi | Chuyển đổi thành logic | Thử thử |
---|---|---|---|---|
false | 0 | "false" | false | Thử thử |
true | 1 | "true" | true | Thử thử |
0 | 0 | "0" | false | Thử thử |
1 | 1 | "1" | true | Thử thử |
"0" | 0 | "0" | true |
Thử thử |
"000" | 0 | "000" | true |
Thử thử |
"1" | 1 | "1" | true | Thử thử |
NaN | NaN | "NaN" | false | Thử thử |
Infinity | Infinity | "Infinity" | true | Thử thử |
-Infinity | -Infinity | "-Infinity" | true | Thử thử |
"" | 0 |
"" | false |
Thử thử |
"20" | 20 | "20" | true | Thử thử |
"twenty" | NaN | "twenty" | true | Thử thử |
[ ] | 0 |
"" | true | Thử thử |
[20] | 20 |
"20" | true | Thử thử |
[10,20] | NaN | "10,20" | true | Thử thử |
["twenty"] | NaN | "twenty" | true | Thử thử |
["ten","twenty"] | NaN | "ten,twenty" | true | Thử thử |
function(){} | NaN | "function(){}" | true | Thử thử |
{ } | NaN | "[object Object]" | true | Thử thử |
null | 0 |
"null" | false | Thử thử |
undefined | NaN | "undefined" | false | Thử thử |
Giá trị trong dấu ngoặc kép chỉ ra giá trị chuỗi.
Giá trị màu đỏChỉ ra giá trị mà một số lập trình viên có thể không mong muốn.
- Trang trước JS typeof
- Trang tiếp theo Giải cấu trúc JS