String() / toString în JavaScript

Șiruri de caractere Toate browserele, Node.js

Transformă orice valoare în text: numere, valori logice, tablouri, null și undefined.

Sintaxă
String(valoare)
valoare.toString()

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 fi null sau undefined și primești TypeError. Folosește String(valoare).
  • Transformi un obiect în text și primești [object Object]. Pentru conținutul lui folosește JSON.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.