Skip to content

JavaScript labeled statements

New Course Coming Soon:

Get Really Good at Git

A tutorial about a very rarely used JavaScript feature: labeled statements

JavaScript has a relatively unknown functionality which allows you to label statements.

I’ve recently saw this feature used in Svelte to power reactive declarations, which are re-computed whenever the variables declared into the statement change:

$: console.log(variable)

They also allow to use a statement block, another feature of JavaScript that lets you define a block whenever you can define a statement:

$: {
  console.log(variable)
  console.log('another thing')
  //...
}

This may look strange, but it’s correct JavaScript. This statement block is assigned to the $ label.

The Svelte compiler internally will use this to power reactive declarations.

I never used this feature anywhere else, yet, but the primary use case is breaking out of a statement that is not the nearest enclosing loop or switch.

Here’s a simple example to explain what I mean.

Calling break in any of those points breaks out of the switch, to avoid running the other cases:

for (let y = 0; y < 3; y++) {
  switch (y) {
    case 0:
      console.log(0)
      break
    case 1:
      console.log(1)
      break
    case 2:
      console.log(2)
      break
  }
}

This will print 0 1 2 to the console, as expected.

But what if we want to break out of for when we reach case 1? Here is how:

loop: for (let y = 0; y < 3; y++) {
  switch (y) {
    case 0:
      console.log(0)
      break
    case 1:
      console.log(1)
      break loop
    case 2:
      console.log(2)
      break
  }
}

This will print 0 1 to the console.

Are you intimidated by Git? Can’t figure out merge vs rebase? Are you afraid of screwing up something any time you have to do something in Git? Do you rely on ChatGPT or random people’s answer on StackOverflow to fix your problems? Your coworkers are tired of explaining Git to you all the time? Git is something we all need to use, but few of us really master it. I created this course to improve your Git (and GitHub) knowledge at a radical level. A course that helps you feel less frustrated with Git. Launching May 21, 2024. Join the waiting list!
→ Get my JavaScript Beginner's Handbook
→ Read my JavaScript Tutorials on The Valley of Code
→ Read my TypeScript Tutorial on The Valley of Code

Here is how can I help you: