Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah javascript berfungsi?

Bagaimanakah javascript berfungsi?

WBOY
WBOYasal
2023-05-26 14:22:381458semak imbas

JavaScript ialah bahasa skrip yang ditulis dalam bentuk teks Ia digunakan terutamanya untuk mengawal tingkah laku halaman web dalam pelayar web dan menjadikan halaman interaktif secara dinamik. Dalam artikel ini, kami akan mengetahui lebih lanjut tentang cara JavaScript berfungsi dengan meneroka aliran kerjanya.

Aliran kerja JavaScript terutamanya merangkumi tiga bahagian: penghuraian, penyusunan dan pelaksanaan. Antaranya, fasa penghuraian menukar kod JavaScript kepada pokok sintaks abstrak (AST);

  1. Penghuraian

Penghuraian ialah proses menukar kod teks kepada pepohon sintaks. Semasa proses penghuraian, kod JavaScript mula-mula dibahagikan kepada token oleh tokenizer Pada peringkat ini, semua ruang, tab dan aksara baris baharu diabaikan dan tidak mengambil bahagian dalam menjana token. Token ialah unit analisis sintaks terkecil Setiap Token mewakili unit semantik kod, seperti nama pembolehubah, nombor, kata kunci fungsi, dll.

Semasa proses penghuraian, enjin JavaScript akan membina pepohon sintaks abstrak berdasarkan peraturan tatabahasa kod untuk penyusunan dan pelaksanaan kod selanjutnya. Pokok sintaks abstrak ialah struktur pokok yang digunakan untuk menerangkan semantik program, yang terdiri daripada satu siri nod dan tepi. Setiap nod dalam pepohon mewakili struktur tatabahasa (seperti pembolehubah, fungsi, operator, dll.) dalam pernyataan atau ungkapan.

  1. Kompilasi

Fasa kompilasi terutamanya menukar pokok sintaks abstrak yang dijana oleh fasa penghuraian kepada kod bait. Bytecode ialah kod binari dalam keadaan pertengahan Tidak seperti arahan mesin, pelaksanaan bytecode memerlukan sokongan jurubahasa atau mesin maya.

Semasa proses penyusunan, enjin JavaScript akan melakukan pengoptimuman terlebih dahulu, termasuk analisis statik dan pengoptimuman masa jalan. Analisis statik mengurangkan pengiraan berlebihan dan penghantaran data pada masa jalan dengan menganalisis struktur kod, hubungan rujukan, penghantaran aliran data dan maklumat lain. Pengoptimuman masa jalan adalah untuk melaraskan strategi pelaksanaan secara dinamik mengikut status berjalan kod, seperti menambah caching dan inline pada gelung.

Selepas pengoptimuman selesai, pengkompil menukar pepohon sintaks abstrak kepada kod bait dan menyimpannya dalam ingatan, mengurangkan proses tafsiran pada setiap larian. Kecekapan pelaksanaan bytecode adalah lebih tinggi daripada penterjemah, tetapi masih terdapat kehilangan prestasi tertentu berbanding dengan kod mesin yang dihasilkan oleh kompilasi.

  1. Pelaksanaan

Fasa pelaksanaan ialah proses menukar kod bait yang dijana dalam fasa kompilasi kepada kod mesin dan melaksanakannya. Proses pelaksanaan JavaScript adalah satu-benang, yang bermaksud bahawa semua kod dilaksanakan secara berurutan dalam urutan yang sama. Oleh itu, semua acara dan operasi diproses secara berurutan dalam baris gilir.

Semasa proses pelaksanaan, memandangkan kod JavaScript boleh mengakses API yang disediakan oleh penyemak imbas seperti DOM dan BOM, enjin JavaScript akan mengekalkan antara muka interaktif dengan penyemak imbas. Apabila peristiwa dicetuskan, enjin JavaScript akan mengambil semula acara daripada baris gilir acara dan melaksanakan fungsi panggil balik yang sepadan. Kod dalam fungsi panggil balik akan memasuki semula proses penghuraian, penyusunan dan pelaksanaan sehingga semua kod dilaksanakan.

Semasa proses pelaksanaan, enjin JavaScript juga akan mengekalkan kawasan memori untuk menyimpan pembolehubah, objek dan data lain. Apabila pembolehubah diisytiharkan, enjin JavaScript memperuntukkan memori untuk menyimpan nilai pembolehubah. Apabila pembolehubah tidak lagi digunakan, enjin JavaScript menuntut semula memori pembolehubah secara automatik untuk mengelakkan kebocoran memori.

Ringkasan

JavaScript ialah bahasa skrip peringkat tinggi dengan peraturan tatabahasa yang ketat dan struktur semantik yang kompleks. Walaupun kecekapan pelaksanaan JavaScript telah menurun berbanding dengan bahasa yang disusun, ia mempunyai kelebihan fleksibiliti dan interaktiviti dan merupakan bahagian yang sangat diperlukan dalam pembangunan Web.

Artikel ini memperkenalkan mekanisme berjalan JavaScript secara terperinci dari tiga aspek: penghuraian, penyusunan dan pelaksanaan. Memahami aliran kerja JavaScript adalah sangat penting untuk pengoptimuman prestasi dan penyahpepijatan program JavaScript.

Atas ialah kandungan terperinci Bagaimanakah javascript berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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