(TIL) 원시 자료형과 참조 자료형

원시 자료형 (Primitive Data Type)

객체가 아니면서 메소드를 가지지 않는 6가지의 타입의 자료형

  • string : 문자
  • number : 숫자
  • bigint : 큰 숫자 (길이의 제약 없이 정수를 다룰 수 있게 해주는 숫자형)
  • boolean : 참 또는 거짓
  • null : 값이 없음 (의도적으로 비어있음을 표현)
  • undefined : 정의되지 않은 값
  • symbol : 고유하고 변경할 수 없는 값
let fruit = "apple";
let juice = fruit; //데이터를 복사하더라도
juice = "orange"; 

console.log(fruit); // 'apple'  *기존의 데이터에 영향이 가지 않는다
console.log(juice); // 'orange'

참조 자료형 (Reference Data Type)

동적으로 크기가 변하는 데이터를 보관하기 위해 변수가 아닌 heap이라고 부르는 메모리상의 별도의 공간에 데이터를 저장하고 변수에는 그 데이터가 위치한 주소값만 담는다.

  • 배열
  • 객체
  • 함수
let fruit1 = {
  apple : "red"
};

let fruit2 = fruit1; // fruit1 안에 있는 주소값을 참조해온 후
fruit2.apple = "green"; // 데이터를 변동시키면,

// *해당 주소에 있는 데이터가 바뀌면서 모든 변수가 바뀐 값으로 표시된다
console.log(fruit1); // { apple: 'green' }  
console.log(fruit2); // { apple: 'green' }

원시 자료형과 참조 자료형의 차이

  • 원시 자료형은 변수에는 하나의 데이터만을 담을 수 있는데, 참조 자료형은 여러 데이터를 담을 수 있다.

  • 참조 자료형의 변수에는 그 데이터가 위치한 메모리상의 주소(reference)값을 담는다. 그래서 같은 값이더라도 변수에 들어있는 주소값은 다르기 때문에 아래와 같은 결과를 보여준다.

let array1 = ["apple", "banana"];
let array2 = ["apple", "banana"];
console.log(array1 === array2); //false  (변수에 들어있는 주소 값이 다르기 때문)

좋은 웹페이지 즐겨찾기