4. Symbol

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
const info = {
  [Symbol('a')]: 'b'
}

console.log(info)   // {Symbol(a): 'b'}
console.log(Object.keys(info))   // []
1
2
3
4
5
6

首先Symbol类型是不可枚举的,Object.keys方法返回对象的所有可枚举的键属性。Symbol类型是不可见的,并返回一个空数组。记录整个对象时,所有属性都是可见的,甚至是不可枚举的属性。

最近更新时间: 2/4/2023, 10:01:08 AM
강남역 4번 출구
Plastic / Fallin` Dild