¿Cómo funciona el operador existencial de CoffeeScript?

Coffeescript utiliza el operador existencial para determinar cuándo existe una variable, y en eldocumentación de coffeescript Muestra quesomething? compilaría parasomething !== undefined && something !== null sin embargo, noté que mi versión de coffeescript solo compilaba esto parasomething !== null Así que escribí una prueba para ver cómo esto afectaría mi código

taco = undefined 

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

que compiló a

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

y dio salida a algo inesperadoNo taco! así que mi pregunta es doble. ¿Por qué coffeescript ya no comprueba el valor que está siendoundefined ¿Y por qué es esto suficiente?

Respuestas a la pregunta(1)

Su respuesta a la pregunta