-
varとletのJavaScriptの違い
javascriptで変数を宣言するために知っているように、varで宣言するかletで宣言するかの2つのオプションがあります。ここで問題となるのは、varをいつ使用するか、いつ使用するか、つまり、両方の主な違いは何かということです。 次のテキストでは、varとletinjavascriptの主な違いを理解しています。 letとvarの主な違いは、letで定義された変数のスコープは宣言されたブロックに限定され、varで宣言された変数はグローバルスコープを持つことです。したがって、varは、ブロックスコープに関係なく変数をグローバルに定義するキーワードであると言えます。 letのスコープは、
-
JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
オブジェクトのディープコピーは、コピーするオブジェクト内で遭遇するすべてのオブジェクトを複製します。コピーと元のオブジェクトは何も共有しないため、元のオブジェクトのコピーになります。 最も簡単な方法は、オブジェクトをJSON文字列に変換し、それをJSオブジェクトに戻すことです。ただし、この方法ではメソッドのコピーはできません。 例 let obj = { foo: 1, bar: { baz: 'test' } } let newObj = JSON.parse(JSON.stringify(obj)); obj.bar.b
-
sleep()のjavascriptバージョンとは何ですか?
JavaScriptにはネイティブのスリープ機能がありません。ただし、この制限を回避するために使用できるいくつかの回避策があります。スリープの機能を実現する最も簡単な方法の1つは、setTimeoutとasync/awaitを使用して独自のスリープ関数を作成することです。 例 const sleep = milliseconds => new Promise(resolve => setTimeout(resolve, milliseconds)) // Using callbacks sleep(1000).then(() => console.log("wait
-
javascriptで列挙型を定義するための構文は何ですか?
列挙型はJavaScriptではネイティブにサポートされていません。ただし、Object.freezeを使用して列挙型を作成するには、列挙可能なすべてのプロパティを含むオブジェクトを作成してから、オブジェクトをフリーズして、新しい列挙型を追加できないようにします。 例 const Color = { RED: 1, BLUE: 2, GREEN: 3, YELLOW: 4 }; Object.freeze(Color); // Example usage: let carColor = Co
-
JavaScriptセットとは何ですか?
セットは、特定の順序や繰り返し値なしで特定の値を格納できる抽象データ型です。これは、有限集合の数学的概念をコンピューターで実装したものです。他のほとんどのコレクションタイプとは異なり、セットから特定の要素を取得するのではなく、通常、セットのメンバーシップの値をテストします。 順序が重要ではないコンテナに一意の要素を格納し、主にさまざまなオブジェクトのメンバーシップを確認するために使用する場合は、セットを使用する必要があります。セットは、数学セットの場合のように、和集合、積集合、差などの演算を実行する場合にも役立ちます。 Setオブジェクトを使用すると、プリミティブ値であろうとオブジェクト参
-
JavaScriptでセットを作成する方法は?
セットは、特定の順序や繰り返し値なしで特定の値を格納できる抽象データ型です。これは、有限集合の数学的概念をコンピューターで実装したものです。他のほとんどのコレクションタイプとは異なり、セットから特定の要素を取得するのではなく、通常、セットのメンバーシップの値をテストします。 jsでセットを作成する方法 − 1。空のSetコンストラクターを使用する let mySet = new Set(); mySet.add(1); mySet.add(1); console.log(mySet) 出力 Set { 1 } 2。 iterableをコンストラクターに渡す セットコンストラクタ
-
javascriptのセットからすべての要素を削除するにはどうすればよいですか?
JavaScriptのSetクラスは、特定のセットオブジェクトからすべての要素を削除するための明確なメソッドを提供します。この方法は次のように使用できます- 例 let mySet = new Set(); mySet.add(1); mySet.add(2); mySet.add(1); mySet.add(3); mySet.add("a"); console.log(mySet) mySet.clear(); console.log(mySet) 出力 Set { 1, 2, 3, 'a' } Set { } 要素を繰り返し処理して、要素を個別に削除
-
値がJavascriptセットで検索されているかどうかを知る方法は?
JavaScriptのSetクラスは、特定のsetオブジェクト内の要素を検索するためのhasメソッドを提供します。この方法は次のように使用できます- 例 let mySet = new Set(); mySet.add(1); mySet.add(2); mySet.add(1); mySet.add(3); mySet.add("a"); console.log(mySet) console.log(mySet.has(55)) console.log(mySet.has("")) console.log(mySet.has({})) console.
-
セット内のオブジェクトキーのJavascript検索
JavaScriptのSetクラスは、特定のsetオブジェクト内の要素を検索するためのhasメソッドを提供します。セット内のオブジェクトを検索する場合は、そのオブジェクトへの参照を提供する必要があります。異なるメモリアドレスを持つ同一のオブジェクトは、等しいとは見なされません。この方法は次のように使用できます- 例 let mySet = new Set(); let myObj = {name: "John"} mySet.add(1); mySet.add(3); mySet.add("a"); mySet.add(myObj); console.l
-
JavaScriptセットを使用してコードを高速化するにはどうすればよいですか?
セットを使用してコードを高速化する方法を理解するには、最初に、配列の代わりにセットを使用する必要があるシナリオを理解する必要があります- セットには一意の要素しか含まれていないため、構造に重複データを保存しないようにすることが事前にわかっていると簡単です。 union()、intersect()、difference()などのSetの基本的な操作は、提供されているネイティブの組み込み操作に基づいて簡単に効果的に実装できます。 delete()メソッドにより、2つの配列に対して同じことを行うよりも、2つのセット間の交差/結合がはるかに快適になります。これにより、セットでのランダムな削
-
JavaScript RegExp\sメタ文字
\ sメタ文字は、空白文字を見つけるために使用されます。 空白文字は − スペース文字 タブ文字 キャリッジリターン文字 改行文字 垂直タブ文字 フォームフィード文字 例 // Not containing any white spaces: console.log(/\s/.test("1")) console.log(/\s/.test("test")) // Containing whitespace characters: console.log(/\s/.test(" ")) console.log(/\s/.tes
-
JavaScript RegExp\Wメタ文字
\ Wメタ文字は、単語以外の文字を検索するために使用されます。 単語文字は、a〜z、A〜Z、0〜9の文字で、_(アンダースコア)文字を含みます。 例 // Containing any non word character: console.log(/\W/.test(" ")) console.log(/\W/.test(".!@#")) // Not containing non word characters: console.log(/\W/.test("a")) console.log(/\W/.test("B&
-
JavaScriptのミックスイン
JavaScriptは複数の継承をサポートしていません。ただし、1つのオブジェクトに2つのクラスの機能を追加する必要がある場合があります。 Mixinは、継承を使用せずにプロパティをオブジェクトに追加する方法です。 たとえば、Personクラスがあるとします。そして、私たちは人々がこんにちはと言うことができるようにしたいと思います。 sayHiMixinを作成し、それを使用して人々にこんにちはと言わせることができます- 例 let sayHiMixin = { sayHi() { console.log(`Hello ${t
-
JavaScriptのクラスキーワード
ES6で導入されたJavaScriptクラスは、JavaScriptプロトタイプベースの継承に対する構文上の糖衣です。クラスは実際には「特別な機能」です。次の構文を使用してclassキーワードを使用してJavaScriptでクラスを定義できます- class Person { // Constructor for this class constructor(name) { this.name = name; } // an instance met
-
Javascriptでのクロージャの実用的な使用法は?
クロージャとは、関数と、その関数が宣言された字句環境の組み合わせです。 function outerFunc() { var name = "TutorialsPoint"; // name is a local variable created by outerFunc return function innerFunc() { // innerFunc() is the inner function, a closure console
-
Javascriptでのメモリリークの根絶
ガベージコレクションされた言語でのリークの主な原因は、不要な参照です。メモリリークを理解するために、メモリ解放(ガベージコレクション)がどのように機能するかを見てみましょう。 マークアンドスイープアルゴリズム -このアルゴリズムは、「オブジェクトは不要になりました」の定義を「オブジェクトに到達できません」に減らします。このアルゴリズムは、ルートと呼ばれるオブジェクトのセットの知識を前提としています。 JavaScriptでは、ルートはグローバルオブジェクトです。定期的に、GCはこれらのルートから開始し、これらのルートから参照されているすべてのオブジェクトを再帰的に検索します。したがって、ルー
-
Javascriptでの循環参照の例
循環参照は、2つの別々のオブジェクトが相互に参照を渡す場合に発生します。 古いブラウザでは、循環参照がメモリリークの原因でした。ガベージコレクションアルゴリズムが改善され、サイクルと循環依存関係を適切に処理できるようになったため、これは問題ではなくなりました。 ただし、純粋な設計の観点からは、循環参照は依然として悪いことであり、コードの臭いがあります。循環参照は、相互に参照している2つのオブジェクトが緊密に結合されており、一方のオブジェクトを変更すると、もう一方のオブジェクトも変更する必要がある場合があることを意味します。 DogとPersonの2つのオブジェクトがあるとします。犬のオブ
-
JavaScriptでのメソッドチェーン
連鎖メソッドは、カスケードとも呼ばれ、1つの連続したコード行で、オブジェクトに対して次々にメソッドを繰り返し呼び出すことを意味します。メソッドチェーンが繰り返しを回避するのに役立つ例を見てみましょう。 例 次のクラスの車を例にとってみましょう- class Car { constructor() { this.wheels = 4 this.doors = 4 this.topSpeed = 100
-
JavaScriptでの多重継承
複数の継承では、オブジェクトは無関係の親オブジェクトからプロパティと値を継承できます。一部のオブジェクト指向言語では、多重継承が許可されています。 JavaScriptは多重継承をサポートしていません。 プロパティ値の継承は、JavaScriptがオブジェクトのプロトタイプチェーンを検索して値を見つけることにより、実行時に発生します。すべてのオブジェクトには単一のプロトタイプが関連付けられているため、複数のプロトタイプチェーンから動的に継承することはできません。 JSで複数の継承を機能させるための回避策があります。これらの例はhttps://stackoverflow.com/questi
-
JavaScriptの非同期/待機関数
Promiseオブジェクトは、非同期操作の最終的な完了(または失敗)とその結果の値を表します。 Asyncawait関数と演算子はpromiseで動作します。 非同期/待機関数は、舞台裏で非同期タスクを実行しながら、完全に同期しているように見えるコードを作成するのに役立ちます。 たとえば、promise-を返す非同期関数があるとします。 // Promise that resolves to 100 after 2sec function getHundred() { return new Promise(resolve => {