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 toString
módszer, és hogyan lehet egy számot (és néhány más adattípust) karakterlánccá konvertálni ezzel a módszerrel.
A toString
mó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 toString
mó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 toString
szá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"
parseInt
egy 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 parseInt
tér vissza Nan
.
Hogyan lehet konvertálni tömböt karakterláncra a JavaScript-ben
A tömböknél is megvan a toString
mó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 toString
objektum 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 object
s 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 toString
módszerrel.
Amikor toString
rá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 toString
a this
tulajdonság az objektum osztályt kapja meg .
Következtetés
A .toString
metódus visszaadja az adatok string-konvertálását. Ez nagyon hasznos bizonyos esetekben, különösen az number
s.
Ebben a cikkben megtudtuk, hogyan toString
működik a JavaScript metódus number
s, array
s és object
s kapcsolatokkal, és meg is néztük egy kicsit parseInt
.