国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

輕松學習JavaScript函數中的 Rest 參數

2024-05-06 15:38:34
字體:
來源:轉載
供稿:網友

JavaScript函數可以使用任意數量的參數。與其他語言(如C#和Java)不同,你可以在調用JavaScript函數時傳遞任意數量的參數。JavaScript函數允許未知數量的函數參數。在ECMAScript 6之前,JavaScript有一個變量來訪問這些未知或可變數目的參數,這是一個類似數組的對象,并非一個數組。細想以下代碼來理解arguments變量:

function add(){var result = 0; for(let i=0;i<arguments.length;i++){result = result + arguments[i];}return result; }var r = add(6,9,3,2);console.log(r);var t = add(7,56,9);console.log(t);

如你所見,arguments對象用于訪問未知或可變的函數參數。即使arguments使用length屬性和方括號,它也不是一個真正的JavaScript數組。你不能對arguments對象使用其他JavaScript數組方法,如pop,push,slice等。在使用arguments時存在的一些問題是:

JavaScript函數arguments對象不是一個真正的JavaScript數組;因此,你不能使用其他數組方法,如pop,push,slice等。
在內部函數中訪問外部函數的arguments對象是很困難的。要訪問的話,你需要在變量中分配外部函數的arguments函數,然后在內部函數中使用它。

如果你想要使用arguments對象作為數組,那么你需要通過Aarry.prototype.slice手動轉換。
ECMAScript 6引入了一個新功能,Rest參數,它表示一個未知數量的參數作為函數中的一個數組。它不僅將額外的參數表示為數組,還解決了arguments對象的許多問題。使用rest參數重寫上面的add函數。

function add(...theArgs){var result = 0; for(let i=0;i<theArgs.length;i++){result = result + theArgs[i];}return result; }var r = add(6,9,3,2);console.log(r);var t = add(7,56,9);console.log(t);

你可以將rest參數定義為…theArgs或… args。如果最后命名的函數參數以…(三個點)作為前綴,那么它將成為函數的rest參數。JavaScript函數的rest參數是純JavaScript數組。在上面的代碼中,…theArgs是函數add的rest參數,因為它是唯一的命名參數,且也以…(三個點)作為前綴。

由于rest參數是JavaScript數組,所以你可以對rest參數theArgs執行諸如push,pop等操作,如下面的代碼所示:

function add(...theArgs){theArgs.push(10);var result = 0; for(let i=0;i<theArgs.length;i++){result = result + theArgs[i];}var lastItem = theArgs.pop();console.log(lastItem);return result; }

JavaScript函數的rest參數也可以與其他參數一起工作。如果你不想在rest參數數組中包含特定參數的話,那么你可能需要在函數中使用其他命名參數。細想以下代碼塊:

function add(num1, num2, ...theArgs){console.log(num1);console.log(num2);console.log(theArgs.length);}var r = add(6,9,3,2);var t = add(7,56,9);            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 张掖市| 保靖县| 广东省| 措勤县| 唐河县| 柘荣县| 兰坪| 滁州市| 镇康县| 克山县| 聂拉木县| 页游| 庆云县| 上栗县| 霍林郭勒市| 鄂托克前旗| 江山市| 泰兴市| 扎鲁特旗| 达尔| 衡山县| 富源县| 通化县| 瑞丽市| 井陉县| 宁德市| 宜昌市| 绥阳县| 贵南县| 云林县| 周宁县| 西乌珠穆沁旗| 射阳县| 汉源县| 鄂州市| 镇康县| 柳林县| 太康县| 蒲城县| 武义县| 鲜城|