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

Jadual Kandungan
Generator
Ia sejuk, jadi bolehkah saya menggunakan penjana dan iterators sekarang?
Kesimpulan
Soalan Lazim Mengenai ECMAScript 2015 Generators and Iterators (FAQ)
Apakah perbezaan antara pengaliran dan penjana dalam ECMAScript 2015?
Bagaimana menggunakan kata kunci hasil dalam ECMAScript 2015?
Apakah tujuan kaedah seterusnya () dalam ECMAScript 2015?
Bolehkah anda memberikan contoh fungsi penjana dalam ECMAScript 2015?
Bagaimana menggunakan kaedah dan penjana lempar () dalam ECMAScript 2015?
Apakah kepentingan atribut yang dilakukan dalam Iterator ECMAScript 2015?
Rumah hujung hadapan web tutorial js Penjana dan Iterator ES6: Panduan Pemaju

Penjana dan Iterator ES6: Panduan Pemaju

Feb 15, 2025 am 11:42 AM

ES6 Generators and Iterators: a Developer’s Guide

ES6 telah memperkenalkan banyak ciri baru kepada bahasa JavaScript. Dua daripada ciri-ciri ini, penjana dan iterators, telah mengubah cara kami menulis fungsi khusus dalam kod front-end yang lebih kompleks.

Walaupun mereka bekerja dengan baik bersama -sama, fungsi sebenar mereka boleh menjadi sedikit mengelirukan, jadi mari kita lihat lebih dekat.

mata utama

    ES6 menyediakan cara yang lebih bersih untuk menulis untuk gelung, menyediakan cara yang lebih seperti python untuk terus berinteraksi dengan unsur-unsur dalam dataset, menjadikan kod lebih mudah dibaca dan ditulis.
  • Penjana dalam ES6 adalah fungsi yang mengingati keadaan antara setiap panggilan. Mereka boleh menjana nilai seterusnya dalam urutan setiap kali mereka dipanggil, dengan berkesan membuat lelaran tersuai.
  • Kata kunci "hasil" dalam fungsi penjana adalah sama dengan "pulangan", tetapi ia mengekalkan keadaan fungsi, yang membolehkannya meneruskan pelaksanaan dari gangguan pada panggilan seterusnya.
  • Walaupun penyemak imbas nod dan moden menyokong ciri -ciri ES6, pelayar yang lebih tua mungkin memerlukan penterjemah seperti Babel untuk menukar kod ES6 ke kod ECMAScript 5.
Iterator

Penyesuaian adalah amalan biasa dalam pengaturcaraan, biasanya digunakan untuk gelung melalui satu set nilai, menukar setiap nilai, atau menggunakan atau menyimpannya dalam beberapa cara untuk kegunaan kemudian.

Di JavaScript, kami selalu mempunyai gelung seperti:

for (var i = 0; i < foo.length; i++) {
  // 對(duì)i執(zhí)行某些操作
}
tetapi ES6 memberi kita pilihan lain:

for (const i of foo) {
  // 對(duì)i執(zhí)行某些操作
}
Ini boleh dikatakan lebih ringkas dan mudah digunakan, mengingatkan saya tentang bahasa seperti Python dan Ruby. Walau bagaimanapun, terdapat satu lagi perkara yang sangat penting untuk diperhatikan mengenai lelaran baru ini: ia membolehkan anda berinteraksi secara langsung dengan unsur -unsur dataset.

Katakan kita ingin mengetahui sama ada setiap nombor dalam array adalah nombor utama. Kita boleh melakukan ini dengan membuat fungsi yang melakukan ini. Ia mungkin kelihatan seperti ini:

function isPrime(number) {
  if (number <= 1) {
    return false;
  } else if (number === 2) {
    return true;
  }

  for (var i = 2; i < number; i++) {
    if (number % i === 0) {
      return false;
      break;
    }
  }

  return true;
}
Bukan yang terbaik di dunia, tetapi ia berfungsi. Langkah seterusnya ialah gelung melalui senarai nombor kami dan periksa sama ada setiap nombor adalah perdana menggunakan fungsi baru yang berkilat kami. Ia sangat mudah:

