LeeWang_31
이왕31
LeeWang_31
전체 방문자
오늘
어제
  • 분류 전체보기 (234)
    • 프로젝트 (2)
      • 사이드 프로젝트 (2)
      • Codestates_pre_project (0)
    • 프론트엔드 (169)
      • Html (19)
      • CSS (18)
      • JavaScript (29)
      • Codestates (76)
      • 코딩노트 (27)
    • 백엔드 (10)
      • node (10)
    • 구르는 돌 🌑 (16)
      • Codestates (11)
      • 생각 (4)
      • 공부 흔적 (1)
    • 정보 (18)
      • 오류노트 (2)
      • 인텔리제이 정보 (9)
      • 깃 정보 (3)
      • 기타 정보 (4)
      • 안드로이드스튜디오 정보 (0)
    • CS (7)
      • 이론공부 (7)
    • App (6)
      • Android (3)
      • Kotlin (3)
    • 컴퓨터 수학 (5)
      • 암호론 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • UI/UX
  • html
  • 2693
  • 사용자 친화 웹
  • codestate
  • 안드로이드스튜디오파이어베이스
  • 백준
  • 알고리즘
  • 파이어베이스연동
  • 코플릿
  • linuix 코드스테이츠
  • TODOlist
  • css
  • JavaScript
  • 사용자친화웹
  • linux
  • DP
  • figjam
  • 사이드프로젝트
  • 번들링
  • 안드로이드스튜디오범블비
  • 1292
  • ubuntu
  • 2609
  • 생활코딩
  • 자바스크립트
  • 코딩애플
  • 웹팩
  • 코드스테이츠
  • React

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
LeeWang_31

이왕31

[JavaScript] 원시형 자료형과 참조형 자료형
프론트엔드/Codestates

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

2022. 9. 6. 11:34

코드스테이즈 41기 교육 내용을 정리하고 있습니다.
틀린 부분이 있으면 댓글로 알려주시면 감사하겠습니다.


원시 자료형

자바스크립트에서 원시형 타입의 데이터중 자주 사용하는 다섯개는 string, number, boolean, undefined, null입니다.
이들은 데이터가 하나의 정보를 갖고 있습니다.

쉽게 let a = 10; 이라는 코드를 두고 생각해 보면
a라는 이름의 메모리에는 10이라는 정보가 담겨있습니다.
그래서 누군가 console.log(a) 로 a의 정보를 호출하면,
컴퓨터는 a라는 이름의 메모리를 찾고, 안에 담겨 있는 10이라는 정보를 출력합니다.

원시 자료형은 동적 메모리를 갖습니다.
원시 자료형 각각이 메모리 크기가 정해지는데, 정보의 크기가 메모리 보다 작아도 메모리의 크기는 변하지 않고 남아있는 공간은 잉여 공간이 됩니다.
정보의 크기 보다 메모리가 작으면 오류 메세지를 보내 실행을 중지합니다.

참조 자료형

앞에서 다루지 않은 배열, 객체, 함수는 참조 자료형입니다.
이들은 원시 자료형 만으로 만들기 어려웠던 리스트 개념을 구현했고, 요소의 추가, 삭제, 수정이 용이하게 해주었다.
이들은 메모리에 정보를 직접 담지 않습니다. 정보는 heap 에서 저장하고, 메모리 안에는 정보가 담겨있는 heap주소가 저장됩니다.

let arr = [1,2,3,4,5] 라는 배열이 있다고 하겠습니다.
누군가 console.log(arr[0]) 으로 arr배열에 0번째 요소에 접근한다고 하면,
컴퓨터는 arr이라는 메모리를 찾고, 메모리 안에 heap주소를 확인해 heap으로 접근하고, 그중 0번째 요소를 출력합니다.

참조 자료형은 동적 메모리를 갖습니다.
배열과 같은 참조 자료형은 얼마나 많은 값이 들어올지 정해저 있지 않기 때문에 동적으로 크기가 계속 변화 할수 있는 특별한 메모리에 정보를 저장합니다.

특징 정리

  • 원시 자료향이 할당될 때에는 변수에 값 자체가 담기고, 참조형 자료형이 할당될 때는 보관함의 주소가 담깁니다.
  • 그래서 참조 자료형은 기존에 고정된 크기의 보관함이 아니라, 동적으로 크기가 변하는 특별한 보관합을 사용할 수 있습니다.
console.log( 3.14 === 3.14 );   // true
console.log( 'hello' === 'hello' );   // true
console.log( [] === [] );   // false
console.log( { name : 'Kim' } === { name : 'Kim' } );   // false
저작자표시 (새창열림)

'프론트엔드 > Codestates' 카테고리의 다른 글

[JavaScript] 클로저  (0) 2022.09.07
[JavaScript] 스코프  (0) 2022.09.06
[Javascript] 객체  (0) 2022.09.05
[Linux] Node.js  (0) 2022.09.02
[Linux] 패키지와 패키지 매니저  (0) 2022.09.02
    '프론트엔드/Codestates' 카테고리의 다른 글
    • [JavaScript] 클로저
    • [JavaScript] 스코프
    • [Javascript] 객체
    • [Linux] Node.js
    LeeWang_31
    LeeWang_31
    이왕 할 거면 기분 좋게

    티스토리툴바