Rumah  >  Artikel  >  hujung hadapan web  >  Membawa anda memahami cara JavaScript berfungsi

Membawa anda memahami cara JavaScript berfungsi

WBOY
WBOYke hadapan
2022-08-31 17:40:311798semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang javascript Artikel ini memperkenalkan prinsip operasi JavaScript kepada anda dengan terperinci dan mempunyai rujukan tertentu untuk kajian atau kerja anda. kawan-kawan yang memerlukan boleh rujuk.

Membawa anda memahami cara JavaScript berfungsi

[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web]

Fahami cara JavaScript berjalan , dan mekanisme pengendaliannya Pertama, kita perlu memahami kernel penyemak imbas:

Inti penyemak imbas

Sesiapa yang telah mengetahui tentangnya tahu bahawa pelayar yang berbeza terdiri daripada kernel yang berbeza di sana dan kernel yang digunakan oleh penyemak imbas kami yang biasa digunakan:

  • Gecko: digunakan oleh pelayar Netscape dan Mozilla Firefox pada masa awal
  • Trident: dibangunkan oleh Microsoft, Digunakan oleh IE4 ~Pelayar IE11, tetapi penyemak imbas Edge telah bertukar kepada Blink
  • Webkit: dibangunkan oleh Apple berdasarkan KHTML, sumber terbuka, digunakan dalam Safari, dan Google Chrome juga digunakan sebelum ini; : Ia adalah cabang Webkit, dibangunkan oleh Google, dan kini digunakan dalam Google Chrome, Edge, Opera, dsb.
  • Apa yang dipanggil kernel pelayar merujuk kepada enjin susun atur penyemak imbas, iaitu , enjin pelayar. Aliran pelaksanaan kerja enjin adalah seperti berikut:

Membawa anda memahami cara JavaScript berfungsiTetapi semasa proses pelaksanaan ini, teg JavaScript ditemui semasa penghuraian HTML.

akan berhenti menghuraikan HTML dan memuatkan serta melaksanakan kod JavaScript


Sudah tentu, mengapa tidak memuatkan dan melaksanakan kod JavaScript secara tidak segerak dan bukannya berhenti di sini?

Jadi penyemak imbas berharap untuk meletakkan DOM yang dihuraikan oleh HTML dan DOM selepas operasi JavaScript bersama-sama untuk menjana pepohon DOM terakhir, dan bukannya kerap menjana pepohon DOM baharu; Kod JavaScript?

Jawapan: Enjin JavaScript

Enjin JavaScript


Mengapa anda memerlukan enjin JavaScript?

Malah, sama ada JavaScript yang kita tulis diserahkan kepada penyemak imbas atau Node untuk dilaksanakan, ia akhirnya perlu dilaksanakan oleh CPU

Tetapi CPU sahaja yang tahu set arahannya sendiri. Ia adalah bahasa mesin yang boleh dilaksanakan oleh CPU
  • Jadi kami memerlukan enjin JavaScript untuk membantu kami menterjemah kod JavaScript ke dalam arahan CPU untuk pelaksanaan
  • Apakah enjin JavaScript biasa?
SpiderMonkey: enjin JavaScript pertama, dibangunkan oleh Brendan Eich (juga pengarang JavaScript

Chakra: dibangunkan oleh Microsoft, digunakan dalam pelayar IE; >JavaScriptCore: Enjin JavaScript dalam WebKit, dibangunkan oleh Apple
  • V8: Enjin JavaScript berkuasa yang dibangunkan oleh Google turut membantu Chrome menonjol daripada banyak penyemak imbas (V8 ialah enjin JavaScript yang berkuasa)
  • Enjin V8
  • V8 ialah enjin JavaScript dan WebAssembly berprestasi tinggi sumber terbuka Google yang ditulis dalam C. Ia digunakan dalam Chrome dan Node.js, dsb.
Ia melaksanakan ECMAScript dan WebAssembly dan berjalan pada Windows 7 atau lebih baru, sistem macOS 10.12 dan Linux menggunakan pemproses x64, IA-32, ARM atau MIPS.

V8 boleh berjalan sendiri atau dibenamkan ke dalam mana-mana aplikasi C.
  • Prinsip enjin V8 melaksanakan kod JavaScript:
  • Modul Parse akan menukar kod JavaScript kepada AST (Pokok Sintaks Abstrak Ini kerana penterjemah tidak memahami secara langsung - JavaScript). kod ;
Jika fungsi tidak dipanggil, ia tidak akan ditukar kepada AST; >

Pencucuhan ialah penterjemah yang menukarkan AST kepada ByteCode (bytecode)

    dan juga mengumpul maklumat yang diperlukan untuk pengoptimuman TurboFan (seperti maklumat jenis parameter fungsi) , hanya dengan jenis itu boleh menjalankan operasi sebenar); /ignition-interpreter
  • TurboFan ialah pengkompil yang boleh menyusun bytecode ke dalam kod mesin yang boleh dilaksanakan terus oleh CPU

Jika fungsi dipanggil berbilang kali Jika dipanggil, ia akan ditandakan sebagai fungsi panas, dan kemudian ia akan ditukar kepada kod mesin yang dioptimumkan melalui TurboFan untuk meningkatkan prestasi pelaksanaan kod itu; Kerana jika jenis berubah semasa pelaksanaan fungsi berikutnya (contohnya, fungsi jumlah pada asalnya melaksanakan jenis nombor, dan kemudian melaksanakannya sebagai jenis rentetan), kod mesin yang dioptimumkan sebelum ini tidak dapat mengendalikan operasi dengan betul dan akan ditukar secara terbalik.

[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web]

Atas ialah kandungan terperinci Membawa anda memahami cara JavaScript berfungsi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam