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

云罗郡主
リリース: 2018-10-29 14:33:10
転載
1648 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート