Skip to content

Commit

Permalink
docs(symbol): fixed ruanyf#1107
Browse files Browse the repository at this point in the history
  • Loading branch information
ruanyf committed Feb 6, 2022
1 parent b270280 commit b2a122e
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions docs/symbol.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是 ES6 引入`Symbol`的原因。

ES6 引入了一种新的原始数据类型`Symbol`,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是`undefined``null`、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。
ES6 引入了一种新的原始数据类型`Symbol`,表示独一无二的值。它属于 JavaScript 语言的数据类型之一,其他数据类型是`undefined``null`、布尔值(Boolean)、字符串(String)、数值(Number)、大整数(BigInt)、对象(Object)。

Symbol 值通过`Symbol`函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的 Symbol 类型。凡是属性名属于 Symbol 类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。
Symbol 值通过`Symbol()`函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的 Symbol 类型。凡是属性名属于 Symbol 类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。

```javascript
let s = Symbol();
Expand Down

0 comments on commit b2a122e

Please sign in to comment.