instanceof和typeof都能用來判斷一個變量是否為空或是什么類型的變量。
typeof(obj)用以獲取一個變量的類型,typeof一般只能返回如下幾個結果:number,boolean,string,function,object,undefined。
顯然可以用typeof來判斷變量是否存在或者賦值,而不要去使用if(a)因為如果a不存在(未聲明)則會出錯;
但是對於Array,Null等特殊對象使用typeof一律返回object,這正是typeof的局限性。
貼一段代碼出來,給大家看一下效果:

1 //typeof與instanceof的區別 2 function myFunTypeof() 3 { 4 var i; 5 //alert(typeof(i));//undefined 6 i="1234"; 7 //alert(typeof(i));//string 8 i=123; 9 //alert(typeof(i));//number 10 i=false; 11 //alert(typeof(i));//boolean 12 //alert(typeof(BiBaoTest));//function 13 var a=new Array(); 14 //alert(typeof(i));//Object 15 //i={"1","2"}; 16 alert(typeof(a));//Object 17 alert((a instanceof Array)?"Array":"Object");//Array 18 //看一個具體的例子 19 function test(){}; 20 var a1=new test(); 21 alert(a1 instanceof test)//true。 22 }
如:

1 function test(){}; 2 2 var a1=new test(); 3 3 alert(a1 instanceof test)//true。 4 4 alert(typeof(a1));//object
這個簡單的實例,足以看出他們的區別!