개인 적 으로 중요 하 다 고 생각 하 는 자 바스 크 립 트 프로 그래 밍 기법 9 가 지 를 공유 합 니 다.

5505 단어
1. 교묘 한 판단:
  js 에서 NaN, undefined, Null, 0, "" bool 로 전환 할 때 false 이기 때문에 이렇게 쓸 수 있 습 니 다.
 
  
if(!obj)  {}

대상 이 false 일 때 하 는 일 을 표시 합 니 다. obj 가 이상 이면 false 이기 때 문 입 니 다!false 는 true 입 니 다. 그러면 if (obj = null | obj = = NaN...) 가 필요 없습니다.
2. 교묘 한 연산 자:
   타임 스탬프 를 받 는 전형 적 인 기술 이 있다.
 
  
var dataspan = new Date()*1;

js 는 약 한 유형의 언어 로 Date () 는 시간 을 나타 내 는 문자열 을 되 돌려 줍 니 다. 이 문자열 로 산술 연산 을 하면 결과 의 시간 스탬프 로 변 환 됩 니 다.
3. 정규 표현 식 사용 하기:
 
  
/.a/ig.exec('xsas')
// reg , exec , , :test(),match() 。

4. 배열 의 최대 값 과 최소 값 을 가 져 옵 니 다.
 
  
var values = [1,2,3,40,23];
var max = Math.Max.apply(Math,values);

Max. apply 를 호출 하여 대상 을 Math 로 설정 한 다음 Values 를 전달 하면 최대 치 를 확인 할 수 있 습 니 다.
5. 메모리 최적화:
 
  
function p(){this.p='moersing'}; var p1 = new p(); 
   p1.xx
   p1.xx
   .......
   p1=null;  // , p1 。

6. 가장 인기 있 는 생 성 대상 방식 (원형 모드):
 
  
function c(){
    this.name ='moersing';
    this.age=18;
    this.books=['javascript develop','C# develop'];
  }
  c.prototype={
       displayBookName:function (){
        foreach(var t in this.books)
        {
           document.write(this.books[t]);
        }
    }
}

원형 구조 모델 의 가장 큰 단점 은 인용 유형의 공유 에 있 기 때문에 인용 유형 을 구조 함수 에 정의 하고 일반적인 방법 을 원형 에 정의 하 며 this 인용 을 사용 합 니 다.
7. 블록 급 역할 영역 과 개인 변수
    javascript 에 서 는 블록 급 역할 영역 과 개인 변수 라 는 말 이 없 지만 일부 특성 을 이용 하면 이러한 효 과 를 모방 할 수 있 습 니 다.
7.1 블록 급 역할 영역:
 
  
(function(){
      //
}
)();

    익명 함수 에 괄호 를 하나 더 하면 나 는 그것 을 '함수 표준화' 라 고 부른다. 즉, 표준 함수 처럼 호출 할 수 있다. 예 를 들 어:
 
  
 var name =function(){};
(name)();// ;

이렇게 하 는 장점 은 () 외부 에서 함수 의 변 수 를 방문 할 수 없고 블록 급 역할 영역 이 되 는 것 입 니 다. 이런 방식 은 보통 플러그 인 을 작성 할 때 전역 (global) 에 추가 변 수 를 추가 하지 않 습 니 다. 또한 함수 가 실 행 된 후에 내부 에서 정 의 된 변 수 는 삭제 되 기 때문에 패 킷 특성 에 문제 가 없 을 것 입 니 다.
7.2 개인 변수:
 
  
function private()
 {
   var name = 'moersing';
   this.getName = function(){
   return this.name;
   }
}

개인 변 수 는 실제 적 으로 함수 의 역할 도 메 인 을 제한 (외부 에 접근 할 수 없 음) 으로 한 가지 방법 을 정의 하 는 것 입 니 다. 이 방법 은 해당 하 는 변 수 를 되 돌려 주 는 것 입 니 다. 이것 뿐 입 니 다.
8. DOM 의 NodeList:
   nodeList 는 동적 요소 입 니 다. 이 는 문서 에 모든 요 소 를 추가 하면 nodeList 는 실시 간 으로 업 데 이 트 됩 니 다. 예 를 들 어:
 
  
var alldiv = document.getElementsByTagName('div');
    for(var i=0;i     {
        var div = document.createElement('div');
        div.innerHTML= i.toString();
        document.body.appendChild(div);
    }

이 코드 는 무한 순환 을 일 으 킬 수 있 습 니 다. 순환 에서 div 를 만 든 다음 appendChild 방법 으로 body 에 추가 하면 모든 alldiv 가 즉시 업 데 이 트 됩 니 다. 그래서 i.
 
  
var alldiv = document.getElementsByTagName('div');
    var len,i;
    for(i=0,len=alldiv.length;i     {
        var div = document.createElement('div');
        div.innerHTML= i.toString();
        document.body.appendChild(div);
    }

이 제안: NodeList 작업 을 자주 하지 않 는 것 이 좋 습 니 다. 매번 DOM 트 리 에 대한 조 회 를 실행 하기 때 문 입 니 다.
  위 에서 소개 한 방법 을 제외 하고 HTML 5 에 새로 가입 한 API (selector API Level 1) 도 이 문 제 를 해결 할 수 있 습 니 다. C \ # 의 linq 와 유사 하여 제때에 조회 할 수 있 습 니 다. linq 가 무엇 인지 에 대해 서 는 즉시 조회 할 수 있 습 니 다. 나중에 블 로 그 를 업데이트 하 겠 습 니 다. 관심 을 가 져 주 십시오.
 
  
var allDiv= document.querySelectorAll('div');
    for(var i=0;i     {
        var div = document.createElement('div');
        div.innerHTML= i.toString();
        document.body.appendChild(div);
    }

   query Selector All 은 jquery 의 $() 와 같은 인자 가 필요 합 니 다. NodeList 는 적시에 비 동적 인 DOM 집합 입 니 다.
   또 하나의 query Selector 가 있 습 니 다. 일치 하 는 첫 번 째 요 소 를 되 돌려 줍 니 다. HTML 5 API 에 대한 자세 한 내용 은 다음 과 같 습 니 다.
http://www.w3.org/standards/techs/dom#w3c_all
혹은
 https://developer.mozilla.org/zh-CN/docs/Web/API
또한, 본인 도 HTML 5 API 를 전문 으로 하 는 블 로 그 를 준비 하고 있 습 니 다. 주목 해 주 십시오.
9. DOM 성능:
    이런 바보 짓 하지 마.
 
  
for(var i=0;i<10;i++)
    {
       document.querySelector('ul').innerHTML="
  • "+i+"
  • ";
        }

    대상 의 innerHTML 에 값 을 부여 하면 내 장 된 C + + 해상도 기 를 호출 하여 이 문자열 을 해석 합 니 다. 속도 가 빠 르 지만 이렇게 조작 하지 않 는 것 이 좋 습 니 다. 일정한 성능 이 유 실 됩 니 다.
    가장 좋 은 것 은 이렇게 하 는 것 이다.
     
      
    var ih=null;

    for(var i=0;i<10;i++)
     {
        ih+="

  • "+i+"
  • ";
     }
      document.querySelector('ul').innerHTML=ih;

    또 다른 성능 최적화 화 제 는 시간 이 있 으 면 다시 업데이트 한다.
    이상 에서 말 한 것 이 바로 본문의 전체 내용 이 니 여러분 들 이 좋아 하 시 기 를 바 랍 니 다.

    좋은 웹페이지 즐겨찾기