01データ型


*🔐Study Keyword :


処理方法について1>🔑データ型と2>🔑基本データ型と参照データ型の違いを理解し、それらを利用します.

データ型を区別する理由

  • の値を格納するときに解放する必要があるメモリのサイズ
  • は、
  • の値を参照するときに一度に取得する必要があるメモリ領域のサイズを決定するために使用される.
  • は、メモリから取得されたバイナリ数をどのように解釈するかを決定する.

    -データ型(Data Type)のタイプ

  • JavaScriptのデータ型は、基本タイプ(元のタイプ)と参照タイプ(参照タイプ)に大きく分けられます.
  • <要約>기본형-1>割当てまたは計算時📍この値を含む急騰値をコピーします.2>📌不変性を有する.참조형-1>割当てまたは計算時📍値を含む長いストリーム値からなる組合せのストリーム値をコピーします.2>📌可変性を有する.
    元のタイプとオブジェクトのタイプの他の3つの側面
    1>元のタイプの値.元の値は変更できない値です.逆に、各オブジェクトタイプの値は、変更可能な値です.
    2>元の値を変数に割り当てると、拡張メモリ領域の変数として実際の値が格納されます.逆に、オブジェクトが変数に割り当てられている場合、その変数は参照値を格納します.
    3>元の値を持つ変数を別の変数に割り当てると、元の値がコピーされて切り捨てられます.これを価格伝達と呼ぶ.逆に、オブジェクトを指す変数を他の変数に割り当てると、ソースの参照値がコピーされて渡されます.これを参照転送と呼びます.
    💡一定値と一定点)
  • 変数と定数を区別する変更可能なオブジェクトは변수 영역의 메모리である.변수 영역의 메모리では、1回のデータ割り当ての変数空間が他のデータを再割り当てできるかどうかが重要であり、データを変更できない場合は定数であり、ある場合は変数である.
  • が不変であるか否かを区別する場合、変更可能な対象は데이터 영역의 메모리である.데이터 영역의 메모리では、データ値の変更は、ゴミ収集されない限り、作成された値は変更されません.
  • -WHAT IS❓
  • 🔑基本タイプ(primitive type)とは、これ以上小さな単位で区分できない項目(single item)を指す.
  • の基本タイプには、数字、文字列、boolean、null、undefinedがあり、ES 6にはSymbolが追加されています.
  • -WHAT IS❓
  • 🔑「参照タイプ」(Reference Type)とは、1つのアイテムを組み合わせて1つの単位で管理することを意味します.
  • 参照タイプには、オブジェクト(Object)、配列、関数、Date、正規表現などが含まれ、ES 6に追加されたMap、WeekMap、Set、WeekSetなどがオブジェクトのサブカテゴリに属します.
  • -Difference❓

    差異ふへんせい


    1-1. 📌基本データ型には不変性があります.
    <script>
    var a = 'abc'
    a =  a + 'def' //'abc'와'abcdef'는 별개의 데이터이다.
    var b = 5
    var c = 5;
    b = 7; //5와 7 역시 다른 값으로 변경할 수 없다.
    </script>
    -step1. 変数aに文字列「abc」を割り当てます.
    -step2. 新しい文字列「abcdef」を作成し、そのアドレスを変数aに格納します.
    -step3. 変数bに数字5を指定すると、データ領域で5を検索し、ない場合はデータ空間を作成して格納する.
    -step4. 変数cに同じ数字5を割り当てると、データ領域で5を検索して値を作成し、アドレスを再使用します.
    -step5. 変数bの値を7に変更すると、以前に格納されていた7が見つかった場合は回収し、なければbに再作成して格納する.

    💡1-1. conclusion)

  • 基本データ型は、文字列値を一度に変更することも、数値値を他の値に変更することもできません.(=🎇不変性)
  • は、どのような変換を行っても無条件に再作成され、個別の空間に格納される.
  • 1-2. 📌参照型データ型に可変性があります.
    <script>
    var obj1 = {
    	a :1,
        b ; 'bbb'
    };
    obj.b = 2;
    </script>
    -step1. 変数領域の空白(@1002)を確保し、確保された空間の識別子をobj 1と指定します.
    -step2. いずれかのデータ格納空間(@5001)にデータを格納すると、データは複数のプロセッサからなることが判明するので、その内部を格納するプロセッサのために独立した変数領域を用意し、その領域のアドレス(@7103~?)@5001に格納されます.
    -step3. @7103および@7104では、それぞれaおよびbをproperty名として指定する.
    -step4. データ領域で数字1を検索し、検索結果がなく、ランダムに@5003に格納し、このアドレスを@7103に格納する.同様に、文字列「bbb」もランダムに@5004に格納され、このアドレスは@7104に格納される.
    -step5. objのa propertyで数字2を再割り当てすると、データ領域で数字2を検索し、なければ空白@5005に格納し、このアドレスを@7103に格納する.

    💡1-2. conclusion)

  • 基本型データとの違いは、「オブジェクトの変数(property)領域」が独立して存在することである.
  • obj 1のアドレス@5001は変更されていません(=データ領域に格納されている値は変更されません)が、既存のオブジェクトの変数(Property)領域値(=🎇可変値の性質)が変わりました.
  • 差異。レプリケーション変数の比較


    -📍デフォルトのタイプのプライマリ周波数値自体がメモリに格納されます.
    したがって、値を含むアドレス値は、コピー時にすぐにコピーされます.
    -📍参照タイプの容量が大きいため、一度にメモリに入れることができず、オブジェクトへの参照がメモリに格納されます.したがって、コピー時には、値を含む長いアドレス値のセットであるアドレス値がコピーされます.
    -変数をコピーするプロセス基本型と参照型のデータには、同じアドレスが表示されます.これは同じです.
    <script>
    var a = 10
    var b = a; //변수 a와 b 모두 값이 같아졌다.
    var obj1 = { c: 10, d: 'ddd'}
    var obj2 = obj1; //객체1과 객체2 역시 모두 값이 같아졌다. (=같은 주소를 향한다.)
    </script>

    💡2. conclusion)

  • 基本データ型📍株価(=値を含む)をコピーするプロセスは1回のみ行われます.
  • 参照データ型のプロセスは、次のとおりです.📍もう1つのステップ(=オブジェクトの変数「Property」領域)を経ると異なります.
  • 2-1)変数をコピーして値を変更した結果-オブジェクトのプロパティを変更した場合
    <script>
    //1-4 코드라인은 위의 코드와 일치
    b = 15; // 변수 b의 값이 달라졌다.
    obj2.c = 20; // obj2의 프로퍼티 값을 바꿔도 객체 1과 객체 2의 값은 같다. 
    </script>

    💡2-1. conclusion)

  • 変数aおよびbは異なるアドレスを指すが、obj 1およびobj 2は依然として同じオブジェクトを見ている.
  • <script>
    //이를 코드로 표현하면 다음과 같다.
    a !== b
    obj1 === obj2
    </script>
    2-2)変数をコピーして値を変更した結果-オブジェクト自体を変更した場合
    <script>
    //1-4 코드라인은 위의 코드와 일치
    b = 15;
    obj2 = { c: 20, d: 'ddd'} 
    // obj2에 새로운 객체를 할당함으로써 값을 직접 변경
    </script>

    💡2-2. conclusion)

  • メモリデータ領域の新しい空間に新しいオブジェクトが格納され、そのアドレスが格納されます.
    変数領域のobj 2位置に格納され、値が変更されます.
  • (すなわち、参照データの「可変」)は、データ自体を変更するのではなく、内部プロファイルを変更する場合にのみ成立します.
  • 📑Study Source


    1.Book-Core JavaScript