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
- css
- react-firebaseui
- firebaseui
- React
- Spread
- 백준
- 파이썬
- youtube iframe
- 기초
- 프로토타입
- Next.js
- Rest
- Python
- iP
- 다리놓기
- mac
- 커스텀알락
- leetcode977
- yarn-berry
- 파이어베이스로그인
- 커스텀알림
- react-native
- JS
- 구조분해할당
- nvmrc
- TCPvsUDP
- 자바스크립트
- 리액트
- nvm
- leetcode189
Archives
- Today
- Total
JadeCode
[리뷰] 원시자료형, 참조자료형 본문
원시자료형
원시자료형 : primitive data types
객체가 아니면서 method를 가지지 않는 6타입이다
- (string, number,bigint,boolean,undefined,symbol,(null))
데이터 보관함 한 칸에 저장 할 수 있는 데이터이다.
참조자료형
참조자료형: reference data type
변수에 값이 아닌 주소를 저장한다.
크기가 동적으로 변하는 데이터 보관함이 필요
vs
원시타입데이터는 각 변수간의 원시타입 데이터를 복사하기 때문에 기존의 데이터에 영향이 가지 않는다.
참조타입데이터는 주소를 복사한다.그렇기 때문에 기존의 데이터에도 영향이 간다.
여기에서 mutable, immutable의 차이가 나타난다.
string(문자열)은 immutable하며 객체,배열은 mutable 하다.
//문자열
let myName = '박지영';
let myName2 = myName;
myName2 = '박소영';
console.log('myName', myName); //'박지영'
console.log('myName2', myName2); //'박소영'
//배열
let myNameArr = ['박지영'];
console.log('myNameArr', myNameArr);//[ '박지영' ]
let myNameArr2 = myNameArr;
myNameArr2[0] = '박소영';
console.log('myNameArr', myNameArr);//[ '박소영' ]
console.log('myNameArr2', myNameArr2);//[ '박소영' ]
위와 같은 자바스크립트 코드가 있다.
위의 코드는 문자열이고 아래는 배열이다.
문자열의 경우 데이터보관함 한 칸에 저장되어 복사되기 때문에 myName2의 값을 재할당하여도 myName에는 영향이 가지 않는다.
하지만 아래의 배열(참조자료형)일 경우 myNameArr2의 0번째 요소만 재할당했는데도 불구하고 myNameArr까지 영향이 가는 것을 볼 수 있다. 변수에 같은 주소가 할당되기 때문이다. 이를 얕은복사라고 부르기도 한다.
참조자료형은 heap이라는 저장 공간을 사용한다.
'개발 > 웹' 카테고리의 다른 글
[리뷰] spread, rest, 구조분해할당 (0) | 2022.05.13 |
---|---|
[리뷰] Scope & Closure, 화살표함수 (0) | 2022.05.13 |
[리뷰] 배열,객체 (0) | 2022.05.10 |
[리뷰] Linux와 Node (0) | 2022.05.09 |
[리뷰] 간단한 웹앱 만들기 (0) | 2022.05.06 |
Comments