国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah hujung hadapan web tutorial js Fungsi JavaScript SetTimeout: Panduan dengan contoh

Fungsi JavaScript SetTimeout: Panduan dengan contoh

Feb 10, 2025 pm 02:34 PM

setTimeout JavaScript Function: Guide with Examples

JavaScript's

Penjelasan fungsi: Melaksanakan pelaksanaan tertunda setTimeout

adalah fungsi asli dalam JavaScript yang digunakan untuk memanggil fungsi atau melaksanakan coretan kod selepas kelewatan yang ditentukan (milisaat). Ini berguna dalam banyak senario, seperti memaparkan tetingkap pop timbul selepas pengguna melayari halaman untuk seketika, atau menambah kelewatan ringkas sebelum mengeluarkan kesan hover elemen (mencegah salah operasi). setTimeout

Mata Utama:

Fungsi
    JavaScript's
  • membolehkan pelaksanaan fungsi atau coretan kod selepas bilangan milisaat tertentu, yang sangat berguna untuk tugas -tugas seperti memaparkan popup selepas masa pelayaran tertentu. setTimeout
  • menerima rujukan fungsi sebagai parameter pertama, yang boleh menjadi nama fungsi, pembolehubah yang merujuk fungsi, atau fungsi tanpa nama. Ia juga boleh melaksanakan rentetan kod, tetapi tidak disyorkan kerana ini akan mengurangkan kebolehbacaan, keselamatan dan kelajuan. setTimeout
  • Anda boleh menggunakan fungsi tanpa nama sebagai parameter pertama untuk lulus parameter ke fungsi panggil balik yang dilaksanakan oleh
  • . Walau bagaimanapun, alternatif kepada parameter penyenaraian selepas kelewatan tidak serasi dengan IE9 dan di bawah. setTimeout
  • Dalam kod yang dilaksanakan oleh
  • , nilai setTimeout berjalan dalam konteks pelaksanaan yang berbeza daripada fungsi yang memanggilnya, yang boleh menyebabkan masalah apabila konteks kata kunci this adalah penting. Ini boleh diselesaikan dengan menggunakan fungsi perpustakaan this, atau fungsi anak panah. bind Nilai pulangan
  • adalah ID angka yang boleh digunakan untuk membatalkan pemasa bersempena dengan fungsi setTimeout. clearTimeout
  • Contoh Penggunaan

Blok kod berikut menunjukkan contoh mudah yang mencetak mesej ke konsol selepas tamat masa 2 saat (2000 milisaat): setTimeout

Untuk menunjukkan konsep ini dengan lebih terperinci, demonstrasi berikut memaparkan tetingkap pop timbul selepas mengklik butang dua saat: (Sila lawati Codepen untuk melihat demo)

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

Menurut dokumentasi MDN, sintaks

adalah seperti berikut:

setTimeout of:

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])

adalah ID digital yang boleh digunakan bersempena dengan
    untuk membatalkan pemasa.
  • timeoutID clearTimeout merujuk kepada antara muka
  • atau antara muka
  • . scope Window WorkerGlobalScope adalah fungsi yang akan dilaksanakan selepas pemasa tamat.
  • functionRef adalah sintaks alternatif yang membolehkan anda memasukkan rentetan dan bukannya fungsi yang disusun dan dilaksanakan apabila pemasa tamat.
  • code adalah bilangan milisaat yang panggilan fungsi harus ditangguhkan. Jika ditinggalkan, lalai adalah 0.
  • delay, ...,
  • adalah parameter lain yang diserahkan kepada fungsi yang ditentukan oleh
  • . arg1 argN functionRef
  • NOTA: Kurungan persegi
Tunjukkan parameter pilihan.

[] dan

anda akan melihat bahawa kadang -kadang sintaks mengandungi window.setTimeout. Mengapa ini?

Apabila menjalankan kod dalam penyemak imbas, scope akan merujuk kepada objek Global window. setTimeout dan window.setTimeout merujuk kepada fungsi yang sama, satu -satunya perbezaan ialah dalam pernyataan kedua, kita merujuk kepada kaedah setTimeout sebagai harta objek window.

Pada pendapat saya, ini menambah kerumitan, sementara manfaatnya adalah minimum. Jika anda menentukan kaedah setTimeout yang lain yang akan ditemui terlebih dahulu dan kembali dalam rantaian skop, maka anda mungkin mempunyai masalah yang lebih besar untuk dibimbangkan.

Dalam tutorial ini, saya akan menghilangkan window, tetapi pada akhirnya, terpulang kepada anda yang sintaks yang anda pilih.

Contoh penggunaan kaedah

Kaedah ini menerima rujukan fungsi sebagai parameter pertama. setTimeout

ini boleh menjadi nama fungsi:

setTimeout

pembolehubah yang fungsi rujukan (ekspresi fungsi):

function greet() {
  console.log('Howdy!');
}
setTimeout(greet, 2000);
atau fungsi tanpa nama:

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])
Seperti yang disebutkan di atas, anda juga boleh lulus rentetan kod ke

untuk pelaksanaannya:

function greet() {
  alert('Howdy!');
}
setTimeout(greet, 2000);
Walau bagaimanapun, ini tidak disyorkan atas sebab -sebab berikut:

setTimeout

sukar dibaca (dan oleh itu sukar untuk mengekalkan dan/atau debug).
const greet = function() {
  alert('Howdy!');
};
setTimeout(greet, 2000);

Ia menggunakan tersirat

, yang merupakan risiko keselamatan yang berpotensi.
  • Ia lebih perlahan daripada alternatif kerana ia perlu memanggil jurubahasa JS.
  • eval Parameter lulus ke
  • Dalam senario asas, kaedah penyemak imbas yang disukai adalah untuk lulus hujah kepada fungsi panggil balik yang dilaksanakan oleh
menggunakan fungsi tanpa nama sebagai parameter pertama.

setTimeout Dalam contoh berikut, kami memilih haiwan rawak dari array

dan lulus haiwan rawak ini sebagai parameter ke fungsi

. Kemudian, setTimeout melaksanakan fungsi

dengan kelewatan satu saat:

animals makeTalk setTimeout NOTA: Saya menggunakan fungsi biasa (makeTalk) untuk mengembalikan elemen rawak dari array. Anda juga boleh menulisnya sebagai ekspresi fungsi menggunakan fungsi anak panah:

setTimeout(() => { alert('Howdy!'); }, 2000);

kami akan memperkenalkan fungsi anak panah di bahagian seterusnya. Berikut adalah codepen yang mengandungi kod di atas (anda perlu membuka konsol untuk melihat output). getRandom kaedah alternatif

setTimeout('alert("Howdy!");', 2000);
Dari sintaks di bahagian atas artikel, dapat dilihat bahawa terdapat kaedah kedua untuk lulus parameter ke fungsi panggil balik yang dilaksanakan oleh

. Ini melibatkan penyenaraian mana -mana parameter selepas kelewatan.

Rujuk kepada contoh sebelumnya, ini akan memberi kita:

setTimeout Malangnya, ini tidak berfungsi di IE9 atau di bawah, di mana parameter diluluskan sebagai

. Jika malangnya anda memerlukan sokongan untuk IE9, polyfill disediakan pada MDN.

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);
Soalan Kata Kata Kunci

setTimeout Kod yang dilaksanakan berjalan dalam konteks pelaksanaan yang berbeza daripada fungsi yang memanggilnya. Ini menjadi masalah apabila konteks kata kunci this adalah penting:

function greet() {
  console.log('Howdy!');
}
setTimeout(greet, 2000);
Sebab output ini ialah dalam contoh pertama,

menunjuk ke objek this, dan dalam contoh kedua, dog menunjuk kepada objek this global (ia tidak mempunyai atribut window ). sound

Untuk menyelesaikan masalah ini, terdapat pelbagai cara ...

Penetapan penjelasan nilai

this

anda boleh menggunakan kaedah

untuk membuat fungsi baru, dan apabila dipanggil, kata kunci bind akan ditetapkan ke nilai yang disediakan (dalam hal ini objek bind). Ini akan memberi kita: this dog Perpustakaan Pengguna

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])
Banyak perpustakaan datang dengan fungsi terbina dalam untuk menyelesaikan masalah ini. Sebagai contoh, kaedah

