Gibt es einen null
-safe Eigenschaft Zugang (null Ausbreitung/Existenz) Operator in ES6 (ES2015/JavaScript.next/Harmonie) wie ?.
in Coffee zum Beispiel? Oder ist es für ES7 geplant?Null sichere Zugriff auf Eigenschaften (und bedingte Zuweisung) in ES6/2015
var aThing = getSomething()
...
aThing = possiblyNull?.thing
Dies wird in etwa wie:
if (possiblyNull != null) aThing = possiblyNull.thing
Idealerweise sollte die Lösung nicht (auch undefined
) zuweisen aThing
wenn possiblyNull
ist null
@naomik Diese Art von null Prüfung kann variieren kann sehr nützlich sein für die if-Anweisungen, wo sie eine tief verschachtelte Eigenschaft sind die Überprüfung, zum Beispiel 'if (obj? .nested? .property? .value)' anstelle von 'if (obj && obj.nested && obj.nested.property && obj.nested.property.value) ' –
@SeanWalsh wenn Ihre Objekte so tief sind verschachtelt, oder wenn Ihre Funktionen so tief in Ihren Objekten graben, gibt es wahrscheinlich auch noch andere Probleme mit Ihrer App. – naomik
vergleichen 'var appConfig = loadConfig (config, process.env); connect (appConfig.database); 'to' connect (config) '. Sie können ein viel einfacheres Objekt an 'connect' übergeben, anstatt das ganze' config'-Objekt zu übergeben. Sie können 'conf.username',' conf.password' anstelle von etwas wie 'config [process.env] ?. database verwenden ? .username', 'config [process.env] ?. database? .password'. Referenz: [Gesetz von Demeter] (https://en.wikipedia.org/wiki/Law_of_Demeter). – naomik