jsで変数がどのタイプかを判断する方法

2397 ワード

タイプ:
5の基本タイプ:null、undefined、Boolean、Number、Stringの残りのタイプ:Object(Aray、Function、Objectを含む)、Symbol(ES 6が追加されます)
方法
1.typeof
typeofは6つのタイプしか判断できません.undefined、Boolean、Number、String、Object、Symbol注:typeof null/結果は「Object」typeof Aray/「Object」typeof Funct/「Object」
2.instance of
使用法:a instance of B原理:instance ofを使ってaの原型がBかどうかを判断します.そうでなければ結果はtrueに等しいです.そうでなければfalse instancofでは三つのタイプしか判断できません.Aray、Funct、Objectなど:
[hello]、[world]instance of Aray//true function(){}instance of Funct//true{}instance of Object/true
注:任意の配列の原型はすべてArayであり、ArayはObjectに属しているので、[hello]、[world]instance of Object/true]
3.Object.prototype.toString
使い方:Object.prototype.toString.cal原理:どのタイプにも対応する属性値[[クラス]]があり、Object.prototype.toString.callはaの属性値のようなものを得ることができます.
Object.prototype.toString.call(123)    //[object Number]
Object.prototype.toString.call('123') //[object String]
Object.prototype.toString.call(undefined) //[object Undefined]
Object.prototype.toString.call(true)  //[object Boolean]
Object.prototype.toString.call({})      //[object Object]
Object.prototype.toString.call([])      //[object Array]
Object.prototype.toString.call(function(){}) //[object Function]
Object.prototype.toString.call(Symbpl()) //[Object Symbol]
Object.prototype.toString.call(null)    //[Object null]
4.アラy.isAray()
この方法は配列の使用法かどうかを判断するためにしか使えません.アラy.isAray([])/true
締め括りをつける
総合四の中で開放中に使った四中法は、需要に応じて異なる方法を選ぶことができますが、一番安全なのはObject.prototype.toStringです.この方法は一番凹みがないです.