`

js typeof和instanceof

阅读更多

typeof

 

一元运算,放在一个运算数之前,运算数可以是任意类型。

返回值 ----- 一个字符串,说明运算数的类型。一般只能返回如下几个结果:

 

number,boolean,string,function,object,undefined

 

局限性:对于 Array,Null 等特殊对象返回 object,对函数、类和闭包返回function

 

 

//null表示对象为空或变量未引用却可以或者将要引用对象
alert(typeof(null));   //返回object
//undifined表示变量未定义或已声明未赋值或不存在的对象属性
alert(typeof(undefined));   //返回undefined
  内部属性 typeof返回值
“wjy” String string
new String("wjy") String object
1.5 Number number
new Number(1.5) Number object
true Boolean boolean
new Boolean("true") Boolean object
new Date() Date object
new Error() Error object
[1,2,3] Array object
new Array(1,2,3) Array object
new Function() Function object
/abc/g RegExp object
new  RegExp("meow") RegExp object
{} Object object
new Object Object object

 

用typeof还可以区分参数类型:

 

typeof(array) == "String" ? array.split(",") : array 

由于typeof的局限性只能区分对象和原始类型时才有效,这时真正区别一种对象和另一种对象之间的区别就要用到:

 

 

instanceof

 

对象运算符,判断一个变量是否某个对象的实例。左边运算数是一个对象,右边是对象类的名称。

返回值 ----- 左边对象是右边类或派生类的一个实例返回true,否则返回false

如果右边运算数不是一个对象,抛出一个系统级别异常。

仅仅用来比较来自同一个 JavaScript 上下文的自定义对象。

 

 

alert("" instanceof Object);   //false
alert([] instanceof Array);    //true

 

  function judge(){
		var arr=new Array();
		alert(typeof(arr));//object
		alert((arr instanceof Array));//true
  }
  

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics