如上是我最近刷题遇到的一个小坑,可以看到用typeof判断null的类型时,返回的是一个’object’,而用instanceof判断时返回的是false,但不知道具体原因。于是重新再学习该部分内容并归纳总结。
typeof
typeof 的数据类型
typeof 运算符不是变量。它属于运算符。运算符(比如 + - * /)没有数据类型。
但是,typeof 始终会返回字符串(包含运算数的类型)。
typeof 操作符返回一个字符串,表示未经计算的操作数的类型。
我们可以利用 typeof 来判断number, string, object, boolean, function, undefined, symbol
这七种类型,这种判断能帮助我们搞定一些问题,比如在判断不是 object 类型的数据的时候,typeof能比较清楚的告诉我们具体是哪一类的类型。但是,很遗憾的一点是,typeof 在判断一个 object的数据的时候只能告诉我们这个数据是 object, 而不能细致的具体到是哪一种 object
例如:
let a = new String('abc');
typeof a === 'object'// true
a instanceof String // true