国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Javascript如何避免調(diào)用不存在的屬性而導(dǎo)致報(bào)TypeError錯(cuò)?

張紅新 / 727人閱讀

摘要:?jiǎn)栴}上述代碼會(huì)返回方法一方法二使用方法三方法四自判斷鏈接自判斷鏈接還未納入官方規(guī)范中,只處于第一階段的實(shí)驗(yàn)特性。您需要在中添加后方可使用它。參考鏈接譯優(yōu)秀開發(fā)人員應(yīng)掌握的個(gè)技巧

問(wèn)題
var object = { "a": [{ "b": { "c": 3 } }] }

console.log(object.a[0].b.c.d)

上述代碼會(huì)返回

方法一
var object = { "a": [{ "b": { "c": 3 } }] }

console.log(object&&object.a)
console.log(object&&object.a&&object.a[0])
console.log(object&&object.a&&object.a[0]&&object.a[0].b)
console.log(object&&object.a&&object.a[0]&&object.a[0].b&&object.a[0].b.c)
console.log(object&&object.a&&object.a[0]&&object.a[0].b&&object.a[0].b.c&&object.a[0].b.c.d)
方法二

使用lodash

var object = { "a": [{ "b": { "c": 3 } }] }

console.log(_.get(object, "a"))
console.log(_.get(object, "a[0]"))
console.log(_.get(object, "a[0].b"))
console.log(_.get(object, "a[0].b.c"))
console.log(_.get(object, "a[0].b.c.d"))
方法三
var getProps = (p, o) => p.reduce((xs, x) => (xs && xs[x]) ? xs[x] : null, o)

var object = { "a": [{ "b": { "c": 3 } }] }

console.log(getProps(["a"], object))
console.log(getProps(["a", "0"], object))
console.log(getProps(["a", "0", "b"], object))
console.log(getProps(["a", "0", "b", "c"], object))
console.log(getProps(["a", "0", "b", "c", "d"], object))
方法四

自判斷鏈接,自判斷鏈接還未納入官方規(guī)范中,只處于第一階段的實(shí)驗(yàn)特性。您需要在 babelrc 中添加 @ babel / plugin-proposal-optional-chaining 后方可使用它。

var object = { "a": [{ "b": { "c": 3 } }] }

console.log(object?.a[0]?.b?.c?.d)
參考鏈接

[譯] 優(yōu)秀 JavaScript 開發(fā)人員應(yīng)掌握的 9 個(gè)技巧

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/101337.html

相關(guān)文章

  • 貓頭鷹深夜翻譯:從1000+JS項(xiàng)目中匯總10個(gè)最容易出現(xiàn)錯(cuò)誤(以及如何解決)

    摘要:常出現(xiàn)的錯(cuò)誤前十位為了可讀性,錯(cuò)誤名稱進(jìn)行了一定的簡(jiǎn)寫。讓我們深入了解每個(gè)錯(cuò)誤發(fā)生的原因以及解決方法。這個(gè)問(wèn)題很容易解決。當(dāng)未捕獲的錯(cuò)誤跨越違法跨域策略的域邊界時(shí),會(huì)發(fā)生腳本錯(cuò)誤。這是當(dāng)你在中試圖調(diào)用的方法時(shí)出現(xiàn)的錯(cuò)誤。 JavaScript常出現(xiàn)的錯(cuò)誤前十位 showImg(https://segmentfault.com/img/bV3Z1z?w=1116&h=691); 為了可讀...

    eccozhou 評(píng)論0 收藏0
  • JavaScript錯(cuò)誤異常探討

    摘要:提供一套錯(cuò)誤處理機(jī)制,錯(cuò)誤是干擾程序正常流程的非正常的事故。構(gòu)造函數(shù)是通用錯(cuò)誤類型,除了類型,還有等類型。瀏覽器輸出其他錯(cuò)誤類型構(gòu)造函數(shù)是繼承,實(shí)例是一致的。數(shù)值超出有效范圍數(shù)值超出有效范圍創(chuàng)建一個(gè)實(shí)例,表示錯(cuò)誤的原因無(wú)效引用。 同步發(fā)布于 https://github.com/xianshanna... 我的建議是不要隱藏錯(cuò)誤,勇敢地拋出來(lái)。沒(méi)有人會(huì)因?yàn)榇a出現(xiàn) bug 導(dǎo)致程序崩潰...

    LdhAndroid 評(píng)論0 收藏0
  • 錯(cuò)誤檢測(cè)(1)------try-catch語(yǔ)句 From 《高程3》

    摘要:類型的錯(cuò)誤會(huì)在數(shù)值超出相應(yīng)范圍時(shí)觸發(fā)。最常發(fā)生類型錯(cuò)誤的情況,就是傳遞給函數(shù)的參數(shù)事先未經(jīng)檢查,結(jié)果傳入類型與預(yù)期類型不相符。捕獲錯(cuò)誤的目的在于避免瀏覽器以默認(rèn)方式處理它們而拋出錯(cuò)誤的目的在于提供錯(cuò)誤發(fā)生具體原因的消息。 0 前言 目前讀到了《高程3》的錯(cuò)誤檢測(cè)部分,現(xiàn)在先挖一個(gè)坑,關(guān)于錯(cuò)誤檢測(cè)應(yīng)該寫三篇總結(jié):firebug檢測(cè)錯(cuò)誤和輸出信息;try-catch錯(cuò)誤捕獲;常見錯(cuò)誤種類。...

    UnixAgain 評(píng)論0 收藏0
  • 錯(cuò)誤檢測(cè)(1)------try-catch語(yǔ)句 From 《高程3》

    摘要:類型的錯(cuò)誤會(huì)在數(shù)值超出相應(yīng)范圍時(shí)觸發(fā)。最常發(fā)生類型錯(cuò)誤的情況,就是傳遞給函數(shù)的參數(shù)事先未經(jīng)檢查,結(jié)果傳入類型與預(yù)期類型不相符。捕獲錯(cuò)誤的目的在于避免瀏覽器以默認(rèn)方式處理它們而拋出錯(cuò)誤的目的在于提供錯(cuò)誤發(fā)生具體原因的消息。 0 前言 目前讀到了《高程3》的錯(cuò)誤檢測(cè)部分,現(xiàn)在先挖一個(gè)坑,關(guān)于錯(cuò)誤檢測(cè)應(yīng)該寫三篇總結(jié):firebug檢測(cè)錯(cuò)誤和輸出信息;try-catch錯(cuò)誤捕獲;常見錯(cuò)誤種類。...

    Thanatos 評(píng)論0 收藏0
  • 面對(duì)對(duì)象嚴(yán)格模式

    摘要:對(duì)只讀屬性賦值會(huì)報(bào)錯(cuò)刪除不可配置的屬性會(huì)報(bào)錯(cuò)只設(shè)置了取值器的屬性不可寫嚴(yán)格模式下,對(duì)一個(gè)只有取值器沒(méi)有存值器的屬性賦值,會(huì)報(bào)錯(cuò)。嚴(yán)格模式禁止這種用法,全局變量必須顯式聲明。嚴(yán)格模式明確規(guī)定,函數(shù)內(nèi)部使用將會(huì)報(bào)錯(cuò)。 設(shè)計(jì)目的啟用方法顯式報(bào)錯(cuò)只讀屬性不可寫只設(shè)置了取值器的屬性不可寫禁止擴(kuò)展的對(duì)象不可擴(kuò)展eval、arguments 不可用作標(biāo)識(shí)名函數(shù)不能有重名的參數(shù)禁止八進(jìn)制的前綴0表示法...

    paraller 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<