JavaScript

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 11. května 2022; kontroly vyžadují 22 úprav .
JavaScript
Jazyková třída

multiparadigma : objektově orientované ( prototypické ), zobecněné , funkční , imperativní , orientované na aspekty ,

událostmi řízené programování
Typ provedení interpretace, překlad do Java bytecode [ 1] , JIT do nativního kódu [2]
Objevil se v 1995
Autor Brendan Eich
Přípona souboru .js, .cjs, .mjs[Спецификация 1]
Uvolnění ECMAScript 2022 [3]  (červen 2022 ) ( 2022–06 )
Typový systém dynamický , kachna
Hlavní implementace SpiderMonkey , Rhino , KJS (JavaScript) , JavaScriptCore , V8
Byl ovlivněn Lua , Self [4] , C , Schéma [4] , Perl [4] , Python , Java [4] , AWK [4] , HyperTalk [4]
ovlivnil Objective-J , Dart , TypeScript
 Mediální soubory na Wikimedia Commons
JavaScript
Rozšíření .js[7]
MIME typ text/javascript, aplikace/javascript [5] [6]
zveřejněno září 1995 [8]
Typ formátu textový soubor se zdrojovým kódem
Rozšířeno z ECMAScript
 Mediální soubory na Wikimedia Commons

JavaScript ( / ˈ dʒ ɑː v ɑː ˌ s k r ɪ p t / ; zkr. JS /ˈdʒeɪ.ɛs./ ) je multiparadigmatický programovací jazyk . Podporuje objektově orientované , imperativní a funkční styly. Jedná se o implementaci specifikace ECMAScript (standard ECMA-262 [9] ).

JavaScript se běžně používá jako vložitelný jazyk pro programový přístup k objektům aplikace . Nejvíce se používá v prohlížečích jako skriptovací jazyk pro vytváření interaktivních webových stránek [10] .

Hlavní architektonické rysy: dynamické psaní , slabé psaní , automatická správa paměti , prototypové programování , funguje jako prvotřídní objekty .

JavaScript byl ovlivněn mnoha jazyky a cílem bylo přiblížit jazyk Javě. JavaScript nevlastní žádná společnost ani organizace, což jej odlišuje od řady programovacích jazyků používaných při vývoji webu [~ 1] [11] .

Název "JavaScript" je ochranná známka společnosti Oracle Corporation registrovaná v USA [12] .

V roce 1992 začala společnost Nombas ( následně získaná Openwave ) vyvíjet vložitelný skriptovací jazyk Cmm (C-minus-minus), který měl být podle vývojářů dostatečně výkonný, aby nahradil makra , při zachování podobnosti s C , aby se to vývojáři snadno naučili [13] . Hlavním rozdílem oproti C byla manipulace s pamětí. V novém jazyce byla veškerá správa paměti prováděna automaticky: nebylo třeba vytvářet buffery , deklarovat proměnné a provádět konverzi typů. V ostatních ohledech si byly jazyky velmi podobné: zejména Cmm podporoval standardní funkce a operátory C [14] . Cmm byl přejmenován na ScriptEase , protože původní název zněl příliš negativně a zmínka o C v něm lidi „děsila“ [13] [15] . Na základě tohoto jazyka byl vytvořen proprietární produkt CEnvi . Na konci listopadu 1995 Nombas vyvinul verzi CEnvi , která je zabudována do webových stránek. Stránky, které bylo možné upravit pomocí skriptovacího jazyka, se nazývaly Espresso Pages  , které demonstrovaly použití skriptovacího jazyka k vytvoření hry, ověření uživatelského vstupu ve formulářích a vytvoření animací. Espresso Pages bylo umístěno jako ukázka , aby pomohla představit si, co by se stalo, kdyby byl do prohlížeče implementován jazyk Cmm . Fungovaly pouze v 16bitovém Netscape Navigatoru pod Windows [16] .

Úplně první implementaci JavaScriptu vytvořil Brendan Eich ve společnosti Netscape a od té doby byla aktualizována, aby vyhovovala ECMA-262 Edition 5 a novějším. Tento engine se nazývá SpiderMonkey a je implementován v C/ C++ . Engine Rhino byl vytvořen Norrisem Boydem a implementován v Javě. Stejně jako SpiderMonkey i Rhino vyhovuje ECMA-262 Edition 5.   

JavaScript

Brendan Eich , najatý Netscape 4. dubna 1995 [18] , měl za úkol přinést programovací jazyk Scheme nebo něco podobného do prohlížeče Netscape. Protože požadavky byly nejasné, Eich byl přesunut do skupiny Server Products, kde strávil měsíc prací na vylepšení protokolu HTTP [18] . V květnu byl vývojář převeden zpět do týmu na straně klienta (prohlížeče), kde okamžitě začal vyvíjet koncept nového programovacího jazyka. Vedení vývoje prohlížeče, včetně Toma Paquina , Michaela Toye , Ricka Schella , bylo přesvědčeno, že Netscape by měl podporovat programovací jazyk vložený do HTML kódu stránky [ 19 ] .  

Kromě Brendana Eicha se na vývoji podíleli [18 ] spoluzakladatel Netscape Communications [20] Mark Andressen a spoluzakladatel Sun Microsystems Bill Joy : abychom měli čas dokončit práci na jazyku pro vydání prohlížeče , společnosti uzavřely smlouvu o rozvojové spolupráci [21] . Dali si za cíl poskytnout „jazyk pro lepení“ součástí webového zdroje: obrázky, zásuvné moduly, Java applety, který by byl vhodný pro webové designéry a programátory, kteří nemají vysokou kvalifikaci [18] .

Jazyk se původně jmenoval Mocha [23] [24] [25] na návrh Marka Andreessena [22] , implementoval jej Brendan Eich během deseti dnů a poprvé byl zařazen do pre-alfa verze Netscape 2 [22] . Poté byl přejmenován na LiveScript [25] [26] a byl určen jak pro programování na straně klienta, tak pro programování na straně serveru (kde se měl nazývat LiveWire) [21] . Syntaxe byla ovlivněna jazyky C a Java , a protože Java byla v té době módním slovem [18] [21] , byl LiveScript 4. prosince 1995 přejmenován na JavaScript [ 27] , licencovaný společností Sun. Oznámení JavaScriptu zástupci Netscape a Sunu proběhlo v předvečer vydání druhé beta verze Netscape Navigatoru [18] . Prohlašuje, že 28 předních IT společností vyjádřilo svůj záměr používat JavaScript jako otevřený standardní objektový skriptovací jazyk ve svých budoucích produktech [28] .

V roce 1996 společnost Microsoft vydala analog jazyka JavaScript s názvem JScript . Tento jazyk byl oznámen 18. července 1996 [29] . První prohlížeč podporující tuto implementaci byl Internet Explorer 3.0.

Z iniciativy Netscape [30] [31] byl jazyk standardizován asociací ECMA . Standardizovaná verze se nazývá ECMAScript a je popsána standardem ECMA-262 . První verze specifikace odpovídala JavaScriptu verze 1.1 a také jazykům JScript a ScriptEasy [13] [21] .

Popularita

V knize The World  's Most Misunderstood Programming Language Has Become the World's Most Popular Programming Language  [ 32] Douglas Crockford tvrdí ,  že vedoucí pozici převzal JavaScript díky vývoji AJAX , když se prohlížeč stal převládajícím systémem pro poskytování aplikací. Poznamenává také rostoucí popularitu JavaScriptu, skutečnost, že tento jazyk je zabudován do aplikací, zdůrazňuje význam jazyka.

Podle indexu TIOBE , založeného na Google , MSN , Yahoo! , Wikipedia a YouTube , v dubnu 2015 byl JavaScript na 6. místě (před rokem - na 9.) [33] .

Podle Black Duck Software [34] je používání JavaScriptu na vzestupu ve vývoji softwaru s otevřeným zdrojovým kódem . 36 % projektů vydaných mezi srpnem 2008 a srpnem 2009 zahrnuje JavaScript, nejběžněji používaný programovací jazyk s rychle rostoucí popularitou. 80 % softwaru s otevřeným zdrojovým kódem používá C, C++, Java, Shell a JavaScript. JavaScript je však jediný z těchto jazyků, jehož podíl používání vzrostl (více než 2 procenta, pokud počítáte na řádky kódu) [35] .

JavaScript je nejoblíbenější programovací jazyk používaný k vývoji webových aplikací na straně klienta [36] [37] .

Jazykové funkce

JavaScript je objektově orientovaný jazyk, ale prototypování použité v jazyce [38] [39] způsobuje rozdíly v práci s objekty oproti tradičním třídně orientovaným jazykům. Kromě toho má JavaScript řadu vlastností vlastních funkčním jazykům  – funguje jako prvotřídní objekty, objekty jako seznamy, currying , anonymní funkce , uzávěry [40]  – což dává jazyku další flexibilitu.

Navzdory podobné syntaxi jako C má JavaScript ve srovnání s jazykem C zásadní rozdíly :

Jazyk postrádá takové užitečné věci [41] jako:

Sémantika a syntaxe

Syntaxe JavaScriptu je hodně podobná syntaxi C a Javy , ale sémanticky je jazyk mnohem blíže Self , Smalltalk nebo dokonce Lisp [32] [42] [Specifikace 2] .

V JavaScriptu:

Struktura jazyka

Strukturálně může být JavaScript reprezentován jako spojení tří odlišných částí [43] [44] [45] [46] :

Při zvažování JavaScriptu v prostředí bez prohlížeče nemusí být podporován objektový model prohlížeče a objektový model dokumentu [45] .

Objektový model dokumentu je někdy považován za samostatnou entitu od JavaScriptu [47] [48] [Specifikace 3] , což je v souladu s definicí DOM jako jazykově nezávislého rozhraní dokumentu [49] [~ 3] . Naproti tomu řada autorů shledává BOM a DOM jako úzce související [50] [51] .

Jádro

ECMAScript není jazyk prohlížeče a nedefinuje vstupní a výstupní metody [43] . Je to spíše základ pro vytváření skriptovacích jazyků. Specifikace ECMAScript popisuje datové typy, instrukce, klíčová slova, vyhrazená slova, operátory , objekty, regulární výrazy , aniž by omezovala autory odvozených jazyků v jejich rozšiřování o nové komponenty.

