>  기사  >  웹 프론트엔드  >  JavaScript_기본지식으로 스위치 판단을 실수하기 쉬운 디테일

JavaScript_기본지식으로 스위치 판단을 실수하기 쉬운 디테일

WBOY
WBOY원래의
2016-05-16 16:38:291345검색

switch 문은 if 문과 가장 밀접하게 관련되어 있으며 다른 프로그래밍 언어에서 일반적으로 사용되는 흐름 제어 문이기도 합니다. 그러나 이 세부 사항에 주의하지 않으면 switch 문이 일치합니다. 프로그램을 작성할 때 종종 오류가 발생합니다.

코드:

var n = '5';
switch(n){
    case 5:
        alert('执行case分支');
        break;
    default:
        alert('执行default分支');
}

결과:

JavaScript_기본지식으로 스위치 판단을 실수하기 쉬운 디테일

많은 사람들이 위 프로그램이 케이스 브랜치를 취한다고 잘못 생각하지만 결국에는 기본 브랜치를 취하게 됩니다. 그 둘은 동등하지 않은가? if 문을 사용해 살펴보겠습니다.

코드:

var n = '5';
if(n==5){
    alert('真 分支');
}else{
    alert('假 分支');
}

결과:

JavaScript_기본지식으로 스위치 판단을 실수하기 쉬운 디테일

if 문에서는 일치할 수 있지만, switch 문에서는 왜 일치하지 않습니까?

Switch 문의 Case는 if에서 세 개의 등호를 사용하는 것과 동일한 합동 모드를 사용하기 때문입니다. 케이스 코드를 다시 작성해 보겠습니다

코드:

var n = '5';
switch(n){
    case '5': // 把原来的 case 5 改写成 case '5'
        alert('执行case分支');
        break;
    default:
        alert('执行default分支');
}

결과:

JavaScript_기본지식으로 스위치 판단을 실수하기 쉬운 디테일

다시 작성한 후에는 if에서 세 개의 합동 기호를 사용하는 것처럼 사례 분기를 사용할 수 있습니다.

코드:

var n = '5';
if(n===5){
    alert('真 分支');
}else{
    alert('假 分支');
}

결과:

JavaScript_기본지식으로 스위치 판단을 실수하기 쉬운 디테일

합동을 사용하기 때문에 문자열 5는 숫자 5와 같지 않으며 결과는 잘못된 분기입니다.

위의 예는 스위치에서 합동 매칭 모드를 사용한 것을 보여주는데, 특히 숫자와 문자열을 매칭할 때 주의해야 할 문제

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.