5

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、なぜこれで十分なのですか?

4

1 に答える 1