자바 스크립트를 효율적으로 개발 하는 방법에 대 한 이야기

출처: 인터넷
작성자: 사용자

중간 트랜잭션 http://www.aliyun.com/zixun/aggregation/6858.html "> seo 진단 Taobao 게스트 클라우드 호스트 기술 홀

단순화 된 코드

짧은 문구와 함께 뿐만 아니라, 입력 문자 수를 줄일 수 있습니다 하지만 파일 크기를 줄일 수도 있습니다. 대부분 간단한 코딩을 사용 하는 코드의 구현의 효율은 약간 향상.

1.1 일반적인 개체 정의 단순화:

사용 하 여 var obj = {}; 대신 var obj = 새로운 개체 ();

Var arr 사용 =; 대신 var arr = 새로운 배열 ();

1.2 유선형된 if 문

삼항 연산자 효과적으로 if를 간소화할 수 있습니다 같은 작업 배정 값만 포함 하는 문을

var 점수 = 등급;

경우 (< 60 점수) 없음

학년 = "실패";

그 밖에 없음

학년 = "통과";

}

간소화 될 수 있습니다.

var 점수 = 60;

var 학년 = < 60 점수? "실패": "통과";

삼항 연산자는 또한 중첩을 지원 하지만 너무 많은 중첩 수준을 프로그램의 가독성에 영향을 미칠 수 있습니다.

1.3 JSON을 사용 하 여

JSON은 가벼운 데이터 형식, 그리고 경량 매우 간단한 구조 정의에 먼저 구현 됩니다.

var obj = {};

OBJ.P1 = 'a';

OBJ.P2 = 'B';

OBJ.P3 = 'C';

간소화 될 수 있습니다.

var obj = 없음

P1: ' A ',

P2: 'B',

P3: ' C '

};

두 번째, 효율적인 코드를 사용 하 여

인터넷에 유통 효율 최적화 기사를 많이 있으며 보다 전문적인 자바 스크립트 책 중 일부 되었습니다에 대해 얘기, 그래서 여기에 대 한 얘기를 그냥 몇 가지.

2.1 순환 시체를 간소화

루프의 효율성 주로 루프 본문 및 차이 의해 결정를 위한 또는 잠시 너무 작습니다. 그룹 요소에 이벤트를 추가 하는 다음 코드를 고려 하십시오.

함수 addevent (Elems, EventName, 처리기) 없음

대 한 (var 나 = 0, len elems.length = 내가 < 렌; i + +) 없음

경우 (window.attachevent) 없음

[I] Elems.attachevent ("에" + EventName, 처리기);

다른 면 (Window.addeventlistener) 없음

Elems [i].addeventlistener (EventName, 처리기, false);

}

}

}

루프가 실행 될 때마다 여부 attachevent 또는 window 개체의 AddEventListener 존재 하지만 그것은 충분히 판단 한 번, 더하여,의 문자열 연결을 확인 합니다 ""에 "+ EventName" 반복 됩니다. 최적화는 다음과 같습니다.

함수 addevent (Elems, EventName, 처리기) 없음

var i = 1, len = elems.length;

경우 (window.attachevent) 없음

EventName = "on" + eventName;

동안 (+ + 내가 < Len) 없음

Elems [i].attachevent (EventName, 처리기);

}

다른 면 (Window.addeventlistener) 없음

동안 (+ + 내가 < Len) 없음

Elems [i].addeventlistener (EventName, 처리기, false);

}

}

}

2.2 네이티브 함수를 사용 하 여 사용자 지정 함수 대신 하려고

자바 기본 제공 형식 변수에 대 한 작업을 수행할 때 먼저 작업 기본 방법에 있는지 확인 해야 합니다.

배열 복사본을 생성 하 시겠습니까? 그것은 배열 요소를 반복 하 고 다른 배열에 할당 하는 유일한 방법은 될 것으로 보인다. 사실, 원래 Array.prototype.slice 복제의 목적을 달성할 수 있다. 이 메서드는 배열에서 원본 배열에 영향을 주지 않고 선택한 요소를 반환할 수 있습니다. 인수는 비워 두면, 모든 요소가 반환 됩니다.

Array.prototype.slice는 배열 및 인수 등 숫자 인덱스를 통해 액세스할 수 있는 형식에도 작동할 수 있습니다.

기능 테스트 () 없음

경고 (Array.prototype.slice.call (인수));

}

테스트 (1, 2, 3); 출력 "1, 2, 3

파이어 폭스에서 htmlcollection에도 동작할 수 있다. 불행히도, 하지에 IE.

