亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ホームページ ウェブフロントエンド jsチュートリアル Settimeout JavaScript関數(shù):例を掲載したガイド

Settimeout JavaScript関數(shù):例を掲載したガイド

Feb 10, 2025 pm 02:34 PM

setTimeout JavaScript Function: Guide with Examples

javascriptのsetTimeout関數(shù)説明:遅延実行

を?qū)g裝します

setTimeoutは、指定された遅延(ミリ秒)の後に関數(shù)を呼び出したり、コードスニペットを?qū)g行したりするために使用されるJavaScriptのネイティブ関數(shù)です。これは、ユーザーがしばらくページを參照した後にポップアップウィンドウを表示したり、要素ホバー効果を削除する前に短い遅延を追加したりするなど、多くのシナリオで役立ちます(誤操作を防ぐ)。

キーポイント:

  • javascriptのsetTimeout関數(shù)により、特定の數(shù)ミリ秒の後に関數(shù)またはコードスニペットの実行が可能になります。これは、特定のブラウジング時間の後にポップアップを表示するなどのタスクに非常に役立ちます。
  • setTimeout関數(shù)の參照を最初のパラメーターとして受け入れます。これは、関數(shù)名、関數(shù)を參照する変數(shù)、または匿名関數(shù)になります。また、コード文字列を?qū)g行することもできますが、読みやすさ、セキュリティ、速度を低下させるため、推奨されません。
  • 匿名関數(shù)を最初のパラメーターとして使用して、パラメーターをsetTimeoutで実行されたコールバック関數(shù)に渡すことができます。ただし、遅延後のパラメーターをリストする代わりに、IE9以下と互換性がありません。
  • setTimeoutによって実行されたコードでは、thisの値は、それを呼び出す関數(shù)とは異なる実行コンテキストで実行されます。これは、this、ライブラリ関數(shù)、または矢印関數(shù)を使用して解決できます。 bind
  • の返品値は、setTimeout関數(shù)と組み合わせてタイマーをキャンセルするために使用できる數(shù)値IDです。 clearTimeout

使用の例setTimeout

次のコードブロックは、2秒のタイムアウト(2000ミリ秒)の後にコンソールにメッセージを印刷する簡単な例を示しています。

この概念をより詳細(xì)に実証するために、次のデモンストレーションにボタンを2秒クリックした後のポップアップウィンドウが表示されます。(Demoを表示するにはCodepenにアクセスしてください)文法

function greet() {
  console.log('Howdy!');
}
setTimeout(greet, 2000);

MDNドキュメントによると、

の構(gòu)文は次のとおりです。

of:

setTimeout

const timeoutID = setTimeout(code);
const timeoutID = setTimeout(code, delay);

const timeoutID = setTimeout(functionRef);
const timeoutID = setTimeout(functionRef, delay);
const timeoutID = setTimeout(functionRef, delay[, arg1, arg2, /* … ,*/ argN])
は、タイマーをキャンセルするために

と併用できるデジタルIDです。

  • は、インターフェイスまたはtimeoutIDインターフェイスを指します。 clearTimeout
  • は、タイマーの有効期限が切れた後に実行される機(jī)能です。 scope WindowWorkerGlobalScopeは、タイマーの有効期限が切れたときにコンパイルおよび実行される関數(shù)の代わりに文字列を含めることができる代替構(gòu)文です。
  • functionRef関數(shù)呼び出しを遅らせる必要があるミリ秒數(shù)です。省略した場合、デフォルトは0です。
  • code、...、
  • は、
  • で指定された関數(shù)に渡される他のパラメーターです。 delay
  • arg1注:正方形の括弧argNオプションのパラメーターを示します。 functionRef

および[]

構(gòu)文にwindow.setTimeoutが含まれることがあることがわかります。なぜこれがなぜですか?

