ES6 - Symbol



Symbol это уникальный и неизменяемый тип данных.



Свойства символов:

При создании символам можно дать имя.

 Создаём символ id с описанием (именем) "id"

let id = Symbol("id");



Они гарантированно уникальны.

 let id1 = Symbol("id");

let id2 = Symbol("id");



alert(id1 == id2); // false



Не преобразуются автоматически в строки.

 let id = Symbol("id");

alert(id); // TypeError: Cannot convert a Symbol value to a string



Позволяют создавать «скрытые» свойства объектов, к которым нельзя обратиться из других частей программы и перезаписать их.

let id = Symbol("id");



let user = {

name: "Вася",

age: 30,

[id]: 123 // просто "id: 123" не сработает

};



Игнорируются циклом for…in

 for (let key in user) alert(key); // name, age (свойства с ключом-символом нет среди перечисленных)