⊗jsPmBsATC 43 of 505 menu

Outomatiese tipe-omskakeling van data

Soos jy reeds weet, moet strings in JavaScript in aanhalingstekens geplaas word. Dit kan gebeur dat al die karakters van die string syfers is:

let a = '123';

In hierdie geval is die veranderlike a ook 'n string, maar met 'n sekere nuanse.

Die kern van die nuanse is die volgende: as jy 'n aritmetiese bewerking op 'n string met syfers uitvoer - sal hierdie bewerking uitgevoer word asof ons regtig getalle het, en nie strings nie:

alert('2' * '3'); // sal 6 vertoon

In hierdie geval sien JavaScript dat ons probeer om 'n ongeldige bewerking vir strings uit te voer, maar wat geldig is vir getalle.

Dit sien ook dat ons strings eintlik - getalle in aanhalingstekens is. Daarom voer JavaScript outomaties die omskakeling van hierdie strings na getalle uit en voer die ooreenstemmende aritmetiese bewerking daarop uit.

Dit werk slegs as daar net syfers in ons strings is. As daar ten minste een letter in is - sal JavaScript die bewerking as onkorrek beskou en die waarde NaN as resultaat gee:

alert('2' * '3s'); // sal NaN vertoon

Daarbenewens vind outomatiese omskakeling plaas as die bewerking wiskundig korrek is, maar ongeldig vir strings.

Byvoorbeeld, strings kan nie (maar getalle kan) vermenigvuldig, verdeel, aftrek nie, dus in alle sulke bewerkings sal daar outomatiese omskakeling van strings met syfers na getalle wees.

Maar, strings, net soos getalle, kan opgetel word met behulp van die operateur +. Dit beteken dat in die geval van optel geen outomatiese omskakeling sal plaasvind nie:

let a = '1' + '2'; alert(a); // sal '12' vertoon - string-optelling het plaasgevind

As een van die getalle 'n getal is, en die ander - 'n string, dan wen die string altyd:

let a = 1 + '2'; alert(a); // sal '12' vertoon

In sulke gevalle omskakel JavaScript, inteendeel, outomaties die getalle na strings en voer die optelling van strings uit.

Daar is egter nuanses wanneer daar meer as twee getalle is: in hierdie geval hang die omskakeling na 'n spesifieke tipe af van die volgorde van bewerkings.

In die volgende voorbeeld sal 2 en 3 eers as getalle bymekaar getel word, en dan sal die resultaat by die string '1' gevoeg word reeds as string '5', wat uiteindelik die string '15' sal gee:

let a = '1' + (2 + 3); alert(a); // sal '15' vertoon

As jy egter die hakies verwyder, sal alles van links na regs bymekaar getel word. Dit beteken eers sal die getal 2 by die string '1' gevoeg word en as gevolg daarvan sal die string '12' ontstaan. Dan sal die getal 3 by hierdie string gevoeg word en as gevolg daarvan sal die string '123' ontstaan:

let a = '1' + 2 + 3; alert(a); // sal '123' vertoon

Maar in die volgende voorbeeld is die getalle 2 en 3 aan die begin geskryf, dus sal hulle eers as getalle bymekaar getel word, wat die getal 5 as resultaat sal gee, en dan sal die string '1' by hierdie getal gevoeg word, wat uiteindelik die string '51' sal gee:

let a = 2 + 3 + '1'; alert(a); // sal '51' vertoon

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

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

Sonder om die kode te laat loop, bepaal wat op die skerm vertoon sal word:

let a = '' + 3 + 1; alert(a);
Afrikaans
Azə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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp