jsのtypeofとinstanceofとは何ですか?違いは何ですか?

藏色散人
リリース: 2018-10-13 16:35:06
オリジナル
6742 人が閲覧しました

この記事では、js の typeof と instanceof の違いを中心に紹介します。

まず最初に、typeof とは何なのかを簡単に理解してください。

typeof は単項演算であり、オペランドの前に置かれます。オペランドは任意の型にすることができます。戻り値は、オペランドの型を説明する文字列です。 typeof を使用すると、特定の変数のデータ型を検出できます。

instanceof とは何ですか?

instanceof 演算子は、コンストラクターのプロトタイプ属性によって指定されたオブジェクトが、検出される別のオブジェクトのプロトタイプ チェーン上に存在するかどうかを判断するために使用されます。一般に、instanceof を使用すると、インスタンスが特定の型に属するかどうかを判断できます。

js の typeof とinstanceof の類似点:

JavaScript の typeof とinstanceof は、変数が空かどうか、またはその型を判断するためによく使用されます。

相違点:

1. typeof の定義と使用法:

戻り値は文字列です。 、変数のデータ型を記述するために使用されます。

具体的な使用方法の詳細:

1. typeof は通常、次の結果のみを返します:

'未定義': この値は未定義です。

'boolean': この値はブール値です。

'string' : この値は文字列です。

'数値' : この値は数値です。

'object': この値はオブジェクトまたは null です。

'function' : この値は関数です。
2. 変数が存在するかどうかを取得するには、if(a) を使用する代わりに、
#

if(typeof a!="undefined"){alert("ok")}
ログイン後にコピー

などの typeof を使用します。変数が存在しない (宣言されていない) 場合は、エラーが発生します。


3. Array や Null などの特殊なオブジェクトの場合、typeof は常に object を返します。これが typeof の制限です。

2. インスタンスオブの定義と使用法:

インスタンスオブの定義と使用法: インスタンスオブは、変数がオブジェクトのインスタンスに属しているかどうかを判断するために使用されます。また、特定のコンストラクターのプロトタイプ属性が、検出対象の別のオブジェクトのプロトタイプ チェーン上に存在するかどうかを判断するために使用することもできます。

例:


a instanceof b?alert("true"):alert("false"); //a是b的实例?真:假
ログイン後にコピー
 var a=new Array();alert(a instanceof Array);
ログイン後にコピー

が返されます true の場合、


alert(a instanceof Object)
ログイン後にコピー

も true を返します。

これは、Array がオブジェクトであるためです。 サブカテゴリ。

別の例:

function test(){};var a=new test();alert(a instanceof test)
ログイン後にコピー

はオブジェクトを返します。

テスト:

var a=new Array();if (a instanceof Object) alert('Y');else alert('N');
ログイン後にコピー

は「Y」を取得し、

if (window instanceof Object) alert('Y');else alert('N');
ログイン後にコピー

は「N」を取得しました。

つまり、ここでinstanceofによってテストされるオブジェクトは、domモデルオブジェクトではなく、js構文のオブジェクトを指します。

typeof を使用する場合、いくつかの違いがあります:

alert(typeof(window))
ログイン後にコピー

オブジェクトを取得します。

この記事は、js の typeof と instanceof の違いについてです。困っている友人のお役に立てれば幸いです。

さらにフロントエンドの知識ポイントを知りたい場合は、PHP 中国語 Web サイト

JavaScript ビデオ チュートリアルBootstrap ビデオ チュートリアル、およびその他の関連チュートリアルを参照してください。皆さんも参考にして学んでください!

以上がjsのtypeofとinstanceofとは何ですか?違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート