• Home
  • About
    • Young's Github Pages photo

      一日不作一日不食

    • About
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

Object 또는 Array 타입 확인 방법

11 Jul 2020

Reading time ~1 minute

Object 또는 Array 타입 확인 방법


  • Object와 Array만 타입만 체크할 때 사용 가능
isArray = function(a) {
    return (!!a) && (a.constructor === Array);
};
console.log(isArray(        )); // false
console.log(isArray(    null)); // false
console.log(isArray(    true)); // false
console.log(isArray(       1)); // false
console.log(isArray(   'str')); // false
console.log(isArray(      {})); // false
console.log(isArray(new Date)); // false
console.log(isArray(      [])); // true

isObject = function(a) {
    return (!!a) && (a.constructor === Object);
};

console.log(isObject(        )); // false
console.log(isObject(    null)); // false
console.log(isObject(    true)); // false
console.log(isObject(       1)); // false
console.log(isObject(   'str')); // false
console.log(isObject(      [])); // false
console.log(isObject(new Date)); // false
console.log(isObject(      {})); // true
  • 사용자가 생성자를 정의해 만든 Object인 경우는 체크가 안됨
var user = new User(); // user.constructor === User
  • !!a를 한 이유는 null 또는 undefined은 거짓같은 값(falsy value)으로 if문에서 동작하지만 true,false로 기록되기 위함
var a = null;
a && a.constructor === Array; // null

var b = undefined;
b && b.constructor === Array; // undefined

참고 : StackOverflow



TILJS