Internet Programiranje: Prof. DR Miroslav Lutovac

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 56

Internet programiranje

Prof. dr Miroslav Lutovac


mlutovac@viser.edu.rs

VISER 1
Literatura
Boško Nikolić, Internet programiranje 1,
VISER Beograd,
ISBN: 978-86-7982-031-0

VISER 2
Number Methods & Properties
• Primitivne vrednosti (3.14, 2017),
ne mogu da imaju osobine i metode
(zato što nisu objekti)
• JavaScript tretira primitivne vrednosti kao
objekte kada izvršava metode i osobine

VISER 3
toString() metoda
• toString() metoda vraća broj kao string
• Sve methods za brojeve mogu da se koriste za bilo koji tip
brojeva (literali, promenljive, izrazi)
• Literal je notacija za predstavljanje fiksne vrednosti u izvornom
kodu
• Literali se koriste za inicijalizaciju promenljivih
var x = 123;
x.toString(); // returns 123 from variable x
(123).toString(); // returns 123 from literal 123
(100+23).toString();// returns 123 from expression 100+23

VISER 4
toString() metoda

VISER 5
toExponential() metoda
• toExponential() vraća string sa brojem koji je
zaokružen i napisan korišćenjem eksponencijalne
notacije
• Parametar definiše broj karaktera posle decimalne
tačke
• Parametar je opcioni; ako se specificira,
JavaScript neće zaokružiti broj
var x = 9.656;
x.toExponential(2); // returns 9.66e+0
x.toExponential(4); // returns 9.6560e+0
x.toExponential(6); // returns 9.656000e+0

VISER 6
toExponential metoda

var x = 9.6530;

VISER 7
toFixed() metoda
• toFixed() vraća string sa brojevima napisanim
sa zadatim brojem cifara
• toFixed(2) je posebno pogodan kada se koristi za
novac
var x = 9.656;
x.toFixed(0); // returns 10
x.toFixed(2); // returns 9.66
x.toFixed(4); // returns 9.6560
x.toFixed(6); // returns 9.656000

VISER 8
toFixed() metoda

VISER 9
toPrecision() metoda
• toPrecision() vraća string, sa brojevima
napisanim da imaju određenu dužinu
var x = 9.656;
x.toPrecision(); // returns 9.656
x.toPrecision(2); // returns 9.7
x.toPrecision(4); // returns 9.656
x.toPrecision(6); // returns 9.65600

VISER 10
toPrecision() metoda

VISER 11
valueOf() metoda
• valueOf() vraća broj kao broj
var x = 123;
x.valueOf();
// returns 123 from variable x
(123).valueOf();
// returns 123 from literal
(100+23).valueOf();
// returns 123 from expression 100+23

VISER 12
valueOf() metoda

VISER 13
valueOf() metoda
• Brojevi mogu da budu primitivne vrednosti
(typeof = number) ili objekat (typeof = object).
• valueOf() metod se koristi interno u JS za
konvertovanje brojnih objekata u primitivne
vrednosti
• Nema razloga da se brojevi koriste kao objekti
• Svi JS tipovi podataka mogu da koriste valueOf()
i toString() metode

VISER 14
Globalna metoda
• JavaScript global metoda može da se koristi z
asve vrste podataka
• Najvažnije metode (funkcije) za brojeve su :
Number() – vraća broj koji je konverovan iz
argumenta
parseFloat() – parsira argument i vraća broj u
pokretnom zarezu
parseInt() – parsira argument i vraća celobrojnu
VISER 15
Number() funkcija
• Number() koristi se da se konvertuje promenljiva u broj
x = true;
Number(x); // returns 1
x = false;
Number(x); // returns 0
x = new Date();
Number(x); // returns 1404568027739 milisekundi
x = "10"
Number(x); // returns 10
x = "10 20"
Number(x); // returns NaN
VISER 16
Number() funkcija

VISER 17
parseInt() metoda
• parseInt() razdvaja delove stringa (parsira) i
vraća ceo broj
• Dozvoljn je blanko znak
• Vraća se samo prvi broj
parseInt("10"); // returns 10
parseInt("10.33"); // returns 10
parseInt("10 20 30"); // returns 10
parseInt("10 years"); // returns 10
parseInt("years 10"); // returns NaN
VISER 18
parseInt() metoda

