ES6函数拓展

前言

函数对我们来说使用是非常频繁的,ES6中对于函数又加入了很多非常好用的内容,最近看完这一块之后,觉得很有必要整理一下。

Es6中的参数默认值

经常使用javascript的人都知道在ES5中如果我们想要对所传参数设置默认值,我们需要在函数体内一开始的地方编写,比如:

function fnc( a, b ){
	// 给b设置默认参数
	b = b || 10;
	return a+b;
}
// 传入 a 与 b
fnc(2,3)  //  返回  5
// b不传值
fnc(5)  // 返回  15
//  但是这里有一种情况,当我给b传入0时
fnc(5,0)  //返回 15
//  这是因为0在JavaScript条件判断中表示假
//因此这个默认参数我们可能会改写成
b = b === 'undefined' ?  10:b;

这样就可以解决b为0的问题了。但是这样写就会看上去比较麻烦,不好看,因此ES6出了一个参数默认值的写法

function fnc(a,b=10){
	return a+b;
}
fnc(10,0)   // 返回20

这样就算b传入0也能正确返回我们想要的值。

剩余参数

在ES5中当我们不确定参数都有哪些时,一般我们会去使用arguments来展示,

function fn (a,b,arguments){
	return arguments;
}
var test = fn(1,2,3,4,5,6,7) ;
console.log(test)        //  [1,2,3,4,5,6,7]

arguments将所有参数包含在一个数组内,但是我们的函数方法已经确定了a,b;此时并不想让它们两者也包含在其中,ES6对此就推出了很实用的方式,利用 ‘…’加上一个参数名就可以搞定。

function fn ( a, b, ...rest ){
	return rest ;
}
var test = fn(1,2,3,4,5,6,7) ;
console.log(test)        //  [3,4,5,6,7]

如此,a对应1,b对应2,剩下的参数变成一个数组放置在rest中。
注意:在这里剩余参数必须写在传参的最后一项。

箭头函数

a. 箭头函数中的this对象就是定义时所在的对象,而不是使用时所在的对象;
b. 箭头函数不能当做构造函数,也就是不能使用new的方式去构建;
c. 在箭头函数中没有arguments这个对象,可以使用rest代替;
d. 不可以使用yield命令,因此箭头函数不能用作Generator函数。
箭头函数的使用:

// 普通函数写法
function fn(a,b){
	return a+b;
}

//箭头函数写法
var fn = (a,b)=>{return a+b};
//当函数体内只有一条语句,同时也是返回值的时候,还可以简化成
var fn =  (a, b) => a+b;
//当参数只有一个的时候,可以去掉参数的()括号,简写成
var fn = a => a+10;
// 注意,箭头函数的函数体部分简写的时候,要注意返回的是什么,如果是一个对象,不能直接写成
var fn = () => { a:3 };
// 而是应该用()将返回的对象包起来
var fn = () => ( { a:3 } )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值