1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-28 21:32:20 +00:00

edit symbol

This commit is contained in:
ruanyf 2015-10-15 07:50:47 +08:00
parent 77503618e3
commit 86eca41818
2 changed files with 8 additions and 10 deletions

View File

@ -581,16 +581,14 @@ function passthru(literals) {
}
return result;
}
msg
// "The total is 30 (31.5 with tax)"
msg // "The total is 30 (31.5 with tax)"
```
上面这个例子展示了,如何将各个参数按照原来的位置拼合回去。
passthru函数采用rest参数的写法如下。
`passthru`函数采用rest参数的写法如下。
```javascript
function passthru(literals, ...values) {

View File

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