Till Startsidan
JavaScript.nu / JavaScript-kurs / Str�ngar och numeriska variabler

L�R DIG SPR�KET JAVASCRIPT
Str�ngar och numeriska variabler

Nu n�r du har l�rt dig att skriva JavaScript s� har du hela tiden anv�nt dig av str�ngar, aldrig av tal. De tal du har anv�nt �r egentligen str�ngar som bara best�r av siffror. Detta l�ter sv�rare �n det egentligen �r. Nedan ser du ett exempel:

<SCRIPT LANGUAGE="JavaScript">
<!--
tal=100;
strang=("100");
en_likadan_strang="100";

alert("Talet: "+tal);
alert("Str�ngen: "+strang);
alert("En exakt likadan str�ng: "+en_likadan_strang);
//-->
</SCRIPT>
Scriptet ovan lagrar...
Talet 100 i variabeln tal (som �r en talvariabel).
En str�ng som inneh�ller en etta och tv� nollor (100) i variabeln strang (som �r en str�ngvariabel).
En str�ng som inneh�ller en etta och tv� nollor (100) i variabeln en_likadan_strang (som allts� inte har n�gon som helt skillnad gentemot variabeln strang).

Visserligen s� ser dessa tre variabler ut som samma sak, fast det finns en skillnad - de �r av olika typer. Detta ska vi titta p� lite mera h�r nedan.

H�r har vi ett script som lagrar en talvariabel (tal) och en str�ngvariabel (strang). Sedan "plusas" variablerna ihop med sig sj�lva. Kolla f�rst p� scriptet nedan och gissa vad det kommer att st� i de tv� olika alertrutorna, och varf�r. Se sedan om du hade r�tt h�r.

<SCRIPT LANGUAGE="JavaScript">
<!--
tal=1;
strang="1";

tal=tal+tal;
strang=strang+strang;

alert("Talet plus sig sj�lv: "+tal);
alert("Str�ngen plus sig sj�lv: "+strang);
//-->
</SCRIPT>
Har du testat scriptet?
Blev svaret det du trodde?
Det kan se konstigt ut, fast �r egentligen helt logiskt. Tar du tv� tal och plusar ihop dem s� blir svaret summan av talen:
1 + 1 = 2

S�tter du ist�llet ihop tv� str�ngar (meningar) s� blir resultatet den f�rsta str�ngen plus den andra:
En etta plus en etta blir tv� ettor (som i v�rt fall kan, n�r man bara ser str�ngen, se ut som talet elva, vilket det allts� inte �r).

F�r att visa ett till exempel s� ska vi h�r anv�nda ett nytt kommando typeof(). Kolla p� scriptet nedan och se hur resultatet blir.

<SCRIPT LANGUAGE="JavaScript">
<!--
tal=1;
strang="1";

alert("Talet �r ett: "+typeof(tal));
alert("Str�ngen �r en: "+typeof(strang));
//-->
</SCRIPT>
Som du s�g stod det att variabeln tal �r ett number och att variabeln strang �r en string.

T�nk p� detta n�r du deklarerar variabler (ger en ny variabel ett v�rde). Ska det vara ett tal, anv�nd inte citationstecken.

Hur �ndrar man d� ett tal till en str�ng? Dvs om jag har ett tal, hur f�r jag det att bli en str�ng?
Detta �r ganksa simpelt. Det r�cker med att plusa till en str�ngvariabel till en talvariabel s� bli resultatet en str�ngvariabel.
Sv�rt att f�rst�?
Kolla p� scriptet nedan s� m�rker du vad som h�nder.

<SCRIPT LANGUAGE="JavaScript">
<!--
tal=1;
strang="1";
blandat=tal+strang;

alert("S�tter man ihop en string och en number med varandra s� blir resultatet: "+typeof(blandat));
//-->
</SCRIPT>
P� detta s�tt kan man plusa ihop en tom str�ngvariabel med en talvariabel s� blir resultatet en str�ngvariabel vars inneh�ll matchar talvariabelns. Fast JavaScript har �ven f�rdiga kommandon f�r att g�ra om talvariabler till str�ngvariabler och vice versa. Nedan visas ett scipt som visar detta:
<SCRIPT LANGUAGE="JavaScript">
<!--
tal=1;
strang="1";

andrat_tal=tal.toString();
andrad_strang=parseInt(strang);

alert("Talet som blev en str�ng �r nu en: "+typeof(andrat_tal));
alert("Str�ngen som blev ett tal �r nu ett: "+typeof(andrad_strang));
//-->
</SCRIPT>
H�r ser du hur man med toString() kan omvanda ett tal till en str�ng och hur man med parseInt() kan omvandla en str�ng till ett heltal. Observera att det parseInt() g�r �r att ta en tr�ng och g�ra om det till det f�rsta heltalet som det finner. Decimaltalen kapas av, de avrundas inte (f�r avrunding av tal, se kapitel 16).
Nedan visas n�gra exempel p� parseInt:
Exempel                          Resultat
parseInt("123.456")              123
parseInt("123.456abc")           123
parseInt("123,456")              123
parseInt("123 456")              123
parseInt("   123   456   ")      123
parseInt("123abc456")            123
parseInt("abc123def456ghi")      NaN  (Not a Number)
parseInt("abc")                  NaN  (Not a Number)
Ovan ser du hur parseInt kan omvandla str�ngar till heltal. Skulle du ist�llet vilja ha hela tal, dvs �ven decimalerna, s� f�r du anv�nda parseFloat(). T�nk p� att JavaScript anv�nder en punkt (.) ist�llet f�r en decimal (,) n�r den anv�nder decimaltecken. Ett vanligt decimaltecken r�knas som ett vanligt tecken utan n�gon matematisk funktion.
Nedan ser du samma exempel som ovan fast med parseFloat:
Exempel                            Resultat
parseFloat("123.456")              123.456
parseFloat("123.456abc")           123.456
parseFloat("123,456")              123
parseFloat("123 456")              123
parseFloat("   123   456   ")      123
parseFloat("123abc456")            123
parseFloat("abc123def456ghi")      NaN  (Not a Number)
parseFloat("abc")                  NaN  (Not a Number)


�ntligen �r kapitel 19 f�rdigt s� du kan hoppa vidare till det tjugonde kapitlet.






Copyright © Omid Rouhani 1997-2022; Alla r�ttigheter reserverade.
Guider: [ HTML guide ] - [ JavaScript guide ] - [ DHTML guide ] - [ Perl guide ] - [ Sitemap ]