對于數(shù)組的處理,開發(fā)者不斷的在創(chuàng)造更好的方式,而在ES2015(ES6) 新增了一種 基本運算符——展開運算符 使用三個點 ... 表示,它的作用是在調用函數(shù)、數(shù)組構造時 將數(shù)組表達式或字符串在語法層面進行展開; 構建字面量的對象時以鍵值對的形式進行展開。
這里小千給大家介紹一下它的基本用法
構建字面量語法的數(shù)組
通常情況下構建字面量結構的數(shù)組我們會使用如 push splice unshift concat 等函數(shù)將現(xiàn)有數(shù)組作為新數(shù)組的一部分。
展開運算符可以更簡單快速的完成這項工作。
鏈接數(shù)組
在擁有展開運算符以前 我們通常使用 concat 函數(shù) 進行數(shù)組的鏈接
數(shù)組拷貝
從以上結果我們可以看出 展開運算符只遍歷展開數(shù)組的第一層(淺拷貝)。 展開的結果如果是引用類型則不繼續(xù)向下遍歷。 事實上它的行為和 Object.assign() 是相同的
對象拷貝和合并
使用展開運算符進行新對象構造 本質上是講原有對象中的所有 可枚舉 屬性拷貝到新對象中; 與 Object.assign() 不同的是 Object.assign()會觸發(fā)setters 展開運算符不會。
rest參數(shù)(剩余參數(shù))
ES2015 引入 rest參數(shù)(語法為 ...變量名),用于獲取函數(shù)的多余參數(shù),這樣就不需要使用arguments對象了。rest參數(shù)搭配的變量是一個數(shù)組,該變量將多余的參數(shù)放入數(shù)組中。 這個特性可以讓我們在一些特定環(huán)境更方便的去處理參數(shù)(例如沒有arguments的箭頭函數(shù))
我們也可以對部分參數(shù)使用rest參數(shù),但是在rest參數(shù)后不能有其他參數(shù)(rest必須是最后一個參數(shù))
注意點: 在數(shù)組或函數(shù)參數(shù)中使用展開語法時, 只能用于 可迭代對象(支持 iterator)
最后想學習web前端的同學,可以參考千鋒web前端培訓班提供的web前端學習路線,該學習路線對從零基礎小白到web前端初級開發(fā)工程師,web前端高級開發(fā)工程師,后面的web前端大神級開發(fā)工程師都有一個明確清晰的指導,根據(jù)千鋒web前端培訓機構提供的web前端學習路線圖可以讓你對學習web前端開發(fā)需要掌握的知識有個清晰的了解,并快速入門web前端開發(fā)。想要獲取前端完整學習路線和免費的學習資料可以添加我們的web前端技術分享交流qq群:857920838 加群找群管理領取即可,等你來哦~~