4. Symbol
leezozz 1/10/2023 笔记
# Symbol
- symbol 是一种基本数据类型(primitive data type)
- Symbol() 函数会返回 symbol 类型的值
- 作为构造函数来说它并不完整,因为它不支持语法:"new Symbol()"
const symbol1 = Symbol();
const symbol2 = Symbol(42);
const symbol3 = Symbol('foo');
console.log(typeof symbol1);
// expected output: "symbol"
console.log(symbol2 === 42);
// expected output: false
console.log(symbol3.toString());
// expected output: "Symbol(foo)"
console.log(Symbol('foo') === Symbol('foo'));
// expected output: false
var sym = new Symbol(); // TypeError
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const info = {
[Symbol('a')]: 'b'
}
console.log(info) // {Symbol(a): 'b'}
console.log(Object.keys(info)) // []
1
2
3
4
5
6
2
3
4
5
6
首先Symbol类型是不可枚举的,Object.keys方法返回对象的所有可枚举的键属性。Symbol类型是不可见的,并返回一个空数组。记录整个对象时,所有属性都是可见的,甚至是不可枚举的属性。