Funkce JavaScriptu je blok kódu určený k provádění a konkrétní úkol.
Funkce JavaScript se provede, když "něco" to vyvolává (volá to).
// Function to compute the product of p1 and p2
function myFunction(p1, p2) {
return p1 * p2;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<p>Call a function which performs a calculation and returns the result:</p>
<p id="demo"></p>
<script>
function myFunction(p1, p2) {
return p1 * p2;
}
let result = myFunction(4, 3);
document.getElementById("demo").innerHTML = result;
</script>
</body>
</html>
Funkce JavaScript je definována pomocí klíčového slova function
, následuje jméno následované závorkami ().
Názvy funkcí mohou obsahovat písmena, číslice, podtržítka a znaky dolaru (stejná pravidla jako proměnné).
Závorky mohou obsahovat názvy parametrů oddělené čárkami:
(parametr1, parametr2, ...)
Kód, který má funkce provést, je umístěn ve složených závorkách: {}
function
name(parameter1, parameter2, parameter3) {
// code to be executed
}
Parametry funkce jsou uvedeny v závorkách() v definice funkce.
Argumenty funkce jsou hodnoty přijatá funkcí, když je vyvolána.
Uvnitř funkce se argumenty (parametry) chovají jako lokální proměnné.
Kód uvnitř funkce se spustí, když „něco“ vyvolá (zavolá). funkce:
Když dojde k události (když uživatel klikne na tlačítko)
Když je vyvolán (volán) z kódu JavaScript
Automaticky (samo vyvolat)
Později se dozvíte mnohem více o vyvolání funkcí tutorial.
Když JavaScript dosáhne příkazu return
, funkce se zastaví.
Pokud byla funkce vyvolána z příkazu, JavaScript bude "return" pro provedení kódu po příkazu vyvolání.
Funkce často počítají návratovou hodnotu. Návratová hodnota je "vrátil" zpět volající":
Vypočítejte součin dvou čísel a vraťte výsledek:
// Function is called, the return value will end up in x
let x = myFunction(4, 3);
function myFunction(a, b) {
// Function returns the product of a and b
return a * b;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<p>Call a function which performs a calculation and returns the result:</p>
<p id="demo"></p>
<script>
let x = myFunction(4, 3);
document.getElementById("demo").innerHTML = x;
function myFunction(a, b) {
return a * b;
}
</script>
</body>
</html>
Pomocí funkcí můžete znovu použít kód
Můžete napsat kód, který lze použít mnohokrát.
Můžete použít stejný kód s různými argumenty, abyste získali různé výsledky.
Operátor() vyvolá (volá) funkci:
Převést Fahrenheita na stupně Celsia:
function toCelsius(fahrenheit) {
return (5/9) * (fahrenheit-32);
}
let value = toCelsius(77);
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<p>Invoke (call) a function that converts from Fahrenheit to Celsius:</p>
<p id="demo"></p>
<script>
function toCelsius(f) {
return (5/9) * (f-32);
}
let value = toCelsius(77);
document.getElementById("demo").innerHTML = value;
</script>
</body>
</html>
Přístup k funkci s nesprávnými parametry může vrátit nesprávnou odpověď:
function toCelsius(fahrenheit) {
return (5/9) * (fahrenheit-32);
}
let value = toCelsius();
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<p>Invoke (call) a function to convert from Fahrenheit to Celsius:</p>
<p id="demo"></p>
<script>
function toCelsius(f) {
return (5/9) * (f-32);
}
let value = toCelsius();
document.getElementById("demo").innerHTML = value;
</script>
</body>
</html>
Přístup k funkci bez() vrátí funkci a nikoli výsledek funkce:
function toCelsius(fahrenheit) {
return (5/9) * (fahrenheit-32);
}
let value = toCelsius;
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<p>Accessing a function without () returns the function and not the function result:</p>
<p id="demo"></p>
<script>
function toCelsius(f) {
return (5/9) * (f-32);
}
let value = toCelsius;
document.getElementById("demo").innerHTML = value;
</script>
</body>
</html>
Jak vidíte z výše uvedených příkladů, toCelsius
odkazuje na funkční objekt a toCelsius()
odkazuje na výsledek funkce.
Funkce lze používat stejným způsobem, jako používáte proměnné, ve všech typech vzorců, přiřazení a výpočty.
Místo použití proměnné k uložení návratové hodnoty funkce:
let x = toCelsius(77);
let text = "The temperature is " + x + " Celsius";
Funkci můžete použít přímo jako hodnotu proměnné:
let text = "The temperature is " + toCelsius(77) + " Celsius";
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<p>Using a function as a variable:</p>
<p id="demo"></p>
<script>
let text = "The temperature is " + toCelsius(77) + " Celsius.";
document.getElementById("demo").innerHTML = text;
function toCelsius(fahrenheit) {
return (5/9) * (fahrenheit-32);
}
</script>
</body>
</html>
O funkcích se dozvíte mnohem více později v tomto tutoriálu.
Proměnné deklarované v rámci funkce JavaScriptu se stanou MÍSTNÍk funkce.
Lze přistupovat pouze k místním proměnným zevnitř funkce.
// code here can NOT use carName
function myFunction() {
let carName = "Volvo";
// code here CAN use carName
}
// code here can NOT use carName
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<p>Outside myFunction() carName is undefined.</p>
<p id="demo1"></p>
<p id="demo2"></p>
<script>
let text = "Outside: " + typeof carName;
document.getElementById("demo1").innerHTML = text;
function myFunction() {
let carName = "Volvo";
let text = "Inside: " + typeof carName + " " + carName;
document.getElementById("demo2").innerHTML = text;
}
myFunction();
</script>
</body>
</html>
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.