Wie funktioniert der existenzielle Operator von CoffeeScript?

Coffeescript verwendet den existenziellen Operator, um zu bestimmen, wann eine Variable existiertcoffeescript dokumentation es zeigt, dasssomething? kompilieren würdesomething !== undefined && something !== null Ich bemerkte jedoch, dass meine Version von coffeescript dies nur für kompiliertesomething !== null Also schrieb ich einen Test, um zu sehen, wie sich dies auf meinen Code auswirken würde

taco = undefined 

if taco?
    console.log "fiesta!"
else 
    console.log "No taco!"

welche kompiliert zu

// 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);

und gab das etwas unerwartete ausNo taco! Meine Frage ist also zweifach. Warum prüft coffeescript nicht mehr auf den Wert Seinundefined und warum ist das ausreichend?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage