关于javascript:typeof和instanceof区别

49次阅读

共计 1045 个字符,预计需要花费 3 分钟才能阅读完成。

它返回值是一个字符串,该字符串阐明运算数的类型

console.log(typeof (123));//typeof(123) 返回 "number" 
console.log(typeof ("123"));//typeof("123") 返回 "string"
var param1 = "string";
var param2 = new Object();
var param3 = 10;
console.log(typeof(param1)+"\n"+typeof(param2)+"\n"+typeof(param3));      // string object  number

instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。

 如 :var a=new Array();

alert(a instanceof Array); // true,同时 alert(a instanceof Object) // 也会返回 true;

这是因为 Array 是 object 的子类。再如:function test(){};

var a=new test();

alert(a instanceof test) 会返回 true

alert(a==b);  //flase

另外,更重的一点是 instanceof 能够在继承关系中用来判断一个实例是否属于它的父类型。

例如:

function Foo(){} 
Foo.prototype = new Aoo();//JavaScript 原型继承 
var foo = new Foo(); 
console.log(foo instanceof Foo)//true 
console.log(foo instanceof Aoo)//true

下面的代码中是判断了一层继承关系中的父类,在多层继承关系中,instanceof 运算符同样实用。

又如:

console.log(Object instanceof Object);//true 
console.log(Function instanceof Function);//true console.log(Number instanceof Number);//false 
console.log(String instanceof String);//false  
console.log(Function instanceof Object);//true  
console.log(Foo instanceof Function);//true 
console.log(Foo instanceof Foo);//false

正文完
 0