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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

뜨거운 주제



