Javascript "Switch"문에 대해 모를 수도 있는 것...

2191 단어
switch 문은 다른 조건에 따라 다른 작업을 수행하는 데 사용됩니다. switch 문을 사용하여 실행할 많은 코드 블록 중 하나를 선택합니다. 다음 "if then"문, 여기서 x는 임의의 값일 수 있지만 0 또는 1의 결과만 제공합니다.

if (x===0) {
    text = "Zero";
} else if (x===1) {
    text = "One";
} else {
    text = "No value found";
}


...이 "switch"문으로 다시 작성할 수 있습니다.

switch (x) {
  case 0:
    text = "Zero";
    break;
  case 1:
    text = "One";
    break;
  default:
    text = "No value found";
}


팁: 일치하는 항목을 찾을 때 스위치를 중지하려면 항상 "중단"명령을 포함해야 합니다.

한 가지 명심해야 할 점은 Switch 케이스는 엄격한 비교(===)를 사용한다는 것입니다. 값은 일치하는 유형이 같아야 합니다. 엄격한 비교는 피연산자가 같은 유형인 경우에만 참일 수 있습니다.
위의 예에서 "0"은 일치를 반환하지 않지만 0은 일치를 반환합니다.

그러나 다음과 같은 것을 켜고 싶다면 어떻게 될까요?

if (time < 10) {
  greeting = "Good morning";
} else if (time < 20) {
  greeting = "Good day";
} else {
  greeting = "Good evening";
}


다음과 같이 할 수 있다고 생각할 수도 있습니다.

switch(time){
    case (<10):
        greeting = "Good morning";
        break;
    case (<20):
        greeting = "Good day";
        break;
    default:
        greeting = "Good evening";
}


그러나 스위치 비교는 그런 식으로 작동하지 않습니다. 스위치는 다음 규칙을 따릅니다.
  • 스위치 표현식은 한 번 평가됩니다.
  • 표현식의 값은 각 경우의 값과 비교됩니다. (값을 비교할 수 없으므로 일치 할 수 없습니다)
  • 일치하는 항목이 있으면 연결된 코드 블록이 실행됩니다.
  • 일치하는 항목이 없으면 기본 코드 블록이 실행됩니다.

  • 하지만 여기 당신이 할 수 있는 한 가지가 있습니다. 표현식의 값은 각 케이스의 값과 비교되기 때문에 표현식의 값을 'true'로 설정하면 어떤 케이스 값이든 true(또는 false)로 평가되는 표현식을 만들어 테스트할 수 있습니다. 성냥. 예를 들어 위의 스위치 표현식이 작동하지 않는다는 것을 이미 알고 있습니다. 그러나 다음과 같이 다시 작성하면 :

    switch(true){
        case (time < 10):
            greeting = "Good morning";
            break;
        case (time < 20):
            greeting = "Good day";
            break;
        default:
            greeting = "Good evening";
    }
    
    


    ...그러면 "if then"JavaScript 문 대신 "switch"를 사용할 수 있습니다.

    알면 알수록!

    좋은 웹페이지 즐겨찾기