일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TypeScript
- Mongoose
- 리액트
- node.js
- CSS
- react
- DART
- Flutter
- frontend
- heroku
- clonecoding
- MongoDB
- backend
- HTML
- javscript
- 자바스크립트
- express
- ECMAScript
- CLONE
- ES6
- pug
- form
- Session
- Component
- graphQL
- nodejs
- JavaScript
- NextJs
- GRID
- API
- Today
- Total
Enjoy Programming
[ES6] Symbol 본문
자바스크립트는 여러 data-type을 가지고 있다.
boolean, string, number, null, object, undefined등등
여기에 es6에서 symbol이라는 data-type이 추가 되었다. 아직 사용해본적은 없는듯 하다. 먼저 mdn을 살펴보자
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Symbol
Symbol - JavaScript | MDN
Symbol() 함수는 심볼(symbol) 형식의 값을 반환하는데, 이 심볼은 내장 객체(built-in objects)의 여러 멤버를 가리키는 정적 프로퍼티와 전역 심볼 레지스트리(global symbol registry)를 가리키는 정적 메서드
developer.mozilla.org
symbol()함수는 symbol형식의 값을 반환하는데, 이 심볼은 내장 객체의 여러 멤버를 가리키는 정적 프로퍼티와 전역 심볼 레지스트리를 가리키는 정적 메서드를 가지며 "new Symbol()" 문법을 지원하지 않아 생성자 측면에서는 불완전한 내장 객체 클래스와 유사하다.
symbol()로부터 반환되는 모든 심볼 값은 고유하다. 심볼 값은 객체 프로퍼티에 대한 식별자로 사용될 수 있다. 이것이 심볼 데이터 형식의 유일한 목적이다.
d어렵다... 그냥 반환되는 값은 모두 고유하다정도인가? 그냥 식별자로 사용?
음... 일단 이렇게 해주면 두개가 동일하게 나오지만 ===는 성립하지 않는다. 각자의 고유한 값이다.
symbol은 생성자에 description을 가지는데.. 이걸 밖으로 빼올수도 없고 그저 description이다.
value가 아니다.
어디에 쓰는고... 예를들어 object가 있다고 하자. 만약 object의 property가 중복이 있다면?
이렇게 덮어씌여진다... 예를들어 고객목록이 같은경우? 뭐 데이터에는 unique id를 줘서 해결할 수 있겠지만..
일단 이렇다고 하면 여기에 Symbol()을 적용해보자
이렇게 중복되는 property에 대해 모두 표시가 가능하다~라는점?.. 근데 프로퍼티의 타입이 바뀌어 버린다... 뭐 어디 쓸데 있겠지.
음 오브젝트에서 key값을 빼오려면?
안나온다..ㅡㅡ;;;
처음보는 function을 써서 이렇게 나오긴 한다.. 진짜 어디에 쓰지?.. 뭐 어디 쓰니까 있을것이겠지.; 어찌보면 이것도 쓸 수 있는 개발자가 되자.
한가지 그럼 value는 어찌 볼 수 있나.
이렇게~ 여기까지 symbol이었다.
'JavaScript > Vanilla Js' 카테고리의 다른 글
[ES6] MAP && Weak Map (0) | 2021.07.06 |
---|---|
[ES6] Set && weakSet (0) | 2021.07.06 |
webAssemply 2 (0) | 2021.06.25 |
WebAssembly (0) | 2021.06.25 |
download for recorded video (0) | 2021.06.23 |