[데이터 타입] 기본형과 참조형의 차이

정수·2023년 3월 5일
0

JavaScript

목록 보기
1/15
post-thumbnail

1. 기본형 데이터 타입 (primitive data type)

  • number, string, boolean, null, undefined
  • 기본형 데이터 타입은 모두 불변성
  • 데이터 변경은 데이터를 새롭게 만들어 할당해야만 이뤄집니다.
    var a = 'abc';
    주소1001...5001
    데이터이름: a
    값: @5001
    'abc'
    a = a + 'def';
    주소1001...50015002
    데이터이름: a
    값: @5002
    'abc''abcdef'

2. 참조형 데이터 타입 (reference data type)

  • object, Array, Function, Date, RegExp(정규표현식)
  • 참조형 데이터 타입은 가변성을 지니고 있습니다.
  • 직접적인 값이 변경되는 기본형과는 달리, 참조된 객체 변수의 값이 변경됩니다.
    var obj1 = { a: 10, b: 'bb' };
    주소1001...500150025003...71037104
    데이터이름: obj1
    값: @5001
    @7103 ~ ?10'bb'이름: a
    값: @5002
    이름: b
    값: @5003
    obj1.b = 20
    주소1001...5001500250035004...71037104
    데이터이름: obj1
    값: @5001
    @7103 ~ ?10'bb'20이름: a
    값: @5002
    이름: b
    값: @5004

  • 객체 자체를 변경했을 땐 새로운 객체를 할당하여 값을 직접 변경하기 때문에 가변성이 성립되지 않습니다.
    obj1.b = { a: 20, b: 'bb' };
    주소1001...50015002500350045005...71037104...82038204
    데이터이름: obj1
    값: @5005
    @7103 ~ ?10'bb'20@8203 ~ ?이름: a
    값: @5002
    이름: b
    값: @5003
    이름: a
    값: @5002
    이름: b
    값: @5004

  • 즉, 내부 프로퍼티를 변경할 때에만 가변성이 성립됩니다.
profile
해피한하루

0개의 댓글