最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中剩余參數(shù)的使用詳解

 更新時(shí)間:2023年11月21日 16:55:11   作者:ChasingTarget  
JavaScript中的剩余參數(shù)一般使用在**賦值號(hào)右側(cè),或具有迭代屬性的數(shù)組、函數(shù)和對(duì)象,這篇文章主要為大家介紹了JavaScript中剩余參數(shù)的具體應(yīng)用,需要的可以參考下

MDN JavaScript官網(wǎng)對(duì)剩余參數(shù)的解釋: developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Rest_parameters

區(qū)分展開語(yǔ)法和剩余參數(shù)

JavaScript中的剩余參數(shù)使用在**賦值號(hào)右側(cè),或具有迭代屬性的數(shù)組、函數(shù)和對(duì)象。 **可以用來(lái)連接兩個(gè)數(shù)組或字符串等迭代??對(duì)象。

const arr = [1, 2, ...[3, 4]];
console.log(arr);

與展開語(yǔ)法相反,剩余參數(shù)是用在**賦值號(hào)左側(cè)的,具有迭代屬性的數(shù)組、函數(shù)和對(duì)象。 **并且剩余參數(shù)會(huì)將獲取到的結(jié)果以數(shù)組的形式進(jìn)行存儲(chǔ)。

// REST, because on LEFT side of =
const [a, b, ...others] = [1, 2, 3, 4, 5];
// ...others 收集數(shù)組中未使用的元素
console.log(a, b, others);

利用剩余參數(shù)獲取數(shù)組中的其他元素

const restaurant = {
    name: '意大利????經(jīng)典',
    location: 'Via Angelo Tavanti 23, 佛羅倫薩, 意大利',
    categories: ['意大利', '比薩店', '素食', '有機(jī)'],
    starterMenu: ['佛卡夏', '意式烤面包', '大蒜面包', '卡普雷塞沙'],
    mainMenu: ['披薩', '意大利面', '燴飯'],
};
const [pizza, , risotto, ...otherFood] = [
    ...restaurant.mainMenu,
    ...restaurant.starterMenu
];
console.log(pizza, risotto, otherFood);

剩余參數(shù)必須是數(shù)組中最后一個(gè)元素,如果不是數(shù)組中的最后一個(gè)元素,程序?qū)⒎祷劐e(cuò)誤并終止運(yùn)行。這同樣意味著,在任何解構(gòu)數(shù)組或?qū)ο笾校S鄥?shù)只能使用一次。

const [pizza, , risotto, ...otherFood, bread] = [
    ...restaurant.mainMenu,
    ...restaurant.starterMenu
];	// An Error will be occur!將會(huì)出現(xiàn)一個(gè)錯(cuò)誤
console.log(pizza, risotto, otherFood);

利用剩余參數(shù)獲取對(duì)象中的其他屬性

const restaurant = {
    name: '意大利????經(jīng)典',
    location: 'Via Angelo Tavanti 23, 佛羅倫薩, 意大利',
    categories: ['意大利', '比薩店', '素食', '有機(jī)'],
    starterMenu: ['佛卡夏', '意式烤面包', '大蒜面包', '卡普雷塞沙'],
    mainMenu: ['披薩', '意大利面', '燴飯'],
    openingHours: {
        thu: {
            open: 12,
            close: 22,
        },
        fri: {
            open: 11,
            close: 23,
        },
        sat: {
            open: 0, // Open 24 hours
            close: 24,
        },
    },
};

const { sat, ...weekdays } = restaurant.openingHours;
console.log(sat, weekdays);

利用剩余參數(shù)為函數(shù)獲取多個(gè)參數(shù)

通常情況下,我們會(huì)給一個(gè)函數(shù)在函數(shù)聲明階段給予固定的參數(shù),并且調(diào)用函數(shù)階段同樣填入固定數(shù)量的參數(shù)。

const add = function (num1, num2) {
    console.log(numb1, num2);
}
add(2, 3);

