When are semicolons needed in JavaScript?

pandaquests profile image pandaquests 惻1 min read

I am asking out of technical curiosity: In JS you have ASI (Automatic Semicolon Inserion). So, do you need a semicolon in JavaScript? Are there cases where semicolons in JS is necessary for the code to properly function.


markdown guide

I thought you are going to explain...

I currently use no semicolon, but some of the most common scenario at the beginning of the line include

;(() => {
  // scoped JS code

;(a as any).b = c

;[1, 2, 5].map(fn)

ESLint in VSCode will complain, if a semicolon is needed.


Actually I was going to write a blog post about it. But I was researching first in order not to forget things. There are indeed at least two cases where semicolons aren't optional. I wonder whether there are more....?


You know it is call ASI, right? -- this SO post

Normally, I wouldn't run into something like

  foo: 1

Although, I do get things like this from Prettier. (I didn't create it myself.)

const foo =
  'very long text'