初探 Optional chaining (?.)
前言
最近發現 JavaScript 有個 Optional chaining 的語法,在此把學習的過程做個紀錄。
內容
範例如下
const adventurer = { name: 'Alice', cat: { name: 'Dinah' } }; const dogName = adventurer?.name; //Follow code has the same result... //const dogName = adventurer.dog && adventurer.dog.name; console.log(dogName);//Alice // const catName = adventurer?.cat?.name; console.log(catName);//Dinah
Optional chaining 用來簡化程式碼,在寫程式常常需要檢查物件是否存在,若存在提取其內容這樣的邏輯,用 ?. 的語法就可以快速完成,範例的 dogName 會先確認 adventurer 是否存在,若存在回傳 aadventurer.name ,若不存在則是回傳 undefined ,這點要注意。這個語法還可以使用在巢狀結構,如範例的 catName 的應用,先確認 adventurer 是否存在,再確認 adventurer.cat 的存在,都沒問題才回傳 adventurer.cat.name 。
沒有留言:
張貼留言