成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ES6精華:解構(gòu)賦值

468122151 / 2557人閱讀

摘要:按一定的匹配模式,從數(shù)組或?qū)ο笾薪鈽?gòu)出相應(yīng)值,并賦值給變量。和是單值,沒有相應(yīng)的構(gòu)造函數(shù),不能被解構(gòu)。等價(jià)于報(bào)錯(cuò)解構(gòu)方式左側(cè)的解構(gòu)符決定如何看待右側(cè)的解構(gòu)值。解構(gòu)符意味著視右側(cè)的值為對象,采用對象解構(gòu)。

按一定的匹配模式,從數(shù)組或?qū)ο笾薪鈽?gòu)出相應(yīng)值,并賦值給變量。

let [a] = [3]; // a = 3
let [, a] = [3, [7]]; // a = [7]
let {a} = {a: 3}; // a = 3,{a} 相當(dāng) {a: a}
let {a: } = {a: {b: 3}}; // b = 3
應(yīng)用舉例

快速的聲明并賦予相應(yīng)的屬性值

// --- 以前
let id = obj.id;
let name = obj.name;
let ago = obj.ago;

// --- 現(xiàn)在
let { id, name, ago } = obj;

函數(shù)配置參數(shù)的解構(gòu)和賦默認(rèn)值

// --- 以前
function dealUser(id, conf) {
  let name = conf.name || "";
  let ago = conf.ago || 0;
}

// --- 現(xiàn)在
// 可以直接使用 name 等,以及設(shè)置默認(rèn)值(類型也易見)。
function dealUser(id, {
  name = "",
  ago = 0
}) {
  // 函數(shù)體
}
解構(gòu)非對象

當(dāng)解構(gòu)的目標(biāo)為非對象時(shí),會(huì)將目標(biāo)轉(zhuǎn)化成相應(yīng)類型的對象。
NaN可以使用Number構(gòu)造函數(shù)生成,可以被解構(gòu)。
nullundefined是單值,沒有相應(yīng)的構(gòu)造函數(shù),不能被解構(gòu)。

let {length: a} = "ab"; // a = 2
// 等價(jià)于
let {length: a} = new String("ab"); // a = 2

let {toString: a} = NaN; // a = function
let {toString: a} = null; // 報(bào)錯(cuò)
解構(gòu)方式

左側(cè)的解構(gòu)符決定如何看待右側(cè)的解構(gòu)值。
解構(gòu)符{}意味著視右側(cè)的值為對象,采用對象解構(gòu)。
解構(gòu)符[]意味著視右側(cè)的值為數(shù)組,采用數(shù)組解構(gòu)。
以此可以推斷:數(shù)組即支持?jǐn)?shù)組解構(gòu)也支持對象解構(gòu)。

