Svojstva i metode konstruktorske f-je Object()

Uvod

Object() je funkcija koja se može smatrati “majkom” svih objekata. Svi objekti u JavaScriptu su nastali od ove funkcije. Kreiranje objekata je moguće na više načina ali naredni način najbolje objašnjava vezu izmedju konstruktorske funkcije i objekta:

Konstruktorska funkcija ima brojne metode i dva svojstva: „Object.length“ (veoma čudno svojstvo koje uvek vraća 1) i „Object.prototype“

OBJAŠNJENJE:
Funkcije u javascriptu su „First class citizen“, stoga podržavaju sve operacije dostupne drugim tipovima. Izmedju ostalih tipova funkcije podržavaju i karakteristike objekata, pa stoga funkcije kao i objekti imaju svoja svojstva i metode. Jedno od najbitnijih karakteristika konstruktorske funkcije je svojstvo Object.prototype, preko koga konstruktorska funkcija prosledjuje osnovna svojstva i metede svim objektima u JavaScript-u.

Read more

JavaScript operatori

Šta su operatori

javascript

Pod operatorom se najčešće podrazumeva simbol koji se koristi kada želimo da izvršimo neku standardnu često korišćenu operaciju kao npr. dodeljivanje vrednosti, poredjenje vrednosti, aritmetičke operacije…
Operatori se mogu shvatiti kao specijalne funkcije koje su za razliku od „običnih funkcija“ pisane na „nestadardni način“. Operatori koriste tzv. „infix“ notaciju (naziv funkcije se stavlja izmedju dva parametra). Standardni operator prikazan sa „infix“ notacijom izgleda ovako:
... operator...
Na sledećem primeru se vidi da postoji suštinaska sličnost operatora sa funkcijom:

Najčešće su u pitanju binarni operatori (operatori koji uzimaju dve vrednosti kao ulaz), mada postoje i unarni operatori koji izvršavaju odredjene operacije samo na jednoj vrednosti:

Read more

Konverzija tipova u JavaScript-u

Uvod

javascript_konverzija

JavaScript je slabo (eng. loosely) tipiziran jezik, što znači da ne zahteva da se jasno deklarišete vrsta podataka pri deklarisanju promenjive. Kod JavaScript-a se tip promenjive implicitno deklariše sa pridruživanjem odredjene vrednosti datoj promenjivoj.
Javascript je takodje jezik dinamičkih tipova jer je moguća promena tipa u toku izvršenja programa. Rezultat konverzije je uvek neka primitivna vrednost, tj. ne postoji konverzija čiji je rezultat neka složena vrednost (kao što je objekat ili funkcija). Za razliku od JavaScript-a, TypeScript (JavaScript superset jezik) je „strongly typed“ jezik koji zahteva da se pri deklaraciji promenjive definiše tip i ne dozvoljava implicitno menjanje tipova.

Read more

Front-End alati (pregled)

Package manager

Uvod

frontend

Današnji web development se zasniva na skupu različitih tehnologija koje se istovremeno koriste na jednom projektu, kao što je: Typescript (jezik), Sass (CSS ekstenzija), JSCS (code style linter and formater), JSHint ili TSLint (alat za detekciju grešaka i potencijalnih problema), BrowserSync (alat za sihronizaciju promena u kodu i u browser-u – Live reload )… Za jedan projekat je potrebna instalacija svakog od navedenih programa ali i svih programa (dependencies) od kojih zavise isti a prethode njihovoj instalaciji.
Package manager eliminiše potrebu za ručnim instaliranjem softvera sa svim neophodnim pratećim softverom (dependencies) kao i za ažuriranje svih tih komponenti. Package manager je skup alata zaduženih da automatizuju procesa instaliranja, konfigurisanja i uklanjanja programa. Package manageri rade sa packages tj. sa softwerom ili podacima koji se nalaze u arhivnim fajlovima. Package sadrže meta-data koji opisuju dati softver kao što je naziv softvera, verzija i lista svih dependencies (drugi softver neophodan za rad datog sofvera). Najpoznatiji package menadžeri su:

  • npm
  • bower
  • JSPM (JavaScript Package Manager)
  • Yarn

