Phương thức toString[] của JavaScript nhận một đối số, trả về biểu diễn văn bản của đối tượng dưới dạng một chuỗi
Giá trị chuỗi được trả về tùy thuộc vào loại đối số đang được chuyển đổi. Bài viết này đề cập đến việc áp dụng toString[] cho các kiểu dữ liệu sau. , và
Chúng ta sẽ sử dụng hàm sau để khám phá cách phương thức toString[] tương tác với các loại đối tượng khác nhau
function stringing[arg] { console.log[arg.toString[], '- Type of arg is: ', typeof [arg]]; }
Việc sử dụng phương thức này phụ thuộc vào giá trị trả về, như sẽ được hiển thị bên dưới, toString[] tạo ra các kết quả rất khác nhau cho các loại đối số khác nhau
con số. toString[]
Hãy bắt đầu bằng cách sử dụng toString[] trên một số
const num = 3; stringing[num]; // expected output: 3 - Type of arg is: number
Khi sử dụng toString[] trên một số, một chuỗi của số đó được trả về
toString[] có rất nhiều chức năng bổ sung khi làm việc với các con số. Xem phần bên dưới
mảng. toString[]
Điều gì xảy ra nếu chúng ta cố gắng áp dụng toString[] vào một mảng?
1. Áp dụng toString[] cho một dãy số
Áp dụng toString[] cho một mảng chỉ trả về các giá trị của mảng dưới dạng một chuỗi
const numArray= [6, 5, 4]; stringing[numArray]; // expected output: 6,5,4 - Type of arg is: object
Ghi chú. dấu ngoặc vuông không được bao gồm trong đầu ra
Ghi chú. Loại báo cáo của một mảng là đối tượng, tuy nhiên, kết quả của việc áp dụng toString[] cho một đối tượng là khác. Xem phần bên dưới để biết thêm thông tin
2. Mảng chuỗi
Quy tắc tương tự áp dụng cho một mảng các chuỗi – áp dụng toString[] cho mảng chỉ trả về các giá trị của mảng dưới dạng một chuỗi
const strArray= ['a', 'b', 'c']; stringing[strArray]; // expected output: a,b,c - Type of arg is: object
3. Mảng của cả số và chuỗi [mảng hỗn hợp]
Chúng ta lại thấy hành vi tương tự khi áp dụng toString[] cho một mảng hỗn hợp
const mixArray= ['5', 32, 'Daniel']; stringing[mixArray]; // expected output: 5,32,Daniel - Type of arg is: object
Mẹo. Bạn có thể sử dụng phương thức split[] để lấy lại một mảng từ chuỗi đầu ra
Trong ví dụ trên, mỗi giá trị được phân tách bằng dấu phẩy. Như vậy, dấu phẩy phải được chuyển thành tham số cho phương thức split[] như trong ví dụ sau
const str = mixArray.toString[]; const backToArr = str.split[',']; console.log['backToArr: ', backToArr]; // expected output: ["5", "32", "Daniel"]
Ghi chú. Trong mảng ban đầu, const mixArray chứa 32 dưới dạng Số. Mặc dù 32 được chứa trong mảng mới backToArr, nhưng bây giờ nó thuộc kiểu String
Nếu bạn không bao gồm tham số cho phương thức split[], kết quả sẽ là một mảng có một giá trị duy nhất – kết quả của mixArray. toString[], bao gồm cả dấu phẩy
const str = mixArray.toString[]; const backToArr = str.split[]; console.log['backToArr: ', backToArr]; // expected output: ["5,32,Daniel"]
Bạn có thể tìm hiểu thêm về phương thức split[] tại đây
4. Mảng bên trong một mảng
Ví dụ dưới đây cho thấy điều gì sẽ xảy ra khi chúng ta cung cấp một mảng chứa một mảng cho phương thức toString[]
const arrInArr= [ '5', 32, [ 'Daniel', 4 ] ]; stringing[arrInArr]; // expected output: 5,32,Daniel,4 - Type of arg is: object
Cả hai mảng đều được "làm phẳng" và được trả về dưới dạng một chuỗi với tất cả các giá trị được phân tách bằng dấu phẩy
Nếu phần tử mảng được thay thế bằng một đối tượng, kết quả sẽ là [đối tượng, đối tượng] như chúng ta thấy bên dưới
________số 8_______Mặc dù mảng có kiểu đối tượng và, như đã trình bày trước đó, tạo ra một kết quả có ý nghĩa khi áp dụng phương thức toString[], đây không phải là trường hợp đối với các đối tượng
mục tiêu. toString[]
Hành vi mặc định của việc áp dụng toString[] cho một đối tượng trả về chuỗi [đối tượng, đối tượng], như trong ví dụ sau
const obj = { name: 'Ariel', age: 40 }; stringing[obj]; // expected output: [object Object] - Type of arg is: object
Để khắc phục vấn đề này, chúng ta cần sửa đổi “nguyên mẫu. phương thức toString”. Theo mặc định, phương thức toString[] trả về [đối tượng, đối tượng] cho bất kỳ đối tượng nào. Tuy nhiên, có thể sửa đổi phương pháp nguyên mẫu, do đó ghi đè cài đặt mặc định. Sau khi sửa đổi, giá trị trả về sẽ được lấy theo chỉ định của phương thức mới đã được thêm vào. Điều này chỉ áp dụng cho đối tượng cụ thể đó – trong trường hợp trên, chỉ const obj mới thể hiện hành vi này
Để biết thêm thông tin về đối tượng. nguyên mẫu, kiểm tra liên kết này
Cách phổ biến để chuyển đổi một đối tượng thành chuỗi trong JavaScript là áp dụng JSON. phương thức stringify[]
Thông số
Khi áp dụng toString[] cho Numbers và BigInts, một tham số tùy chọn – radix – có thể được cung cấp. Cơ số chỉ định cơ sở toán học cho số được chuyển thành chuỗi [i. e. cơ số của 2 có nghĩa là nhị phân, 8 bát phân, 10 thập phân, 16 thập lục phân, v.v.]. Giá trị trả về cho số đó sẽ là biểu diễn của số đó theo cơ số được xác định bởi cơ số
const num = 3; stringing[num]; // expected output: 3 - Type of arg is: number0
Trong ví dụ trên, cơ số là 2, do đó, kết quả là một chuỗi biểu diễn số nguyên 10 ở dạng nhị phân – “1010”
Ghi chú. Trong nhiều trường hợp [các] chữ số đầu tiên trong biểu diễn nhị phân có thể bằng không
const num = 3; stringing[num]; // expected output: 3 - Type of arg is: number1
Biểu diễn nhị phân của 3 là “0011”, các số 0 không được in
Ghi chú. Giá trị trả về sẽ luôn là một chuỗi bắt đầu bằng một chữ số hoặc một ký tự được liên kết với cơ số cụ thể được cung cấp. Cơ số cao hơn 10 sử dụng các ký tự bảng chữ cái tiếng Anh để biểu thị các chữ số lớn hơn 9. Ví dụ: khi sử dụng cơ số 16 [số thập lục phân], “A” đến “F” được sử dụng để chỉ định các số từ 10-15 [A = 10, F = 15]
Mẫu bên dưới thể hiện hành vi này bằng cách chuyển đổi một số thành biểu diễn thập lục phân của nó
const num = 3; stringing[num]; // expected output: 3 - Type of arg is: number2
Trong đầu ra ở trên, giá trị trả về là 'f'. Ký tự “f” đại diện cho giá trị 15 trong hệ thống số thập lục phân
Mẹo. Cả Microsoft Windows và macOS đều cung cấp máy tính của lập trình viên dưới dạng tùy chọn. Máy tính của lập trình viên này cho phép bạn xem kết quả của một biểu thức trong các cơ số khác nhau