激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - JavaScript中展開運算符及應用的實例代碼

JavaScript中展開運算符及應用的實例代碼

2021-12-31 16:44banana peel js教程

這篇文章主要介紹了JavaScript中展開運算符及應用的實例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

展開運算符(spread operator)允許一個表達式在某處展開。展開運算符在多個參數(用于函數調用)或多個元素(用于數組字面量)或者多個變量(用于解構賦值)的地方可以使用。

?
1
2
3
4
5
6
7
let obj1 = {
 value1: 1,
 value2: 2
};
let obj2 = {...obj1
};
console.log(obj2); // {value1: 1, value2: 2}

上面的用法實際相當于

?
1
obj2 = {value1: 1, value2: 2}

展開運算符的寫法與obj2 = obj1直接賦值的寫法的區別在于如果直接賦值的話,對于引用類型來說,相當于只是賦值了obj1的內存空間地址,當obj2發生改變的時候,obj1也會隨著發生改變。而是用展開運算符寫法的話,由于obj1對象中的屬性類型都是基本類型,相當于重新創建了一個對象,此時obj2發生改變的時候,并不會影響obj1這個對象。但是僅限于其屬性都為基本類型的情況(或者說只進行了一層的深拷貝)。如果該對象中的屬性還有引用類型的話,修改屬性中引用類型的值,則兩個對象的屬性值都會被修改。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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.在函數中使用展開運算符

?
1
2
3
4
function test(a, b, c){};
 
let arr = [1, 2, 3];
test(...arr);

2.數組字面量中使用展開運算符

?
1
2
3
4
5
6
7
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.用于解構賦值,解構賦值中展開運算符只能用在最后,否則會報錯。

?
1
2
3
// 解構賦值中展開運算符只能用在最后。
let [a, b, ...c] = [1, ,2, 3, 4]
console.log(a, b, c) // 1, 2, [3, 4]

4.類數組變成數組

?
1
2
let oLis = document.getElementsByTagName("li");
let liArr = [...oLis];

5.對象中使用展開運算符
ES7中的對象展開運算符符可以讓我們更快捷地操作對象:

?
1
2
3
4
let {x,y,...z}={x:1,y:2,a:3,b:4};
x; // 1
y; // 2
z; // {a:3,b:4}

將一個對象插入另外一個對象當中:

?
1
2
3
let z={a:3,b:4};
let n={x:1,y:2,...z};
console.log(n); //{x:1,y:2,a:3,b:4}

合并兩個對象:

?
1
2
3
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中展開運算符及應用的實例代碼的文章就介紹到這了,更多相關js展開運算符內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/Gongsheng_m/article/details/112595417

延伸 · 閱讀

精彩推薦
  • js教程ES5和ES6中類的區別總結

    ES5和ES6中類的區別總結

    這篇文章主要給大家介紹了ES5和ES6中類的區別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    Totora612122021-12-16
  • js教程JS代碼實現頁面切換效果

    JS代碼實現頁面切換效果

    這篇文章主要為大家詳細介紹了JS代碼實現頁面切換效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    _Adoph9262021-12-29
  • js教程js刪除對象中的某一個字段的方法實現

    js刪除對象中的某一個字段的方法實現

    這篇文章主要介紹了js刪除對象中的某一個字段的方法實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的...

    兔子零847232021-12-29
  • js教程微信小程序實現modal彈出框遮罩層組件(可帶文本框)

    微信小程序實現modal彈出框遮罩層組件(可帶文本框)

    這篇文章主要給大家介紹了關于微信小程序實現modal彈出框遮罩層組件(可帶文本框)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者...

    BadmintonCode3532021-12-15
  • js教程ES6字符串的擴展實例

    ES6字符串的擴展實例

    這篇文章主要介紹了ES6字符串的擴展實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小...

    知否5502021-12-16
  • js教程JavaScript實現點擊切換驗證碼及校驗

    JavaScript實現點擊切換驗證碼及校驗

    這篇文章主要為大家詳細介紹了JavaScript實現點擊切換驗證碼及校驗,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    棟棟很優秀啊3562021-12-29
  • js教程JS數組索引檢測中的數據類型問題詳解

    JS數組索引檢測中的數據類型問題詳解

    這篇文章主要給大家介紹了關于JS數組索引檢測中的數據類型問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考...

    行舟客11832021-12-29
  • js教程原生js中運算符及流程控制示例詳解

    原生js中運算符及流程控制示例詳解

    這篇文章主要給大家介紹了關于原生js中運算符及流程控制的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價...

    meichaoWen5002021-12-27
主站蜘蛛池模板: 国产寡妇xxxxxxxx性开放 | 特级a欧美做爰片毛片 | 久久久久久片 | 久久久电影电视剧免费看 | 亚洲午夜不卡 | 国产精品99一区二区 | 91久久线看在观草草青青 | 黄色片视频免费观看 | 免费香蕉成视频成人网 | 国产91在线免费 | 素人视频免费观看 | 国产亚洲综合一区二区 | 久久精品中文字幕一区二区 | 99在线啪| 欧美性猛交xxx乱大交3蜜桃 | av在线大全 | 人禽l交免费视频观看 视频 | 91看片入口| 中文字幕在线日韩 | 精品一区二区三区在线观看视频 | 日韩美香港a一级毛片免费 日韩激情 | 狠狠干导航 | 亚洲电影在线观看高清免费 | 成人在线视频精品 | 久草在线播放视频 | 欧美交在线 | 美女网站色免费 | 国产精品视频一区二区三区四 | 精品国产99久久久久久宅男i | xxxxhd73国产 | 中文字幕亚洲视频 | 91精品国产91久久久久久不卞 | 一色屋任你操 | 国产精品久久久久久模特 | 国产麻豆交换夫妇 | 久久国产精品二区 | 92自拍视频 | 亚洲一区二区免费视频 | 成年免费视频黄网站在线观看 | 欧美xxxxx视频 | 免费黄色在线 |