Výukový program JS

JS HOME Úvod do JS JS Kam vést Výstup JS JS prohlášení Syntaxe JS Komentáře JS JS proměnné JS Let JS Const Operátoři JS JS aritmetika Zadání JS JS datové typy Funkce JS JS objekty Události JS JS struny JS String Methods JS String Search Šablony řetězců JS JS čísla Metody čísel JS JS Arrays Metody JS Array JS Array Sort Iterace pole JS JS Array Const JS Termíny Formáty data JS JS metody získávání data JS metody nastavení data JS Math JS Náhodný JS Booleans JS Srovnání Podmínky JS Přepínač JS JS Loop For JS Loop For In JS Loop For Of Zatímco JS Loop JS Break JS Iterables Sady JS Mapy JS Typ JS Konverze typu JS JS Bitwise JS RegExp Chyby JS Rozsah JS JS Zvedací zařízení Přísný režim JS JS toto klíčové slovo Funkce šipky JS JS třídy JS JSON Ladění JS Průvodce stylem JS JS Best Practices Chyby JS Výkon JS JS Reserved Words

Verze JS

Verze JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Historie JS

JS objekty

Definice objektů Vlastnosti objektu Objektové metody Zobrazení objektu Objektové přístupové objekty Konstruktory objektů Prototypy objektů Iterovatelné objekty Sady objektů Mapy objektů Reference objektu

Funkce JS

Definice funkcí Funkční parametry Vyvolání funkce Volání funkce Funkce Použít Funkční uzávěry

JS třídy

Úvod do třídy Třídní dědičnost Třída Statická

JS Async

JS zpětná volání JS asynchronní JS Sliby JS Async/Await

JS HTML DOM

Úvod do DOM Metody DOM Dokument DOM Prvky DOM DOM HTML Formuláře DOM DOM CSS DOM animace Události DOM DOM Event Listener Navigace DOM DOM uzly Kolekce DOM Seznamy uzlů DOM

Kusovník prohlížeče JS

Okno JS Obrazovka JS Umístění JS Historie JS JS Navigator Popup Alert JS Časování JS Soubory cookie JS

Webová rozhraní API JS

Úvod do webového rozhraní API Web Forms API Webová historie API Web Storage API Web Worker API Web Fetch API Web Geolocation API

JS AJAX

Úvod do AJAXu AJAX XMLHttp Požadavek AJAX Odpověď AJAX Soubor XML AJAX AJAX PHP AJAX ASP Databáze AJAX Aplikace AJAX Příklady AJAX

JS JSON

Úvod do JSON Syntaxe JSON JSON vs XML Datové typy JSON Analýza JSON JSON Stringify Objekty JSON Pole JSON Server JSON JSON PHP JSON HTML JSON JSONP

JS vs jQuery

Selektory jQuery HTML jQuery jQuery CSS jQuery DOM

Grafika JS

Grafika JS JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

Příklady JS

Příklady JS JS HTML DOM Vstup HTML JS JS HTML objekty JS HTML události Prohlížeč JS Editor JS Cvičení JS JS kvíz Certifikát JS

JS Reference

Objekty JavaScriptu HTML DOM objekty


Definice funkcí JavaScriptu


Funkce JavaScriptu jsou definovány pomocí functionklíčového slova.

Můžete použít deklaraci funkce nebo výraz funkce .


Prohlášení o funkci

Dříve v tomto kurzu jste se dozvěděli, že funkce jsou deklarovány s následující syntaxí:

function functionName(parameters) {
  // code to be executed
}

Deklarované funkce se neprovedou okamžitě. Jsou "uloženy pro pozdější použití" a budou provedeny později, když jsou vyvolány (vyvolány).

Příklad

function myFunction(a, b) {
  return a * b;
}

Středníky se používají k oddělení spustitelných příkazů JavaScriptu.
Vzhledem k tomu, že deklarace funkce není spustitelný příkaz, není obvyklé ji končit středníkem.


Funkční výrazy

Funkci JavaScript lze také definovat pomocí výrazu .

Výraz funkce lze uložit do proměnné:

Příklad

const x = function (a, b) {return a * b};

Poté, co byl výraz funkce uložen do proměnné, lze proměnnou použít jako funkci:

