类型转换#
- typeof //返回 字符串
- instanceof
- Object.prototype.toString
- constructor
- duck type
typeof
typeof
在判断基本类型或函数对象很方便。
instanceof
obj instanceof Object
期望左操作数是一个对象,如果不是直接返回 false
期望右操作数是一个函数对象或者函数构造器
原理:左边操作数的原型链上是否有右边构造函数的 prototype
属性
但判断 对象是否是数组
判断对象类型 instanceof
(基于原型链的操作符)
obj instanceof Object
左操作数(obj) : 期望值是一个对象,如果是基本类型,直接返回 false
右操作数(Object) : 函数对象或函数构造器,如果不是,抛出 typeerror 异常
原理:判断左操作数的对象的原型链是否有右操作数 prototype 属性