ホームページ >ウェブフロントエンド >jsチュートリアル >4 のすべてのプロジェクトで使用すべき隠れた JavaScript の宝石

4 のすべてのプロジェクトで使用すべき隠れた JavaScript の宝石

Barbara Streisand
Barbara Streisandオリジナル
2024-11-22 12:50:16881ブラウズ

Hidden JavaScript Gems You Should Use in Every Project in 4

JavaScript は現代の Web 開発のバックボーンであり、そのエコシステムは進化し続けるため、常に新しくてエキサイティングな探索が可能です。この記事では、2024 年にプロジェクトを大幅に強化できる 10 の隠された宝石 (JavaScript メソッド、API、テクニック) について詳しく説明します。これらの機能はそれぞれ、時間を節約し、開発を簡素化し、新しい可能性を解き放つように設計されています。

  1. フォーマット用の国際 API Intl API は、国際化と書式設定を強力にサポートします。日付、数値、通貨のいずれを扱う場合でも、この API を使用すると、ユーザーフレンドリーでロケール固有の形式でデータを簡単に表示できます。

例: 通貨の書式設定

const formatter = new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'USD',
});
console.log(formatter.format(123456.789)); // Output: "3,456.79"

ユースケース: 電子商取引プラットフォームまたは金銭的価値を表示するアプリケーション。

Gem である理由: 単一の API で複数のロケールを処理でき、手動による書式設定の複雑さを回避できます。

    ディープコピー用の
  1. structurdClone() カスタムのディープ コピー関数を作成したり、lodash などのサードパーティ ライブラリに依存したりする必要はありません。 StructuredClone() は、オブジェクトを深く複製するクリーンかつ効率的な方法を提供する組み込み JavaScript メソッドです。

例: オブジェクトのクローン作成

const original = { name: 'John', details: { age: 30 } };
const clone = structuredClone(original);

clone.details.age = 31;
console.log(original.details.age); // Output: 30

ユースケース: 状態管理またはデータ処理におけるネストされたオブジェクトのクローン作成。

Gem である理由: 高速かつシンプルで、マップ、セット、さらには日付などの複雑なデータ構造でも機能します。

  1. 中止可能なフェッチリクエスト用のシグナル API Signal API を使用すると、フェッチ リクエストを中止できるため、ネットワーク操作をより詳細に制御できるようになります。これは、ユーザーが別の場所に移動したり、複数のリクエストをトリガーしたりする可能性があるシナリオで特に役立ちます。

例: フェッチリクエストを中止する

const controller = new AbortController();

fetch('https://api.example.com/data', { signal: controller.signal })
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Fetch aborted:', error));

// Abort the request
controller.abort();

ユースケース: 不要なリクエストをキャンセルすることで、検索コンポーネントまたはオートコンプリートコンポーネントのパフォーマンスを向上させます。

Gem である理由: 不要な処理を防ぎ、帯域幅を節約し、パフォーマンスを向上させます。

  1. 配列の平坦化とマッピングのための flatMap() flatMap() は、map() と flat() の機能を組み合わせて、配列の変換と平坦化を一度に行うことができます。

例: 平坦化と変形

const nested = [[1], [2, 3], [4]];
const result = nested.flatMap(num => num.map(x => x * 2));
console.log(result); // Output: [2, 4, 6, 8]

ユースケース: 階層データの操作、または入れ子構造の配列の変換。

Gem である理由: 複数の連鎖メソッドが必要となる操作を簡素化します。

  1. メモリ管理のためのWeakRef WeakRef オブジェクトを使用すると、オブジェクトへの弱参照を作成し、オブジェクトがメモリ内に不必要に保持されるのを防ぐことができます。これは、大規模なアプリケーションでメモリを管理する場合に役立ちます。

例: WeakRef の使用

let obj = { name: 'Memory Intensive Object' };
const ref = new WeakRef(obj);

// Access the object
console.log(ref.deref()?.name); // Output: "Memory Intensive Object"

// Dereference to free memory
obj = null;
console.log(ref.deref()); // Output: undefined

ユースケース: キャッシュまたはデータ集約型アプリケーションでのオブジェクトの処理。

Gem である理由: メモリ リークを削減し、リソース使用量を最適化します。

  1. コード分割のための動的 import() 動的な import() 関数を使用すると、モジュールを非同期でロードできるため、コードをチャンクに分割してアプリのパフォーマンスを向上させるのに最適です。

例: モジュールの遅延ロード

const formatter = new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'USD',
});
console.log(formatter.format(123456.789)); // Output: "3,456.79"

ユースケース: SPA での非クリティカルなリソースのプログレッシブ読み込み。

これが宝石である理由: パフォーマンスとユーザー エクスペリエンスを最適化するために必須です。

  1. 人間が読める時間の Intl.RelativeTimeFormat Intl.RelativeTimeFormat API を使用すると、「3 日前」や「2 時間後」などの相対時間を簡単にフォーマットできます。

例: 相対時間を表示する

const original = { name: 'John', details: { age: 30 } };
const clone = structuredClone(original);

clone.details.age = 31;
console.log(original.details.age); // Output: 30

使用例: タイムスタンプを表示するソーシャル メディア アプリまたはブログ。

Gem である理由: 複数の言語をサポートしながら、一般的なタスクを簡素化します。

  1. 複数の Promise を処理するための Promise.allSettled() 複数の Promise を操作する場合、Promise.allSettled() は、成功か失敗かにかかわらず、すべての結果を確実に取得します。

例: 複数の Promise の処理

const controller = new AbortController();

fetch('https://api.example.com/data', { signal: controller.signal })
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Fetch aborted:', error));

// Abort the request
controller.abort();

ユースケース: 一部が失敗する可能性がある複数の API からデータを取得します。

これが逸品である理由: 失敗しても短絡することなく、包括的な結果が得られます。

  1. 安全なプロパティアクセスのためのオプションのチェーン オプションのチェーン (?.) は、null または未定義のエラーを気にせずに、深くネストされたプロパティにアクセスするための救世主です。

例: ネストされたプロパティへのアクセス

const nested = [[1], [2, 3], [4]];
const result = nested.flatMap(num => num.map(x => x * 2));
console.log(result); // Output: [2, 4, 6, 8]

ユースケース: API または複雑なデータ構造の操作。

Gem である理由: 定型文を削減し、実行時エラーを回避します。

  1. URL 操作用の URL API URL API は、ブラウザーまたは Node.js で URL を操作するための洗練された方法を提供します。

例: URL の変更

let obj = { name: 'Memory Intensive Object' };
const ref = new WeakRef(obj);

// Access the object
console.log(ref.deref()?.name); // Output: "Memory Intensive Object"

// Dereference to free memory
obj = null;
console.log(ref.deref()); // Output: undefined

使用例: Web アプリケーションでのクエリ文字列の管理。

Gem である理由: 文字列連結よりも信頼性が高く、読みやすいです。

結論
JavaScript には、開発者としての生活をより簡単かつ効率的にするための隠れた魅力が満載です。これらの API、メソッド、テクニックをプロジェクトに組み込むことで、2024 年にはよりクリーンで保守性が高く、よりパフォーマンスの高いコードを作成できるようになります。

次のプロジェクトで使用することに興奮している宝石はどれですか?以下のコメント欄でご意見を共有してください!

つながりを維持
JavaScript のヒントとチュートリアルの詳細については:

?私たちのウェブサイトにアクセスしてください: GladiatorsBattle.com
? Twitter でフォローしてください:@GladiatorsBT
? DEV に関する記事をご覧ください: @GladiatorsBT
? CodePen のインタラクティブなデモをチェックしてください: HanGPIIIErr
一緒に素晴らしいものを作りましょう! ?

以上が4 のすべてのプロジェクトで使用すべき隠れた JavaScript の宝石の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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