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)
新博文微信同步推送,還附有講解視頻哦~
也可直接掃描下方二維碼關注。