【发布时间】:2013-10-31 01:48:36
【问题描述】:
以下咖啡脚本代码
if a isnt undefined
b = 1
if a?
b = 1
编译成下面的javascript
var b;
if (a !== void 0) {
b = 1;
}
if (typeof a !== "undefined" && a !== null) {
b = 1;
}
这两个检查是否等效?它们在什么条件下不同?
【问题讨论】:
-
typeof运算符的行为也有一些更好的地方。例如,比较a?和a=a;a?的编译输出。 es5.github.io/#x11.4.3 -
您查找
void以了解它的作用吗?答案就在眼前。 -
不只是 javascript,coffeescript 有一个
undefined?的特殊情况,所以我想确保我没有遗漏任何东西。