Úvod do toho, jak funguje JavaScript?
JavaScript je skriptovací jazyk, který se používá v prohlížeči pro interakci s rozhraním. Brendan Eich byl první osobou, která vytvořila engine JavaScriptu, byl pro webový prohlížeč Netspace Navigator ve společnosti Netspace. Je implementován v jazyce C a jeho kódové označení bylo SpiderMonkey. Zpočátku se projekt jmenoval Mocha, poté byl přejmenován na LiveScript a nakonec, když společnosti Netspace a Sun uzavřely licenční smlouvu, byl opět přejmenován na JavaScript. V tomto tématu se seznámíme s tím, jak javascript funguje. Určitě jsme slyšeli o populárních enginech, jako je V8, Spider Monkey a existuje mnoho dalších. Různé enginy mají různá “kódová jména”, například:
- V8 – engine používaný v Opeře & Chrome.
- SpiderMonkey – engine používaný ve Firefoxu.
- Trident, Chakra – engine používaný v IE & Nitro.
- ChakraCore – engine používaný v Microsoft Edge.
- SquirrelFish – engine používaný v Safari.
Jádro používané pro javascript se skládá ze dvou hlavních komponent:
Start Your Free Software Development Course
Web development, programming languages, Software testing & others
- Heap Memory- zde dochází k alokaci paměti.
- Zásobník volání – to je místo, kde se zásobníky volají a kde se vykonává kód.
POZNÁMKA:
JavaScript, jednovláknový programovací jazyk, což znamená, že má jediný zásobník volání, a proto má schopnost dělat jednu věc v daném okamžiku. Zásobník volání je v podstatě datová struktura, která zaznamenává bod programu, který se právě provádí. Tento zásobník volání je podobný jiným zásobníkům, které mají základní funkce, jako například, pokud vstoupíme do funkce, umístíme ji na vrchol zásobníku. Pokud se chceme z funkce vrátit, musíme z vrcholu zásobníku vyskočit. To je základní funkčnost každého zásobníku. Vzhledem k tomu, že se bavíme o enginech, které řídí funkce JavaScriptu, jsou opravdu složité, ale základní věci, které každý engine v širším slova smyslu provádí, jsou následující:
- Pokud prohlížeč čte skript, pak je engine zabudován v samotném prohlížeči.
- Po přečtení skriptu převede (“zkompiluje”) skript do strojového jazyka.
- A pak běží strojový kód, a to docela rychle.
Co umí práce v JavaScriptu v prohlížeči?
- Změní stávající obsah, upraví styly přidáním nového HTML do stránek.
- Zajistí funkce jako kliknutí myší, najetí myší atd. které reagují na akce použití.
- Odesílá a přijímá požadavky po síti na vzdálené servery, aniž by se načetla celá stránka podle vstupů uživatele. Jednou z takových technologií, která je velmi známá, je AJAX.
- Pomocí této technologie lze nastavovat a získávat hodnoty souborů cookie, poskytovat uživatelům zprávy pro informační, výstražné a jiné účely.
- Také lze ukládat dočasná data na straně klienta.
Co NEMŮŽE v prohlížeči fungovat JavaScript?
Schopnosti JavaScriptu jsou v rámci prohlížeče poněkud omezené, jsou omezené z důvodu bezpečnosti uživatele. Cílem je zabránit tomu, aby se některá webová stránka třetí strany dostala k soukromým informacím nebo poškodila data uživatele. Některé scénáře takto omezeného přístupu jsou následující:
- Ve výchozím nastavení je JavaScript na webové stránce omezen na čtení/zápis libovolných souborů na pevném disku, jejich kopírování nebo spouštění programů. Nemá ani přímý přístup k systémovým funkcím operačního systému. Několik moderních prohlížečů mu také umožňuje pracovat se soubory, ale u těch je přístup omezen a poskytnut pouze v případě, že uživatel provede určité akce, jako je například “vhození” souboru do okna prohlížeče. Některými způsoby je také možné komunikovat s kamerou/mikrofonem a dalšími zařízeními, ale i to vyžaduje výslovné povolení uživatele. Stránka s podporou JavaScriptu tedy nesmí tajně povolit webovou kameru nebo odesílat informace na vzdálený server či jiné třetí straně.
- Různé karty nebo okna o sobě obecně neví instance. Technicky je to však velmi dobře možné. Totéž se nazývá “Zásady stejného původu”. Aby totéž fungovalo, musí obě instance obsahovat nějaký speciální kód JavaScriptu, který zvládne vzájemnou výměnu dat. Omezení je zde ale opět kvůli bezpečnosti uživatele. Například webová stránka z adresy URL abc.com, kterou uživatel otevřel, nesmí mít možnost přistupovat na jinou kartu prohlížeče s adresou URL xyz.com a tajně krást informace.
- S jeho pomocí lze snadno komunikovat po síti s libovolným vzdáleným serverem nebo třetí stranou, odkud aktuální stránka pochází. Z bezpečnostních důvodů je však jeho schopnost přijímat nebo odesílat data z jiných stránek nebo domén zakázána. Stále je však možné totéž, k čemuž některé práce s JavaScriptem vyžadují výslovný souhlas vzdálené strany. Takové omezení nebude možné zajistit, pokud by se JavaScript používal mimo prohlížeč a nikoliv uvnitř, tedy buď ze serveru. Můžete si také všimnout, že některé z moderních prohlížečů umožňují instalaci zásuvných modulů nebo rozšíření, pomocí kterých práce v jazyce JavaScript používané uvnitř prohlížeče získají rozšířená oprávnění.
V čem je práce v jazyce JavaScript jedinečná?
- Jak všichni víme, jedná se o objektový skriptovací jazyk.
- Je napsán v jazyce C. Je to interpretovaný jazyk.
- Čistý JavaScript je rychlejší v přístupu k DOM.
- Pomocí práce s JavaScriptem získává uživatel větší kontrolu nad prohlížečem.
- Může také zpracovávat datum a časové razítko.
- Dokáže také rozpoznat prohlížeč uživatele a dokonce i operační systém.
- Je lehký.
- Je to skriptovací jazyk, jak již bylo řečeno.
- Je to skriptovací jazyk založený na interpretu.
- Je case sensitive, tj. syntaxe rozlišuje velikost písmen.
- Je to objektový jazyk, protože poskytuje předdefinované objekty jako Java, ale není to Java.
- Každý příkaz v JavaScriptu musí být ukončen středníkem (;).
- Nejdůležitější věc, kterou JavaScript poskytuje, je možnost vytvářet nové funkce v rámci skriptů. Funkci lze v JavaScriptu deklarovat pomocí funkce
- Plná podpora HTML a CSS.
- Je velmi jednoduchý na používání.
- Podporuje všechny prohlížeče.
Omezení
Mezi mnoha výhodami má JavaScript také některá omezení, která jsou uvedena níže:
- JavaScript je na straně klienta a neposkytuje možnost čtení nebo zápisu souborů na disk.
- JavaScript nelze použít pro síťové aplikace, protože takovou podporu neposkytuje.
- Neposkytuje žádné funkce, jako je multithreading nebo multiprocesor.
Závěr
Takže tímto jsme se všichni dozvěděli, že o některých základních informacích o vývoji práce s JavaScriptem, o některých známých enginech, které provozují JavaScript ve webových prohlížečích, jaké jsou výhody toho, že JavaScript zůstává uvnitř prohlížečů, a co by se mohlo stát, kdyby JavaScript mohl být umístěn a provozován mimo prohlížeče. Setkali jsme se také s některými vlastnostmi práce s JavaScriptem, díky nimž je použitelný a jedinečný, a s některými jeho omezeními/nevýhodami. Tímto tedy uzavírám téma o tom, jak funguje javascript, existuje ještě mnoho dalších věcí, které byste mohli prozkoumat z webu.
Doporučené články
Toto byl průvodce prací s JavaScriptem. Probrali jsme zde základní pojmy, omezení a to, čím je javascript jedinečný oproti ostatním. Můžete se také podívat na následující články, kde se dozvíte více –
- Cheat Sheet JavaScript
- Použití JavaScriptu
- JavaScript vs JScript
- C# vs JavaScript
.