⊗jsPmBsATC 43 of 505 menu

Automatisk typkonvertering

Som du redan vet ska strängar i JavaScript omges av citationstecken. Det kan hända att alla tecken i strängen är siffror:

let a = '123';

I detta fall är variabeln a också en sträng, men med en viss nyans.

Kärnan i nyansen är följande: om du utför en matematisk operation på en sträng med siffror - kommer denna operation att utföras som om vi verkligen hade siffror, och inte strängar:

alert('2' * '3'); // visar 6

I detta fall ser JavaScript att vi försöker utföra en ogiltig operation för strängar, men giltig för siffror.

Det ser också att våra strängar faktiskt är siffror inom citationstecken. Därför utför JavaScript automatiskt en konvertering av dessa strängar till siffror och utför motsvarande matematisk operation på dem.

Detta fungerar om våra strängar bara innehåller siffror. Om det finns minst en bokstav där - kommer JavaScript att anse operationen ogiltig och göra resultatet till värdet NaN:

alert('2' * '3s'); // visar NaN

Dessutom sker automatisk konvertering om operationen är matematiskt korrekt, men ogiltig för strängar.

Till exempel kan strängar inte (men siffror kan) multipliceras, delas, subtraheras, därför kommer i alla sådana operationer automatisk konvertering av strängar med siffror till nummer att ske.

Däremot kan strängar, precis som siffror, adderas med hjälp av operatorn +. Det betyder att i fallet med addition kommer ingen automatisk konvertering att ske:

let a = '1' + '2'; alert(a); // visar '12' - strängaddition ägde rum

Om en av termerna är ett nummer och den andra - en sträng, vinner alltid strängen:

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

I sådana fall konverterar JavaScript, tvärtom, automatiskt siffror till strängar och utför addition av strängar.

Det finns dock nyanser när det finns fler termer än två: i detta fall beror konverteringen till en specifik typ på operationsordningen.

I följande exempel kommer 2 och 3 först att adderas som siffror, och sedan kommer resultatet att adderas till strängen '1' redan som strängen '5', vilket i slutändan ger strängen '15':

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

Om man dock tar bort parenteserna kommer allt att adderas från vänster till höger. Det vill säga, först kommer strängen '1' att adderas med numret 2 och som ett resultat kommer strängen '12' att erhållas. Sedan kommer detta sträng att adderas med numret 3 och som ett resultat kommer strängen '123' att erhållas:

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

Men i följande exempel står siffrorna 2 och 3 i början, så först kommer de att adderas som siffror, vilket ger som resultat siffran 5, och sedan kommer strängen '1' att adderas till detta nummer, vilket ger strängen '51' som ett resultat:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

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

Utan att köra koden, bestäm vad som kommer att visas på skärmen:

let a = '' + 3 + 1; alert(a);
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa