在JavaScript中,三個(gè)點(diǎn)“…”代表擴(kuò)展運(yùn)算符,是在ES6中新增加的內(nèi)容,它可以在函數(shù)調(diào)用/數(shù)組構(gòu)造時(shí),將數(shù)組表達(dá)式或者string在語法層面展開;還可以在構(gòu)造字面量對(duì)象時(shí)將對(duì)象表達(dá)式按照“key-value”的方式展開。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
我們?cè)诳磈s代碼時(shí)經(jīng)常會(huì)出現(xiàn)(…)三個(gè)點(diǎn)的東西,它究竟是什么意思?又有何用處?
下面我就給大家分享一下三個(gè)點(diǎn)的那些事
什么意思?
三個(gè)點(diǎn)(…)真名叫擴(kuò)展運(yùn)算符,是在ES6中新增加的內(nèi)容,它可以在函數(shù)調(diào)用/數(shù)組構(gòu)造時(shí),將數(shù)組表達(dá)式或者string在語法層面展開;還可以在構(gòu)造字面量對(duì)象時(shí)將對(duì)象表達(dá)式按照key-value的方式展開
字面量一般指[1,2,3]或者{name:'chuichui'}這種簡(jiǎn)潔的構(gòu)造方式,多層嵌套的數(shù)組和對(duì)象三個(gè)點(diǎn)就無能為力了
說白了就是把衣服脫了,不管是大括號(hào)([])、花括號(hào)({}),統(tǒng)統(tǒng)不在話下,全部脫掉脫掉!
// 數(shù)組 var number = [1,2,3,4,5,6] console.log(...number) //1 2 3 4 5 6 //對(duì)象 var man = {name:'chuichui',height:176} console.log({...man}) / {name:'chuichui',height:176}
有什么用?
它的用處很廣泛,我們隨處都可以看到,下面是幾個(gè)常見的例子
復(fù)制用它
//數(shù)組的復(fù)制 var arr1 = ['hello'] var arr2 =[...arr1] arr2 // ['hello'] //對(duì)象的復(fù)制 var obj1 = {name:'chuichui'} var obj2 ={...arr} ob12 // {name:'chuichui'}
合并用它
//數(shù)組的合并 var arr1 = ['hello'] var arr2 =['chuichui'] var mergeArr = [...arr1,...arr2] mergeArr // ['hello','chuichui'] // 對(duì)象分合并 var obj1 = {name:'chuichui'} var obj2 = {height:176} var mergeObj = {...obj1,...obj2} mergeObj // {name: "chuichui", height: 176}
字符轉(zhuǎn)數(shù)組用它
var arr1 = [...'hello'] arr1 // ["h", "e", "l", "l", "o"]
函數(shù)傳參用它
可以和正常的函數(shù)相結(jié)合,靈活使用
function f(v,w,x,y,z){ } var args = [2,3] f(1,...args,4,...[5])
當(dāng)我們想把數(shù)組中的元素迭代為函數(shù)參數(shù)時(shí),用它!
function f(x,y,z){} var args = [1,2,3] f(...args) // 以前的方法 f.apply(null,args);
【推薦學(xué)習(xí):javascript高級(jí)教程】