Cách chuyển giá trị thành chuỗi trong JavaScript

Hàm tích hợp chuỗi, phương thức toString, v.v.

Ảnh của freestocks trên Unsplash.

Trong bài đăng này, chúng ta sẽ xem xét 4 cách tốt và xấu khác nhau để chuyển đổi tất cả các loại giá trị thành chuỗi.

Chúng tôi sẽ xem xét các giá trị sau đây để chuyển đổi.

console.log(typeof 1);
//number
console.log(typeof true)
//boolean
console.log(typeof null)
//object
console.log(typeof undefined)
//undefined
console.log(Array.isArray([1,2,3]))
//true
console.log(typeof { msg: 'Hi' })
//object
console.log(typeof Symbol('id'));
//symbol

Sử dụng chức năng tích hợp String

Hàm Stringtích hợp có thể chuyển đổi bất kỳ giá trị nào thành một chuỗi. Nó là tùy chọn tốt nhất để chuyển đổi các kiểu nguyên thủy thành chuỗi.

String(1)
//'1'
String(true)
//'true'
String(null)
//'null'
String(undefined)
//'undefined'
String([1,2,3])
//'1,2,3'
String({ msg: 'Hi'})
//'[object Object]'
String(Symbol('id'))
//'Symbol(id)'

Sử dụng chuỗi mẫu

Chuỗi mẫu cho phép các biểu thức được nhúng. Các biểu thức này được chuyển đổi thành chuỗi. Kiểm tra các ví dụ dưới đây.

`${1}`
//'1'
`${true}`
//'true'
`${null}`
//'null'
`${undefined}`
//'undefined'
`${[1,2,3]}`
//'1,2,3'
`${{ msg: 'Hi'}}`
//'[object Object]'

`${Symbol('id')}`
//Cannot convert a Symbol value to a string

Trong JavaScript, tất cả các đối tượng kế thừa từ Object.prototype. Điều đó có nghĩa là tất cả họ đều có quyền truy cập vào các phương thức được lưu trữ trên đối tượng đó bao gồm toString.

Đây là kết quả của việc gọi toStringmột đối tượng hoặc một mảng.

[1,2,3].toString()
//'1,2,3'
{ msg: 'Hi'}.toString()
//'[object Object]'

const prototype = {
  toString(){
    return JSON.stringify(this);
  }
}
const obj = Object.create(prototype);
obj.msg = 'Hi';
console.log(obj.toString());
//''{"msg":"Hi"}''

Điều thú vị là chúng ta có thể gọi toStringphương thức trên các nguyên thủy như số và boolean. Kiểm tra mã bên dưới.

(1).toString()
//'1'
true.toString()
//'true'
Symbol('id').toString()
//'Symbol(id)'

Đối với tất cả các nguyên thủy ngoại trừ nullvà undefinedJavaScript có các hàm trình bao bọc tích hợp sẵn như Numberhoặc Boolean. Nó sử dụng các hàm tạo hàm này để tạo các đối tượng và sau đó gọi toStringphương thức trên các đối tượng mới được tạo. Một cái gì đó như thế này xảy ra ở hậu trường:

new Number(1).toString()

null.toString()
//Cannot read property 'toString' of null
undefined.toString()
//Cannot read property 'toString' of undefined

Tùy chọn cuối cùng để chuyển đổi thành chuỗi là thực hiện nối chuỗi. Kiểm tra các ví dụ sau.

'' + 1
//'1'
'' + true
//'true'
'' + null
//'null'
'' + undefined
//'undefined'
'' + [1,2,3]
//'1,2,3'
'' + { msg: 'Hi'}
//'[object Object]'

Đây là những gì sẽ xảy ra khi thực hiện nối thay vì thêm số.

1 + '2'
//'12'

console.log('' + Symbol('id'))
//Cannot convert a Symbol value to a string

Đó là tất cả những gì tôi muốn chia sẻ về chuyển đổi chuỗi. Cảm ơn vì đã đọc.

Suggested posts

Tìm kiếm thông tin về tên miền

Đoạn trích từ Small, Sharp Software Tools của Brian P. Hogan

Tìm kiếm thông tin về tên miền

Khi bạn gửi yêu cầu tới facebook.com, máy tính của bạn sẽ tra cứu tên miền để dịch tên miền đó thành địa chỉ IP để máy tính của bạn có thể thực hiện kết nối đó.

Tránh những hậu quả tàn khốc của đột quỵ: Học hỏi từ hành trình của một gia đình.

Tránh những hậu quả tàn khốc của đột quỵ: Học hỏi từ hành trình của một gia đình.

Giới thiệu Đột quỵ là một trường hợp cấp cứu y tế có thể tấn công bất kỳ ai vào bất kỳ lúc nào. Nó xảy ra khi lưu lượng máu đến một phần của não bị gián đoạn, dẫn đến mất chức năng não đột ngột.

Related posts

Cuộc trò chuyện nguy hiểm

Cuộc trò chuyện nguy hiểm

Nếu chúng ta muốn tiếp tục phát triển trên hành tinh này, chúng ta sẽ phải có những cuộc đối thoại nguy hiểm. Những thứ thách thức những gì chúng ta đã làm, những gì chúng ta đang làm và những gì chúng ta hiện đang chuẩn bị tiếp tục làm (hoặc đang có kế hoạch làm).

Theo Dõi Bất Cứ Ai Chỉ Bằng Số Điện Thoại | Điều tra OSINT

Theo Dõi Bất Cứ Ai Chỉ Bằng Số Điện Thoại | Điều tra OSINT

Bạn có thể là Điều tra viên OSINT, Người chơi CTF hoặc đơn giản là người nhận được các cuộc gọi spam. Ai đó đang cố xác minh số bạn đã thấy trong quảng cáo.

Mạng truyền hình Twitter

Mạng truyền hình Twitter

Cái cũ giờ lại mới và cái từng lấp lánh sáng bóng giờ trở nên buồn tẻ. Tôi không nói về việc quần jean JNCO đang trở lại trong giới trẻ sành điệu ở trung tâm thành phố cùng với các mốt cuối thập niên 1990 khác.

Mối đe dọa đó Lưu trữ: Tập 7 Black Basta

Mối đe dọa đó Lưu trữ: Tập 7 Black Basta

Trong thế giới kết nối ngày nay, mối đe dọa tấn công mạng phổ biến hơn bao giờ hết. Tội phạm mạng và các tác nhân quốc gia liên tục tìm cách khai thác các lỗ hổng và đánh cắp dữ liệu có giá trị, gây rủi ro đáng kể cho các tổ chức thuộc mọi quy mô.