--- title: Symbol (Символ) slug: Glossary/Symbol translation_of: Glossary/Symbol original_slug: Глоссарий/Symbol ---
На этой странице описывается тип данных «символ» и функция «{{jsxref("Symbol")}}()
», которая (среди прочего) создаёт экземпляры типа «символ».
Symbol (Символ) — примитивный тип данных, экземпляры которого уникальны и неизменяемы. В некоторых языках программирования символы также называются атомами.
В среде выполнения JavaScript значение «символа» создаётся путём вызова функции Symbol (), которая динамически создаёт анонимное и уникальное значение. Единственное разумное использование — сохранить символ, а затем использовать сохранённое значение для создания свойства объекта. Следующий пример хранит символ в «var».
var myPrivateMethod = Symbol(); this[myPrivateMethod] = function() {...};
Когда символ используется как идентификатор в присваивании свойства, свойство (например, символ) является анонимным; а также не исчислимым. Поскольку свойство не исчислимо, оно не будет отображаться в цикле «for (... in ...)», и поскольку свойство является анонимным, оно не будет отображаться в массиве результатов "Object.getOwnPropertyNames ()". Доступ к этому свойству можно получить с помощью исходного значения символа, создавшего его, или путём итерирования в массиве результатов «Object.getOwnPropertySymbols ()». В предыдущем примере кода доступ к свойству будет осуществляться через значение, которое было сохранено в переменной myPrivateMethod.