存在运算符

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