原生類數(shù)組對象有迭代接口,也支持兩種解構(gòu)。(arguments, NodeList, new String()

let [a] = "ab"; // a = "a",a 為第一個(gè)元素。
let {length: a} = "ab"; // a = 2
let {length: a} = ["a", "b"]; // a = 2
let [a] = {0: a, length: 1}; // 報(bào)錯(cuò),自定義對象沒有迭代接口。
解構(gòu)失敗 解構(gòu)不成功

右側(cè)沒有相對應(yīng)的值,解構(gòu)不報(bào)錯(cuò),變量值為undefined。

let [a, b] = [1]; // a = 1, b = undefined
解構(gòu)出錯(cuò)

當(dāng)右側(cè)值(包括轉(zhuǎn)換后)不滿足左側(cè)要求的類型時(shí),解構(gòu)失敗。

let [[a]] = [1]; // 報(bào)錯(cuò),目標(biāo) 1 不是數(shù)組。
let [a] = {a: 3}; // 報(bào)錯(cuò),目標(biāo) {a: 3} 不是數(shù)組。
指定默認(rèn)值

可以為待賦值的變量指定默認(rèn)值。
默認(rèn)值可以使用解構(gòu)中其他變量,但該變量的解構(gòu)必須在此之前。

let [a, b = 2] = [1]; // a = 1, b = 2
let [a, b = a] = [1]; // a = 1, b = 1

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/107787.html

相關(guān)文章

  • ES6精華:函數(shù)擴(kuò)展

    摘要:在函數(shù)方面的擴(kuò)展比較豐富也很實(shí)用,本篇概括了這中的精華知識。所以無法成為構(gòu)造函數(shù),不能使用操作符。參數(shù)將擴(kuò)展運(yùn)算符作用于參數(shù),即為參數(shù)。聲明式,直接為函數(shù)名。通過構(gòu)造函數(shù)生成的,為。函數(shù)的屬性,在其描述對象的屬性上,為函數(shù)名。 ES6在函數(shù)方面的擴(kuò)展比較豐富也很實(shí)用,本篇概括了這中的精華知識。 1 箭頭函數(shù) 箭頭函數(shù)是ES6中定義函數(shù)的新形式。 新形式不僅簡化了定義方式,更為函數(shù)本身...

    lansheng228 評論0 收藏0
  • ES6 學(xué)習(xí)筆記(一)let,const和解構(gòu)賦值

    摘要:另外對于已經(jīng)聲明的變量進(jìn)行解構(gòu)賦值時(shí),要非常小心。因此在行首加,將其強(qiáng)制轉(zhuǎn)化為表達(dá)式執(zhí)行。由于和無法轉(zhuǎn)為對象,所以對它們進(jìn)行解構(gòu)賦值,都會(huì)報(bào)錯(cuò)。 let和const let和const是es6新增的兩個(gè)變量聲明關(guān)鍵字,與var的不同點(diǎn)在于: (1)let和const都是塊級作用域,在{}內(nèi)有效,這點(diǎn)在for循環(huán)中非常有用,只在循環(huán)體內(nèi)有效。var為函數(shù)作用域。 (2)使用let和con...

    iOS122 評論0 收藏0
  • es6 - 解構(gòu)賦值

    摘要:比如上面展示的情況都是可以聯(lián)合使用的比如對象的解構(gòu)賦值對象的解構(gòu)賦值是基于屬性的。當(dāng)給已存在的變量解構(gòu)賦值時(shí),注意加這是由于如果不加會(huì)把左邊看成一個(gè)代碼塊,會(huì)報(bào)錯(cuò)。注意事項(xiàng)數(shù)組的解構(gòu)賦值中,使用的變量必須放在最后。 解構(gòu)賦值 解構(gòu)賦值是一個(gè)聽起來比較高大上的特性,但按我的理解,它就是一種語法糖。它并沒有賦予js更強(qiáng)大的能力,只是讓賦值操作更加的靈活,效率。 在es6之前,賦值操作需要=...

    DirtyMind 評論0 收藏0
  • ES6學(xué)習(xí) 第二章 變量的解構(gòu)賦值

    摘要:前言前言該篇筆記是第二篇變量的解構(gòu)賦值。這一章原文鏈接變量的解構(gòu)賦值解構(gòu)賦值解構(gòu)賦值允許按照一定模式,從數(shù)組和對象中提取值,對變量進(jìn)行賦值,這被稱為解構(gòu)。對象的解構(gòu)賦值是根據(jù)對象值進(jìn)行匹配。前言該篇筆記是第二篇 變量的解構(gòu)賦值。這一章原文鏈接: 變量的解構(gòu)賦值解構(gòu)賦值ES6 允許按照一定模式,從數(shù)組和對象中提取值,對變量進(jìn)行賦值,這被稱為解構(gòu)(Destructuring)。解構(gòu)賦值是對賦值運(yùn)...

    番茄西紅柿 評論0 收藏2637
  • ES6學(xué)習(xí) 第二章 變量的解構(gòu)賦值

    摘要:前言該篇筆記是第二篇變量的解構(gòu)賦值。這一章原文鏈接變量的解構(gòu)賦值解構(gòu)賦值允許按照一定模式,從數(shù)組和對象中提取值,對變量進(jìn)行賦值,這被稱為解構(gòu)。對象的解構(gòu)賦值是根據(jù)對象值進(jìn)行匹配。 前言該篇筆記是第二篇 變量的解構(gòu)賦值。 這一章原文鏈接: 變量的解構(gòu)賦值解構(gòu)賦值ES6 允許按照一定模式,從數(shù)組和對象中提取值,對...

    番茄西紅柿 評論0 收藏2637

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<