-
JavaScriptの厳密モードとは何ですか?
厳密モード 厳密モードは、ECMAScript5によってjavascriptに導入されました。厳密モードを使用すると、JavaScriptのサイレントエラーはエラーをスローするため、簡単に検出できます。これにより、JavaScriptのデバッグが非常に簡単になり、開発者が不要なミスを回避するのに役立ちます。 厳密モードでは、宣言されていない変数が検出されると例外がスローされるため、メモリリークが大幅に削減されます。 strictモードが必要なコードの前に「usestrict」を使用すると、strictモードを有効にできます。 次の例では、2つの変数が使用されました。1つは関数の外部にあ
-
JavaScriptでオブジェクトをフリーズする方法は?
リアルタイムの世界では、JavaScriptには他の言語で見られるような従来のクラスはありません。オブジェクトとコンストラクターがあります。Object.freeze() は、オブジェクトをフリーズするのに役立つ多くのコンストラクタメソッドの1つです。 オブジェクトをフリーズすると、新しいプロパティをオブジェクトに追加できなくなり、オブジェクトが独自のプロパティを変更することもできなくなります。 Object.freeze() オブジェクトの列挙可能性、構成可能性、書き込み可能性、およびプロトタイプを常に保持しようとします。フリーズされたコピーは作成されません。 アプリケーション 1)
-
JavaScriptのフィッシャー-イェーツシャッフルとは何ですか?
フィッシャー-イェーツシャッフルアルゴリズム このアルゴリズムは、配列内の要素をシャッフルするためのものです。配列内の要素をシャッフルするために独自のロジックを作成できますが、多くの開発者は F isher-Yates 最新のシャッフルアルゴリズムは、配列内の要素をシャッフルするための最良の方法です。このアルゴリズムには次の手順があります。 従う手順 このアルゴリズムによれば、配列を後ろから前にループする必要があります。たとえば、次の例では、インデックス0からインデックス7までの8つの要素(A、B、C、D、E、F、G、H)で構成される配列があります。したがって、最初のループパスは次の
-
JavaScriptでポリモーフィズムを実装する方法は?
ポリモーフィズム ポリモーフィズム オブジェクト指向プログラミング(OOP)の信条の1つです。特定の提供されたオブジェクトとの動作を共有またはオーバーライドできるようにオブジェクトを設計するのに役立ちます。 ポリモーフィズム 継承を利用する これを実現するために。 次の例では、クリケットなどの子オブジェクト およびテニス 選択を上書きしました 親オブジェクトから呼び出されたメソッドゲーム 出力に示されているように、それぞれ新しい文字列を返しました。一方、 select をオーバーライドする代わりに、別の子オブジェクト「football」 メソッド、メソッドを共有(継承)し、出力に示されてい
-
JavaScriptでのカリー化とは何ですか?
カリー化 カリー化 は、複数の引数を持つ関数を、単一の引数を持つ関数のシーケンスに評価する手法です。つまり、関数が一度にすべての引数を取るのではなく、最初の引数を取り、2番目の引数を取る新しい関数を返す場合すべての引数が満たされるまで、3番目の関数を受け取る新しい関数を返します。 カリー化機能の使用 a)同じ変数を何度も渡さないようにするのに役立ちます。 b)イベント処理に非常に役立ちます。 構文: function Myfunction(a) { return (b) => { &
-
JavaScriptのメモリライフサイクルについて詳しく説明してください。
メモリサイクル プログラミング言語に関係なく、メモリサイクルはどのプログラミング言語でもほぼ同じです。 メモリライフサイクルには3つのステップがあります 1)メモリの割り当て。 2)割り当てられたメモリを使用する(読み取りまたは書き込み) 3)不要な場合は、割り当てられたメモリを解放します。 最初と最後の部分は低水準言語で直接接続されていますが、JavaScriptなどの高水準言語では間接的に接続されています。 1)javascriptでのメモリの割り当て JavaScriptはガベージコレクション言語と呼ばれます。つまり、変数が宣言されると、自動的にメモリが割り当てられます。宣
-
JavaScriptでの参照カウントガベージコレクションについて詳しく説明してください。
参照カウントガベージコレクション これは最も単純なガベージコレクションアルゴリズムです。このアルゴリズムは、参照が残っていないオブジェクトを探します。オブジェクトに参照が付加されていない場合、オブジェクトはガベージコレクションの対象になります。ガベージコレクションについては、以下の例で説明します。 例 var obj = { x: { y: 2 } }; // 2 objects created. One is re
-
JavaScriptのメモリリークについて詳しく説明してください。
JavaScriptでのメモリリーク JavaScriptはガベージコレクション言語と呼ばれます。つまり、変数が宣言されると、自動的にメモリが割り当てられます。宣言された変数への参照がなくなると、割り当てられたメモリが解放されます。メモリリークまたはメモリ関連の問題のほとんどは、メモリの解放中に発生します。 いくつかの一般的なJavaScriptリーク 1)偶発的なグローバル変数 宣言されていない変数が参照されると、javascriptはグローバルオブジェクトに新しい変数を作成します。次の例1では、言語の目的が「myArray」関数の変数のみを参照することであるとしましょう。 varを
-
循環参照はJavaScriptでどのようにメモリリークを引き起こす可能性がありますか?
循環参照 循環参照は、2つの変数が各オブジェクトに1の参照カウントを与えることによって相互に参照するときに形成されます。純粋なガベージコレクションシステムでは、関連する変数に参照がない場合、循環参照は問題にならない可能性があります。そのシナリオでは、宣言された変数はガベージコレクションされます。参照カウントシステムでは、参照カウントをゼロにすることはできないため、どちらのオブジェクトも破棄されません。 参照カウントとガベージコレクションが使用されるハイブリッドシステムでは、システムが循環参照を識別できないため、メモリリークが発生します。 例 次の例は、javascriptオブジェクトとD
-
JavaScriptでマージソートを実装する方法は?
マージソート マージソートは、分割統治タイプのソートアルゴリズムの例です。マージソートの入力は、いくつかの要素の配列であり、通常、最小から最大に配置する必要があります。 マージソートで従う手順 マージソートは、配列を2つのサブ配列に分割し、後で各配列を別の2つの配列に分割し、以下同様に、多数の単一要素配列が残るまで続けます。たとえば、次の例では、配列[4,7,5,9,1,3,8,2]は、[4]、[7]、[5]、[9]などの単一の配列要素に分割されます。 [1]、[3]、[8]、[2]。 2つのアレイが比較され、連結されるように、アレイの比較が開始されます。次の例では、一度に2つの配列を
-
JavaScriptのマークアンドスイープアルゴリズムについて詳しく説明してください。
マークアンドスイープアルゴリズム マークアンドスイープアルゴリズムは、「不要になったオブジェクト」ではなく、「到達不能な」オブジェクトを探します。このアルゴリズムは、参照カウントアルゴリズムを改良したものです。 このアルゴリズムは、実際には3つの重要なステップを経ています。 ルート:一般に、ルートはコードで使用されるグローバル変数です。 javascriptのウィンドウオブジェクトはルートとして機能できます。このアルゴリズムは、グローバルオブジェクトルートを使用して、オブジェクトが到達可能か到達不能かを検出します。 このアルゴリズムは、すべてのルートとその子を監視します。監視中、提供された
-
JavaScriptでオブジェクトのクローンを作成するにはどうすればよいですか?
クローン作成 javascriptでのクローン作成は、既存のオブジェクトの作成を回避するために、オブジェクトのプロパティを別のオブジェクトにコピーすることに他なりません。 javascriptオブジェクトのクローンを作成する方法はいくつかあります。 1)各プロパティを繰り返し処理し、それらを新しいオブジェクトにコピーします。 2)JSONメソッドを使用します。 3)object.assign()メソッドを使用します。 それぞれの方法を個別に説明しましょう a)各プロパティを繰り返し処理し、それらを新しいオブジェクトにコピーします。 これは、各プロパティが繰り返されて新しいオブジ
-
JavaScriptでのMapの使用は何ですか?
地図 マップはキーと値のペアを保持し、キーの実際の挿入順序を記憶しています。マップでは、一意の値のみを保存できます。 構文 new Map([iterable]) ケース1:地図がない Mapがない場合、javascriptオブジェクトは1つのキーオブジェクトのみを承認するため、複数のキーを提供すると、最後のキーのみが記憶されます。次の例では、aやbなどの多くのキーを提供しているにもかかわらず、bのみが記憶され、出力として表示されます。したがって、この欠点を解消するために、「マップ」がjavascriptに存在するようになりました。 例 <html> <body>
-
切り離されたDOM要素がJavaScriptでメモリリークを引き起こすにはどうすればよいですか?
切り離されたDom要素 切り離されたDOM要素は、DOMから削除された要素ですが、JavaScriptのためにそれらのメモリは引き続き保持されます。これは、要素が任意の変数またはオブジェクトへの参照をどこかに持っている限り、DOMから破棄された後でもガベージコレクションされないことを意味します。 DOMは二重リンクされたツリーのようなものです。つまり、ツリー内のノードへの参照により、ツリー全体がガベージコレクションから停止されます。 javascriptでDOM要素を作成する例を見てみましょう。要素を作成した後、それを破棄しますが、それを保持している変数を削除するのを忘れてください。この
-
JavaScriptでのArray.Some()メソッドの使用は何ですか?
Array.some() Array.some()は、指定された要素が提供された関数(ユーザーによって指定された関数)によって実装されたテストに合格したかどうかをチェックします。すべての要素がテストに合格したときにtrueを返すArray.Every()とは異なり、Array.some()は配列内の1つの要素がテストに合格した場合でもtrueを返し、すべての要素がテストに失敗した場合はfalseを返します。次の例では、Array.some()は、配列内のいずれかのsalary要素が指定されたsalary limit(15000)を超えたかどうかをチェックし、実行します。ブール(true、fa
-
JavaScriptでのArray.Find()メソッドの使用は何ですか?
Array.find() Array.find()は、指定されたテスト条件を満たす配列の最初の要素の値を返すために使用されます(ユーザー指定の条件)。指定されたテスト条件が失敗した場合、array.find()はundefinedを返します。次の例では、array.find( )配列内の価格要素が指定されたテスト価格(12000)を超えているかどうかを確認します。提供されたテスト条件がtrueの場合、テストに合格した最初の値が実行されます。未定義でない場合は実行されます。 例 <html> <body> <p id="price">&
-
JavaScriptでのArray.findIndex()メソッドの使用は何ですか?
Array.findIndex() Array.findIndex()は、提供された関数によって実装されたテストに合格した配列要素の最初のインデックスを返します。このメソッドは、配列に存在する要素ごとに関数を1回実行します。関数の条件が満たされると、条件を満たした最初の要素のインデックスが返され、そうでない場合は値「-1」が返されます。 要素が指定された条件を満たすと、findIndex()は他の値をチェックしません。次の例では、findIndex()メソッドは、salary要素が指定されたsalary 15000より大きいかどうかをチェックします。条件を満たす最初の要素は17000である
-
JavaScriptでのMath.abs()メソッドの使用は何ですか?
Math.abs() Math.abs()は、数値の絶対値を示します。つまり、 p if p > 0 &n
-
JavaScriptでのMath.pow()メソッドの使用は何ですか?
Math.pow() Math.pow() JavaScriptの関数は、数値の累乗、つまり数値を指数で累乗した値を取得するために使用されます。このメソッドは、2つのパラメーターを受け入れます。1つはベースで、もう1つは指数です。整数、分数、負数など、どのような種類のパラメーターを使用するかは関係ありません。任意の値を取り、操作を続行できます。 構文 Math.pow(base, exponent) 例-1 次の例では、2つの正の値を取ります。最初のパラメーター(ベース)は9で、2番目のパラメーター(指数)は3です。Math.pow()を使用して、9の3乗を求めます。 <html&
-
JavaScriptでのsubstr()メソッドの使用は何ですか?
substr() substr() メソッドは、指定されたインデックスの文字から始まる文字列の一部を抽出し、指定された文字数を返します。元の文字列は変更されません。 構文 substr() メソッドは2つのパラメーターを受け入れます。1つは開始で、もう1つは長さです str.substr(start , length) 引数 a)開始:開始は、サブ文字列がベース文字列から抽出される開始インデックスを定義します。 b)長さ:長さは、指定された文字列の先頭から抽出される文字数を定義します。関数の2番目の引数が未定義の場合、長さの最初から最後までのすべての文字が抽出されます。 例 次