ブラウザでコードを?qū)g行すると、scopeはグローバルwindowオブジェクトを參照します。 setTimeoutおよびwindow.setTimeout同じ関數(shù)を參照してください。唯一の違いは、2番目のステートメントでは、メソッドをsetTimeoutオブジェクトのプロパティと呼びます。 window 私の意見では、これは複雑さを追加しますが、利點は最小限です。最初に見つかり、スコープチェーンで返される別の

メソッドを定義する場合、心配するより大きな問題があるかもしれません。

このチュートリアルでは、setTimeoutを省略しますが、最終的には、どの構(gòu)文を選択しますか。

windowメソッドの使用例

setTimeoutメソッドは、最初のパラメーターとして関數(shù)參照を受け入れます。

これは関數(shù)の名前である可能性があります:setTimeout

関數(shù)を參照する

変數(shù)(関數(shù)式):

function greet() {
  console.log('Howdy!');
}
setTimeout(greet, 2000);

または匿名関數(shù):

const timeoutID = setTimeout(code);
const timeoutID = setTimeout(code, delay);

const timeoutID = setTimeout(functionRef);
const timeoutID = setTimeout(functionRef, delay);
const timeoutID = setTimeout(functionRef, delay[, arg1, arg2, /* … ,*/ argN])
上記のように、

>コード文字列を?qū)g行するために

に渡すこともできます。
function greet() {
  alert('Howdy!');
}
setTimeout(greet, 2000);
ただし、これは次の理由で推奨されません。

setTimeout読みにくい(したがって、維持したり、デバッグするのが難しい)。

const greet = function() {
  alert('Howdy!');
};
setTimeout(greet, 2000);
潛在的なセキュリティリスクである暗黙的な

を使用します。

    JSインタープリターを呼び出さなければならないため、代替品よりも遅いです。
  • パラメーターをeval
  • に渡します
  • 基本的なシナリオでは、優(yōu)先されるクロスブラウザーメソッドは、匿名関數(shù)を最初のパラメーターとして使用して実行することによって実行されたコールバック関數(shù)に引數(shù)を渡すことです。
次の例では、

配列からランダムな動物を選択し、このランダムな動物をパラメーターとしてsetTimeout関數(shù)として渡します。次に、1秒の遅延で

関數(shù)を?qū)g行します。

setTimeout

注:通常の関數(shù)()を使用して、配列からランダムな要素を返しました。矢印関數(shù)を使用して関數(shù)式として書くこともできます:

animals makeTalk setTimeout次のセクションで矢印関數(shù)を紹介します。上記のコードを含むCodepenは次のとおりです(出力を表示するにはコンソールを開く必要があります)。 makeTalk

代替方法
setTimeout(() => { alert('Howdy!'); }, 2000);
記事の上部にある構(gòu)文から、

で実行されたコールバック関數(shù)にパラメーターを渡す2番目の方法があることがわかります。これには、遅延後にパラメーターをリストすることが含まれます。 getRandom前の例を參照してください。

殘念ながら、これはIE9以下では機(jī)能しません。ここでは、パラメーターが
setTimeout('alert("Howdy!");', 2000);
として渡されます。殘念ながらIE9のサポートが必要な場合は、MDNにポリフィルが提供されます。

キーワードの質(zhì)問

setTimeout実行されたコードは、それを呼び出す関數(shù)とは異なる実行コンテキストで実行されます。これは、thisキーワードのコンテキストが重要な場合に問題になります。

この出力の理由は、最初の例では
function greet() {
  console.log('Howdy!');
}
setTimeout(greet, 2000);

オブジェクトを指し、2番目の例では、グローバルthisオブジェクトを指していることです(dog屬性はありません。 )。 this この問題を解決するには、さまざまな方法があります... window sound値の説明設(shè)定

メソッドを使用して新しい関數(shù)を作成できます。呼び出されると、そのthisキーワードが提供された値に設(shè)定されます(この場合、

オブジェクト)。これにより、

が得られます bind bindユーザーライブラリthis dog多くのライブラリには、この問題を解決するための組み込み関數(shù)が付屬しています。たとえば、jQueryの

