Ugradjeni objekti

OBJEKTI ZA MANIPULISANJE PROMENLJIVIH

OBJEKAT VEZAN ZA BROJEVE – Math

Često ćemo pri korišćenju brojeva imati potrebu za njihovom modifikacijom. Jedna od mogućnosti je ugradjen objekat Math. Daćemo nekoliko primera kako bi videli o Čemu se radi:

Ukoliko želimo da zaokružimo neki broj, napisaćemo sledeći izraz:

x=200.6;
var zaokruzen=Math.round(x);

U ovom primeru izlaz će biti 201, iz razloga što metoda round objekta Math svaki broj čiji je decimalni deo veći ili jednak 0.5 vrednost decimalnog broja zaokružuje na veću vrednost a sve brojeve sa manjim decimalnim ostatkom od 0.5 zaokružuje na manju vrednost.

za slučaj da je x=200.45 izlaz bi bio 200.

Još neke komande koje ćemo često sretati su:

var niz=[20,30,55];
var najveci=Math.max(niz);           //daće izlaz 55
var najveci=Math.min(niz);            //daće izlaz 20

var nasumicna=Math.random();   //daće kao izlaz slucajni broj u opsegu od 0 do 1

var kvadratni_koren=Math.sqrt(5);      //daće kao izlaz kvadratni koren od 5
MANIPULACIJA NAD PROMENLJIVIM TIPA TEKST (STRINGS)

Prvo na šta bi skrenuo pažnju kod stringova je kako unutar navodnika postaviti navodnike? Na primer:

var tekst=’Ovo je bila ‘najludja’ noc koju “mozete” da zamislite.’;

Za ovu namenu koristimo tzv. escape karaktere koji govore Java Scriptu da ih ne posmatra kao deo sintakse, pa bi prethodni primer trebalo napisati kao:

var tekst=’Ovo je bila \‘najludja\’ noc koju \“mozete\” da zamislite.’;

 

 

Obzirom da je string ugradjeni objekat u Java Scriptu taj objekat ima svoja svojstva kao i metode manipulacije nad njim.

Jedno od svojstava predstavlja odredjivanje dužine stringa:

var nekitekst=’Ovo je jedna prosta recenica.';
var duzina=nekitekst.length;
alert(duzina);      //daće kao izlaz 29 jer se računaju i blank-ovi
Po pitanju tekstualnih promenljivih, postoji veliki broj metoda za njihovu manipulaciju. Neke od njih:

var neki_tekst=’Ovo je jedna prosta recenica.';
var sve_velika_slova=neki_tekst.toUpperCase();
alert(sve_velika_slova);                 //daće kao izlaz OVO JE JEDNA PROSTA RECENICA

 

var neki_tekst=’Ovo je jedna prosta recenica.';
var sve_velika_slova=neki_tekst.toLowerCase();
alert(sve_velika_slova);                 //daće kao izlaz ovo je jedna prosta recenica

 

Ukoliko želimo da našu rečenicu pretvorimo u niz čiji će svaki član imati po jednu reč:

var neki_tekst=’Ovo je jedna prosta recenica.';
var sve_velika_slova=neki_tekst.split(“ ”);

alert(sve_velika_slova);                 //daće kao izlaz niz koji ce imati 5 članova (Ovo, je,jedna,prosta,recenica)

NAPOMENA: Ovde je kreiran niz na ovaj način jer smo mu rekli da članove niza razdvaja na svim mestima gde naidje na prazninu (blank space)

Ukoliko želimo da saznamo na kojoj poziciji unutar stringa počinje neka reč, kreiraćemo kod:

var neki_tekst=’Ovo je jedna prosta recenica.';
var pozicija=neki_tekst.indexOf(‘jedna’);
alert(pozicija);                   //daće kao izlaz 7 (jer brojanje počinje od nule, tj. prvo slovo je na poziciji 0)
U prethodnom primeru, ukoliko reč koju tražimo ne postoji, vrednost koju će nam vratiti je -1. Ukoliko postoji više puta pomenuta reč, vratiće nam kao izlaz poziciju prve.
Za vise informacija o svim raspoloživim metodama:

http://developer.mozillla.org/en.JavaScript/Reference

 

RAD SA DATUMIMA

