幾種判斷資料型別的優缺點
阿新 • • 發佈:2020-12-27
一、typeof
console.log(typeof 1); // number console.log(typeof true); // boolean console.log(typeof 'mc'); // string console.log(typeof function(){}); // function console.log(typeof []); // object console.log(typeof {}); // object console.log(typeofnull); // object console.log(typeof undefined); // undefined 優點:能夠快速區分基本資料型別 缺點:不能將Object、Array和Null區分,都返回object
二、instanceof
console.log(1 instanceof Number); // false console.log(true instanceof Boolean); // false console.log('str' instanceof String); //false console.log([] instanceof Array); // true console.log(function(){} instanceof Function); // true console.log({} instanceof Object); // true 優點:能夠區分Array、Object和Function,適合用於判斷自定義的類例項物件 缺點:Number,Boolean,String基本資料型別不能判斷
三、Object.prototype.toString.call()
var toString = Object.prototype.toString; console.log(toString.call(1)); //[object Number] console.log(toString.call(true)); //[object Boolean] console.log(toString.call('mc')); //[object String] console.log(toString.call([])); //[object Array] console.log(toString.call({})); //[object Object] console.log(toString.call(function(){})); //[object Function] console.log(toString.call(undefined)); //[object Undefined] console.log(toString.call(null)); //[object Null] 優點:精準判斷資料型別 缺點:寫法繁瑣不容易記,推薦進行封裝後使用