メソッド。関數(shù)を受け入れ、常に特定のコンテキストを持つ新しい関數(shù)を返します。この場合、それは次のとおりです
const timeoutID = setTimeout(code);
const timeoutID = setTimeout(code, delay);

const timeoutID = setTimeout(functionRef);
const timeoutID = setTimeout(functionRef, delay);
const timeoutID = setTimeout(functionRef, delay[, arg1, arg2, /* … ,*/ argN])

で矢印関數(shù)を使用します

矢印関數(shù)がES6に導(dǎo)入されました。それらは、通常の機(jī)能の構(gòu)文よりもはるかに短いです:jQuery.proxy()

もちろん、
function greet() {
  alert('Howdy!');
}
setTimeout(greet, 2000);

で使用できますが、1つ注意してください。矢印関數(shù)には獨(dú)自の値がありません。代わりに、囲まれた語彙コンテキストのsetTimeout値を使用します。

通常の関數(shù)を使用してください:

const greet = function() {
  alert('Howdy!');
};
setTimeout(greet, 2000);

矢印関數(shù)を使用してください:setTimeout this 2番目の例では、グローバルthisオブジェクトを指しています(繰り返しますが、

プロパティはありません)。

これは、
setTimeout(() => { alert('Howdy!'); }, 2000);
で矢印関數(shù)を使用すると、トラブルに巻き込まれる可能性があります。私たちは前に

で呼ばれる関數(shù)の正しい
setTimeout('alert("Howdy!");', 2000);
値を提供する方法を見てきました

this導(dǎo)入された方法で矢印関數(shù)を使用する場合、これは機(jī)能しません。矢印関數(shù)には獨(dú)自の値がないためです。このメソッドは引き続きwindowを記録します。 sound

矢印関數(shù)を使用したクリーナーコードの書き込み

ただし、矢印関數(shù)には獨(dú)自の値がないため、利點をもたらすこともできます。 setTimeout setTimeoutこのようなコードを検討してください:this

function makeTalk(animal) {
  const noises = {
    cat: 'purr',
    dog: 'woof',
    cow: 'moo',
    pig: 'oink',
  }

  console.log(`A ${animal} goes ${noises[animal]}.`);
}

function getRandom(arr) {
  return arr[Math.floor(Math.random() * arr.length)];
}

const animals = ['cat', 'dog', 'cow', 'pig'];
const randomAnimal = getRandom(animals);

setTimeout(() => {
  makeTalk(randomAnimal);
}, 1000);
矢印関數(shù)を使用して、より簡潔に書き直すことができます:

this undefined矢印関數(shù)の始まりを知りたい場合は、「ES6 ARROW関數(shù):JavaScriptの簡潔な構(gòu)文」を読んでください。

キャンセルタイマーsetTimeout

記事の冒頭で學(xué)んだように、

の返品値は、タイマーをキャンセルするためにthis関數(shù)と組み合わせて使用??できる數(shù)値IDです。

function greet() {
  console.log('Howdy!');
}
setTimeout(greet, 2000);

それが実際にどのように機(jī)能するか見てみましょう。下のペンでは、[カウントダウン]ボタンをクリックすると、カウントダウンが開始されます。カウントダウンが完了した場合、子貓が勝ちます。ただし、「停止カウントダウン」ボタンを押すと、タイマーが停止してリセットされます。 (カウントダウンがゼロに達(dá)したときにクールな効果がない場合、底の右側(cè)に埋め込まれたボタンを使用して再実行ペンを使用します。)

要約

この記事では、関數(shù)の実行を遅らせるために

を使用する方法を示します。また、パラメーターをsetTimeoutに渡す方法、コールバック関數(shù)內(nèi)のsetTimeout値を維持する方法、およびタイマーをキャンセルする方法も示しました。 this JavaScript関數(shù)のFAQ