U okviru Java Scripta postoji objekat pod imenom Date(). Ovaj objekat se koristi za prikazivanje datuma i vremena kao i za manipulaciju istih.

Sintaksa za kreiranje novog objekta koji će naslediti sve metode i svojstva ovog objekta je

var datum = new Date();

Ovako napisano daće izlaz:

Sun Sep 21 2014 08:52:59 GMT+0200 (Central Europe Standard Time)

Ukoliko ne želimo da smestimo vrednost današnjeg datuma u promenljivu datum, već nekog u prošlosti ili budućnosti, to možemo definisati unutar zagrada nakon službene reči Date navodjenjem ukupno šest parametara tako da dodjemo do tačnosti od 1 sekunde. Parametri su redom: godina, mesec, dan (u mesecu), sat, minut i sekund.

NAPOMENA: Mesec izražen brojem kao i sat počinju od vrednosti 0. Pa je Januar 0 a Decembar 11

var datum = new Date(2014,5,15,3,43,12);

 

U promenljivu datum biće uskladištena informacija o datumu 15. jun 2014, 3h 43min 12sec.

Ono što je zanimljivo je da će biti korišćen default format koji izgleda kao u prethodnom primeru:

Sun Jun 15 2014 03:43:12 GMT+0200 (Central Europe Standard Time)
Obzirom da ćemo objekat Date() uglavnom koristiti za razne vrste preračunavanja, tipa koliko je prošlo od nekog datuma da danas i slično, ovakav format datuma nam to neće omogućiti. Razlog za to je što obicna poredjenja aritmetičkim operatorima <,>,<=,>=, !== ne razumeju strukturu datuma ovako napisanog. Za to će nam koristiti jedna od metoda ovog objekta. Pre nego damo primer treba naglasiti da postoje dve grupe metoda ovog objekta, grupa koja počinje rečju get i druga koja počinje rečju set.

Neke od get metoda:

getMonth()          //daje izlaz u vidu broja od 0-11

getFullYear()       //daje izlaz u vidu četvorocifrenog broja godine YYYY

getDate()             // daje izlaz dana u mesecu 0-31

getDay()               // daje izlaz u vidu broja 0-6 gde je 0 nedelja

getTime()             //daje izlaz u milisekundama i koristi se za poredjenje datuma
Kako ih koristimo?

Ako zelimo da za vrednost neke promenljive kreirane od objekta Date postavimo mesec u kome smo trenutno (septembar), to ćemo zapisati kao:

var datum = new Date();

alert(datum.getDay());

Izlaz će biti vrednost 0 što znači da je dan nedelja.

Ukoliko bi to želeli da prikažemo kao ime dana, kreiraćemo niz koji ce vrednosti od 0-6 da pridruži imenima dana u nedelji:

var datum = new Date();
var dan_kao_broj = datum.getDay();
var sedmica = [
‘Nedelja’,
‘Ponedeljak’,
‘Utorak’,
‘Sreda’,
‘Cetvrtak’,
‘Petak’,
‘Subota’,
]
alert(sedmica[dan_kao_broj]);
Sada će izlaz biti: Nedelja

U drugom primeru ćemo izračunati koliko je dana proteklo od 14. septembra 2010-e godine?

var tada = new Date(2010,8,14); //postavljamo datum u prošlosti

var sad= new Date();                                      //postavljamo današnji dan
tada=tada.getTime();                                     //pretvaramo tadasnji datum u milisekunde

sad=sad.getTime();                                         //pretvaramo današnji datum u milisekunde
var broj_sekundi=sad-tada;                          //dobijamo rezultat u milisekundama

 

var broj_dana = broj_sekundi/1000/60/60/24;       //prevodimo u broj dana
broj_dana = Math.floor(broj_dana);                         //svodimo na ceo manji broj

 

alert(broj_dana);                                                           // kao rezultat dobijamo 1468

 

Treba primetiti da ćemo često samo vršiti poredjenje dva datuma. Tada takodje moramo da prevedemo datume u format koji JavaScript može da poredi, a to postižemo ranije pomenutom metodom objekta Date – getTime();

Preporučite ovaj članak:
Email this to someoneShare on Google+Share on FacebookShare on LinkedIn