Pourquoi les points-virgules explicites sont importants dans JavaScript

Je suis en formation "JavaScript efficace" à @PayPalEng par Douglas Crockford et je ne peux pas exprimer à quel point cette expérience a été enrichissante! J'ai réalisé aujourd'hui pourquoi l'utilisation de points-virgules explicites est si importante dans JS. Je partagerai bientôt mes idées. #javascript #webdevelopment #PayPal

- Shruti Kapoor (@ shrutikapoor08) 28 novembre 2018

Gotchas où l'insertion automatique de points-virgules peut conduire à des bogues

J'ai suivi une formation JavaScript efficace par Douglas Crockford il y a quelques mois. Une chose qui m'est restée depuis lors est l'importance d'utiliser des points-virgules explicites en JavaScript. Pendant un certain temps, j'évitais paresseusement d'écrire le ;et en supposant que l'analyseur fera mon travail correctement pour moi. Dans cet article, je souhaite présenter quelques exemples qui ont changé mon état d'esprit.

Exemple 1

À quoi vous attendez-vous?

const test = () => { return { ok : true } } console.log(test())

Vous vous attendez à ce que la sortie de ceci soit un objectavec une propriété okdéfinie sur true. Mais au lieu de cela, la sortie est undefined. En effet, puisque l'accolade commence sur une nouvelle ligne, la complétion automatique du point-virgule change le code ci-dessus en ceci:

const test = () => { return; { ok : true } }

Correction : utilisez des accolades à droite du retour et des points-virgules explicites:

const test = () => { return { ok : true } };

Exemple 2

const a = 1 const b = 2 (a+b).toString()

Que pensez-vous qu'il se passe dans le code ci-dessus? Nous obtenons une erreur Uncaught ReferenceError: b is not defined. C'est parce que la parenthèse sur la troisième ligne est interprétée comme un argument de fonction. Ce code est converti en ceci:

const a = 1; const b = 2(a+b).toString();
Dans le cas où une instruction d'affectation doit commencer par une parenthèse gauche, il est conseillé au programmeur de fournir un point-virgule explicite à la fin de l'instruction précédente plutôt que de s'appuyer sur l'insertion automatique de points-virgules.

- ECMA-International.org

J'ai appris à faire attention lors de l'utilisation de l'insertion automatique de points-virgules.

Lectures complémentaires -

  1. Règles d'insertion automatique de points-virgules
  2. Article de blog de Bradley Braithwaite inspiré de la même conférence

As tu appris quelque chose de nouveau? Avez-vous des commentaires? Connaissez-vous un DevJoke? Tweetez-moi @ shrutikapoor08

"Je dis toujours aux femmes: quand vous arrivez au sommet, remontez dans l'ascenseur et amenez une femme avec vous" - Eunice Kennedy Shriver. Paroles de sagesse. #fempire #womenintech #womenleaders

- Shruti Kapoor (@ shrutikapoor08) 17 janvier 2019