mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-29 13:52:22 +00:00
edit docs/destructuring
This commit is contained in:
parent
6bb960ee4e
commit
86c40d6467
@ -159,7 +159,7 @@ var x;
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
上面代码的写法会报错,因为JavaScript引擎会将`{x}`理解成一个代码块,从而发生语法错误。只有不将大括号写在行首,才能避免这个问题。
|
上面代码的写法会报错,因为JavaScript引擎会将`{x}`理解成一个代码块,从而发生语法错误。只有不将大括号写在行首,避免JavaScript将其解释为代码块,才能解决这个问题。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
|
|
||||||
|
@ -193,26 +193,28 @@ symbol的最大特点,就是每一个symbol都是不相等的,保证产生
|
|||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
|
|
||||||
let red = Symbol();
|
let w1 = Symbol();
|
||||||
let green = Symbol();
|
let w2 = Symbol();
|
||||||
let blue = Symbol();
|
let w3 = Symbol();
|
||||||
|
|
||||||
function handleColor(color) {
|
function f(w) {
|
||||||
switch (color) {
|
switch (w) {
|
||||||
case red:
|
case w1:
|
||||||
...
|
...
|
||||||
case green:
|
case w2:
|
||||||
...
|
...
|
||||||
case blue:
|
case w3:
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
上面代码中,red、green、blue三个变量都是Symbol类型,它们的值是不相等的。
|
上面代码中,w1、w2、w3三个变量都等于`Symbol()`,但是它们的值是不相等的。
|
||||||
|
|
||||||
由于这种特点,Symbol类型适合作为标识符,用于对象的属性名,保证了属性名之间不会发生冲突。如果一个对象由多个模块构成,不会出现同名的属性。
|
由于这种特点,Symbol类型适合作为标识符,用于对象的属性名,保证了属性名之间不会发生冲突。如果一个对象由多个模块构成,这样就不会出现同名的属性。
|
||||||
|
|
||||||
|
Symbol类型作为属性名,可以被遍历,Object.getOwnPropertySymbols()和Object.getOwnPropertyKeys()都可以获取该属性。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
|
|
||||||
|
@ -286,7 +286,7 @@ map.forEach(function(value, key, map) {
|
|||||||
|
|
||||||
WeakMap结构与Map结构基本类似,唯一的区别是它只接受对象作为键名(null除外),不接受原始类型的值作为键名。
|
WeakMap结构与Map结构基本类似,唯一的区别是它只接受对象作为键名(null除外),不接受原始类型的值作为键名。
|
||||||
|
|
||||||
WeakMap的设计目的在于,键名是对象的弱引用(垃圾回收机制不将该引用考虑在内),所以其所对应的对象可能会被自动回收。当对象被回收后,WeakMap自动移除对应的键值对。典型应用是,一个对应DOM元素的WeakMap结构,当某个DOM元素被清除,其所对应的WeakMap记录就会自动被移除。基本上,WeakMap的专用场合就是,它的键所对应的对象,可能会在将来消失。
|
WeakMap的设计目的在于,键名是对象的弱引用(垃圾回收机制不将该引用考虑在内),所以其所对应的对象可能会被自动回收。当对象被回收后,WeakMap自动移除对应的键值对。典型应用是,一个对应DOM元素的WeakMap结构,当某个DOM元素被清除,其所对应的WeakMap记录就会自动被移除。基本上,WeakMap的专用场合就是,它的键所对应的对象,可能会在将来消失。WeakMap结构有助于防止内存泄漏。
|
||||||
|
|
||||||
下面是WeakMap结构的一个例子,可以看到用法上与Map几乎一样。
|
下面是WeakMap结构的一个例子,可以看到用法上与Map几乎一样。
|
||||||
|
|
||||||
@ -308,4 +308,4 @@ console.log(value); // undefined
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
WeakMap还有has和delete方法,但没有size方法,也无法遍历它的值,这与WeakMap的键被垃圾回收机制忽略有关。
|
WeakMap还有has和delete方法,但没有size方法,也无法遍历它的值,这与WeakMap的键不被计入引用、被垃圾回收机制忽略有关。
|
||||||
|
Loading…
x
Reference in New Issue
Block a user