JavaScript中的typeof 和instanceof

Js中的instanceof 和typeof的区别

 演示1

   var v5=new Number("22");

   document.write(typeof v5+"<br/>"); //---->object

   document.write( v5 instanceof Number ); //---->true

document.write("<br/>"+v5);

结果:

 

演示2:

//测试字符串aa是不是类型为String

   //document.write(typeof "aa" +"<br/>"); //---->string

   //测试字符串aa是不是String的一个实例

   //document.write("aa" instanceof String); //---->false

   //如果用new的方式创建一个实例的话,之后再去测试上面的两个

   var str3=new String("bbb");

   document.write(typeof str3 +"<br/>"); //---->Object

   //测试字符串aa是不是String的一个实例

   document.write(str3 instanceof String); //---->true

演示结果

 

演示3:

//测试字符串aa是不是类型为String

   document.write(typeof "aa" +"<br/>"); //---->string

   //测试字符串aa是不是String的一个实例

   document.write("aa" instanceof String); //---->false

   //如果用new的方式创建一个实例的话,之后再去测试上面的两个

   var str3=new String("bbb");

   //document.write(typeof str3 +"<br/>"); //---->Object

   //测试字符串aa是不是String的一个实例

   //document.write(str3 instanceof String); //---->true

结果

 

演示4

document.write(typeof 1 +"<br/>"); //--->number

   document.write(1 instanceof Number ); //---->false

/* var v5=new Number("22");

   document.write(typeof v5+"<br/>"); //---->object

   document.write( v5 instanceof Number ); //---->true

   document.write("<br/>"+v5); */

总结:从上面的三个演示可以看出,对于直接的认为的是某一个类型的变量,如认为1是整形,“aa”是String    如果用typeof 关键字得到的是符合我们的想法的

如1 typeof Number--àtrue

但是如果1 instanceof Numberàfalse

但是如果自己去new一个对象的话,之后再去调用这两个方法见下面

var str3=new String("bbb");

   //document.write(typeof str3 +"<br/>"); //---->Object

   //测试字符串aa是不是String的一个实例

   //document.write(str3 instanceof String); //---->true

或者

var v5=new Number("22");

   document.write(typeof v5+"<br/>"); //---->object

   document.write( v5 instanceof Number ); //---->true

也就是我们new出来的如果用typeof得到的是Object类型而并不是我们new时候的那个类型,但是instanceof那个是验证符合我们的想法的

原文地址:https://www.cnblogs.com/isme-zjh/p/11535472.html