JavaScript の値と参照

PHPz
PHPzオリジナル
2024-07-18 00:40:191193ブラウズ

JavaScript values vs reference

JavaScript で変数がどのように保持されるかを理解します: 値または参照として

JavaScript、またはプログラミングにおいて、変数とは、データを保存するために使用されるコンピューターのメモリ内の場所です。変数は宣言され (名前と識別子が与えられ)、言語に応じて、すぐにまたは後で値を割り当てることができます。この変数は、同じ値を明示的に再度指定するのではなく、プログラムの後半で参照できます。

JavaScript では、データは値の形式で渡されます。これらの値は、プリミティブ値またはオブジェクト値のいずれかになります。 JavaScript 開発者として、JavaScript がデータを処理する方法を理解することは、言語の強力な基礎を身に付けるために非常に重要です。

プリミティブ値には次のものが含まれます:

  • 文字列。
  • 数字。
  • ブール値。
  • BigInt.
  • シンボル。
  • 未定義。

一方、オブジェクトの値は次のとおりです:

  • 配列
  • 機能。
  • オブジェクト

これらの値の型は、渡されるときに異なる動作をします。以下のスニペットを考慮してください。

var myName = "フレッド";
var otherName = myName;
myName = "アシュリー";
console.log(私の名前); //アシュリー
console.log(otherName); //フレッド

otherName は myName の「コピー」のように見えますが、同じままであることに注意してください。実際には、otherName に myName が割り当てられたとき、文字列 "Fred" のコピーとして割り当てられるのではなく、新しい文字列 "Fred" が作成されました。したがって、myName と otherName の間には直接的なリンクはありません。これは、JavaScript がプリミティブ値を渡す方法です。

オブジェクト値は異なる方法で処理されます。以下のスニペットを見てください:

var myObj = {color: "red"};
var otherObj = myObj;
myObj.color = "青";
console.log(myObj.color); //青
console.log(otherObj.color); //青

ここでは、オブジェクトが作成されて myObj に割り当てられ、次に otherObj に割り当てられています。myObj の color プロパティを変更するだけで、otherObj と myObj の両方のカラー プロパティがどのように変更されるかを見てください。これは、オブジェクトの値が参照として渡されるためです。 myObj はオブジェクトを直接参照せず、代わりにその参照を指します。otherObj には、実際のオブジェクトへの参照である myObj が割り当てられます。したがって、両方の変数は同じ参照を指しているため、同じオブジェクトにリンクされており、一方の変更は他方にも影響します。

これが、2 つのオブジェクトの比較 (===) が直接 false を返す理由であり、文字通り 2 つの異なる参照を比較していることになります。ここでは、同じ参照を比較しているため、myObj === otherObj は true を返します。

これにより、JavaScript が舞台裏でどのように動作するかについて、新たな視点が得られることを願っています。

それまではバグのない状態を保ってください。

以上がJavaScript の値と参照の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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