>웹 프론트엔드 >JS 튜토리얼 >자바스크립트의 실행 효율성을 최적화하는 몇 가지 방법 요약

자바스크립트의 실행 효율성을 최적화하는 몇 가지 방법 요약

PHPz
PHPz원래의
2016-05-16 17:07:151217검색

이 장에서는 자바스크립트의 실행 효율성을 최적화하는 몇 가지 방법을 소개합니다. 개인적으로 꽤 좋다고 생각합니다. 관심 있는 친구가 더 자세히 알아볼 수 있습니다.

1. 낮은 버전의 브라우저(예: IE6) 등) 문자열을 연결할 때 배열의 조인 방법을 사용하는 것이 숫자를 사용하여 연결하는 것보다 훨씬 효율적입니다(예: ['aaa', 'bbb', 'ccc'].join()은 'aaa보다 효율적입니다. ' 'bbb' 'ccc');

2. 배열:

pop은 Shift보다 효율적이고 push는 unshift보다 효율적입니다. 이는 이진 힙 구조를 설계하는 데 중요합니다. 가장 큰 요소나 가장 작은 요소를 배열 끝에 배치하는 것이 가장 좋습니다.

3. 숫자를 반올림할 때는 시프트 연산을 사용하는 것이 가장 좋습니다:

1 >> 0;

4. 배열과 객체를 생성하려면 직접 수량을 사용하세요:

var a = []; 
var o = {};

5. 개체 계층 너무 많이 중첩하지 말고 개체 검색을 줄이세요.

e 개체를 얻기 위해 이 디자인 방법인 a.b.c.d.e를 사용하지 마세요.

6. 키-값 대응은 스위치 케이스보다 효율적입니다. 이 비교에 대한 기사를 읽을 수 있습니다.

7. jq를 사용하면 $('xxxx').empty().append('xxxxxxx')와 $('xxxxxx').html('xxxxx')가 비교됩니다. ; 결과는 다음과 같습니다.

$('xxxx').empty().append('xxxxxxx'); 기사 주소는 jQuery small experience입니다.

8. 🎜>

JavaScript에서는 for(;;), while(), for(in) 세 가지 유형의 루프를 사용할 수 있습니다. 이 세 가지 루프 중 for(in)은 쿼리를 수행해야 하기 때문에 매우 비효율적입니다. 해시 키는 가능한 한 적게 사용되어야 합니다. for(;;)와 while 루프의 성능은 기본적으로 동일합니다(일상적으로 사용하는 경우).

루프 변수가 증가하거나 감소하는 경우 마지막으로 읽을 때 루프 변수에만 값을 할당하지 마세요.

배열의 길이와 비교하고 싶다면 배열의 길이 속성을 미리 로컬 변수에 넣어서 쿼리 횟수를 줄여야 합니다.

9. 지역 변수와 전역 변수

전역 변수는 실제로 전역 객체의 멤버이고 지역 변수는 스택의 함수에 배치되기 때문에 전역 변수보다 더 빠르게 액세스됩니다.

10. Eval을 사용하지 않음

eval을 사용하는 것은 런타임에 콘텐츠를 실행하기 위해 해석 엔진을 다시 호출하는 것과 동일하므로 시간이 많이 걸립니다. 이때, 함수 템플릿은 자바스크립트에서 지원하는 클로저를 이용하여 구현할 수 있습니다. (클로저 내용은 함수형 프로그래밍 관련 내용을 참고하세요.)

11. 문자열을 추가하는 경우 s = s anotherStr 대신 s = anotherStr 연산을 사용하는 것이 가장 좋습니다.

12. 숫자를 문자열로 변환하고 "" 1을 사용합니다. 실제로는 약간 보기 흉하지만, this 성능 면에서 효율성이 가장 높습니다.

실제로는 아래의 "직접 수량"과 다소 비슷합니다. 사용자 작업보다는 컴파일 타임에 사용할 수 있는 내부 작업을 사용해 보세요. 런타임에 빠르게 사용됩니다.

("" +) > String() > .toString() > new String()
String()은 내부 함수이므로 매우 빠른 반면, .toString()은 프로토타입에서 함수를 쿼리하므로 정확한 복사본을 반환하는 데 new String()을 사용하는 것만큼 빠르지 않습니다. ;

13. 부동 소수점 숫자를 정수로 변환하는 것은 오류가 발생하기 쉽습니다. 실제로, parsInt()는 부동 소수점 사이가 아닌 숫자로 변환하는 데 사용됩니다. 숫자와 정수를 사용하려면 Math.floor() 또는 Math.round()를 사용해야 합니다.

14. 문자열 순회 연산

문자열에 대해 바꾸기, 검색 등의 루프 연산을 수행하려면 정규식을 사용해야 합니다. 왜냐하면 자바스크립트 자체의 루프 속도는 상대적으로 느리기 때문입니다. 연산은 C언어로 작성된 API이고 성능이 매우 좋습니다.

15.Timer

대상이 계속 코드를 실행하는 경우 setTimeout을 사용하면 안 되지만 setInterval을 사용해야 합니다. 사용된 . SetTimeout은 매번 타이머를 재설정해야 합니다.

위 내용은 이 장의 전체 내용입니다. 더 많은 관련 튜토리얼을 보려면
JavaScript 비디오 튜토리얼

을 방문하세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.