Mnogu namerno izbegnuvam da ja kategoriziram javascript kako ili klient side ili server side jazik, posto samata tema nalaga da se gleda na ova od pogled na vrabotuvanje. Ako gi poglednes oglasite tuka kaj nas za junior back end developeri vo 90% od niv ke procitas nesto kako:
"Required strong skills in Angular.js, Strong skills in html, css, javascript i jquery".
Vo oglasi za front end pak, kaj sto site ovie vestini "prirodno" vleguvaat, ke procitass deka se bara poznavanje na rabota so bazi i so pomagala kako npm, webpack, gulp. Ke procitas deka e od "ogromen plus" poznavanje na back end frameworks kako node, express, rails, django itn.
Web developmentot denes ne moze taka ednostavno da se okategorizira kako dza ili bu, novite tehnologii kako angular i node vo zbir so masovnata upotreba na mikro servisi. sozdadoa golema fluidnost vo produkciskiot proces kade sto se izpomesaa i markup i bazi i bekend i apis itn.
Eden front end developer denes ne moze da si dozvoli da ne znae da povlece edno json api so xmlhttprequest.
(patem ovde stapuva na scena taa misticna asinhronost
)
Da sumiram, javascript e idninata na web developmentot, a ecmascript6 e idninata na javascript. Angular e premnogu baran vo enterprise zatoa sto odlicno se koordinira so site pobitni stakovi, node.js, asp.net, rails, spring boot, pa duri i django. Ako si pocetnik i se fokusiras na bilo sto drugo, si pucas u noga uste od start.
PS: vo ES5(starata js) tipovite na primitivi se fluidni i enginot pri interpretacija slobodno gi menuva bez tvoe explicitno ovlastuvanje. Ova se vika "type coercion" i e edna od poserioznite falinki vo starata js.
Js dozvoluva weak typing, ne e strog jazik kako java, i baska implicitno gi preopratuva primitivite bez tvoe znaenje, enginot ne ti dava syntax error tuku tivko preobratuva edno od niv vo zavisnost od toa kako ke mu tekne. Na primer:
ako odzemes string '5'- int 3 ti vrakja int 2
ali ako soberes string '5'+ int 3 ti vrakja string '53', tuka enginot ne e ni konzistenten od pogore
drug wtf moment, ako odzemes dva stringovi '5' - '4' ti vrakja int 1
kade ti e tuka konkatinacijata?
nesto kako 'dza' + + 'bu' ti vrakja 'dzaNaN'
'5' + - '2' ti vrakja '5-2'...
'5' + - + - - + - - + + - + - + - + - - - '-2' ti vrakja '52' (ovaa sintaksa e ok za js)
neka var x = 3; '5' - x + x ti vrakja int 50... itn itn, baska da ne ni pocnuvam za problemite na dvojnata ednakvost!
Znaci suma sumarum, tuka ne se raboti za nikakov hoisting, seto pogore e vo osnovniot window objekt i vo opstiot exec stack i mozes vednas da go testiras na inspect element => console.
A pojavata na strogi tipovi vo novata es6 e ogromno podobruvanje na ovoj haos!