目次
最新の方法(ES5)
Object.keys()メソッドは、指定されたオブジェクトの列挙属性名の配列を返します。したがって、この配列の長さを計算することにより、オブジェクトにプロパティがあるかどうかを確認できます。
Object.getOwnPropertyNames()メソッドは、指定されたオブジェクトのすべてのプロパティの配列を返します。 Object.keys()メソッドと同じように見える場合がありますが、 Object.getOwnPropertyNames()メソッドは、非変更不可能なプロパティも考慮しますが、 Object.keys()は、宣言されていないいくつかのプロパティを逃します。
Object.entries()メソッドの配列を返し、各要素はオブジェクトプロパティのキー価値ペアの配列です。
防弾ソリューション
ES5以前の計画
結論は
ホームページ ウェブフロントエンド jsチュートリアル JavaScriptでオブジェクトが空であるかどうかを確認する方法

JavaScriptでオブジェクトが空であるかどうかを確認する方法

Mar 15, 2025 am 09:11 AM

JavaScriptでオブジェクトが空であるかどうかを確認する方法

この記事では、JavaScriptでオブジェクトが空であるかどうかを確認する方法をすばやく説明します。

毎日のJavaScript開発では、オブジェクトが空であるかどうかを確認する必要がある場合があります。これを行ったことがあるなら、おそらく単一の直接的な解決策がないことを知っています。ただし、さまざまな手法を使用して、独自のユースケースに合ったカスタムソリューションを作成できます。さらに、プロジェクトでJavaScriptユーティリティライブラリを使用している場合、ライブラリはすでにオブジェクトが空であるかどうかを確認するための組み込みの方法を提供する場合があります。

最新の方法(ES5)

このセクションでは、ES5バージョンをサポートする最新のブラウザで使用できるさまざまな方法について説明します。

Object.keys()メソッドは、指定されたオブジェクトの列挙属性名の配列を返します。したがって、この配列の長さを計算することにより、オブジェクトにプロパティがあるかどうかを確認できます。

次の例を見てみましょう。

関数isemptyObject(obj){
    return object.keys(obj).length === 0;
}

console.log(isemptyObject({})); // output:true

var bar = {"foo": "1"};
console.log(object.keys(bar).length);
console.log(isemptyObject(bar)); // output:false
ログイン後にコピー

上記の例に示すように、 foo属性が添付されているため、 isEmptyObject関数は異なる値でisEmptyObject関数を返します。

