3
Takeaways Key
Argumen 'adalah objek tempatan, seperti array yang terdapat di dalam setiap fungsi JavaScript, yang mengandungi semua argumen yang dibekalkan kepada fungsi apabila ia dipanggil. Ia bukan array yang benar, kerana ia tidak mempunyai kaedah array standard seperti Push and Pop.
Argumen 'juga mempunyai harta' Callee 'yang mengandungi rujukan kepada fungsi yang mencipta objek' Argumen ', yang membolehkan fungsi tanpa nama untuk merujuk kepada dirinya sendiri. Ini boleh digunakan untuk mewujudkan fungsi rujukan sendiri dan fungsi dengan argumen pratetap.
- Argumen adalah nama objek tempatan, seperti array yang terdapat di dalam setiap fungsi. Ia unik, sering diabaikan, tetapi sumber pengaturcaraan banyak pengaturcaraan; Semua perpustakaan utama JavaScript memanfaatkan kuasa objek Argumen. Ia adalah sesuatu yang setiap pengaturcara JavaScript harus menjadi biasa.
- Di dalam mana -mana fungsi anda boleh mengaksesnya melalui pembolehubah: argumen, dan ia mengandungi pelbagai argumen yang dibekalkan kepada fungsi apabila ia dipanggil. Ia sebenarnya bukan pelbagai JavaScript; Typeof Argumen akan mengembalikan nilai: "Objek". Anda boleh mengakses nilai argumen individu melalui indeks array, dan ia mempunyai harta panjang seperti tatasusunan lain, tetapi ia tidak mempunyai kaedah array standard seperti push and pop.
- Buat fungsi fleksibel
Walaupun ia mungkin kelihatan terhad, hujah adalah objek yang sangat berguna. Sebagai contoh, anda boleh membuat fungsi yang menerima bilangan argumen yang berubah -ubah. Fungsi format, yang terdapat di Perpustakaan Base2 oleh Dean Edwards, menunjukkan fleksibiliti ini:
Anda membekalkan rentetan templat, di mana anda menambah pemegang tempat untuk nilai menggunakan %1 hingga %9, dan kemudian membekalkan sehingga 9 argumen lain yang mewakili rentetan untuk dimasukkan. Contohnya:
kod di atas akan mengembalikan rentetan "dan kertas ingin tahu baju yang anda pakai".
Satu perkara yang mungkin anda perhatikan ialah, dalam definisi fungsi untuk format, kami hanya menetapkan satu hujah: String. JavaScript membolehkan kita lulus beberapa argumen ke fungsi, tanpa mengira definisi fungsi, dan objek argumen mempunyai akses kepada mereka semua.
function format(string) { var args = arguments; var pattern = new RegExp("%([1-" + arguments.length + "])", "g"); return String(string).replace(pattern, function(match, index) { return args[index]; }); };
menukarnya ke array sebenar
format("And the %1 want to know whose %2 you %3", "papers", "shirt", "wear");Walaupun argumen bukanlah array JavaScript yang sebenarnya, kita dapat dengan mudah menukarnya kepada satu dengan menggunakan kaedah array standard, slice, seperti ini:
Args pembolehubah kini akan mengandungi objek array JavaScript yang sesuai yang mengandungi semua nilai dari objek argumen.
Buat fungsi dengan argumen pratetap
Objek Argumen membolehkan kita melakukan segala macam helah JavaScript. Berikut adalah definisi untuk fungsi Makefunc. Fungsi ini membolehkan anda membekalkan rujukan fungsi dan bilangan argumen untuk fungsi tersebut. Ia akan mengembalikan fungsi tanpa nama yang memanggil fungsi yang anda tentukan, dan membekalkan argumen pratetap bersama -sama dengan sebarang argumen baru yang dibekalkan apabila fungsi tanpa nama dipanggil:
function format(string) { var args = arguments; var pattern = new RegExp("%([1-" + arguments.length + "])", "g"); return String(string).replace(pattern, function(match, index) { return args[index]; }); };
Hujah pertama yang dibekalkan kepada Makefunc dianggap sebagai rujukan kepada fungsi yang anda ingin panggil (ya, tidak ada ralat pemeriksaan dalam contoh mudah ini) dan ia dikeluarkan dari argumen argumen. Makefunc kemudian mengembalikan fungsi tanpa nama yang menggunakan kaedah penerapan objek fungsi untuk memanggil fungsi yang ditentukan.
hujah pertama untuk memohon merujuk kepada skop fungsi akan dipanggil; Pada dasarnya apa kata kunci yang akan dirujuk di dalam fungsi yang dipanggil. Itu agak maju buat masa ini, jadi kami hanya menyimpannya. Hujah kedua adalah pelbagai nilai yang akan ditukar kepada objek Argumen untuk fungsi tersebut. Makefunc menyambungkan pelbagai nilai asal ke pelbagai argumen yang dibekalkan kepada fungsi tanpa nama dan membekalkannya kepada fungsi yang dipanggil.
Katakan ada mesej yang anda perlukan untuk mengeluarkan di mana templat selalu sama. Untuk menjimatkan anda dari selalu perlu mengutip templat setiap kali anda memanggil fungsi format, anda boleh menggunakan fungsi utiliti Makefunc untuk mengembalikan fungsi yang akan memanggil format untuk anda dan mengisi argumen templat secara automatik:
format("And the %1 want to know whose %2 you %3", "papers", "shirt", "wear");
anda boleh memanggil fungsi majortom berulang kali seperti ini:
var args = Array.prototype.slice.call(arguments);
Setiap kali anda memanggil fungsi Majortom ia memanggil fungsi format dengan hujah pertama, templat, sudah diisi. Panggilan di atas kembali:
function makeFunc() { var args = Array.prototype.slice.call(arguments); var func = args.shift(); return function() { return func.apply(null, args.concat(Array.prototype.slice.call(arguments))); }; }
Buat fungsi rujukan diri
Anda mungkin berfikir yang cukup keren, tetapi tunggu, hujah -hujah mempunyai satu lagi kejutan; Ia mempunyai satu lagi harta yang berguna: Callee. Argumen.Callee mengandungi rujukan kepada fungsi yang mencipta objek Argumen. Bagaimana kita boleh menggunakan perkara sedemikian? argumen.callee adalah cara yang berguna fungsi tanpa nama dapat merujuk kepada dirinya sendiri.
var majorTom = makeFunc(format, "This is Major Tom to ground control. I'm %1.");
majorTom("stepping through the door"); majorTom("floating in a most peculiar way");
"This is Major Tom to ground control. I'm stepping through the door." "This is Major Tom to ground control. I'm floating in a most peculiar way."
repeat is a function that takes a function reference, and 2 numbers. The first number is how many times to call the function and the second represents the delay, in milliseconds, between each call. Here's the definition for repeat:
function repeat(fn, times, delay) { return function() { if(times-- > 0) { fn.apply(null, arguments); var args = Array.prototype.slice.call(arguments); var self = arguments.callee; setTimeout(function(){self.apply(null,args)}, delay); } }; }Hasil memanggil fungsi SomethingWrong adalah kotak amaran yang diulang 3 kali dengan kelewatan 2 saat antara setiap amaran.
function format(string) { var args = arguments; var pattern = new RegExp("%([1-" + arguments.length + "])", "g"); return String(string).replace(pattern, function(match, index) { return args[index]; }); };
soalan yang sering ditanya mengenai argumen JavaScript
Apakah objek 'Argumen' dalam JavaScript? Ia mengandungi struktur seperti array dengan semua argumen yang diserahkan kepada fungsi. Objek ini berguna apabila fungsi perlu mengendalikan nombor argumen yang berubah -ubah. Adalah penting untuk diperhatikan bahawa objek 'argumen' bukanlah array sebenar, tetapi ia boleh ditukar kepada seseorang jika diperlukan. Walau bagaimanapun, anda boleh mengubahnya menjadi array menggunakan kaedah Array.From () atau pengendali penyebaran (...). Berikut adalah contoh:
fungsi converArgStoArray () {
checkArgStype () {
untuk (var i = 0; iBolehkah saya menggunakan objek 'Argumen' dengan parameter lalai dalam JavaScript?
Ya, tetapi dengan kaveat. Sekiranya fungsi dengan parameter lalai dipanggil dengan argumen yang lebih sedikit daripada terdapat parameter, objek 'argumen' hanya akan mengandungi argumen sebenar yang diluluskan, bukan nilai lalai. Harta ini ditutup dan tidak boleh digunakan dalam kod baru. Sebaliknya, anda boleh menggunakan ekspresi fungsi bernama atau fungsi anak panah.
Atas ialah kandungan terperinci Argumen: Keanehan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Memilih Python atau JavaScript harus berdasarkan perkembangan kerjaya, keluk pembelajaran dan ekosistem: 1) Pembangunan Kerjaya: Python sesuai untuk sains data dan pembangunan back-end, sementara JavaScript sesuai untuk pembangunan depan dan penuh. 2) Kurva Pembelajaran: Sintaks Python adalah ringkas dan sesuai untuk pemula; Sintaks JavaScript adalah fleksibel. 3) Ekosistem: Python mempunyai perpustakaan pengkomputeran saintifik yang kaya, dan JavaScript mempunyai rangka kerja front-end yang kuat.

