Początkowe wartości i odwołania ECMAScript
- Poprzednia strona Rezerwowane słowa ECMAScript
- Następna strona Typy prymitywne ECMAScript
W ECMAScript zmienna może mieć dwa rodzaje wartości, tj. wartości pierwotne i wartości odniesienia.
Wartości pierwotne i wartości odniesienia
W ECMAScript zmienna może mieć dwa rodzaje wartości, tj. wartości pierwotne i wartości odniesienia.
- Wartości pierwotne
- Proste sekcje danych przechowywane w stosie (stack), co oznacza, że wartości są bezpośrednio przechowywane w miejscu dostępu do zmiennych.
- Wartości odniesienia
- Obiekty przechowywane w stosie (heap), co oznacza, że wartość przechowywana w zmiennej to wskaźnik (point), który wskazuje na pamięć przechowującą obiekt.
Podczas przypisywania wartości do zmiennej, interpreter ECMAScript musi określić, czy wartość jest typem pierwotnym, czy typem odniesienia. Aby to osiągnąć, interpreter musi spróbować określićCzy wartość jest jednym z typów pierwotnych ECMAScripttj. Undefined, Null, Boolean, Number i String. Ponieważ te typy pierwotne zajmują stałą przestrzeń, można je przechowywać w mniejszym obszarze pamięci - stosie. Takie przechowywanie ułatwia szybkie wyszukiwanie wartości zmiennych.
W wielu językach, łańcuchy tekstowe są traktowane jako typy odniesienia, a nie typy pierwotne, ponieważ ich długość jest zmienna. ECMAScript przerywa tę tradycję.
Jeśli wartość jest typem odniesienia, przestrzeń pamięci na jej przechowanie zostanie przydzielona w stosie. Ponieważ rozmiar wartości odniesienia może się zmieniać, nie można go umieścić w stosie, ponieważ to zmniejszyłoby szybkość wyszukiwania zmiennych. Zamiast tego, wartość przechowywana w przestrzeni pamięci zmiennej to adres obiektu przechowywanego w stosie. Rozmiar adresu jest stały, więc jego przechowanie w stosie nie ma żadnego negatywnego wpływu na wydajność zmiennych. Jak pokazano na rysunku poniżej:

Typy pierwotne
Jak już wspomniano, ECMAScript ma 5 typów pierwotnych (primitive type), tj. Undefined, Null, Boolean, Number i String. ECMA-262 definiuje terminTyp (type)Zdefiniowane jako zbiór wartości, każdy typ pierwotny definiuje zakres wartości, które zawiera oraz literalny sposób ich reprezentacji.
ECMAScript oferuje operator typeof do określenia, czy wartość należy do pewnego zakresu typów. Można użyć tego operatora do sprawdzenia, czy wartość reprezentuje jeden z typów pierwotnych: jeśli jest typem pierwotnym, można również określić, który typ reprezentuje.
W kolejnych rozdziałach omówimy dogłębnie oryginalne typy i typy odniesień ECMAScript.
- Poprzednia strona Rezerwowane słowa ECMAScript
- Następna strona Typy prymitywne ECMAScript