JavaScript

Gjuha e ueb-it: nga butonat në shfletues te serverët me Node.js. · 38 terma

=== vs ==

Barazia e rreptë

Në JavaScript, === kontrollon nëse dy vlera janë të barabarta edhe në tip, ndërsa == përpiqet t'i kthejë në të njëjtin tip para krahasimit — gjë që sjell surpriza, si "5" == 5 → true. Përdor gjithmonë ===.

Angular

Angular-i është një framework i madh i Google-it për aplikacione ueb, i shkruar me TypeScript. Vjen me shumë gjëra të gatshme dhe rregulla të qarta, ndaj e përdorin shpesh kompanitë e mëdha dhe projektet afatgjata.

Arrow function (=>)

Funksion shigjetë

Funksioni shigjetë është një mënyrë më e shkurtër për të shkruar funksione në JavaScript, me simbolin =>. Përdoret shumë për funksione të vogla që i jep si argument, p.sh. te addEventListener.

Callback hell

Callback hell është kur callback-et futen brenda callback-eve aq shumë herë sa kodi bëhet një „piramidë“ e vështirë për t'u lexuar. Promise-t dhe async/await u krijuan pikërisht për ta zgjidhur këtë.

class (JavaScript)

Klasa në JavaScript

Klasat në JavaScript janë shabllone për të krijuar objekte me të njëjtat veti dhe metoda. constructor() vendos vlerat fillestare, dhe me new krijon objekte të reja nga klasa.

Closure

Closure-i është kur një funksion „mban mend“ variablat e vendit ku u krijua, edhe pasi ai vend ka mbaruar së ekzekutuari. Përdoret shumë për numërues, për të fshehur të dhëna dhe në callback-e.

Date

Data dhe ora në JavaScript

Objekti Date në JavaScript punon me data dhe orë: të jep datën e sotme, i krahason datat dhe i formaton. Kujdes: muajt numërohen nga 0, pra janari është muaji 0.

Destructuring

Shpërbërje

Destructuring është një mënyrë e shkurtër për t'i nxjerrë vlerat nga një objekt ose varg direkt në variabla, në një rresht të vetëm.

Event loop

Cikli i ngjarjeve

Event loop-i është mënyra si JavaScript-i, që bën vetëm një gjë njëherësh, arrin t'i përballojë klikimet, kohëmatësit dhe kërkesat në rrjet: punët që presin futen në radhë dhe ekzekutohen një nga një, sapo të mbarojë kodi aktual.

Express.js

Express-i është framework-u më i njohur për të ndërtuar backend me Node.js: me pak rreshta krijon një server që pret kërkesa dhe kthen faqe ose JSON — shpesh hapi i parë drejt ndërtimit të API-ve.

for...of & forEach

for...of dhe forEach() janë mënyrat më të thjeshta për të kaluar nëpër çdo element të një vargu në JavaScript, pa u marrë me indekse. for...in, ndërkaq, kalon nëpër çelësat e një objekti.

Hoisting

Ngritja (hoisting)

Hoisting është sjellja e JavaScript-it që i „ngre“ deklarimet e funksioneve dhe të variablave në krye të kodit para se ta ekzekutojë. Prandaj mund ta thërrasësh një funksion para se ta kesh shkruar — por me let/const s'mund ta përdorësh variablën para deklarimit.

innerHTML vs textContent

Të dyja e ndryshojnë përmbajtjen e një elementi: textContent e fut si tekst të thjeshtë, ndërsa innerHTML e lexon si HTML. Me tekst që vjen nga përdoruesit përdor gjithmonë textContent — innerHTML ua hap derën sulmeve XSS.

JavaScript

JavaScript-i është gjuha e programimit që i jep jetë faqes: reagon kur klikon një buton, ndryshon përmbajtjen pa e rifreskuar faqen, kontrollon formularët. Punon drejtpërdrejt në shfletues, e me Node.js mund të punojë edhe në server.

jQuery

jQuery-ja është një librari JavaScript shumë e vjetër dhe e famshme që e bënte më të lehtë punën me DOM-in dhe kërkesat në rrjet, me shenjën $. Sot JavaScript-i i ka vetë shumicën e këtyre aftësive, por do ta takosh ende në shumë faqe të vjetra.

JSON.parse & JSON.stringify

JSON.stringify() e kthen një objekt JavaScript në tekst JSON — p.sh. për ta dërguar te serveri ose për ta ruajtur në localStorage. JSON.parse() bën të kundërtën: e kthen tekstin JSON sërish në objekt.

let, const & var

