JS判定データタイプの3つの方法

7561 ワード

JavaScriptによくあるいくつかのデータタイプ:
基本タイプ:string、number、bollan
特殊タイプ:undefined、null
引用タイプ:Object、Function、Function、Aray、Date、…
typeof
typeofはデータタイプを表す文字列を返します.結果はnumber、bolean、string、object、undefined、functionなど6種類のデータタイプが含まれます.基本的なタイプを判断するならtypeofでいいです.
1
2
3
4
5
6
7
8
9
typeof ''; // string   
typeof 1; // number   
typeof true; //boolean   
typeof undefined; //undefined   
typeof null; //object   
typeof [] ; //object   
typeof new Function(); // function   
typeof new Date(); //object   
typeof new RegExp(); //object   
typeofはJSベースのデータタイプに対して正確な判断を下すことができますが、参照タイプに対しては基本的にはobjectです.objectに戻るのも間違いないです.すべてのオブジェクトのプロトタイプチェーンは最終的にObjectを指しています.Objectはすべてのオブジェクトの祖先です.引用のタイプを判断すると、typeofはやや力不足に見える.
instance of
instance ofは、AがBかどうかを判断するための例示的なペアであり、式はA instance of Bであり、AがBの例であれば、trueに戻り、そうでなければfalseに戻ります.ここで特に注意したいのは、instance ofがプロトタイプを検出し、
1
2
3
[] instanceof Array; //true
{} instanceof Object;//true
new Date() instanceof Date;//true
Object.prototype.toString 
StringはObjectの元のオブジェクトの一つの方法であり、この方法はデフォルトではその調合者の具体的なタイプに戻り、より厳密には、tostring運転時にthisが指すオブジェクトタイプであり、戻るタイプは「Object、xxx」であり、xxxは具体的なデータタイプである.…基本的にすべてのオブジェクトの種類はこの方法で入手できます.
1
2
3
4
5
6
7
8
9
10
Object.prototype.toString.call('') ;   // [object String]
Object.prototype.toString.call(1) ;    // [object Number]
Object.prototype.toString.call(true) ; // [object Boolean]
Object.prototype.toString.call(undefined) ; // [object Undefined]
Object.prototype.toString.call(null) ; // [object Null]
Object.prototype.toString.call(new Function()) ; // [object Function]
Object.prototype.toString.call(new Date()) ; // [object Date]
Object.prototype.toString.call([]) ; // [object Array]
Object.prototype.toString.call(new RegExp()) ; // [object RegExp]
Object.prototype.toString.call(new Error()) ; // [object Error]