값 (Value)
값이란 데이터를 의미하며, 이는 특정 맥락에 따라 다르게 해석될 수 있습니다.
- 데이터 맥락: 값은 원시 데이터 (primitive value) 또는 해당 데이터를 감싸는 객체 래퍼(wrapper) 안에 포함된 값을 가리킬 수 있습니다.
- 변수 또는 속성 맥락: 값은 원시 데이터일 수도 있고, 객체를 참조하는 객체 참조(reference)일 수도 있습니다.
원시형
들어가기에 앞서, 원시 값에 대해 알아봅시다.
원시 값이란?
객체가 아니면서 메서드 또는 속성도 가지지 않는 데이터입니다.
그 예로, string, number, bigint, boolean, undefined, symbol, null이 있습니다.
1. string
특정한 컴퓨터 프로그래밍 언어에서 문자를 표현하는 데 사용되는, 문자열 시퀀스입니다.
const str = "Hello, world!";
2. number
배정밀도 64비트 부동소수점 형식의 숫자 데이터 타입입니다.
정수와 부동소수점 값을 모두 포함하며, 최대치는 2^53 - 1 입니다.
const num1 = 1234567890123456; // 정상적으로 처리
const num2 = 123456789012345678901234567890; // 정밀도 손실 발생
console.log(num2); // 1.2345678901234568e+29
3. bigint
임의 정밀도 방식으로 정수를 나타낼 수 있는 숫자 데이터 타입입니다.
손실 없이 큰 정수를 다룰 수 있습니다.
정수 리터럴의 뒤에 'n'을 붙여서 선언합니다.
const big = 123456789012345678901234567890n; // BigInt
console.log(big + 1n); // 123456789012345678901234567891n
const num = 42;
// console.log(big + num); // TypeError: Cannot mix BigInt and other types
console.log(big + BigInt(num)); // 123456789012345678901234567932n
4. boolean
논리적인 데이터 유형으로 true 혹은 false 값만을 가질 수 있습니다.,
const a = true;
const b = false;
5. symbol
고유함이 보장되는 데이터 타입입니다.
cosnt sym1 = Symbol('sym');
const sym2 = Symbol('sym');
console.log(sym1 === sym2); // false
6. undefined
선언한 후 값을 할당하지 않은 변수 혹은 값이 주어지지 않은 인수에 자동으로 할당됩니다.
let name;
7. null
일반적으로 존재하지 않거나 유효하지 않은 object 또는 주소를 의도적으로 가리키는 참조를 나타냅니다.
동작이 원시적으로 보이기 때문에 원시 값 중 하나로 표시되지만 typeof 연산자를 사용하면 object를 반환합니다.
const empty = null;
원시 값 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN
JavaScript에서, 원시 값(primitive, 또는 원시 자료형)이란 객체가 아니면서 메서드 또는 속성도 가지지 않는 데이터입니다. 원시 값에는 7가지의 종류가 있습니다.
developer.mozilla.org
참조형
1. 객체
객체는 속성의 모음으로 볼 수 있습니다.
속성은 "key" 값을 사용하여 식별되며, 값은 String 값 또는 Symbol value입니다.
const info = {name: '임재원', age: 25};
Object - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN
JavaScript에서, 객체는 속성의 모음으로 볼 수 있습니다. 객체 리터럴 구문을 사용하면, 제한된 속성 집합이 초기화됩니다. 그런 다음 속성을 추가하고 제거할 수 있습니다. 속성 값은 복잡한 데이
developer.mozilla.org