Ich möchte den CoffeeScript existential-Operator verwenden, um einige Objekteigenschaften auf undefined zu überprüfen. Ich stieß jedoch auf ein kleines Problem.Wie verwende ich den CoffeeScript existential-Operator, um einige Objekteigenschaften auf undefined zu prüfen?
-Code wie folgt aus:
console.log test if test?
Compiliert zu:
if (typeof test !== "undefined" && test !== null) console.log(test);
, die das Verhalten ist, würde ich gerne sehen. Allerdings, wenn ich es gegen Objekteigenschaften versuchen Sie es mit, wie folgt aus:
console.log test.test if test.test?
ich etwas wie folgt aus:
if (test.test != null) console.log(test.test);
, die überhaupt wie eine Prüfung gegen undefinierte aussehen desn't. Der einzige Weg, ich das gleiche erreicht haben könnte (1: 1) Verhalten, wie es für Objekte mit war durch eine größere Kontrolle mit:
console.log test.test if typeof test.test != "undefined" and test.test != null
Die Frage ist - mache ich etwas falsch? Oder ist der kompilierte Code ausreichend, um auf das Vorhandensein einer Eigenschaft zu prüfen (eine Nullprüfung mit Typkonvertierung)?
exaktes Duplikat von [coffeescript nicht null oder undefiniertes Verhalten] (http://stackoverflow.com/questions/20010245/coffeescript-not-null-or-undefined-behavior) – Bergi
@Bergi, diese Frage wurde vor vier Jahren gestellt , der andere - vor zwei Jahren. Ist das andere nicht das Duplikat? :) – Przemek
Richtig, ich fühlte nur, dass der andere die bessere Antwort hatte. Ich schätze, sie sollten zusammengelegt werden. – Bergi