JavaScript labeled statements
New Courses Coming Soon
Join the waiting lists
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.
Here is how can I help you:
- COURSES where I teach everything I know
- CODING BOOTCAMP cohort course - next edition in 2025
- THE VALLEY OF CODE your web development manual
- BOOKS 17 coding ebooks you can download for free on JS Python C PHP and lots more
- Interesting links collection
- Follow me on X