JavaScript 类型判断有多种方式,常见的有 typeof 和 instanceof。
不过这两种方式是存在缺陷的,能判断的类型不太全。
Object.prototype.toString.call 是最佳选择,能判断的类型最完整。
使用方法很简单,要判断某个东西的类型就将这个东西作为参数传入括号中。
该函数返回的是一个表示数据类型的字符串,格式为“[object 数据类型]”。
用 Object.prototype.toString.call() 可以准确地判断变量的数据类型。
刚才说,typeof 是存在缺陷的,我们来看一个例子:
console.log(typeof null); // "object"
你会发现,根本判断不出 null 的类型。
而使用 Object.prototype.toString.call() 方法可以准确地判断:
var n = null; console.log(Object.prototype.toString.call(n)); // "[object Null]"