Ako ne može da konvertuje


VISER u broj, vraća NaN 19
parseFloat() metoda
• parseFloat() razdvaja delove stringa
(parsira) i vraća broj:
ceo broj, tačku i razlomljeni deo (ako ima)
• Ako ne može da konvertuje u broj, vraća NaN
parseFloat("10"); // returns 10
parseFloat("10.33"); // returns 10.33
parseFloat("10 20 30"); // returns 10
parseFloat("10 years"); // returns 10
parseFloat("years 10"); // returns NaN
VISER 20
parseFloat() metoda

Ako ne može da konvertuje


VISER u broj, vraća NaN 21
Osobine brojeva
• MAX_VALUE vraća najveći broj u JavaScript-u
• MIN_VALUE vraća najmanji broj u JavaScript-u
• NEGATIVE_INFINITY vraća minus beskonačno
(prekoračenje kao negativan broj)
• NaN, predstavlja "Not-a-Number vrednost (broj za
koji se ne zna vrednost)
• POSITIVE_INFINITY vraća plus beskonačno
(prekoračenje kao pozitivan broj)
var x = Number.MAX_VALUE
VISER 22
Osobine brojeva

Prekoračenje iVISER
ne zna se vrednost NaN 23
Osobine brojeva
• Korišćenjem nekiBroj.MAX_VALUE, gde je
nekiBroj promenljiva, izraz, ili vrednost,
dobiće se undefined
var x = 6;
var y = x.MAX_VALUE; // y postaje undefined

VISER 24
Osobine brojeva

x.MAX_VALUE
VISER je undefined 25
Matematički objekti, osobine
• Matematičke konstante kao osobine objekta
Math.E // Ojlerov broj, 2.718
Math.PI // PI, 3.14
Math.SQRT2 // kvadratni koren od 2, 1.41
Math.SQRT1_2 // kvadratni koren 1/2, 0.707
Math.LN2 // prirodni logaritam od 2
Math.LN10 // prirodni logaritam od 10
Math.LOG2E // logaritam od E za osnovu 2
Math.LOG10E // logaritam od E za osnovu 10
VISER 26
Matematičke konstante

VISER 27
Matematički objekti, metode
• Math.round(x) vraća najbližu celobrojnu vrednost x
• Math.pow(x, y) vraća x na stepen y
• Math.sqrt(x) vraća kvadratni koren x
• Math.abs(x) vraća apsolutnu (pozitivnu) vrednost x
Math.round(4.7); // dobija se 5
Math.round(4.4); // dobija se 4
Math.pow(8, 2); // dobija se 64
Math.sqrt(64); // dobija se 8
Math.abs(-4.7); // dobija se 4.7

VISER 28
Matematički objekti, metode
• Math.ceil(x) vraća veću celobrojnu vrednost x
• Math.floor(x) vraća manju celobrojnu vrednost x
• Math.sin(x) vraća sin(x), x u radijanima
• Math.cos(x) vraća cos(x), x u radijanima
• ugao u radijanima = ugao u stepenima x*PI/180
Math.ceil(4.4); // dobija se 5
Math.floor(4.7); // dobija se 4
Math.sin(90 * Math.PI / 180); // dobija se 1
Math.cos(0 * Math.PI / 180); // dobija se 1
VISER 29
Matematički objekti, metode
• Math.min() nalazi najmanju vrednost liste argumenata
• Math.max() nalazi najveću vrednost liste argumenata
• Math.random() vraća slučajan broj veći ili jednak 0,
manji od 1
Math.min(0, 150, 30, 20, -8, -200); // dobija se -200
Math.max(0, 150, 30, 20, -8, -200); // dobija se 150
Math.random(); // dobija se slućajna vrednost 0≤x<1

