type: of 와 instanceof 용법 수기

2578 단어
JavaScript 에서 type of instanceof 는 변수 가 비어 있 거나 어떤 유형 인지 항상 판단 합 니 다.하지만 그들 사이 에는 차이 가 있다.
1. typeof
type: of 는 하나의 원 연산 입 니 다. 하나의 연산 수 앞 에 놓 기 전에 연산 수 는 임의의 형식 일 수 있 습 니 다. 반환 값 은 문자열 입 니 다. 이 문자열 은 연산 자의 유형 type: of 는 일반적으로 다음 과 같은 몇 가지 결과 만 되 돌려 줍 니 다. "number", "string", "boolean", "object", "function", "undefined".
    
        var str = "hhhh";
        var num = 12334;
        var obj = {};
        var fn = function(){
            console.log(11111)
        }
        var arr = [];
        var boolea = false;
        var a = null;
        var b;
        //            string       number      object     function     object      boolean     object   undefined
        console.log(typeof str, typeof(num), typeof obj, typeof fn, typeof arr, typeof boolea, typeof a, typeof b)
    

즉, 우 리 는 type of 를 통 해 변수 가 존재 하 는 지 여 부 를 판단 할 수 있다.예컨대
if(typeof a!="undefined"){alert("ok")}

if (a) 를 사용 하지 마 십시오. a 가 존재 하지 않 으 면 잘못 보고 할 수 있 기 때 문 입 니 다.Array, Null 등 특수 대상 에 대해 type of of 를 사용 하여 일률적으로 object 를 되 돌려 주 는 것 이 type of 의 한계 입 니 다.
js 에 서 는 여러 이름 이 같은 input 와 같은 배열 을 자주 사용 합 니 다. 동적 으로 생 성 되면 제출 할 때 배열 인지 아 닌 지 를 판단 해 야 합 니 다.
if (document. my list. length! = "undefined") {} / / 이 용법 이 잘못 되 었 습 니 다.
정확 한 것 은 if (typeof (document. my list. length)! = "undefined") {}
if (! isNaN (document. mylist. length) {}
자 바스 크 립 트 에서 변 수 를 판단 하 는 유형 은 type: of 연산 자 를 자주 사용 합 니 다. 이 연산 자 를 사용 할 때 인용 형식 저장 치 를 사용 하면 문제 가 발생 합 니 다. 어떤 유형의 대상 을 인용 하 든 'object' 로 되 돌아 갑 니 다. 이때 instanceof 를 사용 해 야 합 니 다.
2. instanceof 는 특정한 대상 이 다른 대상 의 인 스 턴 스 인지 아 닌 지 를 검사 합 니 다. 즉, 하나의 대상 이 원형 체인 에 구조 함수 의 prototype 속성 이 존재 하 는 지 테스트 합 니 다.
문법: object (대상 을 검사 하려 면) instanceof constructor (특정한 구조 함수) 예 를 들 어 var a = new Array ();
alert(a instanceof Array); // true,
동시에 alert (a instanceof Object) / / true 로 돌아 갑 니 다.
Array 가 object 의 하위 클래스 이기 때 문 입 니 다.
또한: function test () {};
var a=new test();
alert (a instanceof test) 는 true 로 돌아 갑 니 다.
또한, 더 무 거 운 것 은 인 스 턴 스 of 가 상속 관계 에서 하나의 인 스 턴 스 가 부모 유형 에 속 하 는 지 여 부 를 판단 할 수 있다 는 것 이다.
예 를 들 면:
function foo () {} foo. prototype = new Aoo (); / JavaScript 원형 계승 var foo = new Foo (); console. log (foo instanceof Foo) / / true console. log (foo instanceof Aoo) / / true
위의 코드 에 서 는 상속 관계 의 부 류 를 판단 하 였 으 며, 다 층 상속 관계 에서 인 스 턴 스 of 연산 자 는 똑 같이 적용 되 었 다.

좋은 웹페이지 즐겨찾기