modify
This commit is contained in:
@@ -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
|
||||
|
||||

|
||||
|
||||
|
||||
上方代码中注意,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的指向。
|
||||
|
||||
|
||||
|
||||
|
||||
## 模块化
|
||||
|
||||
|
||||
@@ -292,7 +292,9 @@ $ node -e 'console.log("Hello World")'
|
||||
|
||||
```
|
||||
$ node index.js
|
||||
|
||||
$ node path/index.js
|
||||
|
||||
$ node path/index
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user