내 머리속 JS - immutable vs mutable

JAEN·2020년 1월 29일
0

내머리속 JS 🙈

목록 보기
11/14

메모리영역에서 변경 가능 여부를 의미

  • 원시타입 : immutable (변경불가능) 값
  • 참조타입 : mutable (변경가능) 값

 


 

예시 소스로 이해하기 👀

1. 원시타입

값을 새로 할당할 경우 새로 메모리 생성하여 가리킴

let language = 'javascript';
me = 'typescript';

/* 
[result]
language: 'typescript'
 
메모리영역에는 'javascript'와 'typescript'를 가지고 있음. 
'typescript' 라는 값을 새로 생성하여 저장하므로
*/

 

2. 참조타입

let jaen = {location: 'earth'};
let jaek = jaen;

jaek.location = 'moon';

/*
[result]
jaen: {location: 'moon'}
jaek: {location: 'moon'}
 
값이 저장된 메모리 주소를 함께 바라보기 때문에 메모리 영역 값이 바뀜
*/

 

3. 원시타입 & 참조타입

let jaen = {location: 'earth'};
let jaek = jaen;
let place = jaen.location;	//'earth'

jaek.location = 'moon';

/*
[result]
place: 'earth'
jaen: {location: 'moon'}
jaek: {location: 'moon'}
*/
profile
Do myself first! 🧐

0개의 댓글