欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ES6擴(kuò)展運(yùn)算符和rest運(yùn)算符用法實(shí)例分析

 更新時(shí)間:2020年05月23日 10:28:11   作者:WFaceBoss  
這篇文章主要介紹了ES6擴(kuò)展運(yùn)算符和rest運(yùn)算符用法,結(jié)合實(shí)例形式分析了ES6擴(kuò)展運(yùn)算符和rest運(yùn)算符基本功能、用法及操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了ES6擴(kuò)展運(yùn)算符和rest運(yùn)算符用法。分享給大家供大家參考,具體如下:

運(yùn)算符可以很好的為我們解決參數(shù)和對象數(shù)組未知情況下的編程,讓我們的代碼更健壯和簡潔。

運(yùn)算符有兩種:對象擴(kuò)展運(yùn)算符與rest運(yùn)算符。

1.對象擴(kuò)展( spread)運(yùn)算符(...)

(1)解決參數(shù)個(gè)數(shù)問題

以前我們編程是傳遞的參數(shù)一般是確定,否則將會報(bào)錯(cuò)或者異常,如下:

function test(a,b,c,d) {
 console.log(a)
 console.log(b)
 console.log(c)
 console.log(d)
 console.log(e)//e is not defined
}
test(1,2,3,4)

參數(shù)固定,多余的參數(shù)會出錯(cuò)。

但我們又想傳遞多個(gè)參數(shù),但是不確定參數(shù)的個(gè)數(shù),這時(shí)候可以使用對象擴(kuò)展運(yùn)算符來作參數(shù)。

function test1(...arg) {
 console.log(arg[0]);//1
 console.log(arg[1]);//2
 console.log(arg[2]);//3
 console.log(arg[3])//4
 console.log(arg[4])//5
 console.log(arg[5])//undefined
}
test1(1,2,3,4,5)

這時(shí)候程序是不會報(bào)錯(cuò)的,多余取值返回的結(jié)果是undefined。這說明是可以傳入多個(gè)值,并且就算方法中引用多了也不會報(bào)錯(cuò)。

(2)解決數(shù)組賦值問題

我們先用一個(gè)例子說明,我們聲明兩個(gè)數(shù)組arr1和arr2,然后我們把a(bǔ)rr1賦值給arr2,然后我們改變arr2的值,你會發(fā)現(xiàn)arr1的值也改變了,因?yàn)槲覀冞@是對內(nèi)存堆棧的引用,而不是真正的賦值。

let arr1=['i','love','you'];
let arr2=arr1;
console.log("arr2====",arr2);
arr2.push('too');
console.log("arr1====>",arr1);

控制臺輸出的結(jié)果為:

["i", "love", "you"]

["i", "love", "you", "too"]

這是我們不想看到的,可以利用對象擴(kuò)展運(yùn)算符簡單的解決這個(gè)問題,現(xiàn)在我們對代碼進(jìn)行改造。

let arr1=['i','love','you'];
let arr2=[...arr1];
console.log(arr2);
arr2.push('too');
console.log(arr1);

最終可以看到我們的arr1并沒有改變,簡單的擴(kuò)展運(yùn)算符就解決了這個(gè)問題。

2.rest運(yùn)算符

(1)含義

rest參數(shù)作用: 將多余的逗號分隔的參數(shù)序列轉(zhuǎn)換為數(shù)組參數(shù)

注意: rest參數(shù)必須是最后一個(gè)參數(shù),否則報(bào)錯(cuò)。

rest運(yùn)算符與對象擴(kuò)展運(yùn)算符有很多類似之處,它也用…(三個(gè)點(diǎn))來表示,比如:

function test(first,...arg){
 console.log("first==>",first)//0
 console.log("arg=====>",arg)
}
test(0,1,2,3,4,5,6,7);

輸出結(jié)果為:

first==> 0
arg=====>[1, 2, 3, 4, 5, 6, 7]

(2)如何循環(huán)輸出rest運(yùn)算符

用for…of循環(huán)來進(jìn)行打印出arg的值

function test(first,...arg){
 for(let val of arg){
  console.log(val)
 }
}
test(0,1,2,3,4,5,6,7);

結(jié)果為:

1,2,3,4,5,6,7

最后總結(jié):

  • 擴(kuò)展運(yùn)算符用三個(gè)點(diǎn)號表示,功能是把數(shù)組或類數(shù)組對象展開成一系列用逗號隔開的值
  • rest運(yùn)算符也是三個(gè)點(diǎn)號,不過其功能與擴(kuò)展運(yùn)算符恰好相反,把逗號隔開的值序列組合成一個(gè)數(shù)組
  • 當(dāng)三個(gè)點(diǎn)(...)在等號左邊,或者放在形參上。為 rest 運(yùn)算符
  • 當(dāng)三個(gè)在等號右邊,或者放在實(shí)參上,是 spread運(yùn)算符

或者說:放在被賦值一方是rest 運(yùn)算符。放在賦值一方式 spread運(yùn)算符。

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論