자바스크립트의 원시값과 참조값
원시값(Primitive Type)
원시값은 자바스크립트에서 가장 기본적인 데이터 유형이다. 값 자체가 메모리에 저장되며 불변성(immutable)을 가진다.
- 자바스크립트의 6가지 원시 타입
- 숫자(number): 정수와 실수를 포함한다. (예: `42`, `3.14`)
- 문자열(string): 텍스트 데이터를 의미한다. (예: `'Hello, World!'`)
- 불리언(boolean): 참 또는 거짓 값을 나타낸다. (`true`, `false`)
- null: 값이 없음을 나타낸다.
- undefined: 값이 할당되지 않았음을 나타낸다.
- symbol: 유일한 식별자를 생성한다. (ES6 추가)
원시값은 변수에 직접 할당되고, 복사될 때는 그 값을 그대로 복사한다. 즉, 다른 변수에 원시값을 할당하면 두 변수는 독립적인 값을 가진다.
let a = 10;
let b = a; // b는 a의 값을 복사
a = 20;
console.log(a); // 20
console.log(b); // 10
참조값(Reference Type)
참조값은 객체나 배열처럼 복잡한 데이터 구조에 사용된다. 값 자체가 아닌 값이 저장된 메모리 주소(참조값)가 변수에 저장된다. 참조값을 복사하면 메모리 주소가 복사되므로, 여러 변수가 동일한 객체를 가리키게 된다.
참조값을 가지는 데이터 유형:
- 객체(Object): 속성(key-value)을 포함한다. (예: `{ name: 'Alice', age: 25 }`)
- 배열(Array): 순서가 있는 값들의 리스트다. (예: `[1, 2, 3]`)
- 함수(Function): 실행 가능한 코드 블록이다.
let obj1 = { name: 'Alice' };
let obj2 = obj1; // obj2는 obj1의 참조값을 복사
obj1.name = 'Bob';
console.log(obj1.name); // 'Bob'
console.log(obj2.name); // 'Bob'
원시값과 참조값의 차이
- 원시값은 메모리에 값 자체가 저장된다. 복사하면 독립적인 값을 가지게 된다.
- 참조값은 메모리에 객체의 주소가 저장된다. 복사하면 동일한 객체를 참조하게 된다.
'STUDY > javascript' 카테고리의 다른 글
자바스크립트의 커링(Currying)에 대해서 알아보자 (0) | 2024.11.04 |
---|---|
호이스팅(Hoisting)과 TDZ(Temporal Dead Zone) (4) | 2024.10.14 |
[자바스크립트] 프로토타입 (0) | 2024.09.27 |
[면접 질문] function Person(){}, var person = Person(), 그리고 var person = new Person()의 차이점? (0) | 2024.09.25 |
쓰로틀링(Throttling)과 디바운스(Debouncing)의 차이점 (0) | 2024.09.24 |