1. 程式人生 > >如何區分js數據類型

如何區分js數據類型

-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數據類型