Primitive value and Objects

Ujeon 🍵
2 min readJul 28, 2019

--

데이터 타입

데이터 타입에는 일곱 가지 형태가 존재한다.

  1. Boolean
  2. Null
  3. Undefined
  4. Number
  5. String
  6. Symbol (ECMAScript 6)

그리고 Object이다.

값이 변할 수 없다?

Object를 제외하면, 나머지 데이터 타입의 값은 변경할 수 없다. 이러한 것을 primitive value, 원시 값이라 일컫는다.

String을 예시로 들어보자. 일단 한 번 문자열이 생성되면 그 값을 변경할 수 없다. 물론 String.concat() 이나 + 연산자 등을 사용하여 원래 문자열에서 수정된 문자열을 만드는 것은 가능하다.

하지만, 기본적으로 String을 포함하여 Object를 제외하면 값을 변경할 수 없다.

그렇다면 객체는 어떨까?

객체는 식별자로 참조할 수 있는, 메모리에 있는 값을 의미한다. 객체를 어떤 변수 A와 B에 각각 할당하면 A와 B에 객체가 복사되는 것이 아니라, 해당 객체의 주소를 참조하게 된다. 그렇기 때문에 만일 B에서 객체의 프로퍼티를 변경하게 되면 A 역시 같은 객체를 참조하고 있기 때문에 영향을 받게 된다.

이 블로그를 작성한 이유는 배열이 객체와 같이 서로 다른 변수에 할당하면 복사되는 것이 아니라 주소 값을 참조하는 것인지 잘 몰라서 작성하게 되었다. 처음에는 배열 역시 ‘변경 불가능’ 한 것이라 생각하였다. 하지만 배열 역시 객체처럼 주소 값을 참조하기 때문에 변경가능 하다는 것을 알게 되었다.

--

--

Ujeon 🍵
Ujeon 🍵

Written by Ujeon 🍵

Hi there, this is Ujeon. I want to be a developer who passes on value through development :)

No responses yet