JavaScript里的typeof与instanceof的用法及区别

时间:2021-12-16 16:08:55

JavaScript typeof的使用

typeof用于获取变量的类型,它返回的值是一个字符串,可以为:"number"、"boolean"、"string"、"function"、"object"、"undefined"。

示例

function doSomething(call) {
  if(typeof call == 'function') {
    call();
  }
}

在执行回调函数之前,先判断一下传入的参数是否为函数。

判断一个变量是否存在:

if( a != 'undefined') {
  //do something
}

使用"undefined"判断变量是否存在时,可能存在误用:

if( a != undefined) {
  //do something
}

这里的区别在于,把undefined作为类型判断,而不是字符串。

弊端:当数据为null时,typeof会返回"object"字符串。这样就不能判断变量是否为null。

JavaScript instanceof的用法

instanceof用于判断对象是否为某特定类型,返回布尔值,而不像typeof那样返回指定那几个值。

var str = new String("hello world"); 
console.log(str instanceof String);   // 输出true
cconsole.log(str instanceof Object);    //输出true,因为String为Object的子类