Конструктор String()
Конструктор String() (рядок) створює об'єкти String. Коли він викликається як функція, то повертає примітивні значення типу String.
Синтаксис
new String(thing)
String(thing)
[!NOTE] Конструктор
String()можна викликати як з, так і безnew, але з різним результатом. Дивіться Повернене значення.
Параметри
thingЩо завгодно, що може бути перетворено на рядок.
Повернене значення
Коли String() викликається як функція (без new), то повертає value, зведене до рядкового примітива. А саме, значення Symbol перетворюються на "Symbol(опис)", де опис – це опис значення Symbol, без викидання винятку.
Коли String викликається як конструктор (з додаванням new), то value зводиться до рядкового примітива (без особливої обробки символів), і повертається об'єкт-обгортка String, який не є примітивом.
[!WARNING]
Stringрідко доводиться використовувати як конструктор.
Приклади
Конструктор String та функція String
Конструктор String та функція String повертають різні результати:
const a = new String("Привіт, світе"); // a === "Привіт, світе" – це хиба
const b = String("Привіт, світе"); // b === "Привіт, світе" – це істина
a instanceof String; // істина
b instanceof String; // хиба
typeof a; // "object"
typeof b; // "string"
Як наведено вище, функція повертає рядок (примітивний тип), як і очікувалось. Однак конструктор повертає екземпляр об'єкта типу String (об'єктну обгортку), і саме тому дуже рідко виникає потреба використовувати конструктор String.
Використання String() для рядкування символу
String() – це єдиний випадок, при якому символ може бути перетворений на рядок без викидання помилки, оскільки ця операція – украй очевидна.
const sym = Symbol("приклад");
`${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("приклад");
String(sym); // "Symbol(приклад)"
Специфікації
Сумісність із браузерами
| desktop | mobile | server | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
String() constructor
|
Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | Internet Explorer Full support 3 | Opera Full support 3 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox for Android Full support 4 | Opera Android Full support 10.1 | Safari on iOS Full support 1 | Samsung Internet Full support 1.0 | Deno Full support 1.0 | Node.js Full support 0.10.0 |
Дивіться також
- Посібник Форматування тексту