자바는 특이하게도
c언어 타입(컴파일러 언어 계열)의 for 문과
python 타입(인터프리터 언어 계열)의 for문을 지원한다.

c언어 타입의 for문
for ([initial-expression]; [condition]; [final-expression])
   statement

[링크 : https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/for]

python 타입의 for..in 문
for (variable in object)
  statement

[링크 : https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Statements/for...in]


아래의 소스는 아직 문제가 있어 전체의 객체에 대해 출력을 하지 못한다. (참고용으로만 사용)
소스 결과
<html>
<script type="text/javascript">
document.write("<hr><H1>window</H1>");
for (i in window)
{
  if(typeof(window[i]) == 'object')
        document.write("<B>",i,"</B><br>");
  else  document.write(window[i], "<br>");
}
</script>
</html>

window

function getInterface() { [native code] }
window
document
navigator
netscape
function XPCSafeJSObjectWrapper() { [native code] }
function XPCNativeWrapper() { [native code] }
Components


신고

'Programming > javascript & HTML' 카테고리의 다른 글

javascript - alert() confirm() prompt()  (6) 2010.07.20
javascript 객체출력  (8) 2010.07.20
javascript - for / for .. in  (0) 2010.07.18
javascript - 변수 타입  (0) 2010.07.18
javascript template  (0) 2010.07.18
core javascript 문서  (2) 2010.07.18
Posted by 구차니

댓글을 달아 주세요

글쓸 꺼리를 준 친구 녀석에게 감사를 ㅋㅋ

간단하게 설명을 하자면,
for문을 돌릴때 어느 시점에서 증가가 이루어지고, ++연산자가 적용되는 시점, 그리고 연산자 우선순위 대한 문제이다.
(개인적으로 이런 문제 싫어 한다. 가독성 지랄 같이 하면 다른 사람이 어떻게 수정하라고 ㄱ-)
아무튼 for문의 ([초기화];[조건];[증가]) 에서 증가문은 마지막 닫히는 } 부분에서 증가가 이루어 지고,
이로 인해서 더해지는 값이 달라지는 현상이 발생이 되게 된다.
65짜리는 2에서 11 까지 더하게 되고
55짜리는 1에서 10 까지 더하게 된다.

같은 i < 11 조건이지만,
증가되고 더해지고, 더해지고 증가됨의 차이가 있기 때문에 결과는 55와 65로 벌어지게 된다.


원본 코드 - 결과 65 짜리
sum = 0 ;
i = 1 ;
for( ; i<11 ;)
    sum += ++i ;

변형된 코드 1 - for문에 초기화 넣어줌
for(sum = 0,i=1;i<11;)
    sum += ++i;

변형된 코드 2 - while문으로 변형
sum = 0 ;
i=1;
while(i<11)
{
    sum += ++i;
}
변형된 코드 3 - goto문으로 변형
sum = 0 ;
i = 1;
while_loop:
{
    if(i<11) ;
    else break;

    ++i;
    sum += i;
}
goto while_loop:

원본 코드 - 결과 값 55 짜리
sum = 0 ;
i = 1 ;
for( ; i<11 ; ++i)
sum += 1 ;

변형된 코드 1 - for문에 초기화 넣어줌
for(sum = 0,i=1;i<11;++i)
    sum += 1;


변형된 코드 2 - for문에 초기화 넣어줌
sum = 0 ;
i=1;
while(i<11)
{
    sum += 1;
    ++i;
}

변형된 코드 3 - goto문으로 변형
sum = 0 ;
i =1;
while_loop:
{
    if(i<11) ;
    else break;

    sum += 1;
    ++i;
}
goto while_loop:
신고
Posted by 구차니

댓글을 달아 주세요