var possiblePrimes = [73, 6, 90, 19, 15];
var confirmedPrimes = [];

for (var i = 0; i < possiblePrimes.length; i++) {
  if (isPrime(possiblePrimes[i])) {
    confirmedPrimes.push(possiblePrimes[i]);
  }
}

// confirmedPrimes現(xiàn)在是[73, 19]
Sekali lagi, ia berfungsi, tetapi ia kekok, dan kekok ini bergantung pada bagaimana JavaScript mengendalikan gelung. Walau bagaimanapun, dengan ES6, kami mendapat pilihan yang hampir seperti Python dalam Iterator Baru. Oleh itu, gelung sebelumnya boleh ditulis seperti ini:

const possiblePrimes = [73, 6, 90, 19, 15];
const confirmedPrimes = [];

for (const i of possiblePrimes){
   if ( isPrime(i) ){
      confirmedPrimes.push(i);
   }
}

// confirmedPrimes現(xiàn)在是[73, 19]
Ini lebih bersih, tetapi perkara yang paling menarik adalah untuk gelung. Pembolehubah yang saya kini mewakili item sebenar dalam array bernama kemungkinanPrimes. Oleh itu, kita tidak lagi perlu memanggilnya dengan indeks. Ini bermakna kita tidak perlu memanggil kemungkinanPrimes [i] dalam gelung, tetapi hanya panggil saya.

Di sebalik tabir, lelaran ini mengambil kesempatan daripada kaedah simbol baru yang berkilat ES6 (). Kaedah ini bertanggungjawab untuk menerangkan lelaran dan apabila dipanggil, mengembalikan objek JavaScript yang mengandungi nilai seterusnya dalam gelung dan kunci yang dilakukan, yang benar atau palsu bergantung kepada sama ada gelung selesai.

Jika anda berminat dengan terperinci ini, anda boleh membaca postingan blog yang indah ini "Iterators Gonna Iterate" oleh Jake Archibald. Seperti yang kita menggali ke bahagian lain artikel ini: Penjana, ia juga memberi anda idea yang baik tentang apa yang berlaku di belakang tabir.

Generator

Penjana (juga dikenali sebagai "Kilang ITER") adalah jenis fungsi JavaScript baru yang digunakan untuk membuat lelaran tertentu. Mereka menyediakan anda dengan cara khas untuk gelung melalui kandungan.

Baiklah, jadi apa maksudnya? Mari kita lihat contoh. Katakan kita mahu fungsi, dan setiap kali kita memanggilnya, kita akan diberikan nombor perdana seterusnya:

for (var i = 0; i < foo.length; i++) {
  // 對(duì)i執(zhí)行某些操作
}

Jika anda digunakan untuk JavaScript, beberapa perkara ini kelihatan seperti sihir, tetapi ia tidak terlalu buruk dalam realiti. Kami mempunyai asterisk yang pelik selepas fungsi kata kunci, tetapi itu hanya memberitahu JavaScript bahawa kita menentukan penjana.

Satu lagi bahagian pelik ialah kata kunci hasil. Ini sebenarnya apa penjana meludah apabila anda memanggilnya. Ia kira -kira bersamaan dengan kembali, tetapi ia mengekalkan keadaan fungsi dan bukannya mengubah segala -galanya setiap kali ia dipanggil. Ia "ingat" lokasinya semasa runtime, jadi pada masa akan datang anda memanggilnya, ia berterusan dari gangguan.

ini bermakna kita boleh melakukan ini:

for (const i of foo) {
  // 對(duì)i執(zhí)行某些操作
}

Kemudian, setiap kali kita ingin mendapatkan - anda meneka - nombor perdana seterusnya, kita boleh menghubungi NextPrime:

function isPrime(number) {
  if (number <= 1) {
    return false;
  } else if (number === 2) {
    return true;
  }

  for (var i = 2; i < number; i++) {
    if (number % i === 0) {
      return false;
      break;
    }
  }

  return true;
}