Příklad

const x = function (a, b) {return a * b};
let z = x(4, 3);

Výše uvedená funkce je ve skutečnosti anonymní funkce (funkce bez názvu).

Funkce uložené v proměnných nepotřebují názvy funkcí. Jsou vždy vyvolány (volány) pomocí názvu proměnné.

Výše uvedená funkce končí středníkem, protože je součástí spustitelného příkazu.



Konstruktor Function().

Jak jste viděli v předchozích příkladech, funkce JavaScriptu jsou definovány pomocí functionklíčového slova.

Funkce lze také definovat pomocí vestavěného konstruktoru funkcí JavaScriptu s názvem Function().

Příklad

const myFunction = new Function("a", "b", "return a * b");

let x = myFunction(4, 3);

Ve skutečnosti nemusíte používat konstruktor funkcí. Výše uvedený příklad je stejný jako při psaní:

Příklad

const myFunction = function (a, b) {return a * b};

let x = myFunction(4, 3);

Většinu času se můžete vyhnout použití newklíčového slova v JavaScriptu.


Funkce zdvihání

Dříve v tomto tutoriálu jste se dozvěděli o "zvedání" ( JavaScript Hoisting ).

Zvednutí je výchozí chování JavaScriptu při přesouvání deklarací na začátek aktuálního rozsahu.

Zvednutí se týká deklarací proměnných a deklarací funkcí.

Z tohoto důvodu lze funkce JavaScriptu volat dříve, než jsou deklarovány:

myFunction(5);

function myFunction(y) {
  return y * y;
}

Funkce definované pomocí výrazu nejsou zvednuty.


Samovolné funkce

Funkční výrazy lze provést „samovolně“.

Samovolný výraz je vyvolán (spuštěn) automaticky, aniž by byl volán.

Výrazy funkce se spustí automaticky, pokud za výrazem následuje ().

Nemůžete sami vyvolat deklaraci funkce.

Musíte přidat závorky kolem funkce, abyste označili, že se jedná o výraz funkce:

Příklad

(function () {
  let x = "Hello!!";  // I will invoke myself
})();

Výše uvedená funkce je ve skutečnosti anonymní samovolná funkce (funkce bez názvu).


Funkce mohou být použity jako hodnoty

Funkce JavaScriptu lze použít jako hodnoty:

Příklad

function myFunction(a, b) {
  return a * b;
}

let x = myFunction(4, 3);

Funkce JavaScriptu lze použít ve výrazech:

Příklad

function myFunction(a, b) {
  return a * b;
}

let x = myFunction(4, 3) * 2;

Funkce jsou objekty

Operátor typeofv JavaScriptu vrací funkci „funkce“.

Funkce JavaScriptu však lze nejlépe popsat jako objekty.

Funkce JavaScriptu mají vlastnosti i metody .

Vlastnost arguments.lengthvrací počet argumentů přijatých při vyvolání funkce:

Příklad

function myFunction(a, b) {
  return arguments.length;
}

Metoda toString()vrací funkci jako řetězec:

Příklad

function myFunction(a, b) {
  return a * b;
}

let text = myFunction.toString();

Funkce definovaná jako vlastnost objektu se nazývá metoda objektu.
Funkce navržená k vytváření nových objektů se nazývá konstruktor objektů.


Funkce šipek

Šipkové funkce umožňují krátkou syntaxi pro zápis funkčních výrazů.

Nepotřebujete functionklíčové slovo, returnklíčové slovo a složené závorky .

Příklad

// ES5
var x = function(x, y) {
  return x * y;
}

// ES6
const x = (x, y) => x * y;

Funkce šipek nemají vlastní this. Nejsou příliš vhodné pro definování objektových metod .

Funkce šipek nejsou zvednuté. Musí být definovány před jejich použitím.

Použití const je bezpečnější než použití var, protože výraz funkce má vždy konstantní hodnotu.

Klíčové slovo a složené závorky můžete vynechat pouze v returnpřípadě, že je funkce jedním příkazem. Z tohoto důvodu může být dobrým zvykem je vždy uchovávat:

Příklad

const x = (x, y) => { return x * y };

Funkce šipek nejsou podporovány v IE11 nebo dřívějších verzích.