Uneori doriți să convertiți un tip de date într-un alt tip de date fără a modifica manual valorile.

De exemplu, poate doriți să convertiți un număr într-un șir. JavaScript face uneori acest lucru implicit.

Ca atunci când utilizați operatorul dublu egal (==) sau când încercați să faceți ceva pe o valoare cu un tip de date care este incompatibil cu operația. Aceasta se numește coerciție de tip.

Acestea fiind spuse, puteți converti în mod explicit tipurile de date. Și am să vă arăt cum să faceți acest lucru în acest articol.

Tipul de date șir este un tip de date foarte comun în JavaScript. Pentru aproape orice alt tip de date, trebuie să aveți o reprezentare șir.

ad-banner

La fel cum trebuie să fi văzut ceva similar "[object Object]" când utilizați un obiect în locul unui șir propriu-zis.

În acest articol, vom afla ce toString metoda este și cum se poate converti un număr (și câteva alte tipuri de date) într-un șir folosind această metodă.

toString metodă

După cum sugerează și numele, această metodă este utilizată pentru a schimba datele într-un șir. Matricele, numerele și booleenii au fiecare această metodă care le convertește datele în diferite moduri. Să le privim acum individual.

Cum se convertește un număr într-un șir

toString metoda există pe fiecare număr literal. Convertește numerele în reprezentările lor de șiruri. Iată cum este folosit:

const num = 54;
console.log(num.toString())
// "54"

Dar mai sunt multe la asta. toString metoda pentru numere acceptă și a base argument. Acest argument vă permite să convertiți un număr într-o altă bază.

Valoarea returnată este reprezentarea șirului a noului număr. Iată cum este folosit:

const num = 54;
const num2 = num.toString(2);
console.log(num2);
// "110110"

parseInt este o altă metodă JavaScript care, în schimb, convertește șirurile în reprezentările lor numerice respective. Iată cum funcționează:

const numInStr = "54";
const str = "Hello";
console.log(parseInt(numInStr));
// 54
console.log(parseInt(str));
// NaN

Pentru o variabilă care nu este similară cu un număr, parseInt se intoarce Nan așa cum s-a văzut mai sus.

Cum se convertește o matrice într-un șir în JavaScript

Tablourile au, de asemenea, toString metodă. Valoarea returnată a acestei metode este o concatenare a tuturor valorilor matricei (și a matricilor cuibărite în ea) separate prin virgule. Iată cum este folosit:

const arr = ["javascript", "toString", [1, "deep1", [3, 4, "array"]]];
console.log(arr.toString());
// "javascript,toString,1,deep1,3,4,array"

Cum se convertește un obiect într-un șir în JavaScript

Valoarea returnată a toString pe un obiect este – la fel cum probabil ați întâlnit adesea – "[object Object]". De exemplu:

const obj = {name: 'Object'};
const obj2 = {type: 'data', number: 100};
console.log(obj.toString());
// [object Object]
console.log(obj2.toString());
// [object Object]

Conversia implicită a obiectelor în șir este [object Object]. Observați că sunt două objecte acolo, și nu doar unul? Și cealaltă este cu majuscule?

Există mai multe reprezentări pentru obiecte precum cele ce urmează:

function print() {};
const arr = [];
const obj = {};
console.log(
  Object.prototype.toString.call(print),
  Object.prototype.toString.call(arr),
  Object.prototype.toString.call(obj)
)
// [object Function] [object Array] [object Object]

Funcțiile, tablourile, obiectele și chiar datele și regexul sunt toate obiecte. Și fiecare dintre ei are toString metodă.

Cand toString este apelat la ele, apucă orice clasă de obiect are valoarea și apoi o imprimă așa cum vedeți mai sus (“Funcție, matrice, obiect).

Folosim call(variable) pentru că toString obține clasa obiect prin intermediul this proprietate.

Concluzie

.toString metoda returnează o conversie șir a datelor pe care este utilizat. Acest lucru este foarte util pentru anumite cazuri, în special numbers.

În acest articol, am aflat cum funcționează JavaScript toString metoda funcționează cu numbers, arrays și objects și ne-am uitat și noi puțin parseInt.