[英]Using optional chaining operator for object property access
使用括號表示法和可選鏈接訪問屬性時,除了括號之外,您還需要使用點:
const value = a?.[b]?.c;
這是TC39 提案所采用的語法,否則解析器很難判斷這是否是?
是三元表達式的一部分或可選鏈接的一部分。
我的想法是:可選鏈接的符號不是?
,是?.
. 如果您正在執行可選鏈接,您將始終使用這兩個字符。
?.
以下是可為空屬性和 function 處理的一些示例。
const example = {a: ["first", {b:3}, false]}
// Properties
example?.a // ["first", {b:3}, false]
example?.b // undefined
// Dynamic properties ?.[]
example?.a?.[0] // "first"
example?.a?.[1]?.a // undefined
example?.a?.[1]?.b // 3
// Functions ?.()
null?.() // undefined
validFunction?.() // result
(() => {return 1})?.() // 1
??
(Nullish Coalescing) 如果未定義或 null 可用於設置默認值。
const notNull = possiblyNull ?? defaultValue
const alsoNotNull = a?.b?.c ?? possiblyNullFallback ?? defaultValue
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.