Protection des valeurs JavaScript : Elvis et les opérateurs de navigation sécurisés
En JavaScript, s'assurer que les variables ne sont pas nulles ou indéfinies est crucial pour éviter les erreurs. L'opérateur Elvis et l'opérateur de navigation sécurisée sont deux techniques qui peuvent vous aider dans cette tâche.
Opérateur Elvis : un raccourci conditionnel
Similaire à l'opérateur ternaire de Java, l'opérateur Elvis (?:) attribue une valeur par défaut si l'expression de gauche est résolue en faux, nul ou indéfini. Par exemple :
const displayName = user.name ?: "Anonymous";
Si user.name existe et n'est pas vide, displayName recevra sa valeur. Sinon, il sera par défaut "Anonyme".
Opérateur de navigation sécurisé : éviter les exceptions NullPointerExceptions
L'opérateur de navigation sécurisé (?.) empêche les exceptions NullPointerExceptions lors de l'accès aux propriétés potentiellement nulles. objets. Au lieu de lever une exception, il renvoie simplement null. Par exemple :
const streetName = user?.address?.street;
Si user ou user.address est nul, streetName restera nul. Cela protège contre les erreurs lors de l'accès aux propriétés d'objets inexistants.
Alternatives en JavaScript
Actuellement, JavaScript n'a pas d'opérateur Elvis. Au lieu de cela, vous pouvez utiliser l'opérateur OU logique (||) pour les affectations conditionnelles :
const displayName = user.name || "Anonymous";
Cependant, il n'existe pas d'équivalent direct pour l'opérateur de navigation sécurisée. Pour une fonctionnalité similaire, envisagez d'utiliser CoffeeScript, qui fournit un opérateur existentiel :
const zip = lottery.drawWinner?().address?.zipcode;
CoffeeScript propose également d'autres améliorations syntaxiques telles que des commentaires multilignes, des raccourcis de fonction et des appels de fonction « sexy ». Ces fonctionnalités peuvent améliorer la lisibilité et l'expressivité du code JavaScript.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!