Výraz nalevo od funkce v JavaScriptu
Podívejme se na následující kód:
+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:
function func() {
console.log('!');
}
Pojďme umístit + na řádek před
funkci - opět se stane Function Expression:
+
function func() {
console.log('!');
}
A nyní za plus vložme číslo 1
a středník - naše funkce se stane Function
Declaration:
+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:
+1
function func() {
console.log('!');
}
Ale pokud za 1 přidáme ještě jedno
plus, funkce se stane Function Expression:
+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.
Určete, zda je uvedená funkce Function Declaration nebo Function Expression:
-
function func() {
console.log('!');
}
Určete, zda je uvedená funkce Function Declaration nebo Function Expression:
-1;
function func() {
console.log('!');
}
Určete, zda je uvedená funkce Function Declaration nebo Function Expression:
-1
function func() {
console.log('!');
}
Určete, zda je uvedená funkce Function Declaration nebo Function Expression:
1
function func() {
console.log('!');
}
Určete, zda je uvedená funkce Function Declaration nebo Function Expression:
-1-
function func() {
console.log('!');
}