[Перевод] Обзор ES6 в 350 пунктах. Часть вторая

вчера в 20:41

Моя серия заметок ES6 in Depth, состоящая из 24 записей, описывает большинство синтаксических изменений и нововведений в ES6. В этой публикации я подведу итог всего изложенного в предыдущих статьях, чтобы дать возможность посмотреть еще раз на всё вместе.
0ea9a348fe1645b88bc56e002e9217a0.png
Содержание
  • Введение
  • Инструментарий
  • 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;
  • контекст