jQery의 각 메소드에는 해당 코드 분석이 있으며 아래 소개를 참조하세요.
isFunction 메서드
함수인지 테스트하는 데 사용되는 개체
예:
function stub() { } var objs = [ function () {}, { x:15, y:20 }, null, stub, "function" ]; jQuery.each(objs, function (i) { var isFunc = jQuery.isFunction(objs[i]); $("span:eq( " + i + ")").text(isFunc); })
실행 결과:
소스코드 분석:
// See test/unit/core.js for details concerning isFunction. // Since version 1.3, DOM methods and functions like alert // aren't supported. They return false on IE (#2968). isFunction: function( obj ) { return jQuery.type(obj) === "function"; },
우선 버전 1.3부터 버그가 있다는 점을 말씀드리자면, IE에서는 Alert와 같은 일부 DOM 메소드와 함수가 false를 반환하게 됩니다. 다시 작성하면 누군가가 인스턴스 오브 메소드를 사용하도록 제안했지만 ie6에는 여전히 문제가 있습니다. 아직까지는 이 버그가 해결되지 않았습니다. 자세한 내용은 공식 홈페이지의 버그 페이지를 참조하세요. 1.7.1 버전을 분석하고 있으므로 먼저 이 버전을 따르겠습니다. 반환 결과가 문자열 함수인지 확인
isArray 메소드
배열인지 테스트하는 데 사용되는 개체
예:
$("b").append( " + $.isArray([]) );//<b>true</b> isArray: Array.isArray || function( obj ) { return jQuery.type(obj) === "array"; },
isFunctoin과 같이 type 메소드의 반환 결과를 직접 사용
isNumeric 메서드
인수가 숫자인지 확인합니다.
$.isNumeric() 메서드는 인수가 숫자 값을 나타내는지 여부를 확인합니다. 그렇다면 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 매개변수는 모든 유형이 될 수 있습니다.
예:
$.isNumeric("-10"); // true $.isNumeric(16); // true $.isNumeric(0xFF); // true $.isNumeric("0xFF"); // true $.isNumeric("8e5"); // true (exponential notation string) $.isNumeric(3.1415); // true $.isNumeric(+10); // true $.isNumeric(0144); // true (octal integer literal) $.isNumeric(""); // false $.isNumeric({}); // false (empty object) $.isNumeric(NaN); // false $.isNumeric(null); // false $.isNumeric(true); // false $.isNumeric(Infinity); // false $.isNumeric(undefined); // false
소스코드 분석:
이 메소드는 Number 유형을 결정하지 않고 숫자처럼 보이는 유형을 결정합니다. 전달된 매개변수에 숫자가 포함되어 있으면 true를 반환합니다. 먼저, parsFloat 메소드를 사용하여 매개변수를 배열로 변환합니다. 이 메서드는 필터링을 위해 매개 변수의 숫자 부분을 유지합니다. 결과가 NaN이 아니고 최대값을 초과하지 않으면 true이고, 그렇지 않으면 false를 반환합니다
isWindow 메소드
창 개체인지 테스트하는 데 사용됩니다
<div class="codetitle"><span><a style="CURSOR: pointer" data="41657" class="copybut" id="copybut41657" onclick="doCopy('code41657')"><U>复制代码</U></a></span> 代码如下:</div><div class="codebody" id="code41657">isNumeric: function( obj ) { return !isNaN( parseFloat(obj) ) && isFinite( obj ); }, </div>
객체가 윈도우인지 판단하는 대략적인 방법입니다. 전달된 객체가 만족하고 setInterval 메서드가 있으면 해당 객체는 윈도우 객체로 간주됩니다. 이제 이 메서드를 변경하여 윈도우 객체인지 여부를 판단합니다. 창 개체에 대한 자세한 내용은 나중에 분석됩니다. 위 내용을 모두 재미있게 즐기시기 바랍니다.