亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

[Frontend Tips] JS: Optional Chaining, 再也不怕一長串的屬性調(diào)

K_B_Z / 1859人閱讀

摘要:剛才看了下一個(gè)新特性,這是干啥用的呢過去在屬性鏈的調(diào)用中,很容易因?yàn)槟硞€(gè)屬性不存在而導(dǎo)致之后出現(xiàn)的錯(cuò)誤。要注意操作符是,而不是多帶帶的。類似的,如果需要取屬性鏈中某函數(shù)并執(zhí)行,就應(yīng)該是。

剛才看了下一個(gè) JS 新特性——「Optional Chaining」,這是干啥用的呢?

過去在 Object 屬性鏈的調(diào)用中,很容易因?yàn)槟硞€(gè)屬性不存在而導(dǎo)致之后出現(xiàn)Cannot read property xxx of undefined的錯(cuò)誤。

const obj = {
    qwe: {
        asd: {
            zxc: "666"
        }
    }
}

console.log(obj.qwe.asd.zxc); // 666
console.log(obj.abc.def.ghi); // Uncaught TypeError: Cannot read property "def" of undefined...

那 optional chaining 就是添加了?.這么個(gè)操作符,它會先判斷前面的值,如果是 null 或 undefined,就結(jié)束調(diào)用、返回 undefined。

console.log(obj?.abc?.def?.ghi); // undefined

要注意操作符是?.,而不是多帶帶的。因此,如果屬性鏈中取某個(gè) Array 的元素,應(yīng)該是obj?.qwe?.arr?.[0]。類似的,如果需要取屬性鏈中某函數(shù)并執(zhí)行,就應(yīng)該是obj?.qwe?.func?.()。

這個(gè)特性可以說是非常實(shí)用了,不過它現(xiàn)在處于 stage-1 階段,估計(jì)進(jìn)入標(biāo)準(zhǔn)還有段時(shí)間。不過 Babel v7 beta 已經(jīng)添加了此特性的插件,想現(xiàn)在用起來的同學(xué)可以安裝起來。

Reference

babel/packages/babel-plugin-proposal-optional-chaining at master · babel/babel

tc39/proposal-optional-chaining

Optional Chaining may be coming to JavaScript

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

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

相關(guān)文章

  • js判斷鼠標(biāo)進(jìn)入容器的方向小解

    摘要:有不對的地方,或者有更好的理解,請告訴我,謝謝原理以容器的中心點(diǎn)作為圓心,以高和寬的最小值作為直徑畫圓,將圓以,,,,,,,劃分為四個(gè)象限,鼠標(biāo)進(jìn)入容器時(shí)的點(diǎn)的值在這四個(gè)象限里分別對應(yīng)容器邊框的下,右,上,左。 $(#wrap).bind(mouseenter mouseleave,function(e) { var w = $(this).width(); var h...

    fantix 評論0 收藏0
  • 精讀《Optional chaining

    摘要:由于具備一定的使用場景,而且支持方式零成本改寫為即可,所以就支持它吧不支持的特性下面三個(gè)特性不支持,原因是沒什么使用場景安全的安全的上面兩者的結(jié)合首先看一個(gè)對象,如果出來的結(jié)果是,那這個(gè)返回值使用起來也沒有意義。 1. 引言 備受開發(fā)者喜愛的特性 Optional chaining 在 2019.6.5 進(jìn)入了 stage2,讓我們詳細(xì)讀一下草案,了解一下這個(gè)特性的用法以及討論要點(diǎn)。 ...

    cncoder 評論0 收藏0
  • 走近正則:仿Nodejs的Url模塊到前端

    摘要:正則學(xué)起來說真的,不去正兒八經(jīng)的學(xué)正則,對付一般的工作是沒啥問題的,雖然我們可能會經(jīng)常用到,但畢竟度娘能提供大多時(shí)候你想要的可當(dāng)我看一些框架的源碼,總會被里面一長串一長串的正則給嚇到之前一篇博客里有關(guān)于簡單的爬蟲實(shí)踐,其實(shí)離達(dá)到我預(yù)期的效果 正則學(xué)起來 說真的,不去正兒八經(jīng)的學(xué)正則,對付一般的工作是沒啥問題的,雖然我們可能會經(jīng)常用到replace,但畢竟度娘能提供大多時(shí)候你想要的;可當(dāng)...

    HitenDev 評論0 收藏0
  • 避免取值時(shí)出現(xiàn)Cannot read property 'xx' of unde

    摘要:由于是以空函數(shù)為代理對象,我們可以將執(zhí)行它,觸發(fā)。中會遍歷數(shù)組依次取值,如果發(fā)現(xiàn)無法繼續(xù)取值則,跳出循環(huán)。 本文來自我的博客,歡迎大家去GitHub上star我的博客 我們在取值特別是鏈?zhǔn)饺≈档臅r(shí)候,常常會遇到Cannot read property xx of undefined的錯(cuò)誤,如何避免這種情況的發(fā)生呢?這里有幾種方法以供參考 使用成熟的庫方法 這是最簡單的一種手段:只用引入...

    fantix 評論0 收藏0
  • JS基礎(chǔ)篇--通過JS生成由字母與數(shù)字組合的隨機(jī)字符串

    摘要:若是偶數(shù),返回的數(shù)值字符串都是短的,若是奇數(shù),則返回的將是一個(gè)很大長度的表示值。若則都是數(shù)字組成,才會包含字母。 在項(xiàng)目中可能需要隨機(jī)生成字母數(shù)字組成的字符,如生成3-32位長度的字母數(shù)字組合的隨機(jī)字符串(位數(shù)不固定)或者生成43位隨機(jī)字符串(位數(shù)固定) 使用Math.random()與toString()方法的結(jié)合 先看一下這個(gè)方式: Math.random().toString(3...

    zhangrxiang 評論0 收藏0

發(fā)表評論

0條評論

K_B_Z

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<