eval 또는 함수 생성자를 사용하지 마세요
eval 또는 함수 생성자를 사용하는 것은 매우 비용이 많이 들고, 매번 소스 코드를 실행 가능한 코드로 변환하는 스크립트 엔진이 필요합니다.
또한 문자열을 처리하기 위해 eval을 사용하는 것은 런타임에 해석되어야 합니다.
느리게 실행되는 코드:
function addMethod(object, property, code) { object[property] = new Function(code); } addMethod(myObj, 'methodName', 'this.localVar=foo');
더 빠르게 실행되는 코드:
function addMethod(object, property, func) { object[property] = func; } addMethod(myObj, 'methodName', function () { 'this.localVar=foo'; });
with 사용을 피하세요
편리하지만 with는 컴파일 타임에 범위가 지정되지 않기 때문에 추가 조회 시간이 필요합니다. 위 또는 아래가 없습니다.
느리게 실행되는 코드:
with (test.object) { foo = 'Value of foo property of object'; bar = 'Value of bar property of object'; }
더 빠르게 실행되는 코드:
var myObj = test.object; myObj.foo = 'Value of foo property of object'; myObj.bar = 'Value of bar property of object';
성능 요구 사항이 중요한 기능에서는 try-catch-finally를 사용하지 마세요.
try-catch-finally in 런타임은 문 실행 시 예외를 할당하기 위해 매번 현재 범위에 새 변수를 만듭니다.
예외 처리는 루프 본문 외부와 같이 예외가 자주 발생하지 않는 스크립트의 높은 수준에서 수행되어야 합니다.
가능하다면 try-catch-finally를 완전히 사용하지 마세요.
느리게 실행되는 코드:
var object = ['foo', 'bar'], i; for (i = 0; i < object.length; i++) { try { // do something that throws an exception } catch (e) { // handle exception } }
더 빠르게 실행되는 코드:
var object = ['foo', 'bar'], i; try { for (i = 0; i < object.length; i++) { // do something } } catch (e) { // handle exception }
전역 변수 사용을 피하세요
함수나 다른 범위에서 전역 변수를 사용하는 경우 스크립트 엔진은 이를 찾기 위해 전체 범위를 탐색해야 합니다. 그들을.
글로벌 범위의 변수는 스크립트의 수명 주기 내내 존재하며, 로컬 범위의 변수는 로컬 범위가 손실되면 소멸됩니다.
느리게 실행되는 코드:
var i, str = ''; function globalScope() { for (i=0; i < 100; i++) { str += i; // here we reference i and str in global scope which is slow } } globalScope();
더 빠르게 실행되는 코드:
function localScope() { var i, str = ''; for (i=0; i < 100; i++) { str += i; // i and str in local scope which is faster } } localScope();
성능 요구 사항이 중요한 함수에서는 for-in 사용을 피하세요.
for-in 루프에서는 스크립트 엔진이 모든 코드 목록을 작성해야 합니다. 열거 가능 속성 목록을 해제하고 이전 속성과 중복되는지 확인합니다.
for 루프 범위의 코드가 배열을 수정하지 않는 경우 배열 길이를 미리 계산하고 이를 사용하여 for 루프에서 배열을 반복할 수 있습니다.
느리게 실행되는 코드:
var sum = 0; for (var i in arr) { sum += arr[i]; }
더 빠르게 실행되는 코드:
var sum = 0; for (var i = 0, len = arr.length; i < len; i++) { sum += arr[i]; }
위 내용은 JavaScript에서 사용하지 않도록 일부 기능과 명령문을 요약합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!