但利用剩余參數(shù)功能,你可以在聲明函數(shù)時(shí)不限定參數(shù)數(shù)量,這樣在調(diào)用函數(shù)時(shí)可以填入任意數(shù)量的參數(shù)進(jìn)行操作。

const add = function (...numbers) {
    console.log(numbers);
}
add(2, 3);
add(5, 3, 7, 2);
add(8, 2, 5, 3, 2, 1, 4);

這樣,你可以通過(guò)函數(shù)剩余參數(shù)功能改造add()函數(shù),使其可以進(jìn)行累加操作。

const add = function (...numbers) {
    let sum = 0;
    for (let i = 0; i < numbers.length; i++) {
        sum += numbers[i];
    }
    return sum;
}
console.log(add(2, 3));  // 5
console.log(add(5, 3, 7, 2));    // 17
console.log(add(8, 2, 5, 3, 2, 1, 4));   // 25

甚至你也可以在函數(shù)傳遞參數(shù)時(shí)使用擴(kuò)展語(yǔ)法,將數(shù)組內(nèi)部的元素打包傳遞給add函數(shù)。通過(guò)這種方式,你無(wú)需將想要相加的數(shù)字依次傳入函數(shù)。用展開語(yǔ)法即可方便的完成此項(xiàng)操作。

const x = [23, 5, 7];
console.log(add(...x));  // 利用展開語(yǔ)法再次將數(shù)組打包??

通過(guò)剩余參數(shù)操作對(duì)象內(nèi)的方法

const restaurant = {
    name: '意大利????經(jīng)典',
    location: 'Via Angelo Tavanti 23, 佛羅倫薩, 意大利',
    categories: ['意大利', '比薩店', '素食', '有機(jī)'],
    starterMenu: ['佛卡夏', '意式烤面包', '大蒜面包', '卡普雷塞沙'],
    mainMenu: ['披薩', '意大利面', '燴飯'],
    orderPizza: function (mainIngredient, ...otherIngredients) {
        console.log(mainIngredient);
        console.log(otherIngredients);
    }
};
restaurant.orderPizza('蘑菇??', '蔥', '橄欖??', '菠菜??');

我們修改了restaurant對(duì)象上的orderPizza方法。其中第一個(gè)參數(shù)(主要成分)mainIngredient只接收一個(gè)字符串,而第二個(gè)參數(shù)(其他成分)otherIngredients因?yàn)樵诘?code>剩余參數(shù)的作用下可以傳入多個(gè)字符串,并將這些字符串自動(dòng)封裝成一個(gè)數(shù)組傳入orderPizza方法。這樣,我們就可以很方便的得到以下結(jié)果:

如果你不在對(duì)應(yīng)的...otherIngredients處傳入相關(guān)參數(shù),你會(huì)得到一個(gè)空數(shù)組。

restaurant.orderPizza('蘑菇??', '蔥', '橄欖??', '菠菜??');	//蘑菇??,
							    // ['蔥', '橄欖??', '菠菜??']
restaurant.orderPizza('蘑菇??');	// 蘑菇?? 
				        // []

