[JavaScript] 원시 타입 (primitive type)

원시 타입(primitive type)


1. Boolean
2. null
3. undefined
4. Number
5. String
6. Symbol (ECMAScript 6)
7. bigint

위 7가지는 Javascript에서의 원시 값이다.

Javascript에서 원시 값은 변경 불가능한 값(immutable value)이다.

변수에 새로운 값을 다시 할당할 수 있지만, 이미 생성한 원시 값은 객체, 배열, 함수와 달리 변형할 수 없다.

즉, 새로운 메모리 값을 새롭게 할당할 수 있지만 기존 메모리 값을 수정할 수 없다는 의미이다.



원시 타입 이외의 모든 값은 객체(Object) 타입이며 객체 타입은 변경 가능한 값(mutable value)이다. 

변경 가능하다는것은 참조하고있는 메모리의 값을 변경 할 수 있다는 의미이다.




위 내용을 이해하려면 복제와 참조에대한 이해가 필요하다.



복제는 원본데이터를 복제해서 복제된 데이터를 수정하는것이기때문에 원본데이터는 변경되지 않으며

참조는 원본데이터를 공유해서 그러니까 저장된 메모리 공간을 공유해서 서로 원본데이터를 수정할 수 있기 때문에 수정시 참조하는 모든 데이터들에서 수정이 발생된다. 즉 수정이 발생하면 원본데이터의 값이 변경된다.


가져오는 값이 원시타입이면 복제하여 사용하기때문에 원본데이터를 변경하지않고

가져오는 값이 원시타입이 아닌 객체인경우 참조를 하기때문에 원본데이터도 변경된다.

하지만 객체에 새로운 객체를 할당하면 더 이상 참조하지않고 새롭게 할당된 객체 데이터가 그 변수의 값이 된다.


댓글