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