Моя серия заметок ES6 in Depth, состоящая из 24 записей, описывает большинство синтаксических изменений и нововведений в ES6. В этой публикации я подведу итог всего изложенного в предыдущих статьях, чтобы дать возможность посмотреть еще раз на всё вместе.
Содержание
Часть первая: здесь.
Символы
Содержание
- Введение
- Инструментарий
- Assignment Destructing
- Spread Operator и Rest Parameters
- Стрелочные функции
- Шаблонные строки
- Литералы объектов
- Классы
- Let и Const
- Символы
- Итераторы
- Генераторы
- Промисы
- Maps
- WeakMaps
- Sets
- WeakSets
- Прокси
- Reflection
- Number
- Math
- Array
- Object
- Строки и Unicode
- Модули
Часть первая: здесь.
Символы
- Новый примитивный тип данных в ES6.
- Можно создавать собственные символы:
var symbol = Symbol()
- Можно добавить описание для нужд отладки
Symbol('ponyfoo')
- Символы неизменяемы и уникальны:
Symbol()
,
Symbol()
,
Symbol('foo')
и
Symbol('foo')
– все разные.
- Тип символов –
symbol
, так что
typeof Symbol() === 'symbol'
.
- Можно создавать глобальные символы при помощи
Symbol.for(key)
.
- Если символ с этим
key
существует, вызов его вернет.
- Иначе будет создан новый символ с
key
в качестве описания.
Symbol.keyFor(symbol)
– это обратная функция, принимающая
symbol
и возвращающая его
key
.
- Глобальные символы глобальны, насколько это возможно, то есть абсолютно. Для доступа к символам используется единый глобальный регистр:
- контекст
window
;
- контекст
eval
;
- контекст
.