es6-函数(二)

来源:互联网 发布:wow3.35数据库 编辑:程序博客网 时间:2024/06/06 09:32

参考以下博客,建议查看原博客,它更为详细;
ES6 阮一峰

rest参数

rest参数将获取函数的多余的参数,rest后面的变量是一个数组;变量会把会把参数放入到数组中;
使用方法:…变量名

function xyd(...a){    console.log(a);}xyd(1,2,3)//[1,2,3]; 当运行函数xyd后,rest参数后面的变量a,会把传入的参数1,2,3放入到一个数组中;

注意rest之后不能有其他的参数,也就是说rest参数必须是函数的参数的最后一个参数;

 function xyd(...a,b){console.log(a,b);} xyd(1,2,3,4,6)

报错;

函数的length属性不包含rest参数;

扩展运算符

扩展运算符可以看作是rest参数的逆运算,它是把数组转为用逗号分隔的参数序列使用方法:…

console.log(...[1,2,3]);//1 2 3console.log(1,...[1,2,3]);//  1 1 2 3

运算符号主要用于函数调用;

function xyd(x,y){    console.log('x='+x,'y='+y)}var arr = [1,2];xyd(...arr);//3

上面的使用了运算符;当运行函数xyd是,变量arr是一个数组,使用运算符把变量arr转换为参数序列;这里结果就是3;

扩展运算符可以代替apply方法;

// ES5的写法function f(x, y, z) { console.log(x,y,z)}var args = [0, 1, 2];f.apply(null, args);// ES6的写法function f(x, y, z) {  // ...}var arr= [0, 1, 2];f(...arr);

扩展运算符的应用:

合并数组;

 var a = [1,2,3]; var b = [4,5,6]; var c = [7,8,9];var x = [...a,...b,...c]console.log(x);//[1, 2, 3, 4, 5, 6, 7, 8, 9]

与解构赋值结合;

var [fistn,...test] = [1,2,3,4,5,6];console.log(fistn);//1console.log(test);//[2,3,4,5,6]

注意:如果使用扩展运算符结合解构赋值使用;扩展运算符必须是最后一个,否则就会报错;

name属性

函数的name属性返回函数的名称;

 function xyd(){} console.log(xyd.name);//xyd

注意函数是一个匿名函数;
ES5返回一个空的字符串;
ES6返回实际函数的名称;

var a = function (){}console.log(a.name);//如果是ES5返回 ""console.log(a.name);//如果是ES6返回 a
原创粉丝点击