ECMAScript oprindelige værdier og referencer

I ECMAScript kan variabler have to typer værdier, nemlig primitive værdier og reference værdier.

Primære og reference værdier

I ECMAScript kan variabler have to typer værdier, nemlig primitive værdier og reference værdier.

Primær værdi
Lagret i en simpel data sektion af stakken, hvilket betyder, at deres værdier gemmes direkte på stedet, hvor variablen kan tilgås.
Reference værdi
Lagret i hukommelsespladsen (heap), hvilket betyder, at værdien, der gemmes i variablen, er en pege (point), der peger på lagerpladsen for objektet.

Når en værdi tildeling til en variabel, skal ECMAScript's fortolker afgøre om værdien er en primitive type eller en reference type. For at opnå dette skal fortolkeren prøve at afgøreom værdien er en af ECMAScript's primitive typerdvs. Undefined, Null, Boolean, Number og String. Da disse primitive typer tager en fast plads, kan de gemmes i en mindre hukommelsesområde - stakken. Dette gør det nemt at hurtigt søge efter variabelværdier.

I mange sprog betragtes strenge som reference typer, ikke primitive typer, fordi længden af strenge er variabel. ECMAScript bryder denne tradition.

Hvis en værdi er en reference type, vil dens lagerplads blive tildelt fra stakken. Da størrelsen på reference værdier kan ændre sig, kan de ikke placeres i stakken, ellers vil det reducere hastigheden af variabels søgning. I stedet placeres værdien, der er gemt i variabelens stakplads, som en pege (point), der peger på lagerpladsen for objektet. Som vist i det følgende billede:

Original værdier og referencer gemt i hæle og stapler

Primær type

Som nævnt tidligere har ECMAScript 5 primitive typer (primitive type), nemlig Undefined, Null, Boolean, Number og String. ECMA-262 bruger termerneType (type)Defineret som en samling af værdier, hvor hver primitive type definerer rækkevidden af de indeholdte værdier samt deres litterære repræsentationer.

ECMAScript tilbyder typeof operator til at afgøre om en værdi er inden for en bestemt type.

I de efterfølgende kapitler vil vi dykke ned i ECMAScript's primitive og reference typer.