ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptのtypeofと型判定について詳しく解説

JavaScriptのtypeofと型判定について詳しく解説

小云云
リリース: 2018-01-20 13:54:35
オリジナル
1453 人が閲覧しました

この記事では主に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"
ログイン後にコピー

配列とオブジェクトの両方に対して「オブジェクト」を返すため、日常の開発でよく必要になるのは、変数が配列であるかオブジェクトであるかを判断する方法です。

型判定

型判定とは、一般的に配列か空のオブジェクトかを判定することを指します。この要件に対して私が毎日使ったり見たりしてきた判定方法です

配列かどうか判定する

配列がある: var a = [1,2,3,4,5];

方法1:

toString .call(a); // "[オブジェクト配列]" メソッド 2:

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

a.constructor == Array; // trueより一般的には、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
ログイン後にコピー

変数は次のとおりです。

方法 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の比較使用例を詳しく説明

jsでのtypeofの使い方のまとめ

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート