말없이 코드 보기:
var i=arr.length ;
while(i--)
{
//뭔가를 쓰시겠습니까?
}
위는 Google
array.js 가 개선을 제안하는 프로그램의 코드입니다. 왜 i가 0일 때 while 루프가 끝나는지 생각해 보세요.
다음 코드는 이에 해당합니다.
var i=arr.length;
for(;i--;)
{
//i--가 세미콜론 두 개 사이에 적혀 있는데 이상하지 않나요? 이상하지 않나요?
}
놀랐나요? 느껴지지 않나요?
으윽. 보통 두 세미콜론 사이에는 무엇을 쓰나요? "상식"에 따르면 i--는 두 번째 세미콜론 뒤에 와야 합니다. 그럼 C 언어 코드를 살펴보겠습니다.
int main( )
{
int i = 5
while(i--)
{
printf("%d ", i)
} 🎜>while(1) ;
return 0;
}
실행 결과도 놀랍게도 JavaScript와 일치합니다!
알겠습니다. 이유를 모르겠어요? 우리는 값 0이 부울 값으로 변환되어 false라는 것만 알고 있습니다.
var i= !!0
및 기타 값은 부울 값으로 변환되어 true입니다. . 위의 예제 프로그램 코드는 숫자 값을 부울 값으로 명시적으로 변환한 것입니다.
0이 암시적으로 false로 변환되는 경우 다음 JS 프로그램을 사용하여 테스트하십시오.
var i=0;
if(i)
{
alert('if')
}
else{
alert( 'else');
}
alert('if 및 else 프로그램이 무엇이든 여기에 가야 합니다.')
if 이 예제 코드는 전혀 "실용적인" 방식으로 작성되지 않았습니까? 다음은 Tudou.com 프런트 엔드 개발 전문가의 코드 샘플 스니펫입니다.
var obj = {status:0, msg:'xxxx'}
var data = obj.status || 'xxxx'
이것은 항상 "숨겨져" "예!"
다시 강조합니다. 값 0을 false의 부울 값으로 암시적으로 변환하는 것은 if(), while() 및 for(;;) 조건식의 두 세미콜론 사이의 부울 결정에 의해 결정됩니다.