-
typeof
用在基本数据类型和函数时,返回其对应类型的描述,对于引用类型都返回为object. -
instanceof
无法判断基本数据类型,对于引用类型数据,返回其其对应类型。 -
Object.prototype.toString
无论基本数据类型还是引用类型返回其对应类型。
对应测试结果如下:
typeof test | instanceof | Object.prototype.toString.call(test) | |
var test = 'xuriliang'; | string | test instanceof String //false | [object String] |
var test = 27; | number | test instanceof Number //false | [object Number] |
var test = true; | boolean | test instanceof Boolean //false | [object Boolean] |
var test = [1,2,3]; | object | test instanceof Array //true | [object Array] |
test instanceof Object //true | |||
var test = null; | object | test instanceof Object //false | [object Null] |
var test = undefined; | undefined | test instanceof Object //false | [object Undefined] |
var test = new String('xuriliang') | object | test instanceof String //true | [object String] |
test instanceof Object //true | |||
var test = new Number(27) | object | test instanceof Number //true | [object Number] |
test instanceof Object //true | |||
var test = new Boolean(true) | object | test instanceof Boolean //true | [object Boolean] |
test instanceof Object //true | |||
var test = new Array(1,2,3) | object | test instanceof Array //true | [object Array] |
test instanceof Object //true | |||
var test = function(){} | function | test instanceof Function //true | [object Function] |
test instanceof Object //true | |||
var test = /d/ | object | test instanceof RegExp //true | [object RegExp] |
test instanceof Object //true |