在JavaScript中,多個點號「...」指的是擴充運算符,是在ES6中新增加的特性,它可以在函數呼叫/陣列建構時,將陣列表達式或者string在語法層級展開;也可以在建構字面量物件時將物件運算式依照「key-value」的方式展開。
本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。
在JavaScript中,三個點(...)真名叫擴展運算符,是在ES6中新增加的內容,它可以在函數調用/數組構造時,將數組表達式或者string在語法層面展開;還可以在建構字面量物件時將物件表達式按照key-value的方式展開
字面量一般指[1,2,3]或{name:'chuichui' }這種簡潔的建構方式,多層嵌套的陣列和物件三個點就無能為力了
說白了就是把衣服脫了,不管是大括號([])、花括號({}),統統不在話下,全部脫掉脫掉!
// 数组 var number = [1,2,3,4,5,6] console.log(...number) //1 2 3 4 5 6 //对象 var man = {name:'chuichui',height:176} console.log({...man}) / {name:'chuichui',height:176}
它的用處很廣泛,我們隨處都可以看到,下面是幾個常見的例子
//数组的复制 var arr1 = ['hello'] var arr2 =[...arr1] arr2 // ['hello'] //对象的复制 var obj1 = {name:'chuichui'} var obj2 ={...arr} ob12 // {name:'chuichui'}
//数组的合并 var arr1 = ['hello'] var arr2 =['chuichui'] var mergeArr = [...arr1,...arr2] mergeArr // ['hello','chuichui'] // 对象分合并 var obj1 = {name:'chuichui'} var obj2 = {height:176} var mergeObj = {...obj1,...obj2} mergeObj // {name: "chuichui", height: 176}
var arr1 = [...'hello'] arr1 // ["h", "e", "l", "l", "o"]
可以和正常的函數結合,靈活使用
function f(v,w,x,y,z){ } var args = [2,3] f(1,...args,4,...[5])
當我們想把數組中的元素迭代為函數參數時,用它!
function f(x,y,z){} var args = [1,2,3] f(...args) // 以前的方法 f.apply(null,args);
【推薦學習:javascript進階教學】
以上是JavaScript多個點號什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!