jQuery. Ia menerima fungsi dan mengembalikan fungsi baru yang akan sentiasa mempunyai konteks tertentu. Dalam kes ini, itu akan menjadi:

jQuery.proxy() Gunakan fungsi anak panah dalam

function greet() {
  alert('Howdy!');
}
setTimeout(greet, 2000);
Fungsi anak panah diperkenalkan dalam ES6. Mereka jauh lebih pendek daripada sintaks fungsi biasa:

setTimeout

Sudah tentu, anda boleh menggunakannya dengan

, tetapi satu perkara yang perlu diperhatikan - fungsi anak panah tidak mempunyai nilai

sendiri. Sebaliknya, mereka menggunakan nilai
const greet = function() {
  alert('Howdy!');
};
setTimeout(greet, 2000);
konteks leksikal yang tertutup.

setTimeout Gunakan fungsi biasa: this this

Gunakan fungsi anak panah:

setTimeout(() => { alert('Howdy!'); }, 2000);
Dalam contoh kedua,

menunjuk kepada objek

global (sekali lagi, ia tidak mempunyai harta ).
setTimeout('alert("Howdy!");', 2000);

Ini boleh membawa kita ke dalam masalah apabila menggunakan fungsi anak panah dengan this. Kami telah melihat sebelum ini untuk memberikan nilai window yang betul untuk fungsi yang dipanggil dalam sound:

setTimeout Ini tidak akan berfungsi apabila menggunakan fungsi anak panah dalam kaedah yang diperkenalkan, kerana fungsi anak panah tidak mempunyai nilai setTimeout sendiri. Kaedah ini masih akan merakam 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);
Menulis kod bersih menggunakan fungsi anak panah dan

Walau bagaimanapun, kerana fungsi anak panah tidak mempunyai nilai this sendiri, ia juga boleh memberi kita kelebihan. undefined

Pertimbangkan kod seperti ini:

setTimeout

Ia boleh ditulis semula dengan lebih ringkas menggunakan fungsi anak panah:

this

Jika anda ingin mengetahui permulaan fungsi anak panah, baca "Fungsi Arrow ES6: Sintaks Ringkas dalam JavaScript".

Batalkan pemasa
const getRandom = arr => arr[Math.floor(Math.random() * arr.length)];

Seperti yang kita pelajari pada permulaan artikel, nilai pulangan

adalah ID angka yang boleh digunakan bersamaan dengan fungsi
setTimeout(makeTalk, 1000, randomAnimal);
untuk membatalkan pemasa:

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

mari kita lihat bagaimana ia berfungsi. Dalam pen di bawah, jika anda mengklik butang Countdown Mula, undur akan bermula. Sekiranya undur selesai, anak kucing menang. Walau bagaimanapun, jika anda menekan butang "Hentikan Countdown", pemasa akan dihentikan dan ditetapkan semula. (Jika anda tidak melihat kesan sejuk apabila undur mencapai sifar, penun pena menggunakan butang yang tertanam di sebelah kanan bawah.)

Ringkasan

Dalam artikel ini, saya menunjukkan cara menggunakan setTimeout untuk melambatkan pelaksanaan fungsi. Saya juga menunjukkan cara lulus parameter ke setTimeout, bagaimana untuk mengekalkan nilai this di dalam fungsi panggil baliknya, dan bagaimana membatalkan pemasa.

