> 웹 프론트엔드 > JS 튜토리얼 > JavaScript Switch Case 문에서 표현식을 사용할 수 있나요?

JavaScript Switch Case 문에서 표현식을 사용할 수 있나요?

Barbara Streisand
풀어 주다: 2024-11-02 21:46:30
원래의
1044명이 탐색했습니다.

Can You Use Expressions in JavaScript Switch Case Statements?

Switch Case 문의 표현식 평가

JavaScript에서 switch 문은 값이 미리 결정된 상수와 같음을 기반으로 조건부 실행을 용이하게 합니다. 하지만 대신 런타임에 평가되는 동적 표현식을 활용하려면 어떻게 해야 할까요?

제공된 코드 조각은 스위치 케이스에서 표현식을 활용하려고 시도합니다.

<code class="javascript">function reward(amount) {
    var $reward = $("#reward");
    switch (amount) {
        case (amount >= 7500 && amount < 10000):
            $reward.text("Play Station 3");
            break;
        case (amount >= 10000 && amount < 15000):
            $reward.text("XBOX 360");
            break;
        case (amount >= 15000):
            $reward.text("iMac");
            break;
        default:
            $reward.text("No reward");
            break;
    }
}</code>
로그인 후 복사

안타깝게도 이 접근 방식은 작동하지 않습니다. 예상대로. 그 이유는 스위치 문의 성격에 있습니다. 각 사례 표현식은 조건이 참인지 거짓인지를 나타내는 부울 값을 반환합니다. 주어진 코드에서 표현식은 원하는 상수 값이 아닌 true 또는 false로 평가됩니다.

이 문제를 해결하려면 스위치 문이 상수 부울 값으로 평가되는 트릭을 사용할 수 있습니다(이 경우 true). Case) 및 Case 문 내의 식을 사용하여 실행 흐름을 제어합니다.

<code class="javascript">switch (true) {
  case (amount >= 7500 && amount < 10000):
    // Code
    break;
  case (amount >= 10000 && amount < 15000):
    // Code
    break;
  // etc.
}</code>
로그인 후 복사

이 해결 방법을 사용하면 몇 가지 잠재적인 단점이 있기는 하지만 Switch Case 내의 식을 평가할 수 있습니다. 첫째, true인지에 대한 지속적인 평가가 필요하며, 이는 일부 시나리오에서는 불필요하거나 바람직하지 않을 수 있습니다. 둘째, 코드가 덜 간결해지고 잠재적으로 더 혼란스러워집니다.

대안 접근 방식은 동적 표현식을 평가하고 해당 코드 블록을 실행하는 보다 간단한 방법을 제공하는 if-else 문을 활용하는 것입니다. 해결된 스위치 문 또는 if-else 문 사용 간의 선택은 애플리케이션의 특정 요구 사항에 따라 달라집니다.

위 내용은 JavaScript Switch Case 문에서 표현식을 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