ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Modern JavaScript 타입체크
    FrontEnd/JavaScript 2023. 1. 22. 00:06

     


     

    1. typeof 

    - 타입연산자 : 피연산자의 데이터 타입을 분자열로 반환

    - 객체의 종류까지 구분체크는 어려움

    typeof '';              // string
    typeof 1;               // number
    typeof NaN;             // number
    typeof true;            // boolean
    typeof [];              // object
    typeof {};              // object
    typeof new String();    // object
    typeof new Date();      // object
    typeof /test/gi;        // object
    typeof function () {};  // function
    typeof undefined;       // undefined
    typeof null;            // object (설계적 결함)
    typeof undeclared;      // undefined (설계적 결함)
    

     

    2. toString

    - Object.prototype.toString 

    - Function.prototype.call method 사용시 모든 값의 타입을 알수 있다. (일반 객체, 배열, Date, RegExp, Function, DOM 요소 등)

    Object.prototype.toString.call('');             // [object String]
    Object.prototype.toString.call(new String());   // [object String]
    Object.prototype.toString.call(1);              // [object Number]
    Object.prototype.toString.call(new Number());   // [object Number]
    Object.prototype.toString.call(NaN);            // [object Number]
    Object.prototype.toString.call(Infinity);       // [object Number]
    Object.prototype.toString.call(true);           // [object Boolean]
    Object.prototype.toString.call(undefined);      // [object Undefined]
    Object.prototype.toString.call();               // [object Undefined]
    Object.prototype.toString.call(null);           // [object Null]
    Object.prototype.toString.call([]);             // [object Array]
    Object.prototype.toString.call({});             // [object Object]
    Object.prototype.toString.call(new Date());     // [object Date]
    Object.prototype.toString.call(Math);           // [object Math]
    Object.prototype.toString.call(/test/i);        // [object RegExp]
    Object.prototype.toString.call(function () {}); // [object Function]
    Object.prototype.toString.call(document);       // [object HTMLDocument]
    Object.prototype.toString.call(argument);       // [object Arguments]
    Object.prototype.toString.call(undeclared);     // ReferenceError
    

     

    3. instanceof

    - 타입이란 constructor를 말하며 프로토타입 체인에 존재하는 모든 constructor를 검색하여 일치하는 constructor가 있다면 true를 반환

    function Person() {}
    const person = new Person();
    
    console.log(person instanceof Person); // true
    console.log(person instanceof Object); // true
    

     

     

    4. 유사 배열 객체 

    - 문자열, arguments, HTMLCollection, NodeList 등

    - Array.isArray : 배열인지 체크 

     

    console.log(Array.isArray([]));    // true
    console.log(Array.isArray({}));    // false
    console.log(Array.isArray('123')); // false
    

     

    'FrontEnd > JavaScript' 카테고리의 다른 글

    Modern JavaScript Strict mode  (1) 2023.01.28
    Modern JavaScript 스코프  (0) 2023.01.22
    Modern JavaScript 객체의 프로퍼티  (0) 2023.01.21
    Modern JavaScript 함수  (0) 2023.01.21
    Modern JavaScript 객체  (0) 2023.01.21

    댓글

Designed by Tistory.