天天看點

javascript 中 “?.” (javascript 中 “?.” 運算符)

在程式設計中經常會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 入門

繼續閱讀