摘要:剛才看了下一個(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é)可以安裝起來。
Referencebabel/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
摘要:有不對的地方,或者有更好的理解,請告訴我,謝謝原理以容器的中心點(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...
摘要:由于具備一定的使用場景,而且支持方式零成本改寫為即可,所以就支持它吧不支持的特性下面三個(gè)特性不支持,原因是沒什么使用場景安全的安全的上面兩者的結(jié)合首先看一個(gè)對象,如果出來的結(jié)果是,那這個(gè)返回值使用起來也沒有意義。 1. 引言 備受開發(fā)者喜愛的特性 Optional chaining 在 2019.6.5 進(jìn)入了 stage2,讓我們詳細(xì)讀一下草案,了解一下這個(gè)特性的用法以及討論要點(diǎn)。 ...
摘要:正則學(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)...
摘要:由于是以空函數(shù)為代理對象,我們可以將執(zhí)行它,觸發(fā)。中會遍歷數(shù)組依次取值,如果發(fā)現(xiàn)無法繼續(xù)取值則,跳出循環(huán)。 本文來自我的博客,歡迎大家去GitHub上star我的博客 我們在取值特別是鏈?zhǔn)饺≈档臅r(shí)候,常常會遇到Cannot read property xx of undefined的錯(cuò)誤,如何避免這種情況的發(fā)生呢?這里有幾種方法以供參考 使用成熟的庫方法 這是最簡單的一種手段:只用引入...
摘要:若是偶數(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...
閱讀 2609·2021-10-11 10:58
閱讀 1135·2019-08-29 13:58
閱讀 1730·2019-08-26 13:32
閱讀 899·2019-08-26 10:40
閱讀 3329·2019-08-26 10:18
閱讀 1826·2019-08-23 14:18
閱讀 1202·2019-08-23 10:54
閱讀 597·2019-08-22 18:39