JavaScript-opas

Math-olio ja matemaattiset ongelmat

Normaalioloissa eräs harvimmin käytetymmistä JavaScriptin olioista on Math-olio. Sen avulla ratkaistaan "kehittyneitä" matemaattisia ongelmia, kuten dynaamisten objektien "lentorata" käyttäjän selaimen näyttöalueella. Sen sijaan normaalit laskutoimitukset, kuten yhteen- ja vähennyslasku voidaan suorittaa joko perusoperaattoreilla tai eval()-funktion avulla.

Tärkeimpiä Math-olion muuttujia ovat :


Math.E	// Neperin luku
Math.LN10	//Luvun 10 luonnollinen logaritmi

Metodien osalta kaikkein tärkeimmät tehtävät ovat erilaisten kulmien laskeminen ja satunnaislukujen käsittely. Näitä varten Math-luokka tarjoaa seuraavat metodit:


Math.abs(arg)	// itseisarvo
Math.acos	(arg)	// arcus kosini
Math.asin(arg)	// arcus sini
Math.atan(arg)	// arcus tangentti
Math.ceil(arg)	// pyöristys lähimpään suurempaan kokonaislukuun
Math.cos(arg)	// kosini
Math.exp(arg)	// luku potensiin argumentti
Math.floor	(arg)	// pyöristys lähimpään pienempään kokonaislukuun
Math.log(arg)	// luonnollinen logaritmi
Math.max(arg1,arg2)	// palauttaa suuremman argumenteista
Math.min(arg1,arg2)	// palauttaa pienemmän argumenteista
Math.pow(arg1,arg2)	// argumentti1 potenssiin argumentti2
Math.random	// palauttaa satunnaisluvun 
Math.round(arg)	// pyöristää luvun pyöristyssääntöjen mukaan
Math.sin(arg)	// sini
Math.sqrt(arg)	// argumentin neliöjuuri
Math.tan(arg)	// tangentti

Kenties yleisimmin käytetty metodi liittyy satunnaisluvun käyttämiseen. Yksinkertaisimmillaan se voi olla näin helppoa:


var a; 
a= Math.random();
document.write(a);

Tämä ei kuitenkaan tee varsinaisesti mitään hyödyllistä, joten jalostetaan koodia sillä tavoin, että se palauttaa kokonaisluvun väliltä 1-39. Tähän toimenpiteeseen käytämme Math.round()-metodia.


function satunnaisluku()
{
    var ranNum= 1+Math.round(Math.random()*38);
    return ranNum;
}

Tästä eteenpäin koodia voi jalostaa vaikkapa tekemällä sen avulla alkeellisen lottorivigeneraattorin tai "satunnainen kommentti" palvelun käyttämällä erilaisia ohjausrakenteita.