Coffeescript は存在演算子を使用して、変数がいつ存在するかを判断します。coffeescript のドキュメントsomething?
では、それがコンパイルされることを示していますがsomething !== undefined && something !== null
、私のバージョンの coffeescript はこれをコンパイルするだけであることに気付いたsomething !== null
ので、これがコードにどのように影響するかを確認するテストを書きました
taco = undefined
if taco?
console.log "fiesta!"
else
console.log "No taco!"
にコンパイルされた
// Generated by CoffeeScript 1.4.0
(function() {
var taco;
taco = void 0;
if (taco != null) {
console.log("fiesta!");
} else {
console.log("No taco!");
}
}).call(this);
やや予想外のものを出力したNo taco!
ので、私の質問は2つあります。なぜcoffeescriptは値が存在するかどうかをチェックしなくなりundefined
、なぜこれで十分なのですか?