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?