В ES6 появился шестой примитивный тип данных, который называется Symbol. Он применяется для создания уникального напоминающего строку значения, которое не конфликтует ни с каким другим.
Исходники кода
//let sym = Symbol('optional description');
//let sym1 = Symbol('optional description');
//let sym2 = Symbol('optional description');
//console.log(sym1 === sym2);
/*
let sym = Symbol('optional description');
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
[sym]: function() {alert('!')}
};
//obj[sym] = function() {alert('!')};
console.log(obj[sym]);
for (let key in obj) {
console.log(obj[key]);
}
*/
//obj[sym] = function() {alert('!')};
// well known symbols
// Symbol.iterator
//let lang = Symbol('lang')
/*
function func1() {
let lang = Symbol.for('lang');
return lang;
}
function func2() {
let lang = Symbol.for('lang');
return lang;
}
console.log(func1() === func2());
*/
//let lang = Symbol.for('lang');
//console.log(Symbol.keyFor(lang));
//let obj = {1: 'пн', 2: 'вт', 3: 'ср'};
//obj[lang] = 'ru';
//console.log(obj[lang]);
//for (let key in obj) {
//console.log(obj[key]);
//}
/*
let obj = {
1: 'пн',
2: 'вт',
3: 'ср',
[lang]: 'ru',
};
*/