>  기사  >  웹 프론트엔드  >  일반적인 JavaScript 팁_javascript 팁 요약

일반적인 JavaScript 팁_javascript 팁 요약

WBOY
WBOY원래의
2016-05-16 16:23:411115검색

머리말

최근에 접한 JavaScript 구문 설탕을 요약하고 모든 사람과 공유합니다.

각 사탕에는 자세한 설명과 예시가 있으므로 자세히 설명하지는 않겠습니다.

정확한 유형 확인

코드 복사 코드는 다음과 같습니다.

/*
* @함수:
* 유형 확인 예시
* 이 방법을 통해 변수가 예상한 데이터 타입인지 확인할 수 있습니다
* @params:
* 확인할 obj 변수, 필수
* 구성 데이터 유형 화이트리스트, 선택 사항, 기본값은 모든 유형
* @return:
* true는 검사가 통과되었음을 의미하고 false는 실패를 의미합니다
* @예:
* typeCheck("str"); //참을 반환합니다
* typeCheck({},{"[객체 배열]": 1}) //false 반환
*/
함수 typeCheck(obj,config){
var hasOp = Object.prototype.hasOwnProperty,
        toStr = Object.prototype.toString,
​​​​ _config = 구성 {
"[개체 개체]": 1,
"[객체 배열]": 1,
"[객체 정규식]": 1,
"[객체 문자열]": 1,
"[개체 번호]": 1,
"[객체 부울]": 1,
"[객체 함수]": 1,
"[객체 정의되지 않음]": 1,
"[개체 Null]": 1
};

반환 hasOp.call(_config,toStr.call(obj));
}

프로토타입을 추가하는 우아한 방법

코드 복사 코드는 다음과 같습니다.

/*
* @설명:
* 프로토타입을 추가하는 우아한 방법
* 공개 범위에서 이 코드 조각을 실행하세요
*/
if(typeof Function.prototype.method !== "함수") {
Function.prototype.method = 함수(이름,fn){
This.prototype[이름] = fn;
이것을 돌려주세요;
};
}
/*
* 사용예
*/
//"테스트 클래스" 정의
함수 testFn(){
}
//테스트 클래스의 멤버 메소드 추가
testFn.method("추가",function(a,b){
b를 돌려주세요;
}).method("sub",function(a,b){
a - b 반환;
});
//인스턴스화
var testObj = new testFn();
//멤버 호출 방법
testObj.add(1,5); //6을 반환
testObj.sub(7,2); //5를 반환

네임스페이스를 빠르게 생성

코드 복사 코드는 다음과 같습니다.

/*
* @함수:
* 네임스페이스 생성
* @params:
* ex 네임스페이스 표현식(예: NSROOT.service.impl
) * 이 표현은 루트 노드부터 작성해야 합니다
* @return:
* 객체를 반환합니다. 이 객체는
표현식의 마지막 노드입니다. * @others:
* NSROOT라는 이름이 마음에 들지 않으시면 검색해서 바꾸시면 됩니다
*/
var NSROOT = NSROOT || NSROOT.namespace = 함수(예){
var _ex = ex || "",
​ nsArray = _ex.split("."),
parentNode = NSROOT,
​​​ _s = "",
나는 = 0;
//네임스페이스가 루트 노드에서 시작하는지 확인
if(nsArray[0] !== "NSROOT"){
          throw("네임스페이스는 루트 노드에서 시작해야 합니다!");
}
//루트 노드 제거
nsArray = nsArray.slice(1);
for(i = 0;i _s = nsArray[i];
If(부모 노드[_s] === 정의되지 않음){
        parentNode[_s] = {};
}
parentNode = parentNode[_s];
}
parentNode를 반환합니다.
};
/*
* 사용예
*/
//새 네임스페이스 생성
var impl = NSROOT.namespace("NSROOT.service.impl");
Alert(impl === NSROOT.service.impl); //참을 반환합니다
//원본 데이터를 덮어쓰지 않고 기존 네임스페이스 생성
NSROOT.namespace("NSROOT.service.impl");
Alert(impl === NSROOT.service.impl); //참을 반환합니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.