⊗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šuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј