スタックとヒープ
スタック(スタック)とヒープ(ヒープ)
スタックメモリ空間は、それがシステムによって自動的に解放され、自動的に割り当てられ、ヒープメモリが動的に割り当てられ、サイズが自動的に解放されないであろう
第二に、データの種類
1つの基本データ型:.
未定義、ヌル、文字列、数値、ブール(ES6用)、Symbo
2つの参照データ型:.
オブジェクト(基本データ型にJSの添加では、オブジェクト、データオブジェクトであり、関数は、通常、目的とします式)オブジェクトであります
第三に、参照データと基本データ型との違い
相違点:タイプ基準値はプロパティとメソッドを追加し、プリミティブ値できないかもしれ。
基本タイプ(値のすべての操作)
変数の基本的なタイプのに保存されたスタック内のメモリ(スタック)
の基本的なデータタイプ決定されるデータサイズ、メモリ空間を割り当てることができ
基本データ型の値はに基づいているの値 VARアクセスA = 20; ---はconsole.log( )
基本型の値は不変で
彼らの基本的なタイプの比較値の比較
参照型
型の基準値をに格納されているヒープメモリの(ヒープ)オブジェクト(Object)を
参照型の空間サイズは同じではありません
基準値はの種類に基づいて参照するvar OBJアクセス= {名:「趙麗穎」}にconsole.log(obj.name)
値は、参照型であり、変数の
基準比較基準型である比較
参照タイプが実際に格納されているヒープ・メモリー・オブジェクト変数に格納されたメモリ・スタック・ポインタ(ヒープメモリを参照アドレスに格納されている)は、ヒープメモリにこのポインタを
スタックメモリ
栗の場合:ボブとアリスは彼らの共通の妻......おそらく、このような意味を持ちます。
ヒープ
栗の場合:私は一緒に部屋を借りると美容健康美が仕事の後に部屋を掃除し、私も......家をきれいに(肌の見た目本当に幸せ)
第四に、深いコピーと浅いコピー
浅いコピー手段を作成するには、ターゲットを、オブジェクトが持っている元のオブジェクトのプロパティ値の正確なコピーを。
プロパティがプリミティブ型である場合、そのコピーは、基本型の値であるプロパティが参照型である場合、
そのコピーは、メモリ・アドレス、そのオブジェクトの一つは、プロパティの一部を変更する場合は、他のオブジェクトが影響を受けます。
ディープコピーがあるから、メモリの完全なコピーオブジェクトがあるアウト、およびヒープメモリストアに新しいメモリ領域を割り当てられ、オブジェクトのプロパティは、元のオブジェクトには影響しません変更されています。
栗の場合:
浅いコピー:(1)Object.assign方法(2)スライスオブジェクトを介してメソッドのアレイによって(4拡張演算子(3)連結配列の方法により)。
ディープコピー:( 1)JSON.stringifyによってシリアライズオブジェクトへの(2)は、手動で再帰達成しました。