我們都清楚在呼叫函式的過程中,定義的引數缺失,此引數變數的值則會是undefined。怎麼給缺失的引數賦值預設值,在es6之前,並沒有太簡潔的方法,如下段**所示:
這種寫法是不是比較麻煩?預設值的設定是不是不夠直觀?function
myfunction
(x, y, z)
myfunction(6
,7);
在上述**示例中,我們在呼叫此函式中傳遞了前兩個引數,因此引數的預設值(即x=1和y=2)將會被覆蓋(即x=6和y=7)。由於第三個引數預設,因此z使用預設值,將會是3。function
myfunction
(x =
1, y =
2, z =3)
myfunction(6
,7);
//6 7 3
在es6語法中如果想使用到引數預設值,還可以通過傳入undefined,來完成引數預設值,來是不是很簡單,只需要使用undefined,我們就可以指定具體某個引數使用預設值。unction myfunction
(x =
1, y =
2, z =3)
myfunction
(undefined,7,9);
如果在特定的場景下,第乙個引數需要要到引數預設值,我們就可以使用undefined,非常的簡單方便。
在上述**中,我們只傳入了前兩個引數,第三個引數預設,第三個引數的預設值是則會是前兩個引數之和。function
myfunction
(x =
1, y =
2, z = x + y)
myfunction(6
,7);
前端高階攻略之ES6中的解構賦值
今天我們來 乙個新問題 之前在我們開發的過程中,難免會碰到這樣的情況 後端傳給我們一串資料,然後我們需要對這個資料進行處理。如果是這樣的乙個資料 let obj 然後我們需要用變數去儲存這些資料,那麼我們可能會這麼操作 let username obj.username,userid obj.use...
前端高階攻略之ES6中展開 收集運算子
收集,顧名思義把雜湊東西收集到乙個地方,這個地方es6規定收集在陣列中 例如 下面函式fn將傳遞的引數收集在arg變數中,列印arg是乙個陣列,裡面包含著傳來的引數。就像吃豆子一樣把值收到自己的嘴裡。functionfn arg fn 1,2,3 上面的 讓我們想起來arguments,也是儲存著傳...
前端高階攻略之事件迴圈 ES6事件佇列
事件迴圈與任務佇列是js中比較重要的兩個概念。這兩個概念在es5和es6兩個標準中有不同的實現。尤其在es6標準中,清楚的區分巨集觀任務佇列和微觀任務佇列才能解釋promise一些看似奇怪的表現。總所周知js是單執行緒 非同步 優點 不會有執行緒衝突 缺點 同步應用程式的開發比較容易,但由於需要在上...