JavaScript beroperasi dalam persekitaran satu benang, bermakna ia melaksanakan satu tugas pada satu masa. Ia mengendalikan pelaksanaan kod dalam Konteks Pelaksanaan (EC), yang boleh sama ada Global atau Fungsian.
Konteks Pelaksanaan Global (GEC)
Dibuat apabila fail kod dimuatkan.
GEC bertanggungjawab untuk menyediakan objek global (dalam penyemak imbas, ia adalah tetingkap) dan kata kunci ini.
Semua pembolehubah dan fungsi yang diisytiharkan dalam skop global disimpan dalam EC Global.
Fasa Konteks Pelaksanaan
Fasa Penciptaan Memori:
Semasa fasa ingatan, JavaScript memperuntukkan memori untuk pembolehubah dan fungsi.
Pembolehubah diberikan nilai yang tidak ditentukan pada mulanya, manakala fungsi disimpan dalam ingatan dengan definisi penuhnya.
Fasa Pelaksanaan:
Selepas fasa peruntukan memori, JavaScript mula melaksanakan kod baris demi baris.
Pembolehubah diberikan nilai sebenar dan fungsi dilaksanakan.
Konteks Pelaksanaan Fungsian (FEC)
Setiap kali fungsi dipanggil, JavaScript mencipta Konteks Pelaksanaan baharu khusus untuk fungsi tersebut.
Konteks pelaksanaan untuk setiap fungsi mempunyai dua fasa:
Fasa Memori: Memori diperuntukkan kepada pembolehubah setempat dan berfungsi di dalam fungsi.
Fasa Pelaksanaan: Badan fungsi dilaksanakan dan pembolehubah mendapat nilai sebenar mereka.
Selepas pelaksanaan, konteks pelaksanaan fungsi dimusnahkan, membebaskan memori.
Penyata Pulangan
Sebaik sahaja fungsi mencapai penyataan pulangan, fungsi itu segera keluar, dan konteks pelaksanaannya dialih keluar daripada Tindanan Panggilan. Sebarang kod yang ditulis selepas penyataan pemulangan tidak akan dilaksanakan.
Timbunan Panggilan
JavaScript menggunakan Tindanan Panggilan untuk mengurus konteks pelaksanaan.
Konsep LIFO (Masuk Terakhir, Keluar Dahulu) digunakan:
Apabila fungsi dipanggil, konteks pelaksanaannya diletakkan di atas tindanan.
Setelah fungsi selesai (atau mencapai pulangan), konteks pelaksanaannya muncul dari timbunan.
JavaScript ialah Satu Benang
Berbenang tunggal bermakna JavaScript hanya boleh melaksanakan satu operasi pada satu masa tetapi masih boleh melakukan operasi tak segerak tidak begitu menarik dalam catatan saya yang seterusnya, kita akan membincangkan tentang fungsi JavaScript yang menakjubkan ini.
Atas ialah kandungan terperinci Bagaimana JS berfungsi di sebalik tabir?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!