到此這篇關(guān)于JavaScript中剩余參數(shù)的使用詳解的文章就介紹到這了,更多相關(guān)JavaScript剩余參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS實(shí)現(xiàn)十字坐標(biāo)跟隨鼠標(biāo)效果

    JS實(shí)現(xiàn)十字坐標(biāo)跟隨鼠標(biāo)效果

    這篇文章給大家分享一下通過(guò)JS實(shí)現(xiàn)十字坐標(biāo)跟隨鼠標(biāo)效果的代碼,有需要的朋友參考學(xué)習(xí)下吧。
    2017-12-12
  • JavaScript中變量、指針和引用功能與操作示例

    JavaScript中變量、指針和引用功能與操作示例

    這篇文章主要介紹了JavaScript中變量、指針和引用功能與操作,結(jié)合實(shí)例形式分析了javascript變量、指針與引用的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-08-08
  • Bootstrap按鈕功能之查詢按鈕和重置按鈕

    Bootstrap按鈕功能之查詢按鈕和重置按鈕

    一般情況下,查詢列表有查詢條件、查詢按鈕和重置按鈕,輸入查詢條件,點(diǎn)擊查詢按鈕查詢列表等數(shù)據(jù);點(diǎn)擊重置按鈕會(huì)將查詢條件恢復(fù)到原始狀態(tài)。接下來(lái)通過(guò)本文給大家介紹bootstrap實(shí)現(xiàn)查詢按鈕和重置按鈕的方法,一起看看吧
    2016-10-10
  • js中function()使用方法

    js中function()使用方法

    通過(guò)函數(shù)對(duì)象的性質(zhì),可以很方便的將一個(gè)函數(shù)賦值給一個(gè)變量或者將函數(shù)作為參數(shù)傳遞,下面為大家介紹下函數(shù)的使用語(yǔ)法
    2013-12-12
  • js實(shí)現(xiàn)的仿新浪微博完美的時(shí)間組件升級(jí)版

    js實(shí)現(xiàn)的仿新浪微博完美的時(shí)間組件升級(jí)版

    本博客沒(méi)有華麗的布局,只求樸實(shí)的js的代碼,只為js代碼愛(ài)好者提供,一周大概會(huì)出1-2篇js前沿代碼的文章.只是代碼,不說(shuō)技術(shù)
    2011-12-12
  • TypeScript 映射類型詳情

    TypeScript 映射類型詳情

    這篇文章主要介紹了TypeScript 映射類型詳情,一個(gè)類型需要基于另外一個(gè)類型, 又不想拷貝一份,這個(gè)時(shí)候可以考慮使用映射類型,映射類型建立在索引簽名的語(yǔ)法上,下面文章我們就從回顧下索引簽名展開TypeScript 映射類型的相關(guān)資料,需要的朋友可以參考一下
    2021-12-12
  • Js數(shù)組的操作push,pop,shift,unshift等方法詳細(xì)介紹

    Js數(shù)組的操作push,pop,shift,unshift等方法詳細(xì)介紹

    js中針對(duì)數(shù)組操作的方法還是比較多的,今天突然想到來(lái)總結(jié)一下,也算是溫故而知新吧。不過(guò)不會(huì)針對(duì)每個(gè)方法進(jìn)行講解,我只是選擇其中的一些來(lái)講,感興趣的朋友可以研究一下
    2012-12-12
  • JS實(shí)現(xiàn)仿中關(guān)村論壇評(píng)分后彈出提示效果的方法

    JS實(shí)現(xiàn)仿中關(guān)村論壇評(píng)分后彈出提示效果的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)仿中關(guān)村論壇評(píng)分后彈出提示效果的方法,實(shí)例分析了javascript彈出特效的css與提示框的具體實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • js腳本中執(zhí)行java后臺(tái)代碼方法解析

    js腳本中執(zhí)行java后臺(tái)代碼方法解析

    這篇文章主要介紹了js腳本中執(zhí)行java后臺(tái)代碼方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 圖解JavaScript中的this關(guān)鍵字

    圖解JavaScript中的this關(guān)鍵字

    這篇文章利用圖片講解的方式向大家解釋了JavaScript中的this關(guān)鍵字,JavaScript this 到底指向什么?從這篇文章中大家可以得到想要的答案,需要的朋友可以參考下
    2015-10-10

最新評(píng)論

和顺县| 成都市| 安仁县| 娄底市| 霍林郭勒市| 鹤壁市| 河津市| 新田县| 津市市| 永善县| 宁安市| 尚志市| 蓬安县| 阿拉尔市| 九寨沟县| 运城市| 龙门县| 万盛区| 沐川县| 扬州市| 桐梓县| 三台县| 平江县| 霍州市| 太原市| 万山特区| 沙坪坝区| 临西县| 金秀| 保定市| 乌苏市| 武强县| 黔江区| 浙江省| 清水河县| 平顶山市| 班玛县| 昂仁县| 仙桃市| 辽阳县| 房山区|