
코드스테이즈 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 |