ECMAScript variabler

Använd var-operatorn för att deklarera variabler.

Variabelnamn måste följa några enkla regler.

Deklarera variabler

Som vi lärde oss i föregående avsnitt definieras variabler i ECMAScript med var-operatorn (en förkortning av variable). Till exempel:

var test = "hi";

I detta exempel har variabeln test deklarerats och dess värde initialiserats till "hi" (sträng). Eftersom ECMAScript ärSvag typär nödvändig, så tolkningsprogrammet skapar automatiskt en strängvärde för testIngen tydlig typdeklaration.

Man kan också definiera två eller flera variabler med samma var-sats:

var test1 = "hi", test2 = "hello";

Föregående kod definierade variabeln test1 med initialvärdet "hi", samt variabeln test2 med initialvärdet "hello".

MenVariabler definierade med samma var-sats behöver inte ha samma typSå här:

var test = "hi", age = 25;

Denna exempel, förutom att (igen) definiera test, definierar också age och initialiserar den till 25. Även om test och age tillhör två olika datatyper är detta helt giltigt i ECMAScript.

Skillnaden från Java är att variabler i ECMAScript inteDet behöver inte initieras(de initieras bakom kulisserna och kommer att diskuteras senare)。Därför är följande rad också giltig:

var test;

Och skillnaden från Java är också variablerKan lagra olika typer av värden. Detta är fördelen med svaga typar. Till exempel kan man initialisera en variabel med ett strängvärde och sedan sätta den till ett numeriskt värde, så här:

var test = "hi";
alert(test);
test = 55;
alert(test);

Detta kodexempel kommer utan problem att skriva ut strängvärden och numeriska värden. Men, som nämnts tidigare, är det en bra kodvanliga alltid att lagra värden av samma typ.

Namnge variabler

Variabelnamn måste följa två enkla regler:

  • Den första tecknet måste vara en bokstav, understrecksymbol (_), eller dollarsymbol ($)
  • Övriga tecken kan vara understrecksymboler, dollarsymboler eller vilka bokstäver eller numeriska tecken som helst

Följande variabler är giltiga:

var test;
var $test;
var $1;
var _$te$t2;

Kända namngivningsregler för variabler

Bara för att variabelns syntax är korrekt, betyder inte det att de bör användas. Variabler bör också följa något av följande kända namngivningsregler:

Camel-markering

Första bokstaven är liten, och de följande bokstäverna börjar med stor bokstav. Till exempel:

var myTestValue = 0, mySecondValue = "hi";

Pascal-markering

Första bokstaven är stor, och de följande bokstäverna börjar med stor bokstav. Till exempel:

var MyTestValue = 0, MySecondValue = "hi";

Ungersk typmarkering

Lägg till en liten bokstav (eller en följd av små bokstäver) framför variabler som är namngivna med Pascal-markering för att indikera deras typ. Till exempel, i betyder heltal, s betyder sträng, som visas här:

var iMyTestValue = 0, sMySecondValue = "hi";

Denna tutorial använder dessa prefix för att göra exempelkoden lättare att läsa:

Typ Prefix Exempel
Array a aValues
Boolskt b bFound
Flyttal (nummer) f fValue
Funktion fn fnMethod
Heltal (nummer) i iValue
Objekt o oType
Reguljärt uttryck re rePattern
Sträng s sValue
Typ (kan vara vilket som helst) v vValue

Variabeldeklaration är inte nödvändig

En annan intressant aspekt av ECMAScript (och en viktig skillnad från de flesta programmeringsspråk) är att det inte är nödvändigt att deklarera variabler innan de används. Till exempel:

var sTest = "hello ";
sTest2 = sTest + "world";
alert(sTest2);

I ovanstående kod, först deklarerar vi sTest som en sträng med värdet "hello". På nästa rad kombinerar vi sTest med strängen "world" med hjälp av variabeln sTest2. Variabeln sTest2 har inte definierats med var-operatorn, utan har bara infogats här, som om den redan hade deklarerats.

När ECMAScripts tolkare stöter på en inte deklarerad identifierare, skapar den en global variabel med namnet på variabeln och initierar den med det specificerade värdet.

Detta är fördelen med denna språk, men det är också farligt om man inte kan spåra variablerna noggrant. Det bästa vanan är att alltid deklarera alla variabler som man använder, precis som med andra programmeringsspråk.