update:箭头函数

This commit is contained in:
qianguyihao 2019-09-04 13:01:02 +08:00
parent 4b62e3e5d7
commit 57be9b64b2

View File

@ -173,7 +173,7 @@ let 和 const 的作用如下:
```
**代码2**、上面的代码中,如果我们用 let 定义变量 i
**代码2**、上面的代码中,如果我们改为用 let 定义变量 i
```html
<!DOCTYPE html>
@ -207,7 +207,7 @@ let 和 const 的作用如下:
![](http://img.smyhvae.com/20190904_1040.gif)
上面这个运行结果,才是我们预期的效果。我们用 let 定义变量i在循环的过程中每执行一次循环体就会诞生一个新的 i。循环体执行4次就会有四个 i。
上面这个运行结果,才是我们预期的效果。我们用 let 定义变量 i在循环的过程中每执行一次循环体就会诞生一个新的 i。循环体执行4次就会有四个 i。
## 变量的解构赋值
@ -237,7 +237,6 @@ ES6允许我们通过数组或者对象的方式对一组变量进行赋
二者的效果是一样的。
**解构的默认值:**
在解构赋值时,是允许使用默认值的。举例如下:
@ -293,7 +292,19 @@ ES6允许我们通过数组或者对象的方式对一组变量进行赋
### 对象的解构赋值
我们同样可以针对对象,进行结构赋值。
通常情况下我们从接口拿到json数据后一般这么赋值
```javascript
var a = json.a;
var b = json.b;
bar c = json.c;
```
上面这样写,过于麻烦了。
现在,我们同样可以针对对象,进行结构赋值。
**举例如下:**
@ -331,7 +342,6 @@ ES6允许我们通过数组或者对象的方式对一组变量进行赋
字符串也可以解构,这是因为,此时字符串被转换成了一个类似数组的对象。举例如下:
```javascript
const [a, b, c, d] = 'smyhvae';
console.log(a);
@ -500,13 +510,12 @@ for…of 的循环可以避免我们开拓内存空间,增加代码运行效
```
注意上方代码中倒数第二行用的是单引号最后一行用的是反引号在tab键的上方
**注意**,上方代码中,倒数第二行用的符号是单引号,最后一行用的符号是反引号在tab键的上方
参考链接:
- [ES6的rest参数和扩展运算符](https://segmentfault.com/a/1190000010222698)
## 箭头函数
需要说明的是ES6中函数新增了很多特性。例如
@ -525,7 +534,6 @@ for…of 的循环可以避免我们开拓内存空间,增加代码运行效
这一段,我们来讲一下箭头函数。
定义和调用函数:(传统写法)
```javascript
@ -538,7 +546,7 @@ console.log(fn1(1, 2)); //输出结果3
定义和调用函数ES6中的写法
```
```javascript
var fn2 = (a, b) => a + b;
@ -546,12 +554,10 @@ console.log(fn1(1, 2)); //输出结果3
```
上方代码中,箭头后面的内容,就相当于 return 的内容(**返回值**)。
二者的效果是一样的。
在箭头函数中,如果方法体内有两句话,那就需要在方法体外边加上{}括号。如下:
```javascript
var fn2 = (a, b) => {
console.log('haha');
@ -563,6 +569,12 @@ console.log(fn1(1, 2)); //输出结果3
从上面的箭头函数中,我们可以很清晰地找到函数名、参数名、方法体。
上方代码中:
- 如果有且仅有1个参数则`()`可以省略
- 如果方法体内有且仅有1条语句则`{}`可以省略,但前提是,这条语句必须是 return。
### 参数默认值
当然,在 ES6 中定义方法时,我们还可以给方法里的参数加一个**默认值**(缺省值):
@ -573,7 +585,6 @@ console.log(fn1(1, 2)); //输出结果3
如下:
```javascript
var fn2 = (a, b = 5) => {
console.log('haha');
@ -609,8 +620,7 @@ console.log(fn1(1, 2)); //输出结果3
ES5中this指向的是函数被调用的对象而ES6的箭头函数中this指向的是函数被定义时。
所以说箭头韩注重一定要注意this的指向。
所以说箭头函数一定要注意this的指向。
## 模块化