Kuasa rangka kerja JavaScript terletak pada pembangunan yang memudahkan, meningkatkan pengalaman pengguna dan prestasi aplikasi. Apabila memilih rangka kerja, pertimbangkan: 1.

Pengenalan Saya tahu anda mungkin merasa pelik, apa sebenarnya yang perlu dilakukan oleh JavaScript, C dan penyemak imbas? Mereka seolah -olah tidak berkaitan, tetapi sebenarnya, mereka memainkan peranan yang sangat penting dalam pembangunan web moden. Hari ini kita akan membincangkan hubungan rapat antara ketiga -tiga ini. Melalui artikel ini, anda akan mempelajari bagaimana JavaScript berjalan dalam penyemak imbas, peranan C dalam enjin pelayar, dan bagaimana mereka bekerjasama untuk memacu rendering dan interaksi laman web. Kita semua tahu hubungan antara JavaScript dan penyemak imbas. JavaScript adalah bahasa utama pembangunan front-end. Ia berjalan secara langsung di penyemak imbas, menjadikan laman web jelas dan menarik. Adakah anda pernah tertanya -tanya mengapa Javascr

Node.js cemerlang pada I/O yang cekap, sebahagian besarnya terima kasih kepada aliran. Aliran memproses data secara berperingkat, mengelakkan beban memori-ideal untuk fail besar, tugas rangkaian, dan aplikasi masa nyata. Menggabungkan sungai dengan keselamatan jenis typescript mencipta powe

