js中檢測數據類型的幾種方式


1、typeof
一元運算符,用來檢測數據類型。只可以檢測number,string,boolean,object,function,undefined。
對於基本數據類型是沒有問題的,但是遇到引用數據類型是不起作用的(無法細分對象)
  let str = '{}';
    let fn = function(){};
    let obj = {};
    let ary = [];
    let rg = /\d/;
    console.log(typeof str);//string
    console.log(typeof fn);//function
    console.log(typeof obj);//object
    console.log(typeof ary);//object
    console.log(typeof rg);//object

  

2、instanceof(二元運算符,需要兩個操作數)
 檢測某個對象是不是另外一個對象的實例
instanceof只能用來判斷對象和函數,不能用來判斷字符串和數字
let arr = [1,2,3];
console.log(arr instanceof Array);//true  檢測arr是不是內置類Array的實例

 

3、constructor
js中所有對象都繼承於Object,constructor是其中的一個屬性。默認指向實例的構造函數(可以修改)
function fns (){}
let f = new fns;
console.log(f.constructor === fns);//true
console.log(f.constructor.name);//fns構造函數名稱
//constructor屬性並非一定指向構造函數,他也可以修改、變更

 

4、Object.prototype.toString.call
JavaScript中,通過Object.prototype.toString方法,判斷某個對象值屬於哪種內置類型
let date = new Date;
console.log(Object.prototype.toString.call(date));//[object Date]
let re = '/\d+g/';
console.log(Object.prototype.toString.call(re));//[object String]
let sz = [2,3,4];
console.log(Object.prototype.toString.call(sz));//[object Array]
let hs = function(){};
console.log(Object.prototype.toString.call(hs));//[object Function]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM