存在運算子

CoffeeScript 的存在運算子 ? 檢查變數是 null 還是未定義

1.檢查 nullundefined

alert "Hello CoffeeScript!" if myVar?

等效的 javascript:

if (typeof myVar !== "undefined" && myVar !== null) {
  alert("Hello CoffeeScript!");
}

2.更安全的條件分配

你還可以使用此運算子更安全的條件分配

language = favoriteLanguage ? "coffeescript"

等效的 javascript:

language = typeof favoriteLanguage !== "undefined" && favoriteLanguage !== null ? favoriteLanguage : "coffeescript";

3.安全連結方法

而不是用 . 連結方法,用 ?. 連結它們以避免引發 TypeError

firstName = user?.profile?.firstname

等效的 javascript:

firstName = typeof user !== "undefined" && user !== null ? (ref = user.profile) != null ? ref.firstname() : void 0 : void 0;

如果所有屬性都存在,那麼如果鏈斷開,你將獲得預期結果,返回 undefined