javascript instance of、typeofの違い

2693 ワード

どうして結果はfalseですか?
 
  
<br>var aColors = ["red", "green", "blue"]; <br>alert(typeof aColors[0]); //output "string" <br>alert(aColors[0] instanceof String); //output "false"; <br>
stringとStringの違いを区別します.
aColors[0]はstring値のタイプです.もちろんStringの例ではありません.以下のコードを参照してください
var aColors=[red],[green],[blue]
aColors[0]=new String(「1」)
alert(typeof aColors[0])//out put「Object」
alert(aColors[0]instance of String)//out put「true」
以下の記事を参照してください.
instance of演算子
Boolean値を返し、オブジェクトが特定のクラスの一例であるかどうかを指摘します.
reult=object instance of class
パラメータ
レスリング
必ず選択します.任意の変数
object
必ず選択します.オブジェクトの表式.
クラス
必ず選択します.指定されたオブジェクトクラスを指定します.
説明
もしobjectがclassの一例であれば、instance of演算子はtrueに戻る.Objectが指定されたクラスの一例ではない場合、またはObjectがnullである場合、falseに戻ります.

以下の例は、instance of演算子の使用例を示している.
 
  
function objTest(obj){
var i, t, s = ""; // 。
t = new Array(); // 。
t["Date"] = Date; // 。
t["Object"] = Object;
t["Array"] = Array;
for (i in t)
{
if (obj instanceof t[i]) // obj 。
{
s += "obj is an instance of " + i + "
";
}
else
{
s += "obj is not an instance of " + i + "
";
}
}
return(s); // 。
}
var obj = new Date();
document.write(objTest(obj));
instance ofとtypeofは、一つの変数が空かどうかを判断するために使用されます.
typeofは変数を取得するタイプで、typeofは通常次のいくつかの結果に戻ります.number、bollan、string、function、object、undefined.私たちはtypeofを使用して、if(typeof a)=「undefined」のような変数が存在するかどうかを取得できます.if(a)を使用しないでください.aが存在しないとエラーが発生しますので、Aray、Nullなどの特殊なオブジェクトに対してtypeofを使ってすべてobjectに戻ります.これはtypeofの限界です.
オブジェクトが配列であるかどうかを取得したい場合、または変数がオブジェクトであるかを判断する場合は、instance ofを選択します.instance ofは、var a=new Aray()のような変数があるオブジェクトかどうかを判断するために使用されます.alert(a instance of Aray);trueに戻ります.同時にalertもtrueに戻ります.これはArayがobjectのサブクラスだからです.更に例:function test(){}var a=new test();alert(a instance of test)はtrueに戻ります.
instance ofについて言えば、私たちはもう一つの問題を挿入します.Functionのargmentsです.argmentsはArayだと思っているかもしれませんが、instaceofを使ってテストしたら、argmentsはArayオブジェクトではないです.
また、
テストvar a=new Aray()if(a instance of Object)alert('Y')else alert('N')
得る
しかしif(window instance of Object)alert('Y')else alert('N')
Nを得る
だから、ここのinstance ofテストのobjectはjs文法の中のobjectを指して、domモデルの対象を指すのではありません.
typeofを使うと少し違います.
alert(typeof(window)会得object
若い時は、まず無駄話をしないで、多くのことをします.