instanceof和typeof运算符
instanceof和typeof运算符是javascript中常用的两个运算符,它们的功能是用来检测一个变量的类型。
instanceof运算符
instanceof运算符用来检测一个变量是否是某个类的实例,它的语法格式如下:
instanceof Object
其中,Object是要检测的类,它是一个构造函数,可以是内置的构造函数,也可以是自定义的构造函数。
下面是一个使用instanceof运算符的示例:
var str = 'hello world'; console.log(str instanceof String); // false console.log(str instanceof Object); // true
从上面的示例可以看出,instanceof运算符检测的是变量是否是某个类的实例,而不是变量的类型。
typeof运算符
typeof运算符用来检测一个变量的类型,它的语法格式如下:
typeof variable
其中,variable是要检测的变量。
typeof运算符会返回一个字符串,表示变量的类型,常见的返回值有:"number"、"string"、"boolean"、"undefined"、"function"、"object"。
下面是一个使用typeof运算符的示例:
var str = 'hello world'; console.log(typeof str); // string
从上面的示例可以看出,typeof运算符返回的是变量的类型,而不是变量是否是某个类的实例。
instanceof和typeof的区别
- instanceof运算符用来检测一个变量是否是某个类的实例,而typeof运算符用来检测一个变量的类型。
- instanceof运算符的第一个参数是要检测的变量,第二个参数是要检测的类,而typeof运算符的参数只有一个,是要检测的变量。
- instanceof运算符的返回值是boolean类型,而typeof运算符的返回值是字符串类型。