JavaScript에서 보다 큼/작음 비교를 위해 Switch 문을 어떻게 사용할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-10-28 03:11:31
원래의
271명이 탐색했습니다.

How Can You Use Switch Statements for Greater-than/Less-than Comparisons in JavaScript?

보다 큼/작음 비교를 위한 스위치 문

문제:

보다 큼과 함께 스위치 문 사용 JavaScript 구문에서는 보다 작음 연산자가 불가능합니다. 이는 범위 비교를 효율적으로 수행해야 할 때 문제가 됩니다.

해결책:

이 문제를 해결하는 데는 다양한 접근 방식이 있지만 가장 효율적인 솔루션은 다음에 따라 다릅니다. 특정 사용 사례 및 브라우저 환경. 다음은 몇 가지 테스트된 옵션입니다.

if-immediate(즉시 조건문):

<code class="javascript">if (scrollLeft < 1000) {
  // do stuff
} else if (scrollLeft > 1000 && scrollLeft < 2000) {
  // do other stuff
}
로그인 후 복사

이 방법은 직접 비교를 위해 중첩된 if 문을 사용하므로 탁월한 성능을 발휘합니다. .

switch-immediate(즉시 Switch-Case 문):

<code class="javascript">switch (true) {
  case scrollLeft < 1000:
    // do stuff
    break;
  case scrollLeft > 1000 && scrollLeft < 2000:
    // do other stuff
    break;
}
로그인 후 복사

switch 문과 유사하지만 내부적으로 if 문을 사용하므로 다음과 유사합니다. if 즉시 접근 방식.

switch-range(Switch-Case 문의 범위 일치):

<code class="javascript">switch (true) {
  case scrollLeft >= 0 && scrollLeft < 1000: // not recommended
  case scrollLeft >= 1000 && scrollLeft < 2000:
    // do stuff
    break;
}
로그인 후 복사

이 접근 방식은 스위치 즉시 접근 방식을 확장하여 처리합니다. 범위 비교. 그러나 잠재적인 오버플로 및 성능 저하로 인해 성능에 영향을 미칠 수 있습니다.

switch-range2(변수를 사용한 범위 일치):

<code class="javascript">const range1 = [0, 1000];
const range2 = [1000, 2000];
switch (true) {
  case scrollLeft >= range1[0] && scrollLeft < range1[1]:
  case scrollLeft >= range2[0] && scrollLeft < range2[1]:
    // do stuff
    break;
}</code>
로그인 후 복사

이 방법은 비교를 수행할 범위의 배열입니다. 성능과 유연성 사이의 균형을 제공합니다.

벤치마킹 결과:

브라우저 성능 비교:

  • if -immediate: 브라우저 전체에서 최고의 성능
  • switch-immediate: if-immediate와 비교 가능
  • switch-range: if-immediate 및 switch-immediate보다 느림
  • switch-range2 : 스위치 범위보다 약간 빠름
  • switch-indirect-array: 어레이 관련 성능이 가장 느림

권장 사항:

최대 성능을 얻으려면 즉시를 사용하세요. 성능이 중요한 문제가 아닌 경우 switch-immediate 또는 switch-range2는 스위치 문의 편리함을 제공하는 대체 옵션이 될 수 있습니다. 성능 저하가 있으므로 switch-indirect-array 또는 array-binary-switch는 사용하지 마세요.

위 내용은 JavaScript에서 보다 큼/작음 비교를 위해 Switch 문을 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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