国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看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
主站蜘蛛池模板: 欧美一区二区三区久久精品 | 久久国产亚洲精品 | 国产在线一区二区 | 欧美簧片在线 | 亚洲精品一区在线观看 | 国产精品综合一区二区 | 成年人免费在线观看视频网站 | 久久久精品网站 | 女人久久久久 | 日韩免费在线观看 | 欧美麻豆视频 | 国产成人一区 | 亚洲午夜在线 | 中文字幕超清在线免费 | 一级毛片在线免费看 | 免费看黄在线观看 | 成人午夜电影网 | 成人在线视频免费 | 欧美另类综合 | 国产免费成人 | 中文成人在线 | 日日摸夜夜 | 亚洲天堂中文字幕 | 日韩在线免费观看视频 | 日本a在线天堂 | 99久久婷婷国产综合精品电影 | 日本中文字幕在线观看 | 男人天堂a| 中文字幕亚洲综合久久久软件 | av中文字幕在线 | 黄工厂精品免费观看 | 中文字幕精品视频 | 亚洲视频在线不卡 | 一级毛片视频 | 亚洲国产区 | av在线免费观看网址 | 欧美日本韩国一区二区三区 | 国产成人精品一区二区三区网站观看 | 久久久在线免费观看 | 天天插狠狠插 | 一级电影中文字幕 |