プリミティブ値は、基本データ型とも呼ばれるプリミティブデータ型を表す値を指し、参照値は複合データ型の値を指します。次に、JSに元の値と参照値を格納する方法をサンプルコードを通して紹介しますので、興味のある方は一緒に見てみてください
ECMAscriptでは変数に元の値の2種類の値を格納できます。および参照値
プリミティブ値は、基本データ型とも呼ばれるプリミティブ データ型を表す値を指します。次のものが含まれます: Number、Stirng、Boolean、Null、Underfined
参照値は、オブジェクト、関数、配列、日付、RegExp を含む複合データ型の値
さまざまなデータ型に応じて、一部の変数はスタックに格納され、一部の変数はヒープに格納されます。具体的な違いは次のとおりです:
元の変数とその値はスタックに格納されます。ある元の変数を別の元の変数に渡すと、1 つのスタック ルームの内容が別のスタック ルームにコピーされ、2 つの元の変数がコピーされます。お互いに影響を与えないでください。
参照値は参照変数の名前をスタックに格納しますが、その実際のオブジェクトはヒープに格納され、参照オブジェクトが渡されると、変数名からヒープに格納された実際のオブジェクトを指すポインタが存在します。別の変数へ このとき、コピーされるのは実際のオブジェクトへのポインタです。このとき、一方の変数の値がメソッドを通じて変更されると、もう一方の変数の値も変更されます。アクセスされますが、メソッドではなく再割り当てによってアクセスされる場合、ルームを再度開くことと同じで、値の元のポインタが変更され、他の値はその変更によって変更されません。
例を見てください:
var a="hello"; var b=a; a="world"; alert(a);//world alert(b);//hello var arr=[1,3]; arr1=arr; arr.push(5); alert(arr)//1,3,5 alert(arr1);//1,3,5 arr=[7,8]; alert(arr);//7,8 alert(arr1);//1,3,5
図を使用して次のように結果を表します:
元の変数の値は相互に影響しません。参照変数 arr と arr1 は同じオブジェクトを指しているため、 arrの値がメソッドで変更された場合(ヒープルームのデータ変更)、arr1のデータにアクセスする際には、変更されたオブジェクトがアクセスされます
メソッド以外で参照変数の値が変更された場合、参照変数用にヒープ ルームが再作成され、ポインタも変更されます:
概要:
Number、Stirng、Boolean、Null、Underfined およびその他の基本的なデータ型、その値はスタックに直接保存されます。
Object、Function、Array、Date、RegExp などの参照型の場合、参照変数はスタックに保存され、ポインターを介してヒープに保存されている実際のオブジェクトを指します。上記は私があなたのためにまとめたものです。将来役立つことを願っています。
関連記事:
AJAX XMLHttpRequest オブジェクトの詳しい説明Django フレームワークは ajax を使用してデータの一括インポート機能を実装します軽量の ajax コンポーネントを記述する 3 番目の実装以上がJSにプリミティブ値と参照値を格納する方法の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。