가장 간단한 방법이지만 array
와 null
이 object
로 나온다.
// typeof DATA
console.log(typeof data.string) // 'string'
console.log(typeof data.number) // 'number'
console.log(typeof data.boolean) // 'boolean'
console.log(typeof data.null) // 'object'
console.log(typeof data.undefined) // 'undefined'
console.log(typeof data.symbol) // 'symbol'
console.log(typeof data.bigint) // 'bigint'
console.log(typeof data.array) // 'object'
console.log(typeof data.object) // 'object'
console.log(typeof data.function) // 'function'
constructor
은 null
과 undefined
가 TypeError
가 나온다.
// DATA.constructor
console.log(data.string.constructor === String)
console.log(data.number.constructor === Number)
console.log(data.boolean.constructor === Boolean)
console.log(data.null.constructor) // TypeError!
console.log(data.undefined.constructor) // TypeError!
console.log(data.symbol.constructor === Symbol)
console.log(data.bigint.constructor === BigInt)
console.log(data.array.constructor === Array)
console.log(data.object.constructor === Object)
console.log(data.function.constructor === Function)
복잡한 방법이지만 가장 정확하다.
// Object.prototype.toString.call(DATA)
// '[object TYPE]'
function checkType(d) {
return Object.prototype.toString.call(d).slice(8, -1)
}
console.log(checkType(data.string)) // 'String'
console.log(checkType(data.number)) // 'Number'
console.log(checkType(data.boolean)) // 'Boolean'
console.log(checkType(data.null)) // 'Null'
console.log(checkType(data.undefined)) // 'Undefined'
console.log(checkType(data.symbol)) // 'Symbol'
console.log(checkType(data.bigint)) // 'BigInt'
console.log(checkType(data.array)) // 'Array'
console.log(checkType(data.object)) // 'Object'
console.log(checkType(data.function)) // 'Function'