본문 바로가기

Face to something/javascript

function 의 scope관련/ 구구단문제

구구단 2단에서 9단까지 출력하는 스크립트를 구현해보는데,

아래와 같은 스크립트에서 문제가 생겼다.!

뭐가 잘못되었을까?


function printTimesTable(a){

    for( i = 1 ; i <= 9 ; i++ ){

        console.log( a + " * " + i + " = " + a*i );

       }

}


for( var i = 2 ; i <= 9 ; i++ ){

    printTimesTable(i);

}


printTimesTable메소드에서 i값이 2가 넘어가고,

printTimesTable메소드에 i 값을 10으로 바꾸고,

다시 for문을 돌리려니 조건에 맞지않아 for문이 돌지 않음!


그래서

아래와 같이 for구문에 var를 넣어

처음 수행한 i가 다음 for문에 이용되지 않도록 분리시켜줌으로써 문제를 해결했다.


function printTimesTable(a){

    for(var i = 1 ; i <= 9 ; i++ ){

        console.log( a + " * " + i + " = " + a*i );

       }

}


for( var i = 2 ; i <= 9 ; i++ ){

    printTimesTable(i);

}



'Face to something > javascript' 카테고리의 다른 글

JSON 이 뭐니?  (0) 2019.01.30
AJAX 의미와 기본 동작에 대하여..  (0) 2019.01.30