ECMAScript6函數剩餘參數(Rest Parameters)_javascript技巧
我們知道JS函數內部有arguments對象,可以拿到全部實參。現在ES6為我們帶來了一個新的對象,可以拿到除開始參數外的參數,即剩餘參數(廢話好多 O(∩_∩)O~)。
這個新的物件和arguments不一樣,它是程式設計師自訂的普通標識符,只是需要在前面加上三個點:...
function func(a, ...rest) { console.log(a) console.log(rest) } func(1) func(1, 2, 3, 4)
注意func的第二個參數rest,前面有三個點。定義好後調用了兩次,結果分別如下
可以看到第一次呼叫時,rest為一個空數組,第二次為[2, 3, 4]。
又例如,在前面定義2個參數
function func(a, b, ...rest) { console.log(a, b) console.log(rest) } func(1, 2) func(1, 2, 3, 4)
輸出結果如下
透過以上兩個範例應該已經了解剩餘參數的意義了吧。
剩餘參數嘛,所以後面就不要再跟其它的參數了,不然會報錯
function func(a, ...rest, b) { }
這裡在rest後面加了一個參數b,Firefox會報錯
當您使用剩餘參數後,函數的length屬性會發生一些變化
function func(a, b, ...rest) { } func.length // 2
即length不包含rest,為2。
有同學會想,剩餘參數前面是否可以一個參數都沒有呢? 答案是肯定的
function func(...rest) { console.log(rest) } func(1) // [1] func(1, 2, 3, 4) // [1,2,3,4]
這裡的rest實際和arguments功能差不多,有同學想這不就取代了arguments嗎? ECMAScript就是這個打算,在被廢棄的ES4裡就已經有Rest Parameters(熟悉AS3的同學應該了解),ES4被廢棄後,Rest Parameters被保留到了ES6。
請注意,rest不能跟arguments一起使用,會報錯
function func(...rest) { console.log(rest) console.log(arguments) }
Firefox控制台如下
arguments和剩餘參數的差別
arguments是一個偽數組(Array-like)
剩餘參數是一個真正數組(Array),具有Array.prototype上的所有方法
arguments上有callee,callee有caller
如
function func(a, ...rest) { console.log(rest instanceof Array) } func(1, 2) // true
最後我們以一個剩餘參數實際應用作為結束
/* * 任意个数相加 * * **示例** * sum(1) * sum(1, 2) * sum(1, 2, 3) */ function sum(first, ...rest) { var result = first var i = 0 var len = rest.length while (i < len) { result += rest[i] i++ } return result }
以上所述就是本文的全部內容了,希望大家能喜歡。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題











Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

深入探討console.log輸出差異的根源本文將分析一段代碼中console.log函數輸出結果的差異,並解釋其背後的原因。 �...

學習JavaScript不難,但有挑戰。 1)理解基礎概念如變量、數據類型、函數等。 2)掌握異步編程,通過事件循環實現。 3)使用DOM操作和Promise處理異步請求。 4)避免常見錯誤,使用調試技巧。 5)優化性能,遵循最佳實踐。

探索前端中類似VSCode的面板拖拽調整功能的實現在前端開發中,如何實現類似於VSCode...
