鍍金池/ 問(wèn)答/HTML/ es6 的擴(kuò)展運(yùn)算符的理解是怎么樣的?

es6 的擴(kuò)展運(yùn)算符的理解是怎么樣的?

es6 中的 ... 擴(kuò)展運(yùn)算符是 將數(shù)組展開(kāi)

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

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

回答
編輯回答
初心

看東西的時(shí)候要隨手敲一下,...arr這么單獨(dú)的用是不對(duì)的。

  1. 數(shù)組...擴(kuò)展運(yùn)算符

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

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

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