>  기사  >  웹 프론트엔드  >  javascript for loop는 성능을 향상시킵니다_javascript 팁

javascript for loop는 성능을 향상시킵니다_javascript 팁

WBOY
WBOY원래의
2016-05-16 18:33:571091검색

일반적으로 자바스크립트에서 배열을 순회할 때 다음과 같은 for 루프를 사용하는 것이 일반적입니다.

코드를 복사하세요 코드는 다음과 같습니다. 다음:

var arr = [];
for(var i=0; i//loop
}

이 코드의 가장 큰 문제는 반복될 때마다 .operator를 통해 .length를 얻어야 하므로 오버헤드가 증가한다는 것입니다. 그러면 우리는 이렇게 발전할 수 있습니다.
코드 복사 코드는 다음과 같습니다.

var arr = []; for(var i=0, n=arr.length; i//loop
}

이런 방식으로 먼저 arr.length를 임시로 저장합니다. n 변수는 이동합니다. 처음에 한 번만 받으세요.
근데 이거 괜찮나요? 의미없는 변수 n이 추가로 정의된 것 같습니다. 좋아요, 그럼 계속해서 개선해 보세요.

코드 복사 코드는 다음과 같습니다.
var arr = [];
for(var i=arr.length-1; i > -1; i--){
//loop
}

알겠습니다. 이것을 반복해 보겠습니다. 순서를 반대로 하고 n을 제거하고 상수 -1을 사용합니다.
애플리케이션 시나리오에서 for 루프를 사용할 수 없는 경우.
대신 while을 사용하면 이 두 루프문을 잘 활용하여 자바스크립트의 효율성을 높일 수 있습니다.

코드 복사 코드는 다음과 같습니다.
var arr = []; var i= arr.length-1;
while(i--){
//loop arr[i]
}


또는


var arr = []
var i=arr.length- 1;
do {
// loop arr[i]
}while(--i)


이렇게 하면 특히 루프의 경우 코드가 더 간단하고 효율적입니다. body는 한 번만 실행될 수 있습니다. 다음으로 do while을 사용한 효과는 분명합니다.
유일한 문제는 i를 루프 밖으로 이동하는 것입니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.