[TIL - 2022.7.11] 원시 자료형,참조 자료형

Jeong Ha Seung·2022년 7월 11일
0

부트캠프

목록 보기
13/51

원시 자료형

원시 자료형에는 string,number,boolean,undefined,null,BigInt,Symbol

이렇게 총 7가지가 있으며, 주로 쓰이는 자료형은 BigInt,Symbol을 제외하고 거의 다 쓴다고 볼 수 있다.

원시 자료형 같은 경우에는 변수에 하나의 값만 할당이 가능하다.

  • BigInt vs Number?
    BigInt의 경우 Number보다는 길이 제약이 덜 한 편이다.

엄청 큰 숫자 문자열을 BigintNumber에 각각 집어넣은 결과
Number의 경우에는 확실히 상대적으로 정확도가 떨어지는 것을 확인할 수 있다.

참조 자료형

출처 - 코드스테이츠

원시 자료형과는 달리 여러 타입,여러 개의 데이터를 저장할 수 있는데 저장소는 스택이 아니라 heap이라는 별도의 공간을 마련하여 저장한다. 이 때, 데이터를 CRUD하는 과정에서 값 자체를 참고하는 것이 아닌 주소를 참조하게 된다.

참조 자료형은 배열,객체,함수가 대표적이다.

코드를 통해 원시자료형과 참조 자료형이 어떻게 다른지 비교해보자.

let num1 = 3;
let num2 = num1;
num2 = 4;
console.log(num1, num2); //3 4

원시 자료형의 경우 num2의 값을 num1로 사용하고 이후 num2의 값을 4로 바꿔줬음에도 불구하고 num1의 값은 3으로 그대로 유지가 되었다.

let arr1 = ["a", "b", "c"];
let arr2 = arr1;
arr2[0] = "d";
console.log(arr1, arr2); //["d", "b", "c"] , ["d", "b", "c"]

참조 자료형인 배열의 경우에 arr2를 arr1에서 참조한 뒤 arr2의 첫번째 인덱스를 'd'로 교체해줬다.
하지만 arr1의 첫번째 인덱스 값의 경우 'd' 로 교체가 된 것을 알 수 있다.
왜냐하면 값 자체가 아닌 주소를 참조했기 때문이다.

profile
블로그 이전했습니다. https://nextjs-blog-haseungdev.vercel.app/

0개의 댓글