Výraz nalevo od funkce v JavaScriptu

Podívejme se na následující kód:

javascript+function func() {
  console.log('!');
}

Jak již víte, tato funkce je funkcionálním výrazem, navzdory tomu, že má zadáno jméno (již jsme zjistili, že přítomnost jména obecně není kritériem). Odstraníme toto plus - a dostaneme Function Declaration:

javascriptfunction func() {
  console.log('!');
}

Pojďme umístit + na řádek před funkci - opět se stane Function Expression:

javascript+
function func() {
  console.log('!');
}

A nyní za plus vložme číslo 1 a středník - naše funkce se stane Function Declaration:

javascript+1;
function func() {
  console.log('!');
}

Proč tomu tak je: protože na prvním řádku je napsán jeden ukončený příkaz, uzavřený středníkem. Proto tento příkaz nijak neovlivňuje naši funkci.

Ve skutečnosti lze středník odstranit, protože v JavaScriptu není povinný - funkce i tak zůstane Function Declaration:

javascript+1
function func() {
  console.log('!');
}

Ale pokud za 1 přidáme ještě jedno plus, funkce se stane Function Expression:

javascript+1+
function func() {
  console.log('!');
}

Proč tomu tak je: protože na prvním řádku je neukončený výraz - stojí plus a za ním nic. Proto interpret JavaScriptu usuzuje, že toto plus patří k řádku níže, tedy k naší funkci.

Pokud je na prvním řádku ukončený výraz, pak JavaScript automaticky vloží středník a tento výraz nijak neovlivňuje naši funkci.

Задание 1

Určete, zda je uvedená funkce Function Declaration nebo Function Expression:

javascript-
function func() {
  console.log('!');
}
Задание 2

Určete, zda je uvedená funkce Function Declaration nebo Function Expression:

javascript-1;
function func() {
  console.log('!');
}
Задание 3

Určete, zda je uvedená funkce Function Declaration nebo Function Expression:

javascript-1
function func() {
  console.log('!');
}
Задание 4

Určete, zda je uvedená funkce Function Declaration nebo Function Expression:

javascript1
function func() {
  console.log('!');
}
Задание 5

Určete, zda je uvedená funkce Function Declaration nebo Function Expression:

javascript-1-
function func() {
  console.log('!');
}