Ce face String() / toString
String(valoare) transformă valoarea primită într-un șir de caractere. Merge pentru orice valoare, inclusiv null și undefined.
Metoda toString() face același lucru, dar se apelează pe valoare: (42).toString(). Pe null și undefined nu există, așa că dă eroare. Pentru un șir, toString() și valueOf() returnează chiar textul.
Nu folosi new String("text"): creează un obiect, nu un text simplu, iar comparațiile cu === nu mai merg.
Parametri
| Parametru | Descriere |
|---|---|
valoare |
Orice valoare de transformat în text. |
Ce returnează
Un șir de caractere.
Exemple
Exemplul 1: Diferite valori transformate în text
console.log(String(42));
console.log(String(true));
console.log(String(null));
console.log(String([1, 2, 3]));
console.log(String({ nume: "Ana" }));
Rezultat
42
true
null
1,2,3
[object Object]
Exemplul 2: String() față de toString()
Pe o valoare care poate fi null, String() este varianta sigură.
const cod = null;
console.log(String(cod));
try {
cod.toString();
} catch (eroare) {
console.log(eroare.constructor.name);
}
Rezultat
null
TypeError
Exemplul 3: De ce nu new String
const simplu = "Iași";
const obiect = new String("Iași");
console.log(typeof simplu, typeof obiect);
console.log(simplu === obiect);
console.log(simplu === obiect.valueOf());
Rezultat
string object
false
true
Greșeli frecvente
- Apelezi
valoare.toString()pe o valoare care poate finullsauundefinedși primeștiTypeError. FoloseșteString(valoare). - Transformi un obiect în text și primești
[object Object]. Pentru conținutul lui foloseșteJSON.stringify.
Comenzi înrudite
template literals: Șiruri între backtick-uri (`) în care pui variabile și expresii direct în text.JSON.stringify: Transformă un obiect sau tablou JavaScript în text JSON.Number.prototype.toString: Transformă un număr în text, opțional în altă bază: binar, octal, hexazecimal.