setTimeout FAQS untuk fungsi JavaScript

  • Apa yang ada di JavaScript? setTimeout

    adalah fungsi terbina dalam dalam JavaScript yang membolehkan anda menjadualkan pelaksanaan fungsi atau segmen kod selepas kelewatan tertentu (dalam milisaat). setTimeout

  • Bagaimana ia berfungsi? setTimeout Apabila anda memanggil fungsi

    , anda perlu menyediakan dua parameter: fungsi atau kod untuk dilaksanakan, dan kelewatan dalam milisaat. Fungsi/kod yang disediakan akan ditambah ke barisan dan selepas kelewatan yang ditentukan, ia akan dipindahkan dari barisan ke timbunan panggilan untuk pelaksanaan.

    setTimeout

  • Apakah alternatif yang digunakan

    ? setTimeout Ya, terdapat alternatif, seperti

    , yang akan mengulangi fungsi pada selang waktu yang ditentukan, dan yang lebih baru

    , yang merupakan animasi yang lebih lancar dan prestasi penyemak imbas yang lebih baik. setInterval requestAnimationFrame

  • Bilakah tidak boleh digunakan

    ? setTimeout

    adalah alat yang berguna untuk penjadualan pelaksanaan kod asynchronous dalam JavaScript, tetapi dalam beberapa kes ia mungkin bukan pilihan terbaik. Untuk animasi atau permainan yang tepat, anda harus menggunakan

    . Anda tidak boleh bersarang pelbagai setTimeout panggilan; requestAnimationFrame tidak tepat untuk kelewatan kurang daripada 10 milisaat; Jika anda membina aplikasi masa nyata (seperti permainan multiplayer dalam talian atau platform perdagangan kewangan), pilih teknologi masa nyata seperti WebSockets. Tugas-tugas yang berintensifkan CPU boleh menghalang gelung acara; setTimeout setTimeout

  • Bolehkah saya membatalkan operasi

    ? setTimeout Ya, anda boleh menggunakan fungsi

    untuk membatalkan masa tamat yang dijadualkan. Ia mengambil masa tamat masa yang dikembalikan oleh

    sebagai parameter. Contohnya: clearTimeout setTimeout const timeoutId = setTimeout(myFunction, 1000); clearTimeout(timeoutId);

    Apakah perbezaan antara
  • dan ? setTimeout setInterval

    setTimeout Jadualkan fungsi untuk dijalankan sekali selepas kelewatan yang ditentukan, manakala setInterval menjadualkan fungsi untuk berjalan berulang kali pada selang yang ditentukan sehingga dibatalkan atau program berhenti.

  • Apakah nilai kelewatan minimum yang boleh saya gunakan setTimeout?

    Nilai kelewatan minimum adalah 0, yang bermaksud bahawa fungsi itu dijadualkan dilaksanakan sebelum thread semasa selesai tetapi mengendalikan sebarang peristiwa yang belum selesai. Walau bagaimanapun, granulariti sebenar pemasa berbeza dari penyemak imbas ke penyemak imbas dan persekitaran kepada pelayar yang berbeza. Sesetengah persekitaran mungkin tidak menyokong kelewatan kurang daripada 10 milisaat.

  • Apa yang ada di node.js? setTimeout

    adalah fungsi terbina dalam untuk node.js yang menangguhkan pelaksanaan fungsi atau blok kod yang diberikan oleh bilangan milisaat tertentu. setTimeout

  • bagaimana menggunakan dalam node.js? setTimeout

    anda boleh menggunakan fungsi

    seperti berikut: setTimeout di mana setTimeout(callback, delay); adalah fungsi yang anda ingin laksanakan selepas kelewatan milisaat yang ditentukan. callback

  • Apakah amalan terbaik untuk menggunakan dalam node.js? setTimeout

    Beberapa amalan terbaik termasuk menggunakan fungsi yang dinamakan sebagai panggilan balik, mengendalikan kesilapan dengan anggun, dan memahami tingkah laku gelung peristiwa untuk mengelakkan kelewatan atau penyumbatan yang tidak dijangka. Juga, pertimbangkan untuk menggunakan

    untuk melaksanakan dengan segera semasa kitaran gelung acara seterusnya. setImmediate

(Perhatikan bahawa kerana teks input mengandungi pautan ke Codepen, saya tidak dapat memberikan kandungan codepen secara langsung dalam output. Anda perlu melawat pautan yang disediakan dalam artikel untuk melihat demo Codepen.)

Atas ialah kandungan terperinci Fungsi JavaScript SetTimeout: Panduan dengan contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Java vs JavaScript: Membersihkan kekeliruan Java vs JavaScript: Membersihkan kekeliruan Jun 20, 2025 am 12:27 AM

Java dan JavaScript adalah bahasa pengaturcaraan yang berbeza, masing -masing sesuai untuk senario aplikasi yang berbeza. Java digunakan untuk pembangunan aplikasi perusahaan dan mudah alih yang besar, sementara JavaScript digunakan terutamanya untuk pembangunan laman web.

