object.prototype.toString.call()用于判断值的数据类型
JavaScript中有三种判断值数据类型的方法:
- typeof()
- instanceof
- object.prototype.toString.call()
下面我们分别看一下这三种方法是怎么实现判断值的数据类型
首先我们先定义三个不同的数据类型的值
var a = "hello world";
var b = [];
var c = function(){};
typeof()
console.log( typeof(a) );
console.log( typeof(b) );
console.log( typeof(c) );
//结果
string;
object;
funcntion;
instanceof
console.log(a instanceof Object)
console.log(b instanceof Object)
console.log(c instanceof Object)
console.log(a instanceof Array)
console.log(b instanceof Array)
console.log(c instanceof Array)
console.log(a instanceof Function)
console.log(b instanceof Function)
console.log(c instanceof Function)
//结果
false
true
true
false
true
false
false
false
true
object.prototype.toString.call()
console.log( object.prototype.toString.call( a ) );
console.log( object.prototype.toString.call( b ) );
console.log( object.prototype.toString.call( c ) );
//结果
[object String];
[object Array];
[object Function];
因此
console.log( object.prototype.toString.call( a ).slice( 8, -1) );
结果: String