Learn how to use switch/case statements in JavaScript for conditional logic, with examples and explanations.
last modified April 16, 2025
In this article we show how to use the switch and case keywords to create conditional statements in JavaScript.
The switch statement evaluates an expression and executes code based on matching cases. It provides an alternative to long if-else chains when testing a single value against multiple possibilities.
Each case represents a possible match for the switch expression. When a match is found, the corresponding code block executes until a break statement is encountered.
The default case executes when no matches are found. While optional, it’s good practice to include a default case for handling unexpected values.
The following example demonstrates the basic structure of a switch statement.
main.js
let day = 3; let dayName;
switch (day) { case 1: dayName = ‘Monday’; break; case 2: dayName = ‘Tuesday’; break; case 3: dayName = ‘Wednesday’; break; case 4: dayName = ‘Thursday’; break; case 5: dayName = ‘Friday’; break; default: dayName = ‘Weekend’; }
console.log(dayName);
This code converts a numeric day to its corresponding name. The switch evaluates the day variable and executes the matching case. Without break statements, execution would “fall through” to subsequent cases.
$ node main.js Wednesday
JavaScript switch statements exhibit fall-through behavior by default.
main.js
let grade = ‘B’; let message;
switch (grade) { case ‘A’: case ‘B’: case ‘C’: message = ‘Passing grade’; break; case ‘D’: message = ‘Barely passing’; break; case ‘F’: message = ‘Failing grade’; break; default: message = ‘Unknown grade’; }
console.log(message);
Here multiple cases share the same code block. Grades A, B, and C all result in the same message. This demonstrates intentional fall-through, which can be useful for grouping related cases together.
$ node main.js Passing grade
Switch statements use strict comparison (===) when matching cases.
main.js
let value = ‘5’;
switch (value) { case 5: console.log(‘Number 5’); break; case ‘5’: console.log(‘String “5”’); break; default: console.log(‘Unknown value’); }
This example shows that the string ‘5’ doesn’t match the number 5 due to strict type comparison. The switch statement distinguishes between different data types when evaluating cases.
$ node main.js String “5”
Case labels can contain expressions that evaluate to constant values.
main.js
let score = 85; let grade;
switch (true) { case score >= 90: grade = ‘A’; break; case score >= 80: grade = ‘B’; break; case score >= 70: grade = ‘C’; break; case score >= 60: grade = ‘D’; break; default: grade = ‘F’; }
console.log(grade);
This technique uses boolean expressions in cases by switching on true. Each case is evaluated until a matching condition is found. It provides a clean alternative to complex if-else chains for range checking.
$ node main.js B
Switch statements can handle multiple conditions in a single case.
main.js
let fruit = ‘apple’; let color;
switch (fruit) { case ‘apple’: case ‘strawberry’: color = ‘red’; break; case ‘banana’: case ’lemon’: color = ‘yellow’; break; case ‘orange’: color = ‘orange’; break; default: color = ‘unknown’; }
console.log(color);
This example groups fruits by color. Multiple fruits can share the same color assignment. The switch statement provides a clean way to handle these grouped conditions without repetitive code.
$ node main.js red
Switch statements often provide cleaner code than equivalent if-else chains.
main.js
let browser = ‘Firefox’;
switch (browser) { case ‘Chrome’: case ‘Firefox’: case ‘Safari’: console.log(‘Supported browser’); break; case ‘IE’: console.log(‘Deprecated browser’); break; default: console.log(‘Unknown browser’); }
The switch version is more readable than a series of if-else statements when checking multiple exact matches. It clearly shows all possible cases and their corresponding actions in a structured format.
$ node main.js Supported browser
Here’s a practical example of using switch to process different commands.
main.js
function processCommand(cmd) {
switch (cmd.toLowerCase()) {
case ‘start’:
console.log(‘Starting system…’);
break;
case ‘stop’:
console.log(‘Stopping system…’);
break;
case ‘restart’:
console.log(‘Restarting system…’);
break;
case ‘status’:
console.log(‘System status: OK’);
break;
default:
console.log(Unknown command: ${cmd}
);
}
}
processCommand(‘START’); processCommand(‘status’); processCommand(‘backup’);
This command processor demonstrates how switch can handle different input commands. The toLowerCase() ensures case-insensitive matching. The default case handles invalid commands gracefully.
$ node main.js Starting system… System status: OK Unknown command: backup
In this article we have demonstrated how to use the switch and case keywords to create conditional statements in JavaScript.
My name is Jan Bodnar, and I am a passionate programmer with extensive programming experience. I have been writing programming articles since 2007. To date, I have authored over 1,400 articles and 8 e-books. I possess more than ten years of experience in teaching programming.