Web Technologies und Syntax

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

JavaScript hat eine (neuartige) Funktion namens optional chaining. Angenommen, ich habe Code wie

const name = Data.person.name;

Wenn person in Data zufällig nicht existiert, erhalte ich einen harten, stoppenden Fehler. Mit optionalem Chaining kann ich schreiben:

const name = Data.person?.name;

Wenn person nicht existiert, wird name zu undefined, anstatt einen Fehler auszulösen. Das ist meiner Meinung nach ziemlich nützlich. In gewisser Weise macht es den Code widerstandsfähiger, da die Möglichkeit, dass ein Skript komplett abstürzt, geringer ist. Es gibt jedoch auch Argumente dafür, dass es den Code tatsächlich weniger widerstandsfähig macht, da man das Problem an der Wurzel behebt (schlechte Daten), anstatt ein Pflaster aufzukleben.

Jim Nielsen stellt die Verbindung zum optionalen Chaining und !important in CSS her. Fehler wegen "undefined properties" sind vielleicht die häufigsten aller JavaScript-Fehler und optionales Chaining ist eine schnelle Umgehung. Stile, die nicht wie gewünscht kaskadieren, sind (vielleicht?) die häufigsten aller CSS-Probleme und !important ist eine schnelle Umgehung.

Wer mit CSS vertraut ist, weiß, dass die Verwendung von !important Ihre Probleme nicht immer löst. Tatsächlich kann es Ihnen sogar mehr Probleme bereiten. Dasselbe gilt für optionales Chaining in JavaScript, es kann Ihnen mehr Probleme bereiten, als es löst (wir wissen es noch nicht, da es noch nicht lange genug existiert).

Diese Sichtweise gefällt mir.

Verschwommene negative Meinungen über neue Funktionen sind nur Clickbait-Unsinn, aber manchmal gibt es darin gute Gedanken zum Nachdenken. Ich wette, optionales Chaining wird sich in JavaScript in einigen schönen Mustern einfinden, so wie !important in CSS bis zu einem gewissen Grad getan hat. Das meiste Gerede, das ich in letzter Zeit über !important in CSS höre, dreht sich darum, wie man es verwenden sollte, wenn man es wirklich meint (nicht, um aus einer Klemme herauszukommen).

Direkter Link →