typeof和instanceof 运算符

instanceof运算符与typeof运算符相似,都适用于检测数据类型,但是在具体细节方面还是不同的

使用typeof测试数据类型

typeof 12;//"number"
typeof "12";//"string"
typeof false;//"boolean"
typeof null;//"object"
typeof undefined;//"undefined"

function f() {} 
typeof f"function"

typeof {};//"object"
typeof [];//"object"
typeof null;//"object"
typeof window;"object"

从上面的地结果可以看出来,无论引用的是什么类型的对象,它都返回 "object"。 如果想要知道对象是什么具体类型该怎么办呢?

运算符 instanceof 可以解决这个问题,与 typeof 方法不同的是,instanceof 方法要求开发者明确地确认对象为某特定类型。

实例:

var oStringObject = new String("hello world");
alert(typeof(oStringObject)); //输出 "object"
alert(oStringObject instanceof String); //输出 "true"

结论:如果变量是基本数据类型,使用typeof非常方便,但是要知道object对象的具体引用类型就需要使用instanceof了

原文地址:https://www.cnblogs.com/YeChing/p/6243744.html