Hvorfor eksplicitte semikoloner er vigtige i JavaScript

Jeg er i "Effektiv JavaScript" -træning på @PayPalEng af Douglas Crockford og kan ikke udtrykke, hvilken oplysende oplevelse det har været! Jeg indså i dag, hvorfor brug af eksplicit semikolon er så vigtigt i JS. Deler snart min indsigt. #javascript #webdevelopment #PayPal

- Shruti Kapoor (@ shrutikapoor08) 28. november 2018

Gotchas hvor automatisk indsættelse af semikolon kan føre til bugs

Jeg tog effektiv JavaScript-træning af Douglas Crockford for et par måneder siden. En ting, der sidder fast med mig siden da, er vigtigheden af ​​at bruge eksplicit semikolon i JavaScript. I et stykke tid har jeg dovent undgået at skrive ;og antage, at parseren vil gøre mit job korrekt for mig. I dette indlæg vil jeg præsentere nogle eksempler, der ændrede min tankegang.

Eksempel 1

Hvad forventer du, at produktionen af ​​dette bliver?

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

Du forventer, at produktionen af ​​dette er en objectmed en egenskab okindstillet til true. Men i stedet er output undefined. Dette skyldes, at da den krøllede afstivning starter på en ny linje, ændrer automatisk semikolonafslutning ovenstående kode til dette:

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

Fix : Brug krøllede seler til højre for retur og eksplicitte semikolon:

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

Eksempel 2

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

Hvad synes du sker i ovenstående kode? Vi får en fejl Uncaught ReferenceError: b is not defined. Dette skyldes, at parentesen på tredje linje fortolkes som et funktionsargument. Denne kode konverteres til denne:

const a = 1; const b = 2(a+b).toString();
Under den omstændighed, at en opgaveerklæring skal begynde med en venstre parentes, er det en god ide for programmøren at give et eksplicit semikolon i slutningen af ​​den foregående sætning i stedet for at stole på automatisk semikolonindsættelse.

- ECMA-International.org

Jeg har lært at være forsigtig, når jeg bruger automatisk indsættelse af semikolon.

Yderligere læsning -

  1. Automatiske regler for indsættelse af semikolon
  2. Blogindlæg af Bradley Braithwaite inspireret af samme foredrag

Lærte du noget nyt? Har du kommentarer? Kender du en DevJoke? Tweet mig @ shrutikapoor08

"Jeg fortæller altid kvinder: Når du kommer til toppen, kom tilbage i elevatoren og tag en kvinde op med dig" - Eunice Kennedy Shriver. Vise ord. #fempire #womenintech #womenleaders

- Shruti Kapoor (@ shrutikapoor08) 17. januar 2019