Komen JavaScript: Penjelasan ringkas Komen JavaScript: Penjelasan ringkas Jun 19, 2025 am 12:40 AM

JavaScriptcommentsareessentialformaintaining,reading,andguidingcodeexecution.1)Single-linecommentsareusedforquickexplanations.2)Multi-linecommentsexplaincomplexlogicorprovidedetaileddocumentation.3)Inlinecommentsclarifyspecificpartsofcode.Bestpractic

Bagaimana untuk bekerja dengan tarikh dan masa di JS? Bagaimana untuk bekerja dengan tarikh dan masa di JS? Jul 01, 2025 am 01:27 AM

Titik berikut harus diperhatikan apabila tarikh pemprosesan dan masa di JavaScript: 1. Terdapat banyak cara untuk membuat objek tarikh. Adalah disyorkan untuk menggunakan rentetan format ISO untuk memastikan keserasian; 2. Dapatkan dan tetapkan maklumat masa boleh diperoleh dan tetapkan kaedah, dan ambil perhatian bahawa bulan bermula dari 0; 3. Tarikh pemformatan secara manual memerlukan rentetan, dan perpustakaan pihak ketiga juga boleh digunakan; 4. Adalah disyorkan untuk menggunakan perpustakaan yang menyokong zon masa, seperti Luxon. Menguasai perkara -perkara utama ini secara berkesan dapat mengelakkan kesilapan yang sama.

JavaScript vs Java: Perbandingan Komprehensif untuk Pemaju JavaScript vs Java: Perbandingan Komprehensif untuk Pemaju Jun 20, 2025 am 12:21 AM

JavaScriptispreferredforwebdevelopment, whersjavaisbetterforlarge-scalebackendsystemsandandroidapps.1) javascriptexcelsinceleatinginteractiveWebexperienceswithitsdynamicnatureanddommanipulation.2) javaoffersstrongyblectionandobjection

Kenapa anda harus meletakkan tag  di bahagian bawah ? Kenapa anda harus meletakkan tag di bahagian bawah ? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript: Meneroka jenis data untuk pengekodan yang cekap JavaScript: Meneroka jenis data untuk pengekodan yang cekap Jun 20, 2025 am 12:46 AM

JavascripthassevenfundamentalDatypes: nombor, rentetan, boolean, undefined, null, objek, andsymbol.1) numberuseadouble-precisionformat, bergunaforwidevaluangesbutbecautiouswithfloating-pointarithmetic.2)

Apakah peristiwa yang menggelegak dan menangkap di Dom? Apakah peristiwa yang menggelegak dan menangkap di Dom? Jul 02, 2025 am 01:19 AM

Penangkapan dan gelembung acara adalah dua peringkat penyebaran acara di Dom. Tangkap adalah dari lapisan atas ke elemen sasaran, dan gelembung adalah dari elemen sasaran ke lapisan atas. 1. Penangkapan acara dilaksanakan dengan menetapkan parameter useCapture addeventlistener kepada benar; 2. Bubble acara adalah tingkah laku lalai, useCapture ditetapkan kepada palsu atau ditinggalkan; 3. Penyebaran acara boleh digunakan untuk mencegah penyebaran acara; 4. Acara menggelegak menyokong delegasi acara untuk meningkatkan kecekapan pemprosesan kandungan dinamik; 5. Penangkapan boleh digunakan untuk memintas peristiwa terlebih dahulu, seperti pemprosesan pembalakan atau ralat. Memahami kedua -dua fasa ini membantu mengawal masa dan bagaimana JavaScript bertindak balas terhadap operasi pengguna.

Apa perbezaan antara Java dan JavaScript? Apa perbezaan antara Java dan JavaScript? Jun 17, 2025 am 09:17 AM

Java dan JavaScript adalah bahasa pengaturcaraan yang berbeza. 1.Java adalah bahasa yang ditaip dan disusun secara statik, sesuai untuk aplikasi perusahaan dan sistem besar. 2. JavaScript adalah jenis dinamik dan bahasa yang ditafsirkan, terutamanya digunakan untuk interaksi web dan pembangunan front-end.

See all articles