JavaScript -motor - JavaScript engine
En JavaScript -motor er et computerprogram, der udfører JavaScript -kode. De første JavaScript-motorer var blot tolke , men alle relevante moderne motorer bruger just-in-time-kompilering til forbedret ydeevne.
JavaScript -motorer udvikles typisk af webbrowsere , og hver større browser har en. I en browser kører JavaScript -motoren sammen med gengivelsesmotoren og kan manipulere elementer i dokumentobjektmodellen .
Brugen af JavaScript -motorer er ikke begrænset til browsere. For eksempel er V8 -motoren en kernekomponent i Node.js og Deno runtime -systemer (programmer, der udfører JS -kildekode).
Da ECMAScript er den standardiserede specifikation af JavaScript, er ECMAScript -motor et andet navn for disse motorer. Med fremkomsten af WebAssemble kan nogle motorer også køre denne kode i den samme sandkasse som almindelig JavaScript -kode.
Historie
Den første JavaScript -motor blev oprettet af Brendan Eich i 1995 til Netscape Navigator -webbrowseren . Det var en rudimentær tolk for det begyndende sprog, Eich opfandt. (Dette udviklede sig til SpiderMonkey -motoren, der stadig bruges af Firefox -browseren .)
Den første moderne JavaScript -motor var V8 , skabt af Google til sin Chrome -browser. V8 debuterede som en del af Chrome i 2008, og dens ydeevne var meget bedre end nogen tidligere motor. Den centrale innovation var just-in-time-kompilering , som kan forbedre udførelsestiden betydeligt.
Andre browserudbydere skulle revidere deres tolke for at konkurrere. Apple udviklede Nitro -motoren til sin Safari -browser, som havde 30% bedre ydeevne end sin forgænger. Mozilla udnyttede dele af Nitro til at forbedre sin egen SpiderMonkey -motor.
Siden 2017 har disse motorer tilføjet support til WebAssemble . Dette muliggør brug af forudkompilerede eksekverbare filer til præstationskritiske dele af sidescripts.
Bemærkelsesværdige motorer
- V8 fra Google er den mest anvendte JavaScript -motor. Google Chrome og de mange andre Chrom -baserede browsere bruger det, ligesom applikationer bygget med CEF , Electron eller enhver anden ramme, der integrerer Chrom. Andre anvendelser omfatter Node.js og Deno runtime -systemer .
- SpiderMonkey er udviklet af Mozilla til brug i Firefox og dens gafler . Den GNOME Shell bruger den til udvidelse støtte.
- JavaScriptCore er Apples motor til sin Safari -browser. Andre WebKit -baserede browsere bruger det også. KJS fra KDE var udgangspunktet for dens udvikling.
- Chakra er motoren i Internet Explorer -browseren. Det blev også gafflet af Microsoft til den originale Edge- browser, men Edge blev senere genopbygget som en Chrom-baseret browser og bruger nu derfor V8.