typeof
TypeOFがより頻繁に使用される場合、ページがグローバル変数を定義する場合、グローバル変数が存在するかどうかを判断することです。次の判断を下す場合:
// haroomsはグローバル変数です(harooms!= undefined){} // jsは、「未装備の参照エラー:ハーームは定義されていない」というエラーを報告します。解決策は、次のように記述することです。
if(typeof haorooms!= undefined){}TypeOFを使用した後、エラーは発生しません!これは、タイプのアプリケーションの1つです!
さらに、TypeOFはデータ型についても判断を下すことができます!次のように:
var harooms = "string"; console.log(harooms); // stringvar harooms = 1; console.log(harooms); // numbervar harooms = false; console.log(harooms); // Booleanvar Harooms; console.log(typeof harooms); // undfinedvar harooms = null; console.log(typeof harooms); // objectVar harooms = document; console.log(typeof harooms); // objectVar harooms = []; console.log(harooms); // objectVar harooms = function(){}; console.log(typeof harooms)//機能データ型を判断することに加えて、関数タイプを判断することもできます明らかに、typeofの場合、最初の4つのタイプを除き、null、オブジェクト、および配列はすべてのオブジェクトタイプを返します。
instanceof
それが配列であるかどうかを判断するために使用できます。
var harooms = []; console.log(harooms instance of array)// trueを返します
コンストラクタ
コンストラクターは、オブジェクトの対応するコンストラクターを返すコンストラクターです。
さまざまなデータ型を判断する方法:
console.log([]。constructor == array); console.log({}。constructor== object); console.log( "string" .constructor == string); console.log((123).constructor == number); console.log(true.constructor == name = name(name、beon、beon、beorn、boolean); this.job = job; this.born = born; } var haorooms = new Employee( "Bill Gates"、 "Engineer"、1985); console.log(harooms.constructor); //出力関数従業員(name、jobtitle、born){this.name = name; this.jobtitle = job; this.born = born;}haorooms.constructorを出力することにより、コンストラクターがオブジェクトに対応するコンストラクターを返すことがわかります。
object.prototype.toString
以前に、コンストラクター属性を使用してオブジェクトタイプを決定できると述べました。 object.protype.tostringメソッドについて話しましょう。
object.prototype.tostring.apply({{})// "[object object]" object.prototype.tostring.apply([])// "[object array]" object.prototype.tostring.apply(nan)// "[object number]" object.prototype.tostring.apply(unction(){)この方法を使用して、変数の基本パターンを正しく判断できますが、カスタムタイプの場合、実際のタイプはわかりません。
他の
jQueryにはタイプの判断方法もあります、以下は例です
$ .iswindow(window)// true
それをする方法
core.js#479iswindow:function(obj){return obj!= null && obj == obj.window;}したがって、このようなオブジェクトを開きます:
var fakeWindow; fakeWindow = {}; fakeWindow.Window = fakeWindow; $。ISWINDOW(fakeWindow)// trueあなたは彼に嘘をついた。
まとめ
JavaScriptでは、タイプを正しく判断する必要があります。それらを注意深く勉強するとき、それは本当に面倒です。さまざまな状況に従って判断を設計することは非常に重要です。また、最も簡単な方法で正しいタイプを判断する方法についても考えなければなりません。もちろん、この記事では紹介されていないことはまだたくさんあります。たとえば、ISPrototypeofメソッド。 JavaScriptは多くの歴史的な負担を伴う言語ですが、常に改善されています。それを使用するときは、両面ブレードのあまりにも多くの方法に注意を払う必要があります。それらを注意深く使用することを忘れないでください。