VISER 30
Matematički objekti, metode
• acos(x) vraća arccos(x), x u radijanima
• asin(x) vraća arcsin(x), x u radijanima
• atan(x) vraća arctan(x), -PI/2<vrednost< PI/2 rad
• atan2(y, x) vraća arctan(imaginarni, realni deo)
• exp(x) vraća Ex
• log(x) vraća prirodni logaritam od x (osnova E)
• tan(x) vraća tan(x), x u radijanima
VISER 31
Matematički konstruktor
• Za razliku od drugih globalnih objekata,
matematički objekti nemaju konstruktor
• Metode i osobine su static
• Sve metode i osobine (konstante) mogu da se
koriste bez prethodnog pravljenja matematičkog
objekta

VISER 32
Math.random() + Math.floor()
• Math.random() koristi Math.floor() da vrati slučajnu
celobrojnu
Math.random(); // dobija se slućajna vrednost 0≤x<1
Math.floor(Math.random() * 10);
// dobija se slućajna vrednost između 0 i 9
Math.floor(Math.random() * 11);
// dobija se slućajna vrednost između 0 i 10
Math.floor(Math.random() * 100);
// dobija se slućajna vrednost između 0 i 99
Math.floor(Math.random() * 101);
// dobija se slućajna vrednost između 0 i 100
Math.floor(Math.random() * 10) + 1;
// dobija se slućajna vrednost između 1 i 10
Math.floor(Math.random() * 100) + 1;
// dobija se slućajna vrednost
VISER
između 1 i 100 33
Random funkcija
• JS funkcija koja daje slučajnu vrednost
između min i max vrednosti
min ≤ x < max
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max-min))+min;
}

• JS funkcija koja daje slučajnu vrednost


između min i max vrednosti
min ≤ x ≤ max
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max-min+1))+min;
}
VISER 34
Random funkcija

VISER 35
Random funkcija

Math.floor(Math.random()*(max-min))+min;

Math.floor(Math.random()*(max-min+1))+min;
VISER 36
Date objekat
• Date objekat se koristi kada je potrebno primeniti određene
operacije u kojima se koriste vremenske promenljive
• Svaki datum koji se pojavi u okviru nekog JavaScript programa
pamti se kao broj koji predstavlja broj milisekundi između
dobijenog datuma i 1. januara 1970. godine u 0 sati, 0 minuta, 0
sekundi po UTC vremenu (Coordinated Universal Time)
• argument 5000 kreirati datum koji predstavlja 5s (5000
milisekundi) od 1. januara 1970. godine u 00:00:00 po UTC
• broj numeričkih argumenata je između 2 i 7
• prva dva predstavljaju godinu i mesec, i oni su opcioni
• vreme se definiše na osnovu lokalne mašine, a ne UTC ili GMT

VISER 37
Date objekat
• konstruktor Date() bez argumenata kreira objekat koji
predstavlja trenutno vreme i datum
• sa jednim numeričkim argumentom, on je datum u
milisekundama od 1.1.1970. u 00:00:00 (UTC)
• argument kao string predstavlja datum u formatu koji je
prihvatljiv za računar na kome se izvršava aplikacija
tačan format se dobija metodom Date.parse( )
dateObjectIme = new Date()
dateObjectIme = new Date("month day, year hours:minutes:seconds")

dateObjectIme = new Date(year, month, day)


dateObjectIme = new Date(year, month, day, hours, minutes, seconds)

VISER 38
Date objekat
• Konstruktor Date( ) se može pozivati i u obliku
funkcije, bez navođenja operatora new;
ignorišu se svi eventualni argumenti;
kao rezultat se vraća string prezentacija
trenutnog vremena i datuma
today = new Date()
rodjendan =
new Date("December 21, 1995 03:24:00")
rodjendan = new Date(95,12, 21)
rodjendan = new Date(95,12,21,3,24,0)

