01データ型
9895 ワード
*🔐Study Keyword :
処理方法について1>🔑データ型と2>🔑基本データ型と参照データ型の違いを理解し、それらを利用します.
データ型を区別する理由
-データ型(Data Type)のタイプ
기본형
-1>割当てまたは計算時📍この値を含む急騰値をコピーします.2>📌不変性を有する.참조형
-1>割当てまたは計算時📍値を含む長いストリーム値からなる組合せのストリーム値をコピーします.2>📌可変性を有する.元のタイプとオブジェクトのタイプの他の3つの側面
1>元のタイプの値.元の値は変更できない値です.逆に、各オブジェクトタイプの値は、変更可能な値です.
2>元の値を変数に割り当てると、拡張メモリ領域の変数として実際の値が格納されます.逆に、オブジェクトが変数に割り当てられている場合、その変数は参照値を格納します.
3>元の値を持つ変数を別の変数に割り当てると、元の値がコピーされて切り捨てられます.これを価格伝達と呼ぶ.逆に、オブジェクトを指す変数を他の変数に割り当てると、ソースの参照値がコピーされて渡されます.これを参照転送と呼びます.
💡一定値と一定点)
변수 영역의 메모리
である.변수 영역의 메모리
では、1回のデータ割り当ての変数空間が他のデータを再割り当てできるかどうかが重要であり、データを変更できない場合は定数であり、ある場合は変数である.데이터 영역의 메모리
である.데이터 영역의 메모리
では、データ値の変更は、ゴミ収集されない限り、作成された値は変更されません.差異ふへんせい
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)
<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)
差異。レプリケーション変数の比較
-📍デフォルトのタイプのプライマリ周波数値自体がメモリに格納されます.
したがって、値を含むアドレス値は、コピー時にすぐにコピーされます.
-📍参照タイプの容量が大きいため、一度にメモリに入れることができず、オブジェクトへの参照がメモリに格納されます.したがって、コピー時には、値を含む長いアドレス値のセットであるアドレス値がコピーされます.
-変数をコピーするプロセス基本型と参照型のデータには、同じアドレスが表示されます.これは同じです.
<script>
var a = 10
var b = a; //변수 a와 b 모두 값이 같아졌다.
var obj1 = { c: 10, d: 'ddd'}
var obj2 = obj1; //객체1과 객체2 역시 모두 값이 같아졌다. (=같은 주소를 향한다.)
</script>
💡2. conclusion)
<script>
//1-4 코드라인은 위의 코드와 일치
b = 15; // 변수 b의 값이 달라졌다.
obj2.c = 20; // obj2의 프로퍼티 값을 바꿔도 객체 1과 객체 2의 값은 같다.
</script>
💡2-1. conclusion)
<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
Reference
この問題について(01データ型), 我々は、より多くの情報をここで見つけました https://velog.io/@minj9_6/자바스크립트-데이터타입テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol