只针对ES5知识

1、typeof和Instanceof 检测数据类型的异同

JS有哪些数据类型
image.png
typeof和Instanceof检测数据类型的异同
image.png
typeof 检测null为object是一个js 设计的bug,当时定义数据解释机器码后三位为000的时候就为object,null存储所有位数都为0,所以被误认为object。
typeof去检测引用类型的时候,本身是返回object,但是object又被细分为俩种类型:object和function。
object这个数据类型上面定义了一个内部的方法[[call]],内部的不能被外部使用,当typeof去检测的时候,首先会去判断一下,引用类型上有没有call方法,有的话返回function,没有返回object。
image.png
image.png
image.png