Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Beesbeesbees
- UI
- ㄷㅌ
- https://dasima.xyz/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%A0%9C%EA%B3%B1-math-pow-%EA%B3%84%EC%82%B0/
- toString#String
- 내장고차함수
- 자바스크립트#조건문#문자열
- 자바스크립트#JS#slice#splice
- https://developer-talk.tistory.com/299
- 자바스크립트
- @redux-toolkit
- dom
- removeCookie
- JS#3일차달리자#초반인데#시간금방~
- children vs childrenNodes
- 노드교과서
- User Flow
- variable#function
- cmarket
- https://lo-victoria.com/introduction-to-redux-toolkit-for-beginners
- react
- UX
- slice/splice/split
- js
- 자바스크립트#JS#var#let#const#undefined#null
- https://www.daleseo.com/js-array-slice-splice/
- for~in/for~of
- 헷갈린다~
- CSS
- redux상태유지
Archives
- Today
- Total
Daily Front_Minhhk
[JS] 원시자료형(stack) / 참조자료형(heap) 본문
원시자료형
JavaScript에서 원시 타입의 데이터(primitive data types; 원시 자료형)는
객체가 아니면서 method를 가지지 않는 6 가지의 타입
string, number, bigint, boolean, undefined, symbol, (null)
을 말합니다.
이 중에서 자주 사용하는 4 (+1)가지 원시 자료형
string, number, boolean, undefined, (null)
원시 자료형은 모두 "하나"의 정보, 즉, 데이터를 담고 있다.
===
원시 자료형은 데이터 보관함에 저장할 때 하나의 데이터만 담을 수 있다.
변수와 값이 stack에 할당된다.
원시 자료형은 값 자체에 대한 변경이 불가능(immutable)하지만, 변수에 다른 데이터를 할당할 수는 있다.
let word = "hello world!"
word = "hello man!"
// word라는 변수에 재할당을 하여 변수에 담긴 내용을 변경하는 것은 가능!
참조자료형
JavaScript에서는 참조 자료형(reference data type; 참조 타입)이라고도 부릅니다.
배열([])과 객체({}), 함수(function(){})가 대표적
변수에 넣을 수 있는 데이터 크기가 제한되기 때문에 따로 자료 구조를 구현,,
참조 자료형을 변수에 할당할 때는 변수에 값이 아닌 주소를 저장한다.
"데이터의 크기가 동적으로 변하는" 특별한 데이터 보관함이 필요해졌다 → 특별한 데이터 보관함을 heap이라고도 부릅니다.
원시 자료형과 참조 자료형의 특징
- 원시 자료형이 할당될 때에는 변수에 값(value) 자체가 담기고, 참조 자료형이 할당될 때는 보관함의 주소(reference)가 담깁니다.
- 그래서 참조 자료형은 기존에 고정된 크기의 보관함이 아니라, 동적으로 크기가 변하는 특별한 보관함을 사용할 수 있습니다.
참조 자료형의 ===(strict equality)는 주소값이 같은지를 확인
console.log('codestates' === 'codestates'); // true
console.log(3.14 === 3.14); // true
console.log([1,2,3] === [1,2,3]); // false
console.log({ foo: 'bar' } === { foo: 'bar' }); // false
// 배열, 객체, 함수는 참조자료형 -> 주소 값 비교 하기에 false
// string, number, undefined, null 은 원시자료형,, 값 비교 -> 같아? -> true
'Code개발일지' 카테고리의 다른 글
[JS] ...Spread/Rest/구조분해할당 (0) | 2022.11.08 |
---|---|
[JS] 클로저 (0) | 2022.11.07 |
[JS] 객체 (0) | 2022.11.04 |
[JS] 배열(push,pop / unshift,shift) + (for in/for of, slice/splice/split, concat, join) (0) | 2022.11.03 |
[LINUX] 기본적인 명령어 외 nvm,npm / RWE(읽기 쓰기 실행) (0) | 2022.11.02 |