Význam interpretované nebo kompilované v JavaScriptu

click fraud protection

Počítače nemohou ve skutečnosti spustit kód, který píšete JavaScript (nebo jakýkoli jiný jazyk v této věci). Počítače mohou spouštět pouze strojový kód. Strojový kód, který může konkrétní počítač spouštět, je definován v procesoru, který tyto příkazy spouští, a může se lišit pro různé procesory.

Očividně, psaní strojového kódu bylo pro lidi obtížné (je 125 příkazem add nebo je to 126 nebo 27). K vyřešení tohoto problému byly vytvořeny tzv. Jazyky sestavení. Tyto jazyky používaly pro příkazy zřetelnější názvy (například ADD pro přidání), a tak se nemusely zapamatovat přesné strojové kódy. Jazyky sestavení mají stále individuální vztah s konkrétním procesorem a strojovým kódem, do kterého počítač tyto příkazy převádí.

Montážní jazyky musí být kompilovány nebo interpretovány

Velmi brzy se zjistilo, že je snadnější psát jazyky byly potřeba a že samotný počítač mohl být použit k převedení těchto do instrukcí strojového kódu, kterým počítač skutečně rozumí. S tímto překladem bylo možné přistupovat dvěma způsoby a byly vybrány obě alternativy (jeden nebo druhý bude použit v závislosti na používaném jazyce a na tom, kde je spuštěn).

instagram viewer

Zkompilovaný jazyk je takový, ve kterém po napsání programu posíláte kód pomocí programu nazvaného a překladač a to produkuje strojovou verzi programu. Pokud chcete spustit program, stačí zavolat verzi strojového kódu. Pokud provedete změny v programu, musíte jej před testováním změněných kódů překompilovat.

Interpretovaný jazyk je jazyk, ve kterém jsou instrukce převáděny z toho, co jste zapsali do strojového kódu při spuštění programu. Interpretovaný jazyk v podstatě získá instrukce od zdroje programu, převede ji na stroj spustí tento strojový kód a poté vezme další instrukci ze zdroje a zopakuje proces.

Dva varianty kompilace a tlumočení

Jedna varianta používá dvoustupňový proces. U této varianty se zdroj vašeho programu nezkompiluje přímo do strojového kódu, ale místo toho je převeden na jazyk podobný sestavení, který je stále nezávislý na konkrétním procesor. Pokud chcete spustit kód, zpracovává tento kompilovaný kód prostřednictvím tlumočníka specifického pro procesor, aby získal strojový kód vhodný pro tento procesor. Tento přístup má mnoho výhod kompilace při zachování nezávislosti procesoru, protože stejný kompilovaný kód může být interpretován mnoha různými procesory. Java je jeden jazyk, který tuto variantu často používá.

Druhá varianta se nazývá kompilátor Just in Time (JIT). S tímto přístupem kompilátor ve skutečnosti nespustíte po napsání kódu. Místo toho se to stane automaticky při spuštění kódu. Pomocí kompilátoru Just in Time není kód interpretován příkazem příkaz, je kompilován vše v jednom jděte pokaždé, když se volá spuštění a poté se zkompiluje kompilovaná verze, kterou právě vytvořila běh. Díky tomuto přístupu to vypadá hodně podobně, jako je kód interpretován, kromě toho, že místo chyb se vyskytují pouze při výpisu s je dosaženo chyby, jakékoli chyby zjištěné kompilátorem způsobí, že žádný kód nebude spuštěn namísto veškerého kódu až do tohoto bodu běh. PHP je příklad jazyka, který obvykle používá kompilaci právě včas.

Je JavaScript kompilován nebo interpretován?

Takže nyní víme, co znamená interpretovaný kód a kompilovaný kód, otázkou, na kterou musíme odpovědět, je to, co to má společného s JavaScriptem? V závislosti na tom, kde přesně spustíte JavaScript, může být kód kompilován nebo interpretován nebo použít některou z dalších dvou uvedených variant. Většinu času jstespuštěním JavaScriptu ve webovém prohlížeči a tam se obvykle interpretuje JavaScript.

Interpretované jazyky jsou obvykle pomalejší než kompilované jazyky. Existují dva důvody. Za prvé, kód, který má být interpretován, musí být interpretován dříve, než může být spuštěn, a za druhé, že ano k tomu dojde vždy, když má být příkaz spuštěn (nejen pokaždé, když spustíte JavaScript, ale pokud je v něm) A smyčka pak to musí být provedeno pokaždé kolem smyčky). To znamená, že kód napsaný v JavaScriptu poběží pomaleji než kód napsaný v mnoha jiných jazycích.

Jak nám to pomůže, když je JavaScript jediným jazykem, který máme k dispozici ve všech webových prohlížečích? Samotný interpret jazyka JavaScript, který je zabudován do webového prohlížeče, není zapsán do JavaScriptu. Místo toho je psán v jiném jazyce, který byl poté kompilován. To znamená, že můžete zrychlit běh JavaScriptu, pokud můžete využít příkazů, které poskytuje JavaScript, které vám umožňují odložit úlohu do samotného modulu JavaScript.

Příklady pro rychlejší spuštění JavaScriptu

Příkladem je to, že některé, ale ne všechny prohlížeče, implementovaly metodu document.getElementsByClassName () do JavaScriptu, zatímco jiné to ještě neučinily. Pokud potřebujeme tuto konkrétní funkci, můžeme zjistit, že kód běží rychleji v těch prohlížečích, kde je pomocí JavaScriptu stroj poskytuje zjistit, zda metoda již existuje, a vytvořit si vlastní verzi tohoto kódu v JavaScriptu pouze v případě, že jej JavaScript modul neposkytuje nás. Pokud modul JavaScript tuto funkci poskytuje, měl by běžet rychleji, pokud ji použijeme spíše než spouštíme vlastní verzi psanou v jazyce JavaScript. Totéž platí pro jakékoli zpracování, které nám modul JavaScript umožňuje přímo volat.

Existují také případy, kdy JavaScript poskytuje několik způsobů, jak podat stejný požadavek. V těchto případech může být jeden ze způsobů přístupu k informacím konkrétnější než druhý. Například document.getElementsByTagName ('table') [0] .tBodies a document.getElementsByTagName ('table') [0] .getElementsByTagName ('tbody') načíst stejný uzel seznamů tbody v první tabulce na webové stránce, ale první z nich je specifický příkaz pro načtení tagy tbody, kde druhý identifikuje, že načítáme tagy tbody v parametru a mohou být nahrazeny další hodnoty a načíst další značky. Ve většině prohlížečů bude kratší a konkrétnější varianta kódu běžet rychleji (v některých případech mnohem rychleji) než u druhé varianty, a proto má smysl používat kratší a konkrétnější verze. Také usnadňuje čtení a údržbu kódu.

Nyní v mnoha z těchto případů bude skutečný rozdíl v době zpracování velmi malý a bude jen tehdy přidáte mnoho takových voleb kódu dohromady, abyste dosáhli jakéhokoli výrazného rozdílu v době, po kterou váš kód zabere běh. Je docela vzácné, že když změníte kód tak, aby zrychlil, kód bude výrazně delší nebo těžší udržovat a často bude opak pravdou. Další výhodou je, že mohou být vytvořeny budoucí verze modulů JavaScriptu, které dokonce zrychlí konkrétnější variantu dále, takže použití konkrétní varianty může znamenat, že váš kód bude v budoucnu běžet rychleji, aniž byste museli nic měnit.

instagram story viewer