この記事では主に ECMAScript のプリミティブ値と参照値に関する知識を共有します。必要な方は参考にしてください
と参照値。 1.1 プリミティブ値
とも呼ばれる元の型の値を指します。 (2)
スタックに保存される単純なデータセグメント。つまり、その値は、変数によってアクセスされる場所に直接保存されます。 (3) 注
多くの言語では、文字列の長さが可変であるため、文字列はプリミティブ型ではなく参照型として扱われます。 ECMAScript はこの伝統を打ち破ります。
1.2 参照値
の値を指します。 (2)
ヒープに格納されているオブジェクト、つまり、変数に格納されている値はポインタ(ポイント)であり、オブジェクトが格納されているメモリを指します。 2. スタックとヒープ
、つまり、未定義、Null、ブール、数値、文字列のいずれかであるかどうかを判断しようとします。これらのプリミティブ型は固定スペース を占有するため、より小さいメモリ領域、つまり スタック に保存できます。このストレージにより、変数の値をすばやく簡単に検索できるようになります。 2.2 参照値はヒープに格納されます
値がヒープから割り当てられます。参照値のサイズは変化するため、スタックに置くことができず、変数の検索速度が低下します。代わりに、変数のスタック領域に配置される値は、オブジェクトがヒープ内に格納されるアドレスになります。アドレスのサイズは固定されているため、スタックに格納しても変数のパフォーマンスに悪影響を与えることはありません。 2.3 図解
3. 元の値と基準値の違い3.1 代入方法
4.4 説明 (1) 元の値の代入 → 実際には、値をコピーして新しい変数に代入します。この値は
コピー(2) 参照値の代入 → オブジェクトなどの参照型が = を使用して別の変数に代入する場合、実際にはそのオブジェクトのアドレス参照が新しい変数に代入されます。 同じ アドレス参照に、同じアドレスを持ちます。したがって、変数の 1 つ (アドレス参照が指すオブジェクト) を変更すると、もう 1 つの変数 (アドレス参照が同じオブジェクトを指す) も変更されます。
4.5 拡張
5.1 元の値の比較は値の比較です5.2 基準値の比較は引用
5.3の比較例)
== → 値のみ比較=== → 値だけでなくデータ型も比較
異なるオブジェクト
を参照しているため、obj1 と obj2 の値 (アドレス参照) は異なります。ECMAScript では、変数は元の値と参照値の 2 種類の値を持つことができます。
(1) プリミティブ値とは、Number、Stirng、Boolean、Null、Underfined など、基本型とも呼ばれる元の型の値を指します。
(2) スタックに保存される単純なデータセグメント。つまり、その値は、変数によってアクセスされる場所に直接保存されます。
(3) 注
多くの言語では、文字列の長さが可変であるため、文字列はプリミティブ型ではなく参照型として扱われます。 ECMAScript はこの伝統を打ち破ります。
(1) 参照値とは、オブジェクト、関数、配列、日付、正規表現などの参照型の値を指します。
(2) ヒープに格納されているオブジェクト、つまり、変数に格納されている値はポインタ(ポイント)であり、オブジェクトが格納されているメモリを指します。
変数に値を割り当てるとき、ECMAScript インタープリターは値がプリミティブ型であるか参照型であるかを判断する必要があります。これを行うために、インタープリターは、値が ECMAScript のプリミティブ型、つまり、未定義、Null、ブール、数値、文字列のいずれかであるかどうかを判断しようとします。これらのプリミティブ型は固定スペース を占有するため、より小さいメモリ領域、つまり スタック に保存できます。このストレージにより、変数の値をすばやく簡単に検索できるようになります。
2.2 参照値はヒープに格納されます値が参照型の場合、その記憶領域はヒープから割り当てられます。参照値のサイズは変化するため、スタックに置くことができず、変数の検索速度が低下します。代わりに、変数のスタック領域に配置される値は、オブジェクトがヒープ内に格納されるアドレスになります。アドレスのサイズは固定されているため、スタックに格納しても変数のパフォーマンスに悪影響を与えることはありません。
2.3 図解3. 元の値と基準値の違い
4.4 説明
(1) 元の値の代入 → 実際には、値であり、同じです。互いに独立して、1 つの値を変更しても他の値には影響しません。 (2) 参照値の代入 → オブジェクトなどの参照型が = を使用して別の変数に代入する場合、実際にはそのオブジェクトのアドレス参照が新しい変数に代入されます。
同じアドレス参照に、同じアドレスを持ちます。したがって、変数の 1 つ (アドレス参照が指すオブジェクト) を変更すると、もう 1 つの変数 (アドレス参照が同じオブジェクトを指す) も変更されます。
4.5 拡張
5. 異なる比較方法5.1 元の値の比較は値の比較です
5.2 基準値の比較は(1)元の値aとbはデータ型が異なりますが、値を比較することもできます。 (値の比較の前にデータ型の暗黙的な変換が自動的に行われます)
== → 値のみ比較=== → 値だけでなくデータ型も比較
ECMAScript6 変数の構造化代入の詳細な説明
JavaScript と ECMAScript の違い
ECMAScript6 を始めるための Class オブジェクトの例の詳細な説明
以上がECMAScript のプリミティブ値と引用符で囲まれた値 - JavaScript INGの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。