Objektový model prohlížeče

Objektový model prohlížeče je část jazyka specifická pro prohlížeč [45] [52] , která je vrstvou mezi jádrem a objektovým modelem dokumentu [53] . Primárním účelem objektového modelu prohlížeče je správa oken prohlížeče a interakce s nimi. Každé z oken prohlížeče je reprezentováno objektem window, centrálním objektem DOM. Objektový model prohlížeče není v současné době standardizován [45] [54] , ale specifikace je ve vývoji WHATWG [53] [Spec 4] a W3C [44] [Spec 5] .

Kromě správy oken v rámci objektového modelu prohlížeče prohlížeče obvykle poskytují podporu pro následující entity [53] [54] :

  • správa rámů ,
  • podpora zpoždění při provádění kódu a smyčkování se zpožděním,
  • systémové dialogy,
  • správa adresy otevřené stránky,
  • správa informací v prohlížeči,
  • sledovat správu informací o parametrech ,
  • omezená správa historie prohlížení,
  • podpora pro práci s HTTP cookies .
Objektový model dokumentu

Document Object Model je aplikační programovací rozhraní pro HTML a XML dokumenty [55] . Podle DOM může být dokument (například webová stránka) reprezentován jako strom objektů, které mají řadu vlastností, které s ním umožňují provádět různé manipulace:

  • generování a přidávání uzlů,
  • získávání uzlů,
  • změna uzlu,
  • změna spojení mezi uzly,
  • odstranění uzlů.

Vkládání do webových stránek

Umístění na stránce

Chcete-li přidat kód JavaScript na stránku, můžete použít značky <script></script>[Specification 6] , které se doporučují, ale nejsou povinné, umístěné uvnitř <head>. V jednom dokumentu může být libovolný počet kontejnerů <script>. Atribut type="text/javascript"je volitelný, tato hodnota se používá standardně [56] .

Skript, který zobrazuje modální okno s klasickým nápisem "Hello, World!" uvnitř prohlížeče:

< script type = "application/javascript" > alert ( 'Ahoj, světe!' ); </ skript >


Umístění v rámci značky

Specifikace HTML popisuje sadu atributů používaných k definování obsluhy událostí [Specifikace 7] . Příklad použití:

< a href = "delete.php" onclick = "confirm('Jste si jistý?'); return false;" > Vymazat </a> _ _

Ve výše uvedeném příkladu při kliknutí na odkaz funkce confirm('Вы уверены?');vyvolá modální okno s nápisem „Jste si jistý?“, ale return false;zablokuje přechod na odkaz. Tento kód bude samozřejmě fungovat pouze v případě, že prohlížeč má povolenou podporu JavaScriptu, jinak bude odkaz bez varování následován.

Používání kódu JavaScript v kontextu označení stránky je považováno za špatný postup v nenápadném JavaScriptu . Analogové (za předpokladu, že je odkaz opatřen identifikátorem alertLink)

<a id="alertLink"> _ _ _ _ Vymazat </a> _ _

Výše uvedeným příkladem může být například následující fragment kódu JavaScript:

okno . onload = () => { const linkWithAlert = document . getElementById ( 'alertLink' ); linkWithAlert . addEventListener ( 'click' , async () => { if ( potvrdit ( 'Jste si jistý?' )) { wait fetch ( 'delete' , { method : 'DELETE' }) } }) }; Přesunutí do samostatného souboru

Existuje třetí způsob, jak propojit JavaScript - napsat skript do samostatného souboru a poté jej připojit pomocí konstrukce

< body > < script type = "application/javascript" src = "http://Path_to_coscript_file" > </ script > </ body > Atributy prvku skriptu

Prvek skriptu, který se běžně používá k připojení ke stránce JavaScript, má několik atributů.

Pracovní návrh RFC-4329 definující [57] typ MIME vyhovující JavaScriptu uvádí :

[5]

typy médií

  • application/javascript,
  • application/ecmascript,

které jsou také definovány v tomto dokumentu, jsou určeny pro praktické použití a měly by být preferovány.

Původní text  (anglicky)[ zobrazitskrýt] Použití typu „text“ na nejvyšší úrovni pro tento druh obsahu je známé jako problematické. Tento dokument je tedy definuje text/javascripta text/ecmascriptoznačuje jako „zastaralé“. Nedoporučuje se používat experimentální a neregistrované typy médií, jak je uvedeno v části výše.

typy médií,

  • application/javascript
  • application/ecmascript
které jsou také definovány v tomto dokumentu, jsou určeny pro běžné použití a měly by se používat místo nich.
  • volitelný atribut src, který má jako hodnotu adresu k souboru se skriptem.
  • volitelný atribut charsetpoužívaný s srck určení kódování externího souboru, který se má použít.
  • volitelný atribut deferurčuje, že skript je přijímán asynchronně, ale provedení by mělo být odloženo, dokud se nenačte celá stránka.
  • volitelný atribut asyncoznačuje, že skript je přijímán asynchronně a provedení bude provedeno ihned po dokončení stahování. Pořadí, ve kterém jsou skripty prováděny, není zaručeno.

Zároveň je language="JavaScript"atribut language ( ) i přes jeho aktivní používání (v roce 2008 byl tento atribut nejčastěji používaným atributem pro tag <script>[58] ) zastaralý, není v DTD , a proto je považován za nesprávný [ 59] .

Rozsah

Webové aplikace

JavaScript se používá na klientské straně webových aplikací: programy klient-server, ve kterých je prohlížeč klientem a webový server je server, mající logiku distribuovanou mezi serverem a klientem. Výměna informací ve webových aplikacích probíhá po síti. Jednou z výhod tohoto přístupu je skutečnost, že klienti jsou nezávislí na konkrétním operačním systému uživatele, takže webové aplikace jsou multiplatformní služby.

AJAX

JavaScript se používá v AJAX , oblíbeném přístupu k vytváření interaktivních uživatelských rozhraní pro webové aplikace, který zahrnuje asynchronní komunikaci mezi prohlížečem a webovým serverem na „pozadí“. Výsledkem je, že při aktualizaci dat se webová stránka zcela nenačte a rozhraní webové aplikace je rychlejší, než by tomu bylo u tradičního přístupu (bez použití AJAXu).

Kometa

Kometa je široký pojem, který popisuje, jak webové aplikace fungují pomocí trvalých připojení HTTP, což umožňuje webovému serveru odesílat data do prohlížeče bez jakéhokoli dalšího požadavku z prohlížeče. Tyto aplikace využívají technologie přímo podporované prohlížeči. Zejména hojně využívají JavaScript.

Operační systémy prohlížečů

JavaScript je široce používán v operačních systémech prohlížečů . Takže například zdrojový kód IndraDesktop WebOS je 75 % JavaScript, kód operačního systému prohlížeče IntOS  je 70 %. Podíl JavaScriptu ve zdrojovém kódu eyeOS  je 5 %, nicméně i v rámci tohoto operačního systému hraje JavaScript významnou roli, podílí se na vykreslování na klientovi a je nezbytným mechanismem pro komunikaci mezi klientem a serverem [60 ] .

Bookmarklety

JavaScript se používá k vytváření malých programů, které jsou v prohlížeči uloženy do záložek. To používá adresy URL se specifikátorem javascript:[61] .

Uživatelské skripty v prohlížeči

Uživatelské skripty prohlížeče jsou programy JavaScript, které se spouštějí v prohlížeči uživatele při načítání stránky. Umožňují automaticky vyplňovat formuláře, přeformátovat stránky, skrývat nežádoucí obsah a vkládat obsah, který chcete zobrazit, měnit chování klientské strany webových aplikací, přidávat na stránku ovládací prvky a tak dále.

Mozilla Firefox používá ke správě uživatelských skriptů rozšíření Greasemonkey ; Opera [62] [63] [64] a Google Chrome [65] poskytují podporu pro uživatelské skripty a možnost spouštět řadu skriptů Greasemonkey.

Serverové aplikace

Aplikace napsané v JavaScriptu mohou běžet na serverech se systémem Java 6 a novějším [66] . Tato okolnost se používá k vytváření serverových aplikací, které umožňují zpracování JavaScriptu na straně serveru.

Kromě Javy 6 existuje řada platforem, které používají existující JavaScriptové enginy (interprety) ke spouštění serverových aplikací. (Zpravidla mluvíme o opětovném použití dříve vytvořených enginů pro spouštění kódu JavaScript ve WWW prohlížečích.)

JavaScript Server Application Execution Frameworks
název Použitý JavaScript engine Jazyky, ve kterých jsou napsány engine a platforma Licence
Jaxer [67] Spider Monkey [68] C++, C GPL 3 [69]
rámec pro vytrvalost [70] nosorožec Jáva Upravená licence BSD [71]
Helma [72] nosorožec Java, JavaScript Licence Helma 2.0 podobná BSD [73]
v8cgi V8 C++, JavaScript Licence BSD [74]
node.js V8 C++ licence MIT [75]
gopherjs Jít Jít BSD licence

JavaScript na straně serveru se používá v projektech Google [76] . Například Weby Google umožňují přizpůsobení pomocí skriptů JavaScript spouštěných enginem Rhino [77] .

Mobilní aplikace

Přechod mobilních zařízení Palm na používání Palm webOS jako operačního systému s Mojo SDK jako vývojovou sadou [78] umožňuje použití JavaScriptu jako jazyka pro vývoj mobilních aplikací [79] [80] .

Widgety

Widget je pomocný miniprogram, jehož grafický modul je umístěn v pracovní ploše odpovídajícího nadřazeného programu , který slouží k ozdobení pracovní plochy, zábavě, řešení jednotlivých pracovních úkolů nebo rychlému získávání informací z internetu bez pomocí webového prohlížeče. JavaScript se používá jak k implementaci widgetů, tak k implementaci modulů widgetů. Konkrétně Apple Dashboard , Microsoft Gadgets , Yahoo! Widgety , Google Gadgets , Klipfolio Dashboard .

Aplikační software

JavaScript se používá k psaní aplikačního softwaru . Například 16,4 % zdrojového kódu Mozilla Firefox je napsáno v JavaScriptu.

