搜索
写经验 领红包
 > 设计

函数解析式中的参数是什么(es6函数参数解构赋值)

导语:函数参数的解构赋值,你用过这个功能吗?

函数解析式中的参数是什么(es6函数参数解构赋值)

之前的文章《ES6新特性系列之数组解构赋值》和《ES6新特性系列之对象解构赋值》中,我们讲解了数组和对象的解构赋值功能,今天这篇文章继续讲解函数参数的解构赋值功能。

函数参数解构赋值

基本使用

函数参数的解构赋值是基于数组或者对象的解构赋值的,如果对这两者还没有了解的,可以看看文章开头指定的那两篇文章。

基本使用

上述参数是利用数组解构赋值,x与y的值对应于1和2,因此结果返回3。

再来看一个简单的例子

map函数的参数

map函数的参数又为一个数组,遍历的过程中a和b先后对应于1,2和3,4,因此结果返回3和7

默认值

函数的参数也会用到默认值,但是分为两种情况,一个是变量的默认值,另一个是参数的默认值。首先看下变量的默认值

变量的默认值

解构赋值等号左边出现的默认值表示的是变量的默认值,表示的是在传入的参数为undefined的情况下,变量可取默认值

而如果是参数默认值,则会出现不一样的情况

参数的默认值

参数的默认值表示的是,只有在传入的参数整体为undefined的情况下,才会取参数的默认值。

上述的代码中第二个move函数的参数{x:3} !== undefined,因此不会取默认值{x: 0, y: 0},所以传递的是{x:3},y的值为undefined,最后返回结果[3, undefined]

第三个move函数的参数为{},同理{} !== undefined,因此返回值为[undefined, undefined]

第四个move函数的参数为空,等于undefined,因此会取参数的默认值,最终返回[0, 0]

这是变量默认值与参数默认值的不同之处,在写代码的时候要注意

用途

函数参数的定义可以很方便的将变量名与参数一一对应起来

函数参数解构赋值

同时还可以很方便的指定函数参数的默认值

指定参数默认值

采用默认参数后,在方法体里就可以不用在写类似于这样的代码

var cache = config.cache || false;

总结

变量的解构赋值,主要包括数组、对象、函数参数三个部分,我们已经写了三篇文章进行讲解,希望能对大家有所帮助

ES6新特性系列之数组解构赋值

ES6新特性系列之对象解构赋值

本文内容由快快网络小媛创作整理编辑!