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 중국어 웹사이트의 기타 관련 기사를 참조하세요!