>  기사  >  웹 프론트엔드  >  변수가 객체인지 array_javascript 기술인지 확인하는 JavaScript 방법

변수가 객체인지 array_javascript 기술인지 확인하는 JavaScript 방법

WBOY
WBOY원래의
2016-05-16 16:38:271254검색

모든 반품 대상 유형

JavaScript의 모든 데이터 유형은 엄밀한 의미에서 객체이지만 실제 사용에서는 여전히 유형이 있습니다. 변수가 배열인지 객체인지 확인하려면 모두 객체를 반환하므로 typeof를 사용할 수 없습니다.

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

var o = { '이름':'이' };
var a = ['reg','blue'];

document.write( ' o typeof는 ' typeof o);
document.write( '
');
document.write( ' a typeof는 ' typeof a);

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

o typeof는 객체입니다
typeof는 객체입니다

그러므로 이 방법을 포기할 수 밖에 없습니다. 배열인지 객체인지 판단하는 방법은 두 가지가 있습니다

먼저, 플러스 길이 속성의 유형을 사용하세요

배열에는 길이 속성이 있고 객체에는 속성이 없으며 배열 유형과 객체 유형 모두 객체를 반환하므로 이렇게 판단할 수 있습니다

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

var o = { '이름':'이' };
var a = ['reg','blue'];

var getDataType = function(o){
If(typeof o == '객체'){
If( typeof o.length == 'number' ){
               '배열' 반환
         }그 외{
                  '객체' 반환;                                          }
}그밖에{
          'param은 객체 유형이 아닙니다'를 반환합니다.
}
};

경고( getDataType(o) ); // 객체
경고( getDataType(a) ); // 배열
Alert( getDataType(1) ); // param은 객체 유형이 아닙니다
Alert( getDataType(true) ); // param은 객체 유형이 아닙니다
Alert( getDataType('a') ); // param은 객체 유형이 아닙니다

두 번째, 인스턴스 사용

instanceof를 사용하여 다음과 같이 변수가 배열인지 확인합니다.


코드 복사 코드는 다음과 같습니다.
var o = { '이름':'이' };
var a = ['reg','blue'];

경고(배열의 인스턴스); // true
경고(o 배열 인스턴스); // false

객체에 속하는지 여부도 확인할 수 있습니다

코드 복사 코드는 다음과 같습니다.
var o = { '이름':'이' };
var a = ['reg','blue'];

경고( Object 인스턴스); // true
경고( o 인스턴스 오브 객체 ); // true

그러나 배열도 객체에 속하므로 위의 두 가지 모두 해당됩니다. 따라서 데이터 유형이 객체인지 배열인지 확인하기 위해 인스턴스를 사용할 때는 먼저 배열을 결정하고 마지막으로 객체를 결정해야 합니다

코드 복사 코드는 다음과 같습니다.
var o = { '이름':'이' };
var a = ['reg','blue'];

var getDataType = function(o){
If(o 배열 인스턴스){
         '배열' 반환
}else if( o 인스턴스 오브 객체 ){
         '개체'를 반환합니다.
}그밖에{
           'param은 객체 유형이 아닙니다'를 반환합니다.
}
};

경고( getDataType(o) ); // 객체
경고( getDataType(a) ); // 배열
Alert( getDataType(1) ); // param은 객체 유형이 아닙니다
Alert( getDataType(true) ); // param은 객체 유형이 아닙니다
Alert( getDataType('a') ); // param은 객체 유형이 아닙니다


Array를 먼저 판단하지 않는 경우 예를 들면 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.

var o = { '이름':'이' };
var a = ['reg','blue'];

var getDataType = function(o){
If(o 객체 인스턴스){
         '객체' 반환
}else if( o 배열 인스턴스 ){
         '배열'을 반환합니다.
}그밖에{
           'param은 객체 유형이 아닙니다'를 반환합니다.
}
};

경고( getDataType(o) ); // 객체
경고( getDataType(a) ); // 객체
Alert( getDataType(1) ); // param은 객체 유형이 아닙니다
Alert( getDataType(true) ); // param은 객체 유형이 아닙니다
Alert( getDataType('a') ); // param은 객체 유형이 아닙니다

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