티스토리 뷰

1.원시 자료형


  • 원시 자료형은 number, string, boolean,null,undefined 같이 고정된 저장공간을 차지하는 자료형을 의미
  • 원시 자료형을 변수에 할당하면 메모리 공간에 값 자체를 저장.
  • 선언한 변수를 다른 변수에 할당하면 값 자체만 복사되어 새로운 메모리 공간에 저장된다. 따라서 원본이 변경되도 형향이 없다.
  • 만약 변수에 새로운 값을 저장하면 기존의 값을 저장하는 공간에 새로운 값을 저장하는 것이 아닌 완전히 새로운 공간에 값을 저장한다. 이때 처음 저장된 값은 js의 가비지 콜렉터에 의해 자동으로 삭제된다. 단, 가비지 콜렉터의 실행 시점은 알 수 없다 
  • 즉,변수의 내용자체는 변화지 않기에 원시자료형은 변경 불가능한 값이고 읽기 전용이라 한다.

 

let num1=10;
let num2=num1; //새로운 저장공간에 num2에 10을 할당

num1=20;//num2는 변화없음,새로운 공간에 20을 저장하고 10이 저장된 공간은 삭제됨.

2.참조 자료형


  • 참조 자료형은 배열과 객체,함수처럼 크기가 가변적이고 대량의 데이터를 다루는 자료형을 의미
  • 참조 자료형을 변수에 할당하면 메모리 공간에 변수의 값이 아닌 주솟값이 저장된다.
  • 변수의 값의 heap이라는 다른 저장공간에 저장되고, 메모리 공간에는 이 heap의 주소값이 저장된다.
  • 만약 기존의 변수를 새 변수에 할당하면 값이 복사되는 것이 아니라 heap에 저장된 값에 접근하는 주소가 저장된다.
  • 따라서 두 변수 모두 값을 같은 저장공간을 공유하기에 한 쪽이 값을 변화 시키면 다른 쪽의 값도 변화한다. 단, 한 쪽에 원시자료형(undefined,null)이 저장되면 기존의 주소값이 사라지지만 heap자체에 영향을 주지 않기에 변화가 없다. 
  • 이를 두고 원시자료형과 반대로 참조 자료형은 변경이 가능한 값이라 한다.
let array1={1,2,3,4,5}; //heap에 값을 저장. 메모리에는 주소값 저장
let array2=array1;//메모리에 주소값 복사

array1[0]=0; 둘 다  {0,2,3,4,5}이 됨
array2[1]=11;둘 다  {0,11,3,4,5}이 됨

array1=null; array1의 주소값 삭제 ,array2는 변화없음

 

'개발 > 자바스크립트' 카테고리의 다른 글

스코프  (0) 2023.03.02
얕은 복사와 깊은 복사  (0) 2023.03.02
객체  (0) 2023.02.28
배열  (0) 2023.02.27
함수  (0) 2023.02.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함