-
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 을 순회할 때 ) 속도 향상을
가져 올 수 있다.
(끝)
'Javascript' 카테고리의 다른 글
ES6 2부 - Arrow function, 객체 리터럴 , 2진수, 8진수 (0) 2016.08.18 ES6 1부 - let , const , 배열과 객체 (1) 2016.08.17 Angular.js 의 작동원리 (1) 2016.06.27 프로토타입 (Prototype) 1부 (0) 2016.06.13 클로저 (closure) (3) 2016.05.30