Perbezaan prestasi dan kecekapan antara Python dan JavaScript terutamanya dicerminkan dalam: 1) sebagai bahasa yang ditafsirkan, Python berjalan perlahan tetapi mempunyai kecekapan pembangunan yang tinggi dan sesuai untuk pembangunan prototaip pesat; 2) JavaScript adalah terhad kepada benang tunggal dalam penyemak imbas, tetapi I/O multi-threading dan asynchronous boleh digunakan untuk meningkatkan prestasi dalam node.js, dan kedua-duanya mempunyai kelebihan dalam projek sebenar.

JavaScript berasal pada tahun 1995 dan dicipta oleh Brandon Ike, dan menyedari bahasa itu menjadi C. 1.C Language menyediakan keupayaan pengaturcaraan prestasi tinggi dan sistem untuk JavaScript. 2. Pengurusan memori JavaScript dan pengoptimuman prestasi bergantung pada bahasa C. 3. Ciri lintas platform bahasa C membantu JavaScript berjalan dengan cekap pada sistem operasi yang berbeza.

JavaScript berjalan dalam penyemak imbas dan persekitaran Node.js dan bergantung pada enjin JavaScript untuk menghuraikan dan melaksanakan kod. 1) menjana pokok sintaks abstrak (AST) di peringkat parsing; 2) menukar AST ke bytecode atau kod mesin dalam peringkat penyusunan; 3) Laksanakan kod yang disusun dalam peringkat pelaksanaan.

Trend masa depan Python dan JavaScript termasuk: 1. Kedua -duanya akan terus mengembangkan senario aplikasi dalam bidang masing -masing dan membuat lebih banyak penemuan dalam prestasi.


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

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

Artikel Panas

Alat panas

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

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