Google Chrome OS používá webové aplikace jako aplikační software [81] .

Desktopové prostředí GNOME má schopnost vytvářet JavaScriptové programy, které pracují s knihovnami GNOME pomocí Gjs , Seed [82] .

Manipulace s aplikačním objektem

JavaScript také nachází využití jako skriptovací jazyk pro přístup k aplikačním objektům. Platforma Mozilla ( XUL / Gecko ) používá JavaScript. Mezi produkty třetích stran například Java od verze 6 obsahuje vestavěný interpret JavaScriptu založený na Rhinu [66] . Skriptování JavaScriptu je podporováno v aplikacích Adobe, jako je Adobe Photoshop , Adobe Dreamweaver , Adobe Illustrator a Adobe InDesign .

Kancelářské aplikace

JavaScript se používá v kancelářských aplikacích k automatizaci rutinních akcí, psaní maker a organizaci přístupu z webových služeb.

Microsoft Office

Excel Services 2010 přidal [83] dvě nová rozhraní pro programování aplikací: REST API a JavaScript Object Model ( JSOM ).

  • Rozhraní REST API Excel Services 2010 umožňuje [84] přístup k objektům sešitu, jako jsou tabulky, grafy a pojmenované datové řady; získat obrázky, HTML, Atom , sešity; nastavit hodnoty a aktualizovat výpočty před dotazem na položky [84] .
  • JSOM umožňuje reagovat na akce uživatelů ve vztahu k Excel Web Access ( EWA ), programově interagovat s komponentami EWA. Použití JSOM se provádí umístěním kódu JavaScript na stránku obsahující komponenty EWA [83] .
OpenOffice.org

JavaScript je jedním z programovacích jazyků používaných pro psaní maker v aplikacích, které jsou součástí OpenOffice.org [85] . OpenOffice.org integruje interpret Rhino JavaScript [86] . Od prosince 2009 byla podpora JavaScriptu omezená. Omezení spojená s [86] vývojem maker OpenOffice.org v JavaScriptu:

  • Runtime JavaScript podporuje pouze načítání tříd Java, které jsou nasazeny skriptem JavaScript.
  • Runtime JavaScriptu neposkytuje chybové zprávy, ke kterým dochází během provádění skriptu;
  • podpora pro vývoj interaktivního JavaScriptu dosud nebyla implementována.

OpenOffice.org má JavaScript editor a debugger [87] .

Vzdělávání v informatice

JavaScript má propedeutickou hodnotu, umožňuje kombinaci intenzivní programátorské praxe a šíře technologií používaných ve výuce informatiky [88] . Výuka tohoto jazyka ve škole vám umožňuje vytvořit základ pro výuku webového programování , využívat kreativní projekty ve třídě [89] . Odpovídající kurz umožňuje poskytnout hloubkovou úroveň studia informatiky a má smysl jej zařadit do volitelných předmětů hloubkové úrovně školení [90] .

JavaScript je vhodný jazyk pro výuku programování her . Ve srovnání s alternativami je funkčně dostačující, snadno se učí a používá, snižuje složitost pro učení, motivuje studenty ke sdílení svých her s ostatními [91] .

Části o implementaci klasických algoritmů , technik, datových struktur v JavaScriptu, které nejsou zahrnuty v knize Nicholase Zakase „Professional JavaScript for Web Developers“ , sloužily [92] jako začátek projektu Computer science in JavaScript [~ 4] .

Verze

JavaScript Odpovídající verze JScript Významné změny
1.0 ( Netscape 2.0, březen 1996) 1.0 (starší verze IE 3.0, srpen 1996) Původní verze jazyka JavaScript.
1.1 (Netscape 3.0, srpen 1996) 2.0 (pozdější verze IE 3.0, leden 1997) V této verzi byl objekt implementován Arraya byly opraveny nejzávažnější chyby.
1.2 (Netscape 4.0, červen 1997) Implementovaný přepínač switch, regulární výrazy. Prakticky uvedeno v souladu s prvním vydáním specifikace ECMA-262.
1.3 (Netscape 4.5, říjen 1998) 3.0 (IE 4.0, říjen 1997) Kompatibilní s prvním vydáním ECMA-262.
1.4 (pouze server Netscape) 4.0 ( Visual Studio 6, žádná verze IE) Platí pouze pro serverové produkty Netscape.
5.0 (IE 5.0, březen 1999)
5.1 (IE 5.01)
1.5 (Netscape 6.0, listopad 2000; také
novější verze Netscape a Mozilla )
5.5 (IE 5.5, červenec 2000) Revize 3 (prosinec 1999). Kompatibilní se třetím vydáním specifikace ECMA-262.
5.6 (IE 6.0, říjen 2001)
1.6 ( Gecko 1.8, Firefox 1.5, listopad 2005) Revize 3 s některými kompatibilními vylepšeními: E4X , dodatky k Array(např. Array.prototype.forEach), zjednodušení pro Arraya String[93]
1.7 (Gecko 1.8.1, Firefox 2.0, podzim 2006), rozšíření JavaScript 1.6 Revize 3, přidává všechna vylepšení z JavaScriptu 1.6, generátory a pochopení seznamů z Pythonu , rozsahy bloků používající a destrukční přiřazení ( ) [ 94] . [a*a for (a in iter)]letvar [a, b] = [1, 2]
JScript .NET ( ASP.NET ; žádná verze IE) (Předpokládá se, že JScript .NET byl vyvinut s příspěvky ostatních členů ECMA )
1.8 (Gecko 1.9, Firefox 3.0, podzim 2008), rozšíření JavaScript 1.7 Nová notace pro funkce podobné typickým lambda výrazům , generátory , nové metody pro iterativní zpracování polí reduce()a reduceRight()[95] .
1.8.1 (Gecko 1.9.1, Firefox 3.5) Nativní podpora JSON, metoda getPrototypeOf()y , Objectmetody trim(), trimLeft(), trimRight()y String[96]
2,0 Revize 4 (probíhající práce [97] , název rezervován ECMA, ale není použit pro publikaci [Specifikace 9] )
Revize 5 (dříve známá jako ECMAScript 3.1 [97] . Dokončeno 3. prosince 2009 [98] [99] .)

Knihovny JavaScriptu

Pro zajištění vysoké úrovně abstrakce a dosažení přijatelného stupně kompatibility mezi prohlížeči se při vývoji webových aplikací používají knihovny JavaScript. Jedná se o soubor opakovaně použitelných objektů a funkcí. Mezi významné JavaScriptové knihovny patří React.js , Vue.js , Ember.js , Adobe Spry , AngularJS , Svelte , Dojo , , jQuery , Mootools , Prototype , Qooxdoo a Underscore .


Ladění

V JavaScriptu se přístup k debuggerům stává zvláště užitečným při vývoji velkých netriviálních programů kvůli rozdílům v implementacích mezi prohlížeči (zejména s ohledem na Document Object Model ). Mnoho prohlížečů má vestavěný debugger.

Internet Explorer má tři debuggery: Microsoft Visual Studio  je nejúplnější, následuje Microsoft Script Editor (součást Microsoft Office [100] ) a konečně bezplatný Microsoft Script Debugger, mnohem jednodušší než ostatní dva. Bezplatný Microsoft Visual Web Developer Express poskytuje omezenou verzi s funkcí ladění JavaScriptu v Microsoft Visual Studio. V osmé verzi IE se spolu s nástroji pro vývojáře objevil i vestavěný debugger.

Opera má také svůj vlastní debugger Opera Dragonfly [101] .

Webové aplikace, které vyvíjíte ve Firefoxu , lze ladit pomocí vestavěných nástrojů Firefox Developer Tools.

Safari obsahuje ladicí program JavaScript WebKit Web Inspector [102] . Stejný debugger je k dispozici také v jiných prohlížečích používajících WebKit : Google Chrome, Arora , Rekonq , Midori atd.

Testovací nástroje

Většina automatizovaných testovacích rámců pro kód JavaScript vyžaduje, abyste spouštěli testy v prohlížeči. To se provádí pomocí HTML stránky, která je testovacím kontextem , který zase načte vše potřebné k provedení testu. Prvními takovými frameworky byly JsUnit (vytvořeno v roce 2001), Selenium (vytvořeno v roce 2004) [103] . Alternativou je spouštění testů z příkazového řádku. V tomto případě se používají prostředí bez prohlížeče, jako je Rhino [104] . Jedním z prvních nástrojů tohoto druhu je Crosscheck, který umožňuje testovat kód emulací chování Internet Exploreru 6 a Firefoxu verze 1.0 a 1.5 [105] . Dalším příkladem automatizovaného testovacího rámce pro kód JavaScript, který ke spouštění testů nepoužívá prohlížeč, je knihovna env.js vytvořená Johnem Resigem. Využívá Rhino a obsahuje emulaci prostředí prohlížeče a DOM [106] .

Blue Ridge, plugin pro webovou aplikační framework Ruby on Rails , vám umožňuje testovat kód JavaScriptu v prohlížeči i mimo něj. Toho je dosaženo použitím automatizovaného testovacího rámce Screw.Unit a Rhina s env.js [107] .

Hlavním problémem systémů testování bez prohlížeče je to, že používají spíše emulace než skutečná prostředí, ve kterých se kód spouští. To vede k tomu, že úspěšné absolvování testů nezaručuje, že kód bude v prohlížeči správně fungovat [108] [109] . Problémem testování systémů, které používají prohlížeč, je složitost práce s nimi, nutnost provádět rutinní neautomatizované akce [110] . K vyřešení tohoto problému používá JsTestDriver, automatizovaný testovací rámec vyvinutý společností Google, server, který komunikuje s prohlížeči k provádění testování [111] . Selenium Remote Control, součást automatizovaného testovacího rámce Selenium, se chová podobně: obsahuje server, který spouští a zastavuje prohlížeče a funguje jako HTTP proxy pro požadavky na ně [112] . Selenium navíc obsahuje Selenium Grid, který umožňuje simultánně testovat JavaScript kód na různých počítačích s různými prostředími, čímž se zkracuje doba provádění testu [113] . Testswarm je distribuovaná podpora nepřetržité integrace , kterou podporují automatizované testovací rámce JavaScriptu QUnit ( knihovna jQuery ), UnitTestJS ( knihovna prototypů ), JSSpec ( knihovna MooTools ), JsUnit, Selenium a Dojo Objective Harness JavaScript [114] .

