ES6学习小结1:变量声明、解构赋值、箭头函数

目录:

1、变量声明:var 、let 与const

2、解构赋值

3、扩展运算符...

4、默认值和默认函数

5、箭头函数

1、var 、let 与const

ES5中,使用var关键词进行变量的声明,存在声明的变量或函数都将提升到函数的最顶部(作用域提升),导致可以在使用变量之后再声明变量,会导致代码编写行为不规范。而ES6新增的let及const的作用域都是当前的代码块,区别在于,let声明的变量可以修改,而const 声明的是常量,不能修改。

imageimageimage

补充,var声明变量可以重复声明,而let 、const不允许(function跟var存在相同情况,函数可以提升,且可以重复声明)

作用域详见:https://www.cnblogs.com/hxw1024/p/12074362.html

image

2、解构赋值

解构顾名思义按照一定的结构“解析”一个对象,通过这种方式我们可以从数组或对象中取值,本质上属于 模式匹配,这是ES6给我们提供的新语法,只要等号两边的模式相同即可解析相应的值。

image

3、扩展运算符…

  在使用解构赋值的时候,可以使用扩展运算符...来将剩余值统一放入一个对象中,

image

4、默认值与默认参数

在我们使用解构赋值的时候,可以为不存在的值或值为undefined赋默认值,
image
当然了。也可以将默认值换成默认函数(返回一个默认值):
image
函数形参也可以使用这种写法:
image

5、箭头函数

image
箭头函数的特性:
1.没有自身的this
2.不能使用new
3.没有arguments(参数列表)
================================================================
1、没有自身的this
我们来看普通的函数(返回的函数相当于fn1函数内的嵌套函数):
image
如果是箭头函数的this执行会是怎样的呢?
image

call方法的使用详见:https://www.cnblogs.com/hxw1024/p/12077636.html
2、不能使用new
imageimage
3、没有arguments
首先,什么是arguments呢?
image
我们给min函数提供了实参,但是min函数本身是没有形参的,那它输出的结果是这样子的:
image
返回的是名为arguments的列表,这就是我们函数调用时的参数列表,普通函数可以打印出来,那换成箭头函数呢?
image
当然,如果你想更了解arguments,可以参见:https://www.jianshu.com/p/d7ed5ade67a3
另外附上arguments的实践应用:
制定一个求出最大值的函数:
image

 

posted @ 2019-12-18 10:33  浅笑浅语  阅读(340)  评论(0编辑  收藏  举报