boolean false
또는 정수 (0 포함) 일 수있는 변수가 있습니다 . 다음과 같은 switch 문에 넣고 싶습니다.
switch(my_var){
case 0:
// Do something
break;
case 1:
// Do something else
break;
case false:
// Some other code
}
구글 크롬에서 내 테스트에서 완벽하게 작동하는 것 같다,하지만 난 경우 일부 브라우저에서 것을 두려워하기 때문에 사용하기 조금 긴장 my_var
이다 false
, 그것은 이후 첫 번째 경우를 실행할 수 있습니다 0 == false
.
나는 switch 문이 엄격한 비교를 사용할 것이라고 말하는 JavaScript의 공식이 있는지 궁금합니다 0 !== false
.하지만 직접 찾을 수 없으며 이것이 다른 JavaScript 엔진에서 잘 작동하는지 확실하지 않습니다. switch 문으로 수행 한 비교가 엄격하다는 것을 아는 사람이 있습니까?
답변
에서 봐 ECMA 262, 섹션 12.11 , 두 번째 알고리즘, 4.c.
씨. 입력이 === 연산자에 의해 정의 된 clauseSelector와 같으면 …
답변
http://qfox.nl/notes/110이 귀하의 질문에 답변합니다. (이 사람은 JavaScript의 핵심에 대해 많이 알고 있습니다.)
Javascript의 스위치는 엄격한 유형 검사 (===)를 사용합니다. 따라서 몇 가지 wtfjs를 방지하는 강제에 대해 걱정할 필요가 없습니다. :). 반면에 당신이 강압을 믿고 있다면 강요 할 수 없기 때문에 운이 좋지 않습니다.