Negativní vlastností, kterou může mít framework pro testování kódu JavaScript, je přítomnost závislostí. To vytváří riziko, že testovaný kód, který testy projde, selže v prostředí, které tyto závislosti nemá. Například původní verze JsUnitTest, frameworku vytvořeného a používaného k testování knihovny Prototype, závisela na samotném Prototype při změně vlastností objektů v globálním rozsahu [115] . Zahrnutí testovacího nástroje do JavaScriptové knihovny je běžnou praxí. YUI Test 3 je tedy součástí Yahoo! UI Library a lze jej bezpečně použít k testování libovolného kódu JavaScript [116] . QUnit je automatizovaný testovací rámec vytvořený vývojáři jQuery [117] .

Vztah k jiným jazykům

Vzájemný vliv

Standardizace JavaScriptu vyžadovala, aby se předešlo problémům s ochrannými známkami, proto norma ECMA 262 nazývá jazyk ECMAScript, jehož tři revize byly zveřejněny od zahájení prací na něm v listopadu 1996.

Objective-J  je přísná, kompaktní nadmnožina JavaScriptu, která k JavaScriptu přidává:

  • tradiční dědictví,
  • Odeslání dynamické metody ve stylu Smalltalk / Objective-C ,
  • pseudostatické psaní.

Microsoft VBScript , stejně jako JavaScript, může být spuštěn na straně klienta na webových stránkách. VBScript má syntaxi odvozenou z jazyka Visual Basic a je podporován pouze v aplikaci Internet Explorer .

JSON neboli JavaScript Object Notation je obecný formát pro výměnu dat definovaný jako podmnožina JavaScriptu.

Scheme je také sesterským jazykem JavaScriptu, protože oba poskytují bohaté funkční programovací funkce: JavaScript je dynamický jazyk, podporuje flexibilní pole, může snadno simulovat s-výrazy a má podporu pro výrazy lambda [118] .

JavaScript a Java

Běžná mylná představa je, že JavaScript je podobný nebo úzce příbuzný Javě , není [32] . Oba jazyky mají syntaxi podobnou C, jsou objektově orientované a mají tendenci být široce používány ve webových aplikacích na straně klienta. Mezi důležité rozdíly patří:

Implementace

JavaScript implementuje interprety řady programovacích jazyků, což umožňuje použít webový prohlížeč jako runtime pro ně. Lze je využít například pro vzdělávací účely [119] .

HotRuby je bezplatná implementace virtuálního stroje Ruby v JavaScriptu a Flashi . Umožňuje spouštět bajtkód vyplývající z kompilace YARV . Implementuje většinu gramatiky Ruby. Mechanismus výjimek a většina vestavěných funkcí a tříd ještě nebyla implementována [120] . S HotRuby můžete používat rubínové skripty na webových stránkách. Za tímto účelem by měl být rubínový kód umístěn do bloku:

< script type = "text/ruby" > ... </ script >

HotRuby jej rozbalí, odešle do vzdáleného skriptu ke kompilaci a poté zobrazí výsledky na stránce [121] . Tato implementace umožňuje přístup z Ruby k objektům JavaScriptu [122] .

Tabulka implementací programovacích jazyků JavaScript
Jazyk Název implementace Hlavní autoři Licence
JavaScript s-mr [123] Andrej Formiga NewBSD
dovětek WPS [124] Tom Hlavatý ?
PDF
Assembler pro MOS Technology 6502 6502asm [125] Stian Soreng GPL
Cíl-J Cappuccino [126] Ross Boucher LGPL
Haskell ycr2js [127] Tom Shackell, Neil Mitchell, Andrew Wilkinson, Mike Dodds, Bob Davie, Dimitry Golubovsky jednoduchá permisivní licence
Prolog Monash Toy Prolog [128] Lloyd Allison ?
ioctls [129] Jan Grant ?
kočka Kočičí tlumočník [130] Christopher Diggins veřejná doména
Systém BiwaScheme [131] Yutaka Hara MIT
ZÁKLADNÍ Zcela ZÁKLADNÍ [132] Nikko Strom svobodný proprietární
Lily Lily [133] Bill Orcutt MIT
Forth wForth [134] K. Jacobson ?
PHP phype [135]
Python 3 PyPy.js ? ?
Oberon 07 oberonjs [136] Vlad Folts MIT

Interakce

Některé programovací jazyky poskytují podporu pro interakci s kódem JavaScript.

  • PHP má HTML Javascript balíček, který poskytuje rozhraní pro vytváření jednoduchých JavaScript programů [ 137] .
  • Odpovídající balíček pro Tcl se nazývá ::javascript. Poskytuje příkazy pro generování kódu HTML a JavaScript [138] .
  • Balíček Perl Data::JavaScript umožňuje portovat datové struktury Perl do kódu JavaScript [139] .

Podpora prohlížeče

Podporu JavaScriptu k dnešnímu dni zajišťují moderní verze všech nejpoužívanějších prohlížečů. Internet Explorer , Opera , Mozilla Firefox , Safari , Google Chrome mají plnou podporu pro 3. vydání ECMA-262. Ve stejné době se Mozilla Firefox pokusil implementovat podporu pro čtvrté vydání specifikace a prvním prohlížečem, ve kterém se objevila neúplná podpora specifikace 3.1, byl Internet Explorer 8 [140] .

Chyby, kterých se při implementaci specifikace dopustili vývojáři populárních prohlížečů, jsou obvykle drobné [141] . Od listopadu 2009 má objektový model dokumentu omezenější podporu [142] .

Podle tvůrce jazyka může podpora Microsoftu v Internet Exploreru jednoho z rychlých JavaScriptových motorů , který existuje a je používán v jiných prohlížečích , vést ke vzniku aplikací, které pracují s trojrozměrnou grafikou , 3D hry napsané v JavaScriptu, použití JavaScriptu v úlohách, které dříve využívaly technologii Adobe Flash [143] .

Testovací sady

Regresní testování shody prohlížeče se třetím vydáním specifikace ECMA-262 lze provést [144] [145] pomocí Google vyvinutého nástroje pro testování shody se specifikací ECMAScript Sputnik , který zahrnuje více než pět tisíc testů case [146] a byl pojmenován po ruském týmu Google [146] , stejně jako shell sputniktests-webrunner [147] napsaný Yuri Zaitsevem nebo služba Google [148] . Testovací případy zahrnuté ve Sputniku jsou aktualizovány v souvislosti s vydáním pátého vydání specifikace ECMA-262, odrážející změny oproti předchozímu vydání [149] .

ECMAScript 5 Conformance Suite [150] je testovací sada vydaná společností Microsoft pod licencí BSD [151] k ověření, že implementace jazyka ECMAScript odpovídá specifikaci jeho pátého vydání. Ke 12. březnu 2010 bylo v balíčku 1236 testovacích případů, měl verzi 0.2 alfa a počet stažení za tři měsíce byl 178 [152] .

Pro testování správnosti implementací JavaScriptu je k dispozici testovací sada JavaScript [153] [154] od Mozilly .

Zabezpečení

JavaScript umožňuje potenciálním autorům škodlivého kódu spustit jej na libovolném počítači v síti pouhým otevřením webové stránky na něm. To má za následek dvě zásadní omezení:

  • JavaScriptové programy běží v sandboxu , ve kterém mohou provádět pouze omezený rozsah akcí, a nikoli běžné programovací úlohy (například vytváření souborů, práce se sockety ) [155] .
  • pro kód JavaScript se použije pravidlo omezení domény , podle kterého skript vložený do stránky nemůže přistupovat k řadě vlastností objektů jiné stránky (zejména k většině vlastností objektu document), pokud protokol , hostitel a číslo portu těchto stránek se liší [ 156] .

Kromě toho prodejci prohlížečů zavádějí další omezení v reakci na zneužívání, ke kterému dochází. Tak se objevil zejména zákaz otevření okna, jehož velikost jedné strany je menší než sto pixelů [155] .

Zranitelnosti napříč weby

Častým problémem týkajícím se JavaScriptu je cross-site scripting neboli XSS, což je porušení pravidla omezení domény. Chyby zabezpečení XSS se vyskytují v situacích, kdy má útočník možnost umístit skript na stránku, která se zobrazí uživateli. V tomto případě skript získá přístup na stránku s právy tohoto uživatele, což v některých případech otevírá možnost odesílání důvěrných informací a provádění nechtěných transakcí .

Zranitelnosti XSS se také vyskytují kvůli chybám vývojářů prohlížečů [157] .

Dalším typem zranitelnosti mezi weby je padělání požadavků mezi weby neboli CSRF. Spočívá ve schopnosti stránky útočníka donutit prohlížeč uživatele k provedení nežádoucí akce na cílové stránce (například bankovní převod peněz). To je možné, pokud cílový web spoléhá pouze na soubory cookie HTTP nebo požadavky na autorizaci. V tomto případě jsou požadavky iniciované kódem webu útočníka provedeny stejným způsobem jako požadavky uživatele, pokud je na cílovém webu autorizován . Jedním z prostředků ochrany před CSRF je provedení autentizace na jakýkoli požadavek, který vede k nevratným důsledkům. Pomoci může také analýza HTTP refereru .

Chybně umístěná důvěryhodnost na straně klienta

Vývojáři klientských aplikací, ať už používají JavaScript nebo ne, si musí být vědomi toho, že ten může být pod kontrolou útočníků. Proto lze obejít jakoukoli kontrolu na straně klienta, JavaScript může být spuštěn nebo ne. Zatemněný kód lze zpětně upravit ; data formuláře lze odeslat na server bez ověření JavaScriptem ; skripty lze částečně zakázat, takže například nelze implementovat spolehlivou ochranu před ukládáním obrázků pomocí JavaScriptu [158] ; je krajně neprozíravé vkládat heslo do JavaScriptu spuštěného na klientovi, kde ho může útočník najít.

Chyby v prohlížeči, pluginech a rozšířeních

