typeof 和 instanceof

我们在检测数据类型的时候常用两种方法. 分别是typeof和instanceof. 但是这两种方法各有不同.

typeof

typeof 是我们开始学JavaScript是就会学习的方法. 这个方法作用于不同的数据类型返回不同的值. 如下图所示:
typeof 和 instanceof

从图中有几处需要我们注意的地方, 分别是undefined和null类型的返回值, object,array及function类型的返回值.
null类型返回”object”, array类型返回”object”, function类型返回”function”.

instanceof

instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。通过这个特性, 我们也可以检测某个实例是否属于某个对象.

对于除了Symbol, undefined, null类型外, 其余类型都有自己的构造函数.

  1. number
    typeof 和 instanceof

  2. string
    typeof 和 instanceof

  3. boolean
    typeof 和 instanceof

  4. function
    typeof 和 instanceof

  5. array
    typeof 和 instanceof

  6. object
    typeof 和 instanceof

参考:
instanceof: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/instanceof
typeof: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/typeof