⊗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हिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어LietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу