在程式設計中經常會xua需要讀取一個對象的屬性值是否存在例如:
// 錯誤的寫法
const name = response.result.userInfo.name || '';
// 正确的寫法
const name= (response
&& response.result
&& response.result.userInfo
&& response.result.userInfo.name) || '';
name屬性在對象的第四層,是以需要判斷四次,每一層是否有值,這樣的層層判斷非常麻煩,可以使用“鍊判斷運算符”(?.),簡化上面的寫法。
const name = response?.result?.userInfo?.name || '';
上面代碼使用了?.運算符,直接在鍊式調用的時候判斷,左側的對象是否為null或undefined。如果是的,就不再往下運算,而是傳回undefined。
ECMAScript 6 入門