VISER 39
najvažnije metode za Date objekat
• Date.parse(datum) vraća broj milisekundi do
navedenog datuma po lokalnom vremenu
(od 1.1.1970. 00:00:00)
datum.setTime(Date.parse("Aug 9, 2015")
• Date.UTC(gg,mm,dd [,hh][,mh][,sec]) vraća broj ms
datum.setTime(Date.parse("Aug 9, 2015")
• datum.getDate() dan u mesecu (1-31) za navedeni datum
datum = new Date("December 19, 2011 23:15:00");

dan = datum.getDate()
VISER 40
metode za Date objekat

Date(2017,12,... je januar 2018


VISER 41
najvažnije metode za Date objekat
• datum.getHours() vraća sat za navedeni datum,
moguće vrednosti su brojevi u opsegu od 0 do 23
datum = new Date("December 25, 2015 23:15:00");

sati = datum.getHours()
• datum.getMinutes() vraća minute za navedeni datum,
moguće vrednosti su brojevi u opsegu od 0 do 59
datum = new Date("December 25, 2015 20:15:00");
minuti = datum.getMinutes()
• datum.getMonth() vraća mesec za navedeni datum (0-januar,
1-februar, 2-mart, ..., 10-novembar, 11-decembar
datum = new Date("December 25, 2015 20:15:00");
mesec = datum.getMonth()
VISER 42
najvažnije metode za Date objekat
• datum.getSeconds() vraća sekunde za navedeni datum,
moguće vrednosti su brojevi u opsegu od 0 do 59
datum = new Date("December 25, 2001 23:15:08");
sekunde = datum.getSeconds()

• datum.getTime() vraća vreme do navedenog datuma u


milisekundama (od 1.1.1970. 00:00:00)
datum = new Date("December 25, 2001 23:15:00");
proteklo = datum.getTime()
• datum.getTimezoneOffset() vraća razliku lokalnog vremena i
GMT u minutama
datum = new Date();
razlikaSati = datum.getTimezoneOffset()/60
VISER 43
najvažnije metode za Date objekat
• datum.getFullYear() vraća godinu iz navedenog datuma
datum = new Date();
godina = datum.getFullYear()

• datum.setDate(brojDana) postavlja dan u mesecu za


navedeni datum; argument je broj u opsegu od 1 do 31
datum = new Date("July 27, 1960 23:30:00");
datum.setDate(24)
• datum.setHours(brojSata) postavlja broj sati za navedeni datum;
argument je broj u opsegu od 0 do 23
datum = new Date("July 27, 1960 23:30:00");
datum.setHours(7)
VISER 44
najvažnije metode za Date objekat
• datum.setMinutes(brojMinuta) postavlja broj minuta za
navedeni datum; argument je broj u opsegu od 0 do 59
datum = new Date("July 27, 1960 23:30:00");
datum.setMinutes(35)

• datum.setMonth(brojMeseca) postavlja broj meseci za


navedeni datum; argument je broj u opsegu od 0 do 11
datum = new Date("July 27, 1960 23:30:00");
datum.setMonth(11)
• datum.setSeconds(brojSekundi) postavlja dan u mesecu za
navedeni datum; argument je broj u opsegu od 0 do 59
datum = new Date("July 27, 1960 23:30:00");
datum.setSeconds(35)
VISER 45
najvažnije metode za Date objekat
• datum.setTime(vreme) definiše novi datum; argument je broj milisecundi
od 1.1.1970. 00:00:00 do željenog datuma
datum.setTime(1009318500000)

• datum.setYear(brojGodine) postavlja godinu za navedeni datum ;


argument je broj u opsegu od 0 do 99 za godine koje počinju sa 19, za
ostale je 4 cifre
datum = new Date("July 27, 1960 23:30:00");
datum.setYear(2010)
• datum.toGMTString() vrši konverziju datuma u GMT string iz lokalne
vremenske zone
datum = new Date("December 25, 2001 23:15:00");
datum.toGMTString()
• datum.toLocaleString() vrši konverziju datuma u lokalni datum iz GMT
• datum.toLocaleString()
VISER 46
Formati podataka za vreme, Input
• ISO Date"2015-03-25" (The International Standard)
• Short Date "03/25/2015"
• Long Date "Mar 25 2015", "25 Mar 2015"
• Full Date "Wednesday March 25 2015"

VISER 47
Formati podataka za vreme, Output
• Nezavisno od ulaznog formata, JS po definiciji u punom
tekst string formatu ima izlaz na primer
Wed Mar 25 2015 01:00:00 GMT+0100
(Central Europe Standard Time)
• ISO 8601 je medjunarodni standard za predstavljanje
datuma i vremena
• ISO 8601 sintaksa (YYYY-MM-DD) je takodje poželjan
format u JavaScript
• var d = new Date("2015-03-25");
• Izračunati datum i vreme su relativni u odnosu na lokalnu
vremensku zonu
• U zavisnosti od vremenske zone, prethodni rezultat može da
varira izmedju March 24 i March 25
VISER 48
ISO Dates (Year and Month)
• ISO dates može da se piše i bez specificiranja dana
(YYYY-MM)
var d = new Date("2015-03");

• ISO dates (samo godina)


var d = new Date("2015");
datum i vreme su razdvojeni sa T;
• ISO dates može da se UTC vreme je definisano sa Z
piše sa dodatim satima, minutima, i sekundama
(YYYY-MM-DDTHH:MM:SSZ):
var d = new Date("2015-03-25T12:00:00Z");
VISER 49
ISO Dates (Year and Month)
• Ako se želi modifikacija relativnog vremena u
odnosu na UTC, eliminiši Z i dodaj
+HH:MM ili -HH:MM
var d = new Date("2015-03-25T12:00:00-06:30");
o UTC (Universal Time Coordinated) je isto što i
GMT (Greenwich Mean Time)

Izostavljanje T ili Z u datum-vreme stringu može da


prikaže različite rezultate u različitim pregledačima

VISER 50
Vremenske zone
• Kada se postavlja datum,
bez specifikacije vremenske zone,
JS će koristiti vremensku zonu pregledača
• Kada se uzima datum, bez specificiranja vremenske
zone, rezultat se konvertuje u vremensku zonu
pregledača
• Ako se datum/vreme prave u GMT (Greenwich
Mean Time), datum/vreme će biti konvertovani u
CDT (Central US Daylight Time)
ako su pregledači iz cenralnog dela US
VISER 51
Skraćene verzije datuma
• Skraćene verzije datuma su u formatu
"MM/DD/YYYY"
var d = new Date("03/25/2015");
• U nekim pregledačima, mesec ili dan koji nemaju
vodeću nulu mogu da uzrokuju grešku; tada je
"YYYY/MM/DD" nedefinisano; neki pregledači će
pokušati da otklone grešku, a neki će vratiti NaN
• var d = new Date("2015-3-25");
• var d = new Date("2015-03-25");
VISER 52
Skraćene verzije datuma
• "DD-MM-YYYY" je takodje nedefinisano;
neki pregledači će pokušati da otklone grešku,
a neki će vratiti NaN
• var d = new Date("25-03-2015");

VISER 53
Duže verzije datuma
• Duže verzije se češće pišu sa "MMM DD YYYY"
var d = new Date("Mar 25 2015");
• Mesec i dan mogu da budu po proizvoljnom redu
var d = new Date("25 Mar 2015");
• Mesec može da se napiše ceo, (January), ili skraćeno (Jan)
var d = new Date("January 25 2015");
var d = new Date("Jan 25 2015");
• Zarezi se ignorišu; imena su neosetljiva na velika-mala slova
var d = new Date("JANUARY, 25, 2015");

VISER 54
Puna verzija datuma
• JavaScript will accept date strings in "full JavaScript
format"
• var d = new Date("Wed Mar 25 2015 09:56:24 GMT+0100 (W. Europe Standard Time)");

• JS će ignorisati greške u datumu ili vremenu i ako je


vreme u zagradama
• var d = new Date("Fri Mar 25 2015 09:56:24 GMT+0100 (Tokyo Time)");

VISER 55
JavaScript Date metode
• Date metode omogućavaju da se preuzme i postavi vrednost za
datum i vreme (godina, mesec, dan, sat, minut, sekunda, ms)
• getDate() preuzima dan u mesecu kao broj (1-31)
• getDay() preuzima dan u nedelji kao broj (0-6)
• getFullYear() preuzima godinu sa 4 cifre (yyyy)
• getHours() preuzima sat (0-23)
• getMilliseconds() preuzima milisekunde (0-999)
• getMinutes() preuzima minute (0-59)
• getMonth() preuzima mesec (0-11)
• getSeconds() preuzima sekunde (0-59)
• getTime() preuzima vreme u ms od 1.1.1970.

VISER 56

You might also like