摘要:問題上述代碼會返回方法一方法二使用方法三方法四自判斷鏈接自判斷鏈接還未納入官方規(guī)范中,只處于第一階段的實驗特性。您需要在中添加后方可使用它。參考鏈接譯優(yōu)秀開發(fā)人員應掌握的個技巧
問題
var object = { "a": [{ "b": { "c": 3 } }] } console.log(object.a[0].b.c.d)
上述代碼會返回
方法一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ī)范中,只處于第一階段的實驗特性。您需要在 babelrc 中添加 @ babel / plugin-proposal-optional-chaining 后方可使用它。
var object = { "a": [{ "b": { "c": 3 } }] } console.log(object?.a[0]?.b?.c?.d)參考鏈接
[譯] 優(yōu)秀 JavaScript 開發(fā)人員應掌握的 9 個技巧
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/101337.html
摘要:常出現(xiàn)的錯誤前十位為了可讀性,錯誤名稱進行了一定的簡寫。讓我們深入了解每個錯誤發(fā)生的原因以及解決方法。這個問題很容易解決。當未捕獲的錯誤跨越違法跨域策略的域邊界時,會發(fā)生腳本錯誤。這是當你在中試圖調用的方法時出現(xiàn)的錯誤。 JavaScript常出現(xiàn)的錯誤前十位 showImg(https://segmentfault.com/img/bV3Z1z?w=1116&h=691); 為了可讀...
摘要:提供一套錯誤處理機制,錯誤是干擾程序正常流程的非正常的事故。構造函數(shù)是通用錯誤類型,除了類型,還有等類型。瀏覽器輸出其他錯誤類型構造函數(shù)是繼承,實例是一致的。數(shù)值超出有效范圍數(shù)值超出有效范圍創(chuàng)建一個實例,表示錯誤的原因無效引用。 同步發(fā)布于 https://github.com/xianshanna... 我的建議是不要隱藏錯誤,勇敢地拋出來。沒有人會因為代碼出現(xiàn) bug 導致程序崩潰...
摘要:類型的錯誤會在數(shù)值超出相應范圍時觸發(fā)。最常發(fā)生類型錯誤的情況,就是傳遞給函數(shù)的參數(shù)事先未經檢查,結果傳入類型與預期類型不相符。捕獲錯誤的目的在于避免瀏覽器以默認方式處理它們而拋出錯誤的目的在于提供錯誤發(fā)生具體原因的消息。 0 前言 目前讀到了《高程3》的錯誤檢測部分,現(xiàn)在先挖一個坑,關于錯誤檢測應該寫三篇總結:firebug檢測錯誤和輸出信息;try-catch錯誤捕獲;常見錯誤種類。...
摘要:類型的錯誤會在數(shù)值超出相應范圍時觸發(fā)。最常發(fā)生類型錯誤的情況,就是傳遞給函數(shù)的參數(shù)事先未經檢查,結果傳入類型與預期類型不相符。捕獲錯誤的目的在于避免瀏覽器以默認方式處理它們而拋出錯誤的目的在于提供錯誤發(fā)生具體原因的消息。 0 前言 目前讀到了《高程3》的錯誤檢測部分,現(xiàn)在先挖一個坑,關于錯誤檢測應該寫三篇總結:firebug檢測錯誤和輸出信息;try-catch錯誤捕獲;常見錯誤種類。...
閱讀 2964·2021-11-17 09:33
閱讀 3753·2021-11-16 11:42
閱讀 3564·2021-10-26 09:50
閱讀 1487·2021-09-22 15:49
閱讀 3105·2021-08-10 09:44
閱讀 3785·2019-08-29 18:36
閱讀 4054·2019-08-29 16:43
閱讀 2329·2019-08-29 14:10