中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在JavaScript中展開運算符

發布時間:2021-01-15 14:53:41 來源:億速云 閱讀:165 作者:Leah 欄目:開發技術

本篇文章為大家展示了怎么在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中展開運算符,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙陵县| 鹤岗市| 思南县| 呼伦贝尔市| 灵寿县| 芒康县| 舟山市| 贵南县| 资中县| 长治县| 平阳县| 湟中县| 遂溪县| 洛扎县| 黔西县| 奎屯市| 通州区| 固阳县| 桦南县| 蛟河市| 灌南县| 桐乡市| 依安县| 都昌县| 邵武市| 潍坊市| 桦川县| 三原县| 屯昌县| 万州区| 嫩江县| 隆德县| 南平市| 吴堡县| 萝北县| 麻江县| 托克托县| 伊通| 繁昌县| 改则县| 兰坪|