物件擴充套件運算子( )

2022-07-07 08:09:12 字數 913 閱讀 8304

當編寫乙個方法時,我們允許它傳入的引數是不確定的。這時候可以使用物件擴充套件運算子來作引數,看乙個簡單的列子:12

3456

78functionjspang(...arg)

jspang(1,2,3);

這時我們看到控制台輸出了 1,2,3,undefined,這說明是可以傳入多個值,並且就算方法中引用多了也不會報錯。

擴充套件運算子的用處:

我們先用乙個例子說明,我們宣告兩個陣列arr1和arr2,然後我們把arr1賦值給arr2,然後我們改變arr2的值,你會發現arr1的值也改變了,因為我們這是對記憶體堆疊的引用,而不是真正的賦值。12

345let arr1=['www','jspang','com'];

let arr2=arr1;

console.log(arr2);

arr2.push('shenghongyu');

console.log(arr1);

控制台輸出:12

["www","jspang","com"]

["www","jspang","com","shenghongyu"]

這是我們不想看到的,可以利用物件擴充套件運算子簡單的解決這個問題,現在我們對**進行改造。12

3456

7let arr1=['www','jspang','com'];

//let arr2=arr1;

let arr2=[...arr1];

console.log(arr2);

arr2.push('shenghongyu');

console.log(arr2);

console.log(arr1);

現在控制台預覽時,你可以看到我們的arr1並沒有改變,簡單的擴充套件運算子就解決了這個問題。

物件擴充套件運算子( )與rest運算子

當編寫乙個方法時,我們允許它傳入的引數是不確定的。這時候可以使用物件擴充套件運算子來作引數,看乙個簡單的列子 function xzdemo arg xzdemo 1,2,3 這時我們看到控制台輸出了 1,2,3,undefined,這說明是可以傳入多個值,並且就算方法中引用多了也不會報錯。我們先用...

物件的擴充套件運算子

陣列的擴充套件 一章中,已經介紹過擴充套件運算子 const a,b 1,2,3 a 1 b 2,3 es2018 將這個運算子 引入了物件。解構賦值 物件的解構賦值用於從乙個物件取值,相當於將目標物件自身的所有可遍歷的 enumberable 但是尚未讀取的屬性,分配到指定的物件上面。let x ...

擴充套件運算子

三個點,主要是用來將陣列幻化為用逗號分隔的引數序列。合併陣列 與解構賦值結合 如果將擴充套件運算子用於陣列賦值,只能放在引數的最後一位,否則會報錯。將字串轉為真正的陣列 可以將類似陣列的物件轉為真正的陣列 map和set結構,generator函式 擴充套件運算子內部呼叫的是資料解構的iterato...