es6-函数(二)

参考以下博客,建议查看原博客,它更为详细;
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 3
console.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);//1
console.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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值