JavaScript poskytuje rozhraní pro širokou škálu funkcí prohlížeče, z nichž některé mohou obsahovat chyby, jako je přetečení vyrovnávací paměti . To vám umožňuje psát skripty, které způsobí, že se v systému uživatele spustí libovolný kód.

Podobné chyby byly nalezeny v běžně používaných prohlížečích, včetně Mozilla Firefox [159] , Internet Explorer [160] , Safari [161] . Při identifikaci potenciálně nebezpečných chyb v prohlížeči a získání informací o implementovaných exploitech doporučují výrobce a bezpečnostní experti před vydáním opravy JavaScript zakázat [162] [163] .

Zásuvné moduly , jako jsou přehrávače , Macromedia Flash a řada komponent ActiveX dostupných ve výchozím nastavení v Internet Exploreru, mohou také obsahovat chyby zneužité pomocí JavaScriptu, jak se to stalo dříve [164] [165] .

Rozšíření Mozilla Firefox nejsou vzájemně izolovaná: jedno rozšíření může opravit druhé, čehož mohou útočníci zneužít. Na SecurityByte & Owasp AppSec Asia 2009 Roberto Suggi Liverani a Nick Freeman předvedli tři exploity v populárních rozšířeních Firefoxu, stažených z webu více než 30 milionůkrát [166] .

Chyby implementace sandboxu

Prohlížeče mohou spouštět JavaScript mimo sandbox s oprávněními potřebnými například k vytváření a odstraňování souborů. Taková oprávnění by však neměla být udělena kódu z webu.

Nesprávná oprávnění pro JavaScript z webu byla příčinou zranitelnosti v Internet Exploreru [167] i Mozilla Firefox [168] .

Microsoft Windows umožňuje souborům JavaScript běžet jako běžné programy, aniž by byly v karanténě. To umožňuje vytvářet trojské koně [169] .

Literatura

  • Fowler, Martin. Refaktorování kódu JavaScript: Zlepšení návrhu existujícího kódu, 2. vydání. - M .: "Dialektika" , 2019. - 464 s. - ISBN 978-5-907144-59-0 .
  • McFarland, David. JavaScript a jQuery: Definitivní průvodce. - M. : "Dialektika" , 2015. - 880 s. - ISBN 978-5-699-79119-4 .
  • Morgane, Nicku. Javascript pro děti. - M. , 2016. - 288 s. - ISBN 978-5-00100-295-6 .
  • Duckett, John. Javascript a jQuery. Interaktivní vývoj webu. - M. , 2017. - 640 s. - ISBN 978-5-699-80285-2 .
  • Resig John, Medvěd Bibo, Maras Josip. Javascript Ninja Secrets 2. vyd. - M .: "Dialectics" , 2017. - 544 s. - ISBN 978-5-9908911-8-0 .
  • Nixon R. Vytváření dynamických webových stránek s PHP, MySQL, JavaScript, CSS a HTML5. 4. vyd. - Petrohrad .. - M . : "Dialektika" , 2016. - 768 s. - ISBN 978-5-496-02146-3 .
  • Flavaran, David. JavaScrirt: Pocket Reference, 3rd Ed. - M. , 2013. - 320 s. - ISBN 978-5-8459-1830-7 .

Viz také

