[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)이다. 변경 가능하다는것은 참조하고있는 메모리의 값을 변경 할 수 있다는 의미이다. 위 내용을 이해하려면 복제와 참조에대한 이해가 필요하다. 복제 는 원본데이터를 복제해서 복제된 데이터를 수정하는것이기때문에 원본데이터는 변경되지 않으며 참조 는 원본데이터를 공유해서 그러니까 저장된 메모리 공간을 공유해서 서로 원본데이터를 수정할 수 있기 때문에 수정시 참조하는 모든 데이터들에서 수정이 발생된다. 즉 수정이 발생하면 원본데이터의 값이 변경된다. 가져오는 값이 원시타입이면 복제하여 사용하기때문에 원본데이터를 변경하지않고 가져오는 값이 원시타입이 아닌 객체인경우 참조를 하기때문에 원본데이터도 변경된다. 하지만 객체에 새로운 객체를 할당하면 더 이상 참조하지않고 새롭게 할당된 객체 데이터가 그 변수의 값이 된다.