diff --git a/docs/class.md b/docs/class.md index bbfca39..134d782 100644 --- a/docs/class.md +++ b/docs/class.md @@ -25,9 +25,9 @@ point.toString() // (2, 3) ``` -上面代码定义了一个class类,可以看到里面有一个constructor函数,这就是构造函数。而this关键字则代表实例对象。 +上面代码定义了一个“类”,可以看到里面有一个constructor函数,这就是构造函数。而this关键字则代表实例对象。 -class之间可以通过extends关键字,实现继承。 +Class之间可以通过extends关键字,实现继承。 ```javascript diff --git a/docs/generator.md b/docs/generator.md index 91db72c..4df9902 100644 --- a/docs/generator.md +++ b/docs/generator.md @@ -2,9 +2,9 @@ ## 含义 -所谓Generator,简单说,就是一个内部状态的遍历器,即每调用一次遍历器,内部状态发生一次改变(可以理解成发生某些事件)。ES6引入了generator函数,作用就是可以完全控制内部状态的变化,依次遍历这些状态。 +所谓Generator,简单说,就是一个内部状态的遍历器,即每调用一次遍历器,内部状态发生一次改变(可以理解成发生某些事件)。ES6引入Generator函数,作用就是可以完全控制内部状态的变化,依次遍历这些状态。 -generator函数就是普通函数,但是有两个特征。一是,function关键字后面有一个星号;二是,函数体内部使用yield语句,定义遍历器的每个成员,即不同的内部状态(yield语句在英语里的意思就是“产出”)。 +Generator函数就是普通函数,但是有两个特征。一是,function关键字后面有一个星号;二是,函数体内部使用yield语句,定义遍历器的每个成员,即不同的内部状态(yield语句在英语里的意思就是“产出”)。 ```javascript @@ -17,9 +17,9 @@ var hw = helloWorldGenerator(); ``` -上面代码定义了一个generator函数helloWorldGenerator,它的遍历器有两个成员“hello”和“world”。调用这个函数,就会得到遍历器。 +上面代码定义了一个Generator函数helloWorldGenerator,它的遍历器有两个成员“hello”和“world”。调用这个函数,就会得到遍历器。 -当调用generator函数的时候,该函数并不执行,而是返回一个遍历器(可以理解成暂停执行)。以后,每次调用这个遍历器的next方法,就从函数体的头部或者上一次停下来的地方开始执行(可以理解成恢复执行),直到遇到下一个yield语句为止。也就是说,next方法就是在遍历yield语句定义的内部状态。 +当调用Generator函数的时候,该函数并不执行,而是返回一个遍历器(可以理解成暂停执行)。以后,每次调用这个遍历器的next方法,就从函数体的头部或者上一次停下来的地方开始执行(可以理解成恢复执行),直到遇到下一个yield语句为止。也就是说,next方法就是在遍历yield语句定义的内部状态。 ```javascript @@ -94,11 +94,11 @@ g.next(true) // { value: 0, done: false } ``` -上面代码先定义了一个可以无限运行的generator函数f,如果next方法没有参数,每次运行到yield语句,变量reset的值总是undefined。当next方法带一个参数true时,当前的变量reset就被重置为这个参数(即true),因此i会等于-1,下一轮循环就会从-1开始递增。 +上面代码先定义了一个可以无限运行的Generator函数f,如果next方法没有参数,每次运行到yield语句,变量reset的值总是undefined。当next方法带一个参数true时,当前的变量reset就被重置为这个参数(即true),因此i会等于-1,下一轮循环就会从-1开始递增。 ## 异步操作的应用 -generator函数的这种暂停执行的效果,意味着可以把异步操作写在yield语句里面,等到调用next方法时再往后执行。这实际上等同于不需要写回调函数了,因为异步操作的后续操作可以放在yield语句下面,反正要等到调用next方法时再执行。所以,generator函数的一个重要实际意义就是用来处理异步操作,改写回调函数。 +Generator函数的这种暂停执行的效果,意味着可以把异步操作写在yield语句里面,等到调用next方法时再往后执行。这实际上等同于不需要写回调函数了,因为异步操作的后续操作可以放在yield语句下面,反正要等到调用next方法时再执行。所以,Generator函数的一个重要实际意义就是用来处理异步操作,改写回调函数。 ```javascript @@ -147,7 +147,7 @@ function scheduler(task) { ``` -注意,yield语句是同步运行,不是异步运行(否则就失去了取代回调函数的设计目的了)。实际操作中,一般让yield语句返回Promises对象。 +注意,yield语句是同步运行,不是异步运行(否则就失去了取代回调函数的设计目的了)。实际操作中,一般让yield语句返回Promise对象。 ```javascript diff --git a/docs/intro.md b/docs/intro.md index 660c588..29753aa 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -22,7 +22,7 @@ ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScript的实现 2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript 4.0的开发,将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。 -2009年12月,ECMAScript 5.0版正式发布。Harmony项目则一分为二,一些较为可行的设想定名为Javascript.next继续开发,后来演变成ECMAScript 6;一些不是很成熟的设想,则被视为JavaScript.next.next,在更远的将来再考虑推出。 +2009年12月,ECMAScript 5.0版正式发布。Harmony项目则一分为二,一些较为可行的设想定名为JavaScript.next继续开发,后来演变成ECMAScript 6;一些不是很成熟的设想,则被视为JavaScript.next.next,在更远的将来再考虑推出。 2011年6月,ECMAscript 5.1版发布,并且成为ISO国际标准(ISO/IEC 16262:2011)。 @@ -38,9 +38,9 @@ ECMA的第39号技术专家委员会(Technical Committee 39,简称TC39)负 由于ES6还没有定案,有些语法规则还会变动,目前支持ES6的软件和开发环境还不多。各大浏览器的最新版本,对ES6的支持可以查看[kangax.github.io/es5-compat-table/es6/](http://kangax.github.io/es5-compat-table/es6/)。 -Google公司的V8引擎已经部署了ES6的部分特性。使用node.js 0.11版,就可以体验这些特性。 +Google公司的V8引擎已经部署了ES6的部分特性。使用Node.js 0.11版,就可以体验这些特性。 -node.js的0.11版还不是稳定版本,要使用版本管理工具[nvm](https://github.com/creationix/nvm)切换。下载nvm以后,进入项目目录,运行下面的命令。 +Node.js的0.11版还不是稳定版本,要使用版本管理工具[nvm](https://github.com/creationix/nvm)切换。下载nvm以后,进入项目目录,运行下面的命令。 ```bash @@ -211,7 +211,7 @@ traceur --script calc.es6.js --out calc.es5.js --experimental **(4)Node.js环境的用法** -Traceur的node.js用法如下(假定已安装traceur模块)。 +Traceur的Node.js用法如下(假定已安装traceur模块)。 ```javascript diff --git a/docs/object.md b/docs/object.md index cd5af3e..d25ca38 100644 --- a/docs/object.md +++ b/docs/object.md @@ -169,9 +169,9 @@ a["last word"] // "world" ``` -## symbols +## Symbol -ES6引入了一种新的原始数据类型symbol。它通过Symbol函数生成。 +ES6引入了一种新的原始数据类型Symbol。它通过Symbol函数生成。 ```javascript @@ -185,11 +185,11 @@ typeof mySymbol ``` -上面代码表示,Symbol函数接受一个字符串作为参数,用来指定生成的symbol的名称,可以通过name属性读取。typeof运算符的结果,表明Symbol是一种单独的数据类型。 +上面代码表示,Symbol函数接受一个字符串作为参数,用来指定生成的Symbol的名称,可以通过name属性读取。typeof运算符的结果,表明Symbol是一种单独的数据类型。 -注意,Symbol函数前不能使用new命令,否则会报错。这是因为生成的symbol是一个原始类型的值,不是对象。 +注意,Symbol函数前不能使用new命令,否则会报错。这是因为生成的Symbol是一个原始类型的值,不是对象。 -symbol的最大特点,就是每一个symbol都是不相等的,保证产生一个独一无二的值。 +symbol的最大特点,就是每一个Symbol都是不相等的,保证产生一个独一无二的值。 ```javascript @@ -240,7 +240,7 @@ a.size // 1 ``` -如果要在对象内部使用symbol属性名,必须采用属性名表达式。 +如果要在对象内部使用Symbol属性名,必须采用属性名表达式。 ```javascript diff --git a/docs/promise.md b/docs/promise.md index 0dc1cc7..3995f27 100644 --- a/docs/promise.md +++ b/docs/promise.md @@ -146,7 +146,7 @@ Promise.all方法用于将多个异步操作(或Promise对象),包装成 ```javascript -// 生成一个promise对象的数组 +// 生成一个Promise对象的数组 var promises = [2, 3, 5, 7, 11, 13].map(function(id){ return getJSON("/post/" + id + ".json"); });