ホームページ  >  記事  >  ウェブフロントエンド  >  JSの独自値と参照値の格納方法を詳しく解説

JSの独自値と参照値の格納方法を詳しく解説

小云云
小云云オリジナル
2018-03-26 09:09:581148ブラウズ

この記事では主に、JS の元の値と参照値の保存方法について詳しく説明します。元の値は、基本データ型とも呼ばれる元のデータ型を表す値を指し、参照値は を指します。複合データ型の値。次に、JSに元の値と参照値を格納する方法をサンプルコードを通して紹介します。興味のある方はぜひご覧ください。

ECMAscript では、変数はプリミティブ値と参照値の 2 種類の値を格納できます。

  • プリミティブ値は、基本データ型とも呼ばれるプリミティブ データ型を表す値を指します。次のものが含まれます。 、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 などの参照型、それらの参照変数はスタックに保存され、保存されている実際のオブジェクトを指します。ポインタを介してヒープ内に配置する

関連する推奨事項:

JavaScript はブールオブジェクトの元の値を返します valueOf()

JavaScript のプリミティブ値と複合値の理解

JavaScript_javascript のヒントのプリミティブ値と複合値

以上がJSの独自値と参照値の格納方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。