본문 바로가기
Front-End

[JS] 참조형과 원시형

by Judy 2020. 4. 30.

 

참조형과 원시형 차이

 

원시 값은 불변이고, 원시 값을 복사/전달할 때는 값 자체를 복사/전달.

'원본'의 값이 바뀌더라도 '사본'의 값이 따라서 바뀌지 않음.

let a = 1;

let b = a; // b는 a를 가리킬 뿐 a가 아님.
a = 2; // a의 값을 바꿈.

console.log(b); // 1 // 재할당한 값으로 바뀌지 않음.

a === 2; // true

 

값 자체를 전달하므로 함수 안에서 변수의 값이 바뀌어도 함수 외부에서는 바뀌지 않은 상태로 남음.

function func(a) {
	a = 5;
    console.log(a); // 5
}
a = 3;

func(a);
console.log(a); // 3

 

객체를 가리키는 변수는 그 객체를 가리키고 있을 뿐, 객체 자체는 아니므로 변수와 객체는 일치하지 않음.

let a = { a: 3 };
a === { a: 3 } // false
function change(o) {
	o.a = 999;
}
    
let o = { a: 1 };
change(o);
console.log(o); // { a: 999 }

 

'Front-End' 카테고리의 다른 글

[JS] 배열  (0) 2020.04.30
[JS] 스코프  (0) 2020.04.30
[JS] 함수  (0) 2020.04.30
[JS] 표현식과 연산자  (0) 2020.04.30
[JS] 리터럴과 변수, 상수, 데이터 타입  (0) 2020.04.30