@@ -17,9 +17,9 @@ typeof s
17
17
18
18
上面代码中,变量` s ` 就是一个独一无二的值。` typeof ` 运算符的结果,表明变量` s ` 是Symbol数据类型,而不是字符串之类的其他类型。
19
19
20
- 注意,Symbol函数前不能使用 ` new ` 命令,否则会报错。这是因为生成的Symbol是一个原始类型的值,不是对象。也就是说,由于Symbol值不是对象,所以不能添加属性。基本上,它是一种类似于字符串的数据类型。
20
+ 注意,` Symbol ` 函数前不能使用 ` new ` 命令,否则会报错。这是因为生成的Symbol是一个原始类型的值,不是对象。也就是说,由于Symbol值不是对象,所以不能添加属性。基本上,它是一种类似于字符串的数据类型。
21
21
22
- Symbol函数可以接受一个字符串作为参数 ,表示对Symbol实例的描述,主要是为了在控制台显示,或者转为字符串时,比较容易区分。
22
+ ` Symbol ` 函数可以接受一个字符串作为参数 ,表示对Symbol实例的描述,主要是为了在控制台显示,或者转为字符串时,比较容易区分。
23
23
24
24
``` javascript
25
25
var s1 = Symbol (' foo' );
@@ -34,7 +34,7 @@ s2.toString() // "Symbol(bar)"
34
34
35
35
上面代码中,` s1 ` 和` s2 ` 是两个Symbol值。如果不加参数,它们在控制台的输出都是` Symbol() ` ,不利于区分。有了参数以后,就等于为它们加上了描述,输出的时候就能够分清,到底是哪一个值。
36
36
37
- 注意,Symbol函数的参数只是表示对当前Symbol值的描述,因此相同参数的Symbol函数的返回值是不相等的 。
37
+ 注意,` Symbol ` 函数的参数只是表示对当前Symbol值的描述,因此相同参数的 ` Symbol ` 函数的返回值是不相等的 。
38
38
39
39
``` javascript
40
40
// 没有参数的情况
@@ -50,7 +50,7 @@ var s2 = Symbol("foo");
50
50
s1 === s2 // false
51
51
```
52
52
53
- 上面代码中,` s1 ` 和` s2 ` 都是Symbol函数的返回值 ,而且参数相同,但是它们是不相等的。
53
+ 上面代码中,` s1 ` 和` s2 ` 都是 ` Symbol ` 函数的返回值 ,而且参数相同,但是它们是不相等的。
54
54
55
55
Symbol值不能与其他类型的值进行运算,会报错。
56
56
@@ -63,7 +63,7 @@ var sym = Symbol('My symbol');
63
63
// TypeError: can't convert symbol to string
64
64
```
65
65
66
- 但是,Symbol值可以转为字符串 。
66
+ 但是,Symbol值可以显式转为字符串 。
67
67
68
68
``` javascript
69
69
var sym = Symbol (' My symbol' );
@@ -96,7 +96,7 @@ Object.defineProperty(a, mySymbol, { value: 'Hello!' });
96
96
a[mySymbol] // "Hello!"
97
97
```
98
98
99
- 上面代码通过方括号结构和Object .defineProperty,将对象的属性名指定为一个Symbol值。
99
+ 上面代码通过方括号结构和 ` Object .defineProperty` ,将对象的属性名指定为一个Symbol值。
100
100
101
101
注意,Symbol值作为对象属性名时,不能用点运算符。
102
102
0 commit comments