1. 程式人生 > 實用技巧 >幾種判斷資料型別的優缺點

幾種判斷資料型別的優缺點

一、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(typeof
null); // 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]

優點:精準判斷資料型別 缺點:寫法繁瑣不容易記,推薦進行封裝後使用