isEmptyObjectがregexpオブジェクトのtrueを返すことに注意してください。

 console.log(isemptyobject(date.now()); // output:true
console.log(isemptyObject(new regexp()); // output:true
ログイン後にコピー
ログイン後にコピー

また、この方法は未定義の値で呼び出されるため、注意してください。それらは例外を引き起こす可能性があります。その後、空の入力で失敗しない防弾ソリューションを作成します。

 console.log(isemptyObject(null));
ログイン後にコピー

Object.getOwnPropertyNames()メソッドは、指定されたオブジェクトのすべてのプロパティの配列を返します。 Object.keys()メソッドと同じように見える場合がありますが、 Object.getOwnPropertyNames()メソッドは、非変更不可能なプロパティも考慮しますが、 Object.keys()は、宣言されていないいくつかのプロパティを逃します。

次の例を見てみましょう。

関数isemptyObject(obj){
    return object.getownPropertYnames(obj).length === 0;
}

console.log(isemptyObject({})); // output:true

var bar = {"foo": "1"};
console.log(object.getownpropertynames(bar).length);
console.log(isemptyObject(bar)); // output:false
ログイン後にコピー

ご覧のとおり、 Object.keys()を使用して、null値をテストします。

ただし、エッジケースはわずかに異なります - Dateですが、 nullまたはJSON.stringifyの場合はfalseが返されます。

{}を使用して、指定されたオブジェクトが空であるかどうかを確認します。

次の例を見てみましょう。

関数isemptyObject(obj){
    return json.stringify(obj)=== '{}';
}

console.log(isemptyObject({})); // output:true

var bar = {"foo": "1"};
console.log(json.stringify(bar)); // output:{"foo": "1"}
console.log(isemptyObject(bar)); // output:false
ログイン後にコピー

繰り返しますが、エッジの状況はわずかに異なります。 "1651283138454"はregexpで使用されます。したがって、 Object.getOwnPropertyNamesメソッドを使用してください!

 console.log(isemptyobject(date.now()); // output:false
console.log(isemptyObject(new regexp()); // output:true
ログイン後にコピー

別の変化はfalseですが、それはあなたが期待するものではないかもしれません。

 console.log(isemptyobject(null)); // output:false
ログイン後にコピー

Object.entries()メソッドの配列を返し、各要素はオブジェクトプロパティのキー価値ペアの配列です。

次の例を見て、それが正確にどのように機能するかを理解しましょう。

関数isemptyObject(obj){
    return object.entries(obj).length === 0;
}

console.log(isemptyObject({})); // output:true

var bar = {"foo": "1"};
console.log(object.entries(bar)); // output:['foo'、 '1']]
console.log(object.entries(bar).length);
console.log(isemptyObject(bar)); // output:false
ログイン後にコピー

ご覧のとおり、 Object.keys()メソッドは、Regexp Object Edge Caseの例で同じ結果を示します。未定義の入力の場合、例外もスローします。

 console.log(isemptyobject(date.now()); // output:true
console.log(isemptyObject(new regexp()); // output:true
ログイン後にコピー
ログイン後にコピー

防弾ソリューション

上記の単純な解決策の1つの問題は、特別なオブジェクト(日付など)、未定義の値、またはプリミティブ(整数など)のエッジケースの一貫性のない結果を与えることです。これは、シンプルだが信頼性の高いソリューションです。

関数isemptyObject(value){
  const type = typeof値
  const isobject = value!= null && type === 'object'
  return isobject && object.keys(value).length === 0;
}
ログイン後にコピー

この方法は、その名前で正確に実行されます。入力値がオブジェクトと空のオブジェクトの両方である場合にのみ、 trueを返します。 nullおよびundefined値で動作します - オブジェクトではないためfalseを返します。 Regexpのような特別なオブジェクトの場合、特別なキーを定義しないためtrueが返されます。また、空のアレイにはtrue 、非空白アレイの場合はfalse返されます。

ES5以前の計画

このセクションでは、古いブラウザでも機能するソリューションについて説明します。この方法は、オブジェクトが空であるかどうかを確認する組み込みの方法が組み込まれていない場合、JavaScript ES5 ERAの前によく使用されました。

次の例を見てみましょう。

関数isemptyObject(obj){
    for(objのvarプロパティ){
        if(obj.hasownproperty(プロパティ)){
            falseを返します。
        }
    }

    trueを返します。
}

console.log(isemptyObject({})); // output:true
console.log(isemptyObject({"foo": "1"}); // output:false
ログイン後にコピー

上記の例では、オブジェクトが空であるかどうかを確認するために呼び出すことができるカスタム関数を構築しました。パラメーターを受け入れ、テストするにはオブジェクトを渡す必要があります。 FALSEでは、それ以外の場合は、 isEmptyObject関数を異なる値で返します。上記の例に示すように、それを異なる値で呼び出し、 isEmptyObjectメソッドを使用して出力を記録します。これにより、オブジェクトが空であるかどうかを確認できます。

以下の例を簡単に見てみましょう。

 jquery.isemptyObject({});
jquery.isemptyObject({"foo": "1"});
ログイン後にコピー

ご覧のとおり、 _.isEmpty()を使用することは非常に簡単です。

結論は

この記事では、JavaScriptでオブジェクトが空であるかどうかを確認するいくつかの異なる方法について説明します。 JavaScriptプログラミングに関する他のチュートリアルをご覧ください!

この投稿は、ニーマムガンガの貢献で更新されました。

以上がJavaScriptでオブジェクトが空であるかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

javascriptの分解:それが何をするのか、なぜそれが重要なのか javascriptの分解:それが何をするのか、なぜそれが重要なのか Apr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は?
または:
Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は? または: Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Apr 04, 2025 pm 05:36 PM

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの進化:現在の傾向と将来の見通し JavaScriptの進化:現在の傾向と将来の見通し Apr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? Apr 04, 2025 pm 05:09 PM

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

JavaScriptエンジン:実装の比較 JavaScriptエンジン:実装の比較 Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

フロントエンド開発でVSCodeと同様に、パネルドラッグアンドドロップ調整機能を実装する方法は? フロントエンド開発でVSCodeと同様に、パネルドラッグアンドドロップ調整機能を実装する方法は? Apr 04, 2025 pm 02:06 PM

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...

See all articles