String() constructor
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Constructor String() tạo các đối tượng String. Khi được gọi như một hàm, nó trả về các giá trị kiểu primitive String.
Cú pháp
new String(thing)
String(thing)
Note:
String() có thể được gọi có hoặc không có new, nhưng với các hiệu ứng khác nhau. Xem Giá trị trả về.
Tham số
thing-
Bất kỳ thứ gì cần chuyển đổi thành string.
Giá trị trả về
Khi String() được gọi như một hàm (không có new), nó trả về value được ép kiểu thành string primitive. Đặc biệt, các giá trị Symbol được chuyển đổi thành "Symbol(description)", trong đó description là mô tả của Symbol, thay vì ném lỗi.
Khi String() được gọi như một constructor (với new), nó ép kiểu value thành string primitive (không có xử lý symbol đặc biệt) và trả về một đối tượng String bao bọc, không phải là một primitive.
Warning:
Bạn hiếm khi cần sử dụng String như một constructor.
Ví dụ
>Constructor String và hàm String
Hàm String và constructor String tạo ra các kết quả khác nhau:
const a = new String("Hello world"); // a === "Hello world" is false
const b = String("Hello world"); // b === "Hello world" is true
a instanceof String; // is true
b instanceof String; // is false
typeof a; // "object"
typeof b; // "string"
Ở đây, hàm tạo ra một string (kiểu primitive) như đã hứa. Tuy nhiên, constructor tạo ra một thực thể của kiểu String (một object wrapper) và đó là lý do tại sao bạn hiếm khi muốn sử dụng constructor String.
Sử dụng String() để stringify một symbol
String() là trường hợp duy nhất mà một symbol có thể được chuyển đổi thành string mà không ném lỗi, vì nó rất rõ ràng.
const sym = Symbol("example");
`${sym}`; // TypeError: Cannot convert a Symbol value to a string
"" + sym; // TypeError: Cannot convert a Symbol value to a string
"".concat(sym); // TypeError: Cannot convert a Symbol value to a string
const sym = Symbol("example");
String(sym); // "Symbol(example)"
Đặc tả
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-string-constructor> |
Tương thích trình duyệt
Xem thêm
- Numbers and strings guide