このような基本的なことはもう記録されるべきではありませんが、過去をレビューし、最初に新しいものを学ぶことです。データ型から始めましょう。
JS 6つの主要なデータ型:数、文字列、オブジェクト、ブール、ヌル、未定義
文字列:「文字列」などの単一または二重引用符で説明されています
番号:整数、浮動小数点数はすべて数字と呼ばれます、あなたは知っています〜
Boolean:それは真実であり、偽です
未定義:未定義、つまり、変数を作成しますが、値を割り当てないでください〜
null:したがって、それはsijiuと呼ばれます。ヌルは何も意味しません、何も意味しません
オブジェクト:これを説明するのは難しいです。上記の5つ以外のタイプです
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
タイプデータ型の判断
TypeOFは、ほとんどのデータ型の判断を解決できます。 1回の操作です。操作値の前に、その返品値は文字列です。この文字列は、操作番号のタイプを示します。したがって、if(typeof(your value)== "string"){}
さまざまなデータ型によって返される結果は次のとおりです。
var a = "string"; console.log(a); // stringvar a = 1; console.log(a); // numbervar a = false; console.log(a); // booleanvar a; console.log(typeof a); // undfinedvar a = null; console.log(typeof a); // objectVar a = document; console.log(typeof a); // objectVar a = []; console.log(a); // objectVar a = function(){}; console.log(typeof a)//関数データ型を判断することに加えて、関数タイプを判断することもできますこれは明らかです。最初の4つのタイプを除き、null、オブジェクト、および配列はすべてのオブジェクトタイプを返します。
関数タイプの場合、typeof(日付)、typeof(eval)など、関数が返されます。
次に、非常に人気のある別の問題を拡張することができ、ソリューションはすでに一般的です。データが配列タイプであるかどうかを判断する方法は?
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
配列タイプを決定するJSメソッド
方法1インスタンス
したがって、例、名前は、インスタンス、例を意味します。したがって、InstanceOFは、変数がオブジェクトのインスタンスであるかどうかを判断するために使用されます。これは3次元操作式です - Typeofの最も大きな違い
b?alert( "true"):alert( "false")// b値は、配列などの文字列ではなく、判断するデータ型であることに注意してください
栗を取る:
var a = []; console.log(ainstanceof array)// trueを返します
方法2コンストラクター
W3Cの定義定義:コンストラクタープロパティは、このオブジェクトを作成した配列関数への参照を返します
オブジェクトに対応するコンストラクターを返します。定義では、それはインスタンスとそれほど一致していませんが、効果は同じです
たとえば、(Arsanceof Array)// Aそれは配列のインスタンスですか?真または偽
(a.constructor == array)//コンストラクターはインスタンスに対応していますか?真または偽
栗を取る:
function Employee(name、job、born){this.name = name; this.job = job; this.born = born;} var bill = new Employee( "Bill Gates"、 "Engineer"、1985); console.log(bill.constructor); //出力関数従業員(name、jobtitle、born){this.name = name; this.jobtitle = job; this.born = born;}次に、さまざまなタイプを判断する方法は次のとおりです。
console.log([]。constructor == array); console.log({}。constructor== object); console.log( "string" .constructor == string); console.log((123).constructor == number); console.log(true.constructor == boolean);----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
より厳密で一般的な方法:
function isArray(object){return object && typeof object === 'object' && array == object.constructor;}! !知らせ:
InstanceOfとコンストラクターを使用して、判断された配列を現在のページで宣言する必要があります!たとえば、ページ(親ページ)にはフレームワークがあり、ページ(サブページ)がフレームワークで参照され、配列は子ページで宣言され、親ページの変数に割り当てられます。この時点で、変数はarray == object.constructorを審査します。 falseを返します。
理由:
1.配列は参照データです。送信プロセス中、これは参照アドレスの単なる転送です。
2。各ページの配列ネイティブオブジェクトによって参照されるアドレスは異なります。子ページで宣言された配列の対応するコンストラクターは、子ページの配列オブジェクトです。親ページでの判断の場合、使用される配列は子ページの配列に等しくありません。そうでなければ、問題を追跡することは難しいでしょう!
方法3:特性審査方法
上記のすべての方法には特定の欠陥がありますが、大衆の知恵は全能であると信じなければなりません。配列のいくつかの特性に基づいて、そのタイプを判断できます。
function isArray(object){return object && typeof object === 'object' && typeof object.length == 'number' && typeof object.splice === 'function' && //長さのプロパティが列挙されているかどうかを判断するだけで、falseが取得されます!長さとスプライスを持つことは必ずしも配列ではありません。最も重要な判断要因は、オブジェクトに属性を追加するが、長さの属性を列挙することではないからです。
PS:ここでは、PropertyIsEnumerableの方法を普及させています。
物体。 PropetiESENUMERABLE(PRONAME)
指定された属性をリストできるかどうかを判断します
注:Pronameがオブジェクトに存在し、for…in loopでoppedを使用して徹底的に列挙できる場合、propertyisenumerableプロパティはtrueを返します。オブジェクトに指定されたプロパティがない場合、または指定されたプロパティが列挙できない場合、PropertyIsEnumerableプロパティはFalseを返します。
PropertisEnumerableプロパティは、プロトタイプチェーン内のオブジェクトを考慮していません。
例:
var a = new Array( "Apple"、 "Banana"、 "Cactus"); document.write(a.propertyisenumerable(1));
方法4最も簡単な方法
function isArray(o){return object.prototype.tostring.call(o)=== '[object array]';}上記は、この記事のコンテンツ全体です。 JavaScriptの詳細については、「JavaScriptリファレンスチュートリアル」と「JavaScriptコードスタイルガイド」をご覧ください。また、誰もがwulin.comをもっとサポートすることを願っています。