函数解析式中的参数是什么(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新特性系列之对象解构赋值
本文内容由快快网络小媛创作整理编辑!