ES6函数的改变不算太大,都是一些其余语言早就有的功能,而Javascript一直比较欠缺的,好比函数参数默认值,任意参数的表示法,最大的变化应该是支持箭头函数(其余语言称之为LAMBDA表达式),一种对匿名函数的一种简写方式。javascript
箭头函数的本质是方法函数的一种简写,不须要function关键字来建立函数,它能够省略return关键字,当只有一个参数是,能够省略(),若是只有一个return,能够省略{}。具体来看看代码:java
function square(n){ return n*n; } //等价于 let square = n => n*n;
在ES5咱们给函数定义参数默认值是怎么样?数组
function action(num) { num = num || 200 //当传入num时,num为传入的值 //当没传入参数时,num即有了默认值200 return num }
但当,num传入为0的时候就是false, 此时num = 200 与咱们的实际要的效果明显不同。微信
ES6为参数提供了默认值。在定义函数时便初始化了这个参数,以便在参数没有被传递进去时使用。app
function action(num = 200) { console.log(num) } action() //200 action(300) //300
在函数命名参数前添加...三个点代表这是一个不定参数。函数
这是一个相似C#的params object参数,放在最后一个形参,用来收集剩余的参数。学习
function pick(obj, ...keys) { let result = Object.create(null) for (let i = 0, len = keys.length; i < len; i++) { result[keys[i]] = object[keys[i]] } return result }
其实,它还能够用来展开数组,咱们来看一下:spa
Math.max可接受任意数量的参数并返回最大的那个,但若是传入的是一个数组,则只能使用apply。code
console.log(Math.max(11, 2, 3, 12, 43, 904, 3543, 43)) let values = [11, 2, 3, 12, 43, 904, 3543, 43] console.log(Math.max.apply(Math, values))
使用展开运算符就变得特别简单了。视频
let values = [11, 2, 3, 12, 43, 904, 3543, 43] console.log(Math.max(...values))
若是想跟着振丹继续学习,能够微信关注【振丹敲代码】(微信号:JandenCoding)
新博文微信同步推送,还附有讲解视频哦~
也可直接扫描下方二维码关注。