JavaScriptのtypeofと型判定

小云云
小云云オリジナル
2018-01-02 10:19:381368ブラウズ

この記事では主に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:


a instanceof Array; // true メソッド 3:


a.constructor == Array;最初のメソッド このメソッドはより一般的で、Object.prototype.toString.call(a) の略称です。

instanceofとコンストラクターで判断される変数は現在のページで宣言されている必要があります。たとえば、ページ(親ページ)にはフレームがあり、ページ(子ページ)はフレーム内で参照され、aは子ページで宣言されます。 , そして、親ページの変数に代入されています 変数を判定する際に Array == object.constructor が false を返します


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と型判定の分析例

JavaScriptでのtypeofとinstanceofの比較使用の詳細な例

以上がJavaScriptのtypeofと型判定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。