javascript typeof 和 instanceof 的区别和联系

一,typeof

  概念——操作符,

  目的——检测一个变量是不是基本数据类型的变量,换句话说,判断一个变量是 字符串,数值, 布尔值,对象,undefined

  注意——使用typeof操作符的时候,如果检测对象是函数,那么操作符返回"function" ,

                  如果检测对象是正则表达式,在Safari和Chrome中使用typeof的时候会错误的返回"function",其他的浏览器返回的是object.

  例子——

var a="zhangqian";  
var b=true;  
var c=10;  
var d;  
var e=null;  //null也是一个对象
var f=new Object();  
  
alert(typeof a); //string  
alert(typeof b); //number  
alert(typeof c); //boolean  
alert(typeof d); //undefined  
alert(typeof e); //object  
alert(typeof f); //object

二,instanceof

   概念——检验引用类型

   目的——判断对象是Array, RegExp

   注意——object是所有对象的基类,

   例子——

var array=new Array();  
var object=new Object();  
var regexp=new RegExp();  
function func(){};  
var func1=new func();  
  
alert(array instanceof Array);  //true  
alert(object instanceof Object);  //true  
alert(regexp instanceof RegExp);  //true  
alert(func1 instanceof func);  //true 

总结: 其实typeof和instanceof的目的都是检测变量的类型,两个的区别在于typeof一般是检测的是基本数据类型,instanceof主要检测的是引用类型

参考博客

一,http://www.cnblogs.com/cheng_jiai/archive/2010/10/07/1845168.html

二,http://blog.csdn.net/myhahaxiao/article/details/6740542

小策,加油!!!

posted @ 2017-04-27 09:34  赞恩_abc  阅读(198)  评论(0编辑  收藏  举报