ホームページ > 記事 > ウェブフロントエンド > JavaScriptのtypeofと型判定
この記事では主にJavaScriptのtypeofと型判定(詳細解説)をベースにした記事をお届けします。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。
typeof
ECMAScript には、未定義、Null、Boolean、Number、String の 5 つのプリミティブ型があります。 typeof 演算子を使用して変数の型を検索できることは誰もが知っていますが、参照型変数の場合、この演算子はオブジェクトのみを返します。つまり、typeof は基本的な型値変数のみを正しく識別できます。
var a = "abc"; console.log(typeof a); // "string" var b = 123; console.log(typeof b); // "number" var c = true; console.log(typeof c); // "boolean" var d = null; console.log(typeof d); // "object" var f = undefined; console.log(typeof f); // "undefined" var g; console.log(typeof g); // "undefined" console.log(typeof x); // "undefined"
なぜ typeof 演算子が null 値に対して "object" を返すのか疑問に思われるかもしれません。これは実際には、JavaScript の元の実装のバグであり、その後 ECMAScript に採用されました。現在、null はオブジェクトのプレースホルダーとみなされているため、矛盾は説明されていますが、技術的にはまだプリミティブな値です。
最後のものは奇妙で、存在しない変数 x の type は、実際には「未定義」ではなく「オブジェクト」を返します。
次のコードになります:
var a = function() { }; console.log(typeof a); // "function" var b = [1,2,3]; console.log(typeof b); // "object" var c = { }; console.log(typeof c); // "object"
配列とオブジェクトの両方に対して "object" が返されるため、日常の開発でよく必要になるのは、変数が配列であるかオブジェクトであるかを判断する方法です。
型判定
型判定とは、一般的に配列か空のオブジェクトかを判定することです。この要件に対して私が毎日使ったり見たりした判定方法です
配列かどうか判定する
配列がある: var a = [1,2,3,4,5];
方法one:
toString.call(a); // "[オブジェクト配列]" メソッド 2:var a = [1,2,3,4,5]; console.log(toString.call(a)); // "[object Array]" console.log(a instanceof Array); //true console.log(a.constructor == Array); //true変数があります: var obj = {};
方法 1:
JSON.stringify(obj); // "{}" は空中括弧かどうかを判断するために JSON オブジェクトに変換されます
方法 2:if(obj.id) { //属性 ID が存在する場合...} このメソッドは比較的単純で、ほとんどの人が思いつくことができます。前提として、オブジェクトに特定の属性が存在します。
メソッド 3:function isEmptyObject(e) { var t; for (t in e) return !1; return !0 } //trueisEmptyObject(obj); //falseisEmptyObject({ "a":1, "b":2});
このメソッドは、jQuery の isEmptyObject() メソッドの実装です。
JavaScriptでのtypeofの使い方の紹介
JavaScriptでのtypeofとinstanceofの比較使用の詳細な例
以上がJavaScriptのtypeofと型判定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。