Array ( [0] => 15481525 [id] => 15481525 [1] => cswiki [site] => cswiki [2] => JavaScript [uri] => JavaScript [3] => [img] => [4] => [day_avg] => [5] => [day_diff] => [6] => [day_last] => [7] => [day_prev_last] => [8] => [oai] => [9] => [is_good] => [10] => [object_type] => [11] => 1 [has_content] => 1 [12] => **JavaScript** JavaScript je populární programovací jazyk, který byl vyvinut pro interakci a dynamiku webových stránek. Jeho vznik v roce 1995 představoval zásadní krok vpřed, který změnil způsob, jakým lidé interagují s internetem. Dnes je nejen jedním z nejrozšířenějších jazyků, ale také základním nástrojem pro vývoj moderních aplikací. JavaScript umožňuje vývojářům tvořit interaktivní prvky, jako jsou animace, formuláře a aplikace, které reagují na akce uživatelů v reálném čase. Tím se zvyšuje uživatelská zkušenost. Jeho jednoduchost a flexibilita přitahují jak profesionály, tak nováčky, což podporuje růst komunit a sdílení znalostí. Díky široké podpoře od různých prohlížečů a platform hledání jazyk v něm vytváří úrodnou půdu pro inovace. Moderní knihovny a frameworky, jako jsou React, Angular a Vue.js, zjednodušují a urychlují vývoj složitých aplikací, což otevírá nové příležitosti pro kreativní projekty. JavaScript se neomezuje pouze na webový vývoj. S příchodem Node.js se rozšířil i do oblasti serverového programování, což umožňuje vývojovým týmům používat jeden jazyk jak na frontendu, tak na backendu. Tento přístup zjednodušuje pracovní toky a umožňuje efektivnější vývoj. Přestože JavaScript čelí některým výzvám, jako jsou bezpečnostní rizika a problematika výkonu, komunity se aktivně podílejí na neustálém zlepšování a vytváření nových standardů. Díky tomu má jazyk silnou budoucnost a pokračuje v inspiraci programátorů, aby vytvářeli inovativní a zábavné aplikace. JavaScript tedy představuje víc než jen programovací jazyk; je klíčovým nástrojem v dynamicky se měnícím světě technologií, který neustále posouvá hranice toho, co je možné na webu. Tímto způsobem zůstává důležitou součástí moderního digitálního života a jeho podpora a rozvoj slibují mnoho vzrušujících možností do budoucna. [oai_cs_optimisticky] => **JavaScript** JavaScript je populární programovací jazyk, který byl vyvinut pro interakci a dynamiku webových stránek. Jeho vznik v roce 1995 představoval zásadní krok vpřed, který změnil způsob, jakým lidé interagují s internetem. Dnes je nejen jedním z nejrozšířenějších jazyků, ale také základním nástrojem pro vývoj moderních aplikací. JavaScript umožňuje vývojářům tvořit interaktivní prvky, jako jsou animace, formuláře a aplikace, které reagují na akce uživatelů v reálném čase. Tím se zvyšuje uživatelská zkušenost. Jeho jednoduchost a flexibilita přitahují jak profesionály, tak nováčky, což podporuje růst komunit a sdílení znalostí. Díky široké podpoře od různých prohlížečů a platform hledání jazyk v něm vytváří úrodnou půdu pro inovace. Moderní knihovny a frameworky, jako jsou React, Angular a Vue.js, zjednodušují a urychlují vývoj složitých aplikací, což otevírá nové příležitosti pro kreativní projekty. JavaScript se neomezuje pouze na webový vývoj. S příchodem Node.js se rozšířil i do oblasti serverového programování, což umožňuje vývojovým týmům používat jeden jazyk jak na frontendu, tak na backendu. Tento přístup zjednodušuje pracovní toky a umožňuje efektivnější vývoj. Přestože JavaScript čelí některým výzvám, jako jsou bezpečnostní rizika a problematika výkonu, komunity se aktivně podílejí na neustálém zlepšování a vytváření nových standardů. Díky tomu má jazyk silnou budoucnost a pokračuje v inspiraci programátorů, aby vytvářeli inovativní a zábavné aplikace. JavaScript tedy představuje víc než jen programovací jazyk; je klíčovým nástrojem v dynamicky se měnícím světě technologií, který neustále posouvá hranice toho, co je možné na webu. Tímto způsobem zůstává důležitou součástí moderního digitálního života a jeho podpora a rozvoj slibují mnoho vzrušujících možností do budoucna. ) Array ( [0] => {{Možná hledáte|programovací jazyk [[Java (programovací jazyk)|Java]]}} [1] => {{Infobox - programovací jazyk [2] => | název = JavaScript [3] => | paradigma = [[Objektově orientované programování|objektový]], [[Funkcionální programování|funkcionální]], [[Událostmi řízená architektura|událostmi řízený]] [4] => | vznik = [[1995]] [5] => | autor = [[Brendan Eich]] [6] => | vývojář = [[Netscape Communications Corporation]], [[Mozilla Foundation]] [7] => | poslední verze = ECMAScript 2023{{cite web|url=https://ecma-international.org/publications-and-standards/standards/ecma-262/|title=Standard ES14 [8] => |publisher=Ecma International|date=2017-07-03}} [9] => | datum poslední verze = [[červen]] [[2023]] [10] => | poslední testovací verze = [11] => | datum poslední testovací verze = [12] => | typování = [[Typový systém#Dynamická typová kontrola|dynamická]], [[duck-typing]] [13] => | implementace = [[KJS]], [[Rhino (javascriptový engine)|Rhino]], [[SpiderMonkey]], [[V8 (javascriptový engine)|V8]], [[Chakra (javascriptový engine)|Chakra]] [14] => | dialekty = [15] => | ovlivněno = [[Java (programovací jazyk)|Java]], [[Self (programovací jazyk)|Self]], [[C (programovací jazyk)|C]], [[Scheme]] [16] => | ovlivnil = [[ActionScript]], [[CoffeeScript]], [[Dart (programovací jazyk)|Dart]], [[JScript .NET]], [[Objective-J]], [[QML]], [[TypeScript]], [[Node.js]], [[LiveScript]] [17] => | operační systém = [18] => | licence = [19] => | web = [20] => }} [21] => '''JavaScript''' je multiplatformní, [[Objektově orientované programování|objektově orientovaný]], [[Událostmi řízená architektura|událostmi řízený]] [[skriptovací jazyk]], jehož autorem je [[Brendan Eich]] z někdejší společnosti [[Netscape Communications Corporation|Netscape]]. Jeho [[Syntaxe (programovací jazyk)|syntaxe]] (zápis [[Zdrojový kód|zdrojového textu]]) patří do rodiny jazyků [[C (programovací jazyk)|C]]/[[C++]]/[[Java (programovací jazyk)|Java]], ale JavaScript je od těchto jazyků zásadně odlišný [[Sémantika programovacích jazyků|sémanticky]] (funkčně, principiálně), jde o jiný jazyk. Slovo Java je součástí jeho názvu pouze z marketingových důvodů. JavaScript byl v červenci [[1997]] standardizován asociací [[Ecma International|ECMA]] (European Computer Manufacturers Association) a v srpnu [[1998]] [[Mezinárodní organizace pro normalizaci|ISO]] (International Organization for Standardization). Standardizovaná verze JavaScriptu je pojmenována [[ECMAScript]] a z ní byly odvozeny i další implementace, jako je například [[ActionScript]]. JavaScript byl původně obchodní název implementace společnosti Netscape, kde byl vyvíjen nejprve pod názvem Mocha, později LiveScript, ohlášen byl společně se společností [[Sun Microsystems]] v prosinci [[1995]] jako doplněk k jazykům [[HyperText Markup Language|HTML]] a [[Java (programovací jazyk)|Java]]. Pro verzi firmy [[Microsoft]] je použit název JScript. Ten je podporován platformou [[.NET]]. [22] => [23] => Nejčastější použití JavaScriptu v současnosti zahrnují: [24] => * [[World Wide Web|Webové]] stránky, do kterých je často vkládaný přímo jako součást [[HyperText Markup Language|HTML]] kódu stránky. [[Interpret (software)|Interpretaci]] v tomto případě provádí [[webový prohlížeč]] návštěvníka stránky. Jsou jím obvykle ovládány různé interaktivní prvky [[Grafické uživatelské rozhraní|GUI]] (tlačítka, textová políčka) nebo tvořeny animace a efekty obrázků. Prakticky to znamená, že se program v JavaScriptu obvykle spouští až po stažení webové stránky z [[Internet]]u (tzv. na straně klienta), na rozdíl od ostatních jiných interpretovaných programovacích jazyků (např. [[PHP]] a [[Active Server Pages|ASP]]), které se spouštějí na straně [[server]]u ještě před stažením z Internetu. Z toho plynou jistá bezpečností omezení – v prohlížeči spouštěný JavaScript např. nemůže pracovat se soubory, aby tím neohrozil soukromí uživatele. [25] => * JavaScript se využívá i na straně [[server]]u. První implementací JavaScriptu na straně serveru byl [[LiveWire]] firmy Netscape vydaný roku [[1996]]. Dnes existuje několik možností včetně [[opensource]] implementace [[Rhinola]] založené na [[Rhino (javascriptový engine)|Rhino]], [[gcj]], [[Node.js]], Deno a [[Apache HTTP Server|Apache]]. Událostmi řízená architektura je dělá vhodnými pro tvorbu serverových aplikací, které pracují v reálném čase. [26] => * Také je možno jej spouštět v [[Operační systém|operačních systémech]] [[Microsoft Windows|Windows]] pomocí programu [[Windows Script Host]] a nahradit tak [[Dávkový soubor|dávkové soubory]] [[MS-DOS]]. Manipulaci se soubory lze například provádět za pomoci objektu [[FileSystemObject]], který se používá i na výše zmíněných serverech. [27] => * Kromě [[DHTML]] se JavaScript používá k psaní rozšíření pro mnohé aplikace, například [[Adobe Acrobat]]. [28] => [29] => == Rysy objektově orientovaného programování == [30] => === Dynamické === [31] => ==== Dynamické přiřazení typů (Dynamic typing) ==== [32] => Stejně jako ve většině skriptovacích jazyků, jsou typy asociovány s hodnotami místo [[Proměnná|proměnných]]. Kupříkladu proměnné x může být přiřazena hodnota v podobě celočíselného typu, později řetězce atd. JavaScript operatory ===, typeof a instanceof umožňují otestování typu [[Instance třídy|objektu]].{{Citace elektronického periodika [33] => | titul = instanceof - JavaScript {{!}} MDN [34] => | periodikum = developer.mozilla.org [35] => | vydavatel = [[Mozilla Foundation]] [36] => | url = https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof [37] => | datum vydání = 2022-06-28 [38] => | jazyk = en-US [39] => | datum přístupu = 2022-07-18 [40] => }} [41] => [42] => ==== Objekty jako asociativní pole (objects as associative fields) ==== [43] => JavaScript je převážně objektově založený. Objekty jsou [[Asociativní pole|asociativními poli]] rozšířenými o tzv. [[Prototyp (prototypová dědičnost)|prototypy]] (viz níže). Názvy atributů objektů jsou klíči asociativního [[Pole (datová struktura)|pole]]; obj.x = 10obj["x"] = 10 jsou tedy ekvivalentními výrazy. První varianta používá oddělení pomocí znaku tečky především pro zjednodušující účely. Atributy a jejich hodnoty mohou být přidávány, měněny nebo mazány za běhu programu. Atributy objektu mohou být rovněž vyčteny pomocí for … in cyklu. V tom se však promítnou i zděděné vlastnosti (z prototypu). Pokud se toho chceme vyvarovat, je dobré použít ještě metodu hasOwnProperty. [44] => [45] => ==== Runtime evaluation (= míra možných akcí proveditelných za běhu programu) ==== [46] => Pro úplnost nutno zmínit, že JavaScript v sobě zahrnuje funkci eval, která je schopna provádět příkazy předávané jako řetězce přímo za běhu programu, což je však celkem běžným rysem [[Interpret (software)|interpretovaných jazyků]], nejedná se tedy o žádnou specialitu JavaScriptu jako takového. [47] => [48] => === Funkcionální === [49] => ==== Funkce první třídy (first-class functions) ==== [50] => Označení funkce první třídy vyjadřuje, že jsou funkce objekty. Mají tedy své atributy a mohou být předány dále. Lze s nimi manipulovat jako s kterýmkoli jiným objektem. Níže jsou uvedeny další významy funkcí (jako [[konstruktor]]y a [[Podprogram|metody]]). [51] => [52] => ==== Anonymní (vnitřní) funkce a uzávěry (closures) ==== [53] => Vnitřní funkce neboli funkce definované uvnitř jiných – vnějších funkcí, jsou vytvořeny při každém zavolání nadřazené funkce. Proměnné funkcí vnějších existují po dobu existence funkce vnitřní. Dokonce i po ukončení volání – po návratu z vnější funkce, má daná vnitřní funkce stále přístup k proměnným své vnější funkce – toto je mechanismus nazývaný v JavaScriptu jako [[Uzávěr (programování)|uzávěry]] ({{Vjazyce2|en|''closures''}}).{{Citace elektronického periodika [54] => | titul = Closures - JavaScript {{!}} MDN [55] => | periodikum = developer.mozilla.org [56] => | vydavatel = [[Mozilla Foundation]] [57] => | url = https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures [58] => | datum vydání = 2022-06-02 [59] => | jazyk = en-US [60] => | datum přístupu = 2022-07-18 [61] => }} [62] => [63] => === Prototypové (prototype-based) === [64] => ==== Prototypy (Prototypes) ==== [65] => Přestože JavaScript nedisponuje klasickým konceptem třída–instance, typickým pro objektově orientované jazyky, disponuje rysem, který tento mechanismus částečně nahrazuje – [[Prototypová dědičnost|prototypováním]]. Díky prototypování je dále JavaScript schopen simulovat mnoho principů a vlastností mechanismůzaložených na třídách ({{Jazyk|en|''class-based''}}). Například [[Dědičnost (objektově orientované programování)|dědičnost]], která je u JavaScriptu nazývána právě jako [[Prototypová dědičnost|dědičnost prototypová]], která je vysvětlena na příkladu níže.{{Citace elektronického periodika [66] => | titul = Object prototypes - Learn web development {{!}} MDN [67] => | periodikum = developer.mozilla.org [68] => | vydavatel = [[Mozilla Foundation]] [69] => | url = https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object_prototypes [70] => | datum vydání = 2022-06-15 [71] => | jazyk = en-US [72] => | datum přístupu = 2022-07-18 [73] => }} [74] => [75] => ==== Funkce jako konstruktory objektů (Functions as constructors) ==== [76] => Funkce lze v JavaScriptu použít jako [[konstruktor]]y objektů. Voláním konstruktoru pomocí operátoru new se vytvoří nový objekt ([[Instance třídy|instance]]). Vlastnosti objektu se deklarují přes klíčové slovo this. Při vytváření objektu lze jednotlivé vlastnosti objektu inicializovat předáním hodnot parametrům volaného konstruktoru. Atribut prototype dané funkce potom určuje prototyp nově vytvořeného objektu. Příklad konstruktoru třídy Auto: [77] => [78] => [79] => // Definice konstruktoru [80] => function Auto(znacka, spz) { [81] => this.znacka = znacka; [82] => this.spz = spz; [83] => this.vypisZnacku = function () { [84] => alert(this.znacka); [85] => }; [86] => } [87] => [88] => // Vytvoření nového auta [89] => var mojeAuto = new Auto("mercedes", "3A4983"); [90] => // Zavolání metody [91] => mojeAuto.vypisZnacku(); [92] => [93] => [94] => ==== Funkce jako metody (Functions as methods) ==== [95] => Na rozdíl od většiny objektově orientovaných jazyků  JavaScript nerozlišuje mezi definicí metody a definicí funkce. Rozdíl nastane při volání – funkce může být volána jako metoda. Je-li funkce volána jako metoda objektu, je se svým objektem svázána klíčovým slovem this. [96] => [97] => ==== Dědičnost (Inheritance) ==== [98] => {{Podrobně|Dědičnost (objektově orientované programování)}} [99] => Ačkoliv má JavaScript určité prvky [[Dědičnost (objektově orientované programování)|dědičnosti]], nejedná se o klasickou dědičnost známou z typových jazyků C++ nebo Java. JavaScript nepodporuje zápis tříd (pouze konstruktor) a s tím spojenou hierarchii tříd, proto lze hovořit spíše o jakési simulaci (viz oddíl prototypy výše) dědičnosti, nazvanou dědičnost prototypová. Prototyp slouží jako zvláštní objekt, který je přidružen každé funkci (tedy i k funkci jako konstruktoru). Všechny objekty inicializované skrze nějaký konstruktor dědí, respektive sdílejí, vlastnosti a metody obsažené právě v prototypu daného konstruktoru. [100] => [101] => Podíváte-li se zpět na zápis konstruktoru Auto, v objektu je také metoda vypisZnacku(). Technicky má v paměti každá instance této „třídy“ lokální kopii této metody, což je přinejmenším z hlediska správy paměti nevhodné. Právě tento problém řeší ''prototypy'', neboť stačí metodu deklarovat na úrovni prototypu a ta již nebude součástí každé instance. To ovšem neznamená, že nebude dosažitelná. Při vyhodnocování JavaScript metodu nejprve hledá v příslušném objektu, pakliže ji nenajde, jde o úroveň výše – do prototypu konstruktoru. Je vhodné sdílení pouze takových datových složek, které jsou neměnné pro všechny instance – především metody a konstanty. Upravený zápis předchozího příkladu: [102] => [103] => // Definice konstruktoru [104] => function Auto(znacka, spz) { [105] => this.znacka = znacka; [106] => this.spz = spz; [107] => } [108] => [109] => Auto.prototype.vypisZnacku = function () { [110] => alert(this.znacka); [111] => }; [112] => [113] => [114] => Systém dědičnosti nadřazených a podřazených tříd sice v JS neexistuje, ale pomocí prototypů ji lze úspěšně simulovat. Celý princip dědění spočívá v tvorbě nových prototypů. Máme-li třídu VesmirnyObjekt, třídu Planeta podřídíme tím, že přiřadíme ''konstruktoru'' Planeta jako ''prototyp'' ({{Vjazyce2|en|''prototype''}}) objekt VesmirnyObjekt: [115] => [116] => function VesmirnyObjekt(soustava) { [117] => this.soustava = soustava || "Sluneční"; [118] => } [119] => [120] => function Planeta(soustava, jmeno, pocetMesicu) { [121] => this.parent(soustava); // Zde zavoláme konstruktor rodiče a předáme mu soustavu [122] => this.jmeno = jmeno; [123] => this.pocetMesicu = pocetMesicu || 0; [124] => } [125] => [126] => // Podporováno od ES 5, tuto funkci je možné dodefinovat (ukázka např. na MDN): [127] => Planeta.prototype = Object.create(VesmirnyObjekt.prototype); [128] => // Je dobrým zvykem, aby vlastnost constructor odkazovala na správnou funkci (Object.create tuto vlastnost přepsala): [129] => Planeta.prototype.constructor = Planeta; [130] => // A nakonec přiřadíme do prototypu odkaz na rodiče: [131] => Planeta.prototype.parent = VesmirnyObjekt; [132] => [133] => // Vytvoříme novou instanci planety: [134] => var planeta = new Planeta("Alfa Centauri", "Terra Nova", 2); [135] => alert("Soustava: " + planeta.soustava [136] => + ", planeta: " + planeta.jmeno [137] => + ", počet měsíců: " + planeta.pocetMesicu); [138] => [139] => [140] => ==== Výjimky (Exceptions) ==== [141] => Výjimky jsou společným rysem objektově orientovaných jazyků. Jedná se o mechanismus zachytávání stavu (chyb) vyvolaného chybným kódem. Například přístupem k neexistující metodě. Tyto chyby lze zachytávat a ošetřovat pomocí klíčových slov try, catch a volitelně finally. Na rozdíl od jiných jazyků může být v JavaScriptu výjimka jakéhokoli typu, tzn. můžeme vyvolat jako výjimku i řetězec nebo číslo: [142] => [143] => [144] => function Person(name) { [145] => if (!name) { [146] => throw "You have to define the person's name!"; [147] => } [148] => this.name = name; [149] => } [150] => [151] => try { [152] => var person = new Person(); [153] => } catch (ex) { [154] => alert(typeof ex); // Bude string [155] => alert(ex); // Vypíše obsah hlášky [156] => } [157] => [158] => [159] => Je však dobrým zvykem vyvolávat výjimky s typem Error či podobnými. [160] => [161] => == Rozšíření asm.js == [162] => Asm.js je podmnožina programovacího jazyka JavaScript navržená [[Mozilla|Mozillou]].http://asmjs.org/ Homepage (anglicky) Je určena pro výrazné zrychlení běhu javascriptových [[Aplikační software|aplikací]], podobně jako technologie [[NaCl (software)|NaCl]] a jazyk [[Dart (programovací jazyk)|Dart]] od [[Google]]. V současné době (prosinec 2013) dosahuje rychlost na hodnoty jen asi o 50 % nižší než je kód generovaný [[překladač]]i.{{Citace elektronického periodika [163] => | příjmení1 = Jelínek [164] => | jméno1 = Lukáš [165] => | titul = Asm.js zrychluje [166] => | vydavatel = linuxexpres.cz [167] => | datum_vydání = 2013-12-23 [168] => | url = http://www.linuxexpres.cz/novinky/asm-js-zrychluje [169] => | datum_přístupu = 2018-05-18 [170] => }} Zejména hry napsané původně pro PC{{Citace elektronického periodika [171] => | příjmení1 = Urban [172] => | jméno1 = Petr [173] => | titul = Epic Games ve spolupráci s Mozillou v prohlížeči zprovoznil Unreal Engine 4 [174] => | periodikum = Cnews.cz [175] => | datum_vydání = 2014-03-13 [176] => | url = https://www.cnews.cz/epic-games-ve-spolupraci-s-mozillou-v-prohlizeci-zprovoznil-unreal-engine-4/ [177] => | datum_přístupu = 2018-05-18 [178] => }}, typicky v jazyce [[C (programovací jazyk)|C]] nebo [[C++]]. [179] => [180] => Prohlížeče, které tuto podmnožinu JavaScriptu podporují, jsou v současné době (květen 2018) [[Mozilla Firefox]], [[Google Chrome]], [[Opera (webový prohlížeč)|Opera]] a [[Microsoft Edge|Microsoft Edge]].{{Citace elektronického periodika [181] => | autor1 = mbest [182] => | titul = Chrome and Opera Optimize for Mozilla-Pioneered Asm.js [183] => | periodikum = Future Releases [184] => | url = https://blog.mozilla.org/futurereleases/2013/11/26/chrome-and-opera-optimize-for-mozilla-pioneered-asm-js/ [185] => | datum_přístupu = 2018-05-18 [186] => | jazyk = anglicky [187] => }}http://www.linuxexpres.cz/novinky/asm-js-zrychluje Asm.js zrychluje (česky) [188] => {{Citace elektronického periodika [189] => | titul = Microsoft announces asm.js optimizations [190] => | periodikum = Luke Wagner's Blog [191] => | vydavatel = [[Mozilla Firefox]] [192] => | datum_vydání = 2015-02-18 [193] => | url = https://blog.mozilla.org/luke/2015/02/18/microsoft-announces-asm-js-optimizations/ [194] => | datum_přístupu = 2018-05-18 [195] => | jazyk = anglicky [196] => }}{{Citace elektronického periodika [197] => | příjmení1 = Pflug [198] => | jméno1 = Kyle [199] => | titul = Introducing EdgeHTML 13, our first platform update for Microsoft Edge [200] => | periodikum = [[Microsoft Windows]] [201] => | datum_vydání = 2015-11-16 [202] => | url = https://blogs.windows.com/msedgedev/2015/11/16/introducing-edgehtml-13-our-first-platform-update-for-microsoft-edge/ [203] => | datum_přístupu = 2018-05-18 [204] => | jazyk = anglicky [205] => }} [206] => [207] => == Podpora JavaScriptu ve webových prohlížečích == [208] => [[Webový prohlížeč]] uživatele dané webové stránky může mít JavaScript explicitně vypnutý, popřípadě je na stránku přistupováno způsobem (daným kombinací daného zařízení, platformy, hardwarových nároků, nebo toho, přistupuje-li člověk či program), který JavaScript nespustí. [209] => [210] => Podle údajů firmy Yahoo z roku 2010 je podíl stránek načtených bez spuštění JavaScriptu 1,3 % (celosvětový průměr), od 0,25 % v Brazílii po 2 % v USA.{{Citace elektronického periodika [211] => | příjmení1 = Hein [212] => | jméno1 = Ruud [213] => | titul = How Many Users Have JavaScript Disabled [214] => | vydavatel = searchenginepeople.com [215] => | datum_vydání = 2010-12-14 [216] => | url = https://www.searchenginepeople.com/blog/stats-no-javascript.html [217] => | datum_přístupu = 2018-05-18 [218] => | jazyk = anglicky [219] => }} [220] => [221] => V rámci tzv. [[webová přístupnost|webové přístupnosti]] by se při vývoji webu mělo vždy dbát na správné zobrazení stránky bez ohledu na podporu skriptování na straně klienta. [222] => [223] => == Zneužívání JavaScriptu == [224] => Protože je JavaScript součástí většiny prohlížečů, existuje snaha o jeho zneužití. Aby byl škodlivý kód nesnadno zjistitelný, kromě jeho umísťování na jiné servery bývá HTML kód, který zajistí jeho načtení, maskován různými technikami. Možnými technikami je ukrytí HTML kódu zpřístupňující škodlivý JavaScript do skrytého elementu [[IFRAME]] nebo použití nečitelného kódu v samotném JavaScriptu, který HTML kód zpřístupňující škodlivý kód vygeneruje po načtení stránky.{{Citace elektronického periodika [225] => | příjmení = [226] => | jméno = [227] => | autor = [228] => | odkaz na autora = [229] => | spoluautoři = [230] => | titul = From Hidden Iframes to Obfuscated Scripts [231] => | periodikum = Unmask Parasites [232] => | odkaz na periodikum = [233] => | datum vydání = 23 Dec 09 [234] => | datum aktualizace = [235] => | datum přístupu = [236] => | ročník = [237] => | číslo = [238] => | strany = [239] => | url = http://blog.unmaskparasites.com/2009/12/23/from-hidden-iframes-to-obfuscated-scripts/ [240] => | issn = [241] => | url archivu = https://web.archive.org/web/20140916064150/http://blog.unmaskparasites.com/2009/12/23/from-hidden-iframes-to-obfuscated-scripts/ [242] => | datum archivace = 2014-09-16 [243] => }} [244] => [245] => Co se týká druhé možnosti, např. kód: [246] => [247] => [260] => [261] => [262] => vygeneruje HTML kód: [263] => [264] => [265] => [266] => [267] => [268] => který vlastní škodlivý kód načte z vnější adresy mimo napadený server. [269] => [270] => == Použití mimo webové stránky == [271] => Kromě webových prohlížečů a serverů je interpret JavaScriptu vestavěný v mnoha různých nástrojích. Každý z těchto nástrojů poskytuje vlastní [[objektový model]], který poskytuje přístup k hostitelskému prostředí. Jádro JavaScriptu zůstává většinou stejné v každé aplikaci. [272] => [273] => === Vestavěný scriptovací jazyk === [274] => * Většina rozšíření pro webové prohlížeče je implementována použitím JavaScriptu, např. rozšíření [[Google Chrome|Chrome]], [[Safari (webový prohlížeč)|Safari]], [[Opera (webový prohlížeč)|Opera]] atd. [275] => * Některé NoSQL datábáze jako je [[MongoDB]] nebo [[CouchDB]] akceptují dotazy napsané v JavaScriptu. [276] => * [[Adobe Acrobat#Security|Acrobat and Adobe Reader]] podporují JavaScript v souborech typu PDF. [277] => * Nástroje v Adobe Creative Suite, včetně [[Adobe Photoshop|Photoshop]], [[Adobe Illustrator|Illustrator]], Dreamweaver a InDesign umožňují skriptování pomocí JavaScriptu. [278] => * Kancelářský balík aplikací [[Apache OpenOffice|OpenOffice]] a [[LibreOffice]] umožňuje JavaScript používat jako skriptovací jazyk. [279] => * Interaktivní zpracování signálu hudebního software Max/MSP nabízí v jeho prostředí model JavaScriptu pro použití vývojářům. To umožňuje mnohem přesnější ovládání než výchozí programovací model GUI-centric. [280] => * Digitální software Apple Logic Pro X audio workstation umožňuje vytvořit vlastní MIDI efekty pluginy pomocí JavaScriptu. [281] => * ECMAScript byl zahrnut v normě VRML97 pro skriptování uzlů souborů [[VRML]]. [282] => * Herní engine [[Unity (herní engine)|Unity 3D]] ve starších verzích podporoval upravenou verzi JavaScriptu pro skriptování pomocí Mono.{{Citace elektronické monografie [283] => | url = http://unity3d.com/unity/workflow/scripting [284] => | titul = Unity Scripting [285] => | vydavatel = unity3d.com [286] => | datum přístupu = 2013-01-29 [287] => | url archivu = https://web.archive.org/web/20150228095009/http://unity3d.com/unity/workflow/scripting [288] => | datum archivace = 2015-02-28 [289] => | nedostupné = ano [290] => }} [291] => * DX Studio (3D engine) používá implementaci JavaScriptu [[SpiderMonkey]] pro hry a simulace logiky.{{Citace elektronické monografie [292] => | url = http://www.dxstudio.com/features_tech.aspx [293] => | titul = Technical Specification [294] => | vydavatel = dxstudio.com [295] => | datum přístupu = 2009-10-20 [296] => | url archivu = https://web.archive.org/web/20100325231945/http://www.dxstudio.com/features_tech.aspx [297] => | datum archivace = 2010-03-25 [298] => | nedostupné = ano [299] => }} [300] => * Maxwell Render poskytuje skriptovací engine ECMA standardu pro automatizaci úkolů.THINK! The Maxwell Render Resourcer Center, [http://think.maxwellrender.com/scripting_references-269.html Scripting References] {{Wayback|url=http://think.maxwellrender.com/scripting_references-269.html |date=20111102200134 }} [301] => * Google Apps Script v tabulkách Google a Google Sites umožňuje uživatelům vytvářet vlastní vzorce, automatizovat opakující se úlohy a také komunikovat s ostatními produkty [[Google]] jako je [[Gmail]].Google Apps Script, [http://www.google.com/google-d-s/scripts/scripts.html Welcome to Google Apps Script] [302] => * Mnoho klientů [[Internet Relay Chat|IRC]], jako je ChatZille nebo XChat, používají JavaScript pro jejich scriptovací činnosti. [303] => * Produkty SpinetiX používají SpiderMonkey JavaScript pro scriptování v SVG souborech. [304] => * Platformy [[ObjectGears]], [[ServiceNow]] [305] => [306] => === Skriptovací engine === [307] => * Technologie Active Scripting od [[Microsoft]]u podporuje JavaScript jako skriptovací jazyk.{{Citace elektronické monografie | url=http://msdn.microsoft.com/en-us/library/s4esdbwz(v=VS.94).aspx | titul=Version Information (JavaScript) | vydavatel=Msdn.microsoft.com | datum přístupu=2013-05-26}} [308] => * Programovací jazyk [[Java (programovací jazyk)|Java]] v 6. verzi představil balíček javax.script, který obsahuje implementaci JavaScriptového enginu [[Rhino (javascriptový engine)|Rhino]]. Java aplikace tak mohou hostit skripty, které přistupují k proměnným a objektům této aplikace, stejně jako webové prohlížeče, kde skripty mohou přistupovat k [[Document Object Model|objektovému modelu dokumentu]] webové stránky.{{Citace elektronické monografie | url=http://java.sun.com/javase/6/webnotes/index.html#scripting | titul=javax.script release notes | vydavatel=Java.sun.com | datum přístupu=2009-05-19}} [309] => * Nástroj [[Qt (knihovna)|Qt]] C++ obsahuje modul QtScript, který interpretuje JavaScript stejně jako Java balíček javax.script.Nokia Corporation, [http://doc.qt.nokia.com/4.6/qtscript.html QtScript Module] {{Wayback|url=http://doc.qt.nokia.com/4.6/qtscript.html |date=20100709200957 }} [310] => [311] => == Vývojové nástroje == [312] => Vzhledem k tomu, že při programování pro různé webové prohlížeče mohou nastat implementační rozdíly (zvláště v [[Document Object Model|objektovém modelu dokumentu]]), je vhodné mít přístup k [[debugger]]u v každém webovém prohlížeči, na které je aplikace zaměřena.{{Citace elektronické monografie | url=http://www.alistapart.com/articles/advanced-debugging-with-javascript/ | titul=Advanced Debugging With JavaScript | vydavatel=alistapart.com | datum vydání=2009-02-03 | datum přístupu=2010-05-28}} [313] => [314] => Debuggery jsou dostupné pro [[Internet Explorer]], [[Mozilla Firefox|Firefox]], [[Safari (webový prohlížeč)|Safari]], [[Google Chrome]], [[Opera (webový prohlížeč)|Opera]] a [[Node.js]].{{Citace elektronické monografie | url=http://javascript.about.com/od/problemsolving/ig/JavaScript-Debugging/ | titul=The JavaScript Debugging Console | vydavatel=javascript.about.com | datum vydání=2010-05-28 | datum přístupu=2010-05-28 | url archivu=https://web.archive.org/web/20160408185418/http://javascript.about.com/od/problemsolving/ig/JavaScript-Debugging/ | datum archivace=2016-04-08 | nedostupné=ano }}{{Citace elektronické monografie | url=http://www.javascript-debugger.com | titul=SplineTech JavaScript Debugger - an independent standalone JavaScript Debugger | vydavatel=javascript-debugger.com | datum vydání=2013-08-26 | datum přístupu=2013-08-26}}{{Citace elektronické monografie | url=http://docs.strongloop.com/display/DOC/Debugging+with+Node+Inspector | titul=Debugging with Node Inspector | vydavatel=http://docs.strongloop.com/ | datum přístupu=2014-05-07 | url archivu=https://web.archive.org/web/20140508051643/http://docs.strongloop.com/display/DOC/Debugging+with+Node+Inspector | datum archivace=2014-05-08 | nedostupné=ano }} [315] => [316] => == Odkazy == [317] => === Reference === [318] => [319] => [320] => === Související články === [321] => * [[AJAX]] – pro komunikaci iniciovanou [[Klient (počítače)|klientem]] (webovou stránkou) [322] => * [[WebSocket]] – pro obousměrnou komunikaci webové stránky se [[server]]em ([[klient–server]]) [323] => * [[jQuery UI]] [324] => * [[JQuery Mobile]] [325] => [326] => === Externí odkazy === [327] => * {{Commonscat}} [328] => * {{en}} [http://www.oreillynet.com/pub/a/javascript/2001/04/06/js_history.html JavaScript: How Did We Get Here? – Historie vzniku jazyka] [329] => * [http://zdrojak.root.cz/serialy/do-hlubin-implementaci-javascriptu/ Do hlubin implementací JavaScriptu] – Seriál na Zdrojak.cz [330] => * [https://www.jakpsatweb.cz/javascript/ JakPsatWeb] [331] => * [https://www.w3schools.com/js/ w3schools.com] [332] => [333] => {{Programovací jazyky}} [334] => {{Aplikační frameworky}} [335] => {{Autoritní data}} [336] => {{Portály|Internet}} [337] => [338] => [[Kategorie:JavaScript| ]] [339] => [[Kategorie:Skriptovací jazyky]] [] => )
good wiki

JavaScript

JavaScript je multiplatformní, [url= Server|Apache][Objektově orientované programování|objektově orientovaný]], událostmi řízený skriptovací jazyk, jehož autorem je Brendan Eich z někdejší společnosti Netscape. Jeho syntaxe (zápis zdrojového textu) patří do rodiny jazyků C/C++/Java, ale JavaScript je od těchto jazyků zásadně odlišný sémanticky (funkčně, principiálně), jde o jiný jazyk.

More about us

About

Jeho vznik v roce 1995 představoval zásadní krok vpřed, který změnil způsob, jakým lidé interagují s internetem. Dnes je nejen jedním z nejrozšířenějších jazyků, ale také základním nástrojem pro vývoj moderních aplikací. JavaScript umožňuje vývojářům tvořit interaktivní prvky, jako jsou animace, formuláře a aplikace, které reagují na akce uživatelů v reálném čase. Tím se zvyšuje uživatelská zkušenost. Jeho jednoduchost a flexibilita přitahují jak profesionály, tak nováčky, což podporuje růst komunit a sdílení znalostí. Díky široké podpoře od různých prohlížečů a platform hledání jazyk v něm vytváří úrodnou půdu pro inovace. Moderní knihovny a frameworky, jako jsou React, Angular a Vue. js, zjednodušují a urychlují vývoj složitých aplikací, což otevírá nové příležitosti pro kreativní projekty. JavaScript se neomezuje pouze na webový vývoj. S příchodem Node. js se rozšířil i do oblasti serverového programování, což umožňuje vývojovým týmům používat jeden jazyk jak na frontendu, tak na backendu. Tento přístup zjednodušuje pracovní toky a umožňuje efektivnější vývoj. Přestože JavaScript čelí některým výzvám, jako jsou bezpečnostní rizika a problematika výkonu, komunity se aktivně podílejí na neustálém zlepšování a vytváření nových standardů. Díky tomu má jazyk silnou budoucnost a pokračuje v inspiraci programátorů, aby vytvářeli inovativní a zábavné aplikace. JavaScript tedy představuje víc než jen programovací jazyk; je klíčovým nástrojem v dynamicky se měnícím světě technologií, který neustále posouvá hranice toho, co je možné na webu. Tímto způsobem zůstává důležitou součástí moderního digitálního života a jeho podpora a rozvoj slibují mnoho vzrušujících možností do budoucna.

Expert Team

Vivamus eget neque lacus. Pellentesque egauris ex.

Award winning agency

Lorem ipsum, dolor sit amet consectetur elitorceat .

10 Year Exp.

Pellen tesque eget, mauris lorem iupsum neque lacus.

You might be interested in

,'Java (programovací jazyk)','C (programovací jazyk)','Rhino (javascriptový engine)','server','Node.js','Opera (webový prohlížeč)','Google Chrome','Safari (webový prohlížeč)','Document Object Model','Prototypová dědičnost','Dědičnost (objektově orientované programování)','konstruktor'