¿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?