Kiểu chuyển đổi trong JavaScript
Number() chuyển thành một số, String() chuyển thành một chuỗi, Boolean() chuyển đổi sang một Boolean. Các kiểu dữ liệu trong JavaScript Trong JavaScript có 5 loại dữ liệu khác nhau có thể chứa các giá trị: string number boolean object function Có ...
Number() chuyển thành một số, String() chuyển thành một chuỗi, Boolean() chuyển đổi sang một Boolean.
Các kiểu dữ liệu trong JavaScript
Trong JavaScript có 5 loại dữ liệu khác nhau có thể chứa các giá trị:
- string
- number
- boolean
- object
- function
Có 3 kiểu đối tượng:
- Object
- Date
- Array
Và 2 loại dữ liệu không chứa giá trị:
- null
- undefined
Toán tử typeof
Bạn có thể sử dụng toán tử typeof để tìm kiểu dữ liệu của một biến JavaScript.
typeof “John” // trả về “string”
typeof 3.14 // trả về “number”
typeof NaN // trả về “number”
typeof false // trả về “boolean”
typeof [1,2,3,4] // trả về “object”
typeof {name:’John’, age:34} // trả về “object”
typeof new Date() // trả về “object”
typeof function () {} // trả về “function”
typeof myCar // trả về “undefined” *
typeof null // trả về “object”
Xem chi tiết dưới đây:
- Kiểu dữ liệu của NaN là
- Kiểu dữ liệu của mảng là đối tượng
- Kiểu dữ liệu của ngày là đối tượng
- Kiểu dữ liệu của của null là đối tượng
- Kiểu dữ liệu của biến undefined là undefined *
- Kiểu dữ liệu của biến mà không hỗ trợ giá trị cũng là undefined *
Bạn không thể sử dụng typeof để xác định xem một đối tượng JavaScript là một mảng (hay một ngày).
Kiểu dữ liệu của typeof
Toán tử typeof không phải là một biến. Nó là một toán tử. Toán tử (+ – * /) không có bất kỳ kiểu dữ liệu nào. Tuy nhiên, toán tử typeof luôn trả về một chuỗi (chứa kiểu toán hạng).
Hàm tạo thuộc tính
Thuộc tính constructor trả về hàm xây dựng cho tất cả các biến JavaScript.
“John”.constructor // trả về hàm String() {[native code]}
(3.14).constructor // trả về hàm Number() {[native code]}
false.constructor // trả về hàm Boolean() {[native code]}
[1,2,3,4].constructor // trả về hàm Array() {[native code]}
{name:’John’,age:34}.constructor // trả về hàm Object() {[native code]}
new Date().constructor // trả về hàm Date() {[native code]}
function () {}.constructor // trả về hàm Function(){[native code]}
Bạn có thể kiểm tra các hàm tạo thuộc tính để tìm ra nếu một đối tượng là một mảng (có chứa từ “Array”):
function isArray(myArray) {
return myArray.constructor.toString().indexOf(“Array”) > -1;
}
Hoặc thậm chí đơn giản hơn, bạn có thể kiểm tra nếu đối tượng là một hàm Array:
function isArray(myArray) {
return myArray.constructor === Array;
}
Bạn có thể kiểm tra các hàm tạo thuộc tính để tìm ra nếu một đối tượng là một Date (có chứa từ “Date”):
function isDate(myDate) {
return myDate.constructor.toString().indexOf(“Date”) > -1;
}
Hoặc thậm chí đơn giản hơn, bạn có thể kiểm tra nếu đối tượng là một hàm Date:
function isDate(myDate) {
return myDate.constructor === Date;
}
Loại chuyển đổi trong JavaScript
Các biến JavaScript có thể được chuyển đổi sang 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ởi chính JavaScript
Chuyển đổi số sang chuỗi
Phương pháp toàn cục String() có thể chuyển đổi số thành chuỗi. Có thể được sử dụng cho bất kỳ loại số, literals, biến, hoặc biểu thức:
String(x) // trả về một chuỗi với biến số x
String(123) // trả về một chuỗi với số 123
String(100 + 23) // trả về một chuỗi từ một số từ một biểu thức
Phương thức Number toString () không giống nhau.
x.toString()
(123).toString()
(100 + 23).toString()
Phương thức | Mô tả |
toExponential() | Trả về một chuỗi, với một số làm tròn và viết bằng ký hiệu mũ |
toFixed() | Trả về một chuỗi, với một số làm tròn và viết với một số thập phân xác định |
toPrecision() | Trả về một chuỗi, với một số được viết với một độ dài xác định |
Chuyển đổi các Booleans thành Strings
Phương thức toàn cục String() có thể chuyển đổi các phép toán luận thành dây.
String(false) // trả về “false”
String(true) // trả về “true”
Phương thức toString() cũng làm như vậy.
false.toString() // trả về “false”
true.toString() // trả về “true”
Chuyển đổi Dates sang Strings
Phương pháp toàn cục Chuỗi () có thể chuyển đổi ngày thành chuỗi.
String(Date()) // trả về “Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)”
Phương thức toString() cũng tương tự.
Date().toString() // trả về “Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)”
Phương thức | Mô tả |
getDate() | Lấy ngày làm số (1-31) |
getDay() | Nhận số ngày trong tuần (0-6) |
getFullYear() | Lấy năm chữ số bốn (yyyy) |
getHours() | Lấy giờ (0-23) |
getMilliseconds() | Lấy mili giây (0-999) |
getMinutes() | Lấy phút (0-59) |
getMonth() | Nhận tháng (0-11) |
getSeconds() | Nhận giây (0-59) |
getTime() | Nhận thời gian (mili giây kể từ ngày 1 tháng 1 năm 1970) |
Chuyển chuỗi thành số
Phương pháp toàn cục Number() có thể chuyển đổi các chuỗi thành số. Chuỗi có chứa số (như “3.14”) chuyển thành số (như 3.14). Chuỗi trống chuyển thành 0. Mọi thứ khác chuyển thành NaN (Không phải là số).
Number(“3.14″) // trả về 3.14
Number(” “) // trả về 0
Number(“”) // trả về 0
Number(“99 88”) // trả về NaN
Phương thức | Mô tả |
parseFloat() | Phân tích một chuỗi và trả về một số điểm nổi |
parseInt() | Phân tích một chuỗi và trả về một số nguyên |
Unary + Operator
unary + operator có thể dùng để chuyển đổi một biến thành số.
var y = “5”; // y là chuỗi
var x = + y; // x là số
Nếu biến không thể được chuyển đổi, 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ố):
var y = “John”; // y là chuỗi
var x = + y; // x là một số (NaN)
Chuyển đổi Booleans sang dạng số
Phương pháp toàn cục Number() cũng có thể chuyển đổi các phép toán luận thành số.
Number(false) // trả về 0
Number(true) // trả về 1
Chuyển đổi Dates sang dạng số
Phương pháp toàn cục Number() có thể được sử dụng để chuyển ngày thành số.
d = new Date();
Number(d) // trả về 1404568027739
Phương thức getTime() cũng tương tự:
d = new Date();
d.getTime() // trả về 1404568027739
Kiểu tự động chuyển đổi
Khi JavaScript cố gắng hoạt động trên một kiểu dữ liệu “sai”, nó sẽ cố gắng chuyển đổi giá trị sang một loại “đúng”. Kết quả không phải lúc nào bạn mong đợi:
5 + null // trả về 5 vì null is chuyển đổi thành 0
“5” + null // trả về “5null” vì null is converted to “null”
“5” + 2 // trả về 52 vì 2 được đổi thành “2”
“5” – 2 // trả về 3 vì “5” được đổi thành 5
“5” * “2” // trả về10 vì “5” và “2” được chuyển đổi thành 5 và 2
Tự động chuyển đổi chuỗi
JavaScript sẽ 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 chuyển thành “[object Object]”
// if myVar = [1,2,3,4] // toString chuyển thành “1,2,3,4”
// if myVar = new Date() // toString chuyển thành “Fri Jul 18 2014 09:08:55 GMT+0200”
Số và các phép toán luận cũng được chuyển đổi, nhưng điều này không phải là rất rõ ràng:
// if myVar = 123 // toString chuyển thành “123”
// if myVar = true // toString chuyển thành “true”
// if myVar = false // toString chuyển thành “false”
Bảng loại chuyển đổi trong JavaScript
Bảng này cho thấy 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:
Giá trị gốc | Chuyển thành số | Chuyển thành chuỗi | Chuyển đổi thành Boolean |
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 biểu thị các giá trị chuỗi. Các giá trị đỏ biểu thị giá trị (một số) lập trình có thể không mong đợi.
- Học lập trình front-end cơ bản với bootstrap 4/html5/css3
- Học lập trình front-end nâng cao qua Project thực tế
- Học thiết kế web với Photoshop, CSS theo kiểu SASS
- Học cách sử dụng Git_hub cho lập trình viên
- Học lập trình Back-end PHP theo mô hình MVC cơ bản
- Học lập trình Back-end PHP theo mô hình MVC nâng cao
- Học lập trình Cơ sở dữ liệu với AngularJS
- Học lập trình theme wordpress. Làm ra mọi website hoàn chỉnh với wordpress
- Combo lập trình front-end từ cơ bản – nâng cao
- Combo lập trình back-end từ cơ bản đến nâng cao
- Combo lập trình web với word press từ A-Z