1 2 3 4 |
function fvnev(par1, par2) { utasítások; return visszatérési érték; } |
Javascriptnél a függvényeknél nem kell megadni sem a paraméterek típusát, sem a visszatérési érték típusát. A függvényeket a function kulcsszóval adjuk meg, az utasításokat utasításblokkba helyezzük, a visszatérési értéket a return utasítás után adjuk meg. A függvény meghívása a függvény nevével történik megadva utána zárójelben a paraméterek aktuális értékét. Híváskor a zárójel akkor is kötelező, ha nincsenek aktuális paraméterek. A paraméterek és a visszatérési érték is tetszőleges elemi vagy összetett érték lehet.
Példa: számoljuk ki egy szám négyzetét!
1 2 3 4 5 |
function negyzet(x) { return x * x; } let eredmeny = negyzet(3); console.log(eredmeny); // Kiírja a függvény eredményét a konzolra (9) |
A függvényt a nevével hívhatjuk meg, paraméternek pedig egy számot adtam meg, ennek a négyzetét fogja kiszámolni. Mit fog eredményül adni? negyzet(negyzet(negyzet(2)))); ?
A függvénynek megadhatok változót is paraméterként:
var szam=2;
negyzet(szam); // a szam változónak a négyzetét számolja ki
Változók láthatósága
A függvényen kívül deklarált változók globális változók lesznek. Globális változók bárhonnan elérhetőek. A függvényen belül var kulcsszóval deklarált változók a függvényre nézve lokálisak lesznek. Ha függvényen belül elhagyjuk a var kulcsszót, akkor viszont globális változó jön létre. Mivel a globális változók használata könnyen hibához vezethet, ezért próbáljuk meg számukat minimalizálni.
példa: szökőév-e az adott év?
A következő példában 2db eljárást is létrehoztam. Az egyik csak egy kiiratás, a másik megvizsgálja, hogy egy adott szám szökőév-e. A visszatérési értéke igaz vagy hamis. Ezt vizsgáljuk meg egy if segítségével. Ha igaz, akkor az s változó üres lesz, ha hamis akkor marad az értéke ‘NEM’. Az ‘ir’ függvénnyel pedig kiíratjuk a végeredményt.
1 2 3 4 5 6 7 8 9 10 11 |
function ir (s) { // eljárás neve, paraméter document.write(s,'<br>'); } function szokoev(a) { return ((a % 4 == 0 && a %100!=0) || a % 400 == 0); } var ev = 2001; var s = ' NEM '; if (szokoev(ev)) { s = ''} ir(ev+' év'+s+'szökőév.' ); |
Itt is használhatok szöveg bekérést:
var ev;
ev = prompt(‘Évszám:’);
példa: elektromos ellenállás kiszámítása megadott paraméterek alapján.
1 2 3 4 5 6 7 8 9 10 11 12 |
function ir (s) { // eljárás neve, paraméter document.write(s,'<br>'); } function vez_ellenallas(d, l, ro) { var A = d*d*Math.PI/4; // a vezeték keresztmetszete mm^2 var R = ro*l/A; //ellenállás képlete return R; } var d = 0.1; // a vezeték átmérője (mm) var l = 200; // a vezeték hossza (m) var ro = 0.0175; // a réz fajlagos ellenállása Ohm*mm^2/m var ohm = vez_ellenallas(d, l, ro); //függvény meghívása a paraméterekkel ir(d+'mm átm., '+l+'m hosszú rézvezeték ellenállása='+ohm+'Ohm.'); |
Feladat: kör adatainak kiszámítása. Mindegy, hogy a felhasználó a kör sugarát, kerületét, területét adja-e meg!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
<html> <head></head> <body> <form class='sikidom' name='kor'> <h4> A kör </h4> <b>Adatok:</b><br> <span>A kör sugara: </span> <input name='r' size=7 onfocus=' torol(); ' onblur=' korszamol(1); '> cm <br> <span>A kör kerülete: </span> <input name='K' size=7 onfocus=' torol(); ' onblur=' korszamol(2); '> cm <br> <span>A kör területe: </span> <input name='T' size=7 onfocus=' torol(); ' onblur=' korszamol(3); '> cm<sup>2</sup> <br><br> <!-- onfocus : az az esemény, amikor belekattintunk a mezőbe (megkapja a fókuszt) onblur : az az esemény, amikor kikattintunk a mezőből (elveszti a fókuszt) --> <input type=button value='Számol'> </form> <!-- -- -- JavaScript függvény megvalósítása -- -- --> <script> function torol() { document.kor.r.value = "" document.kor.K.value = "" document.kor.T.value = "" } function korszamol(m) { r = parseFloat(document.kor.r.value) K = parseFloat(document.kor.K.value) T = parseFloat(document.kor.T.value) //ha a felhasználó a kör sugarát ajda meg, ebből számolunk if( m==1 && r>0 ) { K = 2*r*Math.PI T = r*r*Math.PI // 3 számjegyre keretítünk document.kor.K.value = Math.round(K*1000)/1000 document.kor.T.value = Math.round(T*1000)/1000 } //ha a felhasználó a kör kerületét adja meg, abból számolunk if( m==2 && K>0 ) { r = K/2/Math.PI //kerületből kiszámoljuk a kör sugarát T = r*r*Math.PI // 3 számjegyre keretítünk document.kor.r.value = Math.round(r*1000)/1000 document.kor.T.value = Math.round(T*1000)/1000 } //ha a felhasználó a kör területét adja meg, abból számolunk if( m==3 && T>0 ) { r = Math.sqrt(T/Math.PI) //területből kiszámoljuk a kör sugarát K = 2*r*Math.PI // 3 számjegyre keretítünk document.kor.r.value = Math.round(r*1000)/1000 document.kor.K.value = Math.round(K*1000)/1000 } } </script> <!-- -- -- -- JavaScript függvény vége -- -- -- -- --> </body> </html> |