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


Rozsah JavaScriptu

Rozsah určuje dostupnost (viditelnost) proměnných.

JavaScript má 3 typy rozsahu:

  • Rozsah bloku
  • Rozsah funkcí
  • Globální rozsah

Rozsah bloku

Před ES6 (2015) měl JavaScript pouze globální rozsah a rozsah funkcí .

ES6 představil dvě důležitá nová klíčová slova JavaScript: leta const.

Tato dvě klíčová slova poskytují v JavaScriptu rozsah bloku .

K proměnným deklarovaným uvnitř bloku { } nelze přistupovat zvenčí bloku:

Příklad

{
  let x = 2;
}
// x can NOT be used here

Proměnné deklarované pomocí varklíčového slova NEMOHOU mít rozsah bloku.

K proměnným deklarovaným uvnitř bloku { } lze přistupovat zvenčí bloku.

Příklad

{
  var x = 2;
}
// x CAN be used here

Místní rozsah

Proměnné deklarované v rámci funkce JavaScriptu se stanou pro funkci LOKÁLNÍ .

Příklad

// code here can NOT use carName

function myFunction() {
  let carName = "Volvo";
  // code here CAN use carName
}

// code here can NOT use carName

Lokální proměnné mají rozsah funkce :

Lze k nim přistupovat pouze z funkce.

Protože lokální proměnné jsou rozpoznávány pouze uvnitř jejich funkcí, lze proměnné se stejným názvem použít v různých funkcích.

Lokální proměnné se vytvářejí při spuštění funkce a vymažou se po dokončení funkce.


Rozsah funkce

JavaScript má rozsah funkcí: Každá funkce vytváří nový rozsah.

Proměnné definované uvnitř funkce nejsou přístupné (viditelné) zvenčí funkce.

Proměnné deklarované pomocí var, let a constjsou velmi podobné, když jsou deklarovány uvnitř funkce.

Všechny mají rozsah funkcí :

function myFunction() {
  var carName = "Volvo";   // Function Scope
}
function myFunction() {
  let carName = "Volvo";   // Function Scope
}
function myFunction() {
  const carName = "Volvo";   // Function Scope
}

Globální proměnné JavaScriptu

Proměnná deklarovaná mimo funkci se stává GLOBAL .

Příklad

let carName = "Volvo";
// code here can use carName

function myFunction() {
// code here can also use carName
}

Globální proměnná má globální rozsah :

Mají k ní přístup všechny skripty a funkce na webové stránce. 


Globální rozsah

Proměnné deklarované Globálně (mimo jakoukoli funkci) mají globální rozsah .

Ke globálním proměnným lze přistupovat odkudkoli v programu JavaScript.

Proměnné deklarované pomocí var, let a constjsou velmi podobné, když jsou deklarovány mimo blok.

Všechny mají globální rozsah :

var x = 2;       // Global scope
let x = 2;       // Global scope
const x = 2;       // Global scope

Proměnné JavaScriptu

V JavaScriptu jsou objekty a funkce také proměnné.

Rozsah určuje dostupnost proměnných, objektů a funkcí z různých částí kódu.



Automaticky globální

Pokud proměnné přiřadíte hodnotu, která nebyla deklarována, stane se automaticky GLOBÁLNÍ proměnnou.

Tento příklad kódu deklaruje globální proměnnou carName, i když je hodnota přiřazena uvnitř funkce.

Příklad

myFunction();

// code here can use carName

function myFunction() {
  carName = "Volvo";
}

Přísný režim

Všechny moderní prohlížeče podporují spouštění JavaScriptu v „přísném režimu“.

Více o tom, jak používat přísný režim, se dozvíte v pozdější kapitole tohoto tutoriálu.

V "Strict Mode" nejsou nedeklarované proměnné automaticky globální.


Globální proměnné v HTML

U JavaScriptu je globálním rozsahem prostředí JavaScriptu.

V HTML je globálním rozsahem objekt okna.

Globální proměnné definované pomocí varklíčového slova patří do objektu okna:

Příklad

var carName = "Volvo";
// code here can use window.carName

Globální proměnné definované pomocí letklíčového slova nepatří do objektu okna:

Příklad

let carName = "Volvo";
// code here can not use window.carName

Varování

NEVYTVOŘUJTE globální proměnné, pokud to nemáte v úmyslu.

Vaše globální proměnné (nebo funkce) mohou přepsat proměnné okna (nebo funkce).
Jakákoli funkce, včetně objektu okna, může přepsat vaše globální proměnné a funkce.


Životnost proměnných JavaScriptu

Životnost proměnné JavaScriptu začíná, když je deklarována.

Funkční (místní) proměnné se po dokončení funkce vymažou.

Ve webovém prohlížeči se globální proměnné odstraní, když zavřete okno prohlížeče (nebo kartu).


Funkční argumenty

Argumenty funkce (parametry) fungují jako lokální proměnné uvnitř funkcí.