JavaScript:typeofとinstance ofオペレータを使って数値タイプと参照型変数を検出します.

1696 ワード

typeof
ECMAScriptは分散型であり、一回には与えられた変数のデータタイプを検出する手段が必要であり、typeofオペレータはこの方面の情報を提供する責任があります.typeofは基本データタイプと参照データタイプを検出するために使用できます.
文法の書式は以下の通りです.
typeof variable
6種類のSteringタイプの結果を返します.
-「undefined」-この値が定義されていない場合
-「bollan」-この値がブール値である場合
-「string」-この値が文字列なら
-「number」-この値が数値なら
-「object」-この値が対象またはnullの場合
-「function」→この値が関数なら
例:
console.log(typeof 'hello'); // "string"
console.log(typeof null); // "object"
console.log(typeof (new Object())); // "object"
console.log(typeof(function(){})); // "function"
typeofは、基本データタイプを検出するために主に使用されます.数値、文字列、ブール値、undefinedは、typeofが参照タイプ値を検出するために使用される場合、Objectオブジェクトのいずれかのインスタンス(nullを含む)に対して、typeofは「object」値を返します.
instance of
基本データタイプを検出する際には、typeofは非常に有効なヘルパーですが、参照タイプの値を検出する際には、このオペレータの役割は大きくありません.通常、私たちはある値がオブジェクトであるかを知りたいのではなく、どのタイプのオブジェクトかを知りたいのです.ECMAScriptが提供するinstance ofオペレータを使用できます.
文法の書式は以下の通りです.
reult=variable instance of constructor
ブールタイプの値を返します.
-true-変数が参照タイプのインスタンスである場合、instance ofオペレータはtrueに戻ります.
-false-変数が参照タイプのインスタンスを与えられていない場合、instance ofオペレータはfalseに戻ります.
例:
function Person(){
}
function Animal(){
}

var person1 = new Person();
var animal1 = new Animal();

console.log(person1 instanceof Person); // true
console.log(animal1 instanceof Person); // false
console.log(animal1 instanceof Object); // true
console.log(1 instanceof Person);   //false
規定によると、すべての参照タイプの値はObjectの例である.したがって、参照タイプ値とObjectコンストラクタを検出すると、instance ofオペレータは常にtrueに戻ります.
instance ofオペレータを使用してベースタイプの値を検出すると、このオペレータは常にfalseに戻ります.基本タイプはオブジェクトではありません.
もっと完璧な検査をするには、typeofとinstance ofを組み合わせて使う必要があります.