원시 자료형과 reference 타입 본격정리

0

javascript

목록 보기
19/34
post-thumbnail
post-custom-banner

📌 원시 자료형 : 객체가 아니면서 method를 가지지 않는 데이터 string, number, bigint, boolean, undefined, symbol

  • 원시 자료형 그자체와 원시 자료형이 할당된 변수를 구분 하여야한다.
  • let, var 는 재활당이 가능하고 const는 재활당이 불가하다.
  • 변수의 크기는 고정되어 있다.
  • 원시 자료형을 변수에 할당할 경우 값자체 복사가 일어 난다.

📌 reference타입 : 데이터는 별도로 관리되고, 우리가 직접 다루는 변수에는 주소가 저장 배열([])과 객체({}), 함수(function(){})가 대표적 이다.

  • 변수의 크기가 동적으로 변한다.
  • 데이터 자체는 변도의 메모리 공간에 저장된다.
  • 데이터가 위치한곳을 가리키는 주소가 변수에 저장된다.
  • 자료형을 변수에 할당할 경우 값의 주소가 저장된다. (동일한 데이터를 바라보게 만든다)


y에 x를 할당 하였습니다. 그럼 x에 할당되어져있는 객체의 값이 할당되는 것이 아닌 객체 데이터가 가르키는 주소를 할당 한것입니다.
그런다음 y.foo를 2로 재할당 하였습니다. y와 x는 현재 같은 주소를 가르키고 있으니 y에서 foo 라는 키의 값을 2로 재할당 하였기에 x가 가르키고 있는 주소에 해당되는 값도 재할당 되었습니다. 그래서 x.foo는 2 이다.


원시적인 자료들은 값을 비교 하므로 1번째와 2번째는 true를 출력하고
레퍼런스 타입 들은 값비교를 하는것이 아니기 때문에 3번째 4번째는 false를 출력한다.


ourArray에 myArray의 주소값을 할당 시켰습니다. ourArray와 myArray는 같은 주소를 가르키고 있습니다.
outArray[2]를 재할당 했으로ourArray는 [2,3,25,5] 의 주소를 가르키고 있고 myArray도 같은 주소의 값을 가르키고 있으므로
myArray도 [2,3,25,5] 이다.


doStuff(player)함수를 실행시키면 매개변수 obj에 player가 삽입되고 player.socre =2 로 재할당된다.
그러므로 player.score은 2이다.

profile
👩🏻‍💻항상발전하자 🔥
post-custom-banner

0개의 댓글