# Primitive data type & Reference data type

Doozuu·2022년 11월 11일
0

Javascript

목록 보기
18/99

Primitive data type

변수에 값이 그대로 저장되는 데이터 타입

ex) 문자, 숫자


복사해보기

var 이름1 = '김';
var 이름2 = 이름1;
이름1 = '박';

-> 이름1은 '박', 이름2는 '김'이 출력됨.



Reference data type

: 변수에 reference가 저장됨.

reference : 화살표(경로)

ex) array, object


복사해보기

var 이름1 = {name : '김'};
var 이름2 = 이름1;
이름1.name = '박';

-> 이름1은 '박', 이름2도 '박'이 출력됨.
-> 값 자체가 저장되는게 아니라 메모리가 저장된 경로가 저장되기 때문에 이름1을 재할당하면 이름2도 같이 바뀜.
-> 복사하기 위해 object 복사 기계(constructor) 사용



예제

문제 1번

var 이름1 = {name : '김'};
var 이름2 = {name : '김'};
이름1 == 이름2; 

결과 : false
원인 : object 자체가 저장되는게 아니라 경로가 저장되는 것인데 object를 생성할 때 각각 다른 경로가 생기므로 같지 않음.



문제 2번

var 이름1 = { name : '김' };

function 변경(obj){
	obj = { name : 'park' } 
}

변경(이름1);

결과 : 값이 변경되지 않음.
원인 : 변경(이름1);는 변경(var obj = 이름1); 과 같은 의미임. 따라서 obj는 이름1이라는 object를 등호로 복사한 것이기 때문에 이름1의 경로인 { name : '김' }이 출력됨.(얕은 복사)

  • 파라미터 : 변수생성 & 할당과 같음.
profile
모든게 새롭고 재밌는 프론트엔드 새싹

0개의 댓글