JS_javascript 기술에서 typeof와 instanceof의 차이점 요약

WBOY
풀어 주다: 2016-05-16 17:15:27
원래의
898명이 탐색했습니다.

JavaScript에서는 변수가 비어 있는지 또는 어떤 유형인지 확인하기 위해 typeof 및 instanceof를 사용하는 경우가 많습니다. 하지만 여전히 차이점이 있습니다.

유형

typeof는 피연산자 앞에 배치되는 단항 연산이며 피연산자는 모든 유형이 될 수 있습니다.

반환 값은 피연산자의 유형을 설명하는 문자열입니다. typeof는 일반적으로 다음 결과만 반환할 수 있습니다.

숫자, 부울, 문자열, 함수, 객체, 정의되지 않음. if(a)를 사용하는 대신 if(typeof a!="undefine"){alert("ok")}와 같이 변수가 존재하는지 여부를 확인하기 위해 typeof를 사용할 수 있습니다. ), Array 및 Null과 같은 특수 개체의 경우 typeof는 항상 개체를 반환합니다. 이것이 typeof의 제한 사항입니다.

인스턴스

인스턴스: 인스턴스, 예시

b?alert("true"):alert("false")의 인스턴스입니다. //a는 b의 인스턴스입니까? 참:거짓

instanceof는 변수가 객체의 인스턴스인지 확인하는 데 사용됩니다. 예를 들어 var a=new Array();alert(astanceofArray)
는 true를 반환하고, Alert(ainstanceofObject)는 또한 true를 반환합니다. 이는 Array가
객체의 하위 클래스이기 때문입니다. 또 다른 예: function test(){};var a=new test();alert(instanceof test)는

를 반환합니다.

instanceof 얘기가 나와서 말인데, 함수의 인수라는 문제를 하나 더 추가해야 합니다. 우리는 모두 인수가
배열이라고 생각할 수 있지만, instanceof를 사용하여 테스트해 보면 인수가 배열이 아니라는 사실을 알 수 있습니다. 매우 비슷해 보이지만 배열 객체입니다.

또한:

테스트 var a=new Array();if(객체 인스턴스) Alert('Y');else Alert('N');

'Y'를 받았습니다

하지만 if (객체 창 인스턴스) 경고('Y');else 경고('N');

'N'을 받았습니다

그래서 여기서 instanceof로 테스트한 객체는 dom 모델 객체가 아닌 js 구문의 객체를 참조합니다.

typeof를 사용하면 약간의 차이가 있습니다

alert(typeof(window))는 객체를 얻습니다

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