2020-06-07 typeof 和 instanceof

131 阅读1分钟

typeof:

返回一个字符串,用来说明变量的数据类型.

只能返回如下几个结果:number,boolean,string,function,object,undefined,symbol

typeof Object //function
let s = Symbol("id");
typeof s  //symbol
typeof [1,2,3]  //object
typeof null  //object

instanceof:

用于判断一个变量是否属于某个对象的实例

instanceof运算符用来测试一个对象在其原型链构造函数上是否具有prototype属性

需要注意的是,这里的 “对象” 并不是js中广义的对象,因为js中都是对象。

这里的对象就是Object类型。也就是说,只有Object或者Array这种引用类型的才能正确使用instanceof来比较。

注意:String("xxx")和new String("xxx")是不同的!

引用类型就简单得多:

[] instanceof Array //true
[] instanceof Object  //true
let obj = {}
obj instanceof Object  //true

参考:隨秋風飄遠 JavaScript中instanceof的使用