setTimeout

  • javascriptには何がありますか? setTimeout

    は、JavaScriptの組み込み関數(shù)であり、指定された遅延(ミリ秒)の後に関數(shù)またはコードセグメントの実行をスケジュールできるようにします。

    setTimeout

  • どのように機(jī)能しますか? setTimeout

    関數(shù)を呼び出す場合、実行する関數(shù)またはコード、およびミリ秒の遅延という2つのパラメーターを提供する必要があります。提供された関數(shù)/コードがキューに追加され、指定された遅延の後、実行のためにキューからコールスタックに移動されます。

    setTimeout

  • を使用する代替案は何ですか? setTimeout はい、指定された間隔で関數(shù)を繰り返し、よりスムーズなアニメーションとより良いブラウザーパフォーマンス用の新しい

    などの代替案があります。

    setInterval requestAnimationFrame

  • いつ使用すべきではないのですか
  • setTimeoutは、JavaScriptで非同期コード実行をスケジュールするための便利なツールですが、場合によっては最良の選択ではない場合があります。正確なアニメーションまたはゲームには、

    を使用する必要があります。複數(shù)の呼び出しをネストしないでください。

    10ミリ秒未満の遅延の不正確さ。リアルタイムアプリケーション(オンラインマルチプレイヤーゲームや金融取引プラットフォームなど)を構(gòu)築している場合は、WebSocketsなどのリアルタイムテクノロジーを選択してください。大規(guī)模なCPU集約型タスクは、必要に応じてWebワーカーを使用できます。 setTimeout requestAnimationFrame setTimeout setTimeout

  • 操作をキャンセルできますか?
  • はい、setTimeout関數(shù)を使用して、スケジュールされたタイムアウトをキャンセルできます。パラメーターとしてで返されるタイムアウトIDが必要です。たとえば、

    clearTimeout setTimeout const timeoutId = setTimeout(myFunction, 1000); clearTimeout(timeoutId);

  • の違いは何ですか?

    setTimeout指定された遅延後に1回実行する機(jī)能をスケジュールしますが、setIntervalは、キャンセルされるかプログラムが停止するまで、指定された間隔で関數(shù)を繰り返し実行するようにスケジュールします。

  • setTimeoutを使用できる最小遅延値はいくらですか?

    最小遅延値は0です。つまり、機(jī)能は現(xiàn)在のスレッドが完了する前に実行されるようにスケジュールされますが、保留中のイベントを処理します。ただし、タイマーの実際の粒度は、ブラウザからブラウザや環(huán)境、さまざまなブラウザーまでさまざまです。一部の環(huán)境は、10ミリ秒未満の遅延をサポートしていない場合があります。

  • setTimeoutnode.jsには何がありますか?

    setTimeoutは、指定された數(shù)ミリ秒數(shù)で特定の関數(shù)またはコードブロックの実行を遅らせるnode.jsの組み込み関數(shù)です。

  • node.jsでsetTimeoutを使用するにはどうすればよいですか?

    次のようにsetTimeout関數(shù)を使用できます。setTimeout(callback, delay);ここで、callbackは、指定されたミリ秒遅延後に実行する関數(shù)です。

  • node.jsでsetTimeoutを使用するためのベストプラクティスは何ですか?

    いくつかのベストプラクティスには、名前付き関數(shù)をコールバックとして使用すること、エラーを優(yōu)雅に処理すること、予期しない遅延や閉塞を避けるためのイベントループの動作を理解することが含まれます。また、次のイベントループサイクル中にすぐに実行するためにsetImmediateを使用することを検討してください。

(入力テキストにはCodepenへのリンクが含まれているため、Codepenのコンテンツを出力に直接レンダリングすることはできません。記事に記載されているリンクにアクセスして、CodePenデモを表示する必要があります。)

以上がSettimeout JavaScript関數(shù):例を掲載したガイドの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Garbage CollectionはJavaScriptでどのように機(jī)能しますか? Garbage CollectionはJavaScriptでどのように機(jī)能しますか? Jul 04, 2025 am 12:42 AM