Poznámky

  1. Alexey White. Hlavní JavaScript Engines // JavaScript Programmer's Reference . - Indianapolis, IN 46256: Wiley Publishing, Inc., 2009. - S.  12-13 . - (Programmer's Reference). — ISBN 978-0-470-34472-9 .
  2. Nicholas C. Zakas. JavaScriptové motory nové generace // Vysoce výkonný JavaScript / Editor: Mary E. Treseler. — 1. vyd. - 1005 Gravenstein Highway North, Sebastopol, CA 95472: O'Reilly Media , 2010. - P. xiii. - ISBN 978-0-596-80279-0 .
  3. ECMA-262 . Archivováno z originálu 9. dubna 2022. Staženo 10. dubna 2022.
  4. 1 2 3 4 5 6 _ Axel Rauschmayer. Povaha JavaScriptu // Mluvení JavaScriptu . - První vydání. - O'Reilly Media, 2014. - S. 41. - ISBN 978-1-449-36503-5 . Archivováno 10. května 2015 na Wayback Machine
  5. 1 2 Hoehrmann B. RFC4329  (anglicky) (txt). Pracovní skupina pro síťové technologie Zvláštní komise pro rozvoj internetu (duben 2006). — Text pracovního návrhu RFC4329. Datum přístupu: 28. září 2009. Archivováno z originálu 22. srpna 2011.
  6. ↑ 18.2.1 Prvek SCRIPT  . Specifikace HTML 4.01 . W3C (24. prosince 1999). — Popis prvku Script. Získáno 25. září 2009. Archivováno z originálu 22. srpna 2011.
  7. Miller M., Borins M., Bynens M., Farias B. Aktualizace typů médií ECMAScript  (anglicky) IETF , 2022. – doi:10.17487/RFC9239
  8. https://web.archive.org/web/20070916144913/http://wp.netscape.com/newsref/pr/newsrelease67.html - 1995.
  9. Specifikace jazyka ECMAScript . Získáno 8. prosince 2009. Archivováno z originálu dne 12. dubna 2015.
  10. Flanagan D. JavaScript. Kapesní průvodce. Udělejte ze svých webových stránek interaktivní! / Překlad A.G. Sysonyuk. - Moskva.: Williams Publishing House, 2015. - S. 320. - 1000 výtisků.  - ISBN 978-5-8459-1948-9 (ruština).
  11. D. Reisig. 4. Nástroje pro ladění a testování // JavaScript. Profesionální programovací techniky = Pro JavaScript™ Techniques / Přeložil N. Vilchinsky. - Petrohrad. : Peter , 2008. - S. 76. - (Programátorská knihovna). - 2500 výtisků.  - ISBN 978-5-91180-904-1 .
  12. USPTO Záznam autorských práv #75026640 . USPTO. Staženo 9. dubna 2020. Archivováno z originálu 23. dubna 2012.
  13. 1 2 3 Historie  skriptování . nombas. Archivováno z originálu 2. února 2006.
  14. Ford S., Wells D., Wells N. Webové programovací jazyky  ​​( 1. září 1997). Získáno 17. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  15. Zakas, Nicholas Historie a vývoj  Javascriptu . Získáno 17. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  16. Noorda, Brent information blitz  ( 27. listopadu 1995). — Stránka obsahující dopis prezidenta Nombas Brenta Noorda oznamující Espresso Pages. Získáno 17. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  17. JavaScript. Uživatelská Bible = JavaScript. Bible / Danny Goodman, Michael Morrison; za. z angličtiny. I. V. Vasilenko . - 5. vyd. - Moskva, Petrohrad, Kyjev: Dilektika, 2006. - S. 3, 26. - 1184 s. - 3000 výtisků.  — ISBN 5-8459-1027-7 . Archivováno 2. dubna 2015 na Wayback Machine
  18. 1 2 3 4 5 6 Hamilton, Naomi AZ programovacích jazyků:  JavaScript . a-z programovacích jazyků . ComputerWorld (31. července 2008). Získáno 18. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  19. Eich, Brendan Popularity  (anglicky)  (odkaz není dostupný) (3. dubna 2008). Získáno 18. listopadu 2009. Archivováno z originálu 7. dubna 2008.
  20. Frommer, Dan Marc Andreessen se připojuje k radě Facebooku  ( 30. června 2008). Získáno 18. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  21. 1 2 3 4 Zakas N. Krátká historie // Profesionální JavaScript pro webové vývojáře. — 2. vyd. - USA, Kanada: Wiley Publishing, Inc., 2009. - S. 1, 2. - ISBN 978-0-470-22780-0 .
  22. 1 2 Allen Wirfs-Brock, Brendan Eich. JavaScript: prvních 20 let  //  Sborník ACM o programovacích jazycích // HOPL. - ACM, 2020. - Sv. 4 . - str. 1-189 . - ISBN 1-58113-329-4 .
  23. Brendan Eich. Popularita  (anglicky) . osobní blog (3. dubna 2008). Získáno 18. března 2015. Archivováno z originálu 16. března 2015.
  24. Brendan Eich. Nový vlastník modulu JavaScript Engine  . osobní blog (21. června 2011). Získáno 18. března 2015. Archivováno z originálu dne 21. dubna 2017.
  25. 1 2 JavaScript. Kapesní průvodce. Požadovaný kód a příkazy = JavaScript. Slovníček frází. Základní kód a příkazy / Christian Wenz; za. z angličtiny. I. V. Bershtein . - Moskva, Petrohrad, Kyjev: OOO "ID Williams", 2008. - S. 18. - 272 s. - 2000 výtisků.  - ISBN 978-5-8459-1186-5 . Archivováno 2. dubna 2015 na Wayback Machine
  26. Paul Crill. Tvůrce JavaScriptu přemýšlí o minulosti, budoucnosti . Brendan Eich z Mozilly popisuje historii JavaScriptu, nadcházející upgrade a neshody s  Microsoftem . InfoWorld (23. června 2008) .  - Eich: Přesně tak. Během šesti měsíců od května do prosince (1995) to byla Mocha a poté LiveScript. A pak začátkem prosince Netscape a Sun uzavřely licenční smlouvu a stal se z toho JavaScript." Staženo 3. 5. 2015. Archivováno z originálu 20. 9. 2014.
  27. Bellis, Mary Historie JavaScriptu  . Průvodce About.com (30. června 2008). Získáno 18. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  28. Netscape a Sun oznamují Javascript(TM), otevřený objektový skriptovací jazyk pro více platforem pro podnikové sítě a Internet  (  mrtvý odkaz) . Netscape Communications, Sun Microsystems. — Oznámení JavaScriptu. Získáno 17. listopadu 2009. Archivováno z originálu 16. prosince 1996.
  29. ↑ Microsoft oznamuje skriptování  ActiveX . Microsoft (18. července 1996). — Oznámení JScript. Získáno 17. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  30. Silwa C. Přichází standard skriptování  //  Network World : magazine. - IDG Network World Inc, 1996. - Sv. 13 , č. 49 . — str. 10 . Archivováno z originálu 17. května 2013.
  31. Seebach, Peter Představujeme ECMAscript . developerWorks Rusko . IBM (13. června 2007). Získáno 19. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  32. 1 2 3 Crockford, Douglas Světově nejvíce nepochopený programovací jazyk se stal nejoblíbenějším světovým programovacím jazykem  (anglicky) (3. března 2008). Získáno 25. října 2009. Archivováno z originálu dne 22. srpna 2011.
  33. TIOBE Programming Community Index za duben  2015 . TIOBE Software BV (duben 2015). Získáno 9. května 2015. Archivováno z originálu 4. května 2009.
  34. Data  projektu s otevřeným zdrojovým kódem . Software Black Duck. Získáno 25. října 2009. Archivováno z originálu dne 22. srpna 2011.
  35. Používání JavaScriptu a PHP roste v Open Source, říká Black Duck  Software . Black Duck Software (12. srpna 2009). Získáno 25. října 2009. Archivováno z originálu dne 22. srpna 2011.
  36. Statistiky používání Javascriptu  . builtwith.com (29. července 2010). Datum přístupu: 29. července 2010. Archivováno z originálu 22. srpna 2011.
  37. Použití programovacích jazyků na straně klienta pro  webové stránky . W³Techs (29. července 2010). Datum přístupu: 29. července 2010. Archivováno z originálu 22. srpna 2011.
  38. Učení Javascriptu s objektovými grafy. Objekty a prototypové řetězy . Získáno 10. října 2016. Archivováno z originálu 27. prosince 2016.
  39. Učení Javascriptu s objektovými grafy (část II). Čisté prototypové objekty . Získáno 10. října 2016. Archivováno z originálu 11. října 2016.
  40. Učení Javascriptu s objektovými grafy. Vizualizace uzávěrů . Získáno 10. října 2016. Archivováno z originálu 27. prosince 2016.
  41. Kris Kowal. Snaha CommonJS nastavuje JavaScript na cestu k ovládnutí světa  ( 1. prosince 2009). Získáno 1. prosince 2009. Archivováno z originálu 22. srpna 2011.
  42. Mikkonen T., Taivalsaari A. Použití JavaScriptu jako skutečného programovacího jazyka  . - USA: Sun Microsystems Laboratories, 2007. Archivováno z originálu 15. června 2011.
  43. 1 2 Zakas N. 1. Co je JavaScript? // Profesionální JavaScript pro webové vývojáře. — 2. vyd. - USA, Kanada: Wiley Publishing, Inc., 2009. - S. 3. - ISBN 978-0-470-22780-0 .
  44. 1 2 Zakas, Nicholas Webové definice : DOM, Ajax a další  . Blog Nicholase Zakase (29. září 2009). - Článek objasňující rozdíl mezi koncepty souvisejícími s vývojem webu, který zejména ospravedlňuje, proč jsou DOM a BOM spolu s ECMAScriptem považovány za nedílnou součást JavaScriptu. Získáno 9. prosince 2009. Archivováno z originálu dne 22. srpna 2011.
  45. 1 2 3 4 Chapman, Stephen Objektový model prohlížeče. Úvod  (anglicky) . Získáno 1. února 2010. Archivováno z originálu 22. srpna 2011.
  46. Kvk, Raja JavaScript vs DOM vs BOM, vztah vysvětlen  ( 18. prosince 2009). Získáno 18. prosince 2009. Archivováno z originálu dne 22. srpna 2011.
  47. Souders S. 1. Pochopení výkonu AJAX // Ještě rychlejší webové stránky: Nejlepší postupy výkonu pro webové vývojáře. — 1. vyd. - USA: O'Reilly Media, 2009. - S. 1-6. — ISBN 0596522304 .
  48. David Flanagan. 15.4.6. Jazykově nezávislá rozhraní DOM // JavaScript. Podrobný návod = JavaScript. The Definite Guide / Přeložil A. Kiselev. - 5. vyd. - Petrohrad. : "Symbol-Plus" , 2008. - S.  332 -334. — ISBN 5-93286-103-7 .
  49. Stockwell, Christian IE8 Performance  ( 26. srpna 2008). Získáno 6. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  50. Powell T., Schneider F. Kapitola 9: Objektové modely JavaScriptu // JavaScript 2.0: Kompletní reference . — 2. vyd. — USA: McGraw-Hill/Osborne, 2004. — 976 s. — ISBN 0072253576 .
  51. Chapman, Stephen Objektový model prohlížeče. Základy  (anglicky) . Získáno 1. února 2010. Archivováno z originálu 22. srpna 2011.
  52. Chapman, Stephen Objektový model  prohlížeče . Získáno 9. prosince 2009. Archivováno z originálu dne 22. srpna 2011.
  53. 1 2 3 Koch P.-P. Kapitola 6. Kusovník // ppk v JavaScriptu . — 1. vyd. - New Riders Press, 2006. - 528 s. — ISBN 0321423305 .
  54. 1 2 Zakas N. 8. Objektový model prohlížeče // Profesionální JavaScript pro webové vývojáře. — 2. vyd. - USA, Kanada: Wiley Publishing, Inc., 2009. - S. 201-229. - ISBN 978-0-470-22780-0 .
  55. Zakas N. 10. Objektový model dokumentu // Profesionální JavaScript pro webové vývojáře. — 2. vyd. - USA, Kanada: Wiley Publishing, Inc., 2009. - S. 261-317. - ISBN 978-0-470-22780-0 .
  56. 4.11.1 Prvek  skriptu . Specifikace HTML5 . W3C (28. října 2014). Získáno 11. června 2015. Archivováno z originálu 13. června 2015.
  57. Typy  aplikačních médií . Správa prostoru internetových adres . - Mapování typů obsahu na typy MIME. Datum přístupu: 28. září 2009. Archivováno z originálu 22. srpna 2011.
  58. Wilson B. MAMA:  Struktura HEAD . Komunita vývojářů Opery . Opera Software (14. listopadu 2008). — Statistika použitých prvků v hlavičce webových dokumentů. Získáno 14. října 2009. Archivováno z originálu dne 22. srpna 2011.
  59. Seznam atributů  (angl.) . Specifikace HTML 4.01 . W3C (24. prosince 1999). — Souhrnná tabulka atributů HTML. Získáno 25. září 2009. Archivováno z originálu 22. srpna 2011.
  60. tým eyeOS. 5.2 Strana JavaScriptu a PHP // manuál pro vývojáře eyeos . — S. 23. Archivováno 7. srpna 2008 na Wayback Machine
  61. David Flanagan. 13.4.1. Bookmarklety // JavaScript. Podrobný návod = JavaScript. The Definite Guide / Přeložil A. Kiselev. - 5. vyd. - Petrohrad. : "Symbol-Plus" , 2008. - S.  267 . — ISBN 5-93286-103-7 .
  62. Uživatelský  javascript . Výuka opery . Operační software. Získáno 27. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  63. UJS Manager for Opera usnadňuje správu uživatelských skriptů  ( 25. listopadu 2009). Získáno 27. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  64. Příklady použití. Skripty  Greasemonkey . Výuka opery . Operační software. Získáno 27. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  65. Uživatelské skripty  . Projekty Chromium . Získáno 4. června 2010. Archivováno z originálu 22. srpna 2011.
  66. 1 2 Poznámky  k verzi Java™ SE 6 . Sun Microsystems, Inc. - analýza Mozilla Firefox zdrojového kódu. Získáno 19. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  67. Vytvářejte celé aplikace pomocí JavaScriptu a  Ajaxu . Aptana Inc (2009). Získáno 22. prosince 2009. Archivováno z originálu 22. srpna 2011.
  68. ↑ Aptana: Jaxer Guide : Úvod  . Společnost Aptana Inc. Získáno 22. prosince 2009. Archivováno z originálu 22. srpna 2011.
  69. Johnson, Ryan Aptana Licence pro  Jaxer . Zdrojový kód úložiště Git . Aptana Inc (12. srpna 2009). Získáno 22. prosince 2009. Archivováno z originálu 22. srpna 2011.
  70. Persevere vám pomůže rychle vyvinout datově řízené bohaté internetové aplikace založené na JavaScriptu.  (anglicky) . Vytrvejte (2008). Získáno 22. prosince 2009. Archivováno z originálu 22. srpna 2011.
  71. kriszyp. Licence  (anglicky) . Zdrojový kód SVN úložiště . Vytrvejte (31. října 2008). Získáno 22. prosince 2009. Archivováno z originálu 22. srpna 2011.
  72. helma.org  . _ Helma.org. Získáno 22. prosince 2009. Archivováno z originálu 22. srpna 2011.
  73. ↑ Licence Helma verze 2.0  . Helma.org. Získáno 22. prosince 2009. Archivováno z originálu 22. srpna 2011.
  74. ↑ Zara , Ondřej Licence  . Zdrojový kód SVN úložiště (3. září 2009). Získáno 22. prosince 2009. Archivováno z originálu 22. srpna 2011.
  75. ↑ Dahl , Ryan Licence  . Zdrojový kód úložiště GIT (26. května 2009). Datum přístupu: 13. ledna 2010. Archivováno z originálu 22. srpna 2011.
  76. Yegge, Steve Rhino on Rails  ( 26. června 2007). Získáno 22. prosince 2009. Archivováno z originálu 22. srpna 2011.
  77. Yegge, Steve Rhinos a tygři  ( 14. června 2008). Získáno 22. prosince 2009. Archivováno z originálu 22. srpna 2011.
  78. Kairer, Ryan Palm oznamuje Palm webOS  ( 8. ledna 2009). Získáno 16. října 2009. Archivováno z originálu dne 22. srpna 2011.
  79. Tselikov, Dmitry Byl oznámen první manuál pro programování v prostředí Palm webOS (nepřístupný odkaz) (18. února 2009). Získáno 16. října 2009. Archivováno z originálu 16. září 2009. 
  80. Allen M. Palm webOS. — 1. vyd. - O'Reilly Media, 2009. - 464 s. - ISBN 978-0-596-15525-4 .
  81. Sunder Pichai, Linus Upson. Představení operačního systému Google Chrome . Blog Google Russia (8. července 2009). Získáno 20. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  82. Winship, Dan JavaScript - GNOME živě!  (anglicky) . Gnome. Datum přístupu: 28. prosince 2009. Archivováno z originálu 22. srpna 2011.
  83. 1 2 Stich, Christian Představení objektového modelu JavaScriptu pro služby Excel v SharePointu 2010  ( 30. listopadu 2009). Získáno 1. prosince 2009. Archivováno z originálu 22. srpna 2011.
  84. 1 2 Stich, Christian Jednoduchý přístup k tabulkovým datům pomocí Excel Services 2010 REST API  ( 4. listopadu 2009). Získáno 1. prosince 2009. Archivováno z originálu 22. srpna 2011.
  85. Dr Mark Alexander Bain. Přístup k OOo IDE // Naučte se OpenOffice.org Programování tabulkových maker: OOoBasic a Calc automatizace / Recenzent: Andrew Pitonyak. — 1. - Birmingham: Packt Publishing, 2006. - S. 8-11. — (Od technologií k řešením). — ISBN 1847190979 .
  86. 1 2 Psaní skriptů Office v JavaScriptu  . openoffice.org. Získáno 22. prosince 2009. Archivováno z originálu 22. srpna 2011.
  87. Psaní maker  . openoffice.org. Získáno 22. prosince 2009. Archivováno z originálu 22. srpna 2011.
  88. Reed D. Rethinking CS0 with JavaScript  //  Technical Symposium on Computer Science Education. Sborník příspěvků z třicátého druhého technického sympozia SIGCSE o výuce informatiky. - Charlotte, Severní Karolína, Spojené státy americké: ACM, 2001. - S. 100-104 . - ISBN 1-58113-329-4 .
  89. Drach A.N. Zlepšení pedagogických dovedností v oblasti ICT vzdělávání v procesu výuky JavaScriptu ve volitelných hodinách  // Informační technologie ve vzdělávání - 2008: Sborník vědeckých prací účastníků VII vědecké a praktické konference-výstava 30. - 31. října, 2008 .. - Rostov na Donu: Rostizdat, 2008. - S. 63 . - ISBN 978-5-7509-0971-1 . Archivováno z originálu 14. května 2011.
  90. Bosova I.N. Rozvoj vzdělávacích programů v informatice na variabilní bázi a individuálních osnov  // Informační technologie ve vzdělávání - 2009: Sborník vědeckých prací účastníků IX vědecké a praktické konference-výstava 29. - 30. října 2009 - Rostov na Donu: Rostizdat, 2009 - S. 25-26 . - ISBN 978-5-7509-0971-1 . Archivováno z originálu 14. května 2011.
  91. Wu P. Výuka základního programování her pomocí JavaScriptu  //  Journal of Computing Sciences in Colleges. Referáty druhé výroční jihozápadní konference CCSC. - Consortium for Computing Sciences in Colleges, USA: ACM, 2009. - Vol. 24 , iss. 4 . - str. 211-220 . — ISSN 1937-4771 .
  92. Zakas, Nikolas Informatika v JavaScriptu : Propojený seznam  . Informatika (13. dubna 2009). Získáno 12. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  93. ↑ Novinka v JavaScriptu 1.6  . Centrum pro vývojáře Mozilla . - Novinka v JavaScriptu verze 1.6. Získáno 5. října 2009. Archivováno z originálu 22. srpna 2011.
  94. ↑ Novinka v JavaScriptu 1.7  . Centrum pro vývojáře Mozilla . - Novinka v JavaScriptu verze 1.7. Získáno 5. října 2009. Archivováno z originálu 22. srpna 2011.
  95. Novinka v JavaScriptu 1.8  (angličtina)  (odkaz dolů) . Centrum pro vývojáře Mozilla . - Novinka v JavaScriptu verze 1.8. Získáno 15. února 2010. Archivováno z originálu 22. srpna 2011.
  96. ↑ Novinka v JavaScriptu 1.8.1  . Centrum pro vývojáře Mozilla . - Novinka ve verzi JavaScriptu 1.8.1. Získáno 15. února 2010. Archivováno z originálu 22. srpna 2011.
  97. 1 2 Konečný návrh ECMA-262 - jazykového standardu ECMAScript - byl  zveřejněn . ECMA. — Oznámení konečné verze návrhu pátého vydání ECMA-262. Získáno 25. září 2009. Archivováno z originálu 22. srpna 2011.
  98. Horwat, Waldemar ES5 je  standard ECMA . Mailing list Mozilly (4. prosince 2009). — Oznámení o oficiálním přijetí ECMAScript 5 jako standardu ECMA. Získáno 9. prosince 2009. Archivováno z originálu 28. července 2011.
  99. djwm. Schválena nová verze JavaScriptu  ( 7. prosince 2009). Získáno 9. prosince 2009. Archivováno z originálu dne 22. srpna 2011.
  100. ↑ O programovacím  prostředí . Microsoft Developer Network . Microsoft. Získáno 5. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  101. Opera DragonFly . Operační software. Získáno 19. prosince 2009. Archivováno z originálu dne 22. srpna 2011.
  102. Hatcher, Timothy Introducing Drosera  ( 28. června 2006). Získáno 5. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  103. Christian Johansen. Kapitola 1. Automatizované testování // Testem řízený vývoj JavaScriptu . - Addison-Wesley Professional, 2010. - S.  3 . - (hrubé řezy). - ISBN 0-321-68391-9 , 978-0-321-68391-5.
  104. Christian Johansen. 3.1.4. Vlastnosti testovacích rámců xUnit. The Test Runner // Test Driven JavaScript Development . - Addison-Wesley Professional, 2010. - S.  24 , 25. - (Drsné řezy). - ISBN 0-321-68391-9 , 978-0-321-68391-5.
  105. Christian Johansen. 3.3.1. Crosscheck // Test řízený vývoj JavaScriptu . - Addison-Wesley Professional, 2010. - S.  28 . - (hrubé řezy). - ISBN 0-321-68391-9 , 978-0-321-68391-5.
  106. Christian Johansen. 3.3.2. env.js // Testem řízený vývoj JavaScriptu . - Addison-Wesley Professional, 2010. - S.  28 , 29. - (Drsné řezy). - ISBN 0-321-68391-9 , 978-0-321-68391-5.
  107. Christian Johansen. 3.3.3. Blue Ridge // Test řízený vývoj JavaScriptu . - Addison-Wesley Professional, 2010. - S.  29 . - (hrubé řezy). - ISBN 0-321-68391-9 , 978-0-321-68391-5.
  108. Christian Johansen. 3.3.4. The Issue With Headless Test Runners // Test Driven JavaScript Development . - Addison-Wesley Professional, 2010. - S.  29 . - (hrubé řezy). - ISBN 0-321-68391-9 , 978-0-321-68391-5.
  109. C. Titus Brown, Gheorghe Gheorghiu, Jason Huggins. 3.1. Stručná historie selenu // Úvod do testování webových aplikací pomocí kepru a selenu. - O'Reilly Media, Inc., 2007. - 60 s.
  110. Christian Johansen. 3.4. Jeden testovací běžec, který bude vládnout všem // Testem řízený vývoj JavaScriptu . - Addison-Wesley Professional, 2010. - S.  29 . - (hrubé řezy). - ISBN 0-321-68391-9 , 978-0-321-68391-5.
  111. Christian Johansen. 3.4.1. Jak funguje JsTestDriver // Test řízený vývoj JavaScriptu . - Addison-Wesley Professional, 2010. - S.  29 . - (hrubé řezy). - ISBN 0-321-68391-9 , 978-0-321-68391-5.
  112. Selenové dálkové  ovládání . seleniumhq.org. Získáno 16. března 2010. Archivováno z originálu dne 22. srpna 2011.
  113. Ismayle de Sousa Santos; Pedro de Alcantara dos Santos Neto. Automação de testes funcionais com o Selenium  (port.) (pdf). Datum přístupu: 16. března 2010. Archivováno z originálu 14. března 2016.
  114. Resig, John TestSwarm  (anglicky)  (downlink) (25. srpna 2009). Získáno 16. března 2010. Archivováno z originálu 14. února 2010.
  115. Christian Johansen. 3.1.6. Závislosti // Testem řízený vývoj JavaScriptu . - Addison-Wesley Professional, 2010. - S.  25 . - (hrubé řezy). - ISBN 0-321-68391-9 , 978-0-321-68391-5.
  116. Christian Johansen. 3.2.1. YUI Test // Testem řízený vývoj JavaScriptu . - Addison-Wesley Professional, 2010. - S.  26 . - (hrubé řezy). - ISBN 0-321-68391-9 , 978-0-321-68391-5.
  117. Christian Johansen. 3.2.2. Další rámce pro testování v prohlížeči // Testem řízený vývoj JavaScriptu . - Addison-Wesley Professional, 2010. - S.  28 . - (hrubé řezy). - ISBN 0-321-68391-9 , 978-0-321-68391-5.
  118. Crockford, Douglas The Kid JavaScript Programmer  . — Článek, který odhaluje vztah mezi JavaScriptem a Scheme. Datum přístupu: 28. září 2009. Archivováno z originálu 22. srpna 2011.
  119. R. Tolksdorf, Programovací jazyky pro JavaScript  . is-research (19. července 2009). — Výběr implementací programovacího jazyka JavaScript. Staženo 12. října 2009. Archivováno z originálu 22. srpna 2011.
  120. hotruby. Ruby na JavaScript a  Flash . Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  121. Cooper P. HotRuby : JavaScript & Flash virtuální stroj, který provozuje Ruby  . Ruby Inside (26. března 2008). Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  122. ↑ Překladač operačních kódů Schuster W. HotRuby - Ruby 1.9 /YARV v Javascriptu  . infoQ (27. března 2008). — Popis HotRuby.. Získáno 12. října 2009. Archivováno z originálu 22. srpna 2011.
  123. Formiga, Andrej s-mr.  Vlastní výroba Rhino . Získáno 9. prosince 2009. Archivováno z originálu dne 22. srpna 2011.
  124. Hlavatý, Tom WPS: PostScript pro web  . Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  125. 6502asm.com - 6502 kompatibilní assembler a emulátor v  javascriptu . Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  126. Cappuccino Web Framework – Vytváření aplikací třídy Desktop v Objective-J a  JavaScriptu . Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  127. Yhc/Javascript/Stručný  přehled . Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  128. Monash Toy  Prolog . Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  129. ioctls. Prolog v  JavaScriptu . Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  130. ↑ Online tlumočník  koček . Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  131. BiwaScheme  . _ Získáno 29. března 2018. Archivováno z originálu 22. srpna 2011.
  132. Strom, Nikko O zcela ZÁKLADNÍCH  ( 2006). Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  133. ↑ Orcutt , Bill About Lily  . Získáno 12. února 2010. Archivováno z originálu 22. srpna 2011.
  134. Jacobson, Kyle wForth – JavaScript Forth Interpreter  ( 3. prosince 2008). Získáno 12. února 2010. Archivováno z originálu 22. srpna 2011.
  135. phype  . _ code.google.com. Získáno 12. února 2010. Archivováno z originálu 22. srpna 2011.
  136. Kompilátor Oberon 07  . Získáno 29. března 2018. Archivováno z originálu 11. června 2018.
  137. ↑ Informace o balíčku : HTML_Javascript  . PEAR - PHP rozšíření a úložiště aplikací . Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  138. TCLLIB - Standardní knihovna Tcl:  javascript . Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  139. Data::  JavaScript . Komplexní síť Perl Archive Network . Získáno 12. října 2009. Archivováno z originálu dne 22. srpna 2011.
  140. Zakas N. Podpora ECMAScriptu ve webových prohlížečích // Profesionální JavaScript pro webové vývojáře. — 2. vyd. - USA, Kanada: Wiley Publishing, Inc., 2009. - S. 5, 6. - ISBN 978-0-470-22780-0 .
  141. ↑ Webový prohlížeč Podpora  ECMAScript . Získáno 28. října 2009. Archivováno z originálu 22. srpna 2011.
  142. Podpora DOM webového prohlížeče  . Získáno 28. října 2009. Archivováno z originálu 22. srpna 2011.
  143. Crill, Paul . Eich: JavaScript je stále rychlejší, mohl by nahradit Flash , InfoWorld (6. listopadu 2009). Archivováno z originálu 9. listopadu 2009. Staženo 11. listopadu 2009.
  144. Walden, Jeff Zkontrolujte správnost SpiderMonkey na testovacím frameworku Sputnik  . Systém sledování chyb pro produkty Mozilla Bugzilla (29. června 2009). — Hlášení chyb ve SpiderMonkey . Získáno 27. listopadu 2009. Archivováno z originálu 7. listopadu 2011.
  145. ↑ Blandy , Jim Integrujte testovací sadu Google Sputnik  . Systém sledování chyb pro produkty Mozilla Bugzilla (30. června 2009). — Návrh na integraci Sputniku do testovací infrastruktury Mozilly . Získáno 27. listopadu 2009. Archivováno z originálu 7. listopadu 2011.
  146. 1 2 Hansen, Christian Plesner Vypuštění Sputniku na oběžnou dráhu  ( 29. června 2009). — Oznámení Sputniku, nástroje pro testování souladu se specifikací ECMAScript implementací jazyka. Získáno 27. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  147. Zaytsev, Juriy Sputniktests web runner  (anglicky)  (nedostupný odkaz) (9. listopadu 2009). — Zkoumání souladu prohlížeče se specifikací ECMAScript. Získáno 27. listopadu 2009. Archivováno z originálu 13. listopadu 2009.
  148. djwm. Google spouští spustitelnou testovací sadu pro prohlížeč ECMAScript/  JavaScript . h-online.com (11. března 2010). Získáno 12. března 2010. Archivováno z originálu 22. srpna 2011.
  149. Taft, Darryl K. Jak se chová IE 8?  (anglicky) . eWeek (11. března 2010). — Článek nastiňující výsledky studie inženýrů Google ohledně správnosti podpory prohlížeče JavaScript na základě testování se Sputnikem. Získáno 12. března 2010. Archivováno z originálu 22. srpna 2011.
  150. allenwb. ECMAScript 5 Conformance Suite  (anglicky) (1. července 2009). Získáno 9. prosince 2009. Archivováno z originálu dne 22. srpna 2011.
  151. Oiaga, Marius Microsoft vydává testy pro vývoj JavaScriptu  ( 30. června 2009). Získáno 9. prosince 2009. Archivováno z originálu dne 22. srpna 2011.
  152. allenwb. ECMAScript 5 Conformance Suite. Verze 0.2. Stránka ke stažení  (anglicky) (13. září 2009). Získáno 12. března 2010. Archivováno z originálu 22. srpna 2011.
  153. Clary, Bob JavaScript Test Suite  (anglicky)  (mrtvý odkaz) (3. října 2004). Získáno 9. prosince 2009. Archivováno z originálu dne 22. srpna 2011.
  154. Begle, Christine JavaScript Test Library  (  nepřístupný odkaz) . Získáno 9. prosince 2009. Archivováno z originálu dne 22. srpna 2011.
  155. 1 2 Flanagan D. 13.8.1. Co JavaScript neumí // JavaScript. Podrobný návod = JavaScript. The Definite Guide / Přeložil A. Kiselev. - 5. vyd. - Petrohrad. : "Symbol-Plus" , 2008. - S.  280 , 281. - ISBN 5-93286-103-7 .
  156. Flanagan D. 13.8.2. Společné zásady původu // JavaScript. Podrobný návod = JavaScript. The Definite Guide / Přeložil A. Kiselev. - 5. vyd. - Petrohrad. : "Symbol-Plus" , 2008. - S.  281 -283. — ISBN 5-93286-103-7 .
  157. Chyba zabezpečení skriptování mezi weby Mozilla byla nahlášena a  opravena . MozillaZine (28. února 2004). Získáno 24. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  158. Kottelin, Thor Klikněte pravým tlačítkem na „ochrana“? Zapomeňte na to  (anglicky)  (nedostupný odkaz) (17. června 2008). Získáno 24. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  159. Habryn, Mikolaj J. Buffer overflow in crypto.signText()  (Angl.) (1. března 2006). Získáno 24. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  160. Festa, Paul Chyba přetečení vyrovnávací paměti v IE  ( 19. srpna 1998). Získáno 24. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  161. Přetečení vyrovnávací paměti JavaScriptu Apple Safari umožňuje vzdáleným uživatelům spouštět libovolný kód a chyba přesměrování HTTP umožňuje vzdáleným uživatelům přístup k souborům  ( 2. března 2006). Získáno 24. listopadu 2009. Archivováno z originálu 18. února 2010.
  162. Farrell, Nick Znovu vypněte Javascript v IE  ( 24. listopadu 2009). Získáno 24. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  163. Webový uživatel. Společnost Microsoft vydává rady ohledně chyb v IE  ( 24. listopadu 2009). Získáno 24. listopadu 2009. Archivováno z originálu 9. srpna 2021.
  164. hdm. Chyba zabezpečení přetečení vyrovnávací paměti ovládacího prvku Microsoft WebViewFolderIcon  ( 17. července 2006). Získáno 24. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  165. Macromedia Flash Activex Buffer Overflow  ( 1. března 2002). Získáno 24. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  166. Zjištěné zranitelnosti nultého dne v rozšířeních Firefoxu  ( 20. listopadu 2009). Získáno 24. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  167. Manion, Art Microsoft Internet Explorer správně neověřuje zdroj přesměrovaného rámce  ( 3. června 2004). Získáno 24. listopadu 2009. Archivováno z originálu 30. října 2009.
  168. Eskalace oprávnění prostřednictvím přepisů vlastností DOM  (anglicky) (2005). Získáno 24. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  169. Canavan, John JS.Seeker.K  (Angl.) (1. října 2003). Získáno 24. listopadu 2009. Archivováno z originálu 22. srpna 2011.