Read more

Značenje operatora „this“ u JavaScript-u

Uvod

js this

Programeri koriste jedan od ova dva mehanizma:

  • leksički opseg vidljivosti
  • „this mehanizam“

Mehanizam koji koristi rezervisanu reč „this“ pruža elegantan način za implicitno „prosledjivanje“ reference na odredjeni objekat, što dovodi do čistijeg dizajna i olakšava višekratnu upotrebu koda. Programeri koji izbegavaju da koriste this mehanizam, uglavnom to rade zbog ne razumevanja principa rada tog mehanizma.

„This“ nije promenjiva već specijalana reč programskog jezika (operator) i predstavlja vezu koja ukazuje na neku referencu (objekat). Aktivira se tj. dobija značenje tek u trenutku kada se pozove (invoke) funkcija koja ga sadrži.

Ne zavisi od mesta gde je funkcija deklarisana, već isključivo od mesta i načina na koji je funkcija pozvana!

Pravila za odredjivanje značenja „this“

Ceo postupak odredjivanja značenja se zasniva na prepoznavanju „ko“ i na koji način poziva funkciju koja sadrži „this“. Redosled radnji je sledeći:

  1. Prvo se proverava da li je konstruktorska funkcija pozvana sa operatorom new(). Ukoliko jeste pozvana na ovaj način onda je vrednost „this“ objašnjena pod tačkom a) Pozivanje funkcije sa operatorom „new“ ali ako nije pozvana na ovaj način onda se vrši…
  2. … kontrola da li je funkcija pozvana uz pomoć metoda call(), apply() (ili bind). Ukoliko jeste pozvana na ovaj način onda je vrednost „this“ objašnjena pod tačkom b) Pozivanje sa call(), apply() ili bind(), ali ako nije pozvana na ovaj način onda se vrši …
  3. …kontrola da li je funkcija pozvana kao metoda objekta. Ukoliko jeste pozvana na ovje način onda je vrednost „this“ objašnjena pod tačkom c) Pozivanje metode objekta, ali ako nije pozvana na ovaj način onda je…
  4. podrazumevano povezivanje, koje je objašnjeno pod tačkom d) Podrazumevano povezivanje

Ukoliko je nekim slučajem korišćeno više različitih pravila, primenjuje se prioritet prema redosledu iz prethodno opisanog postupka.

Read more

Pregled objekata ugradjenih u JavaScript

Uvod

js this

U sklopu samog JavaScript-a postoje ugradjeni objekti sa svojim svojstvima i metodama, namenjeni da olakšaju programiranje.

  • Array
  • Math
  • Date
  • Function

Pored navedenih objekata postoje još i objekti čija imena su ista kao imena prostih primitiva (samo sa velikim početnim slovom):

  • String
  • Number

Ovi objekti sa „opremljeni“ metodama potrebnim za rad sa odgovarajućim tipom podataka i zamišljeni su da olakšaju rad sa primitivnim tipovima. Kada se pojavi potreba za operacijom nad takvim primitivnim tipom, kompajler automatski „obmotava“ prost tip u njegov „parnjak“ objekat nakon čega su dostupne sve metode ugradjenog objekta.

U ovom članku sam želeo da pregledno okupim na jednom mestu sve metode i svojstva objekata ugradjenih u javascript-u.

Read more

Instalacija alata za web development

Uvod

alati

Ovaj članak služi kao podsetnik jednom web programeru pri instaliranju svih neophodnih alata za rad na novom ili reinstaliranom kompjuteru. Taksativno je opisana instalacija alata koje lično koristim kao i neka njihova osnovna setovanja. Web development pokriva veliki broj različitih tehnologija i programskih jezika stoga je spisak potrebnih aplikacija takodje veliki.

Read more