JavaScriptのごみ収集メカニズムは、タグクリアリングアルゴリズムを介してメモリを自動的に管理して、メモリ漏れのリスクを減らします。エンジンはルートオブジェクトからアクティブオブジェクトを橫斷およびマークし、マークされていないオブジェクトはゴミとして扱われ、クリアされます。たとえば、オブジェクトが參照されなくなった場合(変數(shù)をnullに設(shè)定するなど)、次のリサイクルでリリースされます。メモリリークの一般的な原因には以下が含まれます。 closurures閉鎖の外部変數(shù)への參照。 globalグローバル変數(shù)は引き続き大量のデータを保持しています。 V8エンジンは、世代のリサイクル、増分マーキング、並列/同時リサイクルなどの戦略を通じてリサイクル効率を最適化し、メインスレッドのブロック時間を短縮します。開発中、不必要なグローバル?yún)⒄栅虮埭?、パフォーマンスと安定性を改善するためにオブジェクトの関連付けを迅速に裝飾する必要があります。

node.jsでHTTPリクエストを作成する方法は? node.jsでHTTPリクエストを作成する方法は? Jul 13, 2025 am 02:18 AM

node.jsでHTTPリクエストを開始するには、組み込みモジュール、axios、およびnode-fetchを使用する3つの一般的な方法があります。 1.依存関係のない內(nèi)蔵http/httpsモジュールを使用します。これは基本的なシナリオに適していますが、https.get()を使用してデータを取得したり、.write()を介してPOSTリクエストを送信するなど、データステッチとエラーモニタリングの手動処理が必要です。 2.Axiosは、約束に基づいたサードパーティライブラリです。簡潔な構(gòu)文と強(qiáng)力な機(jī)能を備えており、非同期/待ち聲、自動JSON変換、インターセプターなどをサポートします。非同期リクエスト操作を簡素化することをお勧めします。 3.Node-Fetchは、約束と単純な構(gòu)文に基づいて、ブラウザフェッチに似たスタイルを提供します

JavaScriptデータ型:プリミティブ対參照 JavaScriptデータ型:プリミティブ対參照 Jul 13, 2025 am 02:43 AM

JavaScriptデータ型は、プリミティブタイプと參照タイプに分割されます。プリミティブタイプには、文字列、數(shù)字、ブール、ヌル、未定義、シンボルが含まれます。値は不変であり、コピーは値を割り當(dāng)てるときにコピーされるため、互いに影響を與えません。オブジェクト、配列、関數(shù)などの參照タイプはメモリアドレスを保存し、同じオブジェクトを指す変數(shù)は互いに影響します。 TypeofとInstanceOFを使用してタイプを決定できますが、TypeOfNullの歴史的な問題に注意してください。これらの2種類の違いを理解することは、より安定した信頼性の高いコードを書くのに役立ちます。

JavaScript Timeオブジェクト、誰かがEACTEXE、Google Chromeなどのより高速なWebサイトを構(gòu)築します。 JavaScript Timeオブジェクト、誰かがEACTEXE、Google Chromeなどのより高速なWebサイトを構(gòu)築します。 Jul 08, 2025 pm 02:27 PM

こんにちは、JavaScript開発者!今週のJavaScriptニュースへようこそ!今週は、DenoとのOracleの商標(biāo)紛爭、新しいJavaScript Timeオブジェクトがブラウザ、Google Chromeアップデート、およびいくつかの強(qiáng)力な開発ツールによってサポートされています。始めましょう! 「JavaScript」の商標(biāo)を登録しようとするDeno Oracleの試みとのOracleの商標(biāo)紛爭は、論爭を引き起こしました。 Node.jsとDenoの作成者であるRyan Dahlは、商標(biāo)をキャンセルするために請願書を提出しました。

React vs Angular vs Vue:どのJSフレームワークが最適ですか? React vs Angular vs Vue:どのJSフレームワークが最適ですか? Jul 05, 2025 am 02:24 AM

