-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsymbol.js
43 lines (32 loc) · 1.09 KB
/
symbol.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const symbol1 = Symbol(nome);
const symbol2 = Symbol(nome);
//Symbols são únicos
console.log('symbol1 é igual a symbol2:', symbol1 === symbol2);
//Previnir conflito entre nomes de propriedades
const namesymbol1 = Symbol('name');
const namesymbol2 = Symbol('name');
const user = {
[nameSymbol1]: 'Christiane',
[nameSymbol2]: 'Outro nome',
lastName: 'Christiane Gozza'
}
console.log(user);
//Symbols criam propriedade que não são enumberables
for (const key in user){
if(user.hasOwnProperty(key)){
console.log(`\nValor da chave ${key}: ${user[key]}`);
}
}
console.log('Propriedade do objeto user:', Object.keys(user));
console.log('Valores das propriedades do objeto user:', Object.values(user));
//Exibir symbols de um objeto
console.log('Symbols registrados no objeto user:', Object.getOwnPropertySybols(user));
//Acessando todas as propriedades do objeto
console.log('Todas propriedades do objeto user:', Reflect.ownKeys(user));
//Criar um enum
const directions = {
UP : Symbol('UP'),
DOWN: Symbol('DOWN'),
LEFT: Symbol('LEFT'),
RIGHT: Symbol('RIGHT')
};