如果我在Coffescript传递变量的存在操作者将它转换成一对!==
比较:检查不等式(!==)与undefined和null是否有区别,只是针对null检查corcive不等式(!=)?
compiles to
Coffeescript ------> JS
a? typeof a !== "undefined" && a !== null;
但是,如果使用一个文字或表达它,而不是使用一个!=
比较:
compiles to
Coffeescript ------> JS
17? 17 != null;
//same thing for regexps, strings, function calls and other expressions
//as far as I know.
是否有任何理由在较短!= null
宁愿双!==
S,其他的话,或许使JSLint的幸福吗?
是的,的确如此。 ?是存在的运营商。它意在表明变量是否存在。 – liammclennan
@RobG让他们成为一个新的操作员是有道理的。我们已经有了'!!'用于虚假评估 – hugomg
@liammclennan - 那个测试并没有告诉你任何有关变量是否存在的事情,它只是提供了一个关于它的价值不是什么的暗示。 @missingno - 重载'?'操作符似乎不是一个好主意,它只是速记,并且(对我来说)混淆了代码。 – RobG