


Nota kajian JavaScript (3): JavaScript juga mempunyai pintu masuk Kemahiran fungsi_javascript utama
Dalam C dan Java, terdapat fungsi atau kaedah kemasukan untuk atur cara iaitu fungsi utama atau kaedah utama. Dalam JavaScript, program mula berjalan dari kepala fail sumber JS. Tetapi dari satu segi, kita masih boleh menjadikan fungsi utama sebagai titik permulaan program Dengan cara ini, ia bukan sahaja boleh disatukan dengan bahasa lain, tetapi mungkin anda akan mempunyai pemahaman yang lebih mendalam tentang JS.
1. Pintu masuk sebenar
Apabila fail JavaScript diserahkan kepada enjin JS untuk dilaksanakan, enjin JS melaksanakan setiap pernyataan satu demi satu dari atas ke bawah sehingga semua kod dilaksanakan.
2. Rangkaian skop, skop global dan objek global
Kami tahu bahawa setiap fungsi dalam JS akan mencipta skop baharu apabila dilaksanakan. Khususnya, skop baharu akan dibuat apabila proses pelaksanaan memasuki fungsi, dan skop ini akan dimusnahkan apabila pelaksanaan fungsi selesai dan keluar. Parameter formal dan pembolehubah tempatan fungsi akan terikat pada skop ini Apabila panggilan fungsi melengkapkan pemusnahan skop, ia akan dimusnahkan dengan sewajarnya. Sudah tentu, dalam kes khas, jika beberapa pembolehubah dalam skop masih dirujuk apabila fungsi kembali, skop dan pembolehubah yang dirujuk ini tidak akan dimusnahkan, membentuk penutupan yang dipanggil.
Sebaliknya, kita tahu bahawa fungsi boleh bersarang, jadi skop juga boleh bersarang. Apabila fungsi ditakrifkan, enjin JS akan menetapkan atribut terbina dalam yang dipanggil [[skop]] untuk setiap fungsi, yang menunjuk kepada skop leksikal fungsi luaran. Dengan cara ini, berbilang skop membentuk struktur rantai yang dipanggil rantai skop. Biasanya, hanya terdapat satu rantai skop pada bila-bila masa, iaitu, bermula dari skop fungsi pelaksana dan menjejak lapisan atas demi lapisan sehingga skop global paling luar.
[Nota]: Fungsi pada rantai skop ialah fungsi bersarang lapisan demi lapisan dalam kod sumber JS ia tidak ada kaitan dengan susunan fungsi tersebut dilaksanakan atau timbunan panggilan fungsi asal usul skop leksikal nama.
Skop global ialah skop khas Ia bukan skop fungsi, tetapi ia adalah skop luar semua skop fungsi dan titik akhir semua rantai skop. Oleh itu, selagi program tidak keluar, skop global sentiasa wujud, dan pembolehubah dalam skop global sentiasa sah.
[Skop fungsi 3]-->[Skop fungsi 2]-->[Skop fungsi 3]-->[Skop global]
Selain itu, sepadan dengan skop global, terdapat objek global. Dalam pelayar, objek global ialah objek tetingkap. Objek global ialah objek khas:
Pembolehubah yang ditakrifkan dalam skop global akan terikat pada objek global.
Pembolehubah yang ditakrifkan dalam mana-mana skop, jika ditakrifkan tanpa kata kunci var, akan terikat pada objek global.
Dalam skop global, ini menunjuk kepada objek global.
Dapat dilihat daripada ciri-ciri yang disenaraikan di atas bahawa jika skop global dianggap sebagai objek, maka ia sebenarnya adalah objek global. Di samping itu, ini juga menjelaskan mengapa empat pernyataan berikut adalah setara dalam skop global:
var a = 1; a = 1; window.a = 1; this.a = 1;
3. Fungsi utama khayalan
Memandangkan semuanya adalah skop, mengapa kita memerlukan skop global khas? Kami sentiasa mengutamakan kesederhanaan dan konsistensi dan cuba mengelakkan kerumitan dan kekhususan. Jadi secara semulajadi, kita tertanya-tanya sama ada kita boleh menjadikan skop global kelihatan sama dengan skop fungsi? Jawapannya ya. Kita boleh fikirkan ini:
Kami membayangkan bahawa apabila enjin JS melaksanakan fail sumber, ia akan membungkus kod dalam fail ke dalam fungsi yang dipanggil utama. Kemudian gunakan fungsi utama ini sebagai titik masuk program.
Iaitu, katakan terdapat kod seperti ini dalam fail JS:
var a = 1; var b = 2; function add(x, y) { var z = x + y; return z; } console.log(add(a, b));
Enjin JS akan membungkus atur cara menjadi fungsi utama sebelum ia mula melaksanakan:
// 虚构的main函数 function main() { var a = 1; var b = 2; function add(x, y) { var z = x + y; return z; } console.log(add(a, b)); }
Kemudian, panggil fungsi utama ini:
main._current_scope_ = window; // 将全局作用域(对象)设为window main.call(window) // 将this指向window
4. Apakah kepentingannya?
(1) JS juga mempunyai fungsi masuk utama, yang konsisten dengan bahasa lain.
(2) Konsep skop global diabaikan, atau skop global menjadi skop fungsi.
(3) Melalui proses panggilan fungsi utama di atas, kita dapat memahami asal usul sifat istimewa dalam skop global.
(4) Perkara terakhir adalah untuk menganggap semua kod sumber JS sebagai fungsi untuk membuka laluan kepada baris gilir acara dan gelung acara kemudian.
Di atas adalah nota kajian JavaScript (3) yang diperkenalkan oleh editor kepada anda: JavaScript juga mempunyai fungsi utama pintu masuk, saya harap anda menyukainya.

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Artikel membincangkan membuat, menerbitkan, dan mengekalkan perpustakaan JavaScript, memberi tumpuan kepada perancangan, pembangunan, ujian, dokumentasi, dan strategi promosi.

Artikel ini membincangkan strategi untuk mengoptimumkan prestasi JavaScript dalam pelayar, memberi tumpuan kepada mengurangkan masa pelaksanaan dan meminimumkan kesan pada kelajuan beban halaman.

Soalan dan penyelesaian yang sering ditanya untuk percetakan tiket kertas terma depan dalam pembangunan front-end, percetakan tiket adalah keperluan umum. Walau bagaimanapun, banyak pemaju sedang melaksanakan ...

Artikel ini membincangkan debugging JavaScript yang berkesan menggunakan alat pemaju pelayar, memberi tumpuan kepada menetapkan titik putus, menggunakan konsol, dan menganalisis prestasi.

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Artikel ini menerangkan cara menggunakan peta sumber untuk debug JavaScript minifikasi dengan memetakannya kembali ke kod asal. Ia membincangkan membolehkan peta sumber, menetapkan titik putus, dan menggunakan alat seperti Chrome Devtools dan Webpack.

Perbincangan mendalam mengenai punca-punca utama perbezaan dalam output konsol.log. Artikel ini akan menganalisis perbezaan hasil output fungsi Console.log dalam sekeping kod dan menerangkan sebab -sebab di belakangnya. � ...

Bagaimana cara menggabungkan elemen array dengan ID yang sama ke dalam satu objek dalam JavaScript? Semasa memproses data, kita sering menghadapi keperluan untuk mempunyai id yang sama ...
