[Js] 원시 자료형, 참조 자료형

걸음걸음·2023년 1월 2일
0

Javascript

목록 보기
3/7

원시 자료형(primitive data types)

객체가 아니면서 method를 가지지 않는 타입. string, number, bigint, boolean, undefined, symbol, (null)을 지칭.
하나의 변수에는 하나의 데이터만 담고 있음.
ex)

let a = 1;
let b = 2;
console.log(a) // 1
let c = a;
c = 4;
console.log(a) // 1
console.log(c) // 4

값 자체에 대한 변경은 불가능. 해당 변수에 다른 데이터를 할당하는 것은 가능.

참조 자료형(reference data type)

원시 자료형이 아닌 모든 타입. 배열, 객체, 함수 등.
heap이라는 특별한 데이터 보관함에 데이터를 저장되고, 변수에는 해당 데이터의 위치를 담음.
(따라서 동적으로 크기를 변경 가능)
주소를 저장하기 때문에 같은 주소를 공유하는 변수의 경우, 한 변수에서 값을 변경하면 그 변경은 주소를 공유하는 다른 변수에도 영향을 미친다.
ex)

let first = { a:0 };
let second = first;
second.a = 5;
console.log(first) // { a:5 }

참고

console.log('code' === 'code) // true
console.log([1,2,3] === [1,2,3]) // false (주소값이 다르기 때문에)

let first = { a:0 }
let second = first;
second = 5;
console.log(first, second) // { a:0 }, 5

let score = 50;
function change(value){
 value = 100;
}
change(score)
console.log(score) // 50
// score은 원시자료형이기 때문에 주소값을 전달하지 않고 값을 복사하여 전달.
// 따라서 초기에 할당된 값이 유지.
profile
꾸준히 나아가는 개발자입니다.

0개의 댓글