javascript中typeof和instanceof经常会混淆不清,这里来说明一下二者的区别。
typeof既可以作为运算符,也可以作为函数,对变量或值调用typeof运算符将返回下列值之一:
undefined - 如果变量是Undefined类型的
boolean - 如果变量是Boolean类型的
number - 如果变量是Number类型的
string - 如果变量是String类型的
object - 如果变量是一种引用类型或Null类型的
举例:
var sTemp = "test string";
alert (typeof sTemp); //输出 "string"
alert (typeof 86); //输出 "number"
alert (typeof null); //输出 "object"
instanceof与typeof一样,既可以做运算符,也可以作为函数,用来检测明确的对象类型。对于基础数据类型,instanceof都将返回false。
举例:
var oStringObject = new String("hello world");
alert(oStringObject instanceof String); //输出 "true"
alert(null instanceof Object); //输出 "false"