TIL 14|Javascriptオブジェクト:オブジェクトの比較


オブジェクトの比較


今日は比較対象の方法を熟知したい.
オブジェクト間の比較を行う場合,単純にオブジェクトの形状が同じであることを理由に「同じ」とは考えられない.
{} === {}
上の相手は同じだと言ってもいいですか?
私たちの予想に反して、答えはfalseです.
私たちから見れば、2つの相手は同じです.ただし、==を使用してオブジェクトの形状を比較しても、結果は上記のようにtrueにはなりません.
オブジェクトを比較するには、オブジェクト間、関数間、または配列間を変数に保存して比較する必要があります.
オブジェクトと非オブジェクトの値が格納されます.
「リポジトリが異なるため」と理解できます.
オブジェクトは、非オブジェクトの値(文字列、数値、ブール値、null、undefined)と比較できます.以下、簡単に説明します.

1)関数や配列などの比較オブジェクト


例1>
const array = [1, 2, 'c'];
console.log (array === [1,2,c]);
正解はfalse
オブジェクト(関数や配列など)を比較すると、オブジェクトのすべての値がメモリに格納され、メモリで値が比較されます.したがってarrayと比較した[1,2,c]は,新しくメモリに入った名前のない配列値である.
だから、決して同じとは思えない.

次の例では、例を比較する方法を示します.)
例1>
const a = {color: 'pink'};
const b = a;
a.color = 'blue';
console.log(b.color);
값은 blue이다.
例1は、オブジェクトの比較です.

すべてのオブジェクトがメモリに格納され、参照されるため、b=aがクエリされる.これは、bがメモリ内のaの値を取得し、a colorの値がblueになるにつれてconsoleも使用されることを意味する.log(b.color); 青いです.
オブジェクトではなく変数を比較すると、前に見たオブジェクトとは異なる場所が表示されます.
例2>
let a = 1;
let b = 1;
console.log(a===b);
값은 true.

なぜなら、変数の値はメモリではなく異なる空間に格納されるからです.
そしてその空間の価値をもたらす.
したがって、a=1;高b=1;したがってtrueです.
QUIZ>
オブジェクトに次のオブジェクトが含まれている場合は、「チタン」値にどのようにアクセスしますか?
const moon = {
  start: {
  one: '냥냥펀치',
  two: '붕어빵',
  three: '제주도'
  four: '댕댕이',
  },
  end: '개복치'
 };

 정답은 moon.start.four; 혹은 moon['start']['four'];
参照>https://www.youtube.com/watch?v=VXVIVblOBK4&list=PLcqDmjxt30RvEEN6eUCcSrrH-hKjCT4wt&index=31