如何區分js數據類型
阿新 • • 發佈:2018-08-06
-c 能力 sta {} array on() 屬性 new per
js中有六大數據類型,null,undefined,Number,String,Boolean,Object(引用類型包含Array,Function);
首先你可能會想到
typeof操作符
typeof操作符的結果有六種,都是字符串: 分別是Undefined,String,Boolean,Number,Object,Function。
可以看出typeof對於區分數據類型有兩大問題
問題1 null也返回Object,null是空對象引用
問題2 對於對象實例的構造類是不能區分的,僅僅對Function有一定識別能力
instanceof 運算符
instanceof運算符用來判斷一個構造函數的prototype屬性所指向的對象是否存在另外一個要檢測對象的原型鏈上
function Person(){};
var p =new Person();
console.log(p instanceof Person);//true
解決方案
Object.prototype.toString.call
例如: Object.prototype.toString.call(‘aaaa‘) // [object String]
通過調用該方法可以獲取對象的構造class類
如何區分js數據類型