Anda juga boleh memanggil NextPrime.Next (), yang berguna apabila penjana anda tidak tak terhingga, kerana ia mengembalikan objek seperti ini:

var possiblePrimes = [73, 6, 90, 19, 15];
var confirmedPrimes = [];

for (var i = 0; i < possiblePrimes.length; i++) {
  if (isPrime(possiblePrimes[i])) {
    confirmedPrimes.push(possiblePrimes[i]);
  }
}

// confirmedPrimes現(xiàn)在是[73, 19]

di sini, kunci yang dilakukan memberitahu anda sama ada fungsi itu telah menyelesaikan tugasnya. Dalam kes kita, fungsi kita tidak pernah berakhir, yang secara teorinya memberi kita semua nombor perdana sehingga tak terhingga (jika kita mempunyai memori komputer yang banyak).

Ia sejuk, jadi bolehkah saya menggunakan penjana dan iterators sekarang?

Walaupun ECMAScript 2015 telah selesai dan telah bertahun -tahun, sokongan penyemak imbas untuk ciri -cirinya (terutamanya penjana) jauh dari sempurna. Jika anda benar -benar mahu menggunakan ciri -ciri moden ini dan lain -lain, anda boleh melihat penterjemah seperti Babel dan Traceur yang akan menukar kod ECMAScript 2015 anda ke dalam kod ECMASCRIPT 5.

Terdapat juga banyak editor dalam talian yang menyokong ECMAScript 2015, atau memberi tumpuan khusus kepadanya, terutamanya Regenerator Facebook dan JS Bin. Jika anda hanya mahu bermain dan belajar bagaimana JavaScript ditulis sekarang, ini patut dilihat.

Kesimpulan

Generator dan Iterator menyediakan banyak fleksibiliti baru untuk pendekatan kami terhadap masalah JavaScript. Iterator membolehkan kami menulis untuk gelung dengan cara yang lebih python, yang bermaksud kod kami kelihatan lebih bersih dan mudah dibaca.

fungsi penjana membolehkan kita menulis fungsi yang ingat di mana mereka terakhir dilihat, dan boleh meneruskan pelaksanaan dari gangguan. Mereka juga boleh menjadi tak terhingga dari segi apa yang sebenarnya mereka ingat, yang sangat mudah dalam beberapa kes.

Sokongan untuk penjana dan iterator ini baik. Mereka disokong dalam nod dan dalam semua pelayar moden, kecuali untuk Internet Explorer. Jika anda perlu menyokong penyemak imbas yang lebih tua, cara terbaik ialah menggunakan penterjemah seperti Babel.

Soalan Lazim Mengenai ECMAScript 2015 Generators and Iterators (FAQ)

Apakah perbezaan antara pengaliran dan penjana dalam ECMAScript 2015?

Iterator dan penjana adalah kedua -dua ciri ECMAScript 2015 dan digunakan untuk memproses aliran data. Iterator adalah objek yang membolehkan pengaturcara meleleh melalui semua elemen dalam koleksi. Ia mempunyai kaedah seterusnya () yang mengembalikan item seterusnya dalam urutan. Sebaliknya, penjana adalah fungsi yang boleh berhenti separuh dan kemudian terus dari perhentian. Dalam erti kata lain, penjana kelihatan seperti fungsi, tetapi ia bertindak seperti iterator.

Bagaimana menggunakan kata kunci hasil dalam ECMAScript 2015?

Kata kunci hasil digunakan untuk ECMAScript 2015 Jeda dan memulihkan fungsi penjana (fungsi* atau fungsi penjana warisan). Hasil boleh mengembalikan nilai dari fungsi penjana. Nilai pulangan ini biasanya merupakan objek dengan dua sifat: nilai dan dilakukan. Atribut nilai adalah hasil mengira ungkapan hasil, dan dilakukan adalah nilai boolean yang menunjukkan sama ada penjana telah menghasilkan nilai terakhirnya.

Apakah tujuan kaedah seterusnya () dalam ECMAScript 2015?

