これは、「xxx1」というメモリの位置をそのまま代入することになるので、reference1=「xxx1」、reference3=「xxx1」になり、イコールで一致を確認できるわけです。「{}」でオブジェクトを定義する記号、オブジェクトリテラルというのは、オブジェクトをメモリに作り出す、という機能をもっていることになります。昔の言語では、参照型はポインタと呼ばれるものだった。この言語は数値は2バイト、文字は1バイトとか、そういう変数のメモリ容量を気にしながらプログラミングする必要のある言語なのです。オブジェクトを作り出すときには、オブジェクト全体がどのくらいのメモリ容量になるかを計算(自分で!)して、メモリの位置(アドレス)を決めて、容量を確保して、アドレスを、ポインタ型の変数(参照型変数)に入れる、という何段階もの手順を経て、オブジェクトを作るようなプログラムを書く必要がありました。変数が不要になったら、メモリを解放するというのもプログラマがプログラムを書かなければいけませんでした。JSなどでは自動的に行われます。C++は細かいメモリの制御ができるものの、難しい言語だと言われています。カーナビとか炊飯器のコンピュータとか、非力なコンピュータの内部ではメモリを節約するためによく使われます。(よく知らない)C++の場合は、JavaScriptで先程説明してた「参照型変数=ポインタ」とその中に入っている値の「メモリの位置=アドレス」というものは、実際に数値として取得し、見ることができていました。JavaScriptだけではなく、現在の言語のほとんどは、このメモリの位置は見ることができなくなっていますが、参照型という仕組みはよく使われます。まとめ・値型は自然にわかる変数です。思っているのと違う振る舞いをするように一見みえる動作をします。・しかし、参照型は、参照という名のメモリの位置を示す値が入っていると考えるとわかります。オブジェクトという参照型が存在するというのは、コンピュータの初期のころの名残なのかもしれませんが、仕組みを知ってみるとメモリを節約するプログラムを書けたりするので使いこなせるようになると便利です。オブジェクトや配列のような参照型はイコールで比較しても、一致を確認することができないよ。いうことは、プログラムを作る上でかなり重要なことなので、これはしっかり覚えておきましょう。コメントをキャンセルメールアドレスが公開されることはありません。置き換え、こちらの記事でプロだとどうするのか、という感じで書いてみました。こだわりの作りをしたくなったので、もう少し実用化してみました。Array配列は変数をずらっと並べたものです。学んでいる「変数」は数字を入れる「箱」のようなものだ、と表現されたりしますが、そのような表現だと「配列」は「箱が連続して並んだもの」と表現できるでしょう。エンジニアには切っても切り離せないほどに重要なプラットホームです。変数は、どんなプログラミング言語にも登場する、数値や文字列を入れておく箱、みたいな仕組み、です。変数宣言について説明します。論理演算子「&&」と「||」Boolean型と組み合わせて使うのが「&&」と「||」です。これは論理演算子の「アンド」と「オア」と呼ばれます。他言語もつかいこなせるようになればパワフルなのは当たり前なのですが、JSには絶対的に他言語にはかなわないパワフルな点があります。横取り関数についてはたくさん記事を書いています。