Në JavaScript, variablat krijohen me let (vlera mund të ndryshojë), const (vlera s'ricaktohet) ose var (mënyra e vjetër, që sot shmanget). Rregulli i thjeshtë: përdor const kudo, dhe let vetëm kur vlera duhet të ndryshojë.

Map & Set

Map dhe Set janë struktura të dhënash në JavaScript: Map ruan çifte çelës–vlerë (si një objekt, por çelësi mund të jetë çfarëdo), Set ruan vlera unike pa dublikata.

map, filter & reduce

Metodat e vargjeve

map(), filter() dhe reduce() janë metodat më të përdorura të vargjeve në JavaScript: map e ndryshon çdo element, filter mban vetëm ata që plotësojnë një kusht, reduce i bashkon të gjithë në një vlerë (p.sh. shumën).

Math.random()

Math.random() jep një numër të rastësishëm mes 0 dhe 1. Bashkë me Math.floor() e përdor për të marrë një numër të plotë të rastësishëm — p.sh. për zare, lojëra ose për të zgjedhur një term të rastit.

Modules (import / export)

Modulet në JavaScript

Modulet të lejojnë ta ndash kodin JavaScript në shumë skedarë: me export e bën diçka të përdorshme jashtë skedarit, me import e merr në një skedar tjetër. Ky fjalor punon kështu: main.js importon views.js dhe data.js.

NaN (Not a Number)

NaN do të thotë „Not a Number“ — „nuk është numër“. E merr kur një llogaritje me numra dështon, p.sh. Number("abc") ose 0/0. Çudia: NaN s'është i barabartë as me veten, ndaj kontrollohet me Number.isNaN().

Next.js

Next.js-i është një framework mbi React-in për ndërtimin e faqeve të plota: të jep faqe me URL të vërteta, HTML të gatshëm për Google-in dhe backend në të njëjtin projekt. Është krijuar nga Vercel-i.

Node.js

Node.js e lejon JavaScript-in të punojë jashtë shfletuesit — në kompjuterin tënd ose në server. Me të ndërtohen backend-e, mjete për terminal dhe shumë më tepër.

Optional chaining (?.)

Optional chaining (?.) të lejon ta lexosh një vlerë thellë brenda një objekti pa u rrëzuar programi nëse një pjesë mungon — në vend të gabimit merr undefined. Me ?? cakton një vlerë rezervë.

Promise

Premtim

Promise-i në JavaScript është një objekt që përfaqëson një rezultat që do të vijë më vonë — ose me sukses, ose me gabim. Me .then() thua çfarë të bëhet kur të vijë rezultati.

querySelector()

document.querySelector() e gjen elementin e parë në faqe që përputhet me një përzgjedhës CSS — p.sh. "#titulli" ose ".butoni" — që ta lexosh ose ta ndryshosh me JavaScript. querySelectorAll() i gjen të gjithë.

setTimeout & setInterval

setTimeout() e ekzekuton një funksion një herë pasi kalon një kohë e caktuar, ndërsa setInterval() e ekzekuton përsëri e përsëri çdo disa milisekonda — p.sh. për një orë që lëviz ose një numërim mbrapsht.

Spread & rest (...)

Tri pikat ... në JavaScript e „hapin“ një varg ose objekt (spread) — p.sh. për ta kopjuar ose bashkuar — ose mbledhin shumë vlera në një (rest) te parametrat e funksionit.

Template literal

Tekst me shabllon

Template literal është një tekst në JavaScript i shkruar me shenjat ` (backticks), ku vlerat i fut direkt me ${ }. Është njësoj si f-string-u i Python-it.

Ternary operator (? :)

Operatori ternar

Operatori ternar është një if/else i shkurtër në një rresht: kushti ? vlera nëse po : vlera nëse jo. Ekziston në JavaScript, Java, C dhe shumë gjuhë të tjera.

this

Fjala this në JavaScript i referohet objektit që po e thërret funksionin. Brenda një metode të objektit, this është vetë objekti. Është ndër gjërat më ngatërruese për fillestarët, sepse vlera e tij varet nga mënyra si thirret funksioni.

try...catch

try...catch e kap një gabim në JavaScript që programi të mos rrëzohet: kodi i rrezikshëm futet te try, dhe nëse diçka shkon keq, ekzekutohet catch. Me throw mund ta krijosh vetë një gabim.

Type coercion

Konvertim automatik i tipit

Type coercion është kur JavaScript-i e ndryshon vetë tipin e një vlere pa ta kërkuar ti — p.sh. "5" + 1 jep "51" (tekst), por "5" - 1 jep 4 (numër). Është shkaku i shumë bug-eve të çuditshme.

typeof

typeof të tregon çfarë tipi ka një vlerë në JavaScript: "number", "string", "boolean", "object", "undefined"… Është i dobishëm kur bën debug ose kur kontrollon çfarë ke marrë nga një formular.

undefined vs null

Në JavaScript ka dy lloje „asgjëje“: undefined do të thotë që një variabël ekziston, por s'i është dhënë ende vlerë, ndërsa null është një „bosh“ që e vendos ti qëllimisht. Të dyja kontrollohen shpesh para se ta përdorësh një vlerë.

Vite (bundler)

Vite-i është mjeti më i njohur sot për të nisur dhe ndërtuar projekte frontend: hap një server zhvillimi që rifreskohet menjëherë kur ndryshon kodin, dhe në fund i paketon të gjithë skedarët në pak skedarë të vegjël e të shpejtë për publikim.

Vue.js

Vue-ja është një framework JavaScript për ndërtimin e ndërfaqeve, i njohur si i lehtë për fillestarët: e mban bashkë HTML-në, CSS-në dhe JavaScript-in e një komponenti në një skedar të vetëm.