Pengenalan kepada Fns:
Blok binaan asas bahasa.
Konsep yang paling penting.
Fn - sekeping kod yang boleh digunakan berulang kali.
{Invoking, Running, Calling} a Fn semuanya bermakna sama.
Fn - boleh mengambil data sebagai hujah, mengembalikan data sebagai hasil selepas pengiraan.
Panggilan Fn digantikan dengan hasil yang dikembalikan daripadanya selepas pelaksanaan.
Fns sesuai untuk melaksanakan prinsip KERING
Hujah diluluskan, parameter ialah pemegang tempat yang menerima nilai yang dihantar ke fn.
Perisytiharan Fn vs ungkapan:
Pengisytiharan Fn bermula dengan kata kunci fn.
Ungkapan Fn ialah fn tanpa nama, disimpan di dalam pembolehubah. Kemudian pembolehubah yang menyimpan fn bertindak sebagai fn.
Fn defn tanpa nama ialah ungkapan, dan ungkapan itu menghasilkan nilai. Fn hanyalah nilai.
Fn bukan jenis Rentetan, Nombor. Nilainya, oleh itu boleh disimpan dalam pembolehubah.
Pengisytiharan Fn boleh dipanggil walaupun sebelum ia ditakrifkan dalam kod iaitu ia dinaikkan. Ini tidak berfungsi dengan ungkapan Fn.
Ungkapan Fn memaksa pengguna untuk mentakrifkan fns dahulu, kemudian menggunakannya kemudian. Semuanya disimpan di dalam pembolehubah.
Kedua-duanya mempunyai tempat di JS, oleh itu perlu dikuasai dengan betul.
Ungkapan Fn = pada asasnya nilai fn yang disimpan dalam pembolehubah
Anak panah Fn disertakan dengan ES6
Pemulangan tersirat untuk satu pelapik, untuk berbilang baris pemulangan eksplisit diperlukan.
Anak panah fns tidak mendapat kata kunci 'ini' sendiri
Pembelajaran bukan proses linear, pengetahuan dibina secara berperingkat secara beransur-ansur. Anda tidak boleh mempelajari segala-galanya tentang sesuatu perkara sekaligus.
## Default parameters const bookings = []; const createBooking = function(flightNum, numPassengers=1, price= 100 * numPassengers){ // It will work for parameters defined before in the list like numPassengers is defined before its used in expression of next argument else it won't work. // Arguments cannot be skipped also with this method. If you want to skip an argument, then manually pass undefined value for it which is equivalent to skipping an argument /* Setting default values pre-ES6 days. numPassengers = numPassengers || 1; price = price || 199;*/ // Using enhanced object literal, where if same property name & value is there, just write them once as shown below. const booking = { flightNum, numPassengers, price, }; console.log(booking); bookings.push(booking); } createBooking('AI123'); /* { flightNum: 'AI123', numPassengers: 1, price: 100 } */ createBooking('IN523',7); /* { flightNum: 'IN523', numPassengers: 7, price: 700 } */ createBooking('SJ523',5); /* { flightNum: 'SJ523', numPassengers: 5, price: 500 } */ createBooking('AA523',undefined, 100000); /* { flightNum: 'AA523', numPassengers: 1, price: 100000 } */
Memanggil satu fn dari dalam fn lain:
Teknik yang sangat biasa untuk menyokong prinsip KERING.
Menyokong kebolehselenggaraan
kembali serta-merta keluar dari fn
return = untuk mengeluarkan nilai daripada fn, tamatkan pelaksanaan
Tiga cara menulis fn, tetapi semuanya berfungsi dengan cara yang sama iaitu Input, Pengiraan, Output
Parameter = ruang letak untuk menerima nilai i/p, Seperti pembolehubah tempatan fn.
Cara hujah lulus berfungsi iaitu Nilai vs Jenis Rujukan
Primitif dihantar mengikut nilai kepada fn. Nilai asal kekal utuh.
Objek diluluskan dengan merujuk kepada fn. Nilai asal ditukar.
JS tidak mempunyai nilai lulus melalui rujukan.
Interaksi fns berbeza dengan objek yang sama boleh menimbulkan masalah kadangkala
Fns adalah kelas pertama dalam JS, oleh itu kita boleh menulis HO fns.
Fns dianggap sebagai nilai, hanya satu lagi 'jenis' objek.
Oleh kerana objek adalah nilai, fns adalah nilai juga. Oleh itu, boleh juga disimpan dalam pembolehubah, dilampirkan sebagai sifat objek dll.
Juga, fns boleh dihantar ke fns lain juga. Cth. pengendali pendengar acara.
Kembali dari fns.
Fns ialah objek, dan objek mempunyai kaedah-sifat mereka sendiri dalam JS. Oleh itu, fn boleh mempunyai kaedah serta sifat yang boleh dipanggil pada mereka. Ex call, apply, bind dsb.
Fn Aras Tinggi : Fn yang menerima fn lain sebagai hujah, yang mengembalikan fn baharu atau kedua-duanya. Hanya mungkin kerana fns adalah kelas pertama dalam JS
Fn yang dihantar dalam panggilan balik fn, yang akan dipanggil oleh HOF.
Fns yang mengembalikan fn lain, iaitu dalam Penutupan.
Fns kelas pertama dan HOF ialah konsep yang berbeza.
Panggil Balik Fns Adv:
Benarkan kami membuat abstraksi. Memudahkan untuk melihat masalah yang lebih besar.
Modularkan kod kepada lebih banyak ketulan yang lebih kecil untuk digunakan semula.
// Example for CB & HOF: // CB1 const oneWord = function(str){ return str.replace(/ /g,'').toLowerCase(); }; // CB2 const upperFirstWord = function(str){ const [first, ...others] = str.split(' '); return [first.toUpperCase(), ...others].join(' '); }; // HOF const transformer = function(str, fn){ console.log(`Original string: ${str}`); console.log(`Transformed string: ${fn(str)}`); console.log(`Transformed by: ${fn.name}`); }; transformer('JS is best', upperFirstWord); transformer('JS is best', oneWord); // JS uses callbacks all the time. const hi5 = function(){ console.log("Hi"); }; document.body.addEventListener('click', hi5); // forEach will be exectued for each value in the array. ['Alpha','Beta','Gamma','Delta','Eeta'].forEach(hi5);
Fns mengembalikan fn lain.
// A fn returning another fn. const greet = function(greeting){ return function(name){ console.log(`${greeting} ${name}`); } } const userGreet = greet('Hey'); userGreet("Alice"); userGreet("Lola"); // Another way to call greet('Hello')("Lynda"); // Closures are widely used in Fnal programming paradigm. // Same work using Arrow Fns. Below is one arrow fn returning another arrow fn. const greetArr = greeting => name => console.log(`${greeting} ${name}`); greetArr('Hola')('Roger');
"Anda hanya akan maju apabila anda memahami topik tertentu dengan teliti"
call(), apply(), bind():
Digunakan untuk menetapkan kata kunci 'ini' dengan menetapkan nilainya secara eksplisit.
panggilan - mengambil senarai hujah selepas nilai kata kunci 'ini'.
apply - mengambil tatasusunan hujah selepas nilai kata kunci 'ini'. Ia akan mengambil elemen daripada tatasusunan itu dan menghantarnya ke dalam fungsi.
bind(): Kaedah ini mencipta fungsi baharu dengan kata kunci ini terikat pada objek yang ditentukan. Fungsi baharu mengekalkan konteks ini yang ditetapkan oleh .bind() tidak kira bagaimana fungsi itu digunakan.
panggilan() dan gunakan(): Kaedah ini memanggil fungsi dengan nilai dan hujah ini yang ditentukan. Perbezaan di antara mereka ialah .call() mengambil argumen sebagai senarai, manakala .apply() mengambil argumen sebagai tatasusunan.
const lufthansa = { airline: 'Lufthansa', iataCode: 'LH', bookings: [], book(flightNum, name){ console.log(`${name} booked a seat on ${this.airline} flight ${this.iataCode} ${flightNum}`); this.bookings.push({flight: `${this.iataCode} ${flightNum}`, name}); }, }; lufthansa.book(4324,'James Bond'); lufthansa.book(5342,'Julie Bond'); lufthansa; const eurowings = { airline: 'Eurowings', iataCode: 'EW', bookings: [], }; // Now for the second flight eurowings, we want to use book method, but we shouldn't repeat the code written inside lufthansa object. // "this" depends on how fn is actually called. // In a regular fn call, this keyword points to undefined. // book stores the copy of book method defuned inside the lufthansa object. const book = lufthansa.book; // Doesn't work // book(23, 'Sara Williams'); // first argument is whatever we want 'this' object to point to. // We invoked the .call() which inturn invoked the book method with 'this' set to eurowings // after the first argument, all following arguments are for fn. book.call(eurowings, 23, 'Sara Williams'); eurowings; book.call(lufthansa, 735, 'Peter Parker'); lufthansa; const swiss = { airline: 'Swiss Airlines', iataCode: 'LX', bookings: [] } // call() book.call(swiss, 252, 'Joney James'); // apply() const flightData = [652, 'Mona Lisa']; book.apply(swiss, flightData); // Below call() syntax is equivalent to above .apply() syntax. It spreads out the arguments from the array. book.call(swiss, ...flightData);
Atas ialah kandungan terperinci Fungsi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Python lebih sesuai untuk sains data dan pembelajaran mesin, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python terkenal dengan sintaks ringkas dan ekosistem perpustakaan yang kaya, dan sesuai untuk analisis data dan pembangunan web. 2. JavaScript adalah teras pembangunan front-end. Node.js menyokong pengaturcaraan sisi pelayan dan sesuai untuk pembangunan stack penuh.

JavaScript tidak memerlukan pemasangan kerana ia sudah dibina dalam pelayar moden. Anda hanya memerlukan editor teks dan penyemak imbas untuk memulakan. 1) Dalam persekitaran penyemak imbas, jalankan dengan memasukkan fail HTML melalui tag. 2) Dalam persekitaran Node.js, selepas memuat turun dan memasang node.js, jalankan fail JavaScript melalui baris arahan.

Cara Menghantar Pemberitahuan Tugas di Quartz terlebih dahulu Apabila menggunakan pemasa kuarza untuk menjadualkan tugas, masa pelaksanaan tugas ditetapkan oleh ekspresi cron. Sekarang ...


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.