js에서 검출 데이터 형식 총결산
typeof
typeof는 함수 대상과 기본 데이터 유형의 판단에 매우 적합하다
typeof 100 //'number'
typeof true //'boolean'
typeof function //'function'
typeof undefined //'undefined'
typeof null //'object'
typeof NaN // 'number'
typeof new Object() //'object'
typeof new String("123") //'object'
instanceof
주로 대상 데이터 유형을 판단하는 데 사용된다.object instance of Object, 왼쪽은 대상이어야 합니다. 그렇지 않으면false로 돌아갑니다.오른쪽은 함수 대상이나 함수 구조기여야 합니다. 그렇지 않으면 오류가 발생합니다.
왼쪽 대상의 원형 체인에 오른쪽에 이 구조기가 있는지 판단하기;
[1,2,3] instanceof Array //true
new Object instanceof Array //false
'123' instanceof String //false
new String('hi') instanceof String //true
참고:
Object.prototype.toString
Object.prototype.toString.apply([]) === "[object Array]"
Object.prototype.toString.apply(function(){}) === "[object Function]"
Object.prototype.toString.apply(null) === "[object Null]"
Object.prototype.toString.apply(undefined) === "[object undefined]"
Object.prototype.toString.apply('HI') === "[object String]"
null 문제를 처리할 수 있습니다.하지만 IE8 이하는 무효입니다.
첨부: jQuery 아래 jQuery.type()의 구현:
var class2type = {} ;
"Boolean Number String Function Array Date RegExp Object Error".split(" ").forEach(function(e,i){
class2type[ "[object " + e + "]" ] = e.toLowerCase();
}) ;
// IE ,forEach polyfill, 。
function _typeof(obj){
if ( obj == null ){
return String( obj );
}
return typeof obj === "object" || typeof obj === "function" ?
class2type[ class2type.toString.call(obj) ] || "object" :
typeof obj;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.