> 웹 프론트엔드 > JS 튜토리얼 > JavaScript에서 사용하지 않도록 일부 기능과 명령문을 요약합니다.

JavaScript에서 사용하지 않도록 일부 기능과 명령문을 요약합니다.

伊谢尔伦
풀어 주다: 2017-07-26 13:26:06
원래의
1324명이 탐색했습니다.

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 = [&#39;foo&#39;, &#39;bar&#39;], i; 
try { 
for (i = 0; i < object.length; i++) { 
// do something 
} 
} catch (e) { 
// handle exception 
}
로그인 후 복사


전역 변수 사용을 피하세요
함수나 다른 범위에서 전역 변수를 사용하는 경우 스크립트 엔진은 이를 찾기 위해 전체 범위를 탐색해야 합니다. 그들을.
글로벌 범위의 변수는 스크립트의 수명 주기 내내 존재하며, 로컬 범위의 변수는 로컬 범위가 손실되면 소멸됩니다.

느리게 실행되는 코드:

var i, 
str = &#39;&#39;; 
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 = &#39;&#39;; 
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