November 05, 2021
원시 타입에는 숫자, 문자열, 불리언, undefined, null, 심벌 타입이 있습니다.
객체(참조) 타입에는 객체, 함수, 배열 등 원시 타입에 있는 6가지 데이터 타입 이외의 모든 값이 속합니다.
자바스크립트는 객체 기반의 언어이며, 자바스크립트를 이루고 있는 거의 모든 것이 객체입니다.
원시 타입의 값, 즉 원시 값은 변경 불가능한 값입니다. 한번 생성된 원시 값은 읽기 전용 값으로서 변경할 수 없습니다.객체(참조) 타입의 값, 즉 객체는 변경 가능한 값입니다.원시 값을 변수에 할당하면 변수(메모리 공간)에는 실제 값이 저장됩니다.객체를 변수에 할당하면 변수(메모리 공간)에는 참조 값이 저장됩니다.원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달됩니다. 이를 값에 의한 전달(pass(call) by value)이라 합니다.객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달됩니다. 이를 참조에 의한 전달(pass(call) by reference)이라 합니다.“원시 값이 변경 불가능하다”는 말은 원시 값 자체를 변경할 수 없다는 것이지 변수 값을 변경할 수 없다는 것은 아닙니다. 불변성을 갖는 원시 값을 할당한 변수는 재할당(새로운 메모리 공간을 확보하고 그 메모리 공간에 값 저장) 이외에 변수 값을 변경할 수 있는 방법이 없습니다.