JavaScript toString példa - Hogyan konvertálhatunk számot karakterláncra a JS-ben és egyebekben

Előfordul, hogy egy adattípust másik adattípussá kíván konvertálni anélkül, hogy az értékeket manuálisan módosítaná.

Például érdemes egy számot karakterláncokká konvertálni. A JavaScript néha implicit módon teszi ezt.

Például amikor a double egyenlő operátort ( ==) használja, vagy amikor megpróbál valamit tenni egy értéken egy olyan adattípussal, amely nem kompatibilis a művelettel. Ezt Típus-kényszernek hívják.

Ez azt jelenti, hogy az adattípusokat is kifejezetten konvertálhatja. És ebben a cikkben megmutatom, hogyan kell ezt megtenni.

A string adattípus nagyon elterjedt adattípus a JavaScript-ben. Szinte minden más adattípus esetében meg kell adnia egy karakterlánc-ábrázolást.

Ahogyan biztosan látott valami hasonlót, mint "[object Object]"amikor egy objektumot használ egy tényleges karakterlánc helyett.

Ebben a cikkben megtudhatjuk, mi a toStringmódszer, és hogyan lehet egy számot (és néhány más adattípust) karakterlánccá konvertálni ezzel a módszerrel.

A toStringmódszer

Ahogy a neve is mutatja, ezt a módszert használják az adatok karakterláncra váltására. A tömbök, a számok és a logikai értékek mindegyike rendelkezik ezzel a módszerrel, amely különböző módon alakítja át az adataikat. Most nézzük meg őket egyenként.

Hogyan konvertálhatunk egy számot karakterláncra

A toStringmódszer minden szám literálon létezik. A számokat karakterlánc-ábrázolássá alakítja. Így használják:

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

De ennél többről van szó. A toStringszámok metódusa elfogad egy baseérvet is. Ez az argumentum lehetővé teszi számok konvertálását egy másik bázissá.

A visszaadott érték az új szám karakterlánc-reprezentációja. Így használják:

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

parseIntegy másik JavaScript módszer, amely ezzel ellentétben konvertálja a karakterláncokat a megfelelő számábrázolásukra. Így működik:

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

A nem egy számhoz hasonló változó esetén a fent látható módon parseInttér vissza Nan.

Hogyan lehet konvertálni tömböt karakterláncra a JavaScript-ben

A tömböknél is megvan a toStringmódszer. Ennek a módszernek a visszatérő értéke a tömb (és a benne mélyen beágyazott tömbök) összes vesszővel elválasztott összevonása. Így használják:

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

Hogyan lehet egy objektumot karakterláncokká konvertálni a JavaScript-ben

Az toStringobjektum visszatérési értéke - ahogyan gyakran találkozhatott veled is "[object Object]". Például:

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

Az objektumok alapértelmezett konvertálása karakterláncra [object Object]. Figyelje meg, hogy két objects van ott, és nem csak egy? És a másik nagybetűs?

További ábrázolások vannak az objektumokhoz, például a következők:

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] 

A függvények, tömbök, objektumok, sőt a dátumok és a regex is objektumok. És mindegyikük rendelkezik a toStringmódszerrel.

Amikor toStringrájuk hívják, megkapja az objektum bármelyik osztályát, és akkor azt kinyomtatja, ahogy fentebb látja ("Funkció, tömb, objektum").

Azért használjuk, call(variable)mert toStringa thistulajdonság az objektum osztályt kapja meg .

Következtetés

A .toStringmetódus visszaadja az adatok string-konvertálását. Ez nagyon hasznos bizonyos esetekben, különösen az numbers.

Ebben a cikkben megtudtuk, hogyan toStringműködik a JavaScript metódus numbers, arrays és objects kapcsolatokkal, és meg is néztük egy kicsit parseInt.