この記事では、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 サイトの他の関連記事を参照してください。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール
