Đôi khi bạn muốn chuyển đổi một loại dữ liệu thành một loại dữ liệu khác mà không thay đổi các giá trị theo cách thủ công.
Chẳng hạn, bạn có thể muốn chuyển đổi một số thành một chuỗi. JavaScript đôi khi làm điều này ngầm.
Giống như khi bạn sử dụng toán tử bằng kép (==
) hoặc khi bạn cố gắng thực hiện điều gì đó trên một giá trị có kiểu dữ liệu không tương thích với thao tác. Điều này được gọi là Loại ép buộc.
Điều này nói rằng, bạn cũng có thể chuyển đổi các loại dữ liệu một cách rõ ràng. Và tôi sẽ chỉ cho bạn cách làm điều đó trong bài viết này.
Kiểu dữ liệu chuỗi là kiểu dữ liệu rất phổ biến trong JavaScript. Đối với hầu hết mọi loại dữ liệu khác, bạn cần có một biểu diễn chuỗi.
Cũng như bạn hẳn đã thấy một cái gì đó tương tự như "[object Object]"
khi bạn sử dụng một đối tượng thay cho một chuỗi thực tế.
Trong bài viết này, chúng ta sẽ tìm hiểu những gì toString
phương thức là gì và cách chuyển đổi một số (và một vài kiểu dữ liệu khác) thành một chuỗi bằng phương thức này.
Các toString
phương pháp
Như tên của nó, phương thức này được sử dụng để thay đổi dữ liệu thành một chuỗi. Mỗi mảng, số và boolean đều có phương thức này để chuyển đổi dữ liệu của chúng theo nhiều cách khác nhau. Bây giờ chúng ta hãy xem xét chúng một cách riêng lẻ.
Cách chuyển đổi một số thành một chuỗi
Các toString
phương thức tồn tại trên mọi số bằng chữ. Nó chuyển đổi số thành biểu diễn chuỗi của chúng. Đây là cách nó được sử dụng:
const num = 54;
console.log(num.toString())
// "54"
Nhưng có nhiều hơn thế này. Các toString
phương pháp cho số cũng chấp nhận một base
tranh luận. Đối số này cho phép bạn chuyển đổi một số sang một cơ số khác.
Giá trị được trả về là biểu diễn chuỗi của số mới. Đây là cách nó được sử dụng:
const num = 54;
const num2 = num.toString(2);
console.log(num2);
// "110110"
parseInt
là một phương thức JavaScript khác, ngược lại, chuyển đổi các chuỗi thành các biểu diễn số tương ứng của chúng. Đây là cách nó hoạt động:
const numInStr = "54";
const str = "Hello";
console.log(parseInt(numInStr));
// 54
console.log(parseInt(str));
// NaN
Đối với một biến không giống với một số, parseInt
lợi nhuận Nan
như đã thấy ở trên.
Cách chuyển đổi một mảng thành một chuỗi trong JavaScript
Mảng cũng có toString
phương pháp. Giá trị được trả về của phương thức này là sự kết hợp của tất cả các giá trị của mảng (và các mảng được lồng sâu trong đó) được phân tách bằng dấu phẩy. Đây là cách nó được sử dụng:
const arr = ["javascript", "toString", [1, "deep1", [3, 4, "array"]]];
console.log(arr.toString());
// "javascript,toString,1,deep1,3,4,array"
Cách chuyển đối tượng thành chuỗi trong JavaScript
Giá trị trả về của toString
trên một đối tượng là – giống như bạn có thể thường bắt gặp – "[object Object]"
. Ví dụ:
const obj = {name: 'Object'};
const obj2 = {type: 'data', number: 100};
console.log(obj.toString());
// [object Object]
console.log(obj2.toString());
// [object Object]
Chuyển đổi mặc định của các đối tượng thành chuỗi là [object Object]
. Chú ý rằng có hai object
s ở đó, và không chỉ một? Còn cái kia viết hoa?
Có nhiều đại diện hơn cho các đối tượng như sau:
function print() {};
const arr = [];
const obj = {};
console.log(
Object.prototype.toString.call(print),
Object.prototype.toString.call(arr),
Object.prototype.toString.call(obj)
)
// [object Function] [object Array] [object Object]
Hàm, Mảng, Đối tượng và thậm chí cả Ngày và Regex đều là các đối tượng. Và mỗi người trong số họ có toString
phương pháp.
Khi nào toString
được gọi trên chúng, nó sẽ lấy bất kỳ giá trị nào của lớp Đối tượng, rồi in nó ra như bạn thấy ở trên (“Hàm, Mảng, Đối tượng).
Chúng tôi sử dụng call(variable)
bởi vì toString
lấy lớp đối tượng thông qua this
tài sản.
Phần kết luận
Các .toString
phương thức trả về một chuyển đổi chuỗi của dữ liệu mà nó được sử dụng. Điều này rất hữu ích cho một số trường hợp nhất định, đặc biệt là number
S.
Trong bài viết này, chúng ta đã học cách JavaScript toString
phương pháp làm việc với number
S, array
cát object
s và chúng tôi cũng đã xem xét một chút parseInt
.