문자열이나 배열 (또는 길이 속성이 다른 것) 반복, 난 항상 이런 루프를 사용했습니다 :JavaScript에서는 문자열/배열 .length 속성이 처리를 수행합니까?
var foo = [...];
var fooLen = foo.length;
var i;
for(i=0; i<fooLen; i++) {
// do something
}
그러나
var foo = [...];
var i;
for(i=0; i<foo.length; i++) {
// do something
}
을, 난 그냥 이런 짓을 누군가가 발생
그는 ".length"가 길이를 다시 계산한다고 생각하여 루프는 문자열/배열의 길이를 계속해서 다시 계산할 것이므로 길이를 변수에 저장하면 더욱 최적화됩니다.
길이가 사용 된 방식 (길이가 "asdf".length()
이 아닌, "asdf".length
)으로 인해 항상 값 속성이라고 가정했는데이 경우가 아닙니까?
관련 정보 : http://stackoverflow.com/questions/5752906/is-reading-the-length-property-of-an-array-really-that-expensive-an-operation-i – user113716
' for (var i = 0, len = foo.length; i
nnnnnn
부수적으로, 속성이 구문 적으로 함수로 사용되지 않았다고해서 그것이 동적이지 않다는 것을 의미하지는 않습니다. 가장 불명예스러운 것은'innerHtml'입니다.이 HTML은 값으로 취급되지만 실제로 할당 된 경우 브라우저의 HTML 컴파일러를 호출합니다. – slebetman