[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/switch [Back]  [Original]

switch - JavaScript | MDN

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

switch

Baseline Widely available

This feature is well established and works across many devices and browser versions. Its been available across browsers since 2015 7.

switch , case break . case default .

In this article

const expr = "Papayas";
switch (expr) {
  case "Oranges":
    console.log("Oranges are $0.59 a pound.");
    break;
  case "Mangoes":
  case "Papayas":
    console.log("Mangoes and papayas are $2.79 a pound.");
    //  : "Mangoes and papayas are $2.79 a pound."
    break;
  default:
    console.log(`Sorry, we are out of ${expr}.`);
}

js
switch (expression) {
  case caseExpression1:
    statements
  case caseExpression2:
    statements
  // 
  case caseExpressionN:
    statements
  default:
    statements
}
expression

case .

caseExpressionN Optional

expression case . expression caseExpressionN , case (statement) switch break .

default Optional

. expression case . switch default .

switch . case , (statement) .

case . , case .

js
switch (undefined) {
  case console.log(1):
  case console.log(2):
}
// 1  

case , default (statement) . default switch (statement) . default , . default SyntaxError .

switch break , case switch . case .

break case , default . "(fall-through)" .

js
const foo = 0;
switch (foo) {
  case -1:
    console.log("negative 1");
    break;
  case 0: // foo    ;   
    console.log(0);
  // break !  .
  case 1: // 'case 0:' break    case 
    console.log(1);
    break; // break . 'case 2:'  
  case 2:
    console.log(2);
    break;
  default:
    console.log("default");
}
// 0 1  

switch . switch , return switch . switch , continue switch .

case default (label) : . ( ). :

js
const action = "say_hello";
switch (action) {
  case "say_hello":
    const message = "hello";
    console.log(message);
    break;
  case "say_hi":
    const message = "hi";
    console.log(message);
    break;
  default:
    console.log("Empty action received.");
}

"Uncaught SyntaxError: Identifier 'message' has already been declared" . const message = 'hello'; const message = 'hi'; . case . const switch .

case let const .

js
const action = "say_hello";
switch (action) {
  case "say_hello": {
    const message = "hello";
    console.log(message);
    break;
  }
  case "say_hi": {
    const message = "hi";
    console.log(message);
    break;
  }
  default: {
    console.log("Empty action received.");
  }
}

hello .

switch

, expr Bananas case 'Bananas' (statement) . break switch switch (statement) . break case 'Cherries' (statement) .

js
switch (expr) {
  case "Oranges":
    console.log("Oranges are $0.59 a pound.");
    break;
  case "Apples":
    console.log("Apples are $0.32 a pound.");
    break;
  case "Bananas":
    console.log("Bananas are $0.48 a pound.");
    break;
  case "Cherries":
    console.log("Cherries are $3.00 a pound.");
    break;
  case "Mangoes":
  case "Papayas":
    console.log("Mangoes and papayas are $2.79 a pound.");
    break;
  default:
    console.log(`Sorry, we are out of ${expr}.`);
}

console.log("Is there anything else you'd like?");

case default

, default (statement) .

js
const foo = 5;
switch (foo) {
  case 2:
    console.log(2);
    break; //  break  'default:'  
  default:
    console.log("default");
  // 
  case 1:
    console.log("1");
}

default case .

case break , case case .

case .

js
const Animal = "Giraffe";
switch (Animal) {
  case "Cow":
  case "Giraffe":
  case "Dog":
  case "Pig":
    console.log("This animal is not extinct.");
    break;
  case "Dinosaur":
  default:
    console.log("This animal is extinct.");
}

case . case . JavaScript , case .

js
const foo = 1;
let output = "Output: ";
switch (foo) {
  case 0:
    output += "So ";
  case 1:
    output += "What ";
    output += "Is ";
  case 2:
    output += "Your ";
  case 3:
    output += "Name";
  case 4:
    output += "?";
    console.log(output);
    break;
  case 5:
    output += "!";
    console.log(output);
    break;
  default:
    console.log("Please pick a number from 0 to 5!");
}

:

foo NaN 1, 2, 3, 4, 5, 0 Please pick a number from 0 to 5!
0 Output: So What Is Your Name?
1 Output: What Is Your Name?
2 Output: Your Name?
3 Output: Name?
4 Output: ?
5 Output: !

if...else

if...else .

js
if ("fetch" in globalThis) {
  // fetch  
} else if ("XMLHttpRequest" in globalThis) {
  // XMLHttpRequest  
} else {
  //    AJAX   
}

=== , switch .

js
switch (true) {
  case "fetch" in globalThis:
    // fetch  
    break;
  case "XMLHttpRequest" in globalThis:
    // XMLHttpRequest  
    break;
  default:
    //    AJAX   
    break;
}

if...else switch (true) .

js
switch (true) {
  case isSquare(shape):
    console.log("This shape is a square.");
  // ,    !
  case isRectangle(shape):
    console.log("This shape is a rectangle.");
  case isQuadrilateral(shape):
    console.log("This shape is a quadrilateral.");
    break;
  case isCircle(shape):
    console.log("This shape is a circle.");
    break;
}

Specification
ECMAScript 2027 LanguageSpecification
# sec-switch-statement


Web Proxy Viewer  |  New URL  |  Original Page