ディレクトリ
(ヒープメモリの理解、スタックメモリ)の基本タイプと参照タイプJS約
ECMAScirpt変数2つの異なるデータタイプ:基本タイプ**、**参照型。
他のこのようなプリミティブ型のような用語、** **とオブジェクトタイプがあり、タイプ及び方法は、方法の種類が持っていない
にも分けることができる変数とタイプ** **不変で。
1.基本的なタイプ
基本データ型:未定義、ブール、数値、文字列、ヌル。
アクセスの基本的なタイプは、変数に格納されている実際の値を操作することができ、値によってアクセス可能です。
基本的なタイプは、次の特性があります。
**基本的な型の値が不変である**:
任意の方法は、文字列として、基本型の値を変更することはできません。
**注:**だから、基本的なタイプの値を変更します。しかし、再複製への対策、変数に割り当てられた、まったく新しい価値を取ります!!。(覚えておいてください)
次の例を示します。
langの値(メモリブロックの値)は変更されていないが、再オープンラング+のJava 'を記憶するためのメモリは、メモリアドレスが再ラングにコピーされます。
**注:**オリジナルまだ保存された「Javaのメモリ。メモリシステムが自動的に参照されていないメモリのクリーンアップを検出すると、それが空になります。
**の比較は、値のより基本的なタイプです:**
すなわち:その値が等しいことができます等しいです。
変数の二つの異なるタイプを比較するために==を使用する場合は、変換のいくつかのタイプになります。真の上記第一の比較は、デジタル及びデジタル1を比較するに変換し、結果が真です。ベーシックタイプ、同じ型のときに、2つの値、== ===と同等です。
**変数の基本的なタイプは、スタック領域に格納されている**
スタック領域は、メモリスタックメモリです。小さいため、スタックメモリ空間の、ハイからローへのメモリアドレスが制限され、高いものから安いものへは簡単に、残りのメモリアドレスを知っています。
スタック領域は、変数や変数の値を格納します。
2.参照型
1.基準値は、変数の型であります
2. ** **スタックメモリとヒープメモリを維持しながら、
JavaScriptとその他の言語は、その位置は、メモリに直接アクセスする、オブジェクトを直接操作していないメモリ空間を許可していません。したがって、参照型の値を参照することによってアクセスされ、操作対象です。むしろ、スタック領域とヒープ領域を格納するために必要なメモリの参照型は(ヒープ領域は、ヒープメモリのメモリである)オブジェクトのメモリヒープ可変識別子と点格納されたメモリのポインタスタック領域を完了して、
それが言えますこのオブジェクトは、ヒープメモリアドレスです。
場合は、次のオブジェクトがあります。
3. **参照型は、比較の基準となる比較
参照することにより2つのオブジェクトがアドレスでメモリヒープ比較する、換言すれば、アクセスの種類に言及する場合は、ヒープ・メモリ・アドレスにPERSON1とPERSON2は異なり、それは非常に明白であり、同じです。
そう**:**参照タイプの比較、および== ===差がない、同じアドレスへのすべての点は、つまり、同じオブジェクトが等しくなることです。
4.オブジェクトの割り当て
ときに別の変数への参照型の変数の値の割り当ては、オブジェクトの値は、新しい変数に割り当てられた領域にコピー変数に格納されます。上述参照型の前で話すとき、単純な割り当て大差、ヒープ内のオブジェクトの可変メモリアドレスに格納され、この値のコピーは、実際にはポインタであり、ヒープへのこのポインタは、メモリに格納されていますオブジェクト。だから、割り当てた後、お互いに影響を与える変数のいずれかを変更します。
**したがって、実際には、アドレスポインタのスタック領域に格納された参照型の割り当ての割り当て対象であるため、2つの変数が同じオブジェクトを指し、任意のアクションはお互いに影響を与えます。**