A JavaScript rendelkezik beépített matematikai objektummal, neve: Math
A Math objektum számos olyan matematikai programmal rendelkezik, mely megkönnyíti a matematikai számítások eredményének kiértékelését.
A Math objektumban található programokközött vannak matematikai állandókat és függvényeket tartalmazó képletek.
Megjegyzés:
A Math nem valódi objektum, azaz nem hozhatunk létre belőle saját példányt.
Más szóval: programunk elküldi a Math-ot, menjen el a JavaScript matematikai képlettárába és az általunk meghatározott képletet hozza el, majd ezzel számolja ki a matematikai képletünk eredményét.
+ | Összeadás |
- | Kivonás |
* | Szorzás |
/ | Osztás |
% | Maradékképzés |
++ | Növelés |
-- | Csökkentés |
>> | egyszerűen kettővel osztja a számot, az előjelet megtartva. |
>>> | jobbra tolja a számot, és balról nullákkal tölti fel, tehát az előjel megváltozhat! |
A növelés és csökkenés műveleteket, legfőképp ciklusoknál alkalmazzuk, ahol a programlefutás után automatikusan növelhetjük, vagy csökkenthetjük a változó eredeti értékét.
Math: Matematikai konstansok tárháza. |
Math.E, A természetes alapú logaritmus alapja (kb. 2.718) Math.LN2, A kettő természetes alapú logaritmus alapja (kb. 0.693) Math.LN10, A tíz természetes alapú logaritmusa (kb. 2.302) Math.LOG2E, Az E kettes alapú logaritmusa (kb. 1.442) Math.LOG10E, Az E természetes alapú logaritmusa (kb. 0.434) Math.PI, Kör kerület, és átmérő hányadosa (kb. 3.14159) Math.SQRT1_2, Az egyketted négyzetgyöke (kb. 0.707) Math.SQRT2, A kettő négyzetgyöke(kb. 1.4142) |
Math: Matematikai függvények tárháza. |
Algebrai függvények: Math.acos(szám), egy szám arkusz koszinuszát adja meg radiánba Math.asin(szám), egy szám arkusz szinusát adja meg Math.atan(szám), egy szám arkusz tangensét adja meg Math.cos(szám), egy szög koszinusát számolja ki Math.sin(szám), egy szög szinuszát számolja ki Math.tan(szám). egy szög tangensét számolja ki Statisztikai és logaritmikus függvények: Math.exp(szám), az e-t a természetes alapú logaritmus alapját, emeli fel a kívánt hatványra. Math.log(szám), egy szám természetes alapú logaritmusát adja vissza Math.max(a, b), két szám közül a nagyobbat választja ki Math.min(a, b), két szám közül a kisebbet választja ki Kerekítési és egyszerű matematikai függvények: Math.abs(szám), egy szám abszolút értékét adja meg. Math.ceil(szám), felfelé kerekíti a számot a legközelebbi egészhez. Math.floor(szám), lefelé kerekíti a számot a legközelebbi egészhez. Math.pow(a, b), megadott hatványra emel egy számot. Math.round(szám), a legközelebbi egészhez kerekíti a számot. Math.sqrt(szám), a szám négyzetgyökét számolja ki. Véletlenszámok függvénye: Math.random(), egy 0 és 1 közötti véletlen számot ad vissza. |
Véletlenszám tagfüggvénye:
- Math.random() Véletlen számot hoz létre 0 és 1 között
Ezen függvénynek nem kell bemeneti értéket megadni, azaz nem kell változót alkalmazni.
A gyakorlatban olyan egész számot szeretnénk, mely 1 és a megadott szám közé esik.
Erre egy, egyszerű példa:
function rand(szam) {
return Math.floor(Math,random() * num) + 1 ;
}
num = egy változó értékével, melyet mi határozunk meg.
A véletlen számot megszorozzuk az általunk megadott számmal, ezt a Math.floor() ffüggvény 1 és az általunk megadott szám közötti, egész számmá alakítja.
Ha kétoperandusú műveletként használjuk, akkor a kivonás (-) művelettel két számot vonhatunk ki egymásból.
x=4-3; // x egyenlő 1-gyel
x=3-4; // x egyenlő -1-gyel
Ha egyoperandusú műveletként használjuk, akkor ez az operátor a pozitív számot negatívvá konvertálja, illetve fordítva.
x=6;
y=-x; // y egyenlő -6-tal
z=-y; // z jelen esetben megegyezik 6-tal
Ha az operátort nem szám típusú értékekkel használjuk, akkor megpróbálja kiszámolni a különbséget olyan módon, hogy szám típusú értékké alakítja azokat.
A szorzás (*) kétoperandusú művelet, amelynek segítségével két számot szorozhatunk össze.
z=2*3; // z egyenlő 6-tal
Ha az operátort nem szám típusú értékekkel használjuk, akkor megpróbálja kiszámolni a szorzatot olyan módon, hogy szám típusú értékké alakítja azokat.
Az osztás (/) olyan kétoperandusú művelet, amely az első operandust elosztja a másodikkal.
z=6/3; // z egyenlő 2-vel
z=3/2; // z egyenlő 1.5-del
A nullával való osztás speciális értéket eredményez.
z=3/0; // z POSITIVE_INFINITY-vel vagy NEGATIVE_INFINITY-vel egyenlő
z=0/0; // z NAN-nal egyenlő
Ha ez operátort nem szám típusú értékekkel használjuk, akkor megpróbálja kiszámolni a hányadost olyan módon, hogy szám típusú értékké alakítja azokat.
A maradékos osztást (%) szokás modulo-műveletnek is nevezni. A két operandus osztása során keletkezett maradékot adja vissza.
z=7%2; // z egyenlő 1-gyel
z=6%2; // z egyenlő 0-val
Ha az operátort nem szám típusú értékekkel használjuk, akkor megpróbálja kiszámolni a maradékot olyan módon, hogy szám típusú értékké alakítja azokat.
Ha az operátor elöl áll, akkor először történik meg az érték növelése.
Ha viszont hátul áll az operátor, akkor előbb az értékadás (b = a) valósul meg, és utána mellesleg nő az "a" változó értéke 1-gyel.
Hasonlóképpen az értékcsökkentő operátornál.
Példa:
Az operátor kék színnel van kiemelve.
a = ++a;
b = a++;
Egy számértékkel történő növelés (++) egyoperandusú művelet, amelynek segítségével egy számot lehet inkrementálni, azaz hozzá adni egyet.
A művelet lehet pre-inkrement és poszt-inkrement.
A pre-inkrement azelőtt végrehajtódik, mielőtt az utasítás további műveletei végrehajtódnának.
x=5;
y=++x; // mind az x, mind az y egyenlő 6-tal
A poszt-inkrement azután hajtódik végre, miután az utasítás összes többi művelete végrehajtódott.
x=5;
y=x++; // az x 6-tal, az y 5-tel egyenlő
Ha az operátort nem szám típusú értékekkel használjuk, akkor az inkrementálást megpróbálja kiszámolni olyan módon, hogy szám típusú értékké alakítja az operandusokat.
Egy számértékkel történő csökkentés (--) egyoperandusú művelet, amelynek segítségével egy számot lehet dekrementálni, azaz értékéből egyet kivonni.
A művelet lehet pre-dekrement és post-dekrement.
A pre-dekrement azelőtt végrehajtódik, mielőtt az utasítás további műveletei végrehajtódnának.
x=5;
y=--x; // mind az x, mind az y egyenlő 4-tal
A post-dekrement azután hajtódik végre, miután az utasítás összes többi művelete végrehajtódott.
x=5;
y=x--; // az x 4-gyel, az y 5-tel egyenlő
Ha az operátort nem szám típusú értékekkel használjuk, akkor az dekrementálást megpróbálja kiszámolni olyan módon, hogy szám típusú értékké alakítja az operandusokat.
A bitszintű jobbra eltolás két változata között a különbség az, hogy amíg a ">>" esetén az előjelbit értékét használja az új értékhelyek feltöltésére a bal oldalon, addig a ">>>" operátor esetén mindig 0 értékekkel tölti fel az üres helyeket.
a = b >> 2;
b = a >>> 2;
A műveletek során a második kifejezésben megadhatjuk, hogy hány értékhellyel tolódjon el a bináris adatsor.
x = += y;
x = x + y;
Bitszintű negálás | ~ |
Bitszintű balra eltolás | << |
Bitszintű jobbra eltolás | >> |
Helyérték nélküli jobbra eltolás | >>> |
Bitszintű és | & |
Bitszintű kizáró vagy | ^ |
Bitszintű vagy | | |
Értékadás | = |
Összetett értékadás | OP= |
törlés | delete |
típus | typeof |
értékadás kiküszöbölése | void |
példánya-e | instanceof |
új | new |
benne | in |