[JavaScript] 원시 자료형과 참조 자료형

Hannahhh·2022년 7월 11일
0

JavaScript

목록 보기
13/47

🔍원시 자료형과 참조 자료형


👀 원시 자료형(Primitive type data)


  • 변수 선언 시 메모리에 고정된(제한된) 크기로 저장되며 값을 할당하거나 반환할 때도 변수가 저장된 메모리에 직접적으로 접근해서 처리한다.

  • 각 변수간의 원시 타입 data를 복사할 경우, 데이터 값이 복사되기 때문에 원소에 대해 변경사항이 있어도 기존의 data에 영향이 가지 않는다.

  • 데이터 크기에 관계없이 모두 하나의 데이터를 담고 있으며(한 칸당 하나만), 값 자체는 immutable이나 변수에 다른 data를 재할당 할 수는 있다.(단, const 키워드로 선언 시 재할당 불가)


✔ 원시 자료형의 종류

number, boolean, null, undefined, string, bigint, symbol



👀 참조 자료형(Reference type data)


배열의 개수가 많을 때 즉, 대량의 데이터가 들어오는 경우, 값을 찾거나 원소를 제거,변경,추가할 때, 원시 자료형과 같이 고정된 데이터 공간을 사용하고, 메모리에 직접적으로 접근해 처리한다면 시간과 노력이 많이 필요하다. 따라서, 효율적으로 처리하기 위해서는 아래와 같은 방법으로 처리해야한다.

  • 변수 선언 후 값 할당 시, 메모리에 값 대신 변수의 값이 저장된 heap의 주소를 저장한다. 따라서, 별도의 저장공간인 heap 내에서는 데이터의 크기가 동적으로 변할 수 있다. 값을 찾을 때도 메모리 안의 주소를 보고 heap에서 찾아서 반환하며 원소를 빼거나 넣을 때 해당 주소지에서 처리한다.

  • 각 변수간의 참조 타입 data를 복사할 경우, 데이터의 주소가 복사되기 때문에 원소에 대해 변경사항이 있을 때 주소 안의 data가 변경이 되기 때문에 기존의 data에 영향을 준다.

  • 서로 다른 여러 개의 데이터를 담고 있다.


✔ 참조 자료형의 종류

array, object, function



console.log('codestates' === 'codestates');      // true
console.log(3.14 === 3.14);                      // true
console.log([1,2,3] === [1,2,3]);                // false,  
console.log({ foo: 'bar' } === { foo: 'bar' });  // false





Reference: 코드스테이츠

0개의 댓글