|
|
![]() |
||
|
|
|||
|
JavaScript.nu
/
JavaScript-kurs
/
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:
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?
<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 ] |