typeof vs instanceof

2019-02-19  本文已影响0人  何大必

typeof

typeof返回的是字符串。
typeof对于原始类型来说,除了null都可以正确判断类型。

原始类型: null、undefined、string、number、symbol、boolean

typeof 1 // 'number'
typeof '1' // 'string'
typeof undefined // 'undefined'
typeof true // 'boolean'
typeof Symbol() // 'symbol'
typeof null //'object'

typeof对于引用类型来说,除了函数显示function其他都判断为object

typeof [] // 'object'
typeof {} // 'object'
typeof console.log // 'function'

MDN文档中的表格一目了然:查看MDN文档

image.png

instanceof

instanceof运算符用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置。
内部机制是通过原型链来实现的。

const Person = function() {}
const p1 = new Person();
p1 instanceof Person // true
// p1.__proto__ === Person.prototype

var str = 'hello world'
str instanceof String // false

var str1 = new String('hello world')
str1 instanceof String // true
上一篇 下一篇

猜你喜欢

热点阅读