JavaScriptの奇妙な挙動:プリミティブ型と参照型


私は最近、原始型と参照型の違いを学びました.
私は、この話題についてブログポストを書くことがすばらしいと思いました.

コードスニペットから始めましょう


let a = 1;
let b = a;

console.log(b); // 1

a = 2;

console.log(b); // 1
よく、これは大丈夫ですオブジェクトで同じことをしましょう
let a = {
  someText: 'Hello',
};

let b = a;

console.log(b); // { someText: "Hello" }

a.someText = 'Hi';

console.log(b); // { someText: "Hi" }
これは予期しないことでした?
これがなぜこのポストの終わりに起こるのか理解してみましょう.

原始型と参照型とは


JavaScriptでは、6プリミティブ型
  • 文字列
  • ブーリアン
  • NULL
  • 未定義
  • シンボル( ES 6 )
  • 3参照型
  • オブジェクト
  • アレイ
  • 機能
  • 原始型


    固定サイズのメモリに格納されているプリミティブ型
    したがって、メモリに格納された“a”の正確な値
    私は、例がここでより役に立つと思います
    私たちは変数aを作成しました

    変数bのメモリ値を変数bにコピーした

    参照型で何が起こるかを見てみましょう

    参照型


    参照型は、より複雑で、原始型と比較してより多くのスペースを取ります.
    メモリのランダムな場所に格納されるので、それらは固定メモリに格納することができません
    それの図を見ましょう

    メモリに格納されている値が真の値そのものでないことに注意してください.
    変数“a”を“b”にコピーすると、メモリ値(実際のオブジェクトへの参照)をコピーします.そういうわけで、彼らは参照値と呼ばれています.
    変数“a”をコピーするときには、実際の値をコピーしないでください.

    そういうわけで、私たちが「A」の特性を変えるとき、「B」も変わります.

    ソース


  • https://github.com/leonardomso/33-js-concepts
  • 3章値型と参照型
  • 読書ありがとう


    あなたが質問をするならば、下記に自由に感じてください.