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