이 글의 내용은 JavaScript에서 객체의 데이터 유형을 결정하는 방법에 관한 것입니다. , 특정 참조 가치가 있으므로 도움이 필요한 친구가 참조할 수 있으므로 도움이 되기를 바랍니다.
js에 있는 다양한 데이터의 부울 값 유형 요약: false: 빈 문자열; NaN; true: 위의 false 사례를 제외하면 #boolean
Array Object; 이러한 데이터 유형을 감지하는 방법을 요약하면 다음과 같습니다. 첫 번째 방법: typeof
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var bool = true var num = 1 var n = null var fn = function(n){ console.log(n) } console.log(typeof obj) // object console.log(typeof arr) // object console.log(typeof str) // string console.log(typeof bool) // boolean console.log(typeof num) // number console.log(typeof n) // object console.log(typeof fn) // function위의 테스트를 통해 typeof가 배열을 감지하는 것으로 나타났습니다. 사전을 사용할 때 반환 유형이 모두 Object이며 배열인지 객체인지 구별이 불가능합니다. 배열인지 객체인지 확인하고 싶다면, 인스턴스 오브(instanceof) 메소드와 생성자 메소드 두 번째 메소드: 인스턴스오브
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var bool = true var num = 1 var n = null var fn = function(n){ console.log(n) } console.log(obj instanceof Object) // true console.log(arr instanceof Array) // true console.log(str instanceof String) // false console.log(bool instanceof Boolean) // false console.log(num instanceof Number) // false console.log(n instanceof Object) // false console.log(fn instanceof Function) // true를 사용하세요. 참고: instanceof는 배열, 객체 및 함수를 판단하는 데만 사용됩니다. 문자열, 숫자 및 부울 유형을 판단해야 하는 경우 tostring() 메서드를 사용할 수 있습니다.
특별 참고 사항:
instanceof 메소드는 배열이 객체인지 확인할 때 True를 반환합니다.var arr = ['a','b','c'] console.log(arr instanceof Object) // trueIf instanceof를 사용할 때 배열인지 객체인지 엄격하게 판단해야 하는데, 개선된 코드는 다음과 같습니다.
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var getDataType = function(data){ if(data instanceof Array){ return 'Array' } else if (data instanceof Object){ return 'Object' } else{ return 'data is not obejct type' } } getDataType(obj) // Object getDataType(obj) // Array getDataType(obj) // data is not obejct type세 번째 방법: constructor
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var bool = true var num = 1 var n = null var fn = function(n){ console.log(n) } console.log(obj.constructor == Object) // true console.log(arr.constructor == Array) // true console.log(str.constructor == String) // true console.log(bool.constructor == Boolean) // true console.log(num.constructor == Number) // true console.log(fn.constructor == Function) // true테스트 결과 생성자가 Object, Array, String, Boolean, Number, Function
네 번째 방법: toString(권장)
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var bool = true var num = 1 var n = null var fn = function(n){ console.log(n) } console.log(Object.prototype.toString.call(obj)) // [object Object] console.log(Object.prototype.toString.call(arr)) // [object Array] console.log(Object.prototype.toString.call(str)) // [object String] console.log(Object.prototype.toString.call(bool)) // [object Boolean] console.log(Object.prototype.toString.call(num)) // [object Number] console.log(Object.prototype.toString.call(n)) // [object Null] console.log(Object.prototype.toString.call(fn)) // [object Function]From 테스트에서는 toString을 사용하는 것이 가장 좋습니다. 이 방법이 더 포괄적입니다.
위 내용은 자바스크립트에서 객체의 데이터 유형을 결정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!