불변성

Jun Hyoung Park·2022년 4월 23일
0

용어정리

목록 보기
1/1

불변성

값을 직접적으로 접근할 수 없는 것

  • 원시타입에 값을 할당하는 방식으로 말할 수 있다
    • 원시타입이란
      • 기본적으로 제공되는 Boolean, String, Number, Null, undefined, Symbol와 같은 타입을 말한다

예시)

var x;
x= 3;

1. var x = undefined
2. x = 3;
  • 런타임 이전에 var x가 등록이 되고 값은 undefined로 초기화 된다

    • 렉시컬 환경의 환경 스코프에 등록이 되며 이러한 과정을 평가 과정이라 한다
  • 평가가 끝나고 코드가 실행되면 x에 3이 할당된다

    • 이때 undefined가 존재하는 메모리에 직접적으로 접근하는 것이 아니라 새로운 메모리 공간에 3을 저장하고 x에 할당한다
  • 이에 반하여 자바스크립트 참조타입은 불변성을 제공하지 않는다

예시)자바스크립트

  var array = [1,2,3];
  var abc = array;
  abc[0]= abc[0]+1;
  console.log(array,abc) // [2,2,3], [2,2,3]
  • 자바스크립트는 위와 같이 두 배열이 하나의 메모리 주소를 참조하고 있기 때문에 abc의 값을 바꾸면 array의 값도 변경되어 출력된다
profile
프론트엔드 지망생

0개의 댓글