티스토리 뷰
ES5 에는 원시 타입(primitive data type)인 Boolean, undefined, Number, String, null 그리고 객체 타입(object type)인 Object 를 가지고 있었다.
ES6 부터 새로운 친구 Symbol 타입이 생겼다.
Symbol 타입에 대해 알아보자.
Symbol 생성
Symbol 은 고유 값만 가지는 원시 타입(primitive data type)의 값이며, 객체 프로퍼티에 대한 식별자로 사용한다.
Symbol 생성 시 Symbol() 을 사용하며, 다른 원시 타입의 객체 생성(new Boolean, new String, new Number)과 다르게 new 써서 생성을 하지 않는다.
const stringSymbol = Symbol('chicken');
console.log(typeof createSymbol); // 'symbol'
마지막 예제를 살펴보자.
보면 numberSymbol 은 Symbol(1004)로 데이터를 할당한 변수이다. 그런데 numberSymbol 과 Symbol(1004) 를 마지막에 비교하였는데, false 가 나왔다. 이유는 위에서 설명한 바와 같이 Symbol 은 고유한 값을 가지기 때문에 두 개의 데이터의 프로퍼티가 서로 다르기 때문에 결과를 false 로 내보낸 것이다.
Symbol 은 객체 프로퍼티 key로 사용할 수 있습니다.
Symbol 속성
Symbol 을 생성할 때 함수를 사용하여 생성하기 때문에 Symbol도 함수 객체가 존재한다. console.dir()로 찍어보면 아래와 같은 속성들이 나온다.
위를 보면 알 수 있듯이 몇 가지 다른 타입 들에서 사용하는 속성도 존재 하고 기존 ES6 전에는 보이지 않던 새로운 메서드도 존재 한다.
Symbol은 깊은 이해를 위해 다음 포스팅 할 iterator와 for of 문을 확실히 재 복습하고 다시 추가 설명을 하겠습니다.
감사합니다.
오늘도 행복한 코딩하세요 !
'넌 누구야 JavaScript 공부 > JavaScript' 카테고리의 다른 글
JavaScript 재사용성을 고려한 Module 그리고 import, export (ES6) (0) | 2019.03.03 |
---|---|
JavaScript Promise ! 약속 하나 합시다 (ES6) (0) | 2019.02.28 |
구글에서 말하는 JavaScript Style Guide (0) | 2019.02.26 |
JavaScript Rest parametor, Spread (ES6) (0) | 2019.02.25 |
JavaScript 프로토타입 기반의 함수 Class (ES6) (0) | 2019.02.22 |
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Es5
- Prototype
- website
- 깃헙
- HTML
- 가상돔
- 클래스형 컴포넌트
- virtual dom
- useEffect
- this
- Angular
- react
- array
- useState
- string
- 리엑트
- 함수 컴포넌트
- NestJS
- scope
- window
- class component
- Function Component
- Let
- github
- 클래스 컴포넌트
- TypeScript
- ES6
- 웹사이트
- const
- JavaScript
- Total
- Today
- Yesterday