您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在JavaScript中展開運算符,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
展開運算符(spread operator)允許一個表達式在某處展開。展開運算符在多個參數(用于函數調用)或多個元素(用于數組字面量)或者多個變量(用于解構賦值)的地方可以使用。
let obj1 = { value1: 1, value2: 2 }; let obj2 = {...obj1 }; console.log(obj2); // {value1: 1, value2: 2}
上面的用法實際相當于
obj2 = {value1: 1, value2: 2}
展開運算符的寫法與obj2 = obj1
直接賦值的寫法的區別在于如果直接賦值的話,對于引用類型
來說,相當于只是賦值了obj1
的內存空間地址,當obj2
發生改變的時候,obj1
也會隨著發生改變。而是用展開運算符
寫法的話,由于obj1
對象中的屬性類型都是基本類型
,相當于重新創建了一個對象,此時obj2
發生改變的時候,并不會影響obj1
這個對象。但是僅限于其屬性都為基本類型的情況(或者說只進行了一層的深拷貝)。如果該對象中的屬性還有引用類型的話,修改屬性中引用類型的值,則兩個對象的屬性值都會被修改。
let obj1 = { attri1: [3, 6, 0], attri2: 4, attri4: 5 }; let obj2 = {...obj1 }; obj2.attri2 = 888; obj2.attri1[0] = 7; console.log('obj1:', obj1); console.log('obj2:', obj2);
1.在函數中使用展開運算符
function test(a, b, c){}; let arr = [1, 2, 3]; test(...arr);
2.數組字面量中使用展開運算符
let arr1 = [1, 2]; let arr2 = [...arr1, 3, 4]; // [1, 2, 3, 4] // 使用push方法 let arr1 = [1, 2]; let arr2 = [3. 4]; arr1.push(...arr2); // [1, 2, 3, 4]
3.用于解構賦值,解構賦值中展開運算符只能用在最后,否則會報錯。
// 解構賦值中展開運算符只能用在最后。 let [a, b, ...c] = [1, ,2, 3, 4] console.log(a, b, c) // 1, 2, [3, 4]
4.類數組變成數組
let oLis = document.getElementsByTagName("li"); let liArr = [...oLis];
5.對象中使用展開運算符
ES7中的對象展開運算符符可以讓我們更快捷地操作對象:
let {x,y,...z}={x:1,y:2,a:3,b:4}; x; // 1 y; // 2 z; // {a:3,b:4}
將一個對象插入另外一個對象當中:
let z={a:3,b:4}; let n={x:1,y:2,...z}; console.log(n); //{x:1,y:2,a:3,b:4}
合并兩個對象:
let a={x:1,y:2}; let b={z:3}; let ab={...a,...b}; console.log(ab); // {x:1,y:2,z:3}
上述內容就是怎么在JavaScript中展開運算符,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。