久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

解構-重要知識點

 金剛光 2022-05-28 發(fā)布于遼寧

IT學霸于 2020-03-31 10:17:53 發(fā)布

一、對象解構

在此代碼中,, node.type 的值被存儲到 type 本地變量中,, node.name 的值則存儲到name 變量中。此語法相同于簡寫的屬性初始化器,。 type 與 name 標識符既聲明了本地變量,,也讀取了對象的相應屬性值。

以上對象解構示例都用于變量聲明,。不過,,也可以在賦值的時候使用解構。例如,,你可能想
在變量聲明之后改變它們的值,,如下所示:

在本例中, type 與 name 屬性在聲明時被初始化,,而兩個同名變量也被聲明并初始化為不同的值,。接下來一行使用了解構表達式,通過讀取 node 對象來更改這兩個變量的值,。注意你必須用圓括號包裹解構賦值語句,,這是因為暴露的花括號會被解析為代碼塊語句,而塊語句不允許在賦值操作符(即等號)左側出現(xiàn),。圓括號標示了里面的花括號并不是塊語句,、而應該被解釋為表達式,從而允許完成賦值操作,。

二,、解構賦值表達式的值為表達式右側(在 = 之后)的值

outputInfo() 函數(shù)被使用一個解構賦值表達式進行了調用。該表達式計算結果為 node ,,因為這就是表達式右側的值,。對 type 與 name 的賦值正常進行,同時 node 也被傳入了outputInfo() 函數(shù),。

當解構賦值表達式的右側( = 后面的表達式)的計算結果為 null 或 undefined 時,,會拋出錯誤。因為任何讀取 null 或 undefined 的企圖都會導致“運行時”錯誤(runtime error ),。

三,、默認值

當你使用解構賦值語句時,如果所指定的本地變量在對象中沒有找到同名屬性,,那么該變量會被賦值為 undefined ,。例 

你可以選擇性地定義一個默認值,以便在指定屬性不存在時使用該值。若要這么做,,需要在屬性名后面添加一個等號并指定默認值,,就像這樣:

在此例中,變量 value 被指定了一個默認值 true ,,只有在 node 的對應屬性缺失,、或對應的屬性值為 undefined 的情況下,該默認值才會被使用,。 

四,、重新指定變量名

ES6 有一個擴展語法,允許你在給本地變量賦值時使用一個不同的名稱,,而且該語法看上去就像是使用對象字面量的非簡寫的屬性初始化。

你也可以給變量別名添加默認值,,依然是在本地變量名稱后添加等號與默認值,,例如: 

五、嵌套的對象解構 

使用類似于對象字面量的語法,,可以深入到嵌套的對象結構中去提取你想要的數(shù)據(jù),。

本例中的解構模式使用了花括號,表示應當下行到 node 對象的 loc 屬性內(nèi)部去尋找start 屬性,。記住上一節(jié)介紹過的,,每當有一個冒號在解構模式中出現(xiàn),就意味著冒號之前的標識符代表需要檢查的位置,,而冒號右側則是賦值的目標,。當冒號右側存在花括號時,表示目標被嵌套在對象的更深一層中,。

六,、數(shù)組解構

你也可以在解構模式中忽略一些項,并且只給感興趣的項提供變量名,。例如,,若只想獲取數(shù)組中的第三個元素,那么不必給前兩項提供變量名,。以下展示了這種方式:

七,、數(shù)組解構賦值

你可以在賦值表達式中使用數(shù)組解構,但是與對象解構不同,,不必將表達式包含在圓括號內(nèi),,例如:

數(shù)組解構賦值有一個非常獨特的用例,能輕易地互換兩個變量的值,。

八,、數(shù)組結構默認值

九、數(shù)組嵌套的解構

與解構嵌套的對象相似,可以用類似的方式來解構嵌套的數(shù)組,。在整個解構模式中插入另一個數(shù)組模式,,解構操作就會下行到嵌套的數(shù)組中

十、數(shù)組解構剩余項

相比函數(shù)的剩余參數(shù),,數(shù)組解構有個類似的,、名為剩余項( rest items )的概念,它使用 ... 語法來將剩余的項目賦值給一個指定的變量,,此處有個范例:

十一,、剩余項的另一個有用的功能是克隆數(shù)組

方便地克隆數(shù)組在 JS 中是個明顯被遺漏的功能。在 ES5 中開發(fā)者往往使用的是一個簡單的
方式,,也就是用 concat() 方法來克隆數(shù)組,,例如:

 

盡管 concat() 方法的本意是合并兩個數(shù)組,但不使用任何參數(shù)來調用此方法,,就會獲得原數(shù)組的一個克隆品,。而在 ES6 中,你可以使用剩余項的語法來達到同樣效果,。實現(xiàn)如下:

剩余項必須是數(shù)組解構模式中最后的部分,,之后不能再有逗號,否則就是語法錯誤,。

十二,、混合解構 

對象與數(shù)組解構能被用在一起,以創(chuàng)建更復雜的解構表達式,。在對象與數(shù)組混合而成的結構中,,這么做便能準確提取其中你想要的信息片段。例如:

十三,、參數(shù)解構-解構還有一個特別有用的場景,,即在傳遞函數(shù)參數(shù) 

參數(shù)解構提供了更清楚地標明函數(shù)期望輸入的替代方案。它使用對象或數(shù)組解構的模式替代了具名參數(shù),。要看到其實際效果,,請查看下例中重寫版本的 setCookie() 函數(shù):

此函數(shù)的行為類似上例,但此時第三個參數(shù)使用了解構來抽取必要的數(shù)據(jù)?,F(xiàn)在對于setCookie() 函數(shù)的使用者來說,,解構參數(shù)之外的參數(shù)明顯是必需的;而可選項目存在于額外的參數(shù)組中,,這同樣是非常明確的,;同時,若使用了第三個參數(shù),,其中應當包含什么值當然也是極其明確的,。解構參數(shù)在沒有傳遞值的情況下類似于常規(guī)參數(shù),,它們會被設為undefined 。 

參數(shù)解構擁有此前你在本章已經(jīng)學過的其他解構方式的所有能力,。你可以在其中使用默認參數(shù),、混合解構,或使用與屬性不同的變量名

 十四,、函數(shù)解構的參數(shù)是必需的

參數(shù)解構有一個怪異點:默認情況下調用函數(shù)時未給參數(shù)解構傳值會拋出錯誤,。例如,用以下方式調用上例中的 setCookie() 函數(shù)就會出錯:

沒有傳遞結構參數(shù)時,,相當于第三個參數(shù)是undefined,,既然在賦值右側的值為 null 或 undefined 時,解構會拋出錯誤,,那么未向 setCookie()函數(shù)傳遞第三個參數(shù)就同樣會出錯,。

若你讓解構的參數(shù)作為必選參數(shù),那么上述行為并不會令人困擾,。但若你要求它是可選的,,可以給解構的參數(shù)提供默認值來處理這種行為,就像這樣:

 十五,、參數(shù)解構的默認值

你可以為參數(shù)解構提供可解構的默認值,就像在解構賦值時所做的那樣,,只需在其中每個參數(shù)后面添加等號并指定默認值即可,。

備注:文章內(nèi)容來源于《深入理解ES6翻譯完整版》

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多