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

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的子类

版权声明:著作权归作者所有。

相关推荐

JavaScript里null与undefined的区别与相似点

初次看,null和undefined看似是一样的,但远非如此。 本文将探讨JavaScript中null和undefined的区别和相似之处。null是什么?有两个你应该理解的null特性:null是空的或不存在的值。null必须显式赋值。将null的值赋给a示例:let a = null; console.log(a); // 输出null un

JavaScript跳转页面的方法及区别

JavaScript跳转页面主要有三种方法:1、location.replacelocation.replace会替换当前页面的history,这意味着不能使用后退按钮回退replace前的页面。window.location.replace("https://majing.io"); 有点类似模拟http请求的重定向2、location.assignlocation.assi

MySQL:datetime与timestamp的区别及使用选择

datetime与timestamp的区别1、存储空间不同在MySQL,timestamp在内部存储为整型,占用4个字节,而datetime占用8个字节。2、存储方式不同timestamp存储时,会从插入时间的客户端时区转换为UTC(世界标准时间)时间存储,而datetime不会做时间的转换直接存储。3、存储的时间范围不同timestamp:UTC时间,1970-01-01 00:00:

Python里的raw_input()和input()的区别

Python2raw_input():接收用户输入,并以字符串的形式返回用户的输入。input(): 接收用户输入的python表达式,在内部对表达式执行eval()。Python3raw_input()重命名为input(),接收用户输入,并以字符串返回。在Python2里执行python表达式的input()已删除。如果要在Python3里实现Python2 input()

JavaScript Array map()函数的用法及误用

Array的map()函数作用是一个数组映射为另一个数组,映射方式是以原数组的元素作为输入,使用提供的回调函数对输入元素处理,处理后返回的结果作为新数组的元素。基本语法var new_array = arr.map(function callback(currentValue, index, array) {  &nb