>웹 프론트엔드 >JS 튜토리얼 >자바스크립트에서 객체의 데이터 유형을 결정하는 방법은 무엇입니까?

자바스크립트에서 객체의 데이터 유형을 결정하는 방법은 무엇입니까?

不言
不言앞으로
2018-10-27 15:23:561985검색

이 글의 내용은 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)    // true
If 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제