元の値と基準値

ECMAScriptのでは、変数の値は、2つのタイプ、すなわち、元の値と基準値中に存在してもよいです。

元の値
スタック(スタック)に保存されている単純なデータセグメントは、つまり、それらの値を直接変数にアクセス可能な場所に格納されています。
参考値
ヒープ(ヒープ)に格納されたオブジェクトは、つまり、変数に格納された値は、ストレージオブジェクトのメモリを指し、ポインタ(ポイント)です。

変数を割り当てるとき、のECMAScriptインタープリタは、値がプリミティブ型または参照タイプであるかどうかを決定しなければなりません。これを行うために、我々は値がECMAScriptのプリミティブ型、つまり未定義、ヌル、ブール値、数値、文字列タイプのものであるかどうかを判断するためのプログラムを説明しようとする必要があります。スタック - 彼らは小さなメモリ領域に格納できるように、これらのプリミティブの占有スペースは、固定されているため。このような格納された値は、迅速な検索変数を容易にします。

多くの言語では、文字列は、文字列の長さが可変であるため、代わりに元の型の、参照型として扱われます。この伝統を破るのECMAScript。

値が基準型である場合、その記憶空間はヒープから割り当てられました。基準値の大きさに変更されますので、あなたは、スタックにそれを置くことはできませんが、それ以外の場合は、検索変数の速度が低下します。対照的に、スタック上の変数の値がヒープに格納されたオブジェクトのアドレス空間です。サイズが固定されているので、それは性能変数に負の影響を与えることなく、スタックに格納されているアドレス。下図のように:

スタック及びスタックに格納されたプリミティブ値と基準値

プリミティブ型

上述したように、ECMAScriptの5つのプリミティブ型(プリミティブ型)、すなわち不定、ヌル、ブール値、数値、および文字列が存在します。用語は、ECMA-262型(タイプ)を入れた値のセットとして定義され、各範囲がプリミティブ型を定義し、それはリテラル値の表現を含みます。

ECMAスクリプトは、特定のタイプの範囲内であるか否かの値を決定するために、オペレータtypeofを提供します。この演算子を使用することができる値型がプリミティブを表しているかどうかを決定する:それがプリミティブ型である場合、元の型を表す決定することができます。

おすすめ

転載: www.cnblogs.com/SallyShan/p/11483288.html