码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript中“typeof”运算符与“instanceof”运算符的差异

时间:2016-09-28 22:10:35      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

  在JavaScript中,运算符“typeof”和“instanceof”都可以用来判断数据的类型,那么这两个运算符有什么不同之处呢?

差异一:使用方式不同。

  最明显的差异就是这两个运算符的使用方式了。“typeof”是一元运算符,其后直接跟需要进行类型判断的数据;而“instanceof”是二元运算符,其左侧是需要判断的数据,右侧是用于比较的类型。

//typeof是一元运算符;
var amount = 108;
console.log(typeof amout);//控制台输出“number”;

//instanceof是二元运算符;
var name = new String(‘Jim‘);
console.log(name instanceof String);//控制台输出“true”;

 

差异二:作用对象不同。

  运算符“typeof”既可以用于原始类型数据,也可以用于引用类型数据,而运算符“instanceof”只可以用来判断引用类型数据的具体类型。

差异三:作用于引用值时,返回值不同。

  当作用于引用值时,运算符“typeof”的返回值只有“object”或者“function”,不可以精确判断数据的类型。相比之下,运算符“instanceof”可以用来精确判断数据的类型。

//作用于引用值,“typeof”返回值只有object或者function;
var name = new String(‘jim‘);
var remind = function(){
  alert(‘don‘t forget!‘);       
}
console.log(typeof name);//控制台输出“Object”;
console.log(typeof remind);//控制台输出“function”;

console.log(name instanceof String);//控制台输出“true”;

 

JavaScript中“typeof”运算符与“instanceof”运算符的差异

标签:

原文地址:http://www.cnblogs.com/tangfly/p/5917886.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!