switch 문은 if 문과 가장 밀접하게 관련되어 있으며 다른 프로그래밍 언어에서 일반적으로 사용되는 흐름 제어 문이기도 합니다. 그러나 이 세부 사항에 주의하지 않으면 switch 문이 일치합니다. 프로그램을 작성할 때 종종 오류가 발생합니다.
코드:
var n = '5'; switch(n){ case 5: alert('执行case分支'); break; default: alert('执行default分支'); }
결과:
많은 사람들이 위 프로그램이 케이스 브랜치를 취한다고 잘못 생각하지만 결국에는 기본 브랜치를 취하게 됩니다. 그 둘은 동등하지 않은가? if 문을 사용해 살펴보겠습니다.
코드:
var n = '5'; if(n==5){ alert('真 分支'); }else{ alert('假 分支'); }
결과:
if 문에서는 일치할 수 있지만, switch 문에서는 왜 일치하지 않습니까?
Switch 문의 Case는 if에서 세 개의 등호를 사용하는 것과 동일한 합동 모드를 사용하기 때문입니다. 케이스 코드를 다시 작성해 보겠습니다
코드:
var n = '5'; switch(n){ case '5': // 把原来的 case 5 改写成 case '5' alert('执行case分支'); break; default: alert('执行default分支'); }
결과:
다시 작성한 후에는 if에서 세 개의 합동 기호를 사용하는 것처럼 사례 분기를 사용할 수 있습니다.
코드:
var n = '5'; if(n===5){ alert('真 分支'); }else{ alert('假 分支'); }
결과:
합동을 사용하기 때문에 문자열 5는 숫자 5와 같지 않으며 결과는 잘못된 분기입니다.
위의 예는 스위치에서 합동 매칭 모드를 사용한 것을 보여주는데, 특히 숫자와 문자열을 매칭할 때 주의해야 할 문제