ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript にはデータ型がいくつありますか? JavaScript でデータ型を判断する方法

JavaScript にはデータ型がいくつありますか? JavaScript でデータ型を判断する方法

云罗郡主
云罗郡主転載
2018-10-29 14:30:351661ブラウズ

JavaScript にはデータ型がいくつありますか? JavaScriptに触れたばかりの友人の中には、このような疑問を持つ人も多いと思います。この章では、JavaScript にはいくつのデータ型があるのか​​を説明します。 JavaScript でデータ型を決定する方法。困っている友人は参考にしていただければ幸いです。

JavaScript でデータ型を判断するにはどうすればよいですか?次のメソッドを使用できます: typeof、instanceof、constructor、prototype メソッド

js で型を判断する方法、いくつかの例を挙げましょう:

var a = "iamstring.";
var b = 222;
var c= [1,2,3];
var d = new Date();
var e = function(){alert(111);};
var f = function(){this.name="22";};

1 最も一般的な判断方法: typeof() メソッド

alert(typeof a)   ------------> string
alert(typeof b)   ------------> number
alert(typeof c)   ------------> object
alert(typeof d)   ------------> object
alert(typeof e)   ------------> function
alert(typeof f)   ------------> function

typeof によって返される型はすべて文字列形式であることに注意してください。たとえば、次のようになります。

alert(typeof a == "string") -------------> true
alert(typeof a == String) ---------------> false

さらに、typeof は関数の型を決定できます。オブジェクトのタイプを決定することに加えて、オブジェクトを使用するときにさらに便利です。

2. 既知のオブジェクト タイプを決定するメソッド:instanceof

alert(c instanceof Array) ---------------> true
alert(d instanceof Date)
alert(f instanceof Function) ------------> true
alert(f instanceof function) ------------> false

注:instanceof の後にはオブジェクト タイプを指定する必要があり、このメソッドは一部の条件付き選択に適しています。枝。

3. オブジェクトのコンストラクタによる判断:constructor

alert(c.constructor == Array) ----------> true
alert(d.constructor == Date) -----------> true
alert(e.constructor == Function) -------> true

注:クラス継承時にコンストラクタがエラーとなります

例:

function A(){};
function B(){};
A.prototype = new B(); //A继承自B
var aObj = new A();
alert(aobj.constructor === B) -----------> true;
alert(aobj.constructor === A) -----------> false;

instanceof メソッドではこの問題は発生しません。オブジェクトの直接継承と間接継承の両方で true が報告されます。

alert(aobj instanceof B) ----------------> true;
alert(aobj instanceof B) ----------------> true;

コンストラクターの問題を解決するには、通常、オブジェクトのコンストラクターをポイントさせます。手動でそれ自体にコピーする:

aobj.constructor = A; //将自己的类赋值给对象的constructor属性
alert(aobj.constructor === A) -----------> true;
alert(aobj.constructor === B) -----------> false; //基类不会报true了;

4. 汎用的だが非常に面倒なメソッド:prototype

alert(Object.prototype.toString.call(a) === ‘[object String]’) -------> true;
alert(Object.prototype.toString.call(b) === ‘[object Number]’) -------> true;
alert(Object.prototype.toString.call(c) === ‘[object Array]’) -------> true;
alert(Object.prototype.toString.call(d) === ‘[object Date]’) -------> true;
alert(Object.prototype.toString.call(e) === ‘[object Function]’) -------> true;
alert(Object.prototype.toString.call(f) === ‘[object Function]’) -------> true;

は大文字と小文字を間違えて書くことができないため、より面倒ですが、より汎用性が高くなります。

通常は、typeof を使用して判断できます。オブジェクトの型がわかっている場合は、instanceof またはコンストラクター メソッドを使用できます。

上記は、JavaScript にはいくつのデータ型があるかについてです。 JavaScript でデータ型を決定する方法の完全な紹介 JavaScript ビデオ チュートリアル について詳しく知りたい場合は、PHP 中国語 Web サイトに注目してください。


以上がJavaScript にはデータ型がいくつありますか? JavaScript でデータ型を判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlvyestudy.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。