どのJavaScriptフレームワークが最良の選択ですか?答えは、あなたのニーズに応じて最も適切なものを選択することです。 1.反応は柔軟で無料で、高いカスタマイズとチームアーキテクチャ機(jī)能を必要とする中規(guī)模および大規(guī)模プロジェクトに適しています。 2。Angularは、エンタープライズレベルのアプリケーションと長期的なメンテナンスに適した完全なソリューションを提供します。 3. Vueは使いやすく、中小規(guī)模のプロジェクトや迅速な発展に適しています。さらに、既存のテクノロジースタック、チームサイズ、プロジェクトのライフサイクル、およびSSRが必要かどうかは、フレームワークを選択する上で重要な要素でもあります。要するに、絶対に最良のフレームワークはありません。最良の選択は、あなたのニーズに合ったものです。

JavaScriptですぐに呼び出された関數(shù)式(IIFE)を理解します JavaScriptですぐに呼び出された関數(shù)式(IIFE)を理解します Jul 04, 2025 am 02:42 AM

iife(即時インドボークフニックエクスペッション)は、定義の直後に実行される関數(shù)式であり、変數(shù)を分離し、グローバルな範(fàn)囲の汚染を避けるために使用されます。括弧內(nèi)に関數(shù)を包むことによって呼び出され、式と括弧のペアがすぐにそれに続く、(function(){/code/})();そのコアの使用には、次のものが含まれます。1。さまざまな競合を回避し、複數(shù)のスクリプト間の命名の重複を防ぎます。 2。プライベートスコープを作成して、內(nèi)部変數(shù)を見えないようにします。 3。変數(shù)が多すぎずに初期化を容易にするモジュラーコード。一般的なライティング方法には、ES6矢印関數(shù)のパラメーターとバージョンで渡されたバージョンが含まれますが、式とタイを使用する必要があることに注意してください。

ハンドリングの約束:javascriptのチェーン、エラー処理、および約束の組み合わせ ハンドリングの約束:javascriptのチェーン、エラー処理、および約束の組み合わせ Jul 08, 2025 am 02:40 AM

約束は、JavaScriptで非同期操作を処理するためのコアメカニズムです。チェーンコール、エラー処理、コンビナーの理解は、アプリケーションをマスターするための鍵です。 1.チェーンコールは、.then()を通じて新しい約束を返し、非同期プロセスの連結(jié)を?qū)g現(xiàn)します。それぞれ.then()は以前の結(jié)果を受け取り、値または約束を返すことができます。 2。エラー処理は、.catch()を使用して例外をキャッチしてサイレント障害を回避し、キャッチのデフォルト値を返すためにプロセスを継続する必要があります。 3。promise.all()などの組み合わせ(すべての成功後にのみ成功しました)、promise.race()(最初の完了が返されます)、promise.allsettled()(すべての完了を待っています)

キャッシュAPIとは何ですか?また、サービスワーカーでどのように使用されますか? キャッシュAPIとは何ですか?また、サービスワーカーでどのように使用されますか? Jul 08, 2025 am 02:43 AM

Cacheapiは、ブラウザからネットワークリクエストをキャッシュするツールです。これは、ウェブサイトのパフォーマンスとオフラインエクスペリエンスを改善するために、サービスワーカーと併用することがよくあります。 1.開発者は、スクリプト、スタイルシート、寫真などのリソースを手動で保存できるようにします。 2。要求に応じてキャッシュ応答と一致させることができます。 3.特定のキャッシュの削除またはキャッシュ全體のクリアをサポートします。 4.フェッチイベントを聞いているサービスワーカーを介して、キャッシュの優(yōu)先順位またはネットワークの優(yōu)先戦略を?qū)g裝できます。 5.オフラインサポート、繰り返しのアクセス速度の高速化、主要なリソースのプリロード、バックグラウンドアップデートコンテンツによく使用されます。 6.それを使用する場合、キャッシュバージョンの制御、ストレージ制限、およびHTTPキャッシングメカニズムとの違いに注意する必要があります。

See all articles