This commit is contained in:
qianguyihao
2018-03-12 21:01:35 +08:00
parent ea9831dea3
commit ddb91d1ea1
36 changed files with 255 additions and 46 deletions

View File

@@ -208,6 +208,12 @@ index.js
当我们打开网页后,就可以在浏览器的控制台,看到代码的输出结果。
本段内容的参考链接:
- [技术胖带你玩转ES6视频教程 (共18集)](http://jspang.com/2017/06/03/es6/)
接下来,我们讲一下 ES6的常见语法。
@@ -271,7 +277,7 @@ ES6 中新增了 let 和 const 来定义变量:
console.log(a);
```
上方代码的输出结果为 2。用 let 声明的变量,只在局部起作用。
上方代码的输出结果为 2。用 let 声明的变量,只在局部(块级作用域内)起作用。
let是防止数据污染我们来看下面这个例子
@@ -512,6 +518,10 @@ fn(1, 2, 3); //方法中定义了四个参数但只引用了三个参数ES
![](http://img.smyhvae.com/20180304_1650.png)
上方代码中注意arg参数之后不能再加别的参数否则编译报错。
**举例:**数组赋值的问题
我们来分析一段代码:(将数组 arr1 赋值给 arr2
@@ -593,6 +603,18 @@ for…of 的循环可以避免我们开拓内存空间,增加代码运行效
注意,上面的数组中,`for ... of`获取的是数组里的值;`for ... in`获取的是index索引值。
### Map对象的遍历
`for ... of`既可以遍历数组也可以遍历Map对象。
代码举例:
## 模板字符串
我们以前让字符串进行拼接的时候,是这样做的:(传统写法的字符串拼接)
@@ -627,11 +649,23 @@ for…of 的循环可以避免我们开拓内存空间,增加代码运行效
- [ES6的rest参数和扩展运算符](https://segmentfault.com/a/1190000010222698)
## 箭头函数
需要说明的是ES6中函数新增了很多特性。例如
- 参数默认值
- 扩展运算符
- rest参数
- 箭头函数
- this绑定
- 尾调用
这一段,我们来讲一下箭头函数。
定义和调用函数:(传统写法)
@@ -656,7 +690,7 @@ console.log(fn1(1, 2)); //输出结果3
```
上方代码中,箭头后面的内容,就相当于 return 的内容。
上方代码中,箭头后面的内容,就相当于 return 的内容**返回值**
在箭头函数中,如果方法体内有两句话,那就需要在方法体外边加上{}括号。如下:
@@ -672,6 +706,8 @@ console.log(fn1(1, 2)); //输出结果3
从上面的箭头函数中,我们可以很清晰地找到函数名、参数名、方法体。
### 参数默认值
当然,在 ES6 中定义方法时,我们还可以给方法里的参数加一个**默认值**(缺省值):
- 方法被调用时,如果没有给参数赋值,那就是用默认值;
@@ -693,6 +729,42 @@ console.log(fn1(1, 2)); //输出结果3
```
需要提醒的是:**默认值的后面,不能再有没有默认值的变量**。比如`(a,b,c)`这三个参数如果我给b设置了默认值那么就一定要给c设置默认值。
另外,我们来看下面这段代码:
```javascript
let x = 'smyh';
function fn(x, y = x) {
console.log(x, y);
}
fn('vae');
```
注意第二行代码我们给y赋值为`x`,这里的`x`是第一个参数,并不是第一行代码里定义的`x`。打印结果:`vae vae`
如果我把第一个参数改一下,改成:
20180312_2017.png
此时打印结果是:`vae smyh`
### this的指向
ES5中this指向的是函数被调用的对象而ES6的箭头函数中this指向的是函数被定义时。
所以说箭头韩注重一定要注意this的指向。
## 模块化

View File

@@ -292,7 +292,9 @@ $ node -e 'console.log("Hello World")'
```
$ node index.js
$ node path/index.js
$ node path/index
```