primitive type
JavaScript의 primitive(value) type의 DataType은 Boolean, null, undefined, String, Number가 있다.
- 값을 복사한다.
- 값을 복하는 것을 call by value(pass by value)라고 부른다.
let x = 10;
let y = 'abc';
let a = x;
let b = y;
console.log((x, y, a, b);
a = 5;
b = 'def';
console.log(x, y, a, b);
reference type
reference type의 DataType은 Array,Function,Objcet가 있다.
- 컴퓨터 메모리의 주소값을 가진다.
- 주소값을 참조하는 것을 call by reference(pass by reference)라고 부른다.
- 주소값을 가지기 때문에 안에 있는 데이터는 가지고 있지 않는다.
let arr = [];
arr.push('abc');
| Variables | Values | Address | Objects |
|---|
| 첫번째 줄 | arr | <#001> | #001 | [] |
| 두번째 줄 | arr | <#001> | #001 | ['abc'] |
객체를 할당
let obj = { start : 0 };
newObj = obj
| Variables | Values | Address | Objects |
|---|
| 첫번째 줄 | obj | <#001> | #001 | { start : 0 } |
| 두번째 줄 | newObj | <#001> | | |
객체 재할당
let obj = { start : 0 };
obj = { end : 10 }
| Variables | Values | Address | Objects |
|---|
| 첫번째 줄 | obj | <#001> | #001 | { start : 0 } |
| 두번째 줄 | obj | <#121> | #121 | { end : 10 } |