ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • javascript 에서 for loop 를 사용할 때
    Javascript 2016. 6. 26. 14:53





    Javasciprt 코드 작성 중 for loop 문을 작성할 때 일반적인 패턴은 다음과 같다. 



     for ( var i = 0; i < myarray.length; i++)
    {
         // myarray[i] 를 구현하는 함수 
    } 
    
    


    여기서 문제점은 loop 를 순회할 때 마다 배열의 length 에 접근 한다는 것 이다. 


    myarray 가 배열이 아니라 HTMLcollection 이라면 더욱 문제가 된다. 


    예를 들어 


    document.images ,      document.links


    dociment.forms,          document.form[0].element 등을 for loop 문에 사용한다면 


    HTML 페이지에 실시간으로 질의를 요청하는데 , DOM 접근은 일반적으로 비용이 크다. 



    따라서 for loop 를 최적화 하기 위해서는 다음과 같이 배열의 length 를 캐시해서 사용해야 한다.


    for (var i=0, max = myarray.length; i < max; i++) 
    {
        // myarray[i] 를 다루는 코드
    }
    


    이처럼 length 에 접근하여 for loop 문을 사용할 때는 max 변수에 length 값을 캐시해 두면 length 값을 


    한번만 구하고 , 루프를 도는 동안 이 값을 사용하게 된다. 


    이런식으로 코드를 구성하면 브라우저에서 처리 할 때 (특히 HTML collection 을 순회할 때 ) 속도 향상을 


    가져 올 수 있다. 





    (끝)



    댓글