這篇文章帶給大家的內容是關於js中類型檢測的四種方法介紹(程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
從最垃圾的方式到最屌的方式依序排列為:typeof --> constructor --> instanceof --> toString
1.typeof
偵測物件型別太模糊,function、object、array型別都會回傳object,所以此方法垃圾,但實用性很強,氣場很強大
2.constructor
實例物件的建構子(實例物件.constructor),傳回建構函數,可以分辨出類型
var str = 'abc'; var num = 100; var arr = new Array(); var date = new Date(); alert(str.constructor); alert(num.constructor); alert(arr.constructor); alert(date.constructor);
3.instanceof
判斷一個物件是否是一個建構子(類別)的實例。注意此方法只能偵測實例物件。傳回布林值
var str=new String('abc'); var num=new Number(100); var arr=new Array(); var date=new Date(); alert(str instanceof String); alert(num instanceof Number); alert(arr instanceof Array); alert(date instanceof Date); alert(str instanceof Object);
4.toString()
最屌的五星級方法,此方法功能強大,既可以進位轉換,又可以轉字串,使用起來逼格級高
console.log(Object.prototype.toString.call(5).slice(8,-1)); console.log(Object.prototype.toString.call('abc').slice(8,-1)); console.log(Object.prototype.toString.call(true).slice(8,-1)); console.log(Object.prototype.toString.call(function(){}).slice(8,-1)); console.log(Object.prototype.toString.call([]).slice(8,-1)); console.log(Object.prototype.toString.call({}).slice(8,-1)); console.log(Object.prototype.toString.call(/\d/g).slice(8,-1)); console.log(Object.prototype.toString.call(new Date).slice(8,-1)); console.log(Object.prototype.toString.call(null).slice(8,-1)); console.log(Object.prototype.toString.call(undefined).slice(8,-1)); console.log(Object.prototype.toString.call(Math).slice(8,-1));
// Number // String // Boolean // Function // Array // Object // RegExp // Date // Null // Undefined // Math
相關推薦:
Javascript isArray 陣列類型偵測函數_javascript技巧
以上是js中類型檢測的四種方法介紹(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!