es6結構賦值--數組

/**
 * 數組 的解構賦值
 */
{
  let [foo, [[bar], baz]] = [1, [[2], 3]]
  console.log(foo, bar, baz) //1  2  3

  let [ , , third] = [1, 2, 3]
  console.log(third) // 3

  let [a, ...b] = [1, 2, 3, 4]
  console.log(a, b) // 1  [2, 3, 4]
}

// 若是解構不成功,變量的值就是 undefined
{
  let [a, b] = [1]
  console.log(a, b) // 1 undefined
}

// 不徹底解構
{
  let arr = [1, [2, 3], 4]
  let [a, [b], c] = arr
  console.log(a, b, c) // 1  2  4
  let [d, e, f] = arr
  console.log(d, e, f) //1  [2, 3]  4
}

// set 解構也能夠用數組進行解構
{
  let [a, b, c] = new Set([11, 22, 33])
  console.log(a, b, c)
}
// 只要是有 Interator 接口的數據結構  均可以用數組進行解構

// 解構賦值的 默認值
{
  let [a = 2, b = 4] = []
  console.log(a, b) // 2  4
  // 只有當數組的值是嚴格的 undefined ,默認值纔會生效 ===
}

// 默認值若是是表達式, 那麼表達式是惰性求值的, 只有在用到的時候纔會求職,
{
  function f () {
    return 'value';
  }
  let [a = f()] = [1]
  console.log(a)
}
相關文章
相關標籤/搜索