Specifikace

  1. nodejs/node-eps . GitHub . Získáno 5. července 2018. Archivováno z originálu dne 29. srpna 2020.
  2. TC39. 4. Přehled // Specifikace jazyka ECMAScript . — 5. vyd. - 2009. - S. 1, 2. Archivní kopie z 12. dubna 2015 na Wayback Machine
  3. Základní specifikace 3. úrovně  modelu objektu dokumentu (DOM ) . W3C (7. dubna 2004). Získáno 6. listopadu 2009. Archivováno z originálu dne 22. srpna 2011.
  4. HTML5. Návrh normy – 8. prosince 2009  (anglicky) . W3C (8. prosince 2009). Získáno 9. prosince 2009. Archivováno z originálu dne 22. srpna 2011.
  5. Window Object 1.0 Pracovní návrh W3C 07. dubna  2006 . W3C (7. dubna 2006). Získáno 9. prosince 2009. Archivováno z originálu dne 22. srpna 2011.
  6. 18.2.1 Prvek SCRIPT . HTML 5 specifikace . W3C (18. prosince 2013). Získáno 18. června 2013. Archivováno z originálu 22. srpna 2011.
  7. 18.2.3 Vnitřní  události . Specifikace HTML 4.01 . W3C (24. prosince 1999). Získáno 15. listopadu 2009. Archivováno z originálu 22. srpna 2011.
  8. 4.11.1 Prvek  skriptu . Specifikace HTML5 . W3C (28. října 2014). Získáno 11. června 2015. Archivováno z originálu 13. června 2015.
  9. TC39. Úvod // Specifikace jazyka ECMAScript . — 5. vyd. — 2009. Archivováno 12. dubna 2015 na Wayback Machine

Komentáře

  1. C#, PHP, Perl, Python, Java.
  2. K dispozici jako samostatná knihovna JSAN .
  3. To nám však nebrání považovat DOM za nedílnou součást jazyka, aplikace nebo knihovny. Brendan Eich například při popisu cílů ES-Harmony uvádí jako jeden z cílů tvorby jazyka, že by se měl dobře hodit pro tvorbu knihoven, které mimo jiné mohou obsahovat DOM.
  4. Projekt 'Počítačová věda v JavaScriptu' Archivováno 17. září 2009 na Wayback Machine obsahuje sadu klasických paradigmat , algoritmů a přístupů napsaných v JavaScriptu a dostupných pod licencí MIT .

Odkazy

Dokumentace

Reference

Tematické zdroje

Blogy slavných autorů knih JavaScriptu