⊗jsPmBsATC 43 of 505 menu

Տվյալների տիպերի ավտոմատ փոխակերպում

Ինչպես արդեն գիտեք, JavaScript-ում տողերը պետք է վերցնել չակերտների մեջ։ Կարող է լինել, որ տողի բոլոր նիշերը կլինեն թվանշաններ․

let a = '123';

Այս դեպքում a փոփոխականը նույնպես տող է, բայց որոշ նրբությամբ։

Նրբության էությունը հետևյալն է․ եթե թվանշաններով տողի վրա կատարենք ինչ-որ մաթեմատիկական գործողություն, ապա այդ գործողությունը կկատարվի այնպես, կարծես մենք իսկապես ունենք թվեր, այլ ոչ թե տողեր․

alert('2' * '3'); // կցուցադրի 6

Այս դեպքում JavaScript-ը տեսնում է, որ մենք փորձում ենք կատարել անընդունելի տողերի, բայց ընդունելի թվերի գործողություն։

Այն նաև տեսնում է, որ փաստացի մեր տողերը - դա չակերտներում գրված թվեր են։ Ուստի JavaScript-ը ավտոմատ կերպով կատարում է այդ տողերի թվերի փոխակերպում և կատարում է համապատասխան մաթեմատիկական գործողություն դրանց վրա։

Սա աշխատում է, եթե մեր տողերում միայն թվանշաններ կան։ Եթե այնտեղ լինի գոնե մեկ տառ - JavaScript-ը գործողությունը կհամարի ոչ ճիշտ և դրա արդյունքը կդարձնի NaN արժեքը․

alert('2' * '3s'); // կցուցադրի NaN

Բացի այդ, ավտոմատ փոխակերպում տեղի է ունենում, եթե գործողությունը մաթեմատիկորեն ճիշտ է, բայց անընդունելի է տողերի համար։

Օրինակ, տողերը չեն կարող (իսկ թվերը կարող են) բազմապատկվել, բաժանվել, հանվել, ուստի բոլոր նման գործողություններում կլինի թվանշաններով տողերի ավտոմատ փոխակերպում թվերի։

Սակայն, տողերը, ինչպես և թվերը, գումարվում են + օպերատորի միջոցով։ Սա նշանակում է, որ գումարման դեպքում ավտոմատ փոխակերպում չի լինի․

let a = '1' + '2'; alert(a); // կցուցադրի '12' - տեղի է ունեցել տողերի գումարում

Եթե գումարելիներից մեկը թիվ է, իսկ մյուսը՝ տող, ապա միշտ հաղթում է տողը․

let a = 1 + '2'; alert(a); // կցուցադրի '12'

Նման դեպքերում JavaScript-ը, ընդհակառակը, ավտոմատ կերպով փոխակերպում է թվերը տողերի և կատարում է տողերի գումարում։

Սակայն, կան նրբություններ, երբ գումարելիների թիվը ավելի շատ է, քան երկուսը․ այս դեպքում որոշակի տիպի փոխակերպումը կախված է գործողությունների կատարման հերթականությունից։

Հաջորդ օրինակում նախ 2-ը և 3-ը կգումարվեն որպես թվեր, ապա արդյունքը կգումարվի '1' տողին արդեն որպես '5' տող, որն ի վերջո կտա '15' տողը․

let a = '1' + (2 + 3); alert(a); // կցուցադրի '15'

Եթե փակագ�երը հանենք, ապա ամեն ինչ կգումարվի ձախից աջ։ Այսինքն նախ '1' տողին կգումարվի 2 թիվը և արդյունքում կստացվի '12' տողը։ Ապա այս տողին կգումարվի 3 թիվը և արդյունքում կստացվի '123' տողը․

let a = '1' + 2 + 3; alert(a); // կցուցադրի '123'

Իսկ հաջորդ օրինակում 2 և 3 թվերը գրված են սկզբում, ուստի նախ դրանք կգումարվեն որպես թվեր, տալով արդյունքում 5 թիվը, ապա այդ թվին կգումարվի '1' տողը, տալով վերջնարդյունքում '51' տողը․

let a = 2 + 3 + '1'; alert(a); // կցուցադրի '51'

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

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

Առանց կոդը գործարկելու, որոշեք, թե ինչ կցուցադրվի էկրանին․

let a = '' + 3 + 1; alert(a);
Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել