Kur shkruani funksione, është e rëndësishme të njihni dallimet midis argumenteve dhe parametrave dhe përdorimet e duhura të të dyjave. Kur shikoni kodin ose shkruani kodin, pothuajse dukej sikur këto gjëra ishin e njëjta gjë dhe mund të përdoren në mënyrë të ndërsjellë, por definitivisht nuk është kështu. Këto dy gjëra janë shumë të ndryshme dhe funksionojnë shumë ndryshe kur bëhet fjalë për mënyrën se si sillet një funksion. Mendoj se do të ishte më e lehtë të shpjegosh se si funksionojnë parametrat së pari për shkak të mënyrës se si funksionojnë në një funksion; megjithëse nuk funksionojnë njësoj si një argument, mendoj se njohja se si funksionojnë parametrat mund t'ju ndihmojë të kuptoni pak më mirë argumentet.

Kur shkruajmë funksione shumë herë duam që ai funksion të marrë diçka, ta manipulojë atë dhe më pas të na e kthejë atë diçka. Tani kjo është një pikëpamje e nivelit të lartë se si funksionojnë funksionet, por merr pjesën më të madhe të thelbit. Kur shkruajmë ato funksione, diçkaështë në fakt një parametër! Pra, kur i themi funksionit, "hej merre këtë gjëdhe bëje këtë me të", ne duhet ta shkruajmë funksionin tonë në një mënyrë që do të sigurohemi që ai e di se "në rregull, unë do të ekzekutoj kodin brenda këtij funksioni me këtë gjë, të cilën duhet ta pres kur të thirret ky funksion”. Pra, si duket kjo? Kur përcaktojmë funksionin tonë, duhet t'i bëjmë të ditur kompjuterit se ai duhet të presë një parametër. Kjo do të dukej diçka si kjo:

function expectingParameter(parameter) {
  console.log(parameter)
}

Siç mund ta shihni, pasi të deklarojmë funksionin expectingParameter, duhet të përfshijmë një grup kllapash pas emrit të funksionit me emrin e parametrit tonë. Emri i parametrit nuk ka domosdoshmërisht rëndësi, megjithatë është më mirë ta mbani atë të lidhur me qëllimin e funksionit. Pra, siç mund ta shihni këtu emri i funksionit tonë quhet expectingParameter, kështu që e keni marrë me mend, parametri ynë quhet parametër! Pra, pasi ta bëjmë këtë, ne mund ta përdorim atë parametër brenda funksionit sipas dëshirës. Siç mund ta shihni, ne thjesht po regjistrojmë parametrin tonë në tastierë në këtë funksion. Është gjithashtu e rëndësishme të përmendim se edhe pse emri i parametrit tonë emërtohet parametër në këtë rast, ne me të vërtetë mund të vendosim çfarëdo ndryshoreje, objekti, vargu, grupi, etj. që dëshirojmë dhe ai do të vazhdojë dhe do ta regjistrojë atë në tastierë. Parametri është vetëm një emër për gjënë që do të vendosim në funksionin tonë. Funksionet janë gjithashtu mjaft të zgjuara për të qenë në gjendje të marrin disa parametra. Kur shkruajmë funksione më komplekse që duhet të përdorin dy, tre apo edhe katër variabla të ndryshëm, vargje, objekte, etj., ne mund të bëjmë më shumë parametra për funksionin tonë për të ndihmuar në plotësimin e këtyre nevojave. Kjo do të dukej diçka si kjo:

function whoAmI(name, city, state, school){
  console.log('Hey my is ${name} and I am from ${city}, ${state}, and went to ${school}')
}

Pra, siç mund ta shihni, në këtë funksion ne kemi 4 parametra të shumtë të deklaruar këtu, secili i përdorur brenda funksionit. Si mënjanë, është e rëndësishme të përpiqeni të bëni vetëm aq parametra sa ju nevojiten për një funksion në mënyrë që t'i mbani gjërat më të pastra në kodin tuaj. Në këtë funksion çdo parametër po përdoret për të konsoliduar regjistrin "Hej, emri im është 'emri' dhe unë jam nga 'qyteti' 'shteti' dhe shkova në 'shkollë'". Pasja e parametrave të shumtë mund të ndihmojë shumë kur përpiqeni të shkruani funksione që duhet të marrin shumë gjëra në mënyrë që të bëjnë diçka për ju.

Pra, me parametra jashtë rrugës, ne mund të flasim për argumentet dhe mënyrën se si funksionojnë ato. Sintaksa për argumentet duket e ngjashme me parametrat, por argumentet janë gjëra që priten. Për shembull, le të shohim këtë funksion këtu

argumentExample(argument)

Kur thërrasim funksione dhe nuk i deklarojmë ato, funksioni pret argumente. Pra, parametrat që caktuam tani janë në thelb argumentet që funksioni kërkon kur thirret. Mund të mos duket si një ndryshim i madh, por është e rëndësishme të dini pse janë të ndryshëm. Për shembull, metoda addEventListener kërkon 2 argumente në mënyrë që të funksionojë siç duhet, ngjarja që po dëgjon dhe funksioni që do të thirret me atë ngjarje dëgjohet. Më ndihmoi të lidhja parametrat me deklarimin e funksioneve dhe argumentet me funksionet thirrëse. Edhe pse të ndryshme në sjellje, këto dy gjëra janë ende të lidhura me njëra-tjetrën. Një funksion mund të marrë vetëm aq argumente sa edhe parametra të deklaruar brenda deklaratës së tij, kështu që nuk mund të shtoni aq argumente në një thirrje funksioni sa të dëshironi.