搞懂函數參數這三種形式,就能夠完美替換不建議使用的arguments
知識
06-06
點擊右上方紅色按鈕關注「小鄭搞碼事」,每天都能學到知識,搞懂一個問題!
有關函數的參數,原來有一些設計的比較糟糕的地方,例如arguments。一個像數組又不是真正數組的"東西"(關於它的詳細使用可以參數我之前寫的一篇文章)。可以認為它是一個類數組對象。它的使用有太需要注意的地方,很容易導致錯誤。
然而,新的語法對參數設計做了一些改善。主要有三個方面,默認參數,不定參數,拓展參數。
一、默認參數
輸出:Hello 小鄭搞碼事
可以在函數括弧里設置默認值。當執行時沒有傳參數時就默認使用它。
二、不定參數
輸出:Hello 小鄭 小鄭搞碼事
可以注意到不定參數是使用數組(這裡:name)來表示多個參數。函數里我用 reduce方法將它遍歷了出來。
三、擴展參數
輸出:Hello 小鄭 小鄭搞碼事
可以看到,擴展參數則是將多個參數映射到一個數組。擴展參數和不定參數恰好是相反的兩個模式。
最後對比arguments
以上不定參數相對於argumnents來說,它是一個完全的數組。更加方便我們來使用,所以, 建議使用不定參數來代替arguments。當然,如果在ECMAScript6中定義了"use strict",arguments的使用也基本被限制了,所以我們應該盡量使用新的函數參數。
※小鄭搞碼事:CSS中一個非常熟悉的屬性color,作用範圍遠不只文字
TAG:小鄭搞碼事 |