大きく3つの方法に分けJS変数タイプが判定されます
1. typeof演算 一般的に使用されます
いくつかの特別な事情うち最初のルール、ロジックの後に以下の点をクリアすることができるかもしれ
1 // 分析特定の基本データ型 2 typeof演算 ヌル @ 'オブジェクト' 3 // 入ってくるデータの特殊なタイプが決定される 。4 typeof演算の 関数(){} // '機能' 。5 typeof演算 新しい新機能()// '関数'
残りは基本データ型は、そのデータ型を返しますされ、他のデータ型への参照が含まれ 、新たな 変数のキーワードを次のように定義されます
1つの // 分析の基本データ・タイプ 2 のtypeof 1 // '番号' 3 typeof演算 'A' // '文字列' 。4 typeofを falseに // 'ブール' 。5 typeof演算未定義// '不定' 。6 typeof演算記号()// 「シンボルを 「7 。8つの // 作成した参照変数のデータと種別判定新しいキーワードの種類を決定する 。9 typeofを {} // 」オブジェクト「 10 typeof演算 [] @ 」オブジェクトの 11 typeof演算 新しいナンバー(1)//'オブジェクト' 12は typeof演算 新しい新しい文字列( 'A')// 'オブジェクト' 13は typeof演算 新しい新しい(ブールtrueに)// 'オブジェクト' 14 typeof演算 新しい新しいナンバー(1)// 'オブジェクト' 15 typeof演算 新しい新 A日付()// 'オブジェクト' 16 機能車(){} // コンストラクタを定義する 。17 typeof演算 新しい新しいカー()// 'オブジェクト」
図2に示すように、 instanceofを 次のようにプロトタイプの方法は、NA判定基本データ型を(数、文字列、ブール値)、上側チェーン変数はコンストラクタ右辺を有していない決定するために使用されます
1 機能車(){} // 定义一个构造函数 2はconsole.log(新しいカー()のinstanceof 車) 3({}にconsole.log のinstanceofオブジェクト)// 真 4はconsole.log([] のinstanceofアレイ)// 真 5にconsole.log(新しい文字列( '')のinstanceof String)を// 真 6はconsole.log( '' instanceofの文字列)// 偽
3. Object.prototype.toString.call() だけを使用した後、私はそれは素晴らしいと思い、この方法を知っています
JSデータ・タイプを内蔵しており、内蔵の定義コンストラクタ戻るから、判断することができるオブジェクトの種類 [対象オブジェクト]
1 Object.prototype.toString.call(NULL)// [オブジェクトヌル] 2 Object.prototype.toString.call(未定義)// [オブジェクト不定] 3 Object.prototype.toString.call(1)// [オブジェクト番号] 4 Object.prototype.toString.call(新しい番号(1))// [オブジェクト数] 5 Object.prototype.toString.call( '')// [オブジェクト文字列] 6 Object.prototype.toString.call(新しい文字列( ''))// [オブジェクトの文字列] 7 8 Object.prototype.toString.call({})//[対象オブジェクト] 9 Object.prototype.toString.call([])// [オブジェクト配列] 10 Object.prototype.toString.call(新しい日付())// [対象日] 11 Object.prototype.toString.call (/ ^ D $ / g)の// [オブジェクト正規表現] 12 Object.prototype.toString.call(()=> {})// [目的関数] 13 Object.prototype.toString.call(新機能())// [オブジェクト機能] 14 15 機能車(){} // 定义一个构造函数 16 Object.prototype.toString.call(新カー())// [オブジェクトのオブジェクト]
上記