⊗jsPmBsATC 43 of 505 menu

Automatinis duomenų tipų konvertavimas

Kaip jau žinote, eilutes JavaScript'e reikia pažymėti kabutėmis. Gali būti taip, kad visi eilutės simboliai bus skaičiai:

let a = '123';

Šiuo atveju kintamasis a taip pat yra eilutė, bet su tam tikru niuansu.

Niuansas yra toks: jei su eilute, sudaryta iš skaičių, atliekama kokia nors matematinė operacija - ši operacija bus atlikta taip, tarsi mes tikrai turėtume skaičius, o ne eilutes:

alert('2' * '3'); // išves 6

Šiuo atveju JavaScript mato, kad mes bandome atlikti operaciją, kuri yra netinkama eilutėms, bet leistina skaičiams.

Jis taip pat mato, kad iš tikrųjų mūsų eilutės - tai skaičiai kabutėse. Todėl JavaScript automatiškai atlieka šių eilučių konvertavimą į skaičius ir atlieka atitinkamą matematinę operaciją su jais.

Tai veikia, jei mūsų eilutėse yra tik skaitmenys. Jei ten bus bent viena raidė - JavaScript laikys operaciją netinkama ir padarys jos rezultatą reikšmę NaN:

alert('2' * '3s'); // išves NaN

Be to, automatinis konvertavimas įvyksta, jei operacija yra matematiškai teisinga, bet neleistina eilutėms.

Pavyzdžiui, eilučių negalima (o skaičius galima) dauginti, dalinti, atimti, todėl visose tokiose operacijose bus automatiškai eilutės su skaitmenimis konvertuojamos į skaičius.

Tačiau eilutės, kaip ir skaičiai, sudedami naudojant operatorių +. Tai reiškia, kad sudėties atveju automatinio konvertavimo nebus:

let a = '1' + '2'; alert(a); // išves '12' - įvyko eilučių sudėtis

Jei vienas iš dėmenų yra skaičius, o kitas - eilutė, tai visada laimi eilutė:

let a = 1 + '2'; alert(a); // išves '12'

Tokiais atvejais JavaScript, atvirkščiai, automatiškai konvertuoja skaičius į eilutes ir atlieka eilučių sudėtį.

Tačiau yra niuansų, kai dėmenų yra daugiau negu du: šiuo atveju konvertavimas į tam tikrą tipą priklauso nuo operacijų vykdymo eilės.

Šiame pavyzdyje pirmiausia 2 ir 3 susidės kaip skaičiai, o tada rezultatas bus pridetas prie eilutės '1' jau kaip eilutė '5', kas galų gale duos eilutę '15':

let a = '1' + (2 + 3); alert(a); // išves '15'

Jei pašalinsime skliaustus, tada viskas bus sudedama iš kairės į dešinę. Tai yra, pirmiausia prie eilutės '1' bus pridėtas skaičius 2 ir rezultate gausime eilutę '12'. Tada prie šios eilutės bus pridėtas skaičius 3 ir rezultate gausime eilutę '123':

let a = '1' + 2 + 3; alert(a); // išves '123'

O štai kitame pavyzdyje skaičiai 2 ir 3 yra parašyti pradžioje, todėl pirmiausia jie susidės kaip skaičiai, duodami rezultate skaičių 5, o tada prie šio skaičiaus bus pridėta eilutė '1', duodanti galutinį rezultatą eilutę '51':

let a = 2 + 3 + '1'; alert(a); // išves '51'

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = '5' + '2'; alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = '5' + 2; alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = 5 + '2'; alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = 5 + 2; alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = '5' * '2'; alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = '5' - '2'; alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = '5' / '2'; alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = '5' % '2'; alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = '5s' * '2'; alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = '5s' + '2'; alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = (-'5') + (-'2'); alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = '5' * 1 + '2' * 1; alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = '5' * '1' + '2' * '1'; alert(a);

Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:

let a = '' + 3 + 1; alert(a);
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti