ポリフィル…ポリフィル…ポリフィル…(パート1)

May 08 2022
最近のインタビューでは、何度もポリフィルを書くように言われたので、この投稿では「フロントエンドインタビューでよく聞かれるポリフィル」について説明します。まず、ポリフィルフィルとは何か、なぜそれらが必要なのかを説明します。

最近のインタビューでは、何度もポリフィルを書くように言われたので、この投稿では「フロントエンドインタビューでよく聞かれるポリフィル」について説明します。

まず、ポリフィルフィルとは何か、なぜそれらが必要なのかを説明します。

ポリフィル、またはポリフィラーは、開発者がブラウザーにネイティブに提供することを期待するテクノロジーを提供するコード(またはプラグイン)の一部です。たとえば、ポリフィルを使用して、スタックや再帰、またはArray.flatがIE7でネイティブにサポートされていないために必要なその他の機能を使用して、IE7のArray.flatの機能を模倣できます。

ポリフィルとは何かがわかったところで、JavaScriptでよくある配列ポリフィルを書くことから始めましょう。

Array.map

ポリフィルを作成する前に、関数がどのように機能するかを理解する必要があります。

Array.mapの場合

  1. 配列のすべての要素に対して実行されるコールバック関数とthisArg(オプション)を取ります。
  2. コールバック関数には、要素、インデックス、配列自体の3つの引数があります。
  3. マップは新しい配列を返し、元の配列を変更しません。

  1. 配列プロパティとしてアクセスできるように、Polyfillをプロトタイプにアタッチする必要があります。
  2. 関数内のこれは、customMapが呼び出されている配列を指します。

Array.reduce(よくある質問)

  1. Reduceは、コールバック関数とinitialValue(オプション)の2つの引数を取ります
  2. コールバック関数は4つの引数を取ります。前の値の計算結果であるアキュムレータ、currentValue、インデックス、および配列はオプションです。
  3. Reduceには、配列内のすべての要素の合計やインタビューの観点から、パイプ関数としても使用できるなど、多くの用途があります。
  4. 同様に、reduceRightのポリフィルを作成するように依頼することもできます。

  1. これはArray.mapに似ていますが、コールバック関数を満たす要素のみが配列にプッシュされるという違いだけがあります。
  2. フィルタリングされた配列の長さは、常に元の配列以下になります。
  3. フィルター処理された配列の要素は変更されません。
  4. Array.findはfilterに似ていますが、要素をプッシュする代わりに、コールバック条件を満たす要素を返す必要がありました。

  1. ここで、配列は渡された依存関係でフラット化されます。デフォルトでは、配列は1レベルまでフラット化されます。
  2. ここでは、この問題を解決するために再帰が使用されていますが、スタックまたはジェネレーター関数を使用して解決することもできます。
  3. 同様に、Array.flatMapはインタビューで尋ねることができます。

ボーナスとして、私はもう1つ非常に頻繁に尋ねられるものを共有します(Tekion、Practo、Paytmで私に尋ねました)

練る

  1. バインドは関数の借用に使用され、後で呼び出すことができる新しい関数を返します。
  2. Bindは関数プロトタイプの一部であるため、customBind関数を作成するには、それを関数プロトタイプにアタッチする必要があります。
  3. bindとcallまたはapplyの違いは、callとapplyは呼び出されたときに呼び出されますが、bindは後で呼び出すことができる関数を返すことです。
  4. インタビュアーは、バインドのポリフィルを直接作成するように依頼するか、「this」を使用して関数を呼び出すように依頼された場合に、たとえばsetTimeout(Ripplingで尋ねられた)でバインド関数を使用する必要があるシナリオを提示できます。キーワードが存在する場合は、バインドする必要があります。そうしないと、未定義が返されます。
  5. Reactに精通している場合は、Reactでも広く使用されています。

パート2については、以下を参照してください—https:///@souravsaha101/polyfills-polyfills-polyfills-part-2-419f88b23f8f

LinkedInで私に従ってくださいhttps://www.linkedin.com/in/sourav-saha-66b37b92/

© Copyright 2021 - 2022 | hachiwiki.com | All Rights Reserved