또 다른 예가입니다 배열 순서, 일반적으로, 우리는 네이티브 Array.prototype.sort와 다른 정렬 알고리즘을 쓸 필요가 없습니다 충분 한. Sort 메서드는 두를 결정 하는 함수는 하나의 매개 변수 요소 비교의 11 2 전에 평가 될 것 이다와 같은 문자 순서에 의해 정렬 됩니다. 숫자 크기를 사용 하 여 정렬 하려면이 작성할 수 있습니다.

var arr = [11, 2, 0, 12, 33].

Arr.sort (

함수 (A, b) 없음

a-b; 반환

}

);

또한 개체의 특성으로 정렬할 수 있습니다.

var arr [=

{id: 11,

{id: 0}

id: 22

];

Arr.sort (

함수 (A, b) 없음

a.id-b.id; 반환

}

);

2.3 배열을 반복합니다

배열 형식, 그것을 스스로 할 수 있다 반복 되는 배열 요소를 죽 일 하려면 반복 하는 방법을 제공 하지 않습니다.

함수 없음; 고유 (arr)

var 결과 =, isrepeated;

대 한 (var 나 = 0, len arr.length = 나 < 렌; i + +) 없음

isrepeated = false;

대 한 (var j = 0, Len result.length J = < Len; J + +) 없음

경우 (arr [i] Result[j]) 없음 = =

Isrepeated = true;

휴식;

}

}

만약 (! isrepeated) 없음

Result.push (Arr[i]);

}

}

반환 결과;

}

전반적인 아이디어는 다른 배열, 직접 던져 경우 요소 중복 여부를 확인 하는 처리 과정에는 배열 요소를 이동 하는 것입니다. 그것은 볼 수 있습니다 중첩된 루프에서이 메서드는 매우 효율적. 우리가 우리 내부 루프를 피할 수 있도록 기존 요소를 기록 하는 Hashtable 구조를 사용할 수 있습니다. 정확 하 게, Hashtable을 구현 하는 자바 스크립트에서는 매우 간단 하 고, 다음과 같습니다.

함수 없음; 고유 (arr)

var 결과 해시 = = {};

대 한 (var i = 0, elem; (Elem = arr[i])! = null; i + +) 없음

만약 (! hash[elem]) 없음;

Result.push (Elem);

해시 [elem] = 진정한;

}

}

반환 결과;

}

셋째, 코드를 읽기 쉽게, 더 나은 유지 보수

명확 하 고 읽을 수 있는 코드를 유지 수 수정 코드 빠르고 더 정확 하 게, 개발에서 및 개발 후.

3.1 연결 HTML 문자열

친구의 프런트 엔드 개발이이 고문 으로부터 고통을 생각: 증오 단일 인용 부호에 의해 HTML을 연결할 때 큰따옴표 현기증 얻을. 예를 들면:

element.innerhtml = ' + 텍스트 + ';

이 기능을 서식 지정 하는 문자열을 설명 합니다.

String.Format (str) 함수 없음 =

var args = 인수, 다시 새로운 RegExp = ("% ([1-" + Args.length + "])", "G");

반환 문자열 (str). (교체

다시,

($) 함수 없음

반환 args [$2];

}

);

};

메서드를 호출 하는 것은 간단 하다:

element.innerhtml = String.Format ('%3', URL, 메시지, 텍스트);

% N n 번째 매개 변수를 대체 하는 의미가입니다. 너무 많은 명확.

3.2 만들 프로그램에 대 한 설정 구성 개체

자바 또는 C# 프로그램을 작성 하는 때 우리가 일반적으로 XML에서 프로그램의 구성 정보를 읽어보십시오. 자바 스크립트, xml에서 구성 정보 비용, 한 손으로 XML 개체에는 XML 파일 또는 XML 문자열을 요청, 다른 한편으로, XML 개체의 메서드는 더 복잡 하 고 긴. 간단한 JSON은 최선의 선택 이다.

프로그램에서 상수 두어야 한다 AJAX 요청에 대 한 Url 등의 설정 구성 개체에는 작업에에 대 한 힌트와 같은:

var 구성 없음 =

Ajaxurl: "Test.jsp",

완전 한 Successtips: "요청"

};

구성 수가 큰 경우에, 같은 구성 종류에 따라 하나의 레이어를 중첩 시킬 수 있습니다.

var 구성 없음 =

홈페이지: 없음

SRC1: "Test1.jsp",

S r c 2: "Test2.jsp",

.

.

},

팁: 없음

SRC1SUC: "1 요청 완료",

SRC2SUC: "2 요청 완료",

.

.

}

};

구성 쉬운 보기 및 수정에 대 한 프로그램의 앞에 배치 되어야 합니다.

자료 출처: http://bbs.seuuo.com/html/13/category-catid-13.html

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.