원시 자료형과 참조 자료형에 대해 알아보자
- 원시 자료형
- 하나의 변수에 하나의 데이터만을 담을 수 있는 자료형이다.
- 객체가 아니면서 metnod를 가지지 않은 원시 타입 데이터이다.
- 예시
let string_type = 'string'
let number_type = 12345
let bigint_type = 9007199254740991n
let boolean_type = true
let undefined_type = undefined
let symbol = Symbol('foo');
- 참조 자료형
- 원시 자료형을 제외한 모든 것들은 참조 자료형이다.
- 변수에다 주소를 저장하고 값을 불러올 경우 주소를 참조해서 가져온다.
- (heap) 힙이라고 불리는 데이터를 저장하는 공간이 따로 있다.
- 크기가 고정되어 있지 않고 값에 따라 달라진다
- 예시
let array_type = [0,1,2,3,4,5]
let object_type = [name:'samsamgo' age:'20']
원시 자료형과 참조 자료형의 차이점
원시 자료형에서 하나의 변수에 여러 개 데이터를 저장할 수 없다
//원시 자료형
let val = 3,3,4,5,6,7
condole.log(val)// 출력 Unexpected number error발생
//참조 자료형
let val = [name: 'samsamgo', age: '20']
condole.log(val)// 출력 {name: 'samsamgo', age: 20}
원시 타입의 경우 값을 복사하여 데이터를 바꿔도 다른 데이터의 영향을 끼치지 않음
//원시 자료형
let val = 3
let val_co = val
val_co = 5
condole.log(val)// 출력 3
condole.log(val_co)//출력 5
//참조 자료형
let val = [name: 'samsamgo', age: '20']
let val_co = val
val_co['sex'] = 'Male'
condole.log(val)// {name: 'samsamgo', age: 20, sex: 'Male'}
condole.log(val_co)//{name: 'samsamgo', age: 20, sex 'Male'}
참조 자료형의 주소 저장법
let mtArryt = []라는 배열을 생성하면 위와 같이 생기게 된다.
원시 타입들의 값은 직접 변수들에 할당되어서 저장되지만 참조 타입의 경우 heap라는 데이터 공간을 만들어 메모리의 주소 값을 저장한다.
만약 주소에 들어 잇는 데이터를 바꾸게 되면 myArray는 주소 값은 데이터를 받아오기 때문에 다른 변수에 값을 할당해서 바꾼다 하더라도 22 vvcx011을 공유하고 있는 모든 데이터는 변경되게 된다.
728x90
반응형
'프론트 엔드 > javascript' 카테고리의 다른 글
[JavaScript]html에서 JavaScript를 실행하기 (0) | 2022.09.18 |
---|---|
[JavaScript]스코프 (0) | 2022.09.06 |
[JavaScript]객체 (0) | 2022.09.05 |
[JavaScript]for문 (0) | 2022.08.24 |
[JavaScript]문자열 (0) | 2022.08.24 |