JAVASCRIPT
내장 객체 및 생성자
걍가영
2020. 7. 30. 11:33
JSON
직렬화 형식이며, JavaScript 객체와 유사한 표기법을 사용하는 텍스트를 통해 복잡한 자료구조를 나타냄
{
"key": "value",
"arr": [1,2,3],
"nullProp": null
}
직렬화(serialization)
보조기억장치에 저장하거나 혹은 네트워크를 통해 전송하기 위해 저장/전송 가능한 형태로 변환하는것
역직렬화(deserialization)
직렬화된 데이터를 프로그래밍 언어에서 다시 사용할 수 있도록 변환해주는 절차
// `JSON.stringify`로 직렬화 가능
JSON.stringify({
key: 'value',
arr: [1, 2, 3],
nullProp: null,
undefinedProp: undefined // 값이 `undefined`인 속성은 직렬화 과정에서 제외
}); // '{"key":"value","arr":[1,2,3],"nullProp":null}'
// `JSON.parse`로 역직렬화
JSON.parse('{"key":"value","arr":[1,2,3],"nullProp":null}');
Date
날짜와 시각을 다루기 위한 생성자
- 협정 세계시 (UTC) : 위치 및 DST의 사용 여부와 상관 없이 같은 기준으로 시각을 다룸
- 유닉스 시간 : 컴퓨터에서는 시간 데이터를 편하게 다루기 위한 단위
Date 객체의 생성
- new Date() : 현재 시각을 반환
- year : 연도를 나타내는 정숫값. 0부터 99는 1900부터 1999로 처리
- monthIndex : 월을 나타내는 정숫값. 0은 1월을 나타내고 11은 12월을 나타냄
- day : 일을 나타내는 정숫값. 기본값은 1
- hours : 시를 나타내는 정숫값. 기본값은 0(자정)
- minutes : 분을 나타내는 정숫값. 기본값은 0분
- seconds : 초를 나타내는 정숫값. 기본값은 0초
- milliseconds : 밀리초를 나타내는 정숫값. 기본값은 0밀리초
Symbol
ES2015 도입된 원시타입이며, 객체의 속성의 키로 사용하기 위해 만들어짐
새로 생서된 심볼은 다른 모든 심볼과 다른 것으로 취급
// 대괄호 표기법을 통해 심볼을 객체의 속성 키로 사용
const mySymbol = Symbol('my symbol');
const obj = {
[mySymbol]: 'hello'
};
console.log(obj); // { [Symbol(my symbol)]: 'hello' }
Map
객체와 유사하게 키-값 쌍(key-value pair)을 저장할 수 있는 새로운 자료구조 제공
- Map은 메소드를 통해서 내부의 데이터를 조작
- 어떤 값이라도 Map 객체의 키로 사용될 수 있음
- Map 객체 안에 들어있는 데이터는 프로토타입의 영향을 받지 않음
- size 속성을 통해 내부에 들어있는 데이터의 개수를 쉽게 알 수 있음
const m = new Map();
m.set('hello', 'world');
console.log(m.get('hello')); // 'world'
console.log(m.has('hello')); // true
m.delete('hello');
console.log(m.get('hello')); // undefined
console.log(m.has('hello')); // false
Set
집합 형태의 자료구조. 중복된 데이터가 저장되는 것을 허용하지 않음
배열과 유사한 형태의 자료구조가 필요하지만 순서가 중요하지 않고 중복된 데이터의 저장을 허횽하지 않아야 할 경우 사용
const s = new Set();
s.add(1);
s.add(1);
s.add(2);
console.log(s); // Set { 1, 2 }