1. 程式人生 > >JS判斷資料型別的4種方法

JS判斷資料型別的4種方法

4種判斷方法分別是:

  • typeof
  • instanceof
  • prototype屬性
  • constructor屬性

可判斷的型別對比如下圖:
在這裡插入圖片描述

// 建構函式名方法
function getConstructorName(data) {
        return (data === undefined || data === null) ? data : (data.constructor && data.constructor.toString().match(/function\s*([^(]*)/)[1]);
    }
    
    //  物件原型方法
// 不能判斷自定義函式物件型別 function getPrototypeName(data) { return Object.prototype.toString.call(data).slice(8, -1); } // 自定義的建構函式 function Func() { this.attr = 33; } var newObj = new Func(), num = 123, arr = []; console.group("檢測自定義建構函式例項"
); console.log(getConstructorName(newObj)); // Func console.log(getPrototypeName(newObj)); // Object ;僅能識別為物件 console.log(newObj instanceof Func); // true console.log(typeof newObj); // object ;僅能識別為物件 console.groupEnd(); console.group("檢測數值類"); console.log(getConstructorName
(num)); // Number console.log(getPrototypeName(num)); // Number // console.log(num instanceof Number); // 數值類不是物件不能使用該方法 console.log(typeof num); // number console.groupEnd(); console.group("檢測陣列類"); console.log(getConstructorName(arr)); // Array console.log(getPrototypeName(arr)); // Array console.log(arr instanceof Array); // true console.log(typeof arr); // object ;僅能識別為物件 console.groupEnd();

End.