Kaedah seterusnya () adalah bahagian utama protokol Iterator dalam ECMAScript 2015. Ia mengembalikan objek dengan dua sifat: nilai dan dilakukan. Atribut nilai adalah nilai seterusnya dalam urutan lelaran, dan dilakukan adalah nilai boolean yang menunjukkan sama ada lelaran selesai. Sekiranya dilakukan adalah benar, pengarah telah melebihi urutan urutan lelaran.

Bagaimana menggunakan penjana untuk pengaturcaraan tak segerak dalam ECMAScript 2015?

Penjana dalam ECMAScript 2015 boleh digunakan untuk memudahkan pengaturcaraan asynchronous. Mereka boleh digunakan untuk menyekat pelaksanaan untuk menunggu operasi tak segerak untuk disiapkan tanpa menyekat keseluruhan program. Ini boleh menjadikan kod asynchronous kelihatan dan berkelakuan lebih seperti kod segerak, yang lebih mudah difahami dan alasan.

Apakah perbezaan antara untuk ... gelung dan untuk ... dalam gelung dalam ECMAScript 2015?

untuk ... gelung dalam Ecmascript 2015 digunakan untuk gelung melalui objek yang boleh dimakan seperti array, rentetan, peta, koleksi, dll. Ia memanggil cangkuk berulang adat menggunakan kenyataan yang akan dilaksanakan untuk nilai setiap atribut yang berbeza. Sebaliknya, untuk ... dalam gelung digunakan untuk gelung melalui sifat objek. Ia mengembalikan senarai kekunci untuk objek yang diulang.

Bagaimana untuk membuat iterator tersuai dalam ECMAScript 2015?

Dalam ECMAScript 2015, anda boleh membuat Iterator tersuai dengan menentukan objek dengan kaedah seterusnya (). Kaedah ini harus mengembalikan objek dengan dua sifat: nilai dan dilakukan. Atribut nilai adalah nilai seterusnya dalam urutan lelaran, dan dilakukan adalah nilai boolean yang menunjukkan sama ada lelaran selesai.

Apakah peranan simbol.iterator dalam ECMAScript 2015?

simbol.iterator adalah simbol terbina dalam khas dalam ECMAScript 2015. Ia digunakan untuk menentukan iterator lalai untuk objek tersebut. Apabila objek perlu diulang (contohnya pada permulaan untuk ... gelung), kaedah @@ iteratornya akan dipanggil tanpa sebarang argumen, dan pemula yang dikembalikan akan digunakan untuk mendapatkan nilai untuk berulang.

Bolehkah anda memberikan contoh fungsi penjana dalam ECMAScript 2015?

Sudah tentu, ini adalah contoh mudah fungsi penjana dalam ECMAScript 2015:

for (var i = 0; i < foo.length; i++) {
  // 對(duì)i執(zhí)行某些操作
}

Dalam contoh ini, fungsi idmaker adalah penjana yang menghasilkan urutan nombor.

Bagaimana menggunakan kaedah dan penjana lempar () dalam ECMAScript 2015?

Kaedah lemparan () dalam ECMAScript 2015 boleh digunakan dalam penjana untuk memulihkan pelaksanaan fungsi penjana dan membuang kesilapan dari ekspresi hasil. Kaedah lemparan () boleh digunakan untuk mengendalikan kesilapan yang berlaku semasa pelaksanaan fungsi penjana.

Apakah kepentingan atribut yang dilakukan dalam Iterator ECMAScript 2015?

Hartanah yang dilakukan

adalah nilai boolean yang dikembalikan oleh pengarah dalam ECMAScript 2015. Ia menunjukkan sama ada pengarah mempunyai lebih banyak nilai untuk kembali. Sekiranya dilakukan adalah benar, pengarah telah melebihi urutan urutan lelaran. Jika dilakukan adalah palsu, pemalar masih boleh menghasilkan lebih banyak nilai.

Atas ialah kandungan terperinci Penjana dan Iterator ES6: Panduan Pemaju. 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.

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

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