在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ es6 的擴展運算符的理解是怎么樣的?

es6 的擴展運算符的理解是怎么樣的?

es6 中的 ... 擴展運算符是 將數(shù)組展開

[1,2,3] 展開為 1,2,3 那這個1,2,3是什么呢? 數(shù)組不是數(shù)組 ,字符串不是字符串

后來對象的操作上也有了 ...運算符
叫做解構(gòu)賦值?
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
將 目標對象 的 屬性 ,全部分配到指定對象上?
讓 目標對象有了 這個對象屬性值?

回答
編輯回答
初心

看東西的時候要隨手敲一下,...arr這么單獨的用是不對的。

  1. 數(shù)組...擴展運算符

    function demo (a, b) {
        console.log(a, b)
    } 
    demo(...[1, 2])// 1 2
    demo([1, 2]) //[1, 2] undefined
    // 就是個展開的作用,不然你要寫demo(arr[0], arr[1])
    // 屬于語法糖,簡化代碼的
  2. 什么是解構(gòu)賦值
    相信這個你應(yīng)該是理解的

    let {a: a, b: b} = {a: 1, b: 2}
    a // 1
    b // 2
    // 使用簡潔表示法簡寫為{a, b} = {a: 1, b: 2}
    // 那么解構(gòu)賦值就是按照這種對應(yīng)關(guān)系,去賦值變量
  3. 解構(gòu)賦值和對象的擴展運算符

    let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }
    // x和y同上就不必說了
    // 后面也就是展開的...z對應(yīng)a:3, b:4
    // 那么沒展開的z不就是`{a: 3, b: 4}`了嗎
  4. 如果你在看es6入門這本書的話,一定要敲代碼,同時,書中后面的例子會用到前面的東西,不要分割的去思考。
2017年6月5日 11:15