Javascript Data Structures (Primitive Values)

Primitive Values

단어 뜻 그대로 원시값입니다. javascriptObject를 제외한 타입은 모두 변경이 불가능한 값(immutable value)입니다. 원시값은 변수에 할당 할 때 메모리에 고정된 값으로 저장합니다.

Kinds of Primitive Values

원시값의 종류는 Boolean, Number, String, Null, Undefined, Symbol로 6가지 입니다.

Boolean

Booleantrue, false 두가지 값을 가질 수 있습니다.

1
2
const positive = true;
const negative = false;

Number

javascript는 정수만을 표현하는 특별한 자료형은 없습니다. Number타입은 크게 세가지 의미있는 상징적인 값들도 표현 할 수 있습니다. 이 값들은 +/-InfinityNaN입니다.

1
2
3
const poZero = 0;
const neZero = -0;
poZero === neZero // true

Number타입에는 두 가지 방식으로 표현 할 수 있는 유일한 값이 있는데 0입니다. 따라서 0-0을 비교하게 되면 true를 반환합니다.

1
2
const max = Number.MAX_VALUE;
const min = Number.MIN_VALUE;

+/-Infinity와 비교하여 크거나 작은지 확인 할 수 있는 상수도 존재합니다. javascript에서 표현 할 수 있는 가장 큰 값과 가장 작은 값을 상수로 저장하여 +/-Infinity를 비교 할 수 있습니다.

String

javascript의 문자열은 값을 변경 할 수 없습니다. 한 번 문자열이 생성되면 그 문자열을 수정 할 수 없다는 것을 의미합니다. 하지만 원래 문자열에서 일부를 수정하여 수정된 다른 문자열 생성은 가능합니다.

1
2
3
4
5
6
7
const initString = 'string';
console.log(initString); // string
const addString = initString.concat('Add');
console.log(addString); // stringAdd
const ingString = initString.substr(3,3);
console.log(ingString); // ing
console.log(initString); // string

위와 같이 Add 문자열을 붙이고 ing 문자열만 따로 떼네어도 원본 initString의 값엔 영향을 주지 않습니다.

Null

Null의 타입은 딱 한가지 null을 가질 수 있습니다.

1
const nullValue = null;

Undefined

값을 할당하지 않은 변수는 undefined 값을 가집니다.

1
2
let unknown;
console.log(unknown); // undefined

Symbol

Symbol은 유일하고 변경 불가능한 값입니다. es6에서 추가되었습니다. 유일한 객체의 프로퍼티 키를 만들기 위해 주로 사용됩니다.

1
2
3
4
5
const symbolKey = Symbol('key');
console.log(typeof symbolKey); // symbol
const object= {};
object[symbolKey] = 'value';
console.log(object[symbolKey]); // value
공유하기