玩轉(zhuǎn)展開運算符_第1頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、玩轉(zhuǎn)展開運算符es2015(es6) 新增了一種 基本運算符——綻開運算符 用法三個點 . 表示它的作用是在調(diào)用函數(shù)、數(shù)組構(gòu)造時 將數(shù)組表達式或字符串在語法層面舉行綻開; 構(gòu)建字面量的對象時以鍵值對的形式舉行綻開。下面我們來看看它的基本使用:/ 綻開基本的數(shù)組const arr = &39;apple&39;,&39;orange&39;,&39;banana&39;console.log(.arr); / &39;apple&39; &39;orange&39; &

2、39;banana&39;/ 實時上上面的語句只是在語法層面綻開了數(shù)組arr 讓arr中的每一個元素作為log函數(shù)的參數(shù)構(gòu)建字面量語法的數(shù)組通常狀況下構(gòu)建字面量結(jié)構(gòu)的數(shù)組我們會用法如 push splice unshift concat 等函數(shù)將現(xiàn)有數(shù)組作為新數(shù)組的一部分。綻開運算符可以更容易迅速的完成這項工作。const arr1 = &39;welcome&39;,&39;to&39;const arr2 = &39;hello&39;,.arr1,&39;here&39; / "hello&

3、quot;, "welcome", "to", "here"鏈接數(shù)組在擁有綻開運算符以前 我們通常用法 concat 函數(shù) 舉行數(shù)組的鏈接const arr1 = 1,2,3;const arr2 = 4,5;const arr3 = arr1.concat(arr2); / 1,2,3,4,5數(shù)組拷貝const arr1 = 1,2,3,4;const arr2 = .arr1; / 1,2,3,4arr2.push(5,6); / 此時arr2 1,2,3,4,5,6 arr1的結(jié)果

4、不變const arr3 = 1,2,3,4,5,6;const arr4 = .arr3; / 1,2,3,4,5,6;arr4.pop().push(0);/ 執(zhí)行后 arr4 1,2,3/ arr3 1,2,3,4,5,6,0從以上結(jié)果我們可以看出 綻開運算符只遍歷綻開數(shù)組的第一層(淺拷貝)。 綻開的結(jié)果假如是引用類型則不繼續(xù)向下遍歷。 實際上它的行為和 object.assign() 是相同的對象拷貝和合并const obj1 = username:&39;zhangsan&39;,age:25;const obj2 = username:&39;wangwu&

5、amp;39;,phone 用法綻開運算符拷貝對象(淺拷貝)const copyobj = .obj1 ; / username:&39;zhangsan&39; , age:25 / 用法綻開運算符合并對象const mergeobj = .obj1,.obj2 ; / username:&39;wangwu&39; , age:25 , phone用法綻開運算符舉行新對象構(gòu)造 本質(zhì)上是講原有對象中的全部 可枚舉 屬性拷貝到新對象中; 與 object.assign() 不同的是 object.assign(

6、)會觸發(fā)setters 綻開運算符不會。rest參數(shù)(剩余參數(shù))es2015 引入 rest參數(shù)(語法為 .變量名),用于獵取函數(shù)的多余參數(shù),這樣就不需要用法arguments對象了。rest參數(shù)搭配的變量是一個數(shù)組,該變量將多余的參數(shù)放入數(shù)組中。 這個特性可以讓我們在一些特定環(huán)境更便利的去處理參數(shù)(例如沒有arguments的箭頭函數(shù))let myfn = (.values) => console.log(values);myfn(1,3,5); / output: 1,3,5我們也可以對部分參數(shù)用法rest參數(shù),但是在rest參數(shù)后不能有其他參數(shù)(rest必需是最后一個參數(shù))let myfn = ( a, .values ) => if(array.isarray(a)values.foreach(el=>a.push(el););let arr = 1,2,3;myfn(arr,&39;ok&39;,&39;!&39;);/ arr結(jié)果為 1,2,3,&39;ok&39;,&39;!&39;let testfn = (a, .values , b) => / 報錯注重點: 在數(shù)組或函數(shù)參數(shù)中用法綻開語法時, 只能用于 可迭代對象(支持 iterato

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論