Практическое применение типа Symbol
Валерий Карпов написал статью, посвящённую Symbol — "A Practical Guide to Symbols in JavaScript".
Symbol — это новый тип данных, который появился в ES2015. Символы могут использоваться в качестве ключа объекта. Они создаются с помощью функции Symbol() и Symbol.for(), которые принимают на вход стоку-описание.
При создании символов с помощью Symbol() они гарантировано будут разными. Благодаря этой особенности можно отчётливо разграничивать пользовательские и программные данные. Например, в ES2015 символ Symbol.iterator используется для задания функции, которая будет вызываться при использовании for...of. При создании такого итератора его никто не сможет изменить по ошибке. При использовании Symbol.for('name') создаваемый символ сохраняется в глобальный реестр и становится доступен из разных мест программы при повторном вызове Symbol.for('name').
Статья небольшая, но хорошая. Рекомендую прочитать, если эта тема прошла мимо вас.
http://thecodebarbarian.com/a-practical-guide-to-symbols-in-javascript.html