我正在尝试为“如果未定义或初始化变量,则声明并初始化”选择一个可靠的运算符。
考虑一个例子(语义并不重要):
window.test ?= 123
location.origin ||= location.protocol + "//" + location.host
这将被翻译成以下 Javascript:
var _ref;
if ((_ref = window.test) == null) {
window.test = 123;
}
location.origin || (location.origin = location.protocol + "//" + location.host);
哪种方法更好?在我看来,||=
操作符更可靠,因为它也解释了“未定义”但是为什么 CoffeeScript 提倡使用?=
代替呢?我错过了什么吗?