Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid...

297

Transcript of Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid...

Page 1: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.
Page 2: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta, Ceardlann Scileanna i bhForbairt Gréasáin, Baile Átha

Cliath, 2019

Page 3: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 3

Forbhreathnú ar an Lámhleabhar

Is é is cuspóir leis an lámhleabhar seo an t-eolas, na scileanna agus an mhuinín a theastaíonn

ó mhúinteoirí Chéim a hAon de chuid Ríomheolaíocht na hArdteistiméireachta a thabhairt dóibh

ionas go mbeidh siad in ann suíomhanna gréasáin agus feidhmchláir ghréasáin a dhearadh

agus a fhorbairt go neamhspleách.

Cé go mbeidh an lámhleabhar ina ábhar tacaíochta do mhúinteoirí a fhreastalaíonn ar an

gCeardlann ar Fhorbairt Feidhmchláir Ghréasáin atá mar chuid dár gclár forbartha gairmiúla

leanúnaí dhá bhliain, táthar ag súil go mbainfear an luach is mó uaidh cúpla mí i ndiaidh na

ceardlanna a chur i gcrích. Taobh amuigh de na ceardlanna seo, féadfar an lámhleabhar a

úsáid mar thagairt bhunúsach don fhorbairt gréasán, ach níos tábhachtaí ná sin, mar acmhainn

teagaisc a éascóidh múinteoirí a úsáideann foirm thógachaíoch den oideolaíocht i leith na

pleanála do theagasc agus foghlaim na forbartha gréasán i seomra ranga Ríomheolaíocht na

hArdteistiméireachta.

Roinneadh an lámhleabhar seo ina chúig chuid shonracha agus i dtrí cháipéis ar leith – Cuid A,

Cuid B agus Cuid C – agus iad san ord a thaispeántar thíos. Baineann an cháipéis seo le Cuid

B.

Cuid A

Rannán 1 – HTML

Rannán 2 – Stílbhileoga Cascáideacha

Rannán 3 – Dearadh UX

Cuid B

Rannán 4 – JavaScript

Cuid C

Rannán 5 – Bunachair Shonraí

Page 4: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 4

Rannán 4

JavaScript

Page 5: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 5

Clár Ábhar

Gnásanna 9

Réamhrá 10

Cúlra

JavaScript taoibh cliaint vs. JavaScript taoibh freastalaí

Amlíne stair JavaScript

Ár gCéad Ríomhchlár – Hello World

Comhréir Bhunúsach 17

Gnéithe JavaScript

Focail Choimeádta JavaScript

An Sreabhadh Rialúcháin

Cineálacha Sonraí agus Luachanna Litriúla 23

Bunchineálacha Sonraí

string

number

Boolean

null agus undefined

Cineálacha Sonraí ar Oibiachtaí iad

Oibiachtaí Ionsuite

Athróga agus Sannacháin 33

Athróga a Fhógairt (let vs. var)

Sannacháin

Tairisigh (const)

Athróga Neamhshainithe

Ilfhógairtí

Athróga Neamhfhógartha

Ionchur Úsáideora (prompt)

Cleachtaí Ríomhchlárúcháin

Page 6: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 6

Oibreoirí agus Sloinn Uimhríochta 46

Oibreoirí Uimhríochta

Oibreoirí Incrimintí agus Deicrimintí

Oibreoirí Sannacháin Cumaisc

An Oibiacht Uilíoch Matamaitice

Uimhreacha Randamacha

Tosaíocht Oibreoirí

Cleachtaí Ríomhchlárúcháin

Oibreoirí agus Sloinn Boole 59

Oibreoirí Comparáide

Cleachtaí

Oibreoirí Loighciúla

Cleachtaí

Ráitis Roghnaithe 72

An Ráiteas if

Cleachtaí

if-else

Cleachtaí

else if

Cleachtaí

Ráitis Neadaithe if

Ríomhchlár Samplach – An ceann is airde as 3 uimhir a aimsiú

An tOibreoir Trínártha

An Ráiteas switch

Cleachtaí Ríomhchlárúcháin

Ráitis Atrialla 101

An Lúb while

Cleachtaí

An Lúb do-while

Cleachtaí

An Lúb for

Cleachtaí

Page 7: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 7

Lúba Éigríochta

Na Ráitis break agus continue

Lúba Neadaithe

Cleachtaí Ríomhchlárúcháin

Teaghráin 130

Teaghrán a Innéacsú

Bun-Teaghráin vs. Teaghráin mar Oibiachtaí

Teaghráin a chur i gComparáid

Modhanna Teaghráin

Teaghráin a Thrasnú

Cleachtaí Ríomhchlárúcháin

Eagair 145

Ríomhchlár Samplach – gineadóir abairte

Gnéithe Eagair Mionathraithe

Fad Eagair

Modhanna Eagair

Próiseáil Eagair

Eagair a Chóipeáil

Eagair a Sheachadadh chuig Feidhmeanna

Cleachtaí Ríomhchlárúcháin

Feidhmeanna 164

Réamhrá – comhréir, sainmhíniú agus gairm

Paraiméadair agus Argóintí

Luachanna Aischurtha

Feidhmeanna Boole

Cód a imchochlú i bhFeidhmeanna

Cleachtaí Ríomhchlárúcháin

Gníomhaíocht ar Leithligh I 184

Foghlaim Ríomhchuidithe (CAL)

Riachtanais

Page 8: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 8

JavaScript Taoibh Cliaint 191

Réamhrá

Leathanaigh ghréasáin dhinimiciúla – roinnt samplaí

An Samhaltán Oibiachta Doiciméid (DOM)

An Comhéadan Feidhmchláir (API) DOM

Samplaí 1 – 5

Teagmhais

Sampla 1 – 4

Gníomhaíocht ar Leithligh II 212

Cluiche Tomhais an Uimhir

Córas Foghlama Ríomhchuidithe ar Líne (OCALS)

Réitigh Mholta ar Ghníomhaíochtaí ar Leithligh 220

Réiteach Molta ar Ghníomhaíocht ar Leithligh #1 (CAL)

Réiteach Molta ar Ghníomhaíocht ar Leithligh #2

Aguisíní 233

Eochairfhocail JavaScript

Oibreoirí Uimhríochta

Oibreoirí Sannacháin Cumaisc

Tosaíocht Oibreoirí

Oibreoirí Comparáide

Oibreoirí Loighciúla agus Táblaí Fírinne

Modhanna Eagair Coitianta

Modhanna Dáta Coitianta

Modhanna Matamaitice Coitianta

Modhanna Uimhris Coitianta

Modhanna Teaghráin Coitianta

Tagairtí

Page 9: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 9

Gnásanna

Chun cabhrú leat an lámhleabhar seo a léamh, úsáidtear na gnásanna seo a leanas:

✔ Baintear úsáid as cló iodálach chun focail agus frásaí nua tábhachtacha a shainmhínítear a

léiriú

✔ Baintear úsáid as an gcló Courier New chun cód Python a léiriú, mar shampla

eochairfhocail, orduithe agus ainmneacha athróg

Baintear úsáid as na deilbhíní thíos chun cineálacha éagsúla faisnéise a léiriú sa lámhleabhar

seo.

Spás do rannpháirtithe chun nótaí a bhreacadh síos agus chun

ceisteanna a fhreagairt le peann agus páipéar.

Pointe tábhachtach. Píosa sonrach faisnéise a bhaineann le gné éigin

den ríomhchlárú

Bain triail as. Deis chun an cód a athrú le feiceáil a dtarlóidh.

Cleachtaí ríomhchlárúcháin. Deis do dhaoine aonair/bheirteanna

scileanna ríomhchlárúcháin JavaScript a chleachtadh.

Gníomhaíochtaí ar Leithligh. Oibríonn rannpháirtithe i ngrúpaí ar

thascanna faoi théamaí éagsúla

Loga machnaimh. Spás do rannpháirtithe chun machnamh a

dhéanamh ar an bhfoghlaim agus a dtuairimí féin a bhreacadh síos.

Tá leideanna tábhachtacha le tabhairt do scoláirí atá

ag tosú amach ag foghlaim an ríomhchlárúcháin sna

boscaí mar seo.

Page 10: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 10

Réamhrá

Cúlra

Meastar gurb é JavaScript an phríomhtheanga ríomhchlárúcháin ar an ngréasán. Chomh maith

le HTML agus CSS, tá sé ar cheann de na trí theicneolaíocht bhunúsacha atá taobh thiar de

gach leathanach gréasáin agus suíomh gréasáin ar thug tú cuairt air riamh.

Bíonn HTML agus CSS freagrach as ábhar agus láithreoireacht leathanaigh ghréasáin faoi

seach – is é JavaScript a rialaíonn a gcuid iompair.

Taispeántar sa ghrafaic thuas na trí phríomhchineálacha comhad1 a chomhdhéanann gach

suíomh gréasáin. Coinnítear na comhaid sin ar ríomhairí speisialta ar a dtugtar freastalaithe

gréasáin. Is é an phríomhfheidhm atá ag freastalaí gréasáin ná na comhaid sin a chur (i.e. a

sheachadadh/a sheoladh) chuig cliaint (i.e. úsáideoirí deiridh) a iarrann iad, trína mbrabhsalaí

gréasáin, de ghnáth. Is brabhsálaithe iad Google Chrome, Firefox, Internet Explorer, Safari

agus Opera a bhfuil cur amach go forleathan orthu.

1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

fuaim, fís, grafaic, etc.) ach níl suim againn ach i gcomhaid HTML, CSS agus JavaScript sa phlé seo.

Page 11: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 11

POINTE TÁBHACHTACH: Tugtar suíomhanna gréasáin statacha ar

shuíomhanna gréasáin a chruthaítear le HTML agus le CSS mar gheall go

mbíonn an t-ábhar agus an láithreoireacht iontu mar an gcéanna i gcónaí. Is

féidir JavaScript a úsáid chun ábhar dinimiciúil agus láithreoireacht dhinimiciúil

a chur le suíomhanna gréasáin statacha.

Nuair a thugann úsáideoir cuairt ar shuíomh gréasáin – go hiondúil, trí sheoladh (URL) an

tsuímh sin a iontráil nó trí chliceáil ar nasc ar shuíomh éigin eile – déantar iarratas ó bhrabhsálaí

an úsáideora chuig freastalaí an tsuímh. Tugann an freastalaí freagra tríd an comhad nó na

comhaid a iarradh a chur ar ais chuig an mbrabhsálaí. Ag an bpointe seo, is áisiúil smaoineamh

ar bhrabhsálaithe gréasáin ní mar thairseacha trínar féidir leathanaigh ghréasáin a aimsiú agus

a thaispeáint agus sin amháin, ach mar ríomhchláir freisin, a léirmhíníonn agus a ritheann an

cód HTML, CSS agus JavaScript inar scríobhadh na leathanaigh sin.

POINTE TÁBHACHTACH: Brabhsálaithe gréasáin a ritheann HTML, CSS

agus JavaScript.

Is teangacha fógracha iad HTML agus CSS. Ciallaíonn sé sin go bhfógraíonn siad do

bhrabhsálaí céard atá le déanamh, seachas an chaoi lena dhéanamh. Mar shampla, fógraíonn

an chlib HTML <p> alt, fógraíonn an chlib <h1> ceannteideal Leibhéal 1 agus mar sin de. Ar an

tslí chéanna, fógraíonn CSS sraith rialacha a chinneann an chuma a bhíonn ar leathanach

gréasáin. Is teangacha beo iad HTML agus CSS araon – bíonn sonraíocht a gcuid comhréire

agus a gcuid gramadaí ag éabhlóidiú i gcónaí faoi rialú eagraíocht caighdeán idirnáisiúnta ar a

dtugtar Feadhnacht an Ghréasáin Dhomhanda nó W3C, mar ghiorrúchán2.

Ach is teanga ríomhchlárúcháin ordaitheach é JavaScript. Mar sin, tá gnéithe ann is féidir a

úsáid chun staid agus sreabhadh rialúcháin ríomhchláir a athrú (e.g. athróga, ráitis roghnaithe

agus lúba). Tá JavaScript bunaithe ar chaighdeán a shainíonn eagraíocht dar teideal European

Computer Manufacturer’s Association (ECMA)3.

Ba é an cuspóir a bhí ag JavaScript an chéad lá riamh ná bealach a sholáthar do lucht ceaptha

agus forbartha gréasáin chun iompar a leathanach gréasáin a rialú. Ach cód JavaScript a chur

2 Tá na caighdeáin mhaireachtála is déanaí le haghaidh HTML agus CSS le fáil ag

https://www.w3.org/TR/html52/ agus ag https://www.w3.org/TR/css-2018/ faoi seach. 3 Tá an leagan is déanaí de JavaScript (ECMAScript 2020) le fáil ag https://tc39.github.io/ecma262/

Page 12: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 12

ina gcuid leathanach, bhí lucht ceaptha agus forbartha in ann loighic a chur i bhfeidhm a bhí in

ann freagairt d’úsáideoirí éagsúla ar bhealaí éagsúla ag brath ar an gcomhthéacs. Mar

shampla, d’fhéadfaí cód JavaScript a úsáid chun sonraí neamhbhailí a bheadh á chur isteach

ag úsáideoir ar leathanach gréasáin a bhrath agus freagairt dó.

Go bunúsach, ba é JavaScript ba chúis le forbairt suíomhanna gréasáin lena bhféadfaidh

úsáideoirí idirghníomhú.

Page 13: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 13

JavaScript taoibh cliaint vs. JavaScript taoibh freastalaí

Ba theanga scriptithe taoibh cliaint a bhí in JavaScript ar feadh na mblianta. B’amhlaidh sin mar

gheall nárbh fhéidir ríomhchláir JavaScript a rith ach amháin ó laistigh de bhrabhsálaithe

gréasáin a bhí suite ar mheaisíní cliant. Mar gheall go bhféadfaí JavaScript a rith ar ghléasanna

cliant, b’éigean roinnt srianta slándála a neadú sa teanga. Bhain an ceann is suntasaí de na

srianta sin le rochtain a fháil ar chomhaid ar mheaisín an chliaint.

Smaoinigh air sin, ar feadh soicind – scríobhann forbróir gréasáin ríomhchlár JavaScript agus

cuireann san áireamh é mar chuid de leathanach gréasáin. Cuirtear an suíomh gréasáin ar fáil

mar shraith comhad ar fhreastalaí gréasáin. Ag pointe éigin, iarrann úsáideoir deiridh an

leathanach agus ritheann brabhsálaí an úsáideora sin (atá á rith ar ghléas cliaint an úsáideora)

an cód JavaScript. Mura mbeadh srianta neadaithe sa teanga, ní bheadh aon rud a chuirfeadh

cosc ar fhorbróirí gréasáin cód a scríobh a d’fhéadfadh, mar shampla, córas comhad iomlán an

chliaint a scriosadh! Ar an gcúis sin, níl cumais ionchuir/aschuir comhaid ar bith neadaithe in

JavaScript – ní ligtear dó comhaid a léamh ná a scríobh.

POINTE TÁBHACHTACH: Tagraíonn JavaScript taoibh cliaint do ríomhchláir

JavaScript a cheaptar lena rith laistigh de thimpeallacht brabhsálaí idirlín. Is

féidir sin a chur i gcomparáid le JavaScript taoibh freastalaí, a thagraíonn do

ríomhchláir JavaScript a ritear lasmuigh de thimpeallachtaí brabhsálaí.

Le blianta beaga anuas, tá athrú leanúnach tagtha ar theanga ríomhchlárúcháin JavaScript go

dtí teanga ilchuspóireach atá solúbtha agus cumhachtach agus is féidir a úsáid laistigh agus

lasmuigh de bhrabhsálaithe gréasáin. Tagraítear do chuir i bhfeidhm na teanga a cheaptar le

ríomhchláir a rith lasmuigh de thimpeallachtaí brabhsálaí gréasáin mar chuir i bhfeidhm taoibh

freastalaí. Is samplaí suntasacha, comhaimseartha de JavaScript taoibh freastalaí iad Node,

Rhino, V8, agus SpiderMonkey. Is féidir breathnú orthu sin go léir mar thimpeallachtaí aonair a

cheaptar chun feidhmchláir JavaScript aonair a rith (ar an tslí chéanna a ritear feidhmchlár ar

bith a scríobhtar i dteanga ríomhchlárúcháin ar bith eile).

Níl na srianta céanna ag cuir i bhfeidhm taoibh freastalaí de JavaScript agus atá ar thaobh an

chliaint. Dá bharr sin, féadfaidh gnéithe a bheith acu chun rochtain dhíreach a fháil ar chóras

comhaid agus ar acmhainní gréasáin an ríomhaire (chomh maith le go leor gnéithe eile nach

bhfuil tacaíocht acu, agus nach féidir tacaíocht a bheith acu, ó JavaScript taoibh cliaint).

Page 14: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 14

Dírítear ar JavaScript taoibh cliaint sa chuid seo den lámhleabhar.

Cogaí JavaScript agus Brabhsálaí

Ag tús ré an Ghréasáin Dhomhanda, chuaigh Netscape Navigator chun cinn ar Mosaic mar an

brabhsálaí gréasáin ba mhó a raibh tóir air. Cuideachta darbh ainm Netscape úinéir Netscape

Navigator.

Sa bhliain 1995, shocraigh Netscape cur le cumais a bhrabhsálaí trí léirmhínitheoir do theanga

scriptithe dar theideal LiveScript a chuimsiú ann. Brendan Eich a scríobh LiveScript agus an

príomhchuspóir a bhí aige ligean d’fhorbróirí gréasáin suíomhanna gréasáin idirghníomhacha a

chruthú. Athainmníodh LiveScript mar JavaScript go luath ina dhiaidh sin mar sheift

margaíochta chun leas a bhaint as ainm teanga ríomhchlárúcháin nua na linne, Java, a raibh

móréileamh uirthi i measc an phobail forbartha bogearraí ar fud an domhain.

Thart ar an am céanna a d’eisigh Microsoft Internet Explorer v1.0 agus go luath ina dhiaidh sin,

mar iarracht chun sciar den mhargadh a fháil, d’fhorbair sé a theanga scriptithe féin, ar ar

tugadh JScript (eisíodh ar dtús é in 1996 mar chuid de IE3.) Agus leis sin, cuireadh tús leis an

gcéad ‘chogadh brabhsálaithe’, mar a thugtar orthu.

Faoi 2002, bhí 95% den mhargadh brabhsálaí idirlín acu agus in 2004 thug Netscape a chód

brabhsálaí ar láimh d’eagraíocht nua ar ar tugadh Mozilla Foundation. Bhí deireadh leis an

gcéad chogadh brabhsálaithe ach bhí an dara ceann le tosú nuair a d’eisigh Mozilla Firefox v1.0

in 2004.

Téimis siar go 1997. Chuir Netscape JavaScript ar aghaidh chuig an European Computer

Manufacturers’ Association (ECMA) lena chaighdeánú. ECMAScript (nó ES, mar ghiorrúchán) a

tugadh ar an gcaighdeán sin. Eisíodh ES5 in 2009, an bhliain chéanna a ndeachaigh Google

isteach sa mhargadh brabhsálaí le Chrome. Thacaigh Chrome le HTML5 agus chloígh go mór

le ES5 – bhí rath air láithreach.

Ó 2009, braitheann an tóir a bhíonn ar bhrabhsálaithe go mór ar an méid a chloíonn siad leis an

gcaighdeán ES is déanaí. Cuireadh isteach ar cheannas Microsoft agus tháinig deireadh leis ar

deireadh mar gheall ar an tóir a tháinig ar Chrome in éineacht le Firefox de réir a chéile agus ar

bhrabhsálaithe eile amhail Opera agus Safari. Ghlac Chrome áit IE mar an ceannasaí margaidh

in 2012 agus is é an ceannasaí é ó shin i leith. Ó 2015, bhog straitéis bhrabhsálaí Microsoft

amach ó IE i dtreo a bhrabhsálaí nua, Microsoft Edge.

Faoi 2017, bhí 60% den sciar den mhargadh ag Chrome agus glacadh leis go forleathan go

raibh an dara cogadh brabhsálaithe críochnaithe.

Page 15: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 15

Amlíne stair JavaScript

Tugtar roinnt de na príomhchéimeanna i stair JavaScript thíos. Roimh JavaScript, ba é an

príomhchuspóir a bhíodh ag brabhsálaí ná leathanaigh statacha HTML a chur ar fáil agus a

rindreáil.

- 1989 Cumadh an WWW

- 1995 D’eisigh Netscape LiveScript

- 1995 Tugadh JavaScript mar ainm nua do LiveScript

- 1996 D’eisigh Microsoft JScript

- 1997 ES1 (ECMAScript v1.0 )

- 1998 ES2

- 1999 ES3

- 2009 ES5

- 2015 ES2015 (ES6)

- 2016 ES2016 (ES7)

- 2017 ES2017 (ES8)

- 2018 ES2018 (ES9)

- ES Next – téarma dinimiciúil a thagraíonn don chéad eisiúint eile de ECMAScript

Ó 1997 i leith tá an European Computer Manufacturers’ Association (ECMA) ag sainmhíniú an

chaighdeáin don teanga JavaScript. Is doiciméad (mór) é gach caighdeán, go bunúsach, ina

dtugtar tuairisc ar ghnéithe na teanga i.e. a comhréir agus a séimeantaic. Tógann cuideachtaí

brabhsálaithe an caighdeán sin agus cuireann a gcuid cur i bhfeidhm féin leis. Innill JavaScript a

thugtar ar na cuir i bhfeidhm sin. Ritheann na hinnill sin na ríomhchláir JavaScript a scríobhann

forbróirí gréasáin. Ní mór do ríomhchláraitheoirí JavaScript a bheith ar an eolas nach gá go

bhfeidhmeodh a gcód i ngach aon bhrabhsálaí. Tá sin amhlaidh mar gheall go ndéanann cuir i

bhfeidhm éagsúla de JavaScript gnéithe den chaighdeán a léirmhíniú ar bhealaí beagán

éagsúla – uaireanta déanann siad neamhaird de ghnéithe den chaighdeán agus uaireanta

cuireann siad a ngnéithe féin leis, gnéithe nach cuid den chaighdeán seo iad.

Tugtar thíos ainmneacha agus lógónna ó roinnt de na brabhsálaithe is mó tóir atá in úsáid sa lá

atá inniu ann:

Page 16: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 16

Ár gCéad Ríomhchlár – Hello World

De réir an traidisiúin a bhaineann le teanga ríomhchlárúcháin nua ar bith a fhoghlaim,

taispeánfaidh ár gcéad ríomhchlár JavaScript an téacs Hello World!

Tá na céimeanna thíos mar an gcéanna, a bheag nó a mhór, i gcás fhormhór na ríomhchlár

JavaScript a bheidh tú ag scríobh, mar sin déan nóta cúramach díobh. I ndiaidh tamall beag,

tiocfaidh siad chugat go nádúrtha.

Cruthaigh comhad leis an dá líne seo a leanas agus sábháil é mar hello.js

Nótaí:

● Is nóta tráchta í an chéad líne. Déanann an léirmhínitheoir JavaScript neamhaird de nótaí

tráchta. Scríobhann ríomhchláraitheoirí iad le go mbeidh sé níos éasca clár a léamh. In

JavaScript, tosaíonn línte nóta tráchta le //. Chomh luath agus a fheiceann sé slais

dhúbailte, déanfaidh JavaScript neamhaird den chuid eile den líne sin.

● Insíonn an dara líne do JavaScript an téacs Hello World! a thaispeáint ar an gconsól. Mar is

amhlaidh le gach teanga ríomhchlárúcháin, tá comhréir thar a bheith tábhachtach do

JavaScript. Míneoimid níos mó faoi rialacha comhréire de réir a chéile, ach faoi láthair is

tábhachtach a thuiscint nach mór duit an cód a chlóscríobh go díreach mar a thaispeántar é

sa liostáil thuas – cás na litreacha, an ponc, na lúibíní oscailte agus dúnta, na comharthaí

athfhriotail agus an leathstad ag deireadh an ráitis JavaScript san áireamh.

D’fhonn an ríomhchlár seo a rith, teastaíonn bealach éigin chun é a chur ar leathanach

gréasáin.

Cé gur féidir na ríomhchláir JavaScript a rith gan bhrabhsálaí gréasáin, rithfear gach ceann de

na ríomhchláir a úsáidfimid laistigh de bhrabhsálaí gréasáin, i.e. an brabhsálaí a rithfidh ár

Page 17: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 17

gcód. Ós rud é go bpléann brabhsálaithe le HTML, ciallaíonn sin nach mór dúinn bealach éigin

a bheith againn chun JavaScript a chur san áireamh in ár gcód HTML. Is é sin cuspóir na clibe

script.

POINTE TÁBHACHTACH: Is í an chlib script an bealach a insíonn HTML

do bhrabhsálaí go bhfuil cód JavaScript ann.

Tá dhá bhealach chun JavaScript a chur i ndoiciméad HTML – go hinmheánach, mar chuid den

HTML nó go seachtrach mar chomhad ar leith. Éilíonn an dá theicníc go n-úsáidfí an ghné

<script>.

Scríobhtar cód JavaScript a scríobhtar go hinmheánach go hinlíne i.e. is cuid den chód HTML é

agus feictear é idir clibeanna oscailte agus dúnta <script>. Coinnítear cód JavaScript a

scríobhtar go seachtrach i gcomhad ar leith (a ainmnítear leis an iarmhír .js, de réir cleachtais)

agus cuirtear sa leathanach HTML é le tréith src na clibe <script> mar a léirítear anseo.

<!DOCTYPE html>

<html lang="en">

<head>

<title>Hello!</title>

<meta charset="utf-8">

</head>

<body>

<!-- import JS file for this web page -->

<script src="hello.js"></script>

</body>

</html>

Déantar an cód JavaScript a shábháil i gcomhad seachtrach (ar leith) a ndéantar tagairt dó le

tréith src den chlib script.

Nuair a lódálaimid an leathanach seo isteach sa bhrabhsálaí déantar an teachtaireacht Hello

World! a thaispeáint ar chonsól an bhrabhsálaí. Bain úsáid as CTRL+SHIFT+I chun consól an

bhrabhsálaí a oscailt (oibríonn sé sin ar fhormhór na mbrabhsálaithe nua-aimseartha). Ba

cheart go bhfeicfeá rud éigin amhail ...

Page 18: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 18

Comhghairdeas – tá do chéad ríomhchlár JavaScript rite agat!

Page 19: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 19

Comhréir Bhunúsach

Caithfimid súil níos géire ar ár gcéad ríomhchlár JavaScript.

Nótaí

⮚ Tosaíonn línte nóta tráchta le //. Déantar neamhaird díobh fad a ritear an clár.

⮚ Baintear úsáid as console.log chun faisnéis a thaispeáint i gconsól an bhrabhsálaí.

⮚ Baintear úsáid as an leathstad chun deireadh a chur le ráitis JavaScript.

(Cé nach bhfuil sé éigeantach, meastar gur dea-chleachtas é leathstad a úsáid ag deireadh

gach ráitis.)

⮚ Tá JavaScript cásíogair. Ciallaíonn sé sin go bhfeiceann JavaScript na bloghanna cóid a

thaispeántar thíos mar bhlúiríní éagsúla. Bain triail astu – tá earráid chomhréire i ngach

blogh.

⮚ Déanann JavaScript neamhaird de spás bán agus an clár á rith. Tá línte bána i gceist leis

sin freisin.

⮚ Má thagann JavaScript ar fhocal (nó siombail) nach dtuigeann sé, taispeánfar earráid

chomhréire de ghnáth (ar chonsól an bhrabhsálaí de ghnáth).

⮚ Ní rithfidh ríomhchlár a bhfuil earráid chomhréire ann i gceart. Mar sin, má fheiceann

ríomhchláraitheoir (i.e. tusa!) earráid chomhréire, ba cheart í a cheartú láithreach.

Page 20: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 20

Bain triail as! Tuar céard a dhéanfaidh gach ceann de na bloghanna cóid seo a leanas.

Page 21: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 21

Gnéithe JavaScript

Sa rannán seo, tugaimid léargas ginearálta ar roinnt de phríomhghnéithe JavaScript.

Sainmhíníonn teanga JavaScript go leor gnéithe a dtugtar comhstruchtúir teanga orthu.

Athróga, cineálacha sonraí, oibreoirí agus feidhmeanna cuid de na hainmneacha ar roinnt de na

gnéithe is coitianta atá ag JavaScript. Tá comhstruchtúir le haghaidh roghnú (e.g. if, if-else

agus switch) agus atriall (e.g. while, do-while agus for) tábhachtach freisin. Scríobhtar

ríomhchláir JavaScript ach comhstruchtúir amhail na cinn siad a úsáid, in éineacht leis na

heochairfhocail a thaispeántar ar an gcéad leathanach eile.

Tá cineálacha sonraí ag athróga agus bunaítear a luachanna ar thoradh sloinn. Luachálann

inneall JavaScript na sloinn le linn an rite. Is féidir leo a bheith ina luachanna litriúla simplí (i.e.

luachanna cruachódaithe amhail uimhreacha e.g. -3, 0, 2.71828, teaghráin, e.g. “Hi Mum!"

nó ceann ar bith den dá luach Boole, true agus false). Féadfaidh sloinn a bheith ina gcinn

uimhríochta nó Boole freisin.

Baineann sloinn uimhríochtúla leis na hoibreoirí uimhríochta caighdeánacha a úsáid, amhail

suimiú (+), dealú (-), iolrú (*) agus roinnt (/) i measc cinn eile. Déantar iad ar luachanna

uimhriúla nó ar shloinn uimhríochta eile de ghnáth agus tugtar luach uimhriúil aonair mar

thoradh air sin, de ghnáth.

Ceaptar sloinn Boole leis na hoibreoirí comparáide e.g. cothrom le (==), cothrom le go cruinn

(===), níl cothrom le (!=), níl cothrom le go cruinn (!==), níos mó ná (>), níos mó ná nó

cothrom le (>=), níos lú ná (<=) agus níos lú ná nó cothrom le (<=). De ghnáth, luacháiltear

sloinn Boole mar true nó mar false. Is féidir iad a chur le chéile ina sloinn Boole níos mó

(níos cumhachtaí agus níos casta) trí na hoibreoirí loighciúla a úsáid i.e. NOT loighciúil (!),

AND loighciúil (&&), agus OR loighciúil (||).

Féadfaidh cineálacha sonraí iad féin a bheith simplí nó cumaisc. Is cineálacha sonraí simplí

JavaScript iad number, string, boolean, null agus undefined. Tugtar oibiachtaí freisin ar

chineálacha sonraí cumaisc. Sula dtosaíonn inneall JavaScript ar ríomhchlár a rith, cruthaíonn

sé oibiacht speisialta ar a dtugtar an oibiacht Uilíoch. Tá roinnt airíonna agus feidhmeanna

speisialta ag an oibiacht Uilíoch ar féidir le ríomhchlár JavaScript ar bith iad a úsáid. Na cinn is

suntasaí díobh sin ná Infinity, NaN, undefined, isFinite(), isNaN(), parseInt(),

Page 22: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 22

parseFloat(), String(), Number(), Math(), Boole(), Array(), Date() agus

Object().

Focail Choimeádta JavaScript

Ciallaíonn focal coimeádta focal a bhfuil ciall faoi leith aige in JavaScript. Tá comhréir agus

séimeantaic (brí) ghaolmhar ag gach focal agus déantar cur síos orthu sa tsonraíocht teanga.

Nuair a thagann an t-inneall JavaScript ar fhocal coimeádta i ríomhchlár, rialaítear a iompar ag

na rialacha a leagtar amach sa tsonraíocht.

Ba cheart do ríomhchláraitheoirí focail choimeádta a úsáid chun na críocha beartaithe agus sin

amháin. Go sonrach, ciallaíonn sin nár cheart focail choimeádta a úsáid riamh mar ainmneacha

d’athróga nó d’aitheantóirí (i.e. ainmneacha athróg agus feidhmeanna) i ríomhchlár JavaScript

ar bith. Cuid ollmhór de JavaScript (agus teanga ríomhchlárúcháin ar bith) a fhoghlaim is ea

eolas a chur ar an gciall atá leis na focail choimeádta ann. Míneofar comhréir agus séimeantaic

go leor d’fhocail choimeádta JavaScript agus tabharfar samplaí díobh sa chuid seo den

lámhleabhar.

Taispeántar an liosta iomlán d’fhocail choimeádta JavaScript sa tábla thíos.

await debugger false instanceo

f this void

break default finally let throw while

case delete for new true with

catch do functio

n null try yield

class else if return typeof

const export import super undefine

d

continu

e extends in switch var

Eochairfhocail ECMAScript 2018

Nótaí:

⮚ Cé nach focail choimeádta JavaScript i ndáiríre iad na focail true, false, let, null agus

undefined, is cóir caitheamh leo amhail gur fhocail choimeádta iad. I measc na bhfocal

eile sa chatagóir seo nach bhfuil sa liosta thuas tá boolean, byte, char, double, float,

long, agus short.

Page 23: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 23

⮚ Is cóir freisin smaoineamh ar athróga agus ar fheidhmeanna uilíocha amhail na cinn ar an

leathanach roimhe seo mar eochairfhocail, agus dá bharr sin, níor cheart iad a úsáid riamh

mar aitheantóirí ach an oiread.

An Sreabhadh Rialúcháin

Tagraíonn an sreabhadh rialúcháin don ord ina ritear línte ríomhchláir.

Cuir isteach an dá ríomhchlár seo a leanas (ceann amháin ag an am!) agus déan an t-aschur a

chóimheas.

An t-aschur ná …..

agus,

An t-aschur ná …..

Céard a thug tú faoi deara faoin aschur (i ndáil leis na ríomhchláir)?

POINTE TÁBHACHTACH: De ghnáth ritear línte cóid san ord céanna ina

bhfaightear iad i ríomhchlár. Tugtar próiseáil sheicheamhach air sin. Deirtear

go bhfuil an sreabhadh rialúcháin seicheamhach.

Feicfimid ar ball go bhfuil gnéithe (comhstruchtúir) sa teanga JavaScript a ligeann do

ríomhchláraitheoirí cód a scríobh a ritear ar bhealach neamh-sheicheamhach. Is péire de na

gnéithe sin iad roghnú agus atriall.

Page 24: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 24

⮚ Baineann ríomhchláraitheoirí úsáid as roghnú nuair is mian leo ceann amháin as cúpla bloc

cóid, b’fhéidir, a roghnú lena rith. Is iad na comhstruchtúir roghnaithe is coitianta iad na ráitis

if agus if-else.

⮚ Baineann ríomhchláraitheoirí úsáid as atriall (nó lúbadh) nuair is mian leo an bloc cóid

céanna a rith, níos mó ná uair amháin, b’fhéidir. Is iad na comhstruchtúir lúbtha is coitianta

na ráitisfor agus while.

Nóta faoi Eangú

Tagraíonn eangú don spás folamh/do na spásanna folmha ag tús líne cóid (ar a dtugtar

spás/spásanna tosaigh).

Difríocht mhór sa chomhréir idir JavaScript agus Python is ea nach bhfuil eangú tábhachtach do

JavaScript, ní hionann is Python. Tá na liostálacha thíos ceart ó thaobh na comhréire de.

Níl eangú tábhachtach do JavaScript. Is ionann na trí liostáil ó thaobh na séimeantaice de.

Ar mhaithe le soiléire, moltar an leibhéal céanna eangaithe a úsáid do bhloic chóid a bhfuil gaol

loighciúil eatarthu. Is é an réamhshocrú nár cheart do chód JavaScript a eangú ach amháin sa

chás go ndéanfadh eangú níos soléite é.

Is é an réamhshocrú nár cheart spásanna tosaigh ar bith a

bheith i gcód JavaScript

Tagraítear do línte cóid a théann le chéile i ríomhchlár mar bhloic chóid.

Page 25: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 25

Baineann JavaScript úsáid as lúibíní slabhracha chun bloic chóid a theormharcáil. Léiríonn an

lúibín slabhrach tosaigh (i.e. {) tús bloc cóid agus léiríonn an lúibín slabhrach deiridh (i.e. })

deireadh bloc cóid.

POINTE TÁBHACHTACH: Éilíonn comhréir JavaScript go mbeidh lúibín

slabhrach deiridh comhfhreagrach ag gach lúibín slabhrach tosaigh.

Page 26: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 26

Cineálacha Sonraí agus Luachanna Litriúla Is tábhachtach do ríomhchláraitheoirí a bheith ar an eolas faoi na cineálacha éagsúla sonraí

nach mór dá ríomhchláir déileáil leo. Chun na críocha sin, is gá na bunchineálacha a dtacaíonn

teanga leo a thuiscint. Tacaíonn JavaScript le bunchineálacha (simplí) agus le cineálacha

oibiachta (cumaisc). Tosaímis ag féachaint ar bhunchineálacha JavaScript.

Bunchineálacha Sonraí

Léirítear sa ghrafaic thíos na cúig bhunchineál coitianta de chuid JavaScript:

Bhunchineálacha JavaScript

Is luach litriúil é luach ar bith ar féidir leis a bheith go díreach i ríomhchlár. Uaireanta, tugtar

luachanna cruachódaithe ar luachanna litriúla. Tá cineál sonraí taobh thiar de luachanna litriúla,

díreach mar atá ag gach luach. Is ceart, mar sin, labhairt faoi luachanna litriúla uimhriúla nó faoi

luachanna litriúla teaghráin.

Pléifear bunchineálacha sonraí JavaScript agus na luachanna litriúla a ghabhann leo anois.

string

Baintear úsáid as an gcineál sonraí string (teaghrán) chun ionadaíocht a dhéanamh ar

luachanna litriúla teaghráin. Is éard atá i luach litriúil teaghráin sraith carachtar ar bith idir

comharthaí athfhriotail – bíodh siad singil nó dúbailte. Féadfaidh gnáthcharachtair aibítre,

carachtair uimhriúla agus siombail Unicode ar bith a bheith i luachanna litriúla teaghráin. Féach

ar https://unicode-table.com/en/#combining-diacritical-marks chun liosta iomlán de na siombailí

is féidir a úsáid i dteaghrán a fháil.

Léiríonn an cód seo a leanas luachanna litriúla teaghráin in úsáid:

Page 27: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 27

An cód is cúis leis an aschur seo a leanas a bheith á thaispeáint ar an gconsól:

Glacann JavaScript le formhór mór na gcarachtar

litriúil i luach litriúil teaghráin. Mar sin féin, chun líon

beag carachtair speisialta a thuiscint (e.g. táb,

comharthaí singile athfhriotail, cúlslais) éilíonn

JavaScript go n-úsáidtear seicheamh éalaithe.

Sainaithníonn an seicheamh éalaithe an carachtar

speisialta le JavaScript. Deirtear go bhfuil an

carachtar éalaithe.

Tugann an carachtar cúlslaise seicheamh éalaithe

isteach sa teaghrán.

Seicheamh

éalaithe Ciall

\n Líne nua

\t Táb

\’ Comhartha singil

athfhriotail

\” Comhartha

dúbailte athfhriotail

\\ Cúlslais

\uXXXX Carachtar Unicode

Carachtair seichimh éalaithe choitianta

POINTE TÁBHACHTACH: Baintear úsáid as seicheamh éalaithe chun carachtair

speisialta áirithe a shainaithint (carachtair spáis bháin nó carachtair nach féidir a

phriontáil de ghnáth) nach féidir iad a léiriú go litriúil mar chuid de theaghrán.

Bain triail as! Déan aschur gach ceann de na bloghanna cóid a thaispeántar thíos a thuar. Ansin taifead an t-aschur iarbhír. An raibh do chuid tuartha ceart?

Page 28: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 28

number

Baintear úsáid as an gcineál sonraí number (uimhreas) chun slánuimhreacha agus

deachúlacha (i.e. uimhreacha snámhphointe) a léiriú.

Is féidir na hoibreoirí aonártha + agus – a úsáid chun comhartha aon luacha litriúil uimhriúil (i.e.

dearfach nó diúltach) a léiriú. Ní féidir le camóga ná spásanna a bheith i luachanna litriúla

uimhriúla. Is samplaí de luachanna litriúla slánuimhreacha bhonn 10 iad −20, 0, 12345 agus 7.

Is féidir luachanna litriúla slánuimhreacha i gcórais uimhreacha seachas córais bhonn 10 a

shonrú le carachtair thosaigh speisialta (i.e. carachtair a chuirtear roimh an uimhir) a úsáid. Mar

shampla,

- Bíonn 0x (nó 0X) mar réimíreanna ag slánuimhreacha heicsidheachúla e.g. tá 0𝑥𝐹𝐹

deachúil.255

- Bíonn 0b nó 0B mar réimíreanna ag slánuimhreacha dénártha bhonn 2 nó e.g. tá

0𝑏11111111 deachúil.255

- Cé nach cuid den tsonraíocht teanga oifigiúil iad, tacaíonn go leor cuir i bhfeidhm le

slánuimhreacha ochtnártha trí 0 a úsáid mar an réimír e.g. tá 0777 deachúil.255

Caithfidh ar a laghad digit amháin agus pointe deachúlach nó E (nó e) a bheith i luach litriúil

snámhphointe. Mar shampla, is luachanna litriúla snámhphointe bailí go léir iad 10𝐸6 (i.e.

1,000,000), 3.14E-2 (i.e. 0.0314), -0.000123 agus 0.000123.

Déanann JavaScript dhá airí speisialta a bhaineann le huimhreas a shainmhíniú: Infinity

agus NaN. Pléifear iad sin go luath.

Boole

Is iad true agus false an dá luach litriúil boole de chuid JavaScript – ba cheart caitheamh

leis an dá cheann acu mar fhocail choimeádta.

Tacaíonn JavaScript le coincheap ar a dtugtar ‘truthy’ agus ‘falsey’ – tagraíonn siad sin do

shloinn ar bith a luacháiltear mar na luachanna litriúla, true agus false faoi seach.

Luacháiltear na luachanna seo a leanas go léir mar false (chomh maith le false é féin):

Page 29: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 29

− An uimhir nialas (0)

− Teaghrán folamh (“”)

− null

− undefined

− NaN

null agus undefined

Is dhá chineál éagsúla iad seo a roinneann an luach (folamh) céanna. Is luachanna ‘falsey’ an

dá cheann acu, ach tá difríochtaí caolchúiseacha eatarthu a mhínítear ach cur síos a dhéanamh

orthu:

- Baintear úsáid as null chun easpa (d’aon turas) luacha a thabhairt le fios

- Baintear úsáid as undefined chun easpa sainmhíniú luacha a thabhairt le fios Má tá

undefined mar luach ag athróg, ciallaíonn sin de ghnáth gur fógraíodh an athróg ach nach

bhfuil luach ar bith aici.

In JavaScript, deirtear go bhfuil dhá luach ar comhchéim má tá an luach céanna acu. Mar sin

féin, níl siad go hiomlán ar comhchéim ach amháin sa chás go bhfuil an luach céanna acu agus

gur den chineál céanna iad. Dá bharr sin, cé go bhfuil null agus undefined ar comhchéim (mar

gheall go bhfuil an luach céanna acu) níl siad go hiomlán ar comhchéim (mar gheall gur de chineálacha

difriúla iad). Is sampla foirfe de nádúr neamhghnách JavaScript é sin!

POINTE TÁBHACHTACH: Is teanga é JavaScript a chlóscríobhtar go dinimiciúil,

rud a chiallaíonn gur féidir athróga a úsáid, le linn a saolré, chun luachanna de

chineálacha sonraí bunúsacha difriúla a stóráil. Is féidir an t-oibreoir typeof a

úsáid chun iniúchadh a dhéanamh ar chineál athróige ag céim ar bith de

ríomhchlár JavaScript.

Page 30: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 30

Cineálacha Oibiachta (cineálacha cumaisc)

Is éard atá i ríomhchlárú atá bunaithe ar oibiachtaí (OOP) ná paraidím a bhaineann le

hoibiachtaí a chruthú agus a úsáid. Is cineál sonraí iad oibiachtaí a úsáideann

ríomhchláraitheoirí chun fíor-rudaí sa domhan (ar a dtugtar oibiachtaí) a léiriú. Mar gheall gur

féidir il-luachanna a bheith ag oibiachtaí, déantar tagairt dóibh mar chineál sonraí cumaisc. Is

féidir é sin a chur i gcomparáid leis na cineálacha simplí nó bunchineálacha atá díreach pléite

againn.

Is sampla é JavaScript de theanga atá bunaithe ar oibiachtaí, rud a chiallaíonn go bhfuil gnéithe

aige chun tacú le struchtúir sonraí oibiachtaí. Is féidir smaoineamh ar struchtúir sonraí oibiachtaí

mar léiriú ar dhuine, ar áit nó ar rud i bhfoirm ríomhchláraithe. Sa chiall sin, soláthraíonn OOP

bealach lenar féidir na ‘rudaí’ sin a shamhlú i ríomhchlár. Is féidir cur síos a dhéanamh ar na

hoibiachtaí sin trína n-airíonna (agus athróga á n-úsáid) agus a n-iompar agus a

bhfeidhmeanna á n-úsáid (tugtar modhanna air sin de ghnáth, maidir le OOP).

Ní dhéanfar plé sa lámhleabhar seo (ná i Ríomheolaíocht na hArdteistiméireachta) ar

JavaScript a úsáid chun oibiachtaí a chruthú ach is tábhachtach a thuiscint céard iad agus cén

chaoi is féidir iad a úsáid. Is leor a rá faoi láthair, sa chás go bhfuil oibiacht o againn a bhfuil airí

p aici, agus modh m, ansin is féidir an t-oibreoir poinc (ar a dtugtar ball freisin) a úsáid chun

rochtain a fháil ar an airí agus chun an modh a ghairm. An chomhréir le haghaidh sin ná o.p

agus o.m() faoi seach.

Sa léaráid thíos4 taispeántar an tslí a bhféadfaí fíor-rud sa domhan, amhail rothar, a léiriú (nó a

shamhaltú) mar oibiacht i ríomhchlár.

4 Foinse: https://docs.oracle.com/javase/tutorial/

Page 31: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 31

Oibiacht bhogearraí Rothar á shamhaltú mar oibiacht bhogearraí

Tá staid (i.e. airíonna) agus iompar ag oibiachtaí – léirítear staid mar athróga agus léirítear

iompar mar mhodhanna. Sa chás go roghnaíonn ríomhchláraitheoir OO rothar a shamhaltú mar

oibiacht, féadfaidh siad staid amhail luas, rithim agus giar a stóráil in athróga na hoibiachta;

agus féadfaidh siad cur síos a dhéanamh ar iompar an rothair ach modhanna amhail

luasghéaraigh, bris, athraigh giar, etc., a úsáid. (D’fhéadfadh siopa rothar ar líne feidhmchlár a

úsáid a chruthaíonn cásanna ama rite iolracha de na hoibiachtaí sin – ceann amháin le

haghaidh gach rothair faoi leith.)

Oibiachtaí ionsuite

Tá tacaíocht ionsuite ag JavaScript do thrí chineál oibiachtaí – oibiachtaí brabhsálaí, oibiachtaí

doiciméid agus oibiachtaí uilíocha. Mar gheall gur samhlacha iad na hoibiachtaí sin, is féidir

tagairt a dhéanamh dóibh mar an Samhaltán Oibiachta Brabhsálaí, an Samhaltán Oibiachta

Doiciméid agus an Samhaltán Oibiachta Uilíche (nó BOM, DOM agus GOM mar ghiorrúcháin ar

an leagan Béarla!).

Tá an Samhaltán Oibiachta Brabhsálaí comhdhéanta de shraith airíonna agus modhanna a

bhaineann leis an mbrabhsálaí ina ritear do ríomhchlár JavaScript. Baineann an dá mhodh –

alert agus prompt – a bheimid ag úsáid go fairsing sa lámhleabhar seo le samhail oibiachta

an bhrabhsálaí. Go deimhin, baineann console.log, atá in úsáid againn sna samplaí chun

faisnéis faoi chonsól an bhrabhsálaí a thaispeáint, leis an BOM.

Is gné de chuid JavaScript é an Samhaltán Oibiachta Doiciméid lenar féidir leathanaigh

ghréasáin/suíomhanna gréasáin idirghníomhacha a chur i gcrích. Is léiriú ama rite de

dhoiciméad nó leathanach gréasáin HTML é an DOM. Foráiltear leis amharc ríomhchláir ar an

gcód HTML taobh thiar de gach leathanach. Is féidir linn an DOM a úsáid chun inneachar agus

iompar leathanach gréasáin a athrú ‘ar eitleog’. Ciallaíonn sé sin gur féidir linn rud ar bith a

Page 32: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 32

bhaineann le hinneachar/cuma leathanaigh a athrú, a scriosadh nó cur leis, ó laistigh de

ríomhchlár JavaScript atá á rith. Is féidir é sin ar fad a dhéanamh a bhuíochas do DOM. Fillfimid

ar an DOM níos faide anonn sa lámhleabhar.

Tá sé tábhachtach go mbeifí ar an eolas faoin Samhaltán Oibiachta Uilíche, fiú an

ríomhchláraitheoir JavaScript gan mórán taithí. Is amhlaidh sin mar gheall go bhfuil roinnt

airíonna agus feidhmeanna áisiúla aici ar féidir úsáid a bhaint astu fiú sna ríomhchláir

JavaScript is simplí. Is féidir na hairíonna agus na modhanna seo a rangú faoi na fotheidil seo a

leanas faoin Samhaltán Oibiachta Uilíche

- airíonna uilíocha

- feidhmeanna cruthaitheoirí

uilíocha

- oibiachtaí ionsuite agus

- feidhmeanna uilíocha

POINTE TÁBHACHTACH: Nuair a thosaíonn an t-

inneall JavaScript den chéad uair, cruthaíonn sé ásc

aonair dá oibiacht uilíoch. Is féidir rochtain a fháil ar

airíonna agus feidhmeanna na hoibiachta seo ó áit ar

bith i ríomhchlár JavaScript trí athróg oibiachta

speisialta ar a dtugtar this.

Taispeántar roinnt de na gnéithe is coitianta a úsáidtear in Oibiacht Uilíoch JavaScript sa léaráid

chrainn thíos. Ina dhiaidh sin, tugtar breac-chuntas ar roinnt de na hairíonna agus feidhmeanna

sin.

Oibiachtaí uilíocha JavaScript

Page 33: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 33

Airíonna Uilíocha

Infinity

Go hinmheánach, léiríonn JavaScript uimhreacha (i.e. slánuimhreacha agus uimhreacha

deachúlacha) mar luachanna snámhphointe 64-ghiotáin. Is féidir luachanna slánuimhreacha ó

−253 suas go 253 a léiriú go cruinn. Maidir le huimhreacha deachúlacha, is é

±1.797693134862315𝐸308an raon.

Baintear úsáid as an luach Infinity chun luachanna uimhriúla a sháraíonn an t-uasmhéid

luaite a léiriú agus baintear úsáid as -Infinity chun luachanna uimhriúla atá níos lú ná an t-

íosmhéid féideartha a léiriú. Rud atá spéisiúil, má roinntear luach ar nialas faightear Infinity.

NaN

Léiríonn an luach NaN luach neamh-uimhriúil. Úsáidtear é in JavaScript lena chur in iúl nach

féidir luach a léiriú mar uimhir (i gcásanna ina gcaithfidh an luach a bheith ina uimhir, de

ghnáth). Mar shampla, má dhéanann tú iarracht slánuimhir a iolrú faoi luach litriúil teaghráin

éigin, is NaN a bheidh mar thoradh air sin.

Page 34: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 34

Cruthaitheoirí Uilíocha

Is feidhmeanna speisialta iad sin a chruthaíonn oibiachtaí, nuair a ghlaoitear orthu.

Is minic a úsáidtear cruthaitheoirí uilíocha chun bunchineálacha a chur in iúl mar oibiachtaí –

próiseas ar a dtugtar timfhilleadh. Mar shampla,

- Is feidhm cruthaitheora é String() ar féidir é a úsáid chun luachanna theaghrán

de chineál a chur in iúl

- Is feidhm cruthaitheora é Number() ar féidir é a úsáid chun luachanna uimhir de

chineál a chur in iúl

- Is feidhm cruthaitheora é Boolean() ar féidir é a úsáid chun luachanna Boole de

chineál a chur in iúl

Array() an t-ainm ar fheidhm cruthaitheora eile. Pléitear eagair (arrays) agus teaghráin

(strings) go mion in áit eile sa lámhleabhar seo.

Léiríonn an líne chóid seo a leanas an tslí ar féidir an luach litriúil uimhriúil 19.64738 a

thimfhilleadh ach Number() a úsáid.

Number(19.64738)

Ach an bunluach seo a thimfhilleadh agus an cruthaitheoir uilíoch do Number a úsáid, is féidir

lenár gcód leas a bhaint anois as feidhmeanna amhail toFixed agus toPrecision atá

ionsuite mar chuid den sainmhíniú ar an oibiacht Number.

Léirítear sin sa líne chóid seo a leanas a thaispeánann 19.64738 agus 4 dhigit shuntasacha á

n-úsáid i.e. 19.65.

console.log(Number(19.64738).toPrecision(4));

Breathnaíonn an cód níos casta ná mar atá sé i ndáiríre – ag am rite, ritear é i dtrí chéim mar

seo a leanas:

1. Number(19.64738)

Glaoitear an cruthaitheoir uilíoch do Number. Mar thoradh ar an nglao sin, cruthaítear

oibiacht Number don bhunluach 19.64738.

Page 35: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 35

2. Glaoitear an fheidhm toPrecision ar an oibiacht Number atá díreach cruthaithe. Is é

cuspóir an ghlao sa chód a thaispeántar anseo léiriú ar an uimhir a chruthú agus ceithre

dhigit shuntasacha á n-úsáid.

3. Taispeántar an toradh i.e. 19.65 agus console.log á úsáid.

Taispeántar ainmneacha agus cur síos gairid ar roinnt feidhmeanna Number eile (modhanna)

sa tábla thíos. (Tugtar liosta níos cuimsithí de mhodhanna don oibiacht Number san aguisín.)

Ainm an Mhodha Cur Síos

x.toExponential() Tugann léiriú teaghráin x i nodaireacht easpónantúil

19.64738.toExponential() 🡪 1.964738e+1

x.toFixed(len)

Tugann léiriú teaghráin x le digití len i ndiaidh an phointe

dheachúlaigh

19.64738.toFixed() 🡪 20

19.64738.toFixed(1) 🡪 19.6

19.64738.toFixed(2) 🡪 19.65

19.64738.toFixed(3) 🡪 19.647

x.toPrecision(len)

Tugann léiriú teaghráin x slánaithe go dtí digití suntasacha len

19.64738.toPrecision(0) 🡪 19.64738

19.64738.toPrecision(2) 🡪 20

19.64738.toPrecision(4) 🡪 19.65

19.64738.toPrecision(6) 🡪 19.6474

Úsáid choitianta amháin a bhaintear as Number() ná luachanna a thiontú ó chineálacha sonraí

éagsúla ina n-uimhreacha ar féidir a oibriú ach na feidhmeanna thuas a úsáid. Léirítear é sin

sna samplaí thíos

Number("123"); // aistrigh an luach litriúil teaghráin go 123

Number("1.23"); // 1.23

Number(true); // tugtar 1

Number(false); // tugtar 0

Ba cheart a thabhairt ar aird, sa chás nach féidir an luach a thiontú, tabharfar NaN

Number("Joe"); // NaN

Page 36: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 36

Feidhmeanna Uilíocha

isNaN agusisFinite

Taispeántar úsáidí samplacha de isNaN agus de isFinite taobh le taobh sa tábla thíos. Is

difríocht chaolchúiseach ach tábhachtach í. (Pléitear an dá fheidhm in áit eile sa doiciméad seo)

⮚ isNaN("fifty"); // fíor

⮚ isNaN("10"); // bréagach

⮚ isNaN(99); // bréagach

⮚ isNaN(NaN); // fíor

⮚ isFinite("fifty"); //

bréagach

⮚ isFinite("10"); // fíor

⮚ isFinite(99); // fíor

⮚ isFinite(NaN); // bréagach

isNaN IsFinite

parseInt agus parseFloat

De ghnáth, úsáidtear an dá fheidhm uilíocha seo chun teaghráin a thiontú ina slánuimhreacha

bhonn 10 agus ina n-uimhreacha snámhphointe faoi seach.

Taispeántar úsáidí samplacha den dá fheidhm taobh le taobh sa tábla thíos.

⮚ parseInt("111"); // 111

⮚ parseInt("111two"); // 111

⮚ parseInt("111",2); // 7

⮚ parseInt("4.7",10); // 4

⮚ parseInt("4.7"); // NaN

⮚ parseInt("Joe"); // NaN

⮚ parseInt(true); // NaN

⮚ parseFloat(0.0123E+2) // 1.23

⮚ parseFloat(123E-2) // 1.23

⮚ parseFloat("50.5") // 50.5

⮚ parseFloat("50point5") // 50

⮚ parseFloat(".5") // 0.5

⮚ parseFloat(fifty5) // NaN

⮚ parseFloat(false) // NaN

Page 37: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 37

parseInt parseFloat

Tabhair faoi deara gur féidir bonn (bonnuimhir) an luacha atá le parsáil a shonrú mar an dara

hargóint roghnach le parseInt. Dá bharr sin, tógann parseInt("111",2); "111" mar

uimhir bhonn 2 agus tugann 7 (coibhéiseach bhonn 10) mar thoradh.

Page 38: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 38

Athróga agus Sannacháin Is coinneálaí ionaid í athróg le haghaidh sonraí atá á n-úsáid ag ríomhchlár atá á rith.

Le linn an reatha, coinnítear sonraí ríomhchláir i láithreacha cuimhne sealadacha a ndéantar

tagairt dóibh le hainmneacha athróige. Is féidir smaoineamh ar ainmneacha athróige mar

láithreacha cuimhne.

Cruthaíonn ríomhchláraitheoirí athróga le gur féidir lena ríomhchláir sonraí a stóráil go

sealadach ar féidir iad a úsáid ag pointe eile i ríomhchlár. Tagraíonn scóip athróige do na

codanna sin de ríomhchlár inar féidir athróg a úsáid go dlisteanach. Is féidir le scóip athróige a

bheith áitiúil nó uilíoch, ag brath ar an tslí agus ar an áit a bhfógraítear í laistigh den ríomhchlár.

POINTE TÁBHACHTACH: Is éard is athróg ann ná comhstruchtúr ríomhchlárúcháin a úsáidtear chun sonraí a stóráil (is é sin, cuimhneamh ar shonraí).

Machnamh Déan roinnt sonraí/athróg a d’fhéadfadh a bheith de dhíth ó na córais sa liosta

thíos a shainaithint

Córas Sonraí a úsáidtear sa chóras/Athróga

Córas UMB UAP, rogha, uimhir chuntais, iarmhéid, méid á

iarraidh, dáta/am

Córas Díolphointe (Miondíol)

Córas Leabharlainne

Netflix

Snapchat

Spotify

An cluiche PlayStation is fearr leat

Page 39: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 39

Treoirlínte agus rialacha maidir le hathróga a ainmniú

Mar threoirlíne ghinearálta, ba cheart do ríomhchláraitheoirí ainmneacha atá simplí agus bríoch

a roghnú d’athróga. Nuair atá brí le hainm, insíonn sé dúinn céard chuige a n-úsáidtear an

athróg. Nuair a thugtar ainmneacha a bhfuil brí leo ar athróga, bíonn sé níos éasca do

ríomhchláraitheoirí eile an clár a léamh agus a thuiscint.

Agus ainm á roghnú d’athróg, d’fhéadfadh sé go gcabhródh sé leat dá smaoineofá ar

ainmfhocal a chuireann síos ar chuspóir na hathróige.

Ós rud é go scríobhtar ríomhchláir JavaScript agus an tsraith carachtar Unicode á n-úsáid, is

féidir carachtar ar bith a úsáid in ainm athróige. Tá na heisceachtaí seo a leanas i gceist:

⮚ Caithfidh an chéad charachtar in ainm athróige a bheith ina litir, ina fhostríoc (_), nó ina

chomhartha dollair ($). Is féidir le litreacha agus digití teacht ina dhiaidh sin.

⮚ Ní féidir spásanna, daiseanna ná poncanna a úsáid mar chuid d’ainm athróige.

⮚ Ní féidir le hainm athróige a bheith mar an gcéanna le ceann ar bith de na heochairfhocail

ná de na focail choimeádta de chuid JavaScript (e.g. if, else, function, etc.)

In JavaScript, meastar gur gnáthchleachtas é focail inmheánacha in ainmneacha ilfhoclacha a

dheighilt agus ceannlitreacha inmheánacha á n-úsáid e.g. firstName, highScore, agus

payRate. Meastar gur inghlactha freisin é fostríoc a úsáid chun focail ar leith atá scríofa i gcás

íochtair a dheighilt e.g. first_name, high_score agus pay_rate.

Is samplaí d’ainmneacha bailí (dlíthiúla) athróige iad seo a leanas: guess, _randomNum,

$userName, x_pos, höhe, agus x1.

Is samplaí d’ainmneacha neamhbhailí (neamhdhlíthiúla) athróige iad seo a leanas: 1x,

function, pay-rate, agus student.name

Má thagann inneall JavaScript ar ainm nach dtuigeann sé, taispeánfaidh sé earráid chomhréire

ar an gconsól.

Page 40: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 40

Athróga a Fhógairt

Is éard atá i gceist le hathróg a fhógairt ná athróg a thabhairt isteach i ríomhchlár den chéad

uair i.e. JavaScript a chur ar an eolas go bhfuil láthair stórála nua anseo le haghaidh sonraí.

Úsáidtear an t-eochairfhocal let chun athróg a fhógairt in JavaScript.

Léirítear sa bhlúirín cóid thíos an focal let á úsáid chun trí athróg a fhógairt – firstNumber,

secondNumber agus sum.

let firstNumber = 1;

let secondNumber = 2;

let sum = firstNumber + secondNumber;

console.log("%d + %d = %d", firstNumber, secondNumber, sum);

Is féidir athróga a fhógairt freisin agus an t-eochairfhocal var á úsáid ach ní mholtar sin a

dhéanamh, mar a fheicfimid go luath.

Léirítear sa bhlúirín thíos an tslí le hathróga a fhógairt agus var á úsáid. Tá an t-aschur a

thaispeántar díreach mar an gcéanna leis an méid sa bhlúirín roimhe.

var firstNumber = 1;

var secondNumber = 2;

var sum = firstNumber + secondNumber;

console.log("%d + %d = %d", firstNumber, secondNumber, sum);

Mar sin, is eochairfhocail JavaScript iad let agus var a úsáidtear chun athróga a fhógairt. (Is

eochairfhocal é const atá gaolmhar.)

Nuair a fhógraítear athróg den chéad uair moltar túsluach éigin a thabhairt dó. Déantar sin ach

ráiteas sannacháin a úsáid.

Page 41: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 41

Sannacháin

Tugtar sannachán ar an bpróiseas a bhaineann le luach athróige a shocrú. Deirimid go sanntar

luach d’athróg

Seo a leanas an ghnáthfhoirm a bhíonn ag ráiteas sannacháin

<variable-name> = <expression>;

Bíonn ainm na hathróige le feiceáil ar thaobh na láimhe clé agus bíonn slonn le feiceáil ar

thaobh na láimhe deise. Is é an tsiombail ‘=’ sa lár oibreoir sannacháin JavaScript.

POINTE TÁBHACHTACH: Cé go bhfuil na siombailí a úsáidtear chun oibreoir

sannacháin JavaScript agus cothromóid matamaitice a léiriú mar an gcéanna, níor

cheart iad a mheascadh mar go gciallaíonn siad dhá rud atá go hiomlán difriúil.

Cuireann ‘=’ oibreoir sannacháin in iúl. Nuair a thagann JavaScript ar ráiteas sannacháin,

luachálann sé an slonn ar thaobh na láimhe deise ar dtús. Déantar toradh an mheasúnaithe

sin a stóráil ansin san athróg a ainmnítear ar thaobh na láimhe clé.

Féadfaidh an slonn ar thaobh na láimhe deise a bheith ina mheascán de:

- luach litriúil amhail teaghrán (e.g. “Welcome”) nó uimhir (e.g. 7, 3.14)

- athróg(a) eile

- glao chuig feidhm a thugann luachanna a

- meascán ar bith de luachanna litriúla, athróga agus/nó feidhmeanna (i.e. slonn bailí

JavaScript ar bith)

Page 42: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 42

Úsáid a bhaint as let vs. var

Tá difríochtaí caolchúiseacha idir let agus var – is féidir dhá cheann de na difríochtaí sin a

mhíniú i dtéarmaí scóipe agus ardaithe.

Scóip

Nuair a fhógraítear athróg agus an t-eochairfhocal var á úsáid, beidh scóip uilíoch nó áitiúil aici

ag brath ar cibé ar fógraíodh í laistigh nó lasmuigh d’fheidhm. Ní bhíonn athróga a fhógraítear

laistigh d’fheidhm agus var á úsáid le feiceáil ach amháin laistigh den fheidhm sin; seachas sin

bíonn siad le feiceáil ag an script iomlán ina bhfógraítear iad.

Bíonn scóip níos cúinge ag athróg a fhógraítear agus an t-eochairfhocal let á úsáid. Is

amhlaidh sin mar gheall go gcoinnítear a scóip chuig an mbloc cóid ina bhfógraítear é.

(Cuimhnigh go n-úsáidtear lúibíní slabhracha chun tús agus deireadh bloic chóid JavaScript a

mharcáil.) Leis sin, tugtar i bhfad níos mó smachta do ríomhchláraitheoirí ar na codanna cóid

atá in ann a n-athróga ‘let’ a úsáid. Mar shampla, is féidir athróg ‘let’ a fhógairt le scóip nach

síníonn lasmuigh de lúb while nó de chorpán ráiteas if.

Ardú

Sula ritear script, déanann an brabhsálaí (mar chuid den phróiseas lena lódáiltear an

leathanach), an cód iomlán a scanadh le haghaidh na n-athróg a fhógraítear leis an

eochairfhocal var. Agus é sin á dhéanamh aige, déanann sé liosta de na hathróga ‘var’. Gach

uair a thagann an brabhsálaí ar athróg ‘var’ nua, cuireann sé leis an liosta seo í.

Mar gheall ar an gcéim réamhphróiseála sin, is eol don inneall JavaScript ainmneacha na n-

athróg ‘var’ go léir sula ritear ríomhchlár. Caitheann sé le hathróga ‘var’ ar nós gur fógraíodh

iad ag tús an ríomhchláir. An ghlanéifeacht leis an bhfeiniméan seo ar a dtugtar ardú ná go

bhféadfaidh athróga ‘var’ teacht aníos (áit ar bith) i script sula bhfógraítear iad.

POINTE TÁBHACHTACH: Is ionann athróg a fhógairt agus an t-eochairfhocal var

a úsáid áit ar bith sa chód agus é a fhógairt ag an tús. Ardú a thugtar air sin.

Déanann an t-inneall JavaScript an dá bhlúirín cóid seo a leanas a rith ar an mbealach céanna.

month = 1;

var month;

var month;

month = 1;

Page 43: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 43

console.log("The month is", month); console.log("The month is", month);

Tarlaíonn ardú athróige nuair a úsáidtear athróg sula bhfógraítear í.

Ní ardaíonn JavaScript athróga a fhógraítear leis an eochairfhocal let. Ní mór athróga den sórt

sin a fhógairt sula n-úsáidtear iad (rud críonna le déanamh ar aon nós!)

Mar shampla, tharlódh earráid mar thoradh ar an gcód seo a leanas (mar gheall nach

sainmhínítear month ar líne 3)

month = 1;

let month;

console.log("The month is", month); // Earráid

Léitheoireacht Bhreise

Féach ar https://www.geeksforgeeks.org/difference-between-var-and-let-in-javascript/ le

haghaidh tuilleadh eolais faoin difríocht idir let agus var.

Is féidir míniú ar an gcúis ar roghnaíodh an t-ainm "let" a fháil anseo.

https://stackoverflow.com/questions/37916940/why-was-the-name-let-chosen-for-block-scoped-

variable-declarations-in-javascri

POINTE TÁBHACHTACH: Deirtear go bhfuil athróg fógartha nuair a chuirtear in iúl

don ríomhchlár í. Moltar athróg a fhógairt leis an eochairfhocal let.

Page 44: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 44

Tairisigh

Tá an chomhréir chun tairiseach a fhógairt cosúil leis an gcomhréir chun athróg a fhógairt.

Úsáidtear an t-eochairfhocal const seachas let (nó var).

Mar shampla, fógraíonn an líne thíos tairiseach ar a dtugtar PI agus túsaíonn é chuig 3.14.

const PI = 3.14;

console.log("PI:", PI); //3.14

De réir na ngnáthghnásanna, cuireann go leor ríomhchláraitheoirí tairisigh in iúl trí litreacha cás

uachtair a úsáid (agus focail ar leith á ndeighilt ag fostríoc má tá níos mó ná focal amháin sa

tairiseach).

Ní mór do thairisigh a bheith túsaithe mar chuid dá bhfógairt. (Feicfimid go luath nach amhlaidh

atá an scéal maidir le hathróga.) Dá bharr sin, ghinfeadh an cód seo a leanas earráid.

const PI; // SyntaxError: Missing initializer in const declaration

Mar a bheifeá ag súil leis, ní féidir luach tairisigh a athrú i ndiaidh duit é a fhógairt.

Léirítear sin sa líne thíos ina ndéantar iarracht luach an tairisigh a fógraíodh cheana, PI, a

athrú.

PI = 3.14159; // TypeError: Assignment to constant variable.

Pointí eile faoi thairisigh is fiú a thabhairt ar aird:

- Is ionann na rialacha scóipe do thairisigh agus na cinn d’athróga ‘let’. Dá bharr sin, ní

ardaíonn aitheantóirí const chuig tús an bhloic (ní hionann agus aitheantóirí var).

- Ní féidir le hainm tairisigh a bheith mar an gcéanna le hainm athróige atá sainmhínithe

cheana laistigh den scóip chéanna.

Dá bharr sin, ghinfeadh an cód a thaispeántar thíos earráid, agus déarfadh: Identifier

'corkToDublin' has already been declared

let corkToDublin;

const corkToDublin = 258.5; // SyntaxError: …

console.log("Distance:", corkToDublin);

Page 45: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 45

Athróga Neamhshainithe

Ceann den iliomad difríochtaí caolchúiseacha idir JavaScript agus Python ná gur féidir athróga

in JavaScript a fhógairt gan túsú. (Éilíonn Python go ndéantar athróga a thúsú mar chuid dá

bhfógairt.)

Sa bhlúirín cóid a thaispeántar thíos, fógraítear athróg ar a dtugtar area gan aon túsú.

(D’fhéadfadh an t-aitheantóir a bheith cruthaithe ar an tslí chéanna trí var a úsáid in áit let)

let area;

console.log("The area is", area); // Tá area neamhshainithe

Nuair a tharlaíonn sin sannann JavaScript luach tosaithe undefined ar an athróg i gceist. (Is

athróg uilíoch in JavaScript éundefined.)

POINTE TÁBHACHTACH: Is éard atá in athróg undefined ná ceann a fógraíodh

ach nár sannadh luach uirthi (fós).

Féadfaidh athróga neamhshainithe a bheith ina bhfoinse fadhbanna agus mar sin meastar gur

droch-chleachtas iad. Mar shampla, má dhéanann tú iarracht uimhir a chur le luach

neamhshainithe – mar a léirítear sa bhlúirín cóid thíos – is NaN a bheidh mar thoradh air sin.

Seasann NaN do Not a Number agus is díol spéise é go bhfuil sé ar cheann eile d’athróga

uilíocha réamhshainithe JavaScript.

let count;

count = count+1;

console.log("Count:", count); // Count: NaN

Ar an gcúis sin, i measc cúiseanna eile, meastar go ginearálta gur droch-chleachtas

ríomhchlárúcháin é gan athróg a thúsú mar chuid dá luasmhoilliú.

Page 46: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 46

Ilfhógairtí

Is féidir athróga neamhshainithe a mheas mar inghlactha sa chás go bhfuil siad túsaithe le

cheile ag úsáid teicníc ar a dtugtar slabhrú sannacháin. Is féidir sannacháin a ‘shlabhrú’ le

chéile d’fhonn luach amháin a shannadh d’athróga éagsúla.

let x, y, z; // fógair 3 athróg (neamhshainithe)

x = y = z = 0;

console.log("x:", x, "y:", y, "z:", z); // x: 0 y: 0 z: 0

Léiríonn an cód seo a leanas an tslí le roinnt athróg a fhógairt agus a thúsú in aon ráiteas

amháin. Tabhair faoi deara go bhfuil luachanna h agus l araon neamhshainithe i ndiaidh na

línte a rith. (Meastar gur droch-chleachtas é sin!)

let length=10, breadth=15;

let l, b=20, w=10, h;

Is féidir athróg a fhógairt níos mó ná uair amháin le var freisin. Mar shampla, tá an bhlogh

chóid thíos (sampla breá eile den droch-chleachtas!) dlíthiúil. Mar sin féin, ní féidir sin a

dhéanamh le let – cúis mhaith eile le let a úsáid in áit var!

var distance;

console.log("Distance:", distance); // Fad: neamhshainithe

var distance=10;

console.log("Distance:", distance); // Fad: 10

POINTE TÁBHACHTACH: Trí let a úsáid, tugtar cosaint in aghaidh ilfhógairtí den

athróg chéanna sa bhloc cóid céanna.

Nuair atá ilathróga á dtúsú in aon ráiteas amháin, ní mór a bheith cúramach a chinntiú go

sainmhínítear na luachanna riachtanacha roimh ré. Mar shampla, tá an ráiteas let x=0,

y=x; dlíthiúil mar gheall go bhfaigheann x a luach sula ndéantar y a thúsú. Tá an líne, let x,

y=x; dlíthiúil freisin ach bíonn dhá athróg neamhshainithe mar thoradh uirthi – x agus y. Mar

sin féin, tarlaíonn earráid mar thoradh ar an líne let x=y=0; mar gheall nach bhfógraítear y.

Déantar an pointe sa chód thíos go gcaitear a bheith cúramach gan aon athróga a fhorscríobh

trí thimpiste i rith an túsaithe. (Déantar túsluach y a scriosadh!)

let y = 0;

let z = 1;

let x = y = z;

console.log("x:", x, "y:", y, "z:", z); // x: 1 y: 1 z: 1

Page 47: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 47

Athróga neamhfhógartha

Is éard is athróg neamhfhógartha ann, athróg a shainmhínítear le luach gan ceann ar bith de na

trí eochairfhocal seo a úsáid – let, var, nó const.

Mar shampla, déanann an cód seo a leanas inneachar athróige neamhfhógartha ar a dtugtar n

a shainmhíniú agus a thaispeáint.

n = 7;

console.log("The value of n is", n);

Cé go bhfuil an cód thuas dlíthiúil, ní mholtar é.

Cruthaíonn an t-inneall JavaScript rabhadh nuair a thagann sé ar athróga neamhfhógartha i

ríomhchlár. Is amhlaidh sin mar go bhféadfaidh iompar nach mbítear ag súil leis ón ríomhchlár

eascairt astu.

Page 48: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 48

Ionchur an Úsáideora

An bealach is fearr chun sonraí a ghabháil ón úsáideoir deiridh agus chun iad a chur i

ríomhchlár JavaScript ná an t-ordú prompt a úsáid. Is API brabhsálaí é prompt agus nuair a

ghlaoitear é, taispeánann sé fuinneog aníos ina bhfuil réimse iontrála ar féidir í a úsáid chun

sonraí a iontráil. Is sampla den úsáid sin an méid seo a leanas;

let favColour = prompt("Enter your favourite colour");

Mar thoradh ar an líne thuas, thiocfadh an scáileán a thaispeántar anseo aníos i mbrabhsálaí an

úsáideora. Taispeántar an teaghrán Enter your favourite colour ar an bhfuinneog aníos mar leid

don úsáideoir deiridh.

Má chliceálann an t-úsáideoir ar an gcnaipe OK tugtar an luach a iontrálann an t-úsáideoir mar

theaghrán agus sanntar é don athróg favColour. Tugann an leid null má chliceálann an t-

úsáideoir ar an gcnaipe Cancel (fiú má tá téacs sa réimse iontrála).

Tugann prompt pé luach a iontráiltear mar theaghrán. Ciallaíonn sin, sa chás go bhfuil tú ag

iarraidh sonraí uimhriúla a ghabháil go mbeidh ort iad a athrú i do ríomhchlár. Bealach coitianta

amháin leis sin a dhéanamh ná an glao ar leid a thimfhilleadh laistigh den oibiacht Number mar

a thaispeántar anseo.

let age = Number(prompt("Tell me your age"));

Sa chás seo, athraítear pé luach a iontrálann an t-úsáideoir ina uimhir agus stóráiltear é san

athróg age. Ciallaíonn sin gur féidir age a úsáid in oibríochtaí uimhríochta amhail dealú, mar a

thaispeántar thíos.

let age = prompt("Enter your age and I will tell you the year you were born");

let currentYear = new Date().getFullYear(); // Faigh an bhliain reatha, bbbb

console.log("You were born in", currentYear - age);

Page 49: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 49

Cuireann an úsáid a bhaintear as leid isteach ar an úsáideoir deiridh – déanfaimid scrúdú ar ball

ar an tslí le sonraí a ghabháil ó fhoirm ar leathanach gréasáin agus DOM á úsáid agus ar

láimhseáil imeachtaí, ach bainfimid úsáid as leid faoi láthair.

Page 50: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 50

Cleachtaí Ríomhchlárúcháin – Athróga

1. Scríobh líne chóid chun gach ceann de na nithe seo a leanas a dhéanamh:

a) athróg slánuimhreach ar a dtugtar result a fhógairt, í túsaithe go nialas

b) an luach 50 a shannadh ar an result

c) luach an result a thaispeáint

d) an luach 80 a shannadh ar an result

e) luach an result a thaispeáint

2. Scríobh líne chóid chun gach ceann de na nithe seo a leanas a dhéanamh:

a) athróg ar a dtugtar firstName a fhógairt, túsaithe chuig do chéad ainm féin.

b) athróg ar a dtugtar lastName a fhógairt, túsaithe chuig do shloinne féin.

c) inneachar na n-athróg a thaispeáint ar an gconsól aschuir.

3. Léigh an bloc cóid seo a leanas go cúramach agus freagair na ceisteanna:

let a=10;

let b=5;

let temp=a;

a=b;

b=temp;

a) Cá mhéad athróg atá ann? (Cé na hainmneacha atá orthu?)

b) Céard iad na túsluachanna atá acu?

c) Céard iad na luachanna atá ag a, b agus temp ag deireadh an ríomhchláir?

d) Mínigh – in aon abairt amháin – céard a dhéanann an ríomhchlár.

e) Cén chúis atá leis an athróg temp?

4. Liostaigh roinnt athróg a d’fhéadfaí a úsáid sna córais seo a leanas.

a) Córas UMB

b) Córas Áirithintí Aerlíne

c) Córas Iarratais Coláiste

d) Amazon/Facebook

e) Feidhmchlár Áireamháin

Page 51: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 51

Page 52: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 52

5. Déan cur síos ar an méid a cheapann tú a dhéanann an ríomhchlár.

colour = prompt ("Please enter your favourite colour")

console.log("Your favourite colour is", colour)

6. Cuir isteach an cód seo a leanas agus rith é. Céard a dhéanann sé?

firstName = prompt("What is your name?");

colour = prompt("What is your favourite colour?");

console.log("Hi", firstName, "Your favourite colour is", colour);

7. Mionathraigh an cód sa cheist roimhe seo le go n-iarrfaidh sé a shloinne chomh maith

lena chéad ainm ar an úsáideoir.

8. Críochnaigh é seo a leanas:

a) Scríobh líne chóid a iarrann ar úsáideoir cá mhéad deartháireacha atá aige. Stóráil an

luach a iontráiltear in athróg dar teideal brothers.

b) Anois scríobh líne chóid a iarrann ar úsáideoir cá mhéad deirfiúracha atá aige. Stóráil

an luach a iontráiltear in athróg dar teideal sisters.

c) Ar deireadh, scríobh líne a úsáideann na luachanna a iontráladh i gcodanna a) agus b)

chun teachtaireacht a thabhairt, ar nós, You have 2 brothers and 3 sisters

Page 53: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 53

Oibreoirí agus Sloinn Uimhríochta Sa rannóg seo, déanfaimid scrúdú ar na hoibríochtaí bailí do bhunchineálacha sonraí éagsúla.

Oibríochtaí Uimhríochta

Tacaíonn JavaScript leis na hoibríochtaí

uimhríochta dénártha bunúsacha, suimiú (+),

dealú (-), iolrú (*), roinnt (/), fuílleach (%, modal)

agus an ceann is déanaí (ó 2016)

easpónantúchán (**).

Oibríonn na hoibreoirí go léir le dhá oibreann, ar

féidir leo a bheith ina luachanna litriúla uimhriúla

nó ina n-athróga agus a luacháiltear iad mar aon

luach uimhriúil amháin.

Cuir isteach an cód seo a leanas agus déan a aschur a thaifeadadh.

JavaScript Aschur

let x = 2, y = 3; z=6;

console.log("Sum:", x, "+", y, "=", x+y);

console.log("Difference:", z, "-", y, "=", z-y);

console.log("Product:", y, "*", z, "=", y*z);

console.log("Quotient 1:", y, "/", z, "=", y/z);

console.log("Quotient 2:", z, "/", x, "=", z/x);

console.log("Remainder 1:", z, "%", x, "=", z%x);

console.log("Remainder 2:", x, "%", z, "=", x%z);

console.log("Divide into zero:", 0, "/", x, "=", 0/x);

console.log("Divide by zero:", x, "/", 0, "=", x/0);

console.log("Zero into zero:", 0, "/", 0, "=", 0/0);

console.log("Remainder and zero 1:", 0, "%", x, "=", 0%x);

console.log("Remainder and zero 2:", x, "%", 0, "=", x%0);

console.log("Remainder and zero 3:", 0, "%", 0, "=", 0%0);

console.log("Power 1:", x, "**", y, "=", x**y);

console.log("Power 2:", x, "**", -y, "=", x**-y);

Page 54: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 54

Oibreoirí Incrimintí agus Deicrimintí

Tacaíonn JavaScript le hoibreoirí incrimintí agus deicrimintí – is iad sin + + agus − − faoi

seach. Tá an dá oibreoir aonártha, rud a chiallaíonn nach dteastaíonn ach oibreann amháin

uathu. Cuireann incrimint aonártha ceann amháin lena oibreann agus dealaíonn deicrimint

aonártha ceann amháin. Caithfidh an oibreann a bheith ina hathróg sa dá chás (i.e. ní féidir léi a

bheith ina luach litriúil). Is amhlaidh sin mar gheall go stóráiltear an luach iarmhartach san

athróg.

Léiríonn an ríomhchlár thíos an úsáid a bhaintear as an oibreoir incriminte aonártha:

// Uimhríocht aonártha – incrimint agus

deicrimint

let x = 7;

let y = x;

console.log("x before post-increment", x); // 7

console.log("Post-increment:", x++); // 7

console.log("x after post-increment", x); //8

console.log("y before pre-increment", y); // 7

console.log("Pre-increment:", ++y); // 8

console.log("y after pre-increment", y); // 8

Cód JavaScript Aschur

POINTE TÁBHACHTACH: Má bhaintear úsáid as an oibreoir roimh an athróg (e.g.

++a) tugtar an luach nua i ndiaidh na hoibríochta. Tugtar nodaireacht réamhshuite

air sin.

Má úsáidtear an t-oibreoir i ndiaidh na hathróige (e.g. b--) tugtar luach na hathróige

sula ndéantar an oibríocht. Tugtar nodaireacht iarshuite air sin.

Bunaithe ar an méid thuas, cén t-aschur a chruthódh an cód seo a leanas, meas tú?

// Deicrimint aonártha

let a = 2;

console.log("a before post-decrement", a);

console.log("Post-decrement:", a--);

console.log("a after post-decrement", a);

console.log("Pre-decrement:", --a);

console.log("a after pre-decrement", a);

ASCHUR

Page 55: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 55

Page 56: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 56

Oibreoirí Sannacháin Cumaisc

Is féidir oibreoirí agus sannacháin uimhríochta a chur le chéile le hoibreoirí sannacháin cumaisc

JavaScript. Is comhstruchtúr comhréireach luathscríofa iad na hoibreoirí sin is féidir a úsáid

nuair a bhíonn luach athróige á athríomh maidir léi féin.

Is iad na hoibreoirí sannacháin cumaisc is coitianta +=, −=, ∗= agus /=. Léirítear sampla

simplí dá n-úsáid thíos.

let score = 100; Túsaigh athróg ar a dtugtar score go 100

score += 50; // 150 Cuir 50 le score – 150 an luach nua

score -= 10; // 140 Bain 10 ó score – 140 an luach nua

score /= 2; // 70 Roinn score ar 2 – 70 an luach nua

score *= 5; // 350 Iolraigh score faoi 5 – 350 an luach nua

POINTE TÁBHACHTACH: I sannachán cumaisc, déantar oibríocht ar athróg agus

sanntar an toradh don athróg chéanna sin.

Teastaíonn dhá oibreann chun sannachán cumaisc a dhéanamh – ní mór don oibreann chlé a

bheith ina hainm athróige agus ní mór don oibreann dheas a bheith ina slonn. Ansin cuirtear an

oibríocht i bhfeidhm ar an dá oibreann agus déantar an luach a bhíonn mar thoradh air sin a

stóráil san oibreann chlé.

Tugtar achoimre sa tábla thíos ar phríomh-oibreoirí sannacháin cumaisc JavaScript:

Page 57: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 57

Tiontuithe Cineáil

Is eol dúinn cheana féin go dtugann an t-oibreoir suimithe (+) suim dhá luach uimhriúla.

Oibríonn sin go maith nuair is number atá mar chineál sonraí an dá oibreann, mar a léirítear

sna samplaí anseo.

1 + 2 tugtar 3

1 + -2 tugtar -1 agus

1.234 + 4.321 tugtar 5.555

Ach céard a tharlaíonn nuair nach number atá i gcineál sonraí an dá oibreann nó ceachtar acu?

Féachaimis ar roinnt samplaí.

Slonn Toradh Nóta tráchta

"Joe" + "Blogs” "JoeBlogs" Má shuimítear dhá theaghrán, faightear teaghrán nua atá comhdhéanta den chéad teaghrán agus ansin an dara ceann. Tugtar comhchaitéiniú air sin.

1 + "Bloggs" "1Blogs" Má shuimítear luach uimhriúil agus teaghrán faightear teaghrán nua. Tiontaítear an luach uimhriúil ina theaghrán agus comhchaitéinítear an dá luach

1 + "2" "12" Arís, tiontaítear an chéad oibreann ina teaghrán.

1 + 2 + "Goals" "3Goals" Déantar an oibríocht ó chlé go deas.

1 + (2 + "Goals") "12Goals" Bíonn tosaíocht ag na lúibíní

POINTE TÁBHACHTACH: In JavaScript, ní dhéanfaidh an t-oibreoir + suimiú

uimhríochta ach amháin sa chás gur féidir an dá oibreann a thiontú ina luach

uimhriúil. Tugtar comhchaitéiniú teaghráin ar iompar uathoibríoch an oibreora +.

Maidir le gach oibríocht seachas suimiú (i.e. −, ∗, / etc.) déanfaidh JavaScript iarracht aon

oibreanna teaghráin a thiontú ina slánuimhreacha. (An chúis leis sin ná nach dtacaíonn

teaghráin leis na hoibríochtaí uimhríochta eile sin.) Léirítear sin sna sloinn seo a leanas:

⮚ Luacháiltear 10 - "2" go 8

⮚ Luacháiltear "10" * "50" go 500

Tugtar teaghráin uimhriúla ar na teaghráin a

léirítear anseo (mar gheall gur féidir iad a thiontú

ina n-uimhreacha). Deirtear gur intuigthe é an

Page 58: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 58

⮚ Luacháiltear "100" / 50 go 2 tiontú mar gheall go dtarlaíonn sé go

huathoibríoch.

Sa chás nach teaghrán uimhriúil é ceachtar den dá oibreann, tabharfaidh JavaScript an luach

NaN (Not a Number). Luacháiltear na sloinn thíos go léir go NaN.

⮚ "fifty" - "ten"

⮚ 5 * "hotel"

⮚ 99 / "true"

Is ‘cor’ uathúil de chuid JavaScript é NaN. Ní hamháin gur bunchineál é ach is luach freisin é. Ina

theannta sin, is luach é nach bhfuil cothrom leis féin (nó le luach ar bith eile)! Mar thoradh air

sin, tugann na frásaí seo a leanas go léir false

⮚ "fifty" == NaN // bréagach

⮚ "5" == NaN // bréagach

⮚ 5 == NaN // bréagach

⮚ NaN == NaN // bréagach

An rud a thugtar le tuiscint leis sin, nuair is mian linn a fháil amach cibé an uimhir é slonn, is

féidir linn é a chóimheas le NaN. Ach na bí buartha! Lena chinntiú cibé an uimhir é luach, tugann

JavaScript feidhm uilíoch ar a dtugtar isNaN. Tugann an fheidhm seo true sa chás nach

uimhir an argóint a sheachadtar chuige (i.e. nach féidir é a thiontú ina huimhir); false seachas

sin.

Bealach eile lena fháil amach an luach í uimhir ná an fheidhm uilíoch isFinite a úsáid.

Taispeántar úsáidí samplacha de isNaN agus de isFinite taobh le taobh sa tábla thíos. Is

difríocht chaolchúiseach ach tábhachtach í.

⮚ isNaN("fifty") // fíor

⮚ isNaN("10") // bréagach

⮚ isNaN(99) // bréagach

⮚ isFinite("fifty") // bréagach

⮚ isFinite("10") // fíor

⮚ isFinite(99) // fíor

Page 59: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 59

⮚ isNaN(NaN) // fíor ⮚ isFinite(NaN) // bréagach

isNaN isFinite

Uimhríocht agus Luachanna Boole

Nuair a úsáidtear luachanna Boole i slonn uimhríochtúil, tiontaíonn JavaScript true agus

false ina luachanna uimhriúla 1 agus 0 faoi seach. Léiríonn an sliocht thíos a ndéanann +

nuair is Boole é ceann amháin de na hoibreanna nó an dá oibreann. (Taispeántar aschur gach

líne sa nóta tráchta.)

console.log(true + 1); // 2

console.log(false + 1); // 1

console.log(true + false); // 1

console.log(true + "false"); // fíor/bréagach

Déanann dealú, méadú agus roinnt an rud céanna.

console.log(true - false); // 1

console.log(99 * true); // 99

console.log(true / 1); // 1

console.log(false / 1); // 0

console.log(true / false); // Éigríoch

Tabhair faoi deara sa sampla deireanach – is ionann roinnt ar false agus roinnt ar nialas. In

JavaScript, tugtar an luach Infinity i gcónaí mar thoradh ar roinnt ar nialas.

Page 60: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 60

An oibiacht uilíoch Matamaitice5

Is oibiacht uilíoch JavaScript é Math. Ciallaíonn sin go bhfuil sé ar fáil go huathoibríoch do gach

ríomhchlár JavaScript.

Déantar cur síos ar roinnt de na hoibríochtaí is coitianta a dtacaíonn Math leo sa tábla thíos.

Modh Cur Síos Samplaí Toradh

Math.round(x);

Tugann x slánaithe suas nó

síos go dtí an tslánuimhir is gaire

Math.round(9.7); 10

Math.round(9.3); 9

Math.ceil(x); Tugann an tslánuimhir is gaire atá níos mó ná nó cothrom le x

Math.ceil(9.7); 10

Math.ceil(9.3); 10

Math.floor(x);

Tugann an tslánuimhir is gaire atá níos lú ná nó cothrom le x

Math.floor(9.7); 9

Math.floor(9.3); 9

Math.pow(x, y); Tugann x ardaithe i

gcumhacht y.

Math.pow(2,5); 32

Math.pow(5,2); 25

Math.sqrt(x); Tugann fréamh chearnach dhearfach x

Math.sqrt(25); 5

Math.sqrt(-25); NaN

Math.cbrt(x); Tugann fréamh chiúbach x Math.cbrt(64); 4

Math.cbrt(-64); -4

Math.abs(x); Tugann luach uimhriúil x Math.abs(25); 25

Math.abs(-25); 25

Math.max(x, …)

Tugann an t-uasmhéid de liosta d’uimhir amháin nó níos mó

Math.max(1,-2,-1); 1

Math.min(x, …)

Tugann an t-íossmhéid de liosta d’uimhir amháin nó níos mó

Math.min(1,-2,-1); -2

Go ginearálta, tabharfaidh modh Math NaN sa chás gur neamhbhailí iad an argóint nó na

hargóintí a sholáthraítear.

Tacaíonn an oibiacht Math le roinnt tairiseach freisin. An ceann is suntasaí díobh sin ná

Math.PI a shainmhínítear mar 3.141592653589793.

5 Féach ar https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math chun

tuilleadh mionsonraí a fháil

Page 61: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 61

Page 62: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 62

Uimhreacha Randamacha

Tá feidhm ar a dtugtar random sa leabharlann Math freisin a thugann uimhir snámhphointe

shúdarandamach idir 0 (iniatach) agus 1 (eisiach).

POINTE TÁBHACHTACH: chun slánuimhir dhearfach randamach idir min agus

max iniatach a chruthú, bain úsáid as an líne chóid JavaScript seo a leanas.

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

Tugtar roinnt samplaí den úsáid a bhaintear as Math.random sa tábla thíos:

Sampla Cur Síos

Math.floor(Math.random() * 10); Tugann slánuimhir 𝑟 ionas go:

0 ≤ 𝑟 < 10

Math.floor(Math.random() * 11); Tugann slánuimhir 𝑟 ionas go:

0 ≤ 𝑟 ≤ 10

Math.floor(Math.random() * 10) + 1; Tugann slánuimhir 𝑟 ionas go:

1 <= 𝑟 ≤ 10

Scríobh ráiteas JavaScript chun uimhir randamach, r, a chruthú idir dhá

shlánuimhir, x agus y, ionas go:

(i) 𝑥 < 𝑟 < 𝑦

(ii) 𝑥 ≤ 𝑟 ≤ 𝑦

Tabhair breac-chuntas ar thrí chás ina bhféadfadh úsáid a bhaint as uimhreacha randamacha a bheith áisiúil.

1.

2.

3.

Page 63: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 63

Tosaíocht Oibreoirí

Tagraíonn tosaíocht oibreoirí don ord ina gcuirtear oibreoirí i bhfeidhm nuair a bhíonn slonn á

luacháil.

De ghnáth, déantar sloinn nach bhfuil ach cineál oibríochta amháin acu a luacháil ó chlé go

deas. Mar sin féin, nuair a bhíonn níos mó ná cineál oibríochta amháin i slonn, baineann

JavaScript úsáid as a rialacha tosaíochta chun an t-ord ina luachálfar an slonn a chinneadh.

Déanann na rialacha tosaíochta sin cur síos ar thábhacht choibhneasta na n-oibreoirí

JavaScript maidir lena chéile.

Léirítear thíos tosaíocht na n-oibreoirí JavaScript is coitianta a mbaintear úsáid astu6.

Nótaí:

1) Bíonn oibreoirí le tosaíocht níos airde le feiceáil níos airde sa tábla ná oibreoirí le tosaíocht

níos ísle. Sin an fáth a ndéantar Iolrú agus Roinnt roimh Shuimiú agus Dealú i gcónaí, sa

chás nach bhfuil lúibíní ann. Mar sin, 2 + 3 × 4 → 14 (agus ní 20) agus 10 − 8 ÷ 2 + 3 → 9

(agus ní 4).

2) Bíonn an leibhéal céanna tosaíochta ag oibreoirí a bhíonn ar an ró céanna. De ghnáth,

luacháiltear na hoibreoirí sin ó chlé go deas. Mar shampla, tá an leibhéal céanna tosaíochta

6 Chun tagairt níos iomláine ar thosaíocht oibreoirí a fháil, téigh chuig:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

Page 64: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 64

ag Iolrú agus ag Roinnt. Mar sin, 8 × 4 ÷ 2 → 16 cé go, 8 ÷ 4 × 2 → 4. Ar an gcaoi chéanna,

8 + 4 − 2 → 10 agus 8 − 4 + 2 → 6

3) Déantar na hoibreoirí ar na línte i gcló trom a luacháil ó dheas go clé. Mar shampla, 2 ∗∗ 3 ∗∗

2 → 512 (i.e. 29 agus ní 82 mar a mbeifeá ag súil leis). Tabhair faoi deara freisin go

ndéantar sannacháin a luacháil ó dheas go clé. Míníonn sin an fáth a ndéantar an slonn ar

thaobh na láimhe deise d’oibreoir sannacháin a luacháil ar dtús (i.e. sula sanntar an toradh).

4) Mar fhocal scoir, is fiú a thabhairt ar aird, cé go ndéantar grúpáil (i.e. lúibíní), bíonn an

leibhéal céanna tosaíochta, atá níos airde ná leibhéal na n-oibreoirí go léir a dtaispeántar,

ag an oibreoir new, an t-oibreoir poinc (ar a dtugtar an t-oibreoir baill freisin mar gheall go n-

úsáidtear é chun rochtain a fháil ar airíonna oibiachtaí agus chun a modhanna a ghairm)

agus ag glaonna feidhme – nach dtaispeántar ceann ar bith díobh sa tábla tosaíochta ar an

leathanach roimhe seo.

5) Is ag lúibíní atá an leibhéal is airde tosaíochta maidir le sloinn JavaScript a mheas. Mar sin,

déanfar slonn idir lúibíní a luacháil ar dtús i gcónaí. Mar shampla, (2 + 3) × 4 → 20

Úsáid an spás thíos chun aon phointí suntasacha i ndáil le tosaíocht oibreoirí a scríobh.

Page 65: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 65

Cleachtaí Ríomhchlárúcháin (Oibreoirí Uimhríochta)

Bain triail as an méid seo a leanas.

1. Ó tharla go bhfuil x==2, agus y==6 céard chuige a luacháiltear na sloinn JavaScript thíos?

a) x+y

b) x-y

c) 5*y

d) 5*x+y

e) 3*(x+y)

f) x*y+4

g) y/x+1

h) y/x+y

i) (x*y)+(y/x)

j) y%x

2. Scríobh sloinn JavaScript chun gach ceann de na línte seo a leanas a luacháil:

a) 74 iolraithe faoina 64

b) 81 roinnte ar 10

c) 100 roinnte ar 81

d) 25𝜋

e) (7 − 1) ÷ (4 − 2)

f) 10 𝑥 50

5

g) 10 × 50

5

h) 72

i) √7

j) 2√7

I ngach cás, chomh luath agus a bheidh do shlonn scríofa, ba cheart duit é a úsáid i ráiteas

sannacháin chun do fhreagra a stóráil in athróg a ainmnítear go cuí agus ansin luach na

hathróige sin a thaispeáint i dteachtaireacht bhríoch ar an gconsól. Mar sin, mar shampla,

an freagra a bheadh ar 1 móide 2 ná:

let ans = 1 + 2;

console.log("1+2=", ans);

3. Scríobh líne chóid a shuimíonn na huimhreacha 62 agus 47 agus a thaispeánann an toradh.

4. Scríobh cód chun an méid seo a leanas a dhéanamh:

a) na huimhreacha 62 agus 47 a shuimiú agus an freagra a stóráil in athróg

b) inneachar na hathróige a thaispeáint

Page 66: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 66

5. Ríomhtar meán uimhríochtúil an dá uimhir trí bhíthin iad a shuimiú agus an toradh a roinnt

ar 2. Scríobh cód chun meán uimhríochtúil 62 agus 47 a ríomh agus a thaispeáint.

6. Agus an bhlogh chóid seo a leanas agat a thúsaíonn trí athróg – x, y agus z – scríobh líne

chóid a ríomhann agus a thaispeánann a meán uimhríochtúil.

let x=27;

let y=15;

let z=18;

7. Déan aschur an chóid seo a leanas a thuar:

let x=3*4;

let y=10/2;

let z=6-1;

let sum=x+y+z;

console.log(x, y, z, sum);

8. Céard atá mícheart leis an méid seo a leanas (má tá aon rud mícheart leis)? (Tabhair

freagra líne ar líne.)

a) let x=1+2;

b) let 3=1+2;

c) let 10/2=5;

d) let sum=a+b+c;

e) let sum=ab+c;

k) let a=8*(-2);

l) let b=(8)(2);

m) let c=8*(+2);

n) let c=4*a;

o) let c=4a;

9. Is féidir achar dronuilleoige a ríomh trína leithead a iolrú faoina hairde. Agus an dá líne

chóid seo a leanas agat chun na hathróga width agus height a thúsú, scríobh an tríú líne

chun achar na dronuilleoige a ríomh agus a thaispeáint.

let width=7;

let height=5;

10. Is féidir imlíne dronuilleoige a ríomh trí dhá oiread an width a shuimiú le dhá oiread an

height. Agus an dá líne chóid seo a leanas agat chun an dá athróg seo a thúsú, scríobh

an tríú líne chun imlíne na dronuilleoige a ríomh agus a thaispeáint.

let width=7;

let height=5;

Page 67: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 67

Agus an fhoirmle seo a leanas agat chun Fahrenheit (𝑓) a athrú go Ceinteagrád (𝑐) scríobh

ríomhchlár chun 100℉ a athrú go ℃ agus chun an toradh a thaispeáint.

𝑐 = (𝑓 − 32) ×5

9

11. Anois déan mionathrú ar an ríomhchlár atá díreach scríofa agat chun leid a thabhairt don

úsáideoir luach Celsius ar bith a iontráil agus an luach coibhéiseach a thabhairt in

Fahrenheit.

12. Léigh an cód seo a leanas go cúramach (ina centanna atá na luachanna) agus freagair na

ceisteanna a leanann é:

let fifties=4;

let twenties=5;

let tens =7;

let total=fifties*.5 + twenties*.2 +tens*.1;

console.log(total);

a) Cá mhéad athróg an úsáideann an ríomhchlár?

b) Cén chúis atá le gach athróg?

c) Céard a dhéanann an cód?

13. Déan mionathrú ar an ríomhchlár thuas chun an líon euro a ríomh, má ghlactar leis go bhfuil

nóta cúig euro agam, chomh maith le 22 bonn caoga cent, 17 mbonn fiche cent, 25 bonn

deich cent agus 13 bhonn dhá cent.

14. Déan mionathrú ar an ríomhchlár (arís) chun leid a thabhairt don úsáideoir na luachanna

éagsúla a chur isteach agus an líon iomlán a thaispeáint.

15. Tugtar fad imlíne ciorcail leis an bhfoirmle 𝑙 = 2𝜋𝑟. Scríobh ríomhchlár a thugann leid don

úsáideoir luach a chur isteach le haghaidh fhad an gha (r) agus a ríomhann agus a

thaispeánann fad na himlíne.

16. Scríobh ríomhchlár chun achar ciorcail a ríomh. (Nóta: 𝐴 = 𝜋𝑟2)

Page 68: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 68

17. Mionsonraítear dhá phointe i bplána ach na comhordanáidí (𝑥1, 𝑦1) agus (𝑥2, 𝑦2) a úsáid.

Scríobh ríomhchlár a úsáideann an fhoirmle thíos chun fána líne idir dhá phointe a

iontrálann an t-úsáideoir a ríomh.

𝑠𝑙𝑜𝑝𝑒 =𝑦2 − 𝑦1

𝑥2 − 𝑥1

18. Scríobh ríomhchlár a ghlacann le dhá phointe agus a chinneann agus a thaispeánann an t-

achar eatarthu

Page 69: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 69

Oibreoirí agus Sloinn Boole Is sloinn Boole iad sloinn ar féidir iad a luacháil mar true nó mar false. Is féidir sloinn shimplí

Boole a ríomhchlárú le hoibreoirí comparáide JavaScript agus is féidir sloinn chumaisc Boole a

ríomhchlárú le hoibreoirí loighciúla JavaScript. Pléifear an dá chineál oibreora anois.

Oibreoirí Comparáide

Mar a thugann an t-ainm le tuiscint, úsáidtear oibreoirí comparáide chun dhá luach a chur i

gcomparáid lena chéile. Is féidir comparáid a dhéanamh idir luachanna ó thaobh comhionannais

nó difríochta de. An toradh a bheidh ar chomparáid i gcónaí ná true nó false.

Tá oibreoirí comparáide tábhachtach mar gheall go ligeann siad do ríomhchláraitheoirí

coinníollacha a thógáil. Is bonn le haghaidh struchtúir rialaithe amhail lúba agus ráitis

roghnaithe iad coinníollacha a mbaineann ríomhchláraitheoirí úsáid astu chun cur i bhfeidhm

am rite a ríomhchlár a rialú. Is iad na codanna bunúsacha de ríomhchláir iad.

Tá liosta d’oibreoirí comparáide JavaScript sa tábla thíos7.

Nuair is na cineálacha sonraí céanna iad na luachanna a bhfuil comparáid á déanamh eatarthu,

bíonn iompar na n-oibreoirí comparáide sách simplí – déantar uimhreacha a chur i gcomparáid

de réir méide agus déantar teaghráin a chur i gcomparáid de réir aibítre (i.e. ar bhonn an

7 Is féidir an tagairt iomlán d’oibreoirí comparáide a fháil ag:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators

Page 70: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 70

charachtair agus úsáid á baint as luach Unicode gach carachtair). Seo a leanas roinnt samplaí

de chineálacha céanna a chur i gcomparáid:

// Comparáidí – cineálacha sonraí céanna

console.log(3 < 20); // fíor

console.log(7 != 7); // bréagach

console.log(5 >= 7); // bréagach

console.log("cat" == "dog"); // bréagach

console.log("man" != "woman"); // fíor

console.log("man" < "woman"); // fíor

console.log("man" <= "men"); // fíor

Nuair a bhíonn na cineálacha sonraí difriúil lena chéile, aistríonn JavaScript na luachanna go

huimhreacha sula ndéantar comparáid eatarthu. Mar shampla, más teaghrán í oibreann amháin

agus más uimhir an ceann eile, déanfaidh JavaScript iarracht an teaghrán a thiontú ina uimhir

sula ndéanfar an chomparáid. Má éiríonn leis an tiontú, déanfar an dá uimhir a chur i

gcomparáid ar an ngnáthbhealach; mura n-éiríonn leis an tiontú, tabharfar NaN agus beidh

false mar thoradh air sin i gcónaí nuair a chuirtear i gcomparáid le rud ar bith é. Léirítear sin

sna samplaí seo a leanas:

// Comparáidí – teaghráin agus uimhreacha

console.log(3 < "20"); // fíor ("20" tiontaithe go 20)

console.log("3" <= "20"); // bréagach (comparáid idir dhá theaghrán: Unicodes ná 3:51, 2:50)

console.log("5" == 5); // fíor ("5" tiontaithe go 5)

console.log("5" === 5); // bréagach (dianchomhionannas, mar sin ní dhéantar tiontú)

console.log("five" == 5); // bréagach (is NaN é "five")

console.log("shark" > "5"); // fíor (comparáid idir dhá theaghrán: Unicodes ná s:115, 5:53)

console.log("shark" > 5); // bréagach (NaN é "shark")

Nuair a chuirtear luachanna Boole i gcóimheas le huimhreacha, déantar true a thiontú go 1

agus déantar false a thiontú go 0. Dá bharr sin;

// Comparáidí – boole agus uimhreacha

console.log(true == 1); // fíor

console.log(true === 1); // bréagach (dian-chomhionannas)

console.log(99 != true); // fíor

console.log(false != 0); // bréagach

Page 71: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 71

Déan tástáil ar do thuiscint (oibreoirí comparáide)

Bain triail as an méid seo a leanas.

1. Céard chuige a luacháiltear na sloinn seo? (true nó false)

a) 7 == 7

b) 7 ! = 7

c) 7 >= 6

d) 2 < 3

e) 3 < 2

2. Luacháiltear na coinníollacha seo a leanas go léir mar false: Athraigh an t-

oibreoir le gur ionann iad agus true. (Féadfaidh tú níos mó ná

freagra amháin a bheith agat ar gach cuid, más mian leat.)

a) 4 < 3

b) 8 >= 9

c) 5 == 4

d) true != true

e) 99 == false

f) 8 < "10"

g) "8" != 8

h) "8" == 8

i) "8" === 8

3. Ag glacadh leis gur 𝑥 = 1, agus 𝑦 = 0 céard chuige a luacháiltear na coinníollacha

thíos?

a) 𝑥 > 5

b) 5 > 𝑥

c) 𝑦 <= 0

Page 72: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 72

d) 0 == 𝑦

e) 𝑥 == 𝑦

f) 𝑥 ! = 𝑦

g) 𝑥 > 𝑦

h) 𝑦 > 𝑥

i) 𝑥 <= 𝑦

j) 𝑥 >= 𝑦

Page 73: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 73

Oibreoirí Loighciúla

Is eol dúinn ón rannán roimhe seo gur féidir oibreoirí comparáide a úsáid chun coinníollacha

simplí a chur le chéile. Sa rannán seo, breathnóimid ar an tslí ar féidir na coinníollacha simplí

sin a cheangal ach oibreoirí loighciúla JavaScript a úsáid – taispeántar iad sa tábla thíos – chun

coinníollacha nua ar a dtugtar coinníollacha cumaisc a thógáil.

POINTE TÁBHACHTACH: Bíonn coinníoll cumaisc comhdhéanta de dhá choinníoll

shimplí nó níos mó. Is féidir coinníollacha a cheangal ach oibreoirí loighciúla

JavaScript a úsáid, ! (not), && (and), agus || (or).

Mar a fheictear ón gcolún comhréire sa tábla thuas, oibríonn gach ceann de na trí oibreoir

loighciúla – ! (NOT loighciúil), && (AND loighciúil), agus || (OR loighciúil) – ar oibreanna ar

sloinn Boole iad8 (a thaispeáintar, mar shampla, mar expr1 sa tábla thuas).

Is oibreoir aonártha é NOT loighciúil, rud a chiallaíonn nach dteastaíonn ach oibreann amháin le

go n-oibreoidh sé. Is oibreoirí dénártha iad AND loighciúil agus OR loighciúil, rud a chiallaíonn

go dteastaíonn dhá oibreann ionchuir le go n-oibreoidh siad. Ar mhaithe le cúrsaí a choinneáil

simplí, is sábháilte smaoineamh ar an luach a thugann na hoibreoirí loighciúla mar a bheith

true nó false.9

Tugtar na rialacha don tslí a gcuirtear na sloinn Boole simplí sin le chéile i dtáblaí fírinne.

Taispeántar na táblaí fírinne do NOT loighciúil, AND loighciúil agus OR loighciúil anseo thíos.

Tugtar liosta i ngach tábla fírinne de na hionchuir fhéideartha go léir sa cholún clé agus tugtar

na haschuir chomhfhreagracha sa cholún is faide ar dheis.

NOT

8 Féadfaidh na hoibreanna a bheith ina gcineálacha sonraí ar bith – ní cinn Boole agus sin amháin. Is amhlaidh

sin mar go ndéantar oibreanna Boole a thiontú ina luachanna truthy nó falsey mar chuid dár meastóireacht. 9 Is féidir na luachanna neamh-Boole a thugtar a thiontú ina mbunchineálacha Boole i gcónaí.

Page 74: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 74

Baintear úsáid as an oibreoir (NOT loighciúil) ! chun luach Boole amháin a inbhéartú.

Taispeántar an tábla fírinne do NOT thíos. Is é A an t-ionchur agus is é !A an t-aschur.

Taispeántar sa chéad ró sa tábla go mbíonn !A false am ar bith a bhíonn A true.

Tábla fírinne do NOT loighciúil

AND

Taispeántar an tábla fírinne do && (AND loighciúil) thíos. Taispeántar sa chéad dá cholún na

hionchuir A agus B; sa tríú colún tá an t-aschur A && B. Taispeántar sa chéad ró sa tábla fírinne

go mbíonn an t-aschur A && B false sa chás go mbíonn an dá ionchur A agus B false.

Taispeántar sa dara ró go mbíonn A && B false sa chás go mbíonn A false agus B true, agus

mar sin de.

Tábla fírinne do AND loighciúil

OR

Taispeántar an tábla fírinne do || (OR loighciúil) thíos. Taispeántar sa chéad dá cholún na

hionchuir A agus B; sa tríú colún tá an t-aschur A || B. Taispeántar sa chéad ró sa tábla fírinne

go mbíonn an t-aschur A || B false sa chás go mbíonn an dá ionchur A agus B false.

Taispeántar sa dara ró go mbíonn A || B true sa chás go mbíonn A false agus B true, agus mar

sin de.

Page 75: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 75

Tábla fírinne do OR loighciúil

Samplaí

1. Taispeántar sa tábla thíos an tslí a gcuirtear oibreoirí loighciúla i bhfeidhm leis na sloinn

Boole shimplí a thaispeántar sa cholún is faide ar chlé ar a dtugtar (i.e. Coinníoll)

Coinníoll Toradh Míniú

! (2 == 5) true 2==5 is false

not false is true

! (2 < 5) false 2<5 is true

not true is false

(5 > 2) && (5 > 4) true

5>2 is true

5>4 is true

true and true is true

(5 > 2) && (5 > 7) false

5>2 is true

5>7 is false

true and false is false

(3 > 2) || (3 > 4) true

3>2 is true

3>4 is false

true or false is true

2. Chun críche an tsampla seo, glac leis go bhfuil an athróg valid true agus go bhfuil an

athróg finished false.

Coinníoll Toradh Míniú

!valid false not true is false

!finished true not false is true

finished && valid false false and true is false

Page 76: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 76

finished || valid true false or true is true

finished || !valid false false or not true

false or false is false

POINTE TÁBHACHTACH: Is bealach áisiúil é tábla fírinne chun na rialacha chun

sloinn Boole a chur le chéile a thaispeáint

3. Cuir i gcás go raibh athróg againn dar teideal age agus go raibh rabhamar ag iarraidh

ríomhaire a ríomhchlárú lena fháil amach an déagóir a bhí i nduine éigin. Is eol dúinn gur

déagóir i saol an Bhéarla atá i nduine idir 13 bliana d’aois agus 19 mbliana d’aois, an dá

aois sin san áireamh. Mar sin, beidh orainn insint don ríomhaire age a chur i gcomparáid

leis an dá luach sin. D’fhonn é sin a dhéanamh, cuirimid trí cheist:

o an bhfuil luach age níos mó ná nó cothrom le 13?

o an bhfuil age níos lú ná nó cothrom le 19?

o an bhfuil age níos mó ná nó cothrom le 13 AGUS an bhfuil age níos lú ná nó

cothrom le 19?

Is féidir an chéad dá cheist a chur in JavaScript ach oibreoirí cumarsáide a úsáid mar seo a

leanas

- age >= 13

- age <= 19

Déanaimid ár gcoinníoll cumaisc ach an loighciúil agus an t-oibreoir && a úsáid chun an dá

choinníoll shimplí a chur le chéile mar seo a leanas:

- ((age >= 13) && (age <= 19))

Chun an slonn cumaisc thuas a luacháil, ní mór dianbhreithniú a dhéanamh ar na ceithre

fhéidearthacht seo a leanas:

Page 77: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 77

1) age >= 13 is false and age <= 19 is false. Níl aon aois fhéideartha ann a

d’fhéadfadh a bheith níos lú ná 13 agus níos mó ná 19. Mar sin, an t-aon chonclúid loighciúil

ann ná nach déagóir é an duine.

2) age >= 13 is false but age <= 19 is true. (Sa chás, mar shampla, gur 12 é age.) Sa

chás seo, luacháiltear an slonn foriomlán mar false agus féadfaidh an ríomhaire teacht ar

an gconclúid nach déagóir é an duine.

3) age >= 13 is true but age <= 19 is false. (Sa chás, mar shampla, gur 21 é age.) Sa

chás seo, luacháiltear an slonn foriomlán mar false agus féadfaidh an ríomhaire teacht ar

an gconclúid nach déagóir é an duine.

4) age >= 13 is true and age <= 19 is true. (Sa chás, mar shampla, gur 16 é age.) Sa

chás seo, luacháiltear an slonn foriomlán mar true agus féadfaidh an ríomhaire teacht ar

an gconclúid gur déagóir é an duine.

Tugtar achoimre ar na ceithre fhéidearthacht sa tábla thíos. Tá na hionchuir sa chéad dá cholún

agus taispeántar an t-aschur sa tríú colún. Mar is féidir a fheiceáil anseo, níl ach cás amháin a

thugann true mar aschur (aibhsithe). Tarlaíonn sin nuair atá an aois idir 13 agus 19, an dá aois

sin san áireamh. I ngach cás eile, tá na haschuir false.

age >=13 age <=19 age >=13 && age <=19

false false false

false true false

true false false

true true true

Léirítear sa cholún aschuir ar dheis an déagóir é an duine nó nach ea

Page 78: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 78

POINTE TÁBHACHTACH: Is féidir táblaí fírinne a úsáid mar áis chun sloinn Boole a

mheas. Ach na hionchuir go léir a chur i liosta ar an taobh clé, is féidir linn na táblaí

caighdeánacha le haghaidh NOT, AND, agus OR a úsáid chun na torthaí a lorg

agus iad a thaifeadadh i gcolún na n-aschur.

4. Tóg an tábla fírinne le haghaidh A AND NOT B i.e. A && !B

Réiteach

Sna táblaí fírinne a thaispeántar thíos, baintear úsáid as 1 chun luach true a léiriú agus

baintear úsáid as 0 chun luach false a léiriú

CÉIM 1: Ar dtús, tógaimid tábla fírinne ina bhfuil na meascáin ionchur féideartha go léir.

𝐴 𝐵

0 0

0 1

1 0

1 1

CÉIM 2: Cruthaímid an chéad cholún aschuir le haghaidh NOT B

𝐴 𝐵 ! 𝐵 0 0 1

0 1 0

1 0 1

Page 79: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 79

1 1 0

CÉIM 3: Déantar ANDed den cholún NOT B atá díreach cruthaithe ach 𝐴 a úsáid chun an colún

aschuir A AND NOT B atá uainn a chruthú

𝐴 𝐵 ! 𝐵 𝐴&&! 𝐵 0 0 1 0

0 1 0 0

1 0 1 1

1 1 0 0

5. Tó an tábla fírinne le haghaidh NOT A OR B i.e., !A || B

Réiteach

Mar ab amhlaidh sa Sampla roimhe seo, baintear úsáid as 1 chun luach true a léiriú agus

baintear úsáid as 0 chun luach false a léiriú sna táblaí fírinne a thaispeántar thíos.

CÉIM 1: Ar dtús, tógaimid tábla fírinne ina bhfuil na meascáin ionchur féideartha go léir.

𝐴 𝐵

0 0

0 1

1 0

1 1

CÉIM 2: Anois cuirimid an chéad cholún aschuir NOT A leis

𝐴 𝐵 ! 𝐴

0 0 1

0 1 1

1 0 0

1 1 0

CÉIM 3: Déantar OR den cholún NOT A atá díreach cruthaithe le 𝐵 chun an colún aschuir atá

uainn, NOT A OR B, a chruthú

𝐴 𝐵 ! 𝐴 ! 𝐴||𝐵

0 0 1 1

0 1 1 1

Page 80: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 80

1 0 0 0

1 1 0 1

Page 81: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 81

Loighic Boole

Is brainse den Mhatamaitic í loighic Boole nach bhfuil ach dhá luach inti – true agus false.

Ba é an matamaiticeoir George Boole, 1815-1864, an chéad ollamh Matamaitice i gColáiste na

hOllscoile Corcaigh, a cheap loighic Boole. Tá cáil mar réamhtheachtaí na haoise faisnéise

tagtha ar Boole ar fud an domhain le tamall anuas – ní haon áibhéil a rá gurb í Loighic Boole

bunús na teicneolaíochta leictreonaí digití go léir agus na gcóras bogearraí go léir.

Tá loighic Boole áisiúil mar gheall go soláthraíonn sí déine chun déileáil le ráitis ar a dtugtar

tairiscintí. Is éard atá i dtairiscintí ná dearbhuithe atá true nó false. Seo a leanas samplaí de

dhearbhuithe:

▪ Is corruimhir é a trí

▪ 1 + 1 = 3

▪ Tá sé 14:00 a chlog

▪ Is í Corcaigh an contae is mó in Éirinn

▪ Tá an seilide ag gluaiseacht ar luas níos lú ná 1 mhéadar san uair

▪ Tá an carr ag taisteal ar luas níos mó ná 120 km san uair

▪ Tá an t-eitleán idir 31,000 agus 38,000 troigh ar airde

▪ Tá an oibiacht ar an scáileán (e.g. carachtar i gcluiche, cruth, beochan, sprid, etc.)

Is féidir le daoine dearbhuithe amhail na cinn sa liosta thuas a luacháil gan mórán deacrachta.

Má tá an fhaisnéis atá de dhíth againn, is féidir linn cinneadh a dhéanamh láithreach cibé acu

an bhfuil an dearbhú true nó false. Cé nach dtugaimid faoi deara i gcónaí go bhfuilimid á

dhéanamh, is gnách go ndéanaimid dearbhuithe a luacháil trí chomparáid a dhéanamh idir dhá

luach. Maidir leis an maíomh gur 14:00 uair é an t-am – déanaimid an t-am faoi láthair a chur i

gcomparáid le 14: 00 agus sa chás gur mar an gcéanna iad, tá an dearbhú true; i ngach cás

eile tá sé false.

An chumhacht atá ag loighic Boole ná go dtugann sí creat chun dearbhuithe amhail na cinn sa

liosta thuas a thógáil agus iad a scríobh mar shloinn Boole atáthar in ann a chur san áireamh

inár ríomhchláir (agus ansin iad a luacháil ag na crua-earraí ag am rite). Is iad sloinn Boole an

príomh-mhodh lenar féidir le ríomhchláraitheoirí loighic a chur ina gcóid agus mar sin is cuid

ríthábhachtach de gach ríomhchlár ríomhaire iad. Is scil riachtanach é a bheith ábalta sloinn

Boole a cheapadh. Is cuid lárnach d’ealaíon an ríomhchlárúcháin é.

Page 82: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 82

Déan tástáil ar do thuiscint ar oibreoirí loighciúla

Bain triail as an méid seo a leanas.

1. Déan gach ceann de na coinníollacha a thaispeántar sa tábla thíos a luacháil agus aird ar

na hathróga seo a leanas:

𝑥 = 1, 𝑦 = 0 agus 𝑧 = −1. (Beidh na torthaítrue nó false.)

Coinníoll Toradh

!(x==y)

!(x==y+z)

!(y==x+z)

(x>y) && (y>z)

(z<x) && (y<x)

(x<y) || (y>z)

(y!=x+z) || (y>z)

2. Déan gach ceann de na coinníollacha a thaispeántar sa tábla thíos a luacháil agus aird ar

na hathróga seo a leanas:

valid is false and finished is true (Tá na torthaí true nó false.)

Coinníoll Toradh

!finished

!valid

!finished && !valid

!finished || valid

valid || finished

3. Déan na sloinn seo a leanas a luacháil: a) true or not true

b) false and (true or not true)

c) (true or false) and true

d) false or true or not false

Page 83: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 83

e) not false and not true or not false

4. Críochnaigh an tábla fírinne thíos chun NOT A AND B a aimsiú thíos

A B !A !A && B

0 0

0 1

1 0

1 1

5. Críochnaigh an tábla fírinne thíos chun A OR NOT B a aimsiú

A B !B A || !B

0 0

0 1

1 0

1 1

6. Críochnaigh an tábla fírinne thíos chun NOT (A AND B) a aimsiú

A B A && B !(A && B)

0 0

0 1

1 0

1 1

7. Críochnaigh an tábla fírinne thíos chun NOT (A OR B) a aimsiú

A B A || B !(A || B)

0 0

0 1

1 0

1 1

Page 84: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 84

.

Page 85: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 85

Ráitis Roghnaithe (choinníollacha) Scríobhann ríomhchláraitheoirí ráitis roghnaithe – ar a dtugtar ráitis chinntí agus choinníollacha

freisin – chun cosáin mhalartacha rite a chuimsiú ina ríomhchláir.

Léirítear an smaoineamh maidir le roghnú sa léaráid thíos.

Is meicníocht bhrainseála iad ráitis roghnaithe lena roghnaítear bloc áirithe cóid lena rith,

bunaithe ar thoradh cinnidh, agus lena ngabhtar thar bhloic chóid eile. Déantar an cinneadh a

ríomhchlárú mar shlonn Boole de ghnáth.

Tacaíonn JavaScript, mar is amhlaidh le formhór na dteangacha ríomhchlárúcháin, le roghnú trí

ráitis if a chur san áireamh mar chuid dá chomhréir. Sa rannán seo, scrúdóimid comhréir agus

séimeantaic ráiteas if JavaScript agus a athraithigh (i.e. else, agus else-if) chomh maith

leis an ráiteas switch. Breathnóimid freisin ar an aon oibreoir trínártha atá ag JavaScript agus

ar an tslí ar féidir é a úsáid chun roghnú a dhéanamh.

Page 86: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 86

An ráiteas if

Mar seo a leanas comhréir ráiteas if JavaScript:

if (condition) {

statement(s)

} // end if

// leanann an ríomhchlár ar aghaidh ón

bpointe seo

Léirítear sa tsreabhléaráid ar dheis am rite ráiteas

if á rith.

An chéad rud a tharlaíonn nuair a ritear ráiteas if

ná go luacháiltear an coinníoll agus go n-aistrítear

an toradh go true nó false.

Más true an coinníoll, rithfear an ráiteas/na ráitis sa ráiteas if. Murach sin, gabhfar tharstu agus

leanfar leis an rith ón gcéad líne eile i ndiaidh an ráitis if

Taispeánann an tsreabhléaráid dhá chonair reatha difriúla – i gcosán amháin ritear an

ráiteas/na ráitis a chomhdhéanann corp an ráitis if, agus sa cheann eile, gabhtar tharstu.

Is é an coinníoll an chuid is tábhachtaí den ráiteas if. Cuimhnigh ó níos luaithe go luacháiltear

na luachanna uile null, undefined, NaN, teaghrán folamh (“”) agus an uimhir nialas mar

false. Luacháiltear gach luach eile mar true.

POINTE TÁBHACHTACH: Ní ritear an ráiteas/na ráitis a chomhdhéanann corp an

ráitis if ach amháin sa chás go luacháiltear an coinníoll mar true.

Page 87: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 87

Féachaimis ar roinnt samplaí. (Bain triail astu thú féin!)

Sampla 1

let age = prompt("Enter your age");

if (age >= 18) {

console.log("You are an adult");

}

console.log("Thank you. Goodbye.");

An coinníoll anseo ná age >= 18. Sa chás go n-iontrálann an t-úsáideoir 18 nó luach ar bith

níos mó ná 18, luachálfar an coinníoll mar true agus taispeánfar an teachtaireacht You are an

adult. Sa chás go n-iontrálann an t-úsáideoir luach ar bith atá níos lú ná 18, luachálfar an

coinníoll comhionann mar false agus ní rithfear an cód coinníollach.

POINTE TÁBHACHTACH: Féadfaidh ríomhchlár feidhmiú ar bhealach difriúil gach

uair a ritear iad. Braitheann an t-iompar am rite seo ar na sonraí a chuirtear ar fáil don

chlár agus ar na coinníollacha a dhéanann an ríomhchláraitheoir a ríomhchlárú.

Tá an líne dheireanach chóid sa sampla taobh amuigh den ráiteas if agus dá bharr sin rithfear

í i gcónaí, beag beann ar thoradh an choinníll. I ngach cás, taispeánann an ríomhchlár an

teachtaireacht Thank you. Goodbye.

Mar achoimre, ag brath ar an ionchur, is iad seo a leanas na haschuir fhéideartha:

You are an adult Thank you. Goodbye.

nó díreach Thank you. Goodbye.

Tabhair faoi deara nach dteastaíonn lúibíní slabhracha ach amháin nuair atá níos mó ná líne

amháin chóid i gcorp an choinníll. Go teicniúil, ní theastaíonn siad sa sampla seo mar gheall

nach bhfuil ach líne amháin sa chorp.

Page 88: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 88

Page 89: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 89

Sampla 2

Sa sampla seo, tugtar leid don úsáideoir an bhliain reatha a iontráil. Más ionann an luach a

iontráladh agus an bhliain atá socraithe ar an ríomhaire, taispeánfaidh an ríomhchlár na

teachtaireachtaí seo a leanas:

You are correct Well done!

let date = new Date();

let computerYear = date.getFullYear();

let userYear = prompt("Enter the current year");

if (userYear == computerYear) {

console.log("You are correct");

console.log("Well done!");

}

console.log("The year is", computerYear);

Arís, ritear an líne dheireanach gan choinníoll. Bain triail as an sampla seo le bliain seachas an

bhliain reatha (e.g. iontráil 2018 go bhfeice tú a tharlóidh)

Tabhair faoi deara go bhfuil lúibíní slabhracha de dhíth sa chás seo mar gheall go bhfuil níos

mó ná ráiteas amháin i gcorp an choinníll sin.

Sampla 3

Sa sampla seo, luacháiltear an coinníoll hourlyPay < minimumWage mar true i gcónaí agus dá

bharr sin cruthóidh an ríomhchlár an t-aschur céanna i gcónaí.

let hourlyPay = 5;

const minimumWage = 10;

if ( hourlyPay < minimumWage ){

console.log("The hourly rate of pay is below the minimum wage.");

}

console.log("Have a nice day!");

Bain triail as!

Cén t-aschur a chruthódh an ríomhchlár thuas dá mbeadh hourlyPay

socraithe ag 15? Céard faoi 10? Mionathraigh an ríomhchlár le go dtugtar

leid don úsáideoir luach don ráta pá san uair a iontráil.

Page 90: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 90

Page 91: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 91

Cleachtaí Ríomhchlárúcháin

Bain triail as an méid seo a leanas.

1. Scrúdaigh an cód thíos go cúramach agus tuar an t-aschur sa spás atá ar fáil.

let x = 3;

let y = 2;

if (x == y) {

console.log(x, "is equal to", y);

}

if (x != y) {

console.log(x, "is not equal to", y);

}

if (x >= y) {

console.log(x, "is greater than or equal to", y);

}

if (x > y) {

console.log(x, "is greater than", y);

}

if (x <= y) {

console.log(x, "is less than or equal to", y);

}

if (x < y) {

console.log(x, "is less than", y);

}

Cén t-aschur a chruthófá dá mbeadh na luachanna tosaigh x agus y socraithe mar seo a

leanas:

a) x=2 and y=2

b) x=2 and y=3

c) x="Jim" and y="Jam"

2. Scríobh ríomhchlár chun uimhir amháin a ghlacadh agus an focal NEGATIVE a thaispeáint

más lú ná nialas an uimhir

3. Scríobh ríomhchlár chun uimhir amháin a ghlacadh agus an focal BOILING a thaispeáint

más mó ná 100 an uimhir.

4. Céard atá mícheart leis an méid seo a leanas? Tabhair dhá réiteach ar an bhfadhb.

// Tabhair leid don úsáideoir luach idir 0 - 100 a

iontráil

let result = prompt("Enter student result");

if (mark == 100) {

console.log("Full marks - well done");

console.log("Perfect score!");

}

console.log("The result was", result);

Page 92: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 92

Page 93: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 93

An ráiteas if-else

Baintear úsáid as an gclásal else i gcomhar le ráiteas if i gcónaí. Baintear úsáid as chun cosán

malartach rite a sholáthar i gcásanna ina luacháiltear an coinníoll if mar false.

Mar seo a leanas comhréir ráiteas if-else

JavaScript:

if (condition) {

statement(s)

} // end if

else {

statement(s)

} // end else

// leanann an ríomhchlár ar aghaidh ón

bpointe seo

Léiríonn an tsreabhléaráid an tslí a n-oibríonn an ráiteas if-else.

Déantar an coinníoll a luacháil agus, ag brath ar an toradh, ritear na ráitis laistigh den bhloc if

nó na ráitis laistigh den bhloc else.

⮚ Má luacháiltear an coinníoll mar true, ritear na ráitis laistigh den bhloc if.

⮚ Má luacháiltear an coinníoll mar false, ritear na ráitis laistigh den bhloc else.

POINTE TÁBHACHTACH: Ní rithfear ach sraith amháin ráiteas i gcónaí – an bloc if

nó an bloc else. Ní rithfear an dá shraith riamh!

Chomh luath agus a ritear an bloc cóid roghnaithe, ritear an chéad líne eile i ndiaidh an ráitis if-

else.

Page 94: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 94

Page 95: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 95

Féachaimis ar roinnt samplaí.

Sampla 1

// ráiteas if-else

let num1 = prompt("Enter a number");

let num2 = prompt("Enter another number");

if ( Number(num1) >= Number(num2) ){

console.log(num1, "is greater than or equal to", num2);

}

else {

console.log(num1, "is less than", num2);

}

console.log("Program execution continues from here");

Maidir le hionchur 5 agus 7, is éard a bheadh san aschur a chruthófaí:

Maidir le hionchur 12 agus 7, is éard a bheadh san aschur a chruthófaí:

Déanann JavaScript an coinníoll, Number(num1) >= Number(num2) a luacháil, agus, ag

brath ar an toradh, ritear an bloc if nó an bloc else (arís – ní ritear an dá cheann riamh)!

Ní cuid den ráiteas if-else í an líne dheireanach agus mar sin ritear i gcónaí í.

Bain triail as!

Cén t-aschur a chruthódh an ríomhchlár thuas sa chás gur mar an gcéanna

an dá uimhir a iontrálfaí? An oibríonn an ríomhchlár le huimhreacha

diúltacha? Céard a tharlódh sa chás gur num1 >= num2a bhí sa choinníoll?

Cuir an t-athrú i gcrích agus bain triail as 12 agus 7 mar ionchuir. An féidir

leat an t-aschur a mhíniú? Mionathraigh an ríomhchlár le go mbainfidh sé

úsáid as < sa choinníoll (seachas >=)

Page 96: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 96

Sampla 2

Sa sampla seo, cuirtear an dáta a iontrálann úsáideoir i gcomparáid le dáta inmheánach an

ríomhaire.

let date = new Date();

let computerYear = date.getFullYear();

let userYear = prompt("Enter the current year");

if (userYear != computerYear) {

console.log("Incorrect answer");

console.log("The year is", computerYear);

} else {

console.log("You are correct");

console.log("Well done!");

}

Bain úsáid as an spás thíos chun aon difríochtaí ó thaobh na loighce de idir an sampla seo agus Sampla 2 sa rannán roimhe seo a liostú

Sampla 3

Léiríonn an coinníoll a úsáidtear sa sampla seo – num1 % 2 == 0 – an tslí ar féidir le ríomhchlár

a chinneadh an ré-uimhir nó corruimhir atá in uimhir.

let num1 = prompt("Enter a number");

if ( num1 % 2 == 0 ) {

console.log(num1, "is even");

}

else {

console.log(num1, "is odd");

}

Taispeánann an ríomhchlár toradh na tástála ‘divisibility by 2’.

Cén t-aschur a léireodh an ríomhchlár samplach seo le haghaidh ionchuir a) 10 ____ agus b) 5

_____?

An féidir le slánuimhreacha diúltacha a bheith ina ré-uimhreacha? Céard faoi nialas?

Page 97: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 97

Dúshlán!

Mionathraigh an ríomhchlár seo le go léifidh sé an dara huimhir num2 agus

go dtaispeánfaidh sé ansin cibé an bhfuil nó nach bhfuil num1 inroinnte go

cothrom ar num2.

Cleachtaí Ríomhchlárúcháin

Bain triail as an méid seo a leanas.

1. Scrúdaigh an dá chlár thíos go cúramach agus freagair na ceisteanna a leanas:

let mark = prompt("Enter student mark");

if (mark >= 50) {

console.log("Well done - you passed!");

console.log("Some options now are ....");

console.log("1. Get a job");

console.log("2. Do an apprenticeship");

console.log("3. Go to college");

console.log("4. Emigrate");

} else {

console.log("Hard luck - unsuccessful!");

console.log("Some options now are ....");

console.log("1. Get a job");

console.log("2. Repeat");

console.log("3. Social Welfare");

console.log("4. Emigrate");

}

let mark = prompt("Enter student mark");

if (mark <= 50) {

console.log("Hard luck - unsuccessful!");

console.log("Some options now are ....");

console.log("1. Get a job");

console.log("2. Repeat");

console.log("3. Social Welfare");

} else {

console.log("Well done - you passed!");

console.log("Some options now are ....");

console.log("1. Get a job");

console.log("2. Do an apprenticeship");

console.log("3. Go to college");

}

console.log("4. Emigrate");

Clár 1 Clár 2

An bhfuil na cláir coibhéiseach ó thaobh na loighce de? Mínigh aon difríocht.

Cén clár is fearr leat agus cén fáth?

2. Scríobh ríomhchlár a thugann leid don úsáideoir bliain a iontráil agus an focal PAST a

thaispeáint má tá an bhliain roimh an mbliain reatha agus an focal FUTURE a thaispeáint

má tá an bhliain i ndiaidh na bliana reatha.

Page 98: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 98

3. Scríobh ríomhchlár a thugann leid don úsáideoir uimhir amháin a iontráil agus an focal

POSITIVE a thaispeáint má tá an uimhir níos mó ná nialas agus an focal NEGATIVE a

thaispeáint má tá an uimhir níos lú ná nialas. Céard a tharlaíonn nuair a iontrálann tú nialas

é féin?

4. Scrúdaigh an ríomhchlár thíos go cúramach agus freagair na ceisteanna ina dhiaidh.

// Gin dhá uimhir randamacha idir 1 agus 10, an dá uimhir sin san áireamh

let n1 = Math.floor(Math.random() * 10) + 1;

let n2 = Math.floor(Math.random() * 10) + 1;

let message = "What is "+n1+" + "+n2;

let userAnswer = prompt(message);

if ( userAnswer == n1+n2 ) {

console.log("Correct - well done!");

} else {

console.log("Sorry - incorrect answer!");

console.log("The right answer is", n1+n2);

}

a) Déan cur síos ar a ndéanann an ríomhchlár.

b) Cén t-athrú a chaithfí a dhéanamh le go rithfí an líne seo a leanas beag beann ar a n-

iontrálfadh an t-úsáideoir? console.log("The right answer is", n1+n2);

c) Tá an slonn uimhríochtúil n1+n2 ann faoi dhó sa ríomhchlár thuas. An ritear an dá

ásc den slonn seo ag am rite i gcónaí? Mínigh.

d) Gan loighic an ríomhchláir a athrú, mol athrú a d’fhágfadh nach dtarlódh an slonn

n1+n2 ach uair amháin sa ríomhchlár.

e) Cuir i gcás gur athraíodh an coinníoll go userAnswer != n1+n2. Cé na hathruithe

eile a bheadh de dhíth ionas nach gcuirfí athrú ar loighic an ríomhchláir?

Page 99: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 99

5. Scríobh ríomhchlár a chruthaíonn dhá uimhir randamacha agus iarr ar an úsáideoir toradh

na n-uimhreacha a iontráil. Má tá an ceart ag an úsáideoir ba cheart don ríomhchlár Correct

a thaispeáint. Mura bhfuil, ba cheart don ríomhchlár Incorrect a thaispeáint.

An ráiteas else-if

Soláthraíonn an ráiteas else-if an loighic riachtanach chun freastal ar chásanna ina bhfuil níos

mó ná dhá fhéidearthacht mhalartacha.

Mar seo a leanas comhréir an ráitis if...else-if:

if (condition 1) {

statements(s)

} else if (condition 2) {

statements(s)

...

} else if (condition N) {

statements(s)

} else {

statements(s)

}

Léirítear an tsreabhchairt loighce thíos.

Page 100: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 100

Oibríonn an ráiteas else-if trí gach coinníoll a thástáil in ord go dtí go n-aimsíonn sé ceann a

luacháiltear mar true. Ritear an ráiteas gaolmhar nó na ráitis ghaolmhara ansin agus cuirtear

deireadh leis an ráiteas. Sa chás go luacháiltear na coinníollacha go léir mar false, ritear na

ráitis roghnacha else ag an deireadh (más ann dóibh).

Page 101: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 101

Féachaimis ar roinnt samplaí.

Sampla 1

Tugann an ríomhchlár seo leid don úsáideoir slánuimhir a iontráil agus, ag brath ar a

comhartha, taispeánfaidh sé ceann de na trí theachtaireacht seo a leanas:

The number is positive The number is negative Neither positive nor negative so the number must be zero!

let number = prompt("Enter any integer:");

if (number > 0) {

console.log("The number is positive");

} else if (number < 0) {

console.log("The number is negative");

} else {

console.log("Neither positive nor negative so the number must be zero!");

}

Déanann an ráiteas else ag an deireadh soláthar don tríú féidearthacht. Tabhair faoi deara go

bhfuil na chéad trí liostáil eile coibhéiseach ó thaobh na loighce de.

let number = prompt("Enter any integer:");

if (number == 0) {

console.log("Neither positive nor negative so the number must be zero!");

} else if (number < 0) {

console.log("The number is negative");

} else {

console.log("The number is positive");

}

let number = prompt("Enter any integer:");

if (number < 0) {

console.log("The number is negative");

} else if (number == 0) {

console.log("Neither positive nor negative so the number must be zero!");

} else {

console.log("The number is positive");

}

let number = prompt("Enter any integer:");

if (number > 0) {

console.log("The number is positive");

} else if (number == 0) {

console.log("Neither positive nor negative so the number must be zero!");

} else {

console.log("The number is negative");

}

Tá fabht i ngach ceann de na trí liostáil – an féidir leat é a aimsiú, a mhíniú agus ansin a

dheisiú?

Page 102: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 102

(Leid: gníomhachtaigh an coinníoll number == 0)

Page 103: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 103

Sampla 2.

Sa sampla seo, cuireann an ríomhchlár dhá uimhir a iontrálann an t-úsáideoir i gcomparáid

agus ansin taispeánann sé teachtaireacht chuí ina dtugtar an gaol idir na huimhreacha.

let num1 = prompt("Enter a number");

let num2 = prompt("Enter another number");

if ( Number(num1) > Number(num2) ){

console.log(num1, "is greater than", num2);

}

else if ( Number(num1) < Number(num2) ){

console.log(num1, "is less than", num2);

}

else {

console.log(num1, "is equal to", num2);

}

console.log("Program execution continues from here");

Léirítear aschuir éagsúla le haghaidh rití difriúla an ríomhchláir sa tábla thíos.

Ionchuir Aschuir

num1 num2

12 12

32 16

1000 1

Léiríonn gach ró sa tábla rith ríomhchláir ar leith. Ní thionscnaíonn na hionchuir a léirítear ach

dhá cheann de na trí chás shamplacha dá ndéantar soláthar sa chód (ní ritear an bloc ‘ní lú ná’

riamh). Ní ritear ach ceann amháin de na bloic chóid (as na trí cinn) gach uair a ritear an

ríomhchlár.

Bain triail as!

Cén t-aschur a chruthódh an ríomhchlár sa chás gur 1 an luach a

d’iontrálfaí le haghaidh num1 agus gur 1000 an luach a d’iontrálfaí le

haghaidh num2? An oibríonn an ríomhchlár i gcás uimhreacha diúltacha?

Dá n-athrófaí an chéad choinníoll go Number(num1) == Number(num2) cé

na hathruithe eile a chaithfí a dhéanamh? Céard a tharlódh sa chás go

mbainfeá an glao chuig Number den ríomhchlár (tá sé ann ceithre huaire)?

Page 104: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 104

POINTE TÁBHACHTACH: Gach uair a ritear ríomhchlár, féadfaidh sé feidhmiú ar

bhealach difriúil ag brath ar na sonraí lena bhfuil sé ag obair le linn an reatha sin.

Sampla 3.

Sa sampla thíos, baintear úsáid as ráitis else-if iolracha chun príomhchathair tíre a

thaispeáint, nuair a iontrálann an t-úsáideoir ainm na tíre.

let country = prompt("Enter a country and I will tell you its capital");

if (country == "Ireland") {

console.log("Dublin");

} else if (country == "Scotland") {

console.log("Edinburgh");

} else if (country == "England") {

console.log("London");

} else if (country == "Wales") {

console.log("Cardiff");

} else if (country == "France") {

console.log("Paris");

}

a) Tá an cód ríomhchláraithe le hoibriú d’Éirinn, Albain, Sasana, an Bhreatain Bheag

agus an Fhrainc. Céard a tharlaíonn má iontrálann tú ainm tír éigin eile?

b) Mionathraigh an ríomhchlár le go dtaispeánfaidh sé ainm ilchríoch na tíre (i.e. an

Eoraip) ar líne ar leith faoin bpríomhchathair. An féidir é sin a dhéanamh ach líne

amháin a chur leis?

c) Anois leathnaigh an ríomhchlár ionas gur féidir leis déileáil le SAM (Washington), an

tSeapáin (Tóiceo) agus an Astráil (Canberra). (Ná déan dearmad tástáil a dhéanamh

i gcás gach tíre nua.) An bhfuil an fhadhb a shainaithin tú i gCuid a) fós ann? An

dtaispeánann an ríomhchlár an t-ainm ilchríche ceart?

d) Leathnaigh an ríomhchlár arís – an uair seo cuir an cód seo a leanas leis ag an

deireadh. Cén difríocht a dhéanann an cód seo? Cén fáth nach bhfuil coinníoll

ceangailte leis an else?

else {

console.log("Unknown country. Sorry.");

Page 105: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 105

}

Page 106: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 106

Cleachtaí Ríomhchlárúcháin

Bain triail as an méid seo a leanas.

1. Scríobh ríomhchlár a thugann leid don úsáideoir uimhir lae a iontráil agus a thaispeánann

ainm comhfhreagrach an lae de réir na sreabhchairte seo a leanas.

2. Is féidir an dá líne chóid seo a leanas a úsáid chun uimhir an lae den tseachtain a aimsiú

don ríomhaire ar a ritear iad (0 don Domhnach, 1 don Luan, agus mar sin de)

let date = new Date();

let dayNo = date.getDay();

Mionathraigh an réiteach roimhe seo le go n-úsáidfidh an ríomhchlár an dá líne seo seachas

leid a thabhairt don úsáideoir uimhir lae a iontráil.

Page 107: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 107

3. Tugann múinteoir Ríomheolaíochta áirithe quizeanna cúig phointe a marcáiltear ar an scála

5-A, 4-B, 3-C, 2-D, 1-F, 0-NG. Scríobh ríomhchlár a ghlacann le scór quiz mar ionchur agus

a thaispeánann an grád comhfhreagrach mar aschur.

Page 108: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 108

4. Is éard a bheartaítear go ndéanfaidh an

ríomhchlár thíos ná grád scoláire a

thaispeáint bunaithe ar mharc céatadáin a

iontrálann an t-úsáideoir.

Léiríonn an tábla ar dheis an tslí a ndéantar

gráid a mhapáil de réir marcanna.

Scrúdaigh an cód go cúramach agus freagair

na ceisteanna ina dhiaidh. (Ní phléann an

leagan tosaigh seo ach leis na gráid níos

airde.)

Marc (%) Grád

90 – 100 H1 O1

80 – 89 H2 O2

70 – 79 H3 O3

60 – 69 H4 O4

50 – 59 H5 O5

40 – 49 H6 O6

30 – 39 H7 O7

0 – 29 H8 O8

let mark = Number(prompt("Enter percentage mark (0-100):"));

if (mark >= 0) {

console.log("H8");

} else if (mark >= 30) {

console.log("H7");

} else if (mark >= 40) {

console.log("H6");

} else if (mark >= 50) {

console.log("H5");

} else if (mark >= 60) {

console.log("H4");

} else if (mark >= 70) {

console.log("H3");

} else if (mark >= 80) {

console.log("H2");

} else if (mark >= 90) {

console.log("H1");

}

a) Cén fáth nach ndéanfaidh an ríomhchlár an méid a bheartaítear go ndéanfaidh sé?

b) Tabhair réiteach ar an bhfadhb agus cuir i bhfeidhm é.

c) Mionathraigh an cód (réitithe) ón gceist roimhe seo le go stórálfaidh sé an grád in athróg

(tabhair grade air) agus díreach ráiteas amháin ag an deireadh chun a luach a thaispeáint.

d) Ceap réiteach a dhéanfaidh soláthar do thorthaí gnáthleibhéil chomh maith le torthaí

ardleibhéil agus cuir i bhfeidhm é.

Page 109: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 109

Is féidir réiteach féideartha amháin ar an bhfadhb ar an leathanach roimhe seo a bhriseadh síos

ina thrí chéim mar seo a leanas:

1) tabhair leid don úsáideoir ‘H’ nó ‘O’ a iontráil chun ardleibhéal nó gnáthleibhéal a chur in

iúl. Stóráiltear an litir seo in athróg ar a dtugtar gradeLetter.

2) socraigh athróg gradeLevel chuig luach éigin idir 1 agus 8 ag brath ar an mark a

iontrálann an t-úsáideoir

3) Taispeáin an grád i bhfoirm an gradeLetter agus an gradeLevel curtha le chéile.

Seo a leanas an cód:

let gradeLetter = prompt("Enter a letter: H = Higher, O = Ordinary");

let gradeLevel;

let mark = Number(prompt("Enter percentage mark (0-100):"));

if (mark >= 90) {

gradeLevel = 1;

} else if (mark >= 80) {

gradeLevel = 2;

} else if (mark >= 70) {

gradeLevel = 3;

} else if (mark >= 60) {

gradeLevel = 4;

} else if (mark >= 50) {

gradeLevel = 5;

} else if (mark >= 40) {

gradeLevel = 6;

} else if (mark >= 30) {

gradeLevel = 7;

} else if (mark >= 0) {

gradeLevel = 8;

}

console.log("Final Grade: ", gradeLetter + gradeLevel);

Réiteach malartach é ráiteas if neadaithe a úsáidtear, mar a mhíneofar anois.

Ráitis if Neadaithe Is éard atá i ráiteas if neadaithe, mar a thugann an t-ainm le tuiscint, ráiteas if laistigh de

ráiteas if.

Taispeántar comhréir if neadaithe simplí thíos. Tagraítear don chéad ráiteas if mar an outer if

(lasmuigh) agus tagraítear don if neadaithe mar an inner if (laistigh).

if (condition) {

if (condition) {

statement(s)

} // end inner if

Page 110: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 110

} // end outer if

Cé nach bhfuil teorainn leis an líon ráiteas if is féidir a neadú, is annamh a fheictear níos mó

ná trí leibhéal neadaithe i gcleachtas. (Ina dhiaidh an phointe seo, d’fhéadfadh sé a bheith níos

deacra cód a leanúint agus bíonn malairt rogha níos soiléire ann, de ghnáth.) Seo a leanas an

chuma a bheadh ar thrí leibhéal neadaithe:

if (condition1) {

if (condition2) {

if (condition3) {

statement(s)

} // end if 3

} // end if 2

} // end if 1

Ní rithfear an coinníoll if laistigh ach amháin má luacháiltear an coinníoll/na coinníollacha if

roimhe seo mar true.

Féadfaidh neadú tarlú laistigh den chlásal else chomh maith – is mar seo a leanas an

chomhréir:

if (condition) {

statement(s)

} // end if

else {

if (condition) {

statement(s)

} // end if

else {

statement(s)

} // end else

} // end else

Page 111: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 111

An fhadhb maidir le grád a réiteach ach neadú a úsáid

Taispeánann an ríomhchlár thíos an tslí ar féidir neadú a úsáid chun freastal ar ghráid

Ghnáthleibhéil agus Ardleibhéil araon chun marc céatadáin a mhapáil le grád deiridh.

let gradeLetter = prompt("Enter a letter: H = Higher, O = Ordinary");

let mark = Number(prompt("Enter percentage mark (0-100):"));

let grade;

if (gradeLetter == "H") {

if (mark >= 90) {

grade = "H1";

} else if (mark >= 80) {

grade = "H2";

} else if (mark >= 70) {

grade = "H3";

} else if (mark >= 60) {

grade = "H4";

} else if (mark >= 50) {

grade = "H5";

} else if (mark >= 40) {

grade = "H6";

} else if (mark >= 30) {

grade = "H7";

} else if (mark >= 0) {

grade = "H8";

}

} // end if gradeLetter is "H"

else if (gradeLetter == "O") {

if (mark >= 90) {

grade = "O1";

} else if (mark >= 80) {

grade = "O2";

} else if (mark >= 70) {

grade = "O3";

} else if (mark >= 60) {

grade = "O4";

} else if (mark >= 50) {

grade = "O5";

} else if (mark >= 40) {

grade = "O6";

} else if (mark >= 30) {

grade = "O7";

} else if (mark >= 0) {

grade = "O8";

}

} // end if gradeLetter is "O"

Sa ríomhchlár thuas, úsáidtear an if lasmuigh chun an cód d’ardleibhéal nó do ghnáthleibhéal

a roghnú. Tá an roghnú (i.e. cinneadh) bunaithe ar an gcoinníoll gradeLetter == "H". Sa chás

go luacháiltear sin mar false déanfaidh an ríomhchlár an coinníoll gradeLetter == "O" (a

shonraítear sa chuid else den if lasmuigh) a thástáil.

Bain triail as!

Page 112: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 112

Céard a tharlódh sa chás go n-iontrálfadh an t-úsáideoir litir seachas ‘H’ nó

‘O’? Céard a tharlódh sa chás go n-iontrálfadh an t-úsáideoir marc os cionn

100 nó marc diúltach?

Cuirtear an loighic chéanna i bhfeidhm sa chód thíos agus a chuirtear i bhfeidhm sa ríomhchlár

ar an leathanach roimhe seo. Baintear úsáid as neadú sa réiteach seo freisin ach déantar na

ráitis if a neadú in ord beagán difriúil sa chás seo.

// Neadú malartach chun an toradh céanna a bhaint amach

let gradeLetter = prompt("Enter a letter: H = Higher, O = Ordinary");

let mark = Number(prompt("Enter percentage mark (0-100):"));

let grade;

if (mark >= 90) {

if (gradeLetter == "H") {

grade = "H1";

} else if (gradeLetter == "O") {

grade = "O1";

}

} else if (mark >= 80) {

if (gradeLetter == "H") {

grade = "H2";

} else if (gradeLetter == "O") {

grade = "O2";

}

} else if (mark >= 70) {

if (gradeLetter == "H") {

grade = "H3";

} else if (gradeLetter == "O") {

grade = "O3";

}

} else if (mark >= 50) {

if (gradeLetter == "H") {

grade = "H5";

} else if (gradeLetter == "O") {

grade = "O5";

}

} else if (mark >= 40) {

if (gradeLetter == "H") {

grade = "H6";

} else if (gradeLetter == "O") {

grade = "O6";

}

} else if (mark >= 0) {

if (gradeLetter == "H") {

grade = "H8";

} else if (gradeLetter == "O") {

grade = "O8";

}

}

Déan staidéar cúramach ar an gcód thuas. Cinntigh go dtagann na lúibíní tosaigh agus deiridh

le chéile.

Déan an ríomhchlár thuas a mheas. Céard atá in easnamh? An gceapann tú

go bhfuil an cur chuige sa réiteach seo níos fearr ná an ceann ar an

leathanach roimhe seo? Cén fáth? Cén fáth nach bhfuil?

Page 113: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 113

Page 114: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 114

An t-uasluach as trí uimhir a aimsiú

Cinneann an ríomhchlár thíos an ceann is mó de thrí uimhir a iontrálann an t-úsáideoir.

// uasluach as trí uimhir

let x1 = Number(prompt("Please enter 1st number: "));

let x2 = Number(prompt("Please enter 2nd number: "));

let x3 = Number(prompt("Please enter 3rd number: "));

let max;

if ((x1 >= x2) && (x1 >= x3)) {

max = x1;

} else if ((x2 >= x1) && (x2 >= x3)) {

max = x2;

} else {

max = x3;

}

console.log("The largest number you entered was", max);

Tabhair faoi deara an úsáid a bhaintear as an oibreann loighciúil AND, &&. An straitéis a

úsáidtear sa réiteach seo ná an luach seo a chur i gcomparáid le gach ceann de na luachanna

eile. Seo a leanas an míniú air sin:

▪ Déanann an chéad choinníoll tástáil ar cibé an bhfuil x1 níos mó ná nó cothrom le x2 agus

x3 araon. Sa chás go luacháiltear an tástáil mar true is féidir teacht ar an gconclúid go

gcaithfidh sé go bhfuil x1 ar an gceann is mó de na trí uimhir agus mar sin déanaimid é a

shábháil san athróg max.

▪ Sa chás go dteipeann ar an gcéad tástáil, bogann an ríomhchlár ar aghaidh chuig an dara

coinníoll chun é a thástáil. Iarrann an coinníoll cibé an bhfuil x2 níos mó ná nó cothrom le

x1 agus x3 araon. Más tá, is féidir linn x2 a shábháil san athróg max.

▪ Sa chás go dteipeann ar an dara tástáil, an t-aon fhéidearthacht atá fanta ná gur x3 an

ceann is mó de na trí uimhir agus socraímid max dá réir sin.

Cuir isteach an ríomhchlár thuas agus déan tástáil air. An oibríonn sé?

Céard é an t-íosmhéid tástálacha a bheadh ort a dhéanamh le bheith

cinnte go n-oibríonn sé?

Déan an ríomhchlár a mheas anois. Cá mhéad comparáidí is gá a dhéanamh

– féach ar an gcás is fearr agus ar an gcás is measa. Céard faoi dá mbeimis

ag iarraidh an ceann is mó as ceithre uimhir a aimsiú? Céard faoi cúig cinn?

Page 115: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 115

Page 116: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 116

Léiríonn na léaráidí sreabhchairte thíos dhá straitéis mhalartacha a d’fhéadfaí a úsáid chun an

fhadhb ‘an ceann is mó as trí cinn’ a réiteach. Cuir an dá réiteach i bhfeidhm agus déan iad a

mheas.

Réiteach A

An straitéis a ghlactar anseo ná crann cinnteoireachta a úsáid (tá neadú i gceist leis an gcur i

bhfeidhm).

Réiteach B

Is straitéis níos líní (seicheamhach) í seo. Ar dtús, sanntar x1 ar max agus ansin cuirtear gach

uimhir i gcomparáid le max. Agus sin á dhéanamh, athraítear luach max chuig uimhir ar bith atá

níos mó.

Page 117: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 117

Cuir an dá straitéis a thaispeántar ar an leathanach roimhe seo i

gcóimheas. Cé acu is fearr dar leat agus cén fáth sin? Cén chaoi a

scálaítear gach réiteach?

Machnamh!

Céard a bhí dúshlánach duit? Céard a thug ort tuilleadh machnaimh a

dhéanamh? Cén chaoi a bhféadfaí é seo a úsáid i seomra ranga

Ríomheolaíocht na hArdteistiméireachta?

Page 118: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 118

Page 119: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 119

An t-oibreoir trínártha Is bealach gearr é an t-oibreoir trínártha leis an ráiteas Ráiteasif-else a scríobh. Cuirtear

san áireamh anseo ar é mhaith le críochnúlacht.

An phríomh-úsáid a bhaintear as an oibreoir trínártha ná luach a shannadh d’athróg bunaithe ar

aschur coinníll shimplí éigin. Cuir i gcás gur mhian linn an ceann is mó as dhá uimhir a

chinneadh agus an toradh a stóráil in athróg ar a dtabharfaí max. D’fhéadfaimis an méid seo a

leanas a scríobh:

if (n1 > n2) {

max = n1;

} else {

max = n2

}

Is féidir an loighic chéanna a bhaint amach leis an oibreoir trínártha mar seo a leanas.

let max = (n1 > n2) ? n1 : n2;

Tá trí chuid ag an oibreoir (is é sin an fáth a dtugtar trínártha air) – iad idirdhealaithe ag

comhartha ceiste agus idirstad. Mar seo a leanas comhréir an oibreora trínártha:

condition ? expression1 : expression2

Déantar an coinníoll a mheas ar dtús. Más true an toradh, déantar an chéad slonn a mheas

agus a thabhairt. Murab ea, luacháiltear an coinníoll mar false, agus déantar an dara slonn a

mheas agus a thabhairt.

Sa sampla thíos, sanntar true d’athróg ar a dtugtar isEven sa chás gur ré-uimhir í slánuimhir

a dhéanann ionadaíocht ar num; murab ea, sanntar false mar luach ar isEven.

let isEven = (num % 2 == 0) ? true : false;

Page 120: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 120

An Ráiteas switch

Is éard atá i ráiteas switch bealach eile chun cód a roghnú. Tá corp ráiteas switch

comhdhéanta de roinnt clásail case ar leith. Tá gach clásal case comhdhéanta de luach agus

bloc cóid a bhaineann leis.

Oibríonn an ráiteas trí shlonn a thástáil (e.g. luach litriúil nó athróg) le haghaidh comhionannais

in aghaidh gach luach case. Sa chás go bhfaightear meaitseáil, roghnaítear na ráitis a

chomhdhéanann an bloc cóid comhfhreagrach lena rith.

Taispeántar comhréir an ráitis switch ar an taobh clé thíos agus mínítear an tséimeantaic ar

an taobh deis.

switch(expression) {

case value1:

statement(s)

break;

case value2:

statement(s)

break;

...

default:

statement(s)

} // end switch

Nótaí:

1) Cuirtear toradh an tsloinn i gcomparáid le luach case agus úsáid á baint as an dian-oibreoir

comhionannais (===). Ní mór go meaitseálfadh na luachanna gan aon chomhshó cineáil,

mar sin.

2) Nuair atá an luach a bhfuil ‘switch on’ á dhéanamh air cothrom le case, rithfear na ráitis a

thagann i ndiaidh an case sin go dtí go sroichfear ráiteas break.

Page 121: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 121

3) Nuair a shroichtear ráiteas break, tagann deireadh leis an switch agus léimeann an

sreabhadh rialúcháin chuig an chéad líne eile i ndiaidh an ráitis switch.

4) Féadfar líon ar bith ráiteas case a bheith in switch. Tagann an luach atá le cur i

gcomparáid, agus idirstad, i ndiaidh gach case.

5) Ní gá go mbeadh break i ngach case. Mura bhfuil break ann, titfidh an sreabhadh

rialúcháin ar aghaidh chuig cásanna ina dhiaidh go dtí go sroichfear break. (Meastar go

forleathan gur dea-chleachtas ríomhchlárúcháin é ráiteas break a chur ag deireadh gach

tacair ráiteas cásanna.)

6) Féadfaidh cás roghnach default a bheith ag ráiteas switch, nach mór a bheith le feiceáil

ag deireadh an switch. Is féidir an cás default a úsáid chun tasc a chur i gcrích nuair

nach luacháiltear ceann ar bith de na meaitseálacha mar true. Ós rud é go bhfágtar

default ag deireadh an ráitis switch de ghnáth, ní gá ráiteas break a áireamh ann, de

ghnáth. (Níl aon dochar ann, áfach, ráiteas break a áireamh laistigh den default.)

POINTE TÁBHACHTACH: Is éard atá i ráiteas switch ná malairt rogha ar an

gcomhstruchtúr ilbhealaí else-if a ndearnadh cur síos air níos luaithe sa chuid

seo agus úsáidtear é nuair a bhíonn níos mó ná ceithre ná cúig cinn de bhrainsí

else-if ann.

Tá an dá ríomhchlár seo a leanas coibhéiseach ó thaobh na loighce de. Baineann an

ríomhchlár ar chlé úsáid as ráitis else-if arís agus arís eile agus baineann an ríomhchlár ar

dheis úsáid as ráiteas switch chun an rud céanna a dhéanamh (i.e. an focal le haghaidh

slánuimhir ar bith idir 1-4 a thaispeáint.)

let x = prompt("Enter a number from 1-4")

if (x == 1) {

console.log("One");

} else if (x == 2) {

console.log("Two");

} else if (x == 3) {

console.log("Three");

} else if (x == 4) {

console.log("Four");

let x = prompt("Enter a number from 1-4")

switch (x) {

cás 1:

console.log("One");

break;

cás 2:

console.log("Two");

break;

cás 3:

console.log("Three");

break;

cás 4:

Page 122: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 122

} else {

console.log("Sorry. Unknown value.");

}

console.log("Four");

break;

default:

console.log("Sorry. Unknown value.");

break;

}

Dúshlán ríomhchlárúcháin!

Cuir an ríomhchlár seo a leanas i bhfeidhm ionas go mbainfidh sé úsáid as

ráiteas switch

let country = prompt("Enter a country and I will tell you its capital");

if (country == "Ireland") {

console.log("Dublin");

} else if (country == "Scotland") {

console.log("Edinburgh");

} else if (country == "England") {

console.log("London");

} else if (country == "Wales") {

console.log("Cardiff");

} else if (country = "France") {

console.log("Paris");

}

Bain triail as!

Cuir isteach an cód seo a leanas agus iontráil roinnt luachanna. Bain triail

as a oibriú amach céard a dhéanann an cód. Déan cur síos ar céard a

dhéanann sé go sonrach agus ar an tslí a ndéanann sé é. An bhfuil tú in ann

aon fhabhtanna a aimsiú agus má tá, an bhfuil tú in ann aon réitigh a

mholadh?

let num = prompt("Enter a number");

let rem = num % 10;

let suffix;

switch (rem) {

cás 1:

suffix = "st";

break;

cás 2:

suffix = "nd";

break;

cás 3:

suffix = "rd";

break;

default:

suffix = "th";

} // end switch

console.log("Output:", num+suffix);

Page 123: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 123

Cleachtaí ríomhchlárúcháin – Ráitis Roghnaithe

1. Scríobh ríomhchlár a thugann leid don úsáideoir uimhir mhíosa a iontráil agus a

thaispeánann an líon laethanta sa mhí sin agus ainm na míosa á úsáid sa teachtaireacht

aschuir. (Glac leis go bhfuil 28 lá i mí Feabhra.) Mar shampla, sa chás go n-iontrálann an t-

úsáideoir 3, ba cheart don ríomhchlár an teachtaireacht seo a thaispeáint – March has 31

days.

2. Scríobh ríomhchlár a thugann leid don úsáideoir dhá shlánuimhir ar leith a iontráil – uimhir

don lá agus uimhir don mhí. Ba cheart don ríomhchlár an teachtaireacht Valid dd/mm

combination a aschur más teaglaim bhailí é agus invalid dd/mm combination murab ea. Is

samplaí de theaglamaí neamhbhailí iad 32, 1 (níl ach 31 lá i mí Eanáir) agus 5, 13 (níl ach

12 mhí ann).

3. Scríobh ríomhchlár a thugann leid don úsáideoir bliain a iontráil agus a thaispeánann cibé

an bliain bhisigh atá (nó a bheidh) sa bhliain sin. Tugtar mar shainmhíniú ar bhliain bhisigh

bliain atá inroinnte ar 4 ach amháin sa chás go bhfuil sí inroinnte go beacht ar 100 freisin.

Níl blianta atá inroinnte go beacht ar 4 agus ar 100 araon ina mblianta bisigh ach amháin sa

chás go bhfuil siad inroinnte ar 400 freisin. Mar sin,

✔ Is blianta bisigh iad 1992, 2020 agus 2104 mar gheall go bhfuil siad inroinnte ar 4 (agus ní ar

100).

✔ Ní blianta bisigh iad 1800, 1900 agus 2200 mar gheall go bhfuil siad inroinnte go beacht ar 4 ach

níl siad inroinnte ar 400.

✔ Is blianta bisigh iad 1600, 2000 agus 2400 mar gheall go bhfuil siad inroinnte go beacht ar 4 agus

ar 100 agus ar 400.

Page 124: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 124

Is iomaí réiteach códúcháin atá ann lena chinneadh cibé an bliain bhisigh atá i mbliain éigin

nó nach ea. Tugtar an súdachód ar réiteach amháin anseo. Bain triail as é a chur i

bhfeidhm.

if (year is not divisible by 4) 🡪 (Not Leap)

else if (year is not divisible by 100) 🡪 (Leap Year)

else if (year is not divisible by 400) 🡪 (Not Leap)

else (Leap Year)

Is iomaí bealach atá ann an loighic chéanna a chur in iúl – bain triail as ceann duit féin a

cheapadh!

Déan machnamh ar na cleachtaí go léir sa rannán seo.

Tabhair le fios cén chaoi a bhféadfaí ceann ar bith de na cleachtaí seo a

oiriúnú le húsáid i rang Ríomheolaíocht na hArdteistiméireachta de do chuid

féin?

Page 125: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 125

Page 126: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 126

Ráitis Atrialla (lúba) Is minic a thagraítear do ráitis atrialla mar lúba. Cuireann siad ar chumas ríomhchláraitheoirí

cód a scríobh a rithfear arís agus arís eile ag am rite.

Taispeántar an smaoineamh maidir le hatriall thíos – léiríonn an líne ghlas cosán rite na lúibe.

Tá dhá phríomh-chomhpháirt i lúb – garda lúibe agus corp lúibe.

- Is coinníoll é garda lúibe a úsáidtear lena chinneadh cibé ar cheart nó nár cheart an corp

lúibe a rith. Sa chás go luacháiltear an garda lúibe mar true, ritear an corp lúibe; mura

luacháiltear, ní ritear é.

- Is éard atá i gcorp lúibe ná bloc cóid a ritear arís agus arís eile. Gach uair a ritear corp lúibe,

tugtar atriall air sin. Déantar an garda lúibe a atástáil ag deireadh gach atrialla agus ritear an

corp lúibe fad is gurb é true toradh na tástála seo. Nuair a luacháiltear an coinníoll garda

Page 127: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 127

lúibe mar false, deirtear go dtagann deireadh leis an lúb agus leantar leis an bpróiseáil ag

an gcéad líne eile i ndiaidh an choirp lúibe.

Tá lúba áisiúil mar ní bhíonn ar ríomhchláraitheoirí go leor línte cóid a chóipeáil agus a ghreamú

ina ríomhchláir. Cuir i gcás, mar shampla, gur mian le ríomhchláraitheoir an teaghrán Hello

World a thaispeáint 100 uair ar an gconsól aschuir. Gan lúba, bheadh orthu 100 líne chóid a

scríobh – líne in aghaidh gach líne aschuir – mar seo a leanas

console.log("Hello World"); // 1ú uair

console.log("Hello World"); // 2ú huair

console.log("Hello World"); // 3ú huair

console.log("Hello World"); // 4ú huair

...

console.log("Hello World"); // 56ú huair. (Méanfach!)

console.log("Hello World"); // 57ú huair. (Méanfach! Zzz!)

...

console.log("Hello World"); // 99ú huair. (zzzZZ!)

console.log("Hello World"); // 100ú huair (Faoi

dheireadh!)

Hello World

Hello World

Hello World

Hello World

...

Hello World

Hello World

...

Hello World

Hello World

Ríomhchlár 100 líne chun an teaghrán Hello World a thaispeáint 100 uair Aschur an Ríomhchláir

POINTE TÁBHACHTACH: Is éard atá i lúb ná comhstruchtúr ríomhchlárúcháin

a thugann deis an bloc céanna cóid a rith cúpla uair.

Is léir an t-athrá sa chód thuas. Léirítear sa léaráid thíos an tslí a bhféadfadh lúba leas a bhaint

as nádúr athráiteach an chóid seo.

Page 128: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 128

Tacaíonn JavaScript le roinnt cineálacha éagsúla lúba – while, do-while agus for.

Breathnaímis ar chomhréir agus ar shéimeantaic gach ceann ar a sheal.

An lúb while

Mar seo a leanas comhréir na lúibe while:

while (condition) {

statement(s)

}

Sa chód thíos, léirítear an úsáid a mbaintear as lúb while chun Hello World a thaispeáint 100

uair.

let counter = 0;

while (counter < 100) {

console.log("Hello World");

counter++; // Cuir 1 leis an áiritheoir – sroichfear 100 ar deireadh

}

Sin é – díreach cúig líne (seachas 100) – simplí!

Page 129: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 129

Is féidir séimeantaic na lúibe while a mhíniú ach an

tsreabhchairt ar dheis a úsáid.

Is é an pointe tábhachtach ná go ritear na ráitis

coirp lúibe gach uair a luacháiltear coinníoll an

garda lúibe go true.

Sa sampla Hello World, is é counter < 100 an

garda lúibe. Ritear an dá ráiteas laistigh den chorp

lúibe arís agus arís eile fad is go bhfuil an t-

áiritheoir níos lú ná 100. Tabhair ar aird go gcuirtear

incrimint ag deireadh gach atrialla, rud a chinntíonn

go gcuirfear deireadh leis an lúb ar deireadh.

Page 130: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 130

Féachaimis ar roinnt samplaí.

Sampla 1 (táblaí)

Sa sampla seo, forbróimid ríomhchlár chun tábla iolrúcháin 7 (suas go 12) a thaispeáint.

Smaoinigh air – ní mór dúinn na línte ar fad a thaispeáint ó 7 × 1 = 7

go dtí 7 × 12 = 84. Taispeántar an t-aschur inmhianaithe ar dheis.

Tá an chéad slánuimhir mar an gcéanna i ngach ceann de na línte

aschuir seo, i.e. 7. Tagann athrú ar an dara slánuimhir, i.e. athraíonn

sí ó 1 go 12. D’fhéadfadh sí sin feidhmiú mar an t-áiritheoir lúibe –

tugaimis counter uirthi.

Ríomhtar an luach ar thaobh na láimhe deise den chomhartha

cothroime trí 7 a iolrú faoi counter.

Gintear gach líne aschuir ag an ráiteas:

console.log("7 x", counter, "=", 7*counter);

Tugtar an ríomhchlár iomlán chun tábla iolrúcháin 7 a thaispeáint anois:

let counter = 0;

while (counter <= 12) {

console.log("7 x", counter, "=", 7*counter);

counter++; // Cuir 1 leis an áiritheoir

Leasú beag atá sa ríomhchlár a thaispeántar thíos – iarrann sé ar an úsáideoir céard iad na

táblaí iolrúcháin is mian leo a bheith ar taispeáint.

let counter = 0;

let tables = prompt("What times tables do you require?");

while (counter <= 12) {

console.log(tables, "x", counter, "=", tables*counter);

counter++; // Áiritheoir incrimintí

}

Page 131: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 131

Cuir isteach é agus bain triail as thú féin!

Sampla 2 (meán an ranga)

Cuir i gcás gur mian linn ríomhchlár a scríobh a thugann leid don úsáideoir cúig shlánuimhir a

iontráil agus ansin meán uimhríochtúil a thaispeáint.

D’fhéadfaí réiteach amháin a bhaint amach mar seo a leanas.

let x1 = Number(prompt("Enter integer value 1"));

let x2 = Number(prompt("Enter integer value 2"));

let x3 = Number(prompt("Enter integer value 3"));

let x4 = Number(prompt("Enter integer value 4"));

let x5 = Number(prompt("Enter integer value 5"));

let total = x1+x2+x3+x4+x5;

console.log("Mean value:", total/5);

Tá cuma athráiteach agus foclach air sin – is comhartha é sin gur réiteach níos fearr a bheadh i

lúb.

Céard faoi dá n-iarrfaí orainn an meánmhéid as 50 slánuimhir a ríomh, seachas cúig cinn?

Fiosraímis réiteach ar an bhfadhb sin a úsáideann lúb while.

Beidh ar an réiteach lúibe iomlán reatha a choimeád maidir leis na luachanna go léir a

iontráiltear. Chomh luath agus a iontráiltear an luach deiridh, is féidir an meán a ríomh, tríd an

iomlán a roinnt ar a cúig. Úsáidimid súdachód mar chéim thosaigh agus an réiteach á fhorbairt.

Túsaigh an t-iomlán go nialas

Túsaigh áiritheoir go 0

Déan lúb 50 uair (fad is atá an t-áiritheoir níos lú ná 50)

Tabhair leid don úsáideoir luach slánuimhreach a iontráil

Nuashonraigh an t-iomlán leis an luach atá díreach iontráilte (total+=value)

Taispeáin an t-iomlán roinnte ar 50

Dúshlán!

An féidir leat an súdachód thuas a aistriú chuig ríomhchlár JavaScript?

Page 132: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 132

POINTE TÁBHACHTACH: Nuair is eol an líon atriallta sula ritear ríomhchlár is

féidir athróg áiritheora a úsáid sa gharda lúibe. Tugtar athdhéanamh faoi rialú

áiritheora air sin.

Sampla 3 (fairtheoirí)

Sa dá shampla roimhe seo, d’úsáideamar áiritheoir chun an líon athdhéanta lúibe a rialú.

Bhíomar in ann sin a dhéanamh mar gheall gurbh eol dúinn an líon uaireanta a rabhamar ag

iarraidh an corp lúibe a rith sular ritheadh an ríomhchlár. Mar sin féin, is iomaí cásanna nach eol

don ríomhchláraitheoir an líon atriallta atá de dhíth roimh ré. Cuir i gcás, mar shampla, an

fhadhb a bhaineann le líon uimhreacha nach bhfuil ar eolas againn a chur leis.

An dúshlán a bhaineann leis sin ná garda lúibe a fhorbairt a cheadóidh don ríomhchlár an lúb a

rith líon athraitheach uaireanta.

Túsaigh an t-iomlán reatha go nialas

Tabhair leid don úsáideoir an chéad uimhir a iontráil

Déan lúb fad is go bhfuil níos mó uimhreacha le cur leis.

Cuir an uimhir atá díreach iontráilte leis an iomlán reatha

Tabhair leid don úsáideoir uimhir eile a iontráil

Cuir an t-iomlán ar taispeáint

Céard go díreach a chiallaíonn ‘fad is go bhfuil níos mó uimhreacha le cur leis’? Chun an cheist

sin a fhreagairt caithfimid fairtheoirí a thuiscint.

POINTE TÁBHACHTACH: Is éard atá i bhfairtheoir luach a úsáidtear i ngarda

lúibe nuair nach eol an líon atriallta sula ritear an ríomhchlár. Cinneann an

ríomhchláraitheoir an luach fairtheora agus úsáidtear é chun an coinníoll a

chuirfidh deireadh le lúb a chruthú.

Is éard atá sa chód thíos ná an súdachód thuas á chur chun feidhme ag JavaScript. Is é an

fairtheoir an coinníoll number != 0 rud a chiallaíonn go ritear an lúb fad is nach bhfuil an luach

uimhriúil cothrom le nialas. Is féidir líon uimhreacha nach bhfuil ar eolas a iontráil.

let runningTotal = 0;

let number = Number(prompt("Enter a number (0 to end):"));

while (number != 0) {

runningTotal += number;

Page 133: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 133

number = Number(prompt("Enter a number (0 to end):"));

}

console.log("Total:", runningTotal);

An t-aon bhealach le deireadh a chur leis an lúb ná go n-iontrálfadh an t-úsáideoir luach nialais

don number. An toradh a bheadh air sin ná go luachálfaí an coinníoll number != 0 mar

false, rud a chuirfeadh deireadh leis an lúb.

Áiritheoirí lúibe agus fairtheoirí

Ní rud neamhchoitianta é áiritheoirí a úsáid i lúba faoi rialú fairtheoirí. An príomhchuspóir le

háiritheoirí mar sin ná taifead a choinneáil ar an líon atriallta a rinneadh.

Mar shampla, dá mbeimis ag iarraidh meán líon luachanna nach bhfuil ar eolas againn a ríomh

– gach ceann iontráilte ag an úsáideoir – bheadh orainn roinnt ar an áiritheoir chomh luath agus

a bheadh na luachanna go léir curtha leis. Léirítear é sin sa ríomhchlár thíos.

let counter = 0;

let runningTotal = 0;

let number = prompt("Enter a number ('stop' to end):");

while (number != 'stop') {

counter++; // Áiritheoir incrimintí

number = Number(number)

runningTotal += number;

number = prompt("Enter a number ('stop' to end):");

}

if (counter == 0) // seachain roinnt ar nialas

console.log("No mean value as there were no values entered");

else

console.log("Mean value:", runningTotal/counter);

Tabhair faoi deara an úsáid a bhaintear as ‘stop’ mar luach fairtheora, i.e. leanann an lúb ar

aghaidh go dtí go n-iontrálann an t-úsáideoir ‘stop’.

Sa chód thuas, túsaítear an athróg counter go nialas agus ansin cuirtear incrimint leis i ngach

atriall den lúb. Go bunúsach, tá an counter á úsáid chun an líon luachanna slánuimhreach a

iontrálann an t-úsáideoir a thaifeadadh. Nuair a thagann deireadh leis an lúb ar deireadh,

d’fhéadfadh luach slánuimhreach ar bith os cionn nialais nó cothrom leis a bheith i luach an

counter. Maidir le gach slánuimhir dhearfach, ríomhtar an meánluach mar

runningTotal/counter agus taispeántar é. Más nialas an counter, faigheann an t-

úsáideoir teachtaireacht a deir o mean value as there were no values entered.

Page 134: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 134

Is féidir an patrún ginearálta do lúb fairtheora a chur in iúl i súdachód mar seo a leanas:

tabhair leid don úsáideoir an chéad luach a iontráil

chomh fada is nach ionann an luach agus an fairtheoir:

déan an luach a phróiseáil

tabhair leid don úsáideoir an chéad luach eile a iontráil

Cleachtaí Ríomhchlárúcháin (fairtheoirí a roghnú)

Aistrigh an súdachód a thugtar sna ceisteanna thíos go JavaScript. An

príomhdhúshlán i ngach ceist ná fairtheoir iontaofa a roghnú.

1. Is é cuspóir an ríomhchláir seo ná toradh liosta athraitheach uimhreacha dearfacha a

d’iontráil úsáideoir a ríomh agus a thaispeáint.

Túsaigh an toradh go dtína haon

Tabhair leid don úsáideoir an chéad uimhir a iontráil

chomh fada agus nach bhfuil an uimhir cothrom le luach an fhairtheora

déan an toradh a ríomh (i.e. product=product*number)

tabhair leid don úsáideoir an chéad uimhir eile a iontráil

Taispeáin toradh iomlán na n-uimhreacha go léir a iontráladh

2. Léann an ríomhchlár seo slánuimhir dhearfach ón úsáideoir arís agus arís eile agus

taispeánann a fréamh chearnach.

tabhair leid don úsáideoir an uimhir dhearfach a iontráil

chomh fada is nach ionann an uimhir agus an fairtheoir

root = Math.sqrt(number);

taispeáin an fhréamh

tabhair leid don úsáideoir uimhir dhearfach eile a iontráil

3. Roghnaíonn an ríomhchlár seo uimhir randamach idir 1 agus 10 agus leanann air ag

iarraidh ar an úsáideoir tomhas a iontráil go dtí go dtomhaistear an uimhir cheart.

gin uimhir randamach idir 1 agus 10

léigh an chéad tomhas ón úsáideoir

chomh fada agus nach ionann an uimhir randamach agus an tomhas:

léigh an chéad tomhas eile

Tabhair le fios cén chaoi a bhféadfaí an ríomhchlár a leasú chun:

a) trí thomhas ar a mhéad a cheadú

b) deireadh a chur leis nuair a iontrálann an t-úsáideoir an focal ‘stop’

Page 135: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 135

Sampla 3 (sonraí a bhailíochtú)

Úsáid choitianta amháin is féidir a bhaint as lúba agus fairtheoirí ná dáta a bhailíochtú, i.e. a

chinntiú go bhfuil an dáta a d’iontráil úsáideoir bailí. (Ní mór an chiall bheacht atá le baint as

bailí a shainmhíniú mar chuid den ríomhchlár a cheapadh. Mar shampla, dá mbeifeá ag iontráil

aois duine sa chóras, céard a bheadh sna luachanna bailí? Céard faoi sheoladh ríomhphoist?

Leasainm Twitter?)

An patrún ginearálta ná leanúint de leideanna a thabhairt don úsáideoir an luach i gceist a

iontráil go dtí go mbeidh sé bailí. Taispeántar an patrún sa súdachód seo a leanas. Cinntíonn

an lúb go mbeidh luach bailí le próiseáil ag an ríomhchlár faoin am a sroichfear an líne

dheireanach.

tabhair leid don úsáideoir luach a iontráil

chomh fada agus nach bhfuil an luach bailí

[display error message] // roghnach

tabhair leid don úsáideoir luach a iontráil

déan an luach a phróiseáil

Taispeánann an sampla thíos an tslí le freagra den chineál yes/no a bhailíochtú. Dhearbhaigh

an lúb go mbeidh Y nó N iontráilte ag an úsáideoir faoin am a thagann deireadh leis an

ríomhchlár. Bíonn gach luach eile ‘gafa’ ag an lúb.

// Bailíochtaigh freagra yes/no

let response = prompt("Do you wish to continue (Y/N)");

while (response != "Y" && response != "N") {

response = prompt("Do you wish to continue (Y/N)");

}

Page 136: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 136

// freagra bailí

console.log("Thank you. You entered a valid response ... ");

Sa chéad sampla eile seo coinnítear an lúb ar bun go dtí go n-iontrálann an t-úsáideoir

slánuimhir idir 1 agus 12, an dá uimhir sin san áireamh. D’fhéadfaí é a úsáid chun uimhir míosa

a bhailíochtú.

// Bailíochtaigh uimhir míosa

let month = Number(prompt("Enter a month number (1-12)"));

while (isNaN(month) || (month < 1 || month > 12)) {

month = Number(prompt("Enter a month number (1-12)"));

}

console.log("Thank you. You entered a valid month number ... ");

An lúb do-while

Tá lúb do-while cosúil le lúb while, ach amháin gur cinnte go rithfear lúb do-while uair

amháin ar a laghad.

Mar seo a leanas comhréir lúb do-while:

do {

statement(s)

} while(condition);

Moltar lúibíní slabhracha a úsáid cé nach dteastaíonn siad, go teicniúil, ach amháin sa chás go

bhfuil níos mó ná ráiteas amháin i gcorp na lúibe. Tabhair faoi deara go dtagann an lúibín

slabhrach tosaigh díreach i ndiaidh an eochairfhocail do agus go dtagann an lúibín slabhrach

deiridh díreach roimh an eochairfhocal while.

Léirítear an chomhréir thuas sa tsreabhléaráid thíos.

Page 137: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 137

Tabhair faoi deara go dtagann an coinníoll

garda lúibe ag deireadh an choirp lúibe, lena

chinntiú go rithfear an ráiteas/na ráitis sa chorp

lúibe uair amháin sula mbainfear an coinníoll

amach.

Sa chás go luacháiltear an garda lúibe mar

true, léimeann an sreabhadh rialúcháin siar

go dtí an chéad ráiteas sa chorp lúibe, le

haghaidh atriall eile. Athdhéantar an próiseas

sin go dtí go luacháiltear an garda lúibe mar

false.

Is faoin ríomhchláraitheora féin an rogha idir while agus do-while a úsáid. Is féidir loighic an

do-while a bhaint amach i gcónaí le lúb while ach níl a mhalairt fíor i gcónaí. Ar an gcúis sin,

meastar go bhfuil an comhstruchtúr while níos solúbtha agus is dócha go n-úsáidtear é níos

minice ná an do-while.

An ghné uathúil dhíolacháin atá ag an do-while ná gur féidir a ráthú go rithfear ráitis i gcorp

lúibe uair amháin ar a laghad. Baintear leas as sin sa sampla thíos ina mbailíochtaítear freagra

yes/no a iontrálann an t-úsáideoir. Leantar leis an lúb fad is nach Y ná N an freagra.

// Bailíochtaigh freagra yes/no (leagan do-while)

let response;

do {

response = prompt("Do you wish to continue (Y/N)");

} while (response != "Y" && response != "N");

// freagra bailí

console.log("Thank you. You entered a valid response ... ");

Dúshlán!

Mionathraigh an dá liostáil chóid thíos le go n-úsáidfidh siad do-while

seachas while

// Bailíochtaigh uimhir míosa

let month = Number(prompt("Enter a month number (1-12)"));

while (isNaN(month) || (month < 1 || month > 12)) {

month = Number(prompt("Enter a month number (1-12)"));

}

Page 138: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 138

console.log("Thank you. You entered a valid month number ... ");

let runningTotal = 0;

let number = Number(prompt("Enter a number (0 to end):"));

while (number != 0) {

runningTotal += number;

number = Number(prompt("Enter a number (0 to end):"));

}

console.log("Total:", runningTotal);

Machnamh!

Céard é do rogha – do-while nó while?

Cleachtaí Ríomhchlárúcháin (lúba while)

1. Léigh gach ceann de na bloghanna cóid seo a leanas go cúramach agus déan an t-aschur a

ghinfeadh gach ceann de na lúba while ina bhfuil. I ngach cás, ba cheart duit an cód a chur

isteach agus a rith chun an méid a thuar tú a chur i gcomparáid leis an aschur iarbhír.

Lúb 1 Aschur Tuartha Aschur Iarbhír

let count = 1;

while (count <= 5) {

console.log(count);

count++;

}

Lúb 2 Aschur Tuartha Aschur Iarbhír

Page 139: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 139

let count = 1;

while (count <= 5) {

count++;

console.log(count);

}

Lúb 3 Aschur Tuartha Aschur Iarbhír

let count = 1;

while (count > 5) {

console.log(count);

count++;

}

Lúb 4 Aschur Tuartha Aschur Iarbhír

let count = 0;

while (count < 10) {

console.log(count);

count += 2;

}

Lúb 5 Aschur Tuartha Aschur Iarbhír

let count = 5;

while (count > 0) {

console.log(count);

count--;

}

Lúb 6 Aschur Tuartha Aschur Iarbhír

let count = 5;

while (count > 0) {

count--;

console.log(count);

}

Page 140: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 140

Lúb 7 Aschur Tuartha Aschur Iarbhír

let count = 5;

while (count >= 0) {

console.log(count);

count--;

}

Lúb 8 Aschur Tuartha Aschur Iarbhír

let count = 1;

while (count++ <= 5) {

console.log(count);

}

Lúb 9 Aschur Tuartha Aschur Iarbhír

let count = 1;

while (++count <= 5) {

console.log(count);

}

2. Scríobh ríomhchlár a thugann leid don úsáideoir dhá shlánuimhir a iontráil agus a

thaispeánann na slánuimhreacha go léir ansin, ón tslánuimhir is ísle go dtí an ceann níos

airde agus an ceann sin san áireamh. Mar sin, sa chás go n-iontrálfadh an t-úsáideoir 3

agus 7 mar shampla, is éard a bheadh san aschur a ghinfí ná 3 4 5 6 7 (agus gach

slánuimhir á taispeáint ar líne ar leith).

3. Scríobh ríomhchláir a ghineann an t-aschur a léirítear thíos:

a) An tábla suimithe le haghaidh 4

b) Tábla cuardaigh Celsius go Fahrenheit le haghaidh gach luach Celsius idir nialas agus 100 i

gcéimeanna de 10. Seo a leanas an fhoirmle 𝐹 =9

5𝐶 + 32.

Page 141: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 141

a)

b)

4. Scríobh ríomhchlár a dhéanann na huimhreacha go léir ó low go high a shuimiú, sa chás

gur dhá shlánuimhir a d’iontráil an t-úsáideoir deiridh iad x agus y. Mar shampla, dá

gcuirfeadh an t-úsáideoir deiridh 8 agus 13 isteach, ríomhfadh an clár toradh de 8 + 9 +

10 + 11 + 12 + 13 agus thaispeánfadh an clár an toradh sin.

5. Is toradh na slánuimhreacha dearfacha go léir atá níos lú ná nó cothrom le n é iolrán

slánuimhreach neamh-dhiúltach n, a léirítear le 𝑛!. Mar shampla, 5! = 5 × 4 × 3 × 2 × 1 =

120. Scríobh ríomhchlár a thugann leid don úsáideoir uimhir a iontráil agus a ríomhann agus

a thaispeánann a hiolrán ansin.

6. Tabhair le fios (agus cuir i bhfeidhm) riail bhailíochtaithe fhéideartha do na luachanna sonraí

seo a leanas:

a) Marc céatadáin b) Grád i Scrúdú na hArdteistiméireachta

c) Cód do chúrsa CAO d) Leasainm Twitter

e) Seoladh ríomhphoist f) Ainm contae ar bith in Éirinn

g) Uimhir theileafóin ar bith h) Uimhir chlárúcháin feithicle de chuid na hÉireann

Page 142: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 142

An lúb for

Taispeántar comhréir lúba for thíos.

for(initialisation; condition; step){

statement(s)

}

Tá trí chuid sa ráiteas for agus gach

ceann deighilte ag leathstadanna –

túsú, coinníoll agus céim. Tá an corp

lúibe comhdhéanta den ráiteas/de na

ráitis.

Is féidir séimeantaic na lúba for a mhíniú ach an tsreabhchairt anótáilte seo a leanas a úsáid.

Mínímis é seo le sampla. Úsáideann an cód thíos lúb for chun an teaghrán Hello World a

thaispeáint trí huaire.

for (let counter = 0; counter < 3; counter++) {

console.log("Hello World");

}

Hello World

Hello World

Hello World

Lúb shimplí for Aschur

Nuair a ritheann inneall JavaScript an cód thuas, tosaíonn sé sa rannóg túsaithe (1). Déantar an

athróg counter a fhógairt agus a thúsú go nialas. Déantar an coinníoll counter < 3 a

luacháil ansin (2). An chéad uair a ritear an corp lúibe, luachálfar an garda lúibe go true agus

mar sin ritear an corp lúibe (3). Taispeánann an corp lúibe an teaghrán Hello World ar an

gconsól agus leantar leis an bpróiseáil ag (4) áit a gcuirtear incrimintí leis an luach counter

(counter++). Déantar an coinníoll a athmheas i ndiaidh na céime seo agus, bunaithe ar an

Page 143: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 143

toradh, rithfear na ráitis sa chorp lúibe arís nó cuirfear deireadh leis an lúb agus is é an chéad

ráiteas eile le rith an chéad ráiteas i ndiaidh an choirp lúibe (5).

Is féidir an cur síos roimhe sin a chur in iúl ach cód a úsáid, mar seo a leanas. Tá seo agus an

bhlogh chóid a thaispeántar ar an leathanach roimhe seo comhionann ó thaobh na loighce de.

// Túsú

let counter = 0;

// Coinníoll – 1ú atriall

if (counter < 3)

console.log("Hello World");

counter++; // céim 1

// Coinníoll – 2ú hatriall

if (counter < 3)

console.log("Hello World");

counter++; // céim 2

// Coinníoll – 3ú hatriall

if (counter < 3)

console.log("Hello World");

counter++; // céim 3

// Ag an gcéim seo, is 3 a bheidh mar luach an áiritheora agus tiocfaidh deireadh leis

an lúb

Is fiú a lua go ndéantar tagairt don athróg sa rannóg túsaithe mar an athróg lúibe. (counter is

ea ainm na hathróige lúibe sa sampla thuas.) De ghnáth, is ionann an coinníoll i lúb for agus

slonn Boole éigin ina bhfuil an athróg lúibe. Ag deireadh gach atrialla lúibe, déantar luach na

hathróige lúibe a chéimniú – trína incrimintiú/a dheicrimintiú de ghnáth. Luachálfar an coinníoll

evaluate mar false ar deireadh agus tiocfaidh deireadh leis an lúb.

POINTE TÁBHACHTACH: I gcás lúb for, déantar an coinníoll a athluacháil

gach uair, i ndiaidh chéim na céime. Má luacháiltear an coinníoll mar true,

ritear an corp lúibe. Má luacháiltear an coinníoll mar false, tagann deireadh leis

an lúb agus leantar leis an bpróiseáil ag an gcéad ráiteas eile i ndiaidh

dheireadh an choirp lúibe.

Page 144: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 144

Samplaí – lúba for agus while

Bealach eile chun lúba for a mhíniú ná i dtéarmaí lúba while. Cé go bhfuil comhréir while

agus for (a thaispeántar thíos) difriúil, tá an dá lúb comhionann ó thaobh na loighce de.

initialisation;

while (condition) {

statement(s)

step

}

for(initialisation; condition; step) {

statement(s)

}

Comhréir na lúibe while Comhréir na lúibe for

Déanann gach péire blogh chóid sna samplaí thíos an rud céanna – taispeántar cur chun

feidhme na lúibe while ar chlé agus taispeántar cur chun feidhme na lúibe for, atá

comhionann ó thaobh na loighce de, ar dheis. Déan staidéar cúramach ar gach sampla agus

bain úsáid as an spás thíos chun do nótaí a thaifeadadh agus tú á dhéanamh.

Sampla 1 – taispeáin na slánuimhreacha ó 1 go 10.

let count = 1;

while (count <= 10) {

console.log(count);

count++;

}

for (let count = 1; count <= 10; count++) {

console.log(count);

}

Sampla 2 – taispeáin an seicheamh 0, 2, 4, 6, ... 100

let count = 0;

while (count <= 100) {

if (count % 2 == 0)

console.log(count);

count++;

}

for (let count = 0; count <= 100; count+=5) {

if (count % 2 == 0)

console.log(count);

}

Page 145: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 145

Sampla 3 – taispeáin gach 5ú slánuimhir idir 0 agus 100 agus a huimhir chearnach

let count = 0;

while (count <= 100) {

if (count % 5 == 0)

console.log(count,

Math.pow(count,2));

count+=5;

}

for (let count = 0; count <= 100; count+=5) {

if (count % 5 == 0)

console.log(count, Math.pow(count,2));

}

Sampla 4 – déan an líon iolraithe ar 3 idir 1 agus 100 a chomhaireamh

let i=0, multiplesOf3 = 0;

while (i <= 100) {

if (i % 3 == 0)

multiplesOf3++;

i++;

}

console.log(multiplesOf3,

"found");

let i, multiplesOf3;

for (i = 0, multiplesOf3 = 0; i <= 100; i++) {

if (i % 3 == 0)

multiplesOf3++;

}

console.log(multiplesOf3, "found");

Page 146: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 146

Page 147: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 147

Sampla 5 – déan n! (e.g. 5x4x3x2x1) a ríomh agus ansin taispeáin an toradh

let fact = 1;

let n = 5;

let number = n;

while (number > 0) {

fact = fact * number;

number--;

}

console.log(n+"! =", fact);

let fact = 1;

let n = 5;

for (let number = n; number > 0; number--) {

fact = fact * number;

}

console.log(n+"! =", factorial);

Lúba Éigríochta

Má thugann an garda lúibe true i gcónaí, rithfear an corp lúibe go deo. Tugtar lúba éigríochta

(infinite) ar lúba den sórt sin. Tá cásanna ann ina scríobhann ríomhchláraitheoirí cláir, d’aon

ghnó, ina rithfidh a lúba go deo. Nuair nach ndéantar iad a ríomhchlárú d’aon ghnó, áfach,

bíonn lúba éigríochta ina gcúis le ríomhchlár reatha bheith ag ‘reo’ (míchaoithiúlacht an-mhór

don úsáideoir deiridh). Nuair a bhíonn lúba á scríobh acu, ba cheart do ríomhchláraitheoirí a

bheith cúramach cosaint in aghaidh lúba éigríochta neamhbheartaithe a chur san áireamh. I

bhformhór na gcásanna, ba cheart go mbeadh ráiteas éigin sa chorp lúebe a fhágfaidh gur

false an garda lúibe ar deireadh, agus a chuirfidh deireadh leis an lúb dá bharr sin.

count = 0

while (count <= 10) {

console.log("Infinite Loop");

}

for (; ;) {

console.log("Infinite Loop");

}

Dhá shampla de lúba éigríochta. Ní éiríonn coinníoll an gharda lúibe false riamh

POINTE TÁBHACHTACH: Is éard atá i lúb éigríochta, ceann nach dtagann

deireadh léi riamh. Tarlaíonn siad i gcód ina luacháiltear coinníoll an gharda

lúibe mar true i gcónaí.

Page 148: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 148

Cleachtaí ríomhchlárúcháin (lúba for )

1. Léigh gach ceann de na bloghanna cóid seo a leanas go cúramach agus déan an t-aschur a

ghinfeadh gach ceann de na lúba for a thaispeántar. I ngach cás, ba cheart duit an cód a

chur isteach agus a rith agus comparáid a dhéanamh idir do chuid tuartha agus an t-aschur

iarbhír.

Lúb 1 Aschur Tuartha

Aschur Iarbhír

for (let count = 0; count <= 5; count++) {

console.log(count);

}

Lúb 2 Aschur Tuartha

Aschur Iarbhír

for (let count = 1; count < 5; count++) {

console.log(count);

}

Lúb 3 Aschur Tuartha

Aschur Iarbhír

for (let count = 0; count <= 100; count+=10) {

console.log(count);

}

Lúb 4 Aschur Tuartha

Aschur Iarbhír

for (let count = 5; count > 0; count--) {

console.log(count);

}

Page 149: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 149

Lúb 5 Aschur Tuartha

Aschur Iarbhír

for (let count = 10; count >= 0; ) {

console.log(count);

count -= 2;

}

2. Déan comparáid idir an dá ríomhchlár thíos ó thaobh an mhéid a dhéanann siad agus an tslí

a ndéanann siad é.

a) Bain úsáid as an spás a chuirtear ar fáil chun an t-aschur a thaispeánfadh gach ríomhchlár

a thaifeadadh, sa chás go n-iontrálfadh an t-úsáideoir luach 3 le haghaidh start agus 7 le

haghaidh end

let start = Number(prompt("Enter a number to start from"));

let end = Number(prompt("Enter a number to end at"));

for (; start <= end; start++) {

console.log(start);

}

ASCHUR le haghaidh

3 agus 7

b) Cén fáth nach bhfuil slonn túsaithe ag an lúb for thuas?

c) An féidir leat slonn túsaithe a thabhairt le fios le húsáid sa lúb for?

d) Bain triail as! An féidir an loighic chéanna a bhaint amach gan start++ a bheith sa lúb

for?

let start = Number(prompt("Enter a number to start from"));

let end = Number(prompt("Enter a number to end at"));

let outStr = "";

while (start <= end) {

outStr = outStr + start + ", ";

start++;

}

Page 150: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 150

console.log(outStr);

ASCHUR (le haghaidh 3 agus 7):

e) Cén cuspóir atá leis an athróg outStr sa ríomhchlár thuas?

f) Mionathraigh an ríomhchlár le nach dtaispeánfar aon chamóg shraoilleach ag deireadh an

aschuir (i.e. níor cheart camóga a fheiceáil ach amháin idir na luachanna a thaispeántar).

Page 151: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 151

Na ráitis break agus continue

Tugaimis aird anois ar dhá eochairfhocal a bhaineann le lúba – break agus continue.

break

Ní féidir ráiteas break a úsáid ach amháin laistigh de ráiteas lúibe nó switch ar bith. Nuair a

ritear é, cuireann sé iallach ar an ráiteas lúibe nó switch ina n-úsáidtear é stopadh. Aistrítear

próiseáil go dtí an chéad líne i ndiaidh na lúibe nó switch.

Léirítear an úsáid a bhaintear as break sa sampla seo a leanas. Taispeántar an t-aschur ar

dheis.

let someValue = 7;

while (someValue > 0) {

someValue--; // deicrimint

if (someValue == 3)

break;

console.log(someValue);

}

6

5

4

An úsáid is coitianta a bhaintear as break ná scor de ráiteas switch chomh luath agus a bhíonn

case próiseáilte. Baineann ríomhchláraitheoirí le taithí úsáid as an ráiteas break freisin mar

bhealach chun scor de lúba atá á ngardáil ag coinníollacha a luacháiltear mar true i gcónaí (i.e.

lúba éigríochta).

continue

Ní féidir an ráiteas continue a úsáid ach amháin laistigh de cheann ar bith de na struchtúir lúibe.

Ní bhacann an lúb, dá bharr, le hatriall amháin ach léimeann láithreach go dtí an chéad atriall eile

den lúb. Mionathraítear an sreabhadh rialúcháin mar seo a leanas:

− i lúba while agus do-while, is é an ráiteas continue is cúis leis an sreabhadh rialúcháin

ag léim láithreach go dtí coinníoll an gharda lúibe.

− i lúb for, léimeann an sreabhadh rialúcháin go dtí an slonn céime láithreach (i.e. an tríú cuid

den ráiteas for)

Léirítear an úsáid a bhaintear as continue sa sampla seo a leanas. Taispeántar an t-aschur ar

dheis.

let someValue = 6;

while (someValue > 0) {

someValue--; // deicrimint

5

4

Page 152: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 152

if (someValue == 3)

continue;

console.log(someValue);

}

2

1

0

Lúba Neadaithe

Lúb taobh istigh de lúb eile is ea lúb neadaithe.

Tá dhá lúb for sa sampla thíos. Tugtar an lúb lasmuigh ar an gcéad lúb for agus tugtar an lúb

laistigh nó neadaithe ar an dara lúb for. Tá an lúb laistigh neadaithe sa lúb lasmuigh.

for (let row = 1; row<5; row++) {

for (let col = 1; col<=3; col++) {

console.log(row, col);

}

}

Sa sampla seo, ritear an lúb lasmuigh ceithre huaire. Mar is

amhlaidh le gach lúb, déantar an corp lúibe a rith arís agus arís

eile. Sa chás seo, tarlaíonn sé gur lúb eile é an corp lúibe – an lúb

laistigh. Déanann an lúb laistigh trí atriall – taispeánann a corp

lúibe na hathróga lúibe don dá lúb ar an gconsól i.e. row agus

col. Taispeántar an t-aschur anseo ar dheis.

Mar is féidir a fheiceáil, taispeántar an luach ró roimh an luach

col. Bogann athróg na lúibe lasmuigh níos moille ná athróg na

lúibe laistigh. Tá 15 atriall ar fad ann idir an dá lúb.

Níl an chúis a úsáideann ríomhchláraitheoirí lúba neadaithe difriúil leis an gcúis a úsáideann

siad lúb ar bith eile i.e. chun bloc cóid a athdhéanamh. Tarlaíonn sé gur lúb é an bloc cóid atá le

hathdhéanamh

Tóg mar shampla an lúb for a léirítear anseo agus a thaispeánann tábla iolrúcháin 7.

for (let count=0; count<=12; count++) {

Page 153: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 153

console.log("7 x", count, "=", 7*count);

}

Mar a fheictear, lúbann an cód trí na slánuimhreacha go léir ó 0 go 12 agus iolraíonn sé gach

ceann ar 7 ar an mbealach.

Cuir i gcás gur mhian linn na táblaí iolrúcháin go léir ó 1 go 10 a thaispeáint (agus ní tábla

iolrúcháin 7 amháin). An bealach leis sin a dhéanamh ná le lúb neadaithe.

Tógaimid ár lúb ‘iolrúcháin 7’ agus timfhilleann í laistigh de lúb eile a dhéantar a atriall deichn-

uaire. Ar ndóigh, nílimid ag iarraidh an tábla iolrúcháin 7 a thaispeáint deich n-uaire, mar sin

úsáidimid athróg ar a dtugtar tables lena chur in iúl cé na ‘táblaí iolrúcháin’ atá le taispeáint.

Seo a leanas an réiteach:

for (let tables=1; tables<=10; tables++) {

for (let count=0; count<=12; count++) {

console.log(tables,"x", count, "=", tables*count);

} // lúb laistigh

console.log("\n\n");

} // lúb lasmuigh

Déanann an lúb lasmuigh atriall trí na táblaí ó 1 go 10 agus déanann an lúb laistigh atriall trí na

luachanna ó 1 go 12 maidir le gach tábla. Go bunúsach, táimid ag timfhilleadh an chóid chun

tábla iolrúcháin amháin a thaispeáint laistigh de lúb a léimeann trí dheich dtábla.

Baintear úsáid choitianta as lúba neadaithe chun atrialla a dhéanamh thar eagair dhéthoiseacha

(2D) (i.e. déanann an lúb laistigh an phróiseáil chothrománach agus déanann an lúb lasmuigh

nó an lúb níos moille an phróiseáil cheartingearach). Is struchtúr sonraí iad eagair 2D a

Page 154: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 154

úsáidtear chun sonraí ar bith is féidir a eagrú ina rónna agus ina gcolúin (e.g. maitrísí, longa

cogaidh, clár fichille, Sudoku, etc.) a léiriú. Baintear úsáid astu chun go leor cluichí cláir a chur i

bhfeidhm.

Féadfaidh lúb a bheith i lúb neadaithe freisin – sa chás seo bheadh lúb laistigh de lúb laistigh de

lúb againn (e.g. lúb 3 laistigh de lúb 2 atá laistigh de lúb 1, an lúb lasmuigh). Go teoiriciúil, is

féidir lúba a neadú go doimhneacht ar bith – tá ceithre leibhéal neadaithe sa sampla thíos. Tá

an sampla seo beagán dian – i gcleachtas, is é dhá leibhéal neadaithe an rud is coitianta.

Sampla

Is ardléiriú é an ríomhchlár seo a leanas ar an úsáid a bhaintear as lúba neadaithe chun na

huimhreacha sásta 4 dhigit go léir a aimsiú agus a thaispeáint. Deirtear go bhfuil uimhir ‘sásta’

más ionann suim an chéad dá dhigit agus suim an dá dhigit dheireanacha. Samplaí

d’uimhreacha sásta iad 1111, 5005 agus 8439 – an féidir leat smaoineamh ar chinn eile?

// Uimhreacha sásta

for (let a = 0; a<10; a++)

for (let b = 0; b<10; b++)

for (let c = 0; c<10; c++)

for (let d = 0; d<10; d++)

if (a+b == c+d)

console.log("Happy Number:", a, b, c, d);

Cleachtadh (fadhb Parson)

Iontráil na trí líne a thugtar sna háiteanna cearta (A, B, agus C) sa bhloc cóid a thaispeántar le

go dtaispeánfaidh sé iolrán na chéad chúig uimhir nádúrtha.

Page 155: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 155

Leid: Déanann an cód a thaispeántar 6! a ríomh agus a thaispeáint.

factorial = 1;

for (let number = 6; number > 0; number--) {

factorial = factorial * number;

} // end for

console.log(6, "! =", factorial);

Cuir isteach an ríomhchlár thuas agus déan tástáil air. An oibríonn sé?

Céard é an t-íosmhéid tástálacha a bheadh ort a dhéanamh le bheith

cinnte go n-oibríonn sé?

Déan an ríomhchlár a mheas anois. Cá mhéad comparáidí is gá a dhéanamh

– féach ar an gcás is fearr agus ar an gcás is measa. Céard faoi dá mbeimis

ag iarraidh an ceann is mó as ceithre uimhir a aimsiú? Céard faoi cúig cinn?

Page 156: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 156

Page 157: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 157

Cleachtaí Ríomhchlárúcháin – Lúba

1. Scríobh lúb JavaScript a thaispeánann na slánuimhreacha ó 1 go 10, an dá uimhir sin san

áireamh.

2. Scríobh lúb JavaScript a thaispeánann na slánuimhreacha ó 10 go 20, an dá uimhir sin san

áireamh.

3. Scríobh lúb JavaScript a thaispeánann na slánuimhreacha ó 10 go 1, an dá uimhir sin san

áireamh, in ord íslitheach.

4. Scríobh lúb a thaispeánann gach 10ú slánuimhir idir nialas agus 100, an dá uimhir sin san

áireamh, i.e. 0, 10, 20, 30 etc.

5. Scríobh lúb JavaScript a ríomhann suim na chéad 𝑛 uimhreacha nádúrtha

6. Cuirtear deilín uimhreach 𝑥 in iúl le 1

𝑥. Mar shampla, is é

1

5 deilín 5. Scríobh ríomhchlár chun

deilín na chéad 10 n-uimhir nádúrtha a shuimiú i.e.

1

1+

1

2+

1

3+

1

4+

1

5+

1

6+

1

7+

1

8+

1

9+

1

10

7. Scríobh ríomhchlár a ghineann dhá uimhir randamacha (idir 1 agus 10) agus a

thaispeánann a suim. Leathnaigh an ríomhchlár ionas go ndéanfaidh sé é sin trí huaire.

8. Scríobh ríomhchlár a ghineann dhá uimhir randamacha (abair idir 1 agus 10) agus a iarrann

ar an úsáideoir a suim a iontráil. Ba cheart go leanfadh an ríomhchlár ar aghaidh go dtí go

n-iontrálann an t-úsáideoir an freagra ceart.

9. Scríobh ríomhchlár chun atriall a dhéanamh ar na huimhreacha go léir idir 1 agus 100. Gach

uair a thagann sé ar iolraí de 5, priontálann sé ‘fizz’. Priontálann sé ‘buzz’ le haghaidh gach

iolraí de 10 agus priontálann sé an uimhir i gcás gach uimhreach eile.

Page 158: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 158

10. Scríobh ríomhchlár a thugann leid don úsáideoir arís agus arís eile uimhir a iontráil. Sa chás

go n-iontrálann an t-úsáideoir ré-uimhir, ba cheart don ríomhchlár Even a thaispeáint.

Seachas sin, ba cheart don ríomhchlár an teachtaireacht Odd a thaispeáint. Ba cheart go

dtiocfadh deireadh leis an ríomhchlár nuair a iontrálann an t-úsáideoir an focal ‘stop’.

11. Scríobh ríomhchlár a choimeádann cuntas ar an líon ré-uimhreacha a iontrálann úsáideoir

go dtí go n-iontráiltear an focal ‘stop’.

12. Scríobh ríomhchlár a ionsamhlaíonn caitheamh díslí (leid: bain úsáid as uimhir randamach

idir 1 agus 6.) Ba cheart go leanfadh an ríomhchlár ar aghaidh go dtí go ‘gcaitear’ sé. Ba

cheart don ríomhchlár an líon caithimh a theastaigh chun 6 a fháil a thaispeáint.

13. Leathnaigh an ríomhchlár roimhe seo chun an líon caithimh a theastaíonn chun ‘súile

nathrach’ a fháil a chomhaireamh. Cuir i bhfeidhm é seo le dísle amháin ar dtús i.e.

caitheamh amháin ag an am. Ansin dhá chaitheamh. (Ciallaíonn súile nathrach dhá aon i

ndiaidh a chéile le dísle amháin nó aonta dúbailte má tá dhá dhísle á n-úsáid).

14. Is éard atá i seicheamh Fibonacci ná seicheamh uimhreacha ina bhfuil gach uimhir i ndiaidh

a chéile comhionann le suim an dá uimhir a chuaigh roimpi. Mar sin, is iad na chéad seacht

n-uimhir sa seicheamh Fibonacci 1, 1, 2, 3, 5, 8, 13. Scríobh ríomhchlár a ríomhann an nú

huimhir Fibonacci. Mar shampla, sa chás go n-iontrálfadh an t-úsáideoir 6, thabharfadh an

ríomhchlár 8 mar aschur (mar is é 8 an 6ú huimhir Fibonacci)

15. Bronnann an CAO pointí ar scoláirí bunaithe ar a ngnóthachtáil i Scrúdú na

hArdteistiméireachta. Léirítear sa tábla thíos marcanna scoláirí á mapáil go pointí CAO ag

an ngnáthleibhéal agus ag an ardleibhéal, agus gan ach na sé ábhar is fearr san áireamh.

% Bandaí Ardleibhéal Gnáthleibhéal

90 – 100 H1 100 O1 56

80 – 89 H2 88 O2 46

70 – 79 H3 77 O3 37

60 – 69 H4 66 O4 28

50 – 59 H5 56 O5 20

40 – 49 H6 46 O6 12

30 – 39 H7 37 O7 0

0 – 29 H8 0 O8 0

Page 159: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 159

Scríobh ríomhchlár a iarrann ar úsáideoir sé thoradh a iontráil. Iontráil cód le haghaidh gach toraidh

(‘H’ le toradh ardleibhéil a chur in iúl; ‘O’ don ghnáthleibhéal) agus iontráil an céatadán

iarbhír ina dhiaidh sin. Ba cheart don ríomhchlár na pointí ábhartha don chéatadán a

iontráladh a chinneadh agus iomlán reatha de na pointí go dtí sin a choimeád. Chomh luath

agus a bheidh an toradh deiridh iontráilte, ba cheart don ríomhchlár an líon iomlán pointí

carntha a thaispeáint. (Déantar neamhaird de phointí sa bhreis agus de na sé ábhar is

fearr.)

Déan machnamh ar na cleachtaí go léir sa rannán seo.

Tabhair le fios cén chaoi a bhféadfaí ceann ar bith de na cleachtaí seo a

oiriúnú le húsáid i rang Ríomheolaíocht na hArdteistiméireachta de do chuid

féin?

Page 160: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 160

Page 161: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 161

Teaghráin Cuimhnigh gurb éard atá i dteaghrán seicheamh carachtar ar bith idir comharthaí athfhriotail. (Is

féidir comharthaí singile nó dúbailte athfhriotail a úsáid ach ní mór dóibh a bheith

comhsheasmhach).

Is cineálacha sonraí thar a bheith solúbtha iad teaghráin. Is féidir iad a úsáid chun rud ar bith a

léiriú, ó ainm duine, nó uimhir ghutháin go dtí méideanna móra téacs amhail inneachar

leathanach gréasáin, fotha nuachta nó lámhleabhar mar an gceann seo, fiú.

Tá samplaí de luachanna litriúla sa tábla thíos, chomh maith le cur síos gairid ar gach ceann.

Sampla de luach litriúil teaghráin

Cur síos gairid

"11 The Laurels, Dublin 24" Féadfaidh meascán de litreacha agus uimhreacha (agus carachtar Unicode ar bith) a bheith i dteaghráin.

"0861234567" Féadfaidh teaghrán a bheith comhdhéanta go hiomlán de dhigití.

"+353-(0)86-1234567" Uimhir ghutháin idirnáisiúnta

"970-0-393-63499" Teaghrán a úsáidtear chun ISBN a stóráil

"https://glitch.com/edit/#!/pdst-wkshp-day2?path=string.js:8:0"

Teaghrán a úsáidtear chun URL a stóráil

‘Game of Thrones’ Is féidir teaghráin a theormharcáil laistigh de chomharthaí singile athfhriotail (chomh maith le cinn dhúbailte)

‘St. Patrick\’s Day, March 17’

Ní mór an comhartha singil athfhriotail ag deireadh Patrick’s a éalú. Murach sin, d’fhéachfadh JavaScript air sin mar an comhartha athfhriotail deiridh chun deireadh teaghráin a chur in iúl.

"St. Patrick’s Day, March 17" Níl an seicheamh éalaithe de dhíth anseo mar gheall go bhfuil an teaghrán iniata idir comharthaí dúbailte athfhriotail.

“Féadfaidh teaghrán \

línte iomadúla de chód JS \

a thrasnú ach an carachtar \\ a

úsáid!"

Féadfaidh teaghráin roinnt línte de ríomhchlár JavaScript a thrasnú. Taifíonn an teaghrán seo in: Féadfaidh teaghrán línte iomadúla de chód JS a thrasnú ach an carachtar \ a úsáid!

"Féadfaidh teaghrán \n línte

iomadúla \n a thrasnú ach an

carachtar \\n a úsáid!"

Féadfaidh línte iomadúla a bheith i dteaghráin chomh maith. Taifíonn an teaghrán seo in: Féadfaidh teaghrán línte iomadúla a thrasnú ach an carachtar \n a úsáid!

Page 162: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 162

Teaghrán a innéacsú

Is féidir rochtain a fháil ar charachtair aonair ach innéacs a úsáid (ar an gcaoi chéanna a n-

úsáidtear innéacs chun rochtain a fháil ar ghnéithe eagair). Nialas atá in innéacs an chéad

charachtair i ngach teaghrán agus 𝑛 − 1 atá in innéacs an charachtair deiridh i dteaghrán atá 𝑛

ar fad.

Measaimis an teaghrán s a fhógraítear agus a thúsaítear mar seo a leanas:

let s = "Hello World!";

Léirítear sa léaráid thíos s le hinnéacs gach carachtair ar taispeáint thíos faoi.

Is féidir gach carachtar i dteaghrán a shainaithint le suíomh ar a dtugtar innéacs.

Ba cheart gur léir ón léaráid go dtabharfadh an slonn s[0] an teaghrán "H"; thabharfadh s[1]

"e" agus mar sin de, go dtí s[11] a thabharfadh an teaghrán "!". Tabhair faoi deara nach

dtacaítear leis na hinnéacsanna diúltacha agus go dtabharfar undefined mar luach sa chás go

bhfuil an t-innéacs a úsáideadh as raon.

Anuas air sin, ba cheart a thabhairt faoi deara gur inléite amháin iad na teaghráin in JavaScript.

Ciallaíonn sé sin nach féidir luach teaghrán JavaScript a athrú i ndiaidh é a chruthú.

Cuir i gcás gur theastaigh uainn an teaghrán s a athrú ó Hello World! go Howdy World! –

d’fhéadfaimis tabhairt faoi mar seo a leanas:

s[1] = "o";

s[2] = "w";

s[3] = "d";

s[4] = "y";

console.log(s); // Hello World!

Cé nach ndéantar earráid ar bith mar thoradh ar an gcód, ní oibríonn sé agus ní dhéantar athrú

ar an teaghrán s.

Page 163: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 163

POINTE TÁBHACHTACH: Is féidir rochtain a fhail ar ghnéithe aonair teaghráin ach

an oibríocht innéacs a úsáid, ach ní féidir iad a athrú (mar gheall go bhfuil teaghráin

do-athraithe).

Bun-Teaghráin vs. Teaghráin mar Oibiachtaí

Is féidir teaghráin JavaScript a chruthú mar bhunteaghráin nó mar oibiachtaí. Léirítear sa chód

thíos bealaí éagsúla ar féidir teaghráin a chruthú.

let s1 = "Joe";

let s2 = "Joe";

let s3 = s2;

let s4 = new String("Joe");

let s5 = new String("Joe");

let s6 = s5;

Sa chód thuas, is bunteaghráin iad na hathróga s1, s2 agus s3 go léir. Is teaghrán é a

gcineál sonraí. Cruthaítear bunteaghráin trí luach litriúil teaghráin a shannadh d’athróg. Bealach

eile chun iad a chruthú ná teaghrán eile (atá ann cheana féin) a shannadh d’athróg (amhail i

gcás s3 thuas)

Is den chineál oibiacht iad na hathróga s4, s5 agus s6 go léir. Cruthaítear an dá theaghrán

s4 agus s5 go sonrach mar oibiachtaí tríd an oibreoir nua a chur i bhfeidhm ar String, ar

oibiacht JavaScript ionsuite é. (Le téarmaíocht teangacha eile atá bunaithe ar oibiachtaí, amhail

C++ agus Java, is féidir smaoineamh ar String mar chruthaitheoir/rapar don aicme String

statach/uilíoch.). Níl in s6 ach tagairt don teaghrán s5.

Sa léaráid thíos, tugtar léargas ar an tslí a bhféadfaí na hathróga thuas a léiriú sa chuimhne i

ndiaidh iad a dhearbhú. (Braithfidh an léiriú iarbhír ar chur i bhfeidhm JavaScript agus

d’fhéadfadh sé a bheith difriúil ó bhrabhsálaí go brabhsálaí, mar sin.)

Page 164: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 164

Tá s1, s2, s3 go léir go díreach

mar an gcéanna – an teaghrán Joe an

luach atá acu.

Is dhá oibiacht teaghráin ar leith iad s4

agus s5.

Déanann s5 agus s6 tagairt don

oibiacht teaghráin chéanna.

D'fhoghlaimíomar ar an leathanach roimhe seo gur féidir teaghráin JavaScript a chruthú mar

bhunteaghráin nó mar oibiachtaí. Gné thábhachtach amháin de theaghráin JavaScript,

áfach, ná go ngníomhaíonn gach teaghrán mar oibiacht, beag beann ar an tslí ar

cruthaíodh é.

Ciallaíonn sé sin gur féidir le bunteaghráin na modhanna agus na hairíonna a shainmhínítear

d’oibiachtaí teaghráin ionsuite a úsáid freisin.

Mar shampla, cuir i gcás go raibh bunteaghrán s1 againn, a fógraíodh mar a thaispeántar sa

chód thíos.

Mar gheall gur féidir caitheamh le s1 mar oibiacht freisin, is féidir linn rochtain a fháil ar airí a

fhaid, mar a léirítear sa chód.

let s1 = "A quick brown fox";

let len = s1.length;

console.log("The length of s1 is", len);

console.log("The last character of s1 is", s1[len-1]);

Cuireann an cód an t-aschur seo a leanas ar taispeáint ar an gconsól:

Ar an tslí chéanna, is féidir linn a rá gur bunmhodh é modh teaghráin ar bith ar theaghrán.

includes is ainm do mhodh amháin den sórt sin. (Breathnóimid ar a thuilleadh modhanna

teaghráin go luath.)

Page 165: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 165

Leis an modh includes, tugtar true sa chás go gcuirtear teaghrán sonraithe éigin san

áireamh laistigh de theaghrán; false seachas sin. Sa chás gur bunteaghrán é s1 a bhfuil A

quick brown fox mar luach aige, is féidir linn an méid seo a leanas a scríobh:

s1.includes("fox") 🡪 true mar gheall go bhfuil fox san áireamh mar chuid de s1

s1.includes("dog") 🡪 false mar gheall nach bhfuil dog san áireamh mar chuid de

s1

Gach uair a ghlaoitear modh ar bhunteaghrán, aistríonn inneall JavaScript an teaghrán go

hoibiacht go hinmheánach. Gairtear an modh ar an oibiacht teaghráin inmheánach seo ansin

(agus nuair a thugtar chun críche é, níl ann don oibiacht inmheánach a thuilleadh).

Teaghráin a chur i gComparáid lena chéile: Luachanna litriúla vs. Tagairtí Oibiachta

Mar gheall go ngníomhaíonn gach teaghrán mar oibiacht, cuirtear mearbhall ar úsáideoirí

uaireanta, go háirithe ó thaobh iad a chur i gcomparáid.

Is féidir dhá theaghrán a chur i gcomparáid le haghaidh cothroime leis an oibreoir cothroime (=

=) nó leis an oibreoir cothroime chruinn (===). Tugann tástálacha le haghaidh cothroime true

nó false i gcónaí.

Ní mór a chinntiú go dtuigtear an difríocht idir comparáid a dhéanamh idir luachanna litriúla

teaghráin agus oibiachtaí teaghráin. Tógaimis an cód seo a leanas mar shampla – léirítear an t-

aschur mar nótaí tráchta.

let s1 = "Joe";

let s2 = "Joe";

let s3 = s2;

let s4 = new String("Joe");

let s5 = new String("Joe");

let s6 = s5;

console.log(s1 == s2); // fíor

console.log(s1 == s3); // fíor

console.log(s1 == s4); // fíor

console.log(s4 == s5); // bréagach

console.log(s5 == s6); // fíor

console.log(s1 === s2); // fíor

console.log(s1 === s3); // fíor

console.log(s1 === s4); // bréagach

Page 166: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 166

console.log(s4 === s5); // bréagach

console.log(s5 === s6); // fíor

Tabhair faoi deara go bhfuil s1 agus s4 cothrom lena chéile mar gheall go bhfuil an luach

céanna iontu. Mar sin féin, tugann an tástáil le haghaidh cothroime chruinn false mar gheall

go bhfuil bunchineálacha sonraí an dá athróg difriúil. string atá mar chineál sonraí s1 agus

object atá mar chineál sonraí s4.

Úsáid an spás thíos chun machnamh a dhéanamh ar thorthaí eile na

gcomparáidí sa chód thuas. Mar shampla, cén fáth a dtugann s4 ===

s5 false nuair a

thugann s5 === s6 true?

Is féidir comparáid a dhéanamh idir teaghráin le haghaidh éagothroime freisin le hoibreoirí níl

cothrom le, níos lú ná agus níos mó ná a úsáid. Léirítear sa tábla torthaí roinnt comparáidí

teaghráin den sórt sin.

Tástáil (comparáid) Toradh Nóta tráchta

"apple" < "banana" true Tagann an litir ‘a’ roimh ‘b’. Tá an teaghrán “apple” níos lú ná

an teaghrán “banana”, mar sin, agus tugann an tástáil true.

"apple" > "banana" false Níl an teaghrán “apple” níos mó ná an teaghrán “banana”

"apple" < "aardvark" false Ós rud é go bhfuil an chéad litir sa dá teaghrán mar an

gcéanna (i.e. ‘a’) leanann an tástáil ar aghaidh ón dara litir

"apple" > "apple tart" false Tá an dá theaghrán díreach mar an gcéanna suas go dtí an

‘e’. Tá an dara teaghrán níos faide ná an chéad cheann agus

mar sin meastar go bhfuil sé níos mó.

"Apple" != "apple" true Ós rud é nach bhfuil na teaghráin díreach mar an gcéanna,

tugann an tástáil le haghaidh éagothroime true

"Apple" > "apple" false Tá an cód don ‘A’ cás uachtair níos lú ná an ‘a’ cás íochtair.

"Zebra" <= "giraffe" true Tá na luachanna Unicode do na litreacha cás uachtair go léir

níos lú ná na luachanna Unicode do na litreacha

comhfhreagracha cás íochtair.

Page 167: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 167

Oibríonn na hoibríochtaí comparáide trí chomparáid a dhéanamh idir na teaghráin ar bhonn

carachtar-ar-charachtar san ord ar a dtugtar ord foclóireachta.

Bain triail as!

Úsáid an cód thíos chun iniúchadh a dhéanamh ar an modh

localeCompare

(Tagairt: https://www.w3schools.com/jsref/jsref_localecompare.asp)

let apple = "apple";

let banana = "banana";

console.log(apple.localeCompare(banana));

console.log(banana.localeCompare(apple));

console.log(banana.localeCompare(banana));

Déan cur síos ar a ndéanann an modh, an tslí le glaoch air agus céard iad a luachanna aischurtha.

Modhanna teaghráin

Mar gheall go gcaitheann JavaScript le bunteaghráin amhail is gur oibiachtaí String iad, is féidir

glaoch ar mhodh oibiachta teaghráin ar bith ar bhunteaghrán.

Léirítear é sin sa ríomhchlár thíos ina dtaispeántar rogha modhanna oibiachta teaghráin á gcur i

bhfeidhm ar dhá bhunteaghrán – pangram agus toungeTwister.

// Fógair dhá theaghrán le hoibriú leo

let pangram = "Pack my box with five dozen liquor jugs";

let toungeTwister = "Sally sells seashells by the sea shore";

// charAt agus charCodeAt

console.log("The Unicode representation for", pangram.charAt(), "is", pangram.charCodeAt());

console.log("The Unicode representation for", pangram.charAt(1), "is", pangram.charCodeAt(1));

// toUpperCase, toLowerCase agus concat

console.log("toUpperCase:", pangram.toUpperCase());

console.log("toLowerCase:", pangram.toLowerCase());

// concat

Page 168: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 168

let lowerCaseStr = toungeTwister.toLowerCase();

let upperCaseStr = toungeTwister.toUpperCase();

console.log(lowerCaseStr.concat(upperCaseStr));

// indexOf

let index = toungeTwister.indexOf("ells");

console.log("indexOf first \'ells\' is:", index);

console.log("indexOf of next \'ells\' is:", toungeTwister.indexOf("ells", index+1));

// lastIndexOf

let lastIndex = toungeTwister.lastIndexOf("ells");

console.log("lastIndexOf \'ells\' is:", lastIndex);

console.log("2nd lastIndexOf of \'ells\' is:", toungeTwister.lastIndexOf("ells",lastIndex-1));

// slice

console.log("slice 1:", pangram.slice(5));

console.log("slice 2:", pangram.slice(5, 11));

// replace

console.log("replace 1:", pangram.replace("box", "bag"));

console.log("replace 2:", toungeTwister.replace("sells", "sold"));

// split

console.log("split 1:", pangram.split());

console.log("split 2:", toungeTwister.split(" "));

Taispeántar an t-aschur a ghineann an ríomhchlár seo ar an gcéad leathanach eile.

POINTE TÁBHACHTACH: Gníomhaíonn gach teaghrán JavaScript amhail is gur

oibiacht é.

Page 169: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 169

Is ceart a thabhairt faoi deara, cé go ndealraítear go gcuireann modhanna áirithe e.g. concat,

toLowerCase, toUpperCase, trim etc. athrú ar luach an teaghráin ar a ngníomhaíonn siad,

ní hamhlaidh an cás, i ndáiríre. Is é a tharlaíonn i ndáiríre le modhanna mar sin, cruthaítear

teaghrán nua agus cuirtear ar ais é, agus fágtar an teaghrán bunaidh gan athrú. An chúis leis

sin, ar ndóigh, ná go bhfuil teaghráin do-athraithe.

Déantar cur síos gairid ar gach ceann de na modhanna a úsáidtear sa sampla seo ar an gcéad

leathanach eile.

Úsáid an spás thíos chun do thuiscint ar mhodhanna teaghráin a

thaifeadadh

Ainm an Mhodha Cur Síos

strA.concat(strB) Tugann teaghrán nua atá comhdhéanta de charachtair strA

agus ansin carachtair strB ina ndiaidh.

str.charAt(index)

Tugann teaghrán nua atá comhdhéanta den charachtar ag an

index sainithe sa str (nó teaghrán folamh sa chás go bhfuil

index thar teorainn)

str.charCodeAt(index) Tugann cód Unicode an charachtair ag an innéacs sainithe sa

str (nó NaN sa chás go bhfuil index thar teorainn)

str.toUpperCase() Tugann teaghrán nua ina bhfuil na litreacha ar fad sa str

aistrithe go cás uachtair

Page 170: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 170

str.toLowerCase() Tugann teaghrán nua ina bhfuil na litreacha ar fad sa str

aistrithe go cás íochtair

str.indexOf(item

[,fromIndex])

Tugtar innéacs na chéad uaire a fheictear an luach a

shonraíonn item sa str. Mura sonraítear fromIndex,

tosaíonn an cuardach ag innéacs nialas. Sa chás nach

bhfaightear item, tugann an modh -1

str.lastIndexOf(item

[,fromIndex])

Ag tosú ag an deireadh (nó ag fromIndex) agus ag dul siar,

tugann an modh seo innéacs na chéad uaire a fheictear an

luach a shonraíonn item sa str. Sa chás nach bhfaightear

item, tugann an modh -1

str.slice([i1, [i2])

Tugann teaghrán nua atá comhdhéanta de charachtar str ó i1

go dtí i2 ach gan i2 san áireamh. Sa chás nach sonraítear i1,

glactar leis gur nialas é; sa chás nach sonraítear i2, glactar leis

gur str.length é. Níl athrú ar inneachar an teaghráin

bhunaidh.

str.replace(old, new) Gach uair a aimsítear old sa str, cuirtear new ina ionad.

str.split([separator]) Tugann eagar teaghrán deighilte ag an bpointe a shonraíonn an

separator

str.trim()

Cruthaíonn teaghrán nua bunaithe ar str le spásanna bána

chun tosaigh agus chun deiridh bainte amach. Tabhair faoi

deara, ní bhaineann trimStart() ach spásanna bána chun

tosaigh amach agus ní bhaineann trimEnd() ach spásanna

bána chun deiridh amach

Brabhsáil chuig https://www.w3schools.com/jsref/jsref_obj_string.asp chun tagairt níos iomláine

don oibiacht Teaghráin JavaScript a fháil.

Page 171: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 171

Teaghráin a Thrasnú

Sampla 1. Déanann an ríomhchlár seo a leanas an líon gutaí i dteaghrán a iontrálann an t-

úsáideoir a chomhaireamh agus a thaispeáint. Baineann an ríomhchlár úsáid as lúb for chun

gach carachtar sa teaghrán a thrasnú. Tugtar trasnáil teaghráin ar an oibríocht sin.

let inString = prompt("Enter a string:");

let vowels = 0;

let ch;

for(let i = 0; i < inString.length; i ++) {

// Bain amach an chéad charachtar eile (as suíomh i) ...

// ... agus athraigh é go cás uachtair

ch = inString.charAt(i).toUpperCase();

if (ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U')

vowels ++;

}

console.log("The number of vowels found was", vowels);

Cuir isteach an ríomhchlár, déan é a thástáil agus freagair na ceisteanna seo

a leanas

Céard é cuspóir na lúibe for?

Cén fáth a n-úsáidtear an modh toUpperCase?

Seachas an modh charAt a úsáid, cén teicníc eile a d’fhéadfaí a úsáid chun rochtain a fháil ar na

carachtair ar leith in inString?

Dúshláin!

Bunaithe ar an méid thuas, scríobh ríomhchláir chun....

− an líon carachtar i dteaghrán nach gutaí iad a chomhaireamh agus a thaispeáint

− an líon carachtar i dteaghrán ar consain iad a chomhaireamh agus a thaispeáint

− an líon carachtar cás uachtair i dteaghrán a chomhaireamh agus a thaispeáint

− an líon focal i dteaghrán a chomhaireamh agus a thaispeáint

Page 172: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 172

− meánfhad na bhfocal i dteaghrán a chomhaireamh agus a thaispeáint

Page 173: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 173

Sampla 2. Tugann an ríomhchlár seo a leanas leid don úsáideoir teaghrán a iontráil agus ansin

taispeánann sé an teaghrán droim ar ais. Taispeántar gach carachtar ar líne ar leith.

let str = prompt("Enter a string:");

for(let i = str.length-1; i >= 0; i--)

{

console.log(str[i]);

}

Dá n-iontráladh an t-úsáideoir Joe, is éard a

bheadh san aschur:

e

o

J

Déan comparáid idir an lúb for sa ríomhchlár seo agus an lúb for sa

sampla roimhe seo.

Féach ar an túsluach le haghaidh i sa dá ríomhchlár. Céard é an difríocht?

Féach ar an ngarda lúibe (an coinníoll críochta) sa dá ríomhchlár. Céard é an difríocht?

Mínigh an fáth ar i-- atá sa chéim lúibe sa ríomhchlár seo agus ar i++ atá inti sa sampla roimhe

seo?

Mínigh cuspóir na hathróige outStr sa chód thíos? Céard a dhéanann an ríomhchlár?

let inStr = prompt("Enter a string:");

let outStr = "";

for(let i = inStr.length-1; i >= 0; i--) {

outStr += inStr[i];

}

console.log(outStr);

Page 174: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 174

Sampla 3. Tugann an ríomhchlár samplach seo leid don úsáideoir teaghrán a iontráil agus ansin

taispeánann sé teachtaireacht a insíonn cibé an palandróm nó nach palandróm é an teaghrán.

Is focal nó frása siméadrach is féidir a léamh sa dá threo atá i bpalandróm. Samplaí de

phalandróim ar focail aonair iad MILLIM, RADAR agus DIÚID.

let s = prompt("Enter a string:");

let isPalindrom = true;

// Trasnaigh an teaghrán a dhéanann comparáid idir gach carachtar

for (let i=0, j = s.length-1; i < s.length; i++, j--) {

if (s[i] != s[j]) {

isPalindrom = false;

break;

}

}

// Taispeáin an toradh

if (isPalindrom)

console.log(s, "is a palindrome!");

else

console.log(s, "is not a palindrome!");

Cuir isteach an ríomhchlár, déan é a thástáil agus freagair na ceisteanna seo

a leanas

Mínigh an tslí a n-oibríonn an ríomhchlár.

Céard é cuspóir na hathróige isPalindrome? Dá socrófaí túsluach na hathróige seo mar false (ar

líne 2) cé na hathruithe a bheadh le déanamh chun cirte an ríomhchláir a choimeád?

An oibríonn an ríomhchlár i gcás gach palandróim? Tástáil é leis an méid seo a leanas agus sainaithin aon fhadhbanna a thagann aníos. Navan? RACEcar? MADAM I’M ADAM? DON’T NOD? never odd or even? Murder for a jar of red rum?

Page 175: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 175

An féidir leat ‘réitigh’ ar aon cheann de na ‘fabhtanna’ a shainaithin tú a cheapadh agus a fhorbairt?

Cleachtaí Ríomhchlárúcháin – Teaghráin

1. Abair cibé an mbeadh teaghrán cuí do na cineálacha sonraí seo a leanas:

a) Postchód do scoile

b) Do dháta breithe

c) Praghas táirge

d) Cód táirge

e) PPSN

f) An phostáil is déanaí a chuir tú ar na meáin shóisialta

2. Scríobh ríomhchlár a thugann leid don úsáideoir a chéad ainm (e.g. Joe) agus ansin a

shloinne (e.g. Blogs) a iontráil agus ansin priontáil teachtaireacht cosúil le:

Hello Joe Blogs. Fáilte chuig mo shaol craiceáilte!

3. Freagair na ceisteanna seo a leanas maidir leis an teaghrán JavaScript

a) Céard é fad an teaghráin?

b) Cén carachtar a fheictear ag suíomh innéacs nialas?

c) Cén carachtar a fheictear ag suíomh innéacs a ceathair?

d) Ag cén suíomh innéacs a fheictear an carachtar ‘t’?

e) Céard a bheadh ina ainm athróige cuí chun an teaghrán seo a stóráil?

4. Cén t-aschur a thaispeánann an ríomhchlár seo a leanas?

let uprCaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

let lwrCaseLetters = "abcdefghijklmnopqrstuvwxyz"

let letters = uprCaseLetters+lwrCaseLetters

console.log(uprCaseLetters.toLowerCase());

console.log(lwrCaseLetters.toLowerCase());

console.log(uprCaseLetters.slice(0,5));

console.log(uprCaseLetters.slice(20));

console.log(lwrCaseLetters.slice(1,6));

console.log(letters.slice(26,52));

console.log(letters.indexOf("a"));

console.log(letters.lastIndexOf("A"));

console.log(letters.replace("abc", "123"));

Page 176: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 176

console.log(uprCaseLetters == lwrCaseLetters);

console.log(uprCaseLetters == lwrCaseLetters.toUpperCase());

5. Scríobh ríomhchlár beag chun na teaghráin seo a leanas a bhaint amach (a

ghearradh/slice) as an teaghrán:

The quick brown fox jumps over the lazy dog

a) “quick”

b) “fox”

c) “The”

d) “The quick brown fox”

e) “jumps over the lazy dog”

6. Scríobh ríomhchlár a iarrann ar úsáideoir a chéad ainm (e.g. Arnold) agus ansin a shloinne

(e.g. Schwarzenegger) a iontráil agus a aschuireann túslitir an chéad ainm agus na chéad

seacht gcarachtar den sloinne ansin (e.g. ASchwarz).

Tástáil do chlár agus Joe Blogs á úsáid mar ainm:

7. Is éard is acrainm ann, sraith litreacha a úsáidtear mar ghiorrúchán do fhrása nó d’ainm

éigin. De ghnáth, cruthaítear é ach túslitir gach focail in ainm an fhrása a chur le chéile. Seo

roinnt samplaí: BSL (Bord Soláthair an Leictreachais), IBM (International Business

Machines) agus GOA (Gáire Os Ard). Scríobh ríomhchlár a ghineann acrainm as frása a

iontrálann an t-úsáideoir.

8. Scríobh ríomhchlár a ionchódaíonn abairtí i mBéarla go ‘Pigs Latin’. Is iomaí leagan de ‘Pigs

Latin’ ann – déan iarracht an dá cheann seo a leanas a chur i bhfeidhm:

a) Ionsáigh ‘eg’ ag deireadh gach guta i ngach focal san abairt le go n-athrófaí an t-ionchur

‘She sat under the table’ go dtí ‘Sheeg saegt uegndeegr theeg taegble’

b) Bog an chéad litir de gach focal san abairt ionchuir go dtí deireadh an fhocail sin agus

cuir ‘ay’ leis. Ar an tslí sin, d’athrófaí an t-ionchur ‘He switched on the computer’ go dtí

‘ehay witchedsay noay hetay omputercay’

Page 177: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 177

Déan machnamh ar na cleachtaí go léir sa rannán seo.

Tabhair le fios cén chaoi a bhféadfaí ceann ar bith de na cleachtaí seo a

oiriúnú le húsáid i rang Ríomheolaíocht na hArdteistiméireachta de do chuid

féin?

Page 178: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 178

Page 179: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 179

Eagair Is éard is eagar ann bailiúchán de luach ar bith nó de luachanna is féidir rochtain a fháil orthu

ach athróg amháin a úsáid. Tugtar eilimint ar gach luach ar leith in eagar agus bíonn gach

eilimint ag suíomh áirithe ar a dtugtar innéacs. Is éard is innéacs eagair ionad seach-chuir ar

bhonn nialasach is féidir a úsáid chun aghaidh a thabhairt ar na heilimintí ar leith in eagar.

POINTE TÁBHACHTACH: Is oibiachtaí JavaScript iad eagair. Mar sin, tá airíonna

gaolmhara acu (e.g. length) agus modhanna (e.g. concat).

Tá eagair úsáideach toisc go dtugann siad bealach dúinn roinnt luachanna a ghrúpáil le chéile

in athróg amháin. Gan eagair, bheadh orainn athróg ar leith a bheith againn le haghaidh gach

luacha.

Cuir i gcás gur theastaigh uainn aoiseanna seisear scoláirí a stóráil. D’fhéadfaimis sé athróg a

úsáid (e.g. age1, age2, etc..) nó d’fhéadfaimis eagar dar teideal ages a fhógairt mar seo a

leanas:

let ages = [18, 16, 18, 17, 19, 17];

Insíonn sin d’inneall JavaScript spás a leithdháileadh le haghaidh sé shlánuimhir agus iad a

stóráil le chéile faoin ainm ages. Taispeántar thíos an léiriú cuimhne ar ages. Tabhair faoi

deara go dtaispeántar innéacs gach eiliminte díreach thíos faoin eilimint féin.

Oibiacht eagair ar a dtugtar ages ina bhfuil sé eilimint

Page 180: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 180

Is féidir tagairt a dhéanamh d’eilimintí

aonair eagair ach úsáid a bhaint as ainm an

eagair le hinnéacs idir lúibíní cearnógacha

díreach ina dhiaidh.

Mar shampla, tagraíonn ages[0] don

chéad eilimint san eagar, tagraíonn

ages[1] don dara heilimint, agus mar sin

de. Déantar tagairt don eilimint deiridh san

eagar samplach seo le ages[5].

Léirítear é sin anseo ar dheis.

Cé gur tábhachtach agus gur riachtanach é an chomhréir chun eagair a chruthú agus a

láimhseáil a thuiscint, baineann fíor-ealaíon an ríomhchlárúcháin le cásanna a aithint ina

gcaitear eagair a úsáid i ríomhchlár.

Tógaimis an ríomhchlár seo a leanas mar shampla a ionsamhlaíonn milliún caitheamh díslí

agus a chomhaireann an líon uaireanta a fheictear gach taobh den dísle.

// Spreagann an ríomhchlár samplach seo úsáid eagar

// Cuir i gcás gur theastaigh uainn an líon uaireanta a chaitear gach taobh den dísle

a chomhaireamh

// Úsáideann an ríomhchlár sé athróg ar leith chun an comhaireamh a stóráil ...

// ... stóráiltear an líon uaireanta a chaitear 1 in 'ones', ...

// ... stóráiltear an líon uaireanta a chaitear 2 in ‘twos', ...

// Fógraítear agus túsaítear na hathróga sin mar seo a leanas

let ones = 0, twos = 0, threes = 0, fours = 0, fives = 0, sixes = 0;

// Ionsamhlaigh milliún caitheamh

for (let i = 1; i <= 1000000; i++ ) {

// Gin uimhir randamach idir 1 agus 6

let roll = Math.floor(Math.random() * 6) + 1

if (roll == 1)

ones++;

else if (roll == 2)

twos++;

else if (roll == 3)

threes++;

else if (roll == 4)

fours++;

else if (roll == 5)

fives++;

else if (roll == 6)

sixes++;

} // end for

// Taispeáin na minicíochtaí ar an gconsól

Page 181: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 181

console.log("Ones:\t%d", ones);

console.log("Twos:\t%d", twos);

console.log("Threes:\t%d", threes);

console.log("Fours:\t%d", fours);

console.log("Fives:\t%d", fives);

console.log("Sixes:\t%d", sixes);

Ionsamhlaíonn an ríomhchlár caitheamh amháin den dísle ach uimhir randamach idir 1 agus 6 a

ghiniúint agus déantar an próiseas arís is arís eile go ndéantar milliún uair é.

Úsáidtear athróg ar leith chun cuntas a choimeád ar gach taobh den dísle i.e. stórálann ones

an líon uaireanta a chaitear 1, stórálann twos an líon uaireanta a chaitear 2 agus mar sin de.

Meastar gur réiteach ciotach é mar gheall ar an líon athróg a theastaíonn. (Samhlaigh gur

theastaigh uainn cuntas a choimeád ar cé chomh minic a ‘tháinig uimhir aníos’ sa Chrannchur

Náisiúnta. Bheadh 47 athróg ar leith de dhíth!)

Réiteach níos fearr ná eagair a úsáid mar a thaispeántar sa liostáil seo a leanas.

// Fógair eagar ar a dtugtar 'counts'

let counts = [0,0,0,0,0,0,0];

let roll;

for (let i = 1; i <= 1000000; i++ ) {

// Gin uimhir randamach idir 1 agus 6

roll = Math.floor(Math.random() * 6) + 1;

counts[roll]++; // <-- DRAÍOCHTA!!

} // end for

// Taispeáin an t-aschur

console.log("Face\tFrequency\n");

for ( let i = 1; i <= 6; i++ )

console.log("%d\t%d\n", i, counts[i]);

Ones: 166357

Twos: 166570

Threes: 166399

Fours: 167060

Fives: 166487

Sixes: 167127

Cód Aschur samplach

POINTE TÁBHACHTACH: Is iad eagair an rogha comhstruchtúr sonraí chun

ionadaíocht a dhéanamh ar ghrúpaí luachanna gaolmhara in athróg aonair.

Sa sampla roimhe seo, úsáidtear an t-eagar counts chun liosta minicíochtaí a stóráil.

D’fhéadfaí eagair a úsáid chun liostaí uimhreacha (e.g. aoiseanna, tuarastail, figiúirí díolacháin,

airdí, etc.), ainmneacha, uimhreacha gutháin, leabhar, laethanta na seachtaine, míonna na

bliana, dátaí, agus mar sin de, a stóráil chomh maith. Is féidir grúpaí oibiachtaí ar bith, nach

mór, a léiriú le heagair.

Page 182: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 182

Liostaigh cúig ‘oibiacht iarbhír’ a bhféadfaí eagar a úsáid chun iad a léiriú

1.

2.

3.

4.

5.

Ríomhchlár Samplach – Gineadóir Abairtí

Sa ríomhchlár Python a thaispeántar thíos, baintear úsáid as ceithre eagar dhifriúla – article,

noun, verb agus preposition – chun abairt randamach a ghiniúint.

Cruthaítear an abairt ach focal a roghnú go randamach ó gach eagar san ord seo:

article noun verb article noun preposition verb

Comhchaitéiníonn an ríomhchlár na focail (agus spásanna eatarthu) chun an abairt deiridh a

chruthú.

import random

articles = ['the', 'a', 'one', 'some', 'any']

nouns = ['boy', 'girl', 'dog', 'town', 'car']

verbs = ['drove', 'jumped', 'ran', 'walked', 'skipped']

prepositions = ['to', 'from', 'over', 'under', 'on']

sizeOfLists = len(articles)-1

wordIndex = random.randint(0, sizeOfLists)

word1 = articles[wordIndex]

wordIndex = random.randint(0, sizeOfLists)

word2 = nouns[wordIndex]

wordIndex = random.randint(0, sizeOfLists)

word3 = verbs[wordIndex]

wordIndex = random.randint(0, sizeOfLists)

word4 = prepositions[wordIndex]

wordIndex = random.randint(0, sizeOfLists)

word5 = articles[wordIndex]

wordIndex = random.randint(0, sizeOfLists)

word6 = nouns[wordIndex]

Page 183: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 183

sentence = word1+' '+word2+' '+word3+' '+word4+' '+word5+' '+word6

print(sentence)

Aschur samplach (uaireanta ní bhíonn ciall ar bith leis na habairtí a ghintear!)

● a dog ran under a girl

● any car ran to some boy

● a town ran under any town

● some dog jumped on a car

Dúshlán!

Aistrigh an ríomhchlár Python thuas go JavaScript

.

Luach eilimintí eagair a athrú

Bíonn eagair inathraithe agus dinimiciúil araon – ciallaíonn sin gur féidir eilimintí atá ann cheana

féin a athrú agus eilimintí nua a chur leo. Is féidir eilimintí eagair a scriosadh freisin ach an t-

oibreoir delete a úsáid. Breathnaigh ar an sampla a thaispeántar:

let items = ["Bread", "Milk", "Tea"];

items[0] = "Sliced Pan"; // leasaigh eilimint

delete items[2]; // scrios eilimint

items[3] = "Butter"; // cuir eilimint nua leis

items[4] = "Jam"; // cuir eilimint nua eile leis

console.log(items); // taispeáin inneachar an eagair

Nuair a ritear an cód thuas, taispeántar an t-aschur seo a leanas ar an gconsól.

Nótaí:

✔ Athraíodh an chéad eilimint in items ó Bread go Sliced Pan

✔ Baineadh an tríú heilimint (i.e. eilimint ag suíomh innéacs 2) as an eagar.

✔ Cuireadh dhá eilimint nua le deireadh an eagair items (Butter agus Jam)

✔ Fad 3 a bhí san eagar bunaidh. Tar éis an cód a rith, is 5 atá i bhfad an eagair.

Nuair a scriostar eilimint as eagar, ní thagann athrú ar fhad an eagair. Ní dhéantar ach an luach

a bhaint ón eagar ach bíonn an ‘spás’ mar chuid den eagar fós. Sa sampla thuas, baintear an

Page 184: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 184

luach Tea is as items – glantar an chuimhne do items[2] ach bíonn sí leithdháilte i gcónaí.

Tugtar eagair ghanna ar eagair cosúil leis seo a bhfuil spásanna folmha iontu.

POINTE TÁBHACHTACH: Is ionann fad eagar ar bith agus an líon eilimintí ann.

Maidir le heagar a ar bith, tugann an slonn a[a.length-1] an eilimint deiridh i

gcónaí.

Fad eagair

Is féidir a fháil amach cá mhéad eilimintí atá in eagar ach airí length an eagair a úsáid10.

Baintear úsáid as an oibreoir poinc chun rochtain a fháil ar an airí length (díreach mar a

bhaintear úsáid as chun rochtain a fháil ar gach airí oibiachta).

Mar shampla, cuir i gcás gur theastaigh uainn fad items an eagair a fháil, agus iad fógartha

mar seo a leanas:

let items = ["Bread", "Milk", "Tea"];

Tá trí ghné ag an eagar seo:

items[0] 🡪 Bread

items[1] 🡪 Milk

items[2] 🡪Tea

Taispeánann an líne seo a leanas fad items ar an gconsól.

console.log(items.length); // taispeánann 3

Faoin am seo, ba cheart gur léir gurb ionann i gcónaí innéacs na heiliminte deiridh in eagar

agus fad an eagair lúide 1. Is amhlaidh sin lena chur san áireamh gur nialas é innéacs na chéad

eiliminte. Dá bharr sin, thabharfadh an slonn items[items.length-1] an teaghrán Tea sa

sampla seo.

POINTÍ TÁBHACHTACHA:

✔ Tá innéacs de nialas ag an gcéad eilimint i ngach eagar.

✔ Tá innéacs de a.length - 1 ag an eilimint deiridh i ngach eagar a.

10 In JavaScript, caitear le gach eagar mar oibiacht agus, dá bharr sin, tá airíonna agus modhanna

gaolmhara acu.

Page 185: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 185

✔ Dá bharr sin, téann innéacsanna bailí ó 0 go dtí fad an eagair lúide 1

Bain triail as!

Déan cás a cheapadh chun tástáil a dhéanamh ar a dtarlódh dá ndéanfá

iarracht rochtain a fháil ar eagar agus innéacs atá as raon á úsáid agat.

Page 186: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 186

Modhanna Eagair11

Ar nós gach oibiachta, tá modhanna ag eagair – seo liosta de roinnt de na cinn is coitianta.

Ainm an Mhodha Cur Síos

arrA.concat(arrB) Tugann eagar nua atá comhdhéanta d’eilimintí arrA agus ansin

eilimintí arrB.

arrA.indexOf(item)

Tugann innéacs an chéad uair a fheictear an luach a

shonraíonn item in arrA. Sa chás nach bhfaightear item,

tugann an modh -1

arrA.lastIndexOf(item)

Ag tosú ón deireadh, tugann innéacs an chéad uair a fheictear

an luach a shonraíonn item in arrA. Sa chás nach bhfaightear

item, tugann an modh -1

arrA.join([separator])

Tugann na heilimintí go léir san eagar, iad comhcheangailte mar

theaghrán. Is camóg é luach réamhshocraithe an deighilteora

roghnaigh.

arrA.push(items) Iarcheanglaíonn eilimint amháin nó níos mó (mar a shonraítear

ag items) le deireadh an arrA agus tugann fad nua an eagair.

arrA.pop() Baineann an eilimint deiridh in arrA. Tugann an eilimint a

baineadh nó undefined sa chás go raibh an t-eagar folamh

arrA.shift() Baineann an chéad eilimint in arrA. Tugann an eilimint a

baineadh nó undefined sa chás go raibh an t-eagar folamh

arrA.unshift(items) Ionsánn eilimint amháin nó níos mó (mar a shonraítear ag

items) le tús arrA agus tugann fad nua an eagair.

arrA.sort() Sórtálann eilimintí an eagair ina n-áit agus tugann an t-eagar

sórtáilte (in ord aibítreach)

arrA.reverse() Sórtálann eilimintí an eagair ina n-áit agus tugann an t-eagar

sórtáilte (in ord aibítreach)

arrA.slice([i1, [i2])

Tugann eagar nua atá comhdhéanta d’eilimintí arrA ó i1 suas

go i2 ach gan i2 san áireamh. Sa chás nach sonraítear i1,

glactar leis gur nialas é; sa chás nach sonraítear i2, glactar leis

gur arrA.length é. Níl athrú ar inneachar an eagair bunaidh.

11 Brabhsáil chuig ceachtar den dá láithreán seo chun tagairt níos iomláine ar mhodhanna eagair a

fháil: https://www.w3schools.com/jsref/jsref_obj_array.asp https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

Page 187: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 187

arrA.splice(i, [n,

[items]])

Cuireann/athchuireann/baineann eilimintí ó eagar i bhfeidhm. Is

é i an t-innéacs tosaigh, is é n an líon eilimintí atá le baint agus

is é items na heilimintí nua.

Tugann eagar nua le heilimintí ar bith a baineadh. (Sa chás

nach bhfuil eilimintí ar bith bainte, tugtar eagar folamh.)

Léiríonn an cód thíos an úsáid a bhaintear as roinnt de na modhanna a bhfuil cur síos díreach

déanta orthu.

push agus pop

Is féidir eilimintí a chur le heagar agus a bhaint de, ach na modhanna push agus pop a úsáid.

✔ Cuireann push eilimint amháin nó níos mó le deireadh eagair. Méadaíonn sé fad eagair faoin

líon luachanna a chuirtear leis.

✔ baineann pop an eilimint deiridh d’eagar. Laghdaíonn sé fad eagair faoi 1.

Bain triail as an méid seo a leanas:

let items = ["Bread", "Milk", "Tea"];

items.push("Butter", "Jam"); // cuir Butter agus Jam leis

items.pop(); // bain Jam

console.log(items); // taispeáin an t-eagar

An t-aschur mar thoradh air sin ná:

Mínigh an fáth nach gcuirtear ‘Jam’ san áireamh in aschur an eagair

items a thaispeántar thuas.

Cén chaoi a bhféadfaí Tea’ a bhaint sular gcuirfí ‘Butter’ agus‘ ‘Jam’

leis?

POINTE TÁBHACHTACH: Gairtear modhanna ach an t-oibreoir poinc a úsáid. Chun

modh m a ghairm ar eagar a, scríobhaimid a.m()

Page 188: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 188

shift agus unshift

Is dhá mhodh eagair eile a bhaineann go dlúth le push agus pop iad shift agus unshift.

let items = ["Bread", "Milk", "Tea"];

items.shift(); // ??

console.log(items); // taispeáin an t-eagar

items.unshift(); // ??

console.log(items); // taispeáin an t-eagar

Bain triail as! Cuir isteach an cód thuas agus rith é. Bunaithe ar as aschur,

déan cur síos ar a ndéanann an dá mhodh, shift agus unshift.

concat, join, splice, sort agus reverse

Léirítear na modhanna sin sa ríomhchlár gearr.

let weekDays = ['Mon', 'Tue', 'Wed', 'Thur', 'Fri'];

let weekendDays = ['Sat', 'Sun'];

let daysOfWeek = weekDays.concat(weekendDays);

console.log(daysOfWeek.join());

console.log(daysOfWeek.slice(2));

console.log(daysOfWeek.slice(2,5));

console.log(weekendDays.concat(weekDays));

console.log(weekDays.sort());

console.log(weekendDays.reverse());

Taispeántar thíos an t-aschur a ghineann na ráitis console.log go léir. Ba cheart duit an cód a

léamh go cúramach agus iarracht a dhéanamh an chaoi a dtagtar ar an aschur sin a thuiscint.

Mon,Tue,Wed,Thur,Fri,Sat,Sun

["Wed","Thur","Fri","Sat","Sun"]

Page 189: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 189

["Wed", "Thur", "Fri"]

["Sat","Sun","Mon","Tue","Wed","Thur","Fri"]

["Fri", "Mon", "Thur", "Tue", "Wed"]

["Sun", "Sat"]

Déan an t-aschur a ghinfidh an cód thíos a thuar.

let weekDays = ['Mon', 'Tue', 'Wed', 'Thur', 'Fri'];

let weekendDays = ['Sat', 'Sun'];

let daysOfWeek = weekendDays.concat(weekDays);

console.log(daysOfWeek.join());

console.log(daysOfWeek.slice(2));

console.log(daysOfWeek.slice(2,5));

console.log(weekDays.concat("Weekend"));

console.log(weekendDays.sort());

console.log(weekDays.reverse());

splice

I gcás eagair ar a dtugtar weekDays leis na luachanna ['Mon', 'Wed', ‘Thur']

weekDays.splice(1, 0, "Tue");

Ionsánn an líne seo 'Tue' ag suíomh innéacs 1

Déantar na heilimintí go léir ar dheis de shuíomh 1 (lena n-áirítear 'Wed') a bhrú síos san eagar

roimh an ionsá. Athraítear an t-eagar san ionad chun ['Mon', ‘Tue’ 'Wed', 'Thur'] a

dhéanamh de.

console.log(weekDays.splice(1, 0, "Tue"));

Page 190: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 190

Taispeánann an líne seo an t-eagar folamh, [] mar gheall go dtugann splice eagar de na

heilimintí go léir a scriosann sé – ceann ar bith sa chás seo – i gcónaí.

weekDays.splice(1, 2);

Baineann an líne seo dhá eilimint ón eagar ag tosú ag suíomh innéacs 1. Athraítear an t-eagar

san ionad chun ['Mon'] a dhéanamh de agus tugtar eagar nua d’eilimintí scriosta ['Wed',

'Thur']

Próiseáil Eagair

Féach ar an gcód thíos.

let daysInMonths = [31,28,31,30,31,30,31,31,30,31,30,31];

for (let i=0; i < daysInMonths.length; i++)

console.log("Month %d has %d days", (i+1), daysInMonths[i]);

Taispeánann an cód an t-aschur a thaispeántar anseo ar

dheis.

Atriaileann an lúb for ar gach eilimint san eagar ach athróg

innéacs i a úsáid.

Túsaítear an t-innéacs go nialas agus cuirtear incrimint ar gach

atriall lúibe. Leantar leis an lúb fad is go mbíonn i níos lú ná

12, arb é fad an eagair é. Tá sé sin ceart go leor mar gheall

gur 11 é innéacs na heiliminte deiridh san eagar.

Taispeánann an corp lúibe líne aschuir amháin ar gach atriall.

Mar gheall go dtugann an ríomhchlár cuairt ar gach eilimint den eagar uair amháin, tugtar

trasnáil eagair ar an gcineál seo ríomhchláir. Is pátrún sách coitianta sa ríomhchlárúchán iad

trasnálacha eagair. Seo a leanas roinnt samplaí eile.

POINTE TÁBHACHTACH: Is éard is trasnáil eagair ann, patrún ríomhchlárúcháin

lena mbaineann atriall ar gach eilimint in eagar.

Page 191: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 191

1. Trasnaíonn an ríomhchlár seo dhá eagar ag an am céanna

let daysInMonths = [31,28,31,30,31,30,31,31,30,31,30,31];

let months = ["Jan","Feb","Mar","Apr","May","June","July","Aug","Sept","Oct","Nov","Dec"];

for (let i=0; i < daysInMonths.length; i++)

console.log("%s has %d days\n", months[i], daysInMonths[i]);

Déan cur síos ar a ndéanann an ríomhchlár thuas.

2. Ríomhann an ríomhchlár seo meán uimhríochtúil gnéithe eagair

let ages = [18, 16, 18, 17, 19, 17];

let total = 0;

for (let i=0; i < ages.length; i++)

total = total + ages[i];

console.log("The mean age is %d", total/ages.length);

Cén chaoi a bhféadfaí an sannachán total = total + ages[i]; a

scríobh ar bhealach níos gonta?

An bhfuil an ríomh ceart, i do thuairim?

3. Trasnaíonn an ríomhchlár seo eagar chun an luach is uasta atá ann a aimsiú

let ages = [18, 16, 18, 17, 19, 17];

let max = 0;

for (let i=0; i < ages.length; i++) {

if (ages[i] > max)

max = ages[i];

}

console.log("The maximum age is %d", max);

Déan cur síos ar an gcaoi a n-oibríonn an ríomhchlár thuas.

Page 192: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 192

An bhfuil gá leis na lúibíní slabhracha? Mínigh.

Page 193: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 193

Eagair agus tagairtí eagair a chóipeáil

Cuir i gcás gur dhearbhaíomar agus gur thúsaíomar dhá eagar slánuimhreach – arr1 agus

arr2 – mar seo a leanas.

let arr1 = [1, 3, 5, 7, 9];

let arr2 = [];

D’fhéadfadh sé a bheith áisiúil smaoineamh ar an dá eagar agus an chuma seo a leanas orthu.

Is é arr1 an t-eagar corruimhreacha a thaispeántar ar chlé, agus is é arr2 an t-eagar folamh a

thaispeántar ar dheis.

Déanann an cód thíos inneachar arr1 a chóipeáil isteach in arr2.

for (let index = 0; index < arr1.length; index++) {

arr2[index] = arr1[index];

}

Déantar gach gné den arr1 a chóipeáil isteach sa suíomh comhfhreagrach le arr2. Léirítear

thíos na heagair atá mar thoradh air sin.

Page 194: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 194

Tá sé tábhachtach a thabhairt faoi deara ón sampla roimhe seo gur cóip de arr1 é arr2. Is

comhstruchtúir ar leith iad an dá eagar agus mar sin is féidir a n-inneachar a athrú go

neamhspleách ar a chéile.

Is féidir codarsnacht a dhéanamh idir sin agus an cás ar tugadh aird air ar Líne 2 sa chód thíos

ina sanntar tagairt do arr1 don athróg arr2. Taispeántar an t-aschur ar dheis.

let arr1 = [1, 3, 5, 7, 9];

let arr2 = arr1;

console.log("BEFORE TRAVERSAL");

console.log("Array 1:", arr1);

console.log("Array 2:", arr2);

for (let i=0; i < arr1.length; i++) {

arr1[i]++;

}

console.log("AFTER TRAVERSAL");

console.log("Array 1:", arr1);

console.log("Array 2:", arr2);

Cód Aschur Léirítear éifeacht Líne 2 sa ghrafaic thíos.

Tagraíonn arr1 agus arr2 don eagar céanna

Aon athrú a dhéantar ar arr1, déantar ar arr2 é chomh maith. Trasnaíonn an lúb for ar arr1

agus cuirtear incrimint le gach eilimint ar an mbealach. Léirítear thíos staid an dá oibiacht eagair

i ndiaidh na lúibe for.

Is tagairt é arr2 do arr1 agus vice versa

Mínigh an chúis a bhfanfadh aschur an ríomhchláir thuas mar an

gcéanna sa chás go dtrasnódh an lúb arr2 (seachas arr1).

Page 195: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 195

Page 196: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 196

Eagair a sheachadadh chuig feidhmeanna

Nuair a sheachadtar eagar mar argóint chuig feidhm, is é an tagairt don eagar bunaidh a

sheachadtar, ní cóip den eagar. Dá bharr sin, maireann aon athrú a chuirtear ar eagair den sórt

sin laistigh den fheidhm nuair a thagann deireadh leis an bhfeidhm.

Léirítear é sin sa chód thíos, ina sainmhínítear feidhm ar a dtugtar incrementValues.: Cuireann

an fheidhm seo 1 le gach eilimint den eagar a sheachadtar isteach inti. Glaoitear ar an bhfeidhm

sa dara líne dheiridh i liostáil an chóid.

function incrementValues(arrayParam) {

console.log("incrementValues() called");

for (let i=0; i < arrayParam.length; i++) {

arrayParam[i]++;

}

console.log("incrementValues() ends");

} // end incrementValues()

let argArray = [1, 3, 5, 7, 9];

console.log("Array before call:", argArray);

incrementValues(argArray);

console.log("Array after call:", argArray);

An t-aschur seo a leanas atá mar thoradh ar an gcód.

Mar a fheictear, d’athraigh an fheidhm luach an argArray.

POINTE TÁBHACHTACH: Seachadtar eagair ach tagairt a dhéanamh

d’fheidhmeanna.

Page 197: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 197

Cleachtaí ríomhchlárúcháin – Eagair

1 Scríobh líne chóid chun eagar a thúsú mar seo a leanas:

['spring', 'summer', 'autumn', 'winter']

2 Scríobh líne chóid chun eagar a thúsú le laethanta na seachtaine (i.e. 'Sunday' go dtí

'Saturday'). Tabhair weekDays ar d’eagar. Anois scríobh cód chun na gnéithe a thaispeáint:

a) weekdays[0]

b) weekdays[5]

c) weekdays[weekdays.length-1]

4. Scríobh líne chóid chun eagar a thúsú le hainmneacha an 12 mhí sa bhliain.

Scríobh líne chóid eile chun eagar a thúsú leis an líon laethanta i ngach mí (glac leis go

bhfuil 28 lá i bhFeabhra)

Anois, cuir an méid seo a leanas i bhfeidhm:

− tabhair leid don úsáideoir ainm míosa a iontráil

− cuardaigh innéacs na míosa a iontráladh ón eagar months

− déan rochtain ar an eilimint ag an innéacs seo ón eagar days

− taispeáin an líon laethanta sa mhí.

Mar shampla, sa chás gur iontráil an t-úsáideoir March, ba cheart don ríomhchlár an

teachtaireacht aschuir seo a thaispeáint – March has 31 days

5. Scríobh ríomhchlár chun 100 slánuimhir idir 1 agus 10 a ghintear go randamach a ghineadh

agus a stóráil in eagar

6. Scríobh ríomhchlár chun cúig luach ar leith a léamh isteach ó úsáideoir deiridh agus iad a

stóráil in eagar

7. Scríobh ríomhchlár chun na chéad 10 n-uimhir phríomha a aimsiú agus iad a stóráil in eagar

Page 198: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 198

8. Scríobh ríomhchlár a chuireann inneachar dhá eagar leis agus a stórálann na torthaí i dtríú

heagar. Mar shampla, sa chás go dtúsófaí an dá eagar ionchuir mar seo a leanas:

let arrOfEvens = [2, 4, 6, 8, 10]

let arrOfOdds = [1, 3, 5, 7, 9]

Is éard a bheadh san eagar aschuir:

[3, 7, 11, 15, 19]

9. Scríobh ríomhchlár chun an luach is mó san eagar a thaispeántar thíos a aimsiú.

[18, 23, 16, 18, 23, 21, 15, 16, 23, 21]

Mionathraigh do ríomhchlár ionas go dtaispeánfaidh sé an líon uaireanta a tharlaíonn an

luach uasta.

10. Scríobh ríomhchlár chun meán uimhríochtúil, airmheán agus mód an eagair a thaispeántar

thíos a aimsiú.

[18, 23, 16, 18, 23, 21, 15, 16, 23, 21]

11. I gcás eagair daysOfWeek a fhógraítear mar seo a leanas:

let daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat'];

a) scríobh líne chóid chun an chéad eilimint agus an eilimint deiridh a bhaint, ach shift agus

pop faoi seach a úsáid. Ba cheart go mbeadh an chuma seo ar an eagar ar deireadh:

['Mon', 'Tue', 'Wed', 'Thur', 'Fri'];

b) scríobh líne chóid chun na heilimintí ‘Sat’ agus ‘Sun’ a bhrú chun deiridh

12. I gcás eagair suits a fhógraítear mar seo a leanas:

let suits = ['Hearts', 'Diamonds', 'Spades'];

Úsáid an modh splice chun an luach ‘Clubs’ a ionsá idir ‘Diamonds’ agus ‘Spades’ ionas go

n-athrófaí an t-eagar go: ['Hearts', 'Diamonds', 'Clubs', 'Spades'];

Page 199: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 199

13. Ionsamhlaíonn an ríomhchlár Python a thaispeántar anseo cárta randamach á roghnú as

paca cártaí. (i.e. pioc cárta, cárta ar bith.)

a) Cuir an clár i bhfeidhm in JavaScript

b) Leathnaigh do ríomhchlár chun cúig chárta a roinnt ach gan cárta ar bith a roinnt níos

mó ná uair amháin. (Leid: beidh ort eagar nua a chruthú – tabhair hand air – agus gach

uair a ghintear cárta randamach, iarcheangail le hand é, sa chás nár roinneadh cheana

é agus sa chás sin amháin.)

14. Ceap agus scríobh ríomhchlár JavaScript lena chinneadh cibé an pangram é abairt a

iontrálann an t-úsáideoir. (Is éard is pangram ann abairt ina n-úsáidtear gach litir san aibítir

uair amháin ar a laghad.)

Leid: Cén chaoi a ndéanfá cód carachtar a mhapáil le hinnéacs eagair – an líon litreacha i

bpíosa téacs a chomhaireamh?

Page 200: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 200

Déan machnamh ar na cleachtaí go léir sa rannán seo.

Tabhair le fios cén chaoi a bhféadfaí ceann ar bith de na cleachtaí seo a

oiriúnú le húsáid i rang Ríomheolaíocht na hArdteistiméireachta de do chuid

féin?

Page 201: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 201

Page 202: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 202

Feidhmeanna Is éard is feidhm ann grúpa ráiteas atá ceaptha tasc ar leith a dhéanamh. Is iad na feidhmeanna

na bloic thógála a úsáidtear chun ríomhchláir a chruthú. Tá siad tábhachtach mar gheall go

gcuireann siad ar chumas ríomhchláraitheoirí feidhmiúlacht áisiúil is féidir a ghairm i líne chóid

amháin a stóráil – an glao feidhme.

Comhréir Feidhme – feidhmeanna a shainiú agus glaoch orthu

Ní gá feidhm a shainiú ach uair amháin, ach is féidir glaoch uirthi arís agus arís eile. Gach uair a

ghlaoitear ar fheidhm, ritear na ráitis a chomhdhéanann an fheidhm. Ciallaíonn sé sin nach gá

do ríomhchláraitheoirí na línte céanna cóid a athscríobh gach uair a theastaíonn uathu go

ndéanfar tasc sonrach. Dá bharr sin, is féidir feidhmeanna a úsáid chun dúbailt chóid a

sheachaint.

Mar seo a leanas an chomhréir ghinearálta chun feidhm nua a shainiú:

function <function-name>([parameters]){

statement(s)

}

Tá an chéad líne san fheidhm tábhachtach mar gheall go bhfuil an fhaisnéis riachtanach inti a

theastaíonn ó ríomhchláraitheoirí eile chun an fheidhm a úsáid. Tugtar an síniú feidhme uirthi.

Tá an síniú comhdhéanta d’ainm na feidhme agus liosta paraiméadar roghnach is féidir a

sheachadadh isteach san fheidhm nuair a ghlaoitear uirthi.

An ríomhchláraitheoir a roghnaíonn ainm na feidhme. Is ionann na rialacha a bhaineann le

feidhmeanna a ainmniú agus na rialacha a bhaineann le hathróga a ainmniú.

POINTE TÁBHACHTACH: Is éard is feidhm ann píosa gearr in-athúsáidte cóid

a úsáidtear chun tasc ar leith a dhéanamh nuair a ghlaoitear uirthi.

Chomh luath agus a shainítear feidhm, ní theastaíonn ach líne amháin cóid chun í a úsáid. Is é

sin an glao feidhme. Is é seo an chuma a bhíonn ar fhoirm ghinearálta glao feidhme.

Page 203: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 203

function([arguments]);

An rud cliste faoi fheidhmeanna ná chomh héasca is atá sé iad a úsáid. Féachaimis ar roinnt

samplaí.

Sampla 1

Sa chód thíos, tarraingítear bosca cearnógach ar an gconsól. Taispeántar an t-aschur ar dheis.

console.log("+------+");

console.log("| |");

console.log("| |");

console.log("+------+");

Cuir i gcás gur theastaigh uainn go dtarraingeodh ár ríomhchlár dhá bhosca chearnógacha –

bheadh orainn an cód a dhúbailt mar seo a leanas:

console.log("+------+");

console.log("| |");

console.log("| |");

console.log("+------+");

console.log("+------+");

console.log("| |");

console.log("| |");

console.log("+------+");

Gach uair is mian linn bosca cearnógach a tharraingt, beidh orainn an cód a dhúbailt –

d’fhéadfadh sé sin éirí casta. Is réiteach níos fearr é an cód a phacáil laistigh d’fheidhm mar a

thaispeántar thíos.

function drawBox() {

console.log("+------+");

console.log("| |");

console.log("| |");

console.log("+------+");

}

Page 204: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 204

POINTE TÁBHACHTACH: Cuireann feidhmeanna bealach ar fáil do

ríomhchláraitheoirí chun feidhmiúlacht a phacáil agus a stóráil le húsáid in

áiteanna eile sa ríomhchlár.

Nuair a ritear an ríomhchlár sa sampla deiridh, tabharfaidh tú faoi deara go ndealraítear nach

dtarlaíonn dada. Go sonrach, ní thaispeántar an bosca a thuilleadh. Is amhlaidh sin mar gheall

nár glaodh ar an bhfeidhm – fós!

Chun glaoch ar an bhfeidhm, ní theastaíonn ach ráiteas amháin uainn – drawBox();

function drawBox() {

console.log("+------+");

console.log("| |");

console.log("| |");

console.log("+------+");

}

drawBox();

Mínítear séimeantaic an ghlao feidhme mar seo a leanas. Nuair a ghlaoitear ar an bhfeidhm,

léimeann an sreabhadh rialúcháin go dtí an chéad líne den fheidhm agus ritheann an clár ón

bpointe sin go dtí líne dheireanach na feidhme. Chomh luath agus a bhíonn an líne dheireanach

den fheidhm rite, léimeann an sreabhadh rialúcháin ar ais go dtí an pointe ónar glaodh ar an

bhfeidhm ar dtús.

Chomh luath agus a shainítear feidhm, is féidir glaoch uirthi áit ar bith sa chód. (In JavaScript, is

féidir glao feidhme a fheiceáil i gcód sula bhfeictear an sainmhíniú air.)

drawBox();

drawBox();

drawBox();

drawBox();

drawBox();

Page 205: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 205

POINTE TÁBHACHTACH: Ritear an cód taobh istigh de chorp feidhme mar thoradh ar ghlao feidhme.

Sampla 2

Taispeántar sa sampla thíos sainmhíniú ar fheidhm ar a dtugtar displayRhyme – taispeántar

aschur an ríomhchláir ar dheis.

function displayRhyme() {

console.log("Jack loves to do his homework");

console.log("He never misses a day");

console.log("He even loves the men in white");

console.log("Who are taking him away");

}

displayRhyme(); // tabhair displayRhyme ar an

bhfeidhm

console.log(""); // taispeáin líne fholamh

displayRhyme();// tabhair displayRhyme ar an

bhfeidhm

Tabhair faoi deara go bhfeictear an rann faoi dhó san aschur. Is amhlaidh sin mar go nglaoitear

ar an bhfeidhm a thaispeánann an rann faoi dhó sa chód.

Nuair a ghlaoitear ar an bhfeidhm den chéad uair, aistrítear an sreabhadh rialúcháin go dtí an

fheidhm agus ritheann an clár in ord go dtí go sroichtear líne dheireanach chorp na feidhme. Ag

an bpointe seo, téann JavaScript siar go dtí an pointe sa chód inar glaodh ar an bhfeidhm. An

chéad líne eile le rith ná console.log(""); – chomh luath agus a ritear an líne sin, ritheann

JavaScript an líne dheireanach den ríomhchlár, arb é an dara glao ar displayRhyme.

Page 206: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 206

Tabhair faoi deara sa chód thuas go dtaispeántar an t-ainm

céanna, i.e. Jack, i gcónaí inár rann. Is amhlaidh sin mar

gheall go bhfuil Jack cruachódaithe san fheidhm.

Nár dheas dá mbeimis in ann an rann a thaispeáint agus

ainmneacha éagsúla á n-úsáid againn? Dá mbeimis in ann a

insint don fheidhm cén t-ainm le taispeáint!

Is féidir é sin a dhéanamh ach paraiméadair agus argóintí a úsáid.

Paraiméadair agus Argóintí

Is cineál speisialta athróige é paraiméadar a fheictear mar chuid den síniú feidhme agus is féidir

a úsáid taobh istigh den chorp feidhme. Ceadaíonn paraiméadair do ríomhchláraitheoirí faisnéis

a sheachadadh isteach i bhfeidhm.

Cuirimis paraiméadar lenár sampla roimhe seo ionas go bhféadfaidh sé an rann a thaispeáint le

hainm duine ar bith ann – ní Jack agus eisean amháin!

function displayRhyme(personName) {

console.log(personName, "loves to do his homework");

console.log("He never misses a day");

console.log("He even loves the men in white");

console.log("Who are taking him away");

}

displayRhyme("James");

Tá an t-ainm James (ní Jack!) san

áireamh sa rann anois

Fógra ón gcód:

− an t-aitheantóir personName (aibhsithe i ndearg) idir lúibíní sa síniú feidhme ar an gcéad

líne. Sin sampla de pharaiméadar feidhme. Is éard is paraiméadar ann cineál speisialta

cineál athróige a thúsaítear nuair a ghlaoitear ar an bhfeidhm.

− an téacs James (aibhsithe i nglas) idir lúibíní mar chuid den ghlao feidhme ar an líne

dheireanach? Is argóint feidhme é sin. Seachadtar argóintí isteach i bhfeidhmeanna.

Page 207: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 207

Sa sampla thuas seachadtar an teaghrán James isteach san fheidhm displayRhyme mar

argóint. Faightear an luach isteach san fheidhm ag an bparaiméadar personName.

POINTE TÁBHACHTACH: Is athróg é paraiméadar feidhme a fhaigheann a

luach ón argóint a sheachadtar isteach inti. Nuair a ghlaoitear ar fheidhm,

sanntar luach na hargóinte don pharaiméadar.

Is é an buntáiste a bhaineann le paraiméadair agus argóintí a úsáid go ndéanann siad

feidhmeanna i bhfad níos solúbtha. Is féidir an chaoi a n-oibríonn feidhm ag am rite a athrú ach

argóintí éagsúla a sheachadadh isteach inti. Léirítear an pointe sin ar an leathanach thíos, áit

arb iad na trí ghlao ar thaobh na láimhe clé is cúis leis an aschur a thaispeántar ar dheis.

function displayRhyme(personName) {

console.log(personName, "loves to do his homework");

console.log("He never misses a day");

console.log("He even loves the men in white");

console.log("Who are taking him away");

}

displayRhyme("James");

console.log("");

sdisplayRhyme("James");

console.log("");

displayRhyme("Fred");

console.log("");

Is é personName an paraiméadar agus is iad James, Joe agus Fred na trí argóint. Ag am rite,

sanntar an paraiméadar do gach argóint agus úsáidtear a luach san aschur.

Bain triail as! Cuir isteach an cód thuas agus rith é. Chomh luath agus a

bheidh cur amach agat ar a ndéanann sé, athraigh an cód ionas go mbeidh

an chuma thíos ar an aschur a thaispeántar.

Úsáid an spás thíos chun do pharaiméada(i)r agus d’argóint(í) a liostú.

Page 208: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 208

POINTE TÁBHACHTACH: Go ginearálta, ba cheart duit an líon céanna argóintí

a sheachadadh isteach san fheidhm agus an líon paraiméadar a shonraítear sa

síniú feidhme.

Paraiméadair/argóintí iomadúla

Féadfaidh níos mó ná paraiméadar amháin a bheith ag feidhm. Breathnaigh ar an méid seo a

leanas:

function displayLyrics(line1, line2) {

console.log(line1);

console.log(line2);

}

displayLyrics("I read the news today", "Oh boy");

Nuair a ghlaoitear ar displayLyrics, seachadtar na hargóintí "I read the news today", agus

"Oh boy" isteach agus glacann dhá pharaiméadar leo, line1 agus line2 faoi seach. An

dtugann tú faoi deara go n-úsáidtear camóg chun paraiméadair (agus argóintí) a dheighilt óna

chéile?

Taispeántar an t-aschur seo a leanas ar an gconsól aschuir de bharr an ríomhchláir:

I read the news today

Oh boy

Glactar le paraiméadair isteach i bhfeidhm san ord a chuirtear na hargóintí ar fáil. Dá bharr sin,

dá malartófaí na hargóintí mar seo;

Page 209: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 209

displayLyrics("Oh boy", "I read the news today");

thaispeánfaí an téacs thíos mar thoradh ar an bhfeidhm.

Oh boy

I read the news today

Bain triail as! Déan aschur an chóid thíos a thuar. Anois cuir an cód isteach

agus rith é. An raibh an tuar a rinne tú ceart? Céard a thug tú faoi deara?

function displayLines(line3, line1, line2) {

console.log(line1);

console.log(line2);

console.log(line3);

}

displayLines ("One", "Two", "Three");

Déan cur síos ar a bhfuil mícheart (má tá aon rud mícheart) le gach

ceann de na píosaí cóid seo a leanas agus tabhair breac-chuntas ar

réiteach i ngach cás (más cuí).

a)

function displayMessage() {

console.log(msg);

}

displayMessage("I am Sam");

b)

function displayMessage(msg) {

console.log(msg);

}

displayMessage();

c)

function displayMessage(msg) {

console.log(msg);

}

Page 210: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 210

displayMessage("I am", "Sam");

d)

function displayMessage(msg) {

console.log(message);

}

displayMessage("I am Sam");

e)

function displayMessage(msg) {

console.log(msg);

}

displayMessage(I am Sam);

f)

function displayMessage(msg1, msg2) {

console.log(msg1);

}

displayMessage("I am", "Sam");

Déan staidéar ar an dá shainmhíniú ar fheidhmeanna a thaispeántar

thíos agus freagair an cheist ina ndiaidh.

function displayGreeting1(msg) {

console.log(msg);

}

function displayGreeting2(msg1, msg2) {

console.log(msg1);

console.log(msg2);

}

displayGreeting1 displayGreeting2

Luaigh a mbeifeá ag súil leis nuair a ritear gach ceann de na bloic chóid a thaispeántar ar

thaobh na láimhe clé thíos.

Bloc cóid Aschur ionchais

a) displayGreeting1("Good evening, Dave");

let str = "Good evening, Dave";

Page 211: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 211

b) displayGreeting1(str);

c) let name = "Dave";

displayGreeting1("Good evening", name);

d) displayGreeting1("Good evening, Dave");

e) let name = "Dave";

displayGreeting2("Good evening", name);

f) let str = "Good evening, Dave";

displayGreeting2(str);

g) let sum = 2+3;

displayGreeting1(sum);

h) let sum = "2+3";

displayGreeting1(sum);

i) let sum = "2+3";

displayGreeting2(sum, 2+3);

j) displayGreeting2("2+3", "equals", "5");

Page 212: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 212

Luachanna Aischurtha

Is féidir cuimhneamh ar fheidhmeanna mar mheaisíní beaga a ghlacann le hionchu(i)r agus a

tháirgeann aschu(i)r. Tagraítear do na ‘meaisíní feidhme’ seo mar ‘bhoscaí dubha’ uaireanta –

mar gheall gur cuma leis na ríomhchláraitheoirí a bhaineann úsáid astu faoina dtarlaíonn istigh

iontu, de ghnáth. Is é an t-aon rud atá ó na ríomhchláraitheoirí ná go ndéanfaidh an fheidhm an

jab atá sí ceaptha a dhéanamh. Léirítear thíos dearcadh an bhosca dhuibh sin ar

fheidhmeanna.

Dearcadh an ‘bhosca dhuibh’ ar fheidhm

Is eol dúinn cheana féin go mbaintear úsáid as argóintí agus as paraiméadair chun sonraí a

sheachadadh isteach i bhfeidhmeanna. Ach cén chaoi a seachadann feidhm sonraí ar bith a

ghineann sí ar ais chuig a glaoiteoir mar aschur? An freagra – luachanna aischurtha.

Smaoinigh ar chás ina dteastódh uainn suim euro a athrú agus luach aischurtha a ghiniúint a

dhéanfadh ionadaíocht ar an tsuim choibhéiseach in dollair SAM. Sa chód JavaScript a

thaispeántar thíos, sainmhínítear feidhm ar a dtugtar convert chun an jab a dhéanamh.

Faigheann an fheidhm dhá pharaiméadar – euroAmount agus rate. Is iad na hargóintí a

sheachadtar isteach san fheidhm, amount agus 1.13 faoi seach. (Léann an ríomhchlár an méid

ón úsáideoir deiridh agus baineann úsáid as ráta athraithe cruachódaithe de €1 = $1.13).

// Feidhm chun € a aistriú go $

function convert(euroAmount, rate) {

let dollar = amount * rate;

return dollar; // tabhair an méid aistrithe

}

// Tabhair leid don úsáideoir an méid a iontráil in

Euro

let amount = Number(prompt("Enter amount (€)"));

Page 213: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 213

// Glaoigh ar convert agus sábháil an luach aischurtha in

dollarAmount

let dollarAmount = convert(amount, 1.13);

// Taispeáin an freagra

console.log("€"+amount+" is worth $"+dollarAmount);

Léirítear na hionchuir agus na haschuir lenár samhail ‘bosca dhuibh’ mar seo a leanas

POINTE TÁBHACHTACH: Is féidir luach aischurtha (return) feidhme a

shábháil le haghaidh tuilleadh próiseála ach an fheidhm a ghlaoch mar chuid

de ráiteas sannacháin.

Sampla

Athraíonn an fheidhm thíos mílte go ciliméadair (bunaithe ar 1 𝑚𝑖𝑙𝑒 = 1.6𝑘𝑚). An t-ionchur don

fheidhm ná an paraiméadar miles. An luach aischurtha atá ag an bhfeidhm ná kms. Is é seo

an t-aschur feidhme.

function miles2kms(miles) {

let kms = miles * 1.6;

return kms;

}

Glaonn an cód thíos ar an bhfeidhm a sheachadann 50 isteach mar argóint. (Is éard is aidhm

leis an líon ciliméadar i 50 míle a fháil amach.)

let kimometers = miles2kms(50);

console.log("There are "+kimometers+"kms in 50 miles");

Taispeánann an ríomhchlár an líne aschuir seo a leanas ar an gconsól aschuir.

Page 214: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 214

There are 80kms in 50 miles

Is é kms aschur na feidhme. Sanntar an luach sin don athróg value. Chomh luath agus a

thagann deireadh le feidhm, scriostar a hathróga agus a paraiméadair go léir.

Bain triail as! Glacann an fheidhm a thaispeántar thíos (kms2miles) le luach

i gciliméadair mar ionchur agus ansin tugann an méid coibhéiseach i mílte

mar aschur (bunaithe ar 1 𝑘𝑚 = 0.62𝑚𝑖𝑙𝑒𝑠)

Scríobh líne chóid chun glaoch ar an bhfeidhm seo chun 80 ciliméadar a athrú go mílte agus

sábháil an t-aschur in athróg ar a dtugtar miles. Anois, scríobh an dara líne chun an luach

athraithe a thaispeáint i dteachtaireacht bhríoch. (An féidir leat an dá líne a chomhcheangal i

líne amháin?)

function kms2miles(kms) {

let miles = kms * 0.62;

return miles;

}

Anois, scríobh líne eile chóid chun glaoch ar an bhfeidhm a shainmhíníomar níos luaithe

(miles2kms). Úsáid miles (á thabhairt ar ais ag do ghlao ar kms2miles) mar an argóint. Céard

é do thoradh?

POINTE TÁBHACHTACH: Is éard is feidhm ann teibiú don tasc a dhéanann sí.

Breathnaigh ar an dá shainmhíniú feidhme do shuim thíos agus freagair

na ceisteanna ina ndiaidh:

function add1(n1, n2) {

return n1+n2;

}

function add2(n1, n2) {

let sum = n1+n2;

console.log(n1+"+"+n2+"="+sum);

}

Page 215: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 215

Cén fheidhm is fearr, i do thuairim? Cén fáth? Scríobh líne chóid chun glaoch ar add1 – sábháil

do fhreagra in athróg e.g. answer. Anois déan iarracht an rud céanna a dhéanamh i gcás

add2. Cén fhadhb a thagann chun cinn?

Déan cur síos ar a bhfuil mícheart (má tá aon rud mícheart) le gach

ceann de na píosaí cóid seo a leanas agus tabhair breac-chuntas ar

réiteach i ngach cás (más cuí).

a)

function add(n1, n2) {

let sum = n1+n2;

return sum;

}

let result = add(8, 3);

console.log(sum);

b)

function add(n1, n2) {

let sum = n1+n2;

return;

}

let result = add(8, 3);

console.log(result);

c)

function add(n1, n2) {

let sum = n1+n2;

return sum;

}

let result = add(8, 3);

d)

function add(n1, n2) {

return(n1+n2);

}

Page 216: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 216

console.log(add(8, 3));

e)

function add(n1, n2) {

let sum = n1+n2;

return sum;

}

let result = add(8, add(2,1));

console.log(result);

Page 217: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 217

Feidhmeanna Boole

Is feidhm í feidhm Boole a thugann an toradh True nó False. De ghnáth, úsáidtear iad mar

theibiú ar chineál tástála éigin. Mar shampla, d’fhéadfaimis feidhm Boole a scríobh lena

chinneadh cibé an uimhir phríomha í uimhir faoi leith.

De réir an choinbhinsiúin tosaíonn ainm fheidhm Boole leis an réimír is. Tríd an gcoinbhinsiún

sin a úsáid, d’fhéadfaí isLeap a thabhairt ar fheidhm Boole lena chinneadh cibé an bliain

bhisigh nó nach bliain bhisigh atá i mbliain faoi leith. Ar an tslí chéanna, d’fhéadfaí isEven a

thabhairt ar fheidhm lena thástáil cibé an ré-uimhir atá in uimhir faoi leith agus isOdd a

thabhairt ar fheidhm lena thástáil an corruimhir atá in uimhir faoi leith. Taispeántar thíos cur i

bhfeidhm samplach den dá fheidhm sin agus an chaoi a n-úsáidtear iad chun gach ré-uimhir

agus corruimhir idir 0 agus 100, an dá uimhir sin san áireamh, a thaispeáint. (Tá an tástáil le

haghaidh ré-uimhreacha bunaithe ar oibríocht fuílligh ‘roinn ar 2’.)

// Feidhm chun ré-uimhreacha a dhearbhú

function isEven(number) {

if (number % 2 === 0)

return true;

else

return false;

}

for (let n=0; n<=100; n++) {

if (isEven(n))

console.log("");

}

// Feidhm chun corruimhreacha a

dhearbhú

function isOdd(number) {

if (number % 2 !== 0)

return true;

else

return false;

}

for (let n=0; n<=100; n++) {

if (isOdd(n))

console.log("");

}

isEven isOdd

Dúshlán!

Cuir na feidhmeanna Boole seo a leanas i bhfeidhm. Tástáil do chód ach sonraí a

iontráiltear via prompt a úsáid.

isLessThan(a, b) Feidhm a thugann true sa chás go bhfuil a níos lú ná b.

false seachas sin.

isGtREqual2(a, b) Feidhm a thugann true sa chás go bhfuil a níos mó ná nó

cothrom le b. false seachas sin.

isSpeeding(speed) Feidhm a thugann true sa chás go bhfuil luach speed níos

mó ná 120. false seachas sin.

Page 218: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 218

isTeenager(age) Feidhm a thugann true sa chás go bhfuil luach age idir 13

agus 19, an dá luach sin san áireamh. false seachas sin.

isGoodMusic(artist)

Feidhm a thugann true sa chás go bhfuil luach artist mar

bhall d’eagar ina bhfuil ainmneacha na ceoltóirí ar fad is fearr leat. false seachas sin.

Cód a imchochlú i bhfeidhmeanna

Tugtar imchochlú ar an bpróiseas chun cód a thógáil agus a chur i bhfeidhmeanna.

Cuimhnigh ar an bhfadhb a bhí againn níos luaithe maidir leis an gceann uasta as trí uimhir a

chinneadh. Déanann an cód – a thaispeántar arís anseo ar mhaithe le caoithiúlacht – an ceann

is mó as trí uimhir a d’iontráil an t-úsáideoir a chinneadh agus a thaispeáint.

// uasluach as trí uimhir

let x1 = Number(prompt("Please enter 1st number: "));

let x2 = Number(prompt("Please enter 2nd number: "));

let x3 = Number(prompt("Please enter 3rd number: "));

let max;

if ((x1 >= x2) && (x1 >= x3)) {

max = x1;

} else if ((x2 >= x1) && (x2 >= x3)) {

max = x2;

} else {

max = x3;

}

console.log("The largest number you entered was", max);

Déanaimis iarracht an cód seo a imchochlú i bhfeidhm – chun é sin a dhéanamh beidh orainn

ainm, paraiméadar féideartha nó paraiméadair fhéideartha agus luach aischurtha féideartha a

chinneadh.

Is áisiúil na trí cheist seo a leanas a chur agus muid ag déanamh iarracht cód ar bith a

imchochlú trí fheidhmeanna a úsáid:

1) Céard a dhéanann an cód? Ainm maith don fheidhm a bheadh ansin.

Sa sampla seo, is é bunús an chóid an ceann uasta as trí uimhir a aimsiú, mar sin

tabharfaimid maxOf3 ar ár bhfeidhm.

2) Céard iad na hionchuir? Ba cheart go mbeadh paraiméadar le haghaidh gach ionchuir ag an

bhfeidhm.

Page 219: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 219

Sa sampla seo, is iad na trí uimhir na hionchuir – beidh paraiméadar amháin le haghaidh

gach ionchur againn – x1, x2 agus x3.

3) Céard é an t-aschur? Luach aischurtha na feidhme a bheidh anseo.

Níl ach aschur amháin againn i.e. an ceann uasta as na 3 uimhir.

POINTE TÁBHACHTACH: Is príomhscil don ríomhchláraitheoir é an cumas

paraiméadair feidhme agus, más gá, luach aischurtha a shainaithint.

Is féidir a fheiceáil ón gcód thíos go bhfuil an cód chun an ceann is mó as trí uimhir a aimsiú

imchochlaithe san fheidhm maxOf3 (aibhsithe i ndath níos dorcha).

Tabhair faoi deara nach cuid den fheidhm iad na chéad trí líne a úsáidtear chun na

huimhreacha a léamh ón úsáideoir deiridh, ná an líne dheireanach a úsáidtear chun an toradh a

thaispeáint. Is gnáth-nósmhaireacht an deighilt sin idir ionchur agus aschur ó loighic feidhme in

imchochlú cóid.

// Léigh na 3 shlánuimhir ón úsáideoir deiridh

let x1 = Number(prompt("Please enter 1st number: "));

let x2 = Number(prompt("Please enter 2nd number: "));

let x3 = Number(prompt("Please enter 3rd number: "));

function maxOf3(x1, x2, x3) {

if ((x1 >= x2) && (x1 >= x3)) {

max = x1;

} else if ((x2 >= x1) && (x2 >= x3)) {

max = x2;

} else {

max = x3;

}

return max;

}

// Taispeáin an t-aschur

console.log("The maximum number is", maxOf3(x1, x2, x3));

Tá an cód a-chosúil leis an liostáil a thaispeántar ar an leathanach roimhe seo. Mar sin féin, ós

rud é gur taifeadadh an fheidhmiúlacht chun an ceann uasta as trí uimhir laistigh d’fheidhm a

fháil, d’fhéadfaí í a úsáid áit ar bith eile sa chóras níos leithne.

Page 220: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 220

Ar deireadh, is fiú a lua, ar mhaithe le soiléire, nach gá go mbeadh na hainmneacha céanna ar

na hargóintí agus ar na paraiméadair (mar a thaispeántar thuas).

Page 221: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 221

Cleachtaí ríomhchlárúcháin – Feidhmeanna

1. Ríomhann agus taispeánann an dá ríomhchlár ghearra a thaispeántar anseo 5! (i.e.

5 × 4 × 3 × 2 × 1) Baineann siad araon úsáid as an modh céanna, is é sin atriall trí na

slánuimhreacha ó 5 síos go 1 agus iomlán reatha de na torthaí a choimeád agus sin á

dhéanamh acu. An t-aon difríocht atá ann ná go n-úsáideann an ríomhchlár ar chlé lúb for

agus go n-úsáideann an ríomhchlár ar dheis lúb while.

Déan an cód ó cheachtar den dá chur i bhfeidhm a imchochlú i bhfeidhm ar a dtugtar

factorial (iolrán). Ba cheart don fheidhm glacadh le paraiméadar aonair agus a iolrán a

thabhairt.

// ríomh n! (e.g. 5x4x3x2x1)

let factorial = 1;

let n = 5;

for (let number = n; number > 0; number--) {

factorial = factorial * number;

}

console.log(n+"! =", factorial);

// ríomh n! (e.g. 5x4x3x2x1)

let factorial = 1;

let n = 5;

let number = n;

while (number > 0) {

factorial = factorial * number;

number--;

}

console.log(n+"! =", factorial);

Iolrán le lúb for Iolrán le lúb while

2. Úsáideann an ríomhchlár seo a leanas lúb for chun gach carachtar i dteaghrán a

iontrálann an t-úsáideoir a thrasnú, agus comhaireann na gutaí lena linn. Déan an cód a

imchochlú i bhfeidhm.

// tabhair leid don úsáideoir teaghrán a iontráil

let inString = prompt("Enter a string:");

let vowels = 0;

let ch;

for(let i = 0; i < inString.length; i ++) {

// Bain amach an chéad charachtar eile (as suíomh i) ...

// ... agus athraigh é go cás uachtair

ch = inString.charAt(i).toUpperCase();

// sa chás gur ghuta é ch, cuir incrimintí leis an áiritheoir gutaí

if (ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U')

vowels ++;

}

Page 222: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 222

// taispeáin an toradh

console.log("The number of vowels found was", vowels);

3. Is slánuimhir dhearfach í uimhir phríomha ag a bhfuil dhá fhachtóir: í féin agus 1. Tugann an

ríomhchlár gearr thíos leid don úsáideoir slánuimhir dhearfach a iontráil agus cuireann

algartam i bhfeidhm lena fháil amach cibé an uimhir phríomha atá i gceist nó nach ea.

Tá an athróg Boole ar a dtugtar prime riachtanach chun loighic an ríomhchláir a thuiscint.

Is é an cuspóir atá ag prime a chur in iúl cibé an uimhir phríomha atá sa tslánuimhir nó

nach ea. Tugann luach true ag deireadh an ríomhchláir le tuiscint gur uimhir phríomha atá

sa tslánuimhir; tugann false le tuiscint nach ea.

let x = Number(prompt("Please enter an integer: "));

let prime;

if (x <= 0)

prime = false;

else

prime = true;

if (x > 2) {

let denominator = 2;

while (denominator <= Math.sqrt(x)) {

if (x % denominator === 0) {

prime = false;

break;

} else {

denominator++;

} // end else

} // end while

} // end if

Ar dtús, socraítear prime mar false, sa

chás gur diúltach an luach a iontráladh (mar

gheall nach féidir le huimhreacha diúltacha

a bheith ina n-uimhreacha príomha). Sa

chás gur dearfach an tslánuimhir, túsaítear

an luach prime mar true.

Ciallaíonn sin go nglacann an algartam in

úsáid gur uimhir phríomha í an slánuimhir

agus déanann sé iarracht an tuairim sin a

bhréagnú (trí bhreathnú ar a fachtóirí).

if (prime)

console.log(x+" is prime");

else

console.log(x+" is NOT prime");

Déan an cód thuas a imchochlú i bhfeidhm ar a dtugtar isPrime(x). Léirítear an t-iompar sin

sa sampla seo a leanas ina nglaoitear ar an bhfeidhm.

isPrime(13) --> true (mar gheall gur uimhir phríomha é 13)

isPrime(10) --> false (mar gheall nach uimhir phríomha é 10)

Nuair a éiríonn leat isPrime a chur i bhfeidhm go hiomlán, ba cheart duit iarracht a dhéanamh

na tascanna breise seo a chur i gcrích:

Page 223: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 223

a) Úsáid an fheidhm isPrime chun gach uimhir phríomha idir 2 agus 100, an dá uimhir sin

san áireamh, a thaispeáint.

b) Úsáid an fheidhm isPrime chun an líon uimhreacha príomha idir 2 agus 1000 a

thaispeáint.

c) Úsáid isPrime chun an chéad 50 uimhir phríomha a thaispeáint.

4. Sainmhíniú feidhm chun achar triantáin a ríomh

leis an bhfoirmle seo:

𝑎𝑟𝑒𝑎 =1

2× 𝑏 × ℎ

Úsáid an fheidhm seo chun achair na dtriantán a

thaispeántar thíos a ríomh:

Page 224: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 224

5. Léiríonn an íomhá ar thaobh na láimhe deise

luachanna Fahrenheit le haghaidh rogha luachanna

Celsius.

Úsáid an fhoirmle thíos le hathrú idir an dá scála, agus

scríobh ríomhchlár is féidir a úsáid chun cruinneas na

luachanna a thaispeántar a fhíorú.

𝑓 =9

5𝑐 + 32

𝑐 = (𝑓 − 32) ×

5

9

Beidh dhá fheidhm sa ríomhchlár, iad ainmnithe agus

sainmhínithe mar seo a leanas:

fhar2Cent – feidhm a ghlacann le luach Fahrenheit agus

a thugann a chomhionann in Celsius agus

cent2Fhar – feidhm a ghlacann le luach Celsius agus a

thugann a chomhionann in Fahrenheit

6. Scríobh ríomhchlár a thugann leid don úsáideoir líon laethanta a iontráil agus a ríomhann an

líon nóiméad sa líon sin laethanta ansin.

a) leathnaigh an ríomhchlár atá díreach scríofa agat le go dtabharfaidh sé leid maidir le líon

uaireanta chomh maith le líon laethanta.

Déan machnamh ar na cleachtaí go léir sa rannán seo.

Tabhair le fios cén chaoi a bhféadfaí ceann ar bith de na cleachtaí seo a

oiriúnú le húsáid i rang Ríomheolaíocht na hArdteistiméireachta de do chuid

féin?

Page 225: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 225

Page 226: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 226

GNÍOMHAÍOCHT AR LEITHLIGH 1

Foghlaim Ríomhchuidithe12

Tá an ról atá ag Teagasc Ríomhchuidithe san oideachas ag méadú i gcónaí. Sa ghníomhaíocht

seo, tá ort feidhmchlár JavaScript a scríobh a chabhróidh le daltaí bunscoile uimhríocht a

fhoghlaim. Tugaimid Foghlaim Ríomhchuidithe, nó an giorrúchán i mBéarla, CAL (Computer

Aided Learning), ar an bhfeidhmchlár.

Cuirtear ríomhchlár ar fáil duit (féach ar an liostáil ar an gcéad leathanach eile) agus beidh ort é

a leasú chun an réiteach atá ag teastáil a fhorbairt.

Nuair a ritear é, taispeánann an ríomhchlár fuinneog aníos a iarrann ar an úsáideoir freagra a

iontráil ar fhadhb shimplí suimithe lena mbaineann dhá shlánuimhir aon digite idir 0 agus 9, an

dá uimhir sin san áireamh, a roghnaítear go randamach. Mar shampla,

Clóscríobhann an t-úsáideoir a fhreagra agus cliceálann ar OK. Má tá an freagra ceart,

taispeánann an ríomhchlár teachtaireacht spreagúil i bhfuinneog aníos nua cosúil leis an

gceann a thaispeántar thíos. Roghnaítear an teachtaireacht a thaispeántar go randamach ón

liosta (eagar) teaghrán seo a leanas:

− Well done!

− Very good!

− Correct!

− Keep it up!

− Nice work!

12 Oiriúnaithe ó fhadhb in Java: how to program, P.J. Deitel, H.M. Deitel, 9th ed., Prentice Hall, 2012

Page 227: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 227

Má tá an freagra mícheart, taispeánann an ríomhchlár an teachtaireacht, Wrong answer. Try

again arís agus arís eile go dtí go n-iontrálann an dalta an freagra ceart.

Page 228: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 228

Taispeántar thíos an liostáil ríomhchláir a chuirtear ar fáil duit.

// CÉIM 1. Gin an cheist

// Gin 2 uimhir randamacha

let n1 = Math.floor(Math.random() * 10); // 0 <= n1 < 10

let n2 = Math.floor(Math.random() * 10); // 0 <= n2 < 10

// CÉIM 2. Cuir ceist ar an úsáideoir agus faigh freagra

// athraítear n1 agus n2 go teaghráin ionas gur féidir iad a thaispeáint mar chuid ...

// ... den teaghrán leide

let problemInWords = "What is "+ String(n1) + " plus " + String(n2);

console.log(problemInWords);

let userResponse = Number(prompt(problemInWords));

console.log("User entered %d", userResponse); // is chun críocha dífhabhtaithe sin

// CÉIM 3: Déan an freagra a phróiseáil

// Déan an freagra ceart a ríomh. Ansin...

// ... fad is go mbíonn freagra an úsáideora difriúil le freagra an ríomhaire ...

// ... inis don úsáideoir go bhfuil siad mícheart agus ...

// ... iarr freagra eile ar an úsáideoir

let correctAnswer = n1 + n2; // Déan an freagra ceart a ríomh

while (userResponse != correctAnswer) {

console.log("Wrong answer! Try again.");

userResponse = Number(prompt(problemInWords));

}

// CÉIM 4. Taispeáin teachtaireacht spreagúil a roghnaítear go randamach

const messages = ["Well done!", "Very good!", "Correct!", "Keep it up!", "Nice work!"];

const r = Math.floor(Math.random() * messages.length);

console.log(messages[r]);

alert(messages[r]);

Déan staidéar ar an ríomhchlár thuas go cúramach sula mbaineann tú triail as – úsáid an spás

thíos chun machnamh a dhéanamh ar an gcód. Léirigh go dtuigeann tú an cód ach na

ceisteanna ar an gcéad leathanach eile a fhreagairt. Nuair atá tú sásta go dtuigeann tú an chaoi

a n-oibríonn an cód, féadfaidh tú dul ar aghaidh agus na mionathruithe a leagtar amach sa

rannóg riachtanas den ghníomhaíocht seo a dhéanamh.

Déan machnamh ar an gcaoi a n-úsáidtear JavaScript sa ríomhchlár thuas.

Page 229: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 229

Úsáid an spás thíos chun gach ceann de na ceisteanna seo a leanas a

fhreagairt sula dtéann tú ar aghaidh chuig an rannóg riachtanas.

1. Cén chaoi a ngineann an ríomhchlár an dá shlánuimhir le húsáid sa ‘sum’? Céard iad

na céimeanna a ghlactar lena chinntiú go bhfuil na slánuimhreacha idir 0 agus 9, an

dá uimhir sin san áireamh?

2. Cén chaoi a bhfuil a fhios ag an ríomhaire céard é an freagra ceart ar an ‘sum’?

3. Mínigh an chaoi a ngníomhaíonn an t-oibreoir + ar bhealach difriúil nuair is teaghrán a

chuid oibreanna seachas nuair is de chineál uimhriúil iad. (Céard a tharlódh sa chás

go ndéanfá iarracht teaghrán a chur le slánuimhir?)

4. Cén chaoi a roghnaíonn an ríomhchlár teachtaireacht le taispeáint sa chás go mbíonn

an freagra ceart ag an úsáideoir?

5. Sainaithin agus luaigh cuspóir gach athróige – tá seacht gcinn ann!

Page 230: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 230

Page 231: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 231

Riachtanais

1. Athraigh an chaoi a dtaispeántar an cheist ionas le go n-úsáidfidh sí siombail an oibreora

seachas focail. Mar shampla, taispeáin 4 + 2 seachas an téacs 4 plus 2.

2. Níl aon straitéis scoir ag an gcur i bhfeidhm reatha i.e. níl aon bhealach ag an úsáideoir a

insint don chóras nach bhfuil an freagra ar eolas aige. (Taispeánann sé an teachtaireacht,

Wrong answer. Try again arís agus arís eile go dtí go n-iontráiltear an freagra ceart.)

Mionathraigh iompar an ríomhchláir le go nglactar leis go gciallaíonn luach diúltach mar fhreagra

nach bhfuil freagra na ceiste ar eolas ag an úsáideoir. Nuair a iontráiltear luach diúltach, ba

cheart go dtiocfadh deireadh leis an ríomhchlár.

3. Mionathraigh an ríomhchlár le go roghnófar freagairtí ar fhreagra mícheart go randamach ón

liosta teachtaireachtaí thíos. Ba cheart go dtaispeánfaí an teachtaireacht i mbosca foláirimh

cosúil leis an gceann a thaispeántar thíos, agus ar an gconsól freisin.

− No. Please try again

− Wrong. Try once more

− Don’t give up

− No. Keep trying.

− Incorrect!

4. Coimrigh an cód a roghnaíonn agus a thaispeánann an teachtaireacht freagartha – chun

freagra ceart nó mícheart a chur in iúl – isteach i bhfeidhm amháin.

Leid: Sainmhínigh an fheidhm a thugann an síniú seo a leanas – messages, an t-eagar

teachtaireachtaí freagartha as a roghnaíonn an fheidhm.

function displayRandomMsg(messages)

Beidh ort dhá eagar uilíocha a fhógairt – ceann amháin do na freagraí dearfacha agus

ceann eile do na freagraí diúltacha. Taispeánann an líne thíos fógra i bpáirt maidir leis an

gcéad cheann.

const correctMsgs = ["Well done!", "Very good!"

Is féidir an t-eagar cuí a sheachadadh mar argóint isteach san fheidhm mar chuid den chód

Page 232: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 232

chun glaoch uirthi. (Ní mór duit a dhéanamh amach cá háit as a nglaofar uirthi!)

5. Mionathraigh iompar an ríomhchláir ionas go dtabharfar rogha don úsáideoir leanúint ar

aghaidh (nó éirí as) i.e. Continue [Y/N] nuair a iontrálann an t-úsáideoir an freagra ceart

(féach ar an seat den scáileán). Ba cheart go leanfaí leis an bpróiseáil fad is go n-iontrálann

an t-úsáideoir ‘y’ nó ‘Y’.

Leid: seans go gcabhródh sé an cód a dhéanamh modúlach trí fheidhmeanna a shainmhíniú chun

an cheist a ghiniúint, freagra an úsáideora a fháil agus an freagra a phróiseáil. Ba cheart go

mbeadh an chuma seo a leanas, a bheag nó a mhór, ar phríomhlúb an ríomhchláir ar

deireadh:

let keepGoing = true;

while (keepGoing) {

generateQuestion();

getResponse();

processResponse();

let yesNo = prompt("Continue [Y/N]");

keepGoing = yesNo.toUpperCase() == "Y" ? true : false;

}

6. Cuir rogha leis chun deis a thabhairt don úsáideoir leibhéal deacrachta a roghnú (1 nó 2)

nuair a chuirtear tús leis an ríomhchlár den chéad uair. Má iontrálann an t-úsáideoir 1, bain

mar chiall as sin nár cheart go mbeadh ach slánuimhreacha aon digite idir 0 agus 9, an dá

uimhir sin san áireamh, i bhfadhbanna. Má iontrálann an t-úsáideoir 2, ba cheart don

fheidhmchlár fadhbanna dédhigiteacha a ghiniúint (i.e. fadhbanna a bhaineann le dhá

shlánuimhir sa raon 10 go 99, an dá uimhir sin san áireamh). Féadfaidh tú na sonraí sin a

bhailíochtú, más mian leat.

Page 233: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 233

Leid: Beidh ort generateQuestion a mhionathrú chun craobh a chur ann don leibhéal deacrachta.

Gineann an cód thíos uimhir randamach idir 10 agus 99, an dá uimhir sin san áireamh.

Math.floor(Math.random() * 90) + 10;

7. Cuir rogha leis sin chun deis a thabhairt don úsáideoir an oibríocht uimhríochta is mian leis

a úsáid le linn a sheisiúin a roghnú. Bain úsáid as an ionchódú seo a leanas: is suimiú é ‘+’;

is dealú é ‘-’; is iolrú é ‘*’ agus is ‘/’ é roinnt;

Ar dtús, d’fhéadfá cinneadh a dhéanamh an rogha sin a thabhairt uair amháin, ag an tús. Níos

déanaí, d’fhéadfá smaoineamh ar an rogha sin a thabhairt do gach ceist. D’fhéadfá

smaoineamh ar rogha eile a chur leis freisin, maidir le ‘mixed bag’.

8. Cuir gné staitisticí leis chun taifead a choinneáil ar an líon freagraí cearta agus míchearta

agus chun iad a thaispeáint. Beidh ort smaoineamh ar cibé ar cheart nó nár cheart na

staitisticí sin a thaispeáint don úsáideoir deiridh. Seans gur mhian leat taifead a choinneáil

ar shonraí staitistiúla eile a bheadh cabhrach don úsáideoir deiridh freisin.

Tugtar na réitigh ar gach cleachtadh san Aguisín.

Tá na ceisteanna thíos ceaptha smaointe a spreagadh maidir le feabhsúcháin a d’fhéadfaí a

dhéanamh ar CAL am éigin sa todhchaí.

1) Cén chaoi a ndéileálann córas le slánuimhir níos mó a dhealú ó cheann níos lú?

2) An féidir leat straitéis scoir eile a cheapadh?

3) An bhfuil na sonraí go léir bailíochtaithe?

4) An bhféadfadh an córas an leibhéal deacrachta a roghnú go randamach agus go

huathoibríoch?

Page 234: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 234

5) An mbeadh oibríochtaí lena mbainfeadh meascán d’oibreanna aon digite agus

dédhigiteacha indéanta?

6) An bhféadfadh an córas tacú le hoibríochtaí de chineál ar bith eile?

7) An bhféadfadh an córas an cineál oibríochta do gach ceist a roghnú go randamach agus go

huathoibríoch?

8) Cén chuma a bheadh ar an gcóras mar leathanach gréasáin HTML/CSS? Sceitseáil é.

Page 235: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 235

Déan machnamh ar CAL agus ar na cleachtaí atá díreach déanta sa seisiún

ar leithligh seo.

Díríonn CAL go mór ar uimhríocht luathchéime – an féidir leat moladh a

thabhairt faoin gcaoi a bhféadfaí CAL a chur in oiriúint chun cabhrú le

foghlaim i réimsí ábhar eile? Pléigh. Céard iad na himpleachtaí don

dearadh?

Page 236: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 236

JavaScript Taoibh Cliaint

Go dtí seo sa chuid seo den lámhleabhar, dhíríomar ar na príomhghnéithe in JavaScript a

úsáidtear chun tacú le seicheamh, roghnú agus atriall. Cuirtear na gnéithe sin le chéile chun an

rud ar a dtugtar core JavaScript a chruthú. Cé go bhfuil an core JavaScript tábhachtach, ní

thugann sé ach léargas teoranta ar an teanga.

Ní thagann fíorchumhacht agus fíorchuspóir JavaScript chun tosaigh go dtí go n-úsáidtear é

chun leathanaigh ghréasáin agus suíomhanna gréasáin dinimiciúla agus idirghníomhacha a

chruthú. Baintear úsáid as an téarma JavaScript Taoibh Cliaint chun cur síos a dhéanamh ar na

gnéithe de JavaScript a fhágann gur féidir na suíomhanna gréasáin sin a cheapadh.

Sa chuid seo den lámhleabhar, fiosróimid JavaScript taoibh cliaint ach sula dtosaímid, tugaimis

soiléiriú ar a bhfuil i gceist leis an dá théarma leathanach gréasáin dinimiciúil agus leathanach

gréasáin idirghníomhach.

- Is éard is leathanach dinimiciúil ann (seachas ceann statach), leathanach ar féidir a

inneachar agus an chuma atá air a athrú agus é in úsáid. Bíonn roinnt leathanach ar a bhfuil

inneachar dinimiciúil i bhformhór mór na suíomhanna gréasáin nua-aimseartha. Ciallaíonn

sé sin go bhféadfadh go mbeadh inneachar difriúil ar an leathanach céanna gach uair a

thugann tú cuairt air; nó d’fhéadfadh go n-athródh an t-inneachar agus tú ag féachaint ar

leathanach.

- Is ionann suíomh gréasáin idirghníomhach agus ceann a thacaíonn le hidirghníomhaíocht

úsáideoirí e.g. cluiche a imirt, táirge a roghnú lena cheannach nó sonraí a iontráil agus a

chur isteach, amhail téarma cuardaigh, sonraí cárta creidmheasa, nó íomhá a uaslódáil ar

Instagram nó Facebook.

Is féidir suíomhanna gréasáin dinimiciúla agus idirghníomhacha a chruthú a bhuíochas do dhá

theicneolaíocht – DOM agus imeachtaí. Sa chuid eile den rannóg seo, fiosraítear tacaíocht

JavaScript taoibh cliaint don dá theicneolaíocht.

Page 237: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 237

Leathanaigh ghréasáin dhinimiciúla – roinnt samplaí

An bealach is simplí chun inneachar dinimiciúil a chur isteach i leathanach gréasáin ó

ríomhchlár JavaScript ná trí document.write a úsáid. Díreach clóscríobh an ráiteas agus

seachaid é isteach sa teaghrán is mian leat a fheiceáil ar an leathanach gréasáin mar argóint.

Léiríonn na samplaí thíos document.write á úsáid chun an t-inneachar ar leathanach

gréasáin dinimiciúil a chruthú. Taispeántar cód JavaScript ar chlé agus taispeántar seat

scáileáin den leathanach gréasáin atá mar thoradh air ar dheis.

document.write("Hello World");

Léiríonn an chéad sampla eile gur féidir cód HTML a sheachadadh isteach in

document.write. Is é an chlib <br> is cúis le líne nua á léiriú i bhfuinneog an bhrabhsálaí

sula dtaispeántar an dara teaghrán.

document.write("Hello World<br>");

document.write("Hello World");

Sa sampla seo, feicimid go bhfuil an téacs marcáilte mar cheannteideal leibhéal 1 leis an gclib

h1

document.write("<h1>Hello World</h1>");

Page 238: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 238

Sa chéad sampla eile, tugtar leid don úsáideoir a ainm a iontráil agus taispeántar teachtaireacht

le beannú pearsanta. Déantar an t-ainm a iontráiltear a mharcáil i gcló trom.

let userName = prompt("Enter your name");

document.write("Hello <b>" + userName + "</b>");

Sa chéad sampla eile, baintear úsáid as feidhm a shainmhíníonn an t-úsáideoir, ar a dtugtar

getTimeMsg chun

teachtaireacht a ghiniúint le beannú difriúil ann, ag brath ar an am reatha. Léitear an t-am

reatha ón gcóras ach úsáid a bhaint as Date().

Áirítear an cód JavaScript mar chomhad seachtrach ar a dtugtar greeting.js trí é a ainmniú

sa tréith src den chlib script ar an leathanach HTML mar seo a leanas.

<!DOCTYPE html>

<html>

<head>

<title>Time greeting</title>

<script src="greeting.js"></script>

</head>

</html>

Is mar seo a leanas an liostáil do greeting.js:

let timeMsg = "The current date and time is" + Date() + "<br><br>";

document.write(timeMsg);

let greeting = getTimeMsg();

document.write(greeting);

function getTimeMsg() {

let msg;

const time = new Date().getHours();

if (time < 6) {

msg = "Before 6am";

} else if (time < 12) {

msg = "Good morning";

} else if (time < 18) {

msg = "Good afternoon";

} else {

msg = "Good evening";

}

Page 239: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 239

return msg;

}

Nuair a ritear an ríomhchlár, ba cheart go dtaispeánfadh do bhrabhsálaí teachtaireacht a bhfuil

beannú inti, cosúil leis seo:

Dúshlán!

Mionathraigh an cód ionas go dtaispeántar an teachtaireacht ‘Good night’ i

ndiaidh a 10pm.

Page 240: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 240

An Samhaltán Oibiachta Doiciméid (DOM)

Luadh cheana féin go meastar gur droch-chleachtadh ríomhchlárúcháin é document.write a

úsáid. An phríomhchúis leis sin ná, nuair a ghlaonn ríomhchlár ar document.write tar éis don

leathanach gréasáin a bheith lódáilte, go ndéanfar an leathanach iomlán a fhorscríobh.

Dá bharr sin, cén chaoi a bhféadfaidh ríomhchláraitheoirí inneachar dinimiciúil a chur i

leathanach gréasáin murar cheart dóibh document.write a úsáid? Freagra na ceiste sin ná

an Samhaltán Oibiachta Doiciméid, nó DOM (as Document Object Model) mar a thugtar air mar

ghiorrúchán.

Chun DOM a thuiscint, ní mór a bheith soiléir faoi amharc (nó dearcadh) HTML agus faoi

amharc an úsáideora deiridh ar an leathanach gréasáin céanna. Breathnóimid ar an amharc

HTML ar dtús.

Amharc HTML

Is é seo an t-amharc a bhíonn ag an údar HTML/CSS ar leathanach gréasáin. Is léiriú ar

chomhad nó doiciméad HTML é gach leathanach gréasáin. Ní mór an comhad HTML/CSS a

athrú chun inneachar/stíl leathanaigh a athrú.

Taispeántar sampla de chomhad HTML thíos.

<!DOCTYPE html>

<html>

<head>

<title>Simple DOM Tree</title>

</head>

<body id="body-id">

<h1>Level 1 heading</h1>

<ul>

<li>Hats</li>

<li>Flags</li>

<li>Scarves</li>

<li>Headbands</li>

</ul>

<h2>Level 2 heading</h2>

<p id="para-id">An ordinary paragraph ...</p>

<br>

<p>This <b>bold <i>and italic</i></b> text</p>

<!-- import JS file for this web page -->

<script src="DOM-demo-1.js"></script>

</body>

</html>

Page 241: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 241

POINTE TÁBHACHTACH: Cuirtear athruithe ar inneachar agus ar chuma

leathanaigh i bhfeidhm tríd an HTML agus an CSS don leathanach sin.

Amharc an úsáideora deiridh

Is é seo an t-amharc a bhíonn ag an úsáideoir deiridh ar an leathanach nuair a bhrabhsálann sé

chuig an leathanach. De ghnáth, ní bhíonn spéis ar bith ag úsáideoirí deiridh sa chód JavaScript

ná HTML/CSS atá taobh thiar de na leathanaigh a dtugann siad cuairt orthu. Go minic, ní

bhíonn siad ar an eolas fúthu fiú!

Nuair a lódálann brabhsálaí leathanach, déanann sé

an HTML a pharsáil agus a léiriú de réir na rialacha

a leagtar amach i sonraíocht an HTML. I

gcaitheamh na mblianta, léirmhínigh

ríomhchláraitheoirí na rialacha sin ar bhealaí

éagsúla agus cuireadh HTML i bhfeidhm ar bhealaí

éagsúla i mbrabhsálaithe éagsúla mar thoradh air

sin. Go bunúsach, is é sin an fáth a mbíonn cuma

éagsúil ar an suíomh gréasáin céanna ar

bhrabhsálaithe éagsúla.

Léirítear an cód HTML ar an leathanach roimhe seo

d’úsáideoir deiridh mar a thaispeántar anseo ar

dheis.

Amharc an ríomhchláraitheora

Is é seo an t-amharc a bhíonn ag an bhforbróir feidhmchlár gréasáin ar a leathanach gréasáin.

Nuair a lódálann brabhsálaí leathanach, cruthaíonn sé léiriú ar an leathanach sin mar chuimhne

inmheánach, ar a dtugtar an DOM. Seasann DOM don leagan Béarla ar Shamhaltán Oibiachta

Doiciméid (Document Object Model). Taispeántar sa léaráid thíos léiriú simplithe DOM ar an

gcód HTML a taispeántar ar an leathanach roimhe seo.

Page 242: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 242

De bharr go bhfuil an léiriú seo cosúil le crann atá bunoscionn, tugtar an crann DOM air. Tá

gach crann DOM comhdhéanta de bhailiúchán nód, ag tosú le fréamh nóid amháin ar a dtugtar

doiciméad.

Tabhair faoi deara sa léaráid go bhfuil nód ar leith ar an gcrann DOM le haghaidh gach gné sa

chomhad HTML ar a bhfuil sé bunaithe. Bíonn nóid i gcrainn DOM chun téacs, tréithe agus

nótaí tráchta a chur in iúl freisin, chomh maith le gnéithe, ach tá siad sin go léir fágtha ar lár ón

léaráid ar mhaithe le simplíocht agus soiléire.

POINTE TÁBHACHTACH: Sula bhféadfaidh brabhsálaí leathanach a léiriú,

cruthaíonn sé crann DOM tríd an marcáil HTML a pharsáil.

Mar a fheictear ón léaráid, tá nádúr thar a bheidh ordlathach ag an gcrann DOM. Is áisiúil roinnt

den téarmeolaíocht a dhéanann cur síos ar an ngaol idir na nóid éagsúla a thuiscint. Baineann

tábhacht faoi leith leis na téarmaí tuismitheoir (parent), mac (child) agus deartháir (sibling).

Tugtar deartháirnóid ar nóid a bhíonn ar an leibhéal céanna ar an gcrann DOM. Bíonn an

tuismitheoir céanna ag deartháirnóid – nó chun é a rá ar bhealach eile – deirtear gur mac leis

an tuismitheoir céanna é gach deartháir.

Page 243: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 243

Sa rannóg léaráide ar an leathanach roimhe seo,

feicimid go bhfuil beirt mhac sa nód eiliminte html –

head agus body. Is deartháireacha iad sin.

Níl ach nód mic amháin sa nód don eilimint head – is

nód eiliminte le haghaidh title é sin.

Tá ocht mac dhíreacha sa nód don eilimint body – is

iad sin na nóid do na heilimintí atá sa chuid choirp den

chód HTML i.e. h1, ul, h2, p, br, p agus script.

Sa chód HTML, tá ceithre mhír liosta sa liosta gan ord. Tá sin le feiceáil sa chrann DOM, áit a

bhfuil ceithre mhac ag an nód eiliminte do ul i.e. nód maceiliminte amháin le haghaidh gach

ceann de na heilimintí li. Taispeántar thíos na trí amharc:

<ul>

<li>Hats</li>

<li>Flags</li>

<li>Scarves</li>

<li>Headbands</li>

</ul>

Amharc HTML Amharc DOM Amharc úsáideora

Ar an gcaoi chéanna, is féidir amharc ar an marcáil a bhaineann

leis an dara clib ailt ar thrí bhealach. Ar dtús tá an HTML – tabhair

faoi deara go bhfuil clib bold sa chlib ailt agus í marcáilte i gcló

iodálach ach an chlib i a úsáid.

<p>This <b>bold <i>and italic</i></b> text</p>

Léirítear an HTML seo mar:

Amharc DOM

Page 244: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 244

An Comhéadan Feidhmchláir (API) DOM

Sa gcuid roimhe seo, d’fhoghlaimíomar go léirítear gach leathanach gréasáin mar chrann DOM

agus go ndéantar athruithe ar an gcrann DOM a fhorleathadh go huathoibríoch chuig an

leathanach atá ar taispeáint. Mar sin, mar shampla, dá gcuirfí eilimint nua leis an gcrann DOM

ar chaoi éigin, thaispeánfaí go huathoibríoch é i bhfuinneog an bhrabhsálaí chomh maith.

Sa chuid seo, breathnóimid ar an gcaoi ar féidir na APInna JavaScript a úsáid chun rochtain a

fháil ar chrainn DOM agus iad a athrú, agus mar sin na leathanaigh ghréasáin a ndéanann siad

ionadaíocht orthu a nuashonrú go huathoibríoch.

POINTE TÁBHACHTACH: Coimeádann brabhsálaithe a bhfuil á thaispeáint acu

sioncronaithe leis an DOM. Dá bharr sin, nuair a athraíonn an crann DOM, déanann

an brabhsálaí a bhfuil á thaispeáint aige a nuashonrú go huathoibríoch chun na

hathruithe sin a léiriú.

Is sonraíocht é an API DOM faoin gcaoi ar cheart do ríomhchláir idirghníomhú leis an DOM.

Tugann sé liosta d’ainmneacha na bhfeidhmeanna agus na n-airíonna is féidir le ríomhchláir a

úsáid chun a mbealach a dhéanamh timpeall ar na gnéithe go léir i gcrann DOM agus chun iad

a láimhseáil.

Ar an dea-uair, tagann JavaScript taoibh cliaint le cur i bhfeidhm iomlán an API DOM. Ciallaíonn

sin, go bunúsach, go bhfuil sraith iomlán feidhmeanna agus airíonna ionsuite ag JavaScript ar

féidir iad a úsáid chun crainn DOM a láimhseáil. Mar shampla,

Page 245: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 245

− is féidir an fheidhm createElement a úsáid chun nód eiliminte nua a chruthú.

− is féidir an fheidhm addChild a úsáid chun nód a chur leis ag pointe sonrach sa chrann

DOM.

− is féidir glaoch ar an bhfeidhm removeChild chun nód a scriosadh ón gcrann DOM.

− is féidir an fheidhm getElementById a úsáid chun nód eiliminte a aisghabháil ón gcrann

DOM.

− is féidir na hairíonna textContent agus innerHTML a úsáid chun inneachar téacs nód ar

bith a athrú. D’fhéadfaí na hairíonna sin a úsáid chun inneachar ceannteidil nó ailt nó cnaipe

nó rialtáin ar bith ar féidir téacs a bheith iontu a athrú.

Sa chéad chuid eile, breathnóimid ar chód samplach a úsáideann na APInna sin.

Sampla 1

Sa sampla seo, cuirfimid eilimint h1 amháin le leathanach gréasáin ar bhealach dinimiciúil.

Tosaímid le leathanach HTML an-bhunúsach a thaispeántar in éineacht lena chrann DOM thíos.

Tabhair faoi deara go n-úsáidtear na nóid ghlasa go léir chun eilimintí a chur in iúl ach go n-

úsáidtear dearg agus buí chun nóid tréithe agus téacs faoi seach a chur in iúl. Tabhair faoi

deara freisin go bhfuil luach body-id ag an tréith id ar an gclib body.

<!DOCTYPE html>

<html>

<head>

<title>DOM Demos 1..5</title>

</head>

<body id="body-id">

<script src="demo2.js"></script>

</body>

</html>

Page 246: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 246

Caithfimid eilimint h1 a chur leis an leathanach ar bhealach dinimiciúil. Maidir le DOM, is gá

dúinn nód nua a chruthú don eilimint h1 agus é a ionsá ar an gcrann DOM mar mhac leis an

eilimint body. Chun é sin a dhéanamh, ní mór dúinn tuiscint a fháil ar an eilimint body. Déantar

sin ach getElementById a úsáid agus id na heiliminte body a sheachadadh isteach, mar a

thaispeántar sa chód JavaScript.

let bodyElem = document.getElementById("body-id");

// cruthaigh eilimint nua h1

let h1Elem = document.createElement("h1");

// socraigh inneachar téacs na heiliminte h1

h1Elem.textContent = "This is a level 1 heading!";

// ionsáigh an eilimint nua h1 mar mhac coirp

bodyElem.appendChild(h1Elem);

Sampla 2

Taispeántar sa sampla seo querySelector á úsáid mar mhalairt rogha ar getElementById

chun eilimint DOM a aisghabháil. Glacann API querySelector le luach roghnóra eiliminte mar

argóint – de ghnáth, úsáidtear luach id eiliminte nó tréith class mar luachanna roghnóra.

(Áirítear ar luachanna roghnóra eile luachanna tréithe eile agus tréithe iad féin.)

Nuair a úsáidtear an tréith id mar roghnóir, ní mór siombail na haise, i.e. #, a chur roimhe. Mar

shampla, tá an éifeacht chéanna ag an gcód thíos agus atá ag an liostáil roimhe seo.

let bodyElem = document.querySelector("#body-id");

// cruthaigh eilimint nua h1

let h1Elem = document.createElement("h1");

// socraigh inneachar téacs na heiliminte h1

h1Elem.textContent = "This is a level 1 heading!";

// ionsáigh an eilimint nua h1 mar mhac coirp

bodyElem.appendChild(h1Elem);

Chun an tréith class a úsáid, ní mór ponc a chur roimh an roghnóir, mar a thaispeántar anseo.

(Glactar leis, sa sampla seo, go bhfuil luach body-class ag an tréith class le haghaidh body.)

Page 247: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 247

let bodyElem = document.querySelector(".body-class");

Is féidir getElementById agus querySelector a úsáid go hinmhalartaithe. Tá an chéad

cheann sin éasca le húsáid mar gheall nach féidir le dhá eilimint an id13 céanna a bheith acu. An

buntáiste a bhaineann le querySelector ná gur féidir é a úsáid chun díriú ar níos mó eilimintí.

Luaitear sa doiciméadúchán MDN gur fearr querySelector a úsáid ach bainfimidne úsáid as

getElementById mar theicníc réamhshocraithe chun rochtain a fháil ar eilimintí ó laistigh de

ríomhchlár JavaScript (mar gheall go bhfuil sé níos faide ar an bhfód agus mar sin go dtacaíonn

brabhsálaithe níos sine leis. Tá sé beagán níos éifeachtaí freisin.)

Sampla 3

Sa sampla seo, ionsáitear trí eilimint cheannteidil sa rannóg choirp dár leathanach HTML.

Gach uair is mian linn eilimint nua a chur leis, ní mór dúinn í a chruthú ar dtús agus ansin a

hinneachar a shocrú agus, ar deireadh, í a chur ar an gcrann DOM.

let bodyElem = document.getElementById("body-id");

let h1Elem = document.createElement("h1");

h1Elem.textContent = "This is a level 1 heading!";

bodyElem.appendChild(h1Elem);

let h2Elem = document.createElement("h2");

h2Elem.textContent = "This is a level 2 heading!";

bodyElem.appendChild(h2Elem);

let h4Elem = document.createElement("h4");

h4Elem.textContent = "This is a level 4 heading!";

bodyElem.appendChild(h4Elem);

13 Féach ar https://stackoverflow.com/questions/48240240/why-are-duplicate-ids-not-allowed-in-html

Page 248: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 248

Tabhair faoi deara sna samplaí go dtí seo gur úsáideadh an t-airí textContent chun téacs na n-

eilimintí ceannteidil atá á gcruthú a shocrú. Tá sin mícheart, i ndáiríre, mar gur cheart nóid téacs

a úsáid chun téacs i gcrann DOM a chur in iúl. Meastar gur fearr an cód seo a leanas.

let bodyElem = document.getElementById("body-id");

let h1Elem = document.createElement("h1");

var textNode = document.createTextNode("This is a level 1 heading!");

h1Elem.appendChild(textNode);

bodyElem.appendChild(h1Elem);

Dúshlán!

Mionathraigh an cód níos luaithe thuas ionas go gcuirfear an téacs le

haghaidh h2 agus h4 in iúl ar nóid téacs (seachas mar airí textContent)

Page 249: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 249

Sampla 4

Sa sampla seo, taispeánfaimid an tslí le heilimint a ionsá idir dhá eilimint

Mar shampla, cuir i gcás gur theastaigh uainn eilimint h3 a chruthú agus a ionsá idir na

heilimintí h2 agus h4 a cruthaíodh sa sampla roimhe seo. (Cuimhnigh gur tar éis an DOM a

chruthú é sin.) Léirítear an riachtanas sin sa ghraf thíos, agus an DOM á úsáid.

An crann DOM roimh ionsá An crann DOM i ndiaidh ionsá

Bealach amháin chun an riachtanas a bhaint amach is ea insertAdjacentElement a úsáid

mar a thaispeántar sa chód thíos. Déanann an glaoch ar insertAdjacentElement an

eilimint a ndéantar tagairt di ag h3Elem a ionsá i ndiaidh dheireadh h2Elem sa chrann DOM.

let h3Elem = document.createElement("h3");

h3Elem.textContent = "This is a level 3 heading!";

h2Elem.insertAdjacentElement('afterend', h3Elem);

Is iad na luachanna bailí don argóint suímh choibhneasta, 'beforebegin', 'afterbegin', 'beforeend'

agus 'afterend'. Léirítear iad seo thuas.

Dúshlán!

Déan iarracht teacht ar réiteach ar an sampla seo a thosaíonn ag tús na

heiliminte coirp agus a dhéanann nascleanúint chuig an suíomh ionsáite

riachtanach (glac leis nach bhfuil teidil agat le haghaidh ceann ar bith de

na heilimintí ceannteidil).

Page 250: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 250

Sampla 5

Léirítear sa sampla seo an chaoi le liosta gan ord a ghiniúint ar ala na huaire agus JavaScript á

úsáid.

Cuirtear an cód JavaScript ar fáil thíos. Tógtar inneachar gach liosta ó eagar teaghrán ar a

dtugtar strs agus a fhógraítear ar an gcéad líne.

let strs = [ "Milk", "Bread", "Butter", "Crisps"];

// Aisghabh an eilimint choirp – ceanglóimid an eilimint ul leis sin ar ball.

let bodyElem = document.getElementById("body-id");

// Cruthaigh eilimint le haghaidh ul

let unorderedList = document.createElement("ul");

for (let i in strs) {

let listItem = document.createElement("li"); // cruthaigh eilimint míre liosta

listItem.textContent = strs[i]; // socraigh airí textContent na heiliminte

unorderedList.appendChild(listItem); // cuir an li leis mar an mac deireanach

le ul

}

// Ceangail an eilimint ul leis an gcorp

bodyElem.appendChild(unorderedList);

Léirítear sa léaráid thíos cuid den chrann DOM chomh maith leis an liosta féin agus é á léiriú ag

an mbrabhsálaí.

Bain triail as!

- Déan iarracht an toradh céanna a bhaint amach trí na línte céanna cóid a

úsáid ach iad a shocrú in ord beagán difriúil.

- Déan iarracht cineál eile liosta a chruthú e.g. liosta ordaithe nó liosta

sainmhínithe.

- Cén chaoi a ndéanfá an cód a oiriúnú chun liosta alt a chruthú?

Page 251: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 251

Page 252: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 252

Teagmhais

Is téarma ríomhchlárúcháin é teagmhas a úsáidtear chun cur síos a dhéanamh ar rud éigin a

tharlaíonn fad a bhíonn ríomhchlár á rith. I gcomhthéacs na forbartha gréasáin, tarlaíonn

teagmhais fad a bhíonn ríomhchlár JavaScript le haghaidh suíomh gréasáin á rith.

De ghnáth (ach ní i gcónaí) is é an t-úsáideoir deiridh a chuireann tús le teagmhas, e.g.

cliceálann úsáideoir ar chnaipe luiche chun foirm a chur isteach, agus bíonn ainmneacha thar a

bheith sonracha acu, e.g. cliceáil. Nuair a chuirtear tús le teagmhas, deirtear go bhfuil sé

ardaithe (nó lasta).

Ó thaobh an ríomhchlárúcháin de, tá dhá ghné ag baint le teagmhais – láimhseálaithe agus

éisteoirí.

Is éard is láimhseálaí teagmhais ann an cód i do ríomhchlár a rithfear nuair a lasfar teagmhas.

De ghnáth, cuirtear láimhseálaí i bhfeidhm mar fheidhmeanna JavaScript i do ríomhchlár.

Lena chinntiú go nglaoitear ar do láimhseálaí nuair a lastar a theagmhas, ní mór duit é a chlárú

le fo-chóras JavaScript ar dtús. Chomh luath agus a bhíonn láimhseálaí cláraithe, ‘éisteoidh’

JavaScript le haghaidh an teagmhas a bhfuil sé cláraithe lena láimhseáil. Nuair a ardófar an

teagmhas, glaofar ar an láimhseálaí.

Comhcheanglaítear HTML/CSS, cód JavaScript agus teicneolaíochtaí fho-chóras JavaScript/an

bhrabhsálaí le chéile chun ailtireacht a chruthú chun teagmhais a láimhseáil. Taispeántar sin sa

léaráid thíos.

Page 253: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 253

Léirítear thuas an ailtireacht láimhseála teagmhais taobh thiar de chlic simplí ar chnaipe. Nuair

a chliceáiltear an cnaipe, lastar teagmhas agus taispeánfaidh an láimhseálaí an teachtaireacht

Hello World! i mír aníos.

Taispeántar thíos na liostálacha iomlána HTML agus JavaScript don sampla a léirítear ar an

leathanach roimhe seo.

<!DOCTYPE html>

<html>

<head>

<title>Event Demo v1</title>

</head>

<body>

<button id="btn" type="button">Click me!</button>

<script src="EV-demo.js"></script>

</body>

</html>

Déanann an dara líne in EV-demo.js a thaispeántar anseo láimhseálaí ar a dtugtar

displayMessage a cheangal den chnaipe a shainaithnítear mar btn sa HTML.

const btnRef = document.getElementById("btn");

btnRef.addEventListener("click", displayMessage);

// Taispeáin teachtaireacht

function displayMessage() {

alert( "Hello World!" );

}

Nuair a ritear an cód, taispeánann an brabhsálaí an cnaipe.

Nuair a chliceálann an t-úsáideoir ar an gcnaipe, ritheann an brabhsálaí an láimhseálaí (i.e.

displayMessage). Taispeántar an mhí aníos leis an teachtaireacht Hello World! mar a

thaispeántar anseo.

Page 254: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 254

POINTÍ TÁBHACHTACHA:

✔ Is éard is láimhseálaithe teagmhais ann feidhmeanna a shainmhíníonn an t-

úsáideoir a ghairtear nuair a lastar teagmhas.

✔ Ní mór láimhseálaithe a chlárú le haghaidh teagmhais shonracha e.g. click

✔ Is féidir leat láimhseálaí a chlárú leis an API JavaScript addEventListener

Sampla 1

Sa sampla seo, scríobhaimid láimhseálaí chun an t-am reatha a thaispeáint mar fhreagra ar

chnaipe ar leathanach gréasáin a chliceálann úsáideoir. Léireofar an t-am mar alt HTML suite

díreach faoin gcnaipe ar an leathanach mar a thaispeántar anseo.

Taispeántar an HTML thíos. Tabhair faoi deara go bhfógraítear an eilimint ailt folamh le tréith id

atá socraithe mar demo. Bainfidh an cód JavaScript úsáid as sin mar ionadchoinneálaí i.e. mar

áit leis an am a thaispeáint nuair a chliceáiltear ar an gcnaipe.

<!DOCTYPE html>

<html>

<head>

<title>Date Demo v1</title>

</head>

<body id="body-id">

<button id="time" type="button">Click to see the current time</button>

<p id="demo"> PLACEHOLDER</p> <script src="EV-demo-1.js"></script>

</body>

</html>

Taispeántar thíos an liostáil le haghaidh EV-demo-1.js. Tugtar ‘click’ ar an teagmhas agus

tugtar displayTime ar an láimhseálaí. Nuair a chliceálann an t-úsáideoir ar an gcnaipe,

gairtear an láimhseálaí agus taispeántar an t-am.

const timeBtn = document.getElementById("time"); // Aisghabh an cnaipe ama

timeBtn.addEventListener("click", dispTime); // Ceangail láimhseálaí den chnaipe ama

// Láimhseálaí le haghaidh an chnaipe ama

Page 255: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 255

function dispTime() {

document.getElementById("demo").textContent = Date();

}

Bain triail as!

Seachas timeBtn.addEventListener("click", dispTime); a úsáid

chun éisteoir a chur leis, bain triail as ceann ar bith de na nithe seo a leanas

....

timeBtn.addEventListener("dblclick", dispTime);

timeBtn.addEventListener("mousedown", dispTime);

timeBtn.addEventListener("mouseover", dispTime);

Sampla 2

Sa sampla roimhe seo, taispeántar an t-am san áit chéanna ar an leathanach i gcónaí.

Ciallaíonn sin go ndéantar an t-am a taispeánadh roimhe a fhorscríobh leis an luach nua don

am nuair a chliceáiltear an cnaipe.

Sa sampla seo, feictear na hamanna faoina chéile mar ailt nua ar an leathanach, mar a léirítear

thíos.

Roimh an gcliceáil I ndiaidh na cliceála

Baintear an toradh sin amach tríd an láimhseálaí teagmhais a mhionathrú, mar a thaispeántar

sa liostáil thíos.

const timeBtn = document.getElementById("time"); // Aisghabh an cnaipe ama

timeBtn.addEventListener("click", dispTime); // Ceangail láimhseálaí den chnaipe ama

// Láimhseálaí chun an t-am a thaispeáint

function dispTime() {

let dateTimeStr = Date();

document.getElementById("demo").textContent = dateTimeStr;

// Cuir an t-am leis mar mac deireanach coirp

let bodyElem = document.getElementById("body-id");

let newPara = document.createElement("p");

Page 256: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 256

newPara.textContent = dateTimeStr;

bodyElem.appendChild(newPara);

} // end dispTime

Glaonn an láimhseálaí ar createElement chun eilimint ailt DOM nua a chur le chéile.

Socraítear téacs an ailt ach a airí textContent a úsáid. Ar deireadh, glaoitear ar

appendChild chun an eilimint ailt a ionsá mar mhaceilimint den chorp. Cuirtear an t-alt ar an

gcrann DOM ag deireadh na n-eilimintí go léir atá laistigh den eilimint body.

Sampla 3

Léirítear sa ghabháil scáileáin thíos aidhm an chéad sampla eile.

Nuair a iontrálann úsáideoir téacs sa

réimse iontrála agus nuair a chliceálann

sé OK, taispeántar an téacs ar an

leathanach gréasáin. Déantar gach píosa

nua téacs a iarcheangal mar alt nua le

rannóg div a fhógraítear taobh istigh de

chorp an chóid HTML.

Taispeántar thíos an HTML don leathanach seo.

<body>

<h1>Text Entry Demo</h1>

<label for="txt-field">Enter some text</label>

<input type="text" id="txt-field">

<button id="ok-btn" type="button">OK</button>

<!-- an empty div section to display the text --

>

<div id="result-div"></div>

<script src="EV-demo-3.js"></script>

</body>

Taispeántar thíos an JavaScript don leathanach seo.

Page 257: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 257

const textField = document.getElementById('txt-field');

const okBtn = document.getElementById('ok-btn'); // aisghabh an cnaipe OK

okBtn.addEventListener('click', buttonClicked); // ceangail an láimhseálaí

// Cód láimhseálaí le rith nuair a chliceáiltear ar an gcnaipe OK

function buttonClicked() {

// Cuir na sonraí a iontráladh leis mar an mac deireanach leis an rannóg toraidh

let divElem = document.getElementById("result-div");

let newPara = document.createElement("p");

newPara.textContent = textField.value;

divElem.appendChild(newPara);

textField.focus(); // socraigh an fócas ar ais chuig an réimse téacs

textField.value = ""; // glan inneachar an réimse téacs

}

Sampla 4

Tá an sampla seo beagnach mar an gcéanna leis an gceann roimhe – an uair seo, in áit a

bheith le feiceáil mar ailt, léirítear an téacs mar mhíreanna liosta i liosta gan ord (in áit mar ailt).

Mar gheall gur mic ina bhfuil eilimint ul iad míreanna liosta, ní mór don chód a sheiceáil an

bhfuil máthairárthach ann chun an mhír liosta nuachruthaithe a chur ann. Murab ann don

tuismitheoir, cruthaítear é agus cuirtear leis an rannóg div é

const textField = document.getElementById('txt-field');

textField.focus(); // socraigh an fócas chuig an réimse téacs

const okBtn = document.getElementById('ok-btn');

// Ceangail éisteoir leis an gcnaipe ok

okBtn.addEventListener('click', buttonClicked);

function buttonClicked() {

let dataEntered = textField.value;

let listItem = document.createElement("li");

listItem.textContent = dataEntered;

// Cuir na sonraí a iontráladh leis mar an mac deireanach le liosta gan ord

let unorderedList = document.getElementById("ul");

// Murab ann don liosta, cruthaigh é agus ....

// ... ionsáigh é mar mhac leis an rannóg toraidh

if (unorderedList == null) {

let divElem = document.getElementById("result-div");

unorderedList = document.createElement("ul");

Page 258: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 258

divElem.appendChild(unorderedList);

}

unorderedList.appendChild(listItem);

textField.focus();

textField.value = "";

}

Sampla 5

Is ‘cluiche tomhais an uimhir’ é an sampla seo – tá an leathanach HTML tosaigh bunaithe ar an

dá shampla roimhe seo. Nuair a thosaítear an cluiche, bíonn an chuma seo ar an mbrabhsálaí.

Cruthaíonn an cód JavaScript slánuimhir randamach idir 1 agus 10, an dá uimhir sin san

áireamh agus gach uair a chuireann an t-úsáideoir tomhas isteach, tugann an ríomhchlár ceann

amháin as dhá theachtaireacht aiseolais mar fhreagra – Congratulations! nó Wrong! – ag brath

ar cibé an raibh an uimhir a iontráladh ceart nó nach raibh.

Fógraíonn an cód HTML thíos ionadchoinneálaí ar a dtugtar rightOrWrong atáthar in ann a

úsáid sa chód JavaScript chun an teachtaireacht aiseolais chuí a chur leis.

<!DOCTYPE html>

<html lang="en">

<head>

<title>Event Demo 5 - Guess Game v1</title>

<!-- import the web page's stylesheet -->

<link rel="stylesheet" href="style.css">

</head>

<body>

<h1>Number guessing game</h1>

<p>Guess a number between 1 and 10 (incl.)</p>

<label for="guessField">Enter a guess: </label>

<input type="text" id="guessField">

<button id="submit-btn" type="button">Submit guess</button>

<p id="rightOrWrong"></p>

<script src="EV-demo-5.js"></script>

</body>

Page 259: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 259

</html>

Taispeántar an cód foinseach le haghaidh EV-demo-5.js ar an gcéad leathanach eile.

Tá an cód le haghaidh EV-demo-5.js simplí go leor. Ceanglaítear láimhseálaí ar a dtugtar

checkGuess den chnaipe submit. Gairtear an láimhseálaí nuair a lastar teagmhas ‘click’. Ní

tharlaíonn sé sin ach amháin nuair a chliceálann an t-úsáideoir ar an gcnaipe csubmit.

Déantar an chuid is mó den phróiseáil taobh istigh den láimhseálaí – léann an cód an luach a

iontrálann an t-úsáideoir agus seiceálann é lena fháil amach an bhfuil sé mar an gcéanna le

huimhir rúnda an ríomhaire. Déantar an teachtaireacht aiseolas chuí (i.e. Congratulations nó

Wrong!) a shocrú mar an t-inneachar téacs in eilimint ailt an leathanaigh ansin agus úsáidtear é

chun an t-aiseolas a thaispeáint. (Cuimhnigh ón HTML ar an leathanach roimhe seo go

sainaithnítear an ‘t-alt aiseolais’ seo leis an luach rightOrWrong)

// pioc uimhir randamach idir 1 agus 10

let secretNumber = Math.floor(Math.random() * 10) + 1;

// Socraigh láimhseálaí teagmhais don chnaipe submit

const submitBtn = document.getElementById("submit-btn");

submitBtn.addEventListener('click', checkGuess);

// Láimhseálaí – seiceáil an buille faoi thuairim

function checkGuess() {

const feedback = document.getElementById('rightOrWrong');

const guessField = document.getElementById('guessField');

// Léigh buille faoi thuairim an úsáideora

let userGuess = Number(guessField.value);

if (userGuess === secretNumber) {

feedback.textContent = 'Congratulations!';

} else {

feedback.textContent = 'Wrong!';

}

guessField.value = ''; // bánaigh an réimse

guessField.focus(); // tabhair an fócas dó

}

Mol trí leasú a d’fhéadfá a chur ar an ‘gcluiche tomhais an uimhir’ sula

dtéann tú ar aghaidh chuig an gcéad ghníomhaíocht ar leithligh eile.

1.

Page 260: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 260

2.

3.

Page 261: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 261

GNÍOMHAÍOCHT AR LEITHLIGH 2

Sna chéad tascanna eile, tá ort roinnt leasuithe a dhéanamh ar an ‘gcluiche tomhais an uimhir’

a cuireadh i láthair roimhe seo. Cuireann gach tasc leis an gcód ón tasc roimhe – mar sin, i

gcás Thasc 1, ba cheart duit tosú leis an gcód ón sampla is déanaí.

Cuirtear an chuid is mó den chód a bheidh ag teastáil uait chun gach tasc a chur i gcrích ar fáil

duit – níl ort ach a oibriú amach céard a dhéanann sé, cén chaoi lena úsáid agus cá háit lena

chur chun an tasc a chur i gcrích.

Tasc 1

a) Cuir ticbhosca leis an leathanach chun an uimhir atá an t-úsáideoir ag iarraidh a

thomhas a thaispeáint/a chur i bhfolach i.e. an uimhir ríomhghinte a stóráiltear san

athróg secretNumber.

Taispeántar sampla den chaoi ar cheart don ticbhosca gníomhú le

taobh an téacs seo. Nuair a thosaíonn an ríomhchlár, feictear an

ticbhosca gan tic ann.

Nuair a chliceálann an t-úsáideoir ar an ticbhosca, taispeántar an uimhir rúnda mar

inneachar téacs lipéad an ticbhosca.

b) Athraigh airí stíle na teachtaireachta aiseolais ionas go dtaispeántar í i nglas má tá an

tomhas ceart agus i ndearg mura bhfuil.

feedback.style.backgroundColor = red'; // baile ag teastáil uaidh!

function toggleNumber() {

const computerNumber = document.getElementById('computerNumber');

if (checkbox.checked) {

computerNumber.style.visibility = 'visible';

computerNumber.textContent = secretNumber;

} else {

computerNumber.style.visibility = 'hidden';

}

}

<input id="showNumberCkBx" type="checkbox">

<label id="computerNumber"></label>

feedback.style.backgroundColor = 'green'; // cabhraigh liom – táim ar strae!

Page 262: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 262

let checkbox = document.getElementById("showNumberCkBx");

checkbox.addEventListener('click', toggleNumber);

Tasc 2

Maidir leis an tasc seo, tá ort rannóg torthaí a chruthú i do leathanach chun an fhaisnéis seo a

leanas a thaispeáint:

a) Liosta de gach tomhas a rinne an t-úsáideoir roimhe seo

b) Teachtaireacht chabhrach le hinsint don úsáideoir cibé an raibh a thomhas ró-íseal, ró-ard

nó díreach ceart (d’fhéadfá an ceathrú teachtaireacht a chur leis chun ‘neamhbhailí’ a

thaispeáint i ngach cás eile, má tá dúshlán uait!)

c) Staitistic ag an deireadh a thugann an líon iomlán tomhas (beidh ort athróg a fhógairt agus a

choimeád chun taifead a choinneáil ar thomhais an úsáideora – tabhair guessCount air)

Ní thugtar na codanna cóid in ord ar bith – beidh ort iad a chur sna suíomhanna cearta sa chód,

mar thoradh ar Thasc 1.

function displayStats() {

// Taispeáin an líon buillí faoi thuairim

let statsPara = document.getElementById("stats");

statsPara.textContent = "You took "+guessCount+" guesses";

}

<div id="results">

<p id="rightOrWrong"></p>

<p id="lowOrHi"></p>

<p>Previous Guesses:</p>

<ul id="prevGuesses"></ul>

<p id="lowOrHi"></p>

</div>

// Taispeáin buille faoi thuairim gach úsáideora sa rannóg le haghaidh prevGuesses

let unorderedList = document.getElementById("prevGuesses");

let newListItem = document.createElement("li");

newListItem.textContent = guessField.value;

unorderedList.appendChild(newListItem);

// Taispeáin teachtaireacht a chabhróidh leis an úsáideoir

let helpfulMsgField = document.getElementById("lowOrHi");

if (userGuess < secretNumber) {

helpfulMsgField.textContent = 'Too low!' ;

} else if (userGuess > secretNumber) {

helpfulMsgField.textContent = 'Too high!';

if (userGuess === secretNumber) {

helpfulMsgField.textContent = 'Just right!';

}

Page 263: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 263

displayStats(); // glaoigh ar an bhfeidhm chun an líon buillí faoi thuairim a

thaispeáint

Tasc 3

Cuir próiseáil ‘Game Over’ leis. Sa tasc seo, tá ort cnaipe ‘New game’ a chur le do leathanach.

Déanann an dá léaráid thíos cur síos ar an gcaoi ar cheart don chóras gníomhú roimh chliceáil

ar an gcnaipe agus i ndiaidh chliceáil ar an gcnaipe. Tabhair faoi deara staid

chumasaithe/dhíchumasaithe an dá chnaipe.

Roimh chliceáil ar an gcnaipe ‘New game’ I ndiaidh cliceáil ar an gcnaipe ‘New game’

function gameOver() {

submitBtn.disabled = true;

newGameBtn.disabled = false;

displayStats();

}

const newGameBtn = document.getElementById('newgame-btn');

newGameBtn.addEventListener('click', newGame);

<button id="newgame-btn" type="button">New game</button>

function newGame() {

secretNumber = Math.floor(Math.random() * 10) + 1;

guessCount = 0;

submitBtn.disabled = false;

newGameBtn.disabled = true;

document.getElementById('computerNumber').textContent = "";

document.getElementById("showNumberCkBx").checked = false;

document.getElementById('rightOrWrong').textContent = "";

document.getElementById("lowOrHi").textContent = "";

Page 264: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 264

document.getElementById("prevGuesses").innerHTML = "";

document.getElementById("stats").textContent = "";

}

Beidh ort línte a chur leis chun glaoch ar na feidhmeanna gameOver agus newGame.

Tasc 4

Sa tasc seo, cuirfidh tú dhá chnaipe guairne leis lena chur ar chumas úsáideoirí luach íosta

agus uasta a shocrú don uimhir rúnda. Ba cheart go mbeadh an chuma seo ar an scáileán

tosaigh sa chóras deiridh:

// Láimhseálaí le haghaidh na nguairní

function setSecretNo() {

minValue = Number(document.getElementById('low').value);

maxValue = Number(document.getElementById('high').value);

secretNumber = Math.floor(Math.random() * (maxValue - minValue +1)) + minValue;

// nuashonraigh an uimhir rúnda ar an bpainéal taispeána

document.getElementById('computerNumber').textContent = secretNumber;

}

// Cruthaigh éisteoir don dá ghuairne (déanfaidh an ceann céanna cúis don phéire)

document.getElementById('low').addEventListener('change', setSecretNo);

document.getElementById('high').addEventListener('change', setSecretNo);

<div>

<label for="low">Min: </label>

<input id="low" type="number" min="1" max="100" step="1" value="1">

<label for="high">Max: </label>

<input id="high" type="number" min="1" max="100" step="1" value="100">

</div>

// Is gá an cód seo a shní isteach san fheidhm ‘newGame’

minValue = Number(document.getElementById('low').value);

Page 265: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 265

maxValue = Number(document.getElementById('high').value);

secretNumber = Math.floor(Math.random() * (maxValue - minValue +1)) + minValue;

let minValue, maxValue;

Déan machnamh ar na tascanna idirghníomhacha go léir atá díreach curtha i

gcrích agat. Déan cur síos ar chás ar bith ina n-úsáidfeá cur chuige difriúil

chun ceann ar bith de na tascanna a chur i gcrích. An bhfuil tú in ann

smaoineamh ar aon fheabhsúchán eile a d’fhéadfá a dhéanamh? Tabhair le

fios cén chaoi a bhféadfaí ceann ar bith de na cleachtaí seo a oiriúnú le

húsáid i rang Ríomheolaíocht na hArdteistiméireachta de do chuid féin?

Page 266: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 266

Tasc 5

Don tasc deiridh seo sa seisiún ar leithligh, tá ort an córas Foghlama Ríomhchuidithe (CAL) a

d’fhorbair tú i seisiún ar leithligh 1 a ‘ghréasánú’. Tabharfaimid Córas Foghlama Ríomhchuidithe

Ar Líne, nó OCALS ar an gcóras nua.

Is féidir an riachtanas sin a bhaint amach tríd an gcód atá agat ón ‘gcluiche tomhais an uimhir’ a

shní isteach leis an gcód críochnaithe ón gcéad seisiún ar leithligh. Sula dtosaíonn tú ba cheart

duit smaoineamh ar an gcuma a bheadh ar OCALS nuair a bheidh sé tugtha chun críche. Beidh

ort do réiteach a phleanáil agus a cheapadh go cúramach sula dtosaíonn tú á chur i bhfeidhm le

HTML/CSS agus cód JavaScript. Bain úsáid as léaráid an phróisis ceaptha ó dhoiciméad

sonraíochta Ríomheolaíocht na hArdteistiméireachta agus na ceisteanna thíos chun creat a

chur le do smaointeoireacht.

Tosaigh le raon feidhme a leagan amach do do chóras – céard a dhéanfaidh sé? Déan iarracht

thú féin a shamhlú in intinn an úsáideora deiridh. Cén fheidhmiúlacht a theastódh ón ngnáth-

úsáideoir deiridh? Bain úsáid as sin lena chinneadh céard a bheidh agus nach mbeidh ann

(agus a mbeidh eatarthu). Beidh ort do shreabhadh sonraí a chur san áireamh chomh maith –

cén fhaisnéis atá de dhíth? Céard a chaithfidh mé a ghabháil ón úsáideoir deiridh? Céard iad na

sonraí a fhéadfaidh an córas a ghineadh?

Faoin am seo, is fiú cúpla smaoineamh a leagan síos don chomhéadan úsáideora (d’fhéadfadh

na seatanna den scáileán a thaispeántar thíos agus ar an gcéad leathanach eile cúpla

smaoineamh a spreagadh – déan iarracht do chinn féin a cheapadh!). Cén chuma a bheidh ar

an gcóras don úsáideoir deiridh? Déan roinnt cásanna úsáide a dhearadh – is féidir iad a úsáid

mar bhunús agus tú ag dearadh do thástála. Faoin am seo ba cheart go mbeifeá réidh chun

Page 267: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 267

tosú ar dhearadh bonnleibhéil. Cé na giuirléidí/rialtáin UI a úsáidfidh tú? Céard iad na

teagmhais a mbeidh ar do chóras déileáil leo? Cén chuid de do shuíomh a bheidh statach agus

cén chuid a bheidh dinimiciúil?

Chomh luath agus a bheidh do riachtanais agus do shonraíochtaí dearaidh curtha i gcrích agat,

beidh tú réidh le dul ar aghaidh chuig céim chur i bhfeidhm agus thástála an tionscadail. Go n-

éirí leat!

Page 268: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 268

OCALS – Scáileáin shamplacha

Page 269: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 269

Page 270: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 270

LEATHANACH BÁN

Page 271: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 271

Réitigh Mholta ar Ghníomhaíochtaí ar Leithligh

Réiteach Molta ar Ghníomhaíocht ar Leithligh #1 (CAL)

Tugtar na réitigh ar gach ceann de na hocht gcleachtadh ar na leathanaigh seo a leanas.

Míníonn na teachtaireachtaí an cód.

Tá na réitigh ina sraitheanna, rud a chiallaíonn go gcuireann gach liostáil leis an

bhfeidhmiúlacht bhreise atá mar thoradh ar an bhfadhb roimhe. Tugann an cód atá aibhsithe i

mbuí le fios cá háit ar cuireadh an réiteach ar gach fadhb i bhfeidhm. Ba cheart duit iarracht a

dhéanamh gach réiteach a thuiscint sula dtéann tú ar aghaidh chuig an gcéad fhadhb eile.

Réiteach ar Cheist 1

// CÉIM 1. Gin an cheist

// Gin 2 uimhir randamacha

let n1 = Math.floor(Math.random() * 10); // 0 <= n1 < 10

let n2 = Math.floor(Math.random() * 10); // 0 <= n2 < 10

// CÉIM 2. Cuir ceist ar an úsáideoir agus faigh freagra

// athraítear n1 agus n2 go teaghráin ionas gur féidir iad a thaispeáint mar chuid ...

// ... den teaghrán leide

let problemInWords = "What is "+ String(n1) + " + " + String(n2); // C1

console.log(problemInWords);

let userResponse = Number(prompt(problemInWords));

console.log("User entered %d", userResponse); // is chun críocha dífhabhtaithe sin

// CÉIM 3: Déan an freagra a phróiseáil

// Déan an freagra ceart a ríomh. Ansin...

// ... fad is go mbíonn freagra an úsáideora difriúil le freagra an ríomhaire ...

// ... inis don úsáideoir go bhfuil siad mícheart agus ...

// ... iarr freagra eile ar an úsáideoir

let correctAnswer = n1 + n2; // Déan an freagra ceart a ríomh

while (userResponse != correctAnswer) {

console.log("Wrong answer! Try again.");

userResponse = Number(prompt(problemInWords));

}

// CÉIM 4. Taispeáin teachtaireacht spreagúil a roghnaítear go randamach

const messages = ["Well done!", "Very good!", "Correct!", "Keep it up!", "Nice work!"];

const r = Math.floor(Math.random() * messages.length);

console.log(messages[r]);

alert(messages[r]);

Page 272: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 272

Réiteach ar Cheist 2

// CÉIM 1. Gin an cheist

// Gin 2 uimhir randamacha

let n1 = Math.floor(Math.random() * 10); // 0 <= n1 < 10

let n2 = Math.floor(Math.random() * 10); // 0 <= n2 < 10

// CÉIM 2. Cuir ceist ar an úsáideoir agus faigh freagra

// athraítear n1 agus n2 go teaghráin ionas gur féidir iad a thaispeáint mar chuid ...

// ... den teaghrán leide

let problemInWords = "What is "+ String(n1) + " + " + String(n2); // C1

console.log(problemInWords);

let userResponse = Number(prompt(problemInWords));

console.log("User entered %d", userResponse); // is chun críocha dífhabhtaithe sin

// CÉIM 3: Déan an freagra a phróiseáil

// Déan an freagra ceart a ríomh. Ansin...

// ... fad is go mbíonn freagra an úsáideora difriúil le freagra an ríomhaire ...

// ... inis don úsáideoir go bhfuil siad mícheart agus ...

// ... iarr freagra eile ar an úsáideoir

let correctAnswer = n1 + n2; // Déan an freagra ceart a ríomh

while (userResponse != correctAnswer) {

// C2 – glac leis go gciallaíonn freagairt dhiúltach nach bhfuil an freagra ar

eolas ag an úsáideoir

if (userResponse < 0) {

break; // scoir an lúb

} else {

console.log("Wrong answer! Try again.");

userResponse = Number(prompt(problemInWords));

}

}

// C2 – ní raibh an freagra ar eolas ag an úsáideoir, mar sin, inis an freagra dóibh

if (userResponse < 0) {

console.log("Answer not known. The correct answer was", correctAnswer);

alert("Answer not known. The correct answer was" + String(correctAnswer));

} else {

// CÉIM 4. Taispeáin teachtaireacht spreagúil a roghnaítear go randamach

const messages = ["Well done!", "Very good!", "Correct!", "Keep it up!", "Nice work!"];

const r = Math.floor(Math.random() * messages.length);

console.log(messages[r]);

alert(messages[r]);

}

Tarscaoileadh!

Beidh an cur i bhfeidhm seo ina fhoinse d’fhabht a nochtfar sa réiteach ar Cheist 8.

Page 273: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 273

Réiteach ar Cheist 3

// CÉIM 1. Gin an cheist

// Gin 2 uimhir randamacha

let n1 = Math.floor(Math.random() * 10); // 0 <= n1 < 10

let n2 = Math.floor(Math.random() * 10); // 0 <= n2 < 10

// CÉIM 2. Cuir ceist ar an úsáideoir agus faigh freagra

// athraítear n1 agus n2 go teaghráin ionas gur féidir iad a thaispeáint mar chuid ...

// ... den teaghrán leide

let problemInWords = "What is "+ String(n1) + " + " + String(n2); // C1

console.log(problemInWords);

let userResponse = Number(prompt(problemInWords));

console.log("User entered %d", userResponse); // is chun críocha dífhabhtaithe sin

// CÉIM 3: Déan an freagra a phróiseáil

// Déan an freagra ceart a ríomh. Ansin...

// ... fad is go mbíonn freagra an úsáideora difriúil le freagra an ríomhaire ...

// ... inis don úsáideoir go bhfuil siad mícheart agus ...

// ... iarr freagra eile ar an úsáideoir

let correctAnswer = n1 + n2; // Déan an freagra ceart a ríomh

while (userResponse != correctAnswer) {

// C2 – glac leis go gciallaíonn freagairt dhiúltach nach bhfuil an freagra ar

eolas ag an úsáideoir

if (userResponse < 0) {

break; // scoir an lúb

} else {

// C3 – Freagra mícheart – taispeáin teachtaireacht randamach ón eagar

teachtaireachtaí

const messages = ["No! Please try again", "Wrong! Try once more", "Don't give

up!", "No! Keep trying", "That's incorrect"];

const r = Math.floor(Math.random() * messages.length);

console.log(messages[r]);

alert(messages[r]);

//console.log("Wrong answer! Try again.");

userResponse = Number(prompt(problemInWords));

}

}

// C2 – ní raibh an freagra ar eolas ag an úsáideoir, mar sin, inis an freagra dóibh

if (userResponse < 0) {

console.log("Answer not known. The correct answer was", correctAnswer);

alert("Answer not known. The correct answer was" + String(correctAnswer));

} else {

// CÉIM 4. Taispeáin teachtaireacht spreagúil a roghnaítear go randamach

const messages = ["Well done!", "Very good!", "Correct!", "Keep it up!", "Nice work!"];

const r = Math.floor(Math.random() * messages.length);

console.log(messages[r]);

alert(messages[r]);

}

Page 274: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 274

Réiteach ar Cheist 4

// C4 fógair dhá eagar teachtaireachtaí

const correctMsgs = ["Well done!", "Very good!", "Correct!", "Keep it up!", "Nice work!"];

const incorrectMsgs = ["No! Please try again", "Wrong! Try once more", "Don't give up!", "No!

Keep trying", "That's incorrect"];

// C4 Sainmhínigh feidhm a ghineann agus a thaispeánann teachtaireacht randamach

function displayRandomMsg(messages) {

const r = Math.floor(Math.random() * messages.length);

console.log(messages[r]);

alert(messages[r]);

}

// CÉIM 1. Gin an cheist

// Gin 2 uimhir randamacha

let n1 = Math.floor(Math.random() * 10); // 0 <= n1 < 10

let n2 = Math.floor(Math.random() * 10); // 0 <= n2 < 10

// CÉIM 2. Cuir ceist ar an úsáideoir agus faigh freagra

// athraítear n1 agus n2 go teaghráin ionas gur féidir iad a thaispeáint mar chuid ...

// ... den teaghrán leide

let problemInWords = "What is "+ String(n1) + " + " + String(n2); // C1

console.log(problemInWords);

let userResponse = Number(prompt(problemInWords));

console.log("User entered %d", userResponse); // is chun críocha dífhabhtaithe sin

// Ríomh an freagra ceart

// CÉIM 3: Déan an freagra a phróiseáil

let correctAnswer = n1 + n2; // Déan an freagra ceart a ríomh

while (userResponse != correctAnswer) {

// C2 – glac leis go gciallaíonn freagairt dhiúltach nach bhfuil an freagra ar

eolas ag an úsáideoir

if (userResponse < 0) {

break; // scoir an lúb

} else {

// C3 – Freagra mícheart – taispeáin freagra randamach ón eagar

teachtaireachtaí

displayRandomMsg(incorrectMsgs); // C4

userResponse = Number(prompt(problemInWords));

}

}

// C2 – ní raibh an freagra ar eolas ag an úsáideoir, mar sin, inis an freagra dóibh

if (userResponse < 0) {

console.log("Answer not known. The correct answer was", correctAnswer);

alert("Answer not known. The correct answer was" + String(correctAnswer));

} else {

// CÉIM 4. Taispeáin teachtaireacht spreagúil a roghnaítear go randamach

displayRandomMsg(correctMsgs); // C4

}

Page 275: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 275

Réiteach ar Cheist 5

Tá an réiteach iomlán comhdhéanta de na comhpháirteanna aonair seo a leanas. Fágtar mar

chleachtadh breise é iad a chur le chéile san ord ceart.

Comhpháirt A

// Fógair trí athróg uilíocha

let n1 = 0, n2 = 0, correctAnswer = 0, userResponse = 0;

let problemInWords;

// Fógair dhá eagar uilíocha de theachtaireachtaí

const correctMsgs = ["Well done!", "Very good!", "Correct!", "Keep it up!", "Nice work!"];

const incorrectMsgs = ["No! Please try again", "Wrong! Try once more", "Don't give up!", "No!

Keep trying", "That's incorrect"];

Comhpháirt B

// Is é seo príomhchorp an ríomhchláir.

// Ritheann an ríomhchlár fad is go bhfuil an bhratach 'goAgain’ fíor

let keepGoing = true;

while (keepGoing) {

generateQuestion();

getResponse();

processResponse();

let yesNo = prompt("Continue [Y/N]");

keepGoing = yesNo.toUpperCase() == "Y" ? true : false;

}

Comhpháirt C

// Feidhm chun an cheist a ghineadh

function generateQuestion(){

// Gin 2 uimhir randamacha

n1 = Math.floor(Math.random() * 10); // 0 <= n1 < 10

n2 = Math.floor(Math.random() * 10); // 0 <= n2 < 10

let correctAnswer = n1 + n2; // Déan an freagra ceart a ríomh

} // end generateQuestion

Comhpháirt D

// Feidhm chun freagairt a fháil

function getResponse() {

problemInWords = "What is "+ String(n1) + " + " + String(n2); // C1

console.log(problemInWords);

userResponse = Number(prompt(problemInWords));

console.log("User entered %d", userResponse); // is chun críocha dífhabhtaithe sin

} // end getResponse

Page 276: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 276

Comhpháirt E

// Feidhm chun an fhreagairt a phróiseáil

function processResponse() {

// Fad is go mbíonn freagra an úsáideora difriúil le freagra an ríomhaire ...

// ... inis don úsáideoir go bhfuil siad mícheart agus ...

// ... iarr freagra eile ar an úsáideoir

while (userResponse != correctAnswer) {

if (userResponse < 0) {

break; // scoir an lúb

} else {

// Iontráladh an freagra mícheart.

displayRandomMsg(incorrectMsgs); // C4

userResponse = Number(prompt(problemInWords));

}

} // end while

if (userResponse < 0) {

console.log("Answer not known. The correct answer was", correctAnswer);

alert("Answer not known. The correct answer was" + String(correctAnswer));

} else {

// Iontráladh an freagra ceart.

displayRandomMsg(correctMsgs);

}

} // end processResponse

Comhpháirt F

// Feidhm a ghineann agus a thaispeánann teachtaireacht randamach

function displayRandomMsg(messages) {

const r = Math.floor(Math.random() * messages.length);

console.log(messages[r]);

alert(messages[r]);

} // end displayRandomMsg

Bain úsáid as an spás thíos chun cur síos a dhéanamh ar an gcaoi ar féidir na

comhpháirteanna thuas a eagrú ina réiteach a oibríonn.

Page 277: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 277

Page 278: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 278

Réiteach ar Cheist 6

Fógraímid athróg uilíoch nua don leibhéal deacrachta mar seo a leanas:

let difficultyLevel; // C6 fógartha ach neamhshainithe

Shainmhíníomar feidhm ar a dtugtar getDifficultyLevel chun an leibhéal deacrachta a léamh

ón úsáideoir deiridh, mar a thaispeántar thíos. Ní dhéanann an cód dada lena chinntiú gur 1 nó

2 atá sa luach a iontráladh. (Cén chaoi a bhféadfadh sin fadhbanna a chruthú ag am rite?)

// C6 Feidhm chun an leibhéal deacrachta a fháil

function getDifficultyLevel(){

// Gin 2 uimhir randamacha

let diffLevelQuestion = "Enter difficulty level (1 or 2)";

console.log(diffLevelQuestion);

difficultyLevel = Number(prompt(diffLevelQuestion));

} // end getDifficultyLevel

Taispeánann an bloc cóid thíos an glaoch ar getDifficultyLevel ag tús phríomhchorp lúibe an

ríomhchláir. Mar gheall go ndéantar an glao laistigh den chorp lúibe, tabharfar leid don úsáideoir

an leibhéal deacrachta a iontráil sula ngintear gach ceist nua.

let keepGoing = true;

while (keepGoing) {

getDifficultyLevel(); // C6

generateQuestion();

...

Ar deireadh, tá orainn an fheidhm a mhionathú chun an cheist a ghineadh bunaithe ar an

leibhéal deacrachta a iontráiltear.

// C6 Feidhm chun an cheist a ghineadh

function generateQuestion(){

if (difficultyLevel === 2) {

// Gin dhá uimhir randamacha idir 10 agus 99, an dá uimhir sin san áireamh

n1 = Math.floor(Math.random() * 90) + 10; // 10 <= n1 < 100

n2 = Math.floor(Math.random() * 90) + 10; // 10 <= n2 < 100

} else {

// Gin dhá uimhir randamacha idir 0 agus 9, an dá uimhir sin san áireamh

n1 = Math.floor(Math.random() * 10); // 0 <= n1 < 10

n2 = Math.floor(Math.random() * 10); // 0 <= n2 < 10

}

let correctAnswer = n1 + n2; // Déan an freagra ceart a ríomh

} // end generateQuestion

Page 279: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 279

Réiteach ar Cheist 7

Tosaímid leis an bhfeidhm (getOperation) agus an athróg uilíoch (operation) a fhógairt a

úsáidfear chun an cineál oibríochta a iarrann an t-úsáideoir a fháil agus a stóráil.

let operation; // C7 is iad na luachanna bailí: +, -, * agis /

// C7 Feidhm chun an oibríocht a fháil

function getOperation(){

// Gin 2 uimhir randamacha

let operationQuestion = "Enter operation ('+', '-', '/' or '*')";

console.log(operationQuestion);

operation = prompt(operationQuestion);

} // end getOperation

Taispeánann an bloc thíos an glaoch ar getOperation á dhéanamh taobh amuigh den chorp

lúibe. Ciallaíonn sin nach n-iarrfar ar an úsáideoir an cineál oibríochta a iontráil ach uair amháin

(i.e. nuair a thosaíonn an ríomhchlár). Dá mbogfaí an glaoch ar getOperation taobh istigh

den chorp lúibe, thabharfaí leid don úsáideoir an cineál oibríochta do gach ceist a iontráil.

getOperation() // C7

while (keepGoing) {

getDifficultyLevel(); // C6

...

Mionathraítear an cód chun an athróg correctAnswer a shocrú chun luach na hoibríochta a

thástáil. Déantar é sin mar gheall go mbraitheann an ríomh ar an gcineál oibríochta a

roghnaítear

function generateQuestion(){

if (difficultyLevel === 2) {

// Gin dhá uimhir randamacha idir 10 agus 99, an dá uimhir sin san áireamh

n1 = Math.floor(Math.random() * 90) + 10; // 10 <= n1 < 100

n2 = Math.floor(Math.random() * 90) + 10; // 10 <= n2 < 100

} else {

// Gin dhá uimhir randamacha idir 0 agus 9, an dá uimhir sin san áireamh

n1 = Math.floor(Math.random() * 10); // 0 <= n1 < 10

n2 = Math.floor(Math.random() * 10); // 0 <= n2 < 10

}

// Ríomh an freagra ceart don oibríocht

if (operation === "+") {

correctAnswer = n1 + n2;

} else if (operation === "-") {

correctAnswer = n1 - n2;

} else if (operation === "*") {

correctAnswer = n1 * n2;

} else {

correctAnswer = n1 / n2;

}

Page 280: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 280

Réiteach ar Cheist 8

Fógraímid trí athróg – nrRight, nrWrong, nrDontKnow agus túsaímid iad go léir chuig nialas.

let nrRight = 0; // C8 úsáidtear é chun an líon freagraí cearta a iontráiltear a

stóráil

let nrWrong = 0; // C8 úsáidtear é chun an líon freagraí míchearta a iontráiltear a

stóráil

let nrDontKnow = 0; // C8 úsáidtear é chun an líon freagraí anaithnide a stóráil

Taispeánaimid feidhm chun na staitisticí a thaispeáint

// C8 Feidhm chun na staitisticí deiridh a thaispeáint

function displayStats(){

console.log("Thank you for using Automated Math Tutor");

console.log("Statistics are:");

console.log("Correct:", nrRight);

console.log("Incorrect:", nrWrong);

console.log("Unknown:", nrDontKnow);

console.log("Goodbye!");

} // end displayStats

Glaoitear ar an bhfeidhm thuas ag deireadh an ríomhchláir – taobh amuigh den lúb while, mar

sin ní ghlaoitear uirthi ach uair amháin

displayStats();

Ar ndóigh, ní mór na staitisticí a rianú. Déantar sin trí incrimintí a chur leis na trí athróg sin ag na

pointí cuí sa chód. Fágtar suíomh ceart na dtrí líne sin mar dhúshlán deireanach.

nrRight++;

nrWrong++;

nrDontKnow++;

Page 281: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 281

Réiteach Molta ar Ghníomhaíocht ar Leithligh #2

<!DOCTYPE html>

<html lang="en">

<head>

<title>Event Demo 5 - Guess Game v1</title>

<!-- import the web page's stylesheet -->

<link rel="stylesheet" href="style.css">

</head>

<body>

<h1>Number guessing game</h1>

<p>Guess a number between min and max (incl.)</p>

<div>

<label for="low">Min: </label>

<input id="low" type="number" min="1" max="100" step="1" value="1">

<label for="high">Max: </label>

<input id="high" type="number" min="1" max="100" step="1" value="100">

</div>

<label for="guessField">Enter a guess: </label>

<input type="text" id="guessField">

<button id="submit-btn" type="button">Submit guess</button>

<button id="newgame-btn" type="button">New game</button>

<br>

<input id="showNumberCkBx" type="checkbox">

<label id="computerNumber"></label>

<div id="results">

<p id="rightOrWrong"></p>

<p id="lowOrHi"></p>

<p>Previous Guesses:</p>

<ul id="prevGuesses"></ul>

<p id="lowOrHi"></p>

</div>

<!-- import the web page's javascript file -->

<script src="EV-demo-5.1.js"></script>

</body>

</html>

Page 282: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 282

Bristear síos an cód JavaScript sna seacht rannóg seo a leanas – is féidir iad a chur le chéile in

ord ar bith i ndiaidh an chéad cheann.

// Cruthaigh éisteoir le haghaidh an chnaipe 'Submit'

const submitBtn = document.getElementById("submit-btn");

submitBtn.addEventListener('click', checkGuess);

// Cruthaigh éisteoir le haghaidh an chnaipe ‘New game’

const newGameBtn = document.getElementById('newgame-btn');

newGameBtn.addEventListener('click', newGame);

// Cruthaigh éisteoir don ticbhosca chun an uimhir rúnda a thaispeáint

let checkbox = document.getElementById("showNumberCkBx");

checkbox.addEventListener('click', toggleNumber);

// Cruthaigh éisteoir don dá ghuairne (déanfaidh an ceann céanna cúis don phéire)

document.getElementById('low').addEventListener('change', setSecretNo);

document.getElementById('high').addEventListener('change', setSecretNo);

// Athróga uilíocha

const feedback = document.getElementById('rightOrWrong');

const guessField = document.getElementById('guessField');

let guessCount, secretNumber, minValue, maxValue;

// Tosaigh cluiche nua

newGame();

// Glaoitear ar an bhfeidhm seo ag tús an ríomhchláir

// Gníomhaíonn sí mar láimhseálaí an chnaipe ‘New game’ freisin

function newGame() {

minValue = Number(document.getElementById('low').value);

maxValue = Number(document.getElementById('high').value);

secretNumber = Math.floor(Math.random() * (maxValue - minValue +1)) + minValue;

guessCount = 0;

submitBtn.disabled = false;

newGameBtn.disabled = true;

document.getElementById('computerNumber').textContent = "";

document.getElementById("showNumberCkBx").checked = false;

document.getElementById('rightOrWrong').textContent = "";

document.getElementById("lowOrHi").textContent = "";

document.getElementById("prevGuesses").innerHTML = "";

document.getElementById("stats").textContent = "";

guessField.focus();

}

Page 283: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 283

// Láimhseálaí don chnaipe 'Submit'

function checkGuess() {

let userGuess = Number(guessField.value);

//guesses.textContent += userGuess + ' ';

guessCount++;

if (userGuess === secretNumber) {

feedback.textContent = 'Congratulations!';

feedback.style.backgroundColor = 'green';

gameOver();

} else {

feedback.textContent = 'Wrong!';

feedback.style.backgroundColor = 'red';

}

// Taispeáin teachtaireacht a chabhróidh leis an úsáideoir

let helpfulMsgField = document.getElementById("lowOrHi");

if (userGuess < secretNumber) {

helpfulMsgField.textContent = 'Too low!' ;

} else if (userGuess > secretNumber) {

helpfulMsgField.textContent = 'Too high!';

if (userGuess === secretNumber) {

helpfulMsgField.textContent = 'Just right!';

}

// Taispeáin buille faoi thuairim gach úsáideora sa rannóg le haghaidh prevGuesses

let unorderedList = document.getElementById("prevGuesses");

let newListItem = document.createElement("li");

newListItem.textContent = guessField.value;

unorderedList.appendChild(newListItem);

guessField.value = '';

guessField.focus();

}

function gameOver() {

submitBtn.disabled = true;

newGameBtn.disabled = false;

displayStats();

}

function displayStats() {

// Taispeáin an líon buillí faoi thuairim

let statsPara = document.getElementById("stats");

statsPara.textContent = "You took "+guessCount+" guesses";

}

Page 284: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 284

// Láimhseálaí don ticbhosca

function toggleNumber() {

const computerNumber = document.getElementById('computerNumber');

if (checkbox.checked) {

computerNumber.style.visibility = 'visible';

computerNumber.textContent = secretNumber;

} else {

computerNumber.style.visibility = 'hidden';

}

guessField.focus();

}

// Láimhseálaí le haghaidh na nguairní

function setSecretNo() {

minValue = Number(document.getElementById('low').value);

maxValue = Number(document.getElementById('high').value);

secretNumber = Math.floor(Math.random() * (maxValue - minValue +1)) + minValue;

// nuashonraigh an uimhir rúnda ar an bpainéal taispeána

document.getElementById('computerNumber').textContent = secretNumber;

}

Page 285: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 285

AGUISÍNÍ

Eochairfhocail JavaScript

Taispeántar an liosta iomlán d’fhocail choimeádta JavaScript sa tábla thíos.

await debugger false instanceo

f this void

break default finally let throw while

case delete for new true with

catch do functio

n null try yield

class else if return typeof

const export import super undefine

d

continu

e extends in switch var

Eochairfhocail ECMAScript 2018

Ba cheart caitheamh leis na focail seo a leanas mar fhocail choimeádta freisin (cé nach focail

choimeádta iad)

true, false, let, null, undefined

boolean, byte, char, double, float, long,

arguments, eval, parseInt, parseFloat

Infinity, NaN, isNaN, isFinite,

Array, Boolean, Date, Error, Function, JSON, Math, Number,

Object, String

Nótaí:

1) Ba cheart duit na focail sin a sheachaint mar aitheantóirí d’athróga agus d’fheidhmeanna i

do ríomhchláir JavaScript.

2) Ní liosta críochnaitheach ar chor ar bith é an liosta thuas ach ba cheart go dtabharfadh sé

treoir mhaith duit.

3) Mura bhfuil tú cinnte, ba cheart duit dul i gcomhairle na tagartha teanga Mozilla JavaScript

Page 286: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 286

Page 287: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 287

Oibreoirí Uimhríochta

Oibreoirí Sannacháin Cumaisc

Tosaíocht Oibreoirí

Page 288: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 288

Page 289: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 289

Oibreoirí Comparáide

Oibreoirí Loighciúla agus Táblaí Fírinne

Tábla fírinne do NOT

loighciúil

Page 290: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 290

Tábla fírinne do AND loighciúil Tábla fírinne do OR loighciúil

Modhanna Eagair Coitianta14

Ainm an Mhodha Cur Síos

arrA.concat(arrB) Tugann eagar nua atá comhdhéanta d’eilimintí arrA agus ansin

eilimintí arrB.

arrA.indexOf(item)

Tugann innéacs an chéad uair a fheictear an luach a

shonraíonn item in arrA. Sa chás nach bhfaightear item,

tugann an modh -1

arrA.lastIndexOf(item)

Ag tosú ón deireadh, tugann innéacs an chéad uair a fheictear

an luach a shonraíonn item in arrA. Sa chás nach bhfaightear

item, tugann an modh -1

arrA.join([separator])

Tugann na heilimintí go léir san eagar, iad comhcheangailte mar

theaghrán. Is camóg é luach réamhshocraithe an deighilteora

roghnaigh.

arrA.push(items) Iarcheanglaíonn eilimint amháin nó níos mó (mar a shonraítear

ag items) le deireadh an arrA agus tugann fad nua an eagair.

arrA.pop() Baineann an eilimint deiridh in arrA. Tugann an eilimint a

baineadh nó undefined sa chás go raibh an t-eagar folamh

arrA.shift() Baineann an chéad eilimint in arrA. Tugann an eilimint a

baineadh nó undefined sa chás go raibh an t-eagar folamh

arrA.unshift(items) Ionsánn eilimint amháin nó níos mó (mar a shonraítear ag

items) le tús arrA agus tugann fad nua an eagair.

arrA.sort() Sórtálann eilimintí an eagair ina n-áit agus tugann an t-eagar

sórtáilte (in ord aibítreach)

arrA.reverse() Sórtálann eilimintí an eagair ina n-áit agus tugann an t-eagar

sórtáilte (in ord aibítreach)

arrA.slice([i1, [i2])

Tugann eagar nua atá comhdhéanta d’eilimintí arrA ó i1 suas

go i2 ach gan i2 san áireamh. Sa chás nach sonraítear i1,

glactar leis gur nialas é; sa chás nach sonraítear i2, glactar leis

gur arrA.length é. Níl athrú ar inneachar an eagair bunaidh.

14 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

Page 291: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 291

arrA.splice(i, [n,

[items]])

Cuireann/athchuireann/baineann eilimintí ó eagar i bhfeidhm. Is

é i an t-innéacs tosaigh, is é n an líon eilimintí atá le baint agus

is é items na heilimintí nua.

Tugann eagar nua le heilimintí ar bith a baineadh. (Sa chás

nach bhfuil eilimintí ar bith bainte, tugtar eagar folamh.)

Modhanna Dáta Coitianta15

Is féidir na modhanna seo a leanas a úsáid chun faisnéis a fháil ó oibiacht dáta d.

Ainm an Mhodha Cur Síos

d.getDate() Tugann an lá den mhí (1-31) don dáta sonraithe de réir an ama

áitiúil.

d.getDay() Tugann an lá den tseachtain (0-6) don dáta sonraithe de réir an ama

áitiúil.

d.getFullYear() Tugann an bhliain (4 dhigit le haghaidh blianta 4 dhigit) don dáta

sonraithe de réir an ama áitiúil.

d.getHours() Tugann an uair (0-23) don dáta sonraithe de réir an ama áitiúil.

d.getMinutes() Tugann na nóiméid (0-59) don dáta sonraithe de réir an ama áitiúil.

d.getMonth() Tugann an mhí (0-11) don dáta sonraithe de réir an ama áitiúil.

d.getSeconds() Tugann the soicindí (0-59) don dáta sonraithe de réir an ama áitiúil.

d.getTime()

Tugann luach uimhriúil an dáta shonraithe mar líon milleasoicindí ón

1 Eanáir, 1970, 00:00:00 UTC (diúltach maidir le hamanna roimhe

sin).

15 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

Page 292: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 292

Modhanna Matamaitice Coitianta16

Modh Cur Síos Samplaí Toradh

Math.round(x);

Tugann x slánaithe suas nó

síos go dtí an tslánuimhir is gaire

Math.round(9.7); 10

Math.round(9.3); 9

Math.ceil(x); Tugann an tslánuimhir is gaire atá níos mó ná nó cothrom le x

Math.ceil(9.7); 10

Math.ceil(9.3); 10

Math.floor(x);

Tugann an tslánuimhir is gaire atá níos lú ná nó cothrom le x

Math.floor(9.7); 9

Math.floor(9.3); 9

Math.pow(x, y); Tugann x ardaithe i

gcumhacht y.

Math.pow(2,5); 32

Math.pow(5,2); 25

Math.sqrt(x); Tugann fréamh chearnach x Math.sqrt(25); 32

Math.sqrt(-25); NaN

Math.cbrt(x); Tugann fréamh chiúbach x Math.cbrt(64); 4

Math.cbrt(-64); -4

Math.abs(x); Tugann luach uimhriúil x Math.abs(25); 25

Math.abs(-25); 25

Math.max(x, …)

Tugann an t-uasmhéid de liosta d’uimhir amháin nó níos mó

Math.max(1,-2,-1); 1

Math.min(x, …)

Tugann an t-íossmhéid de liosta d’uimhir amháin nó níos mó

Math.min(1,-2,-1); -2

Tugtar roinnt samplaí den úsáid a bhaintear as Math.random sa tábla thíos:

Sampla Cur Síos

Math.floor(Math.random() * 10); Tugann slánuimhir 𝑟 ionas go:

0 ≤ 𝑟 < 10

Math.floor(Math.random() * 11); Tugann slánuimhir 𝑟 ionas go:

0 ≤ 𝑟 ≤ 10

Math.floor(Math.random() * 10) + 1; Tugann slánuimhir 𝑟 ionas go:

1 <= 𝑟 ≤ 10

16 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math

Page 293: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 293

Modhanna Uimhris Coitianta17

Ainm an Mhodha Cur Síos

Number.isNaN(x)

Tugann true sa chás gur NaN é an luach a thugtar agus

gur Number é a chineál; i gcásanna eile, tugann false.

Number.isNaN("Joe") 🡪 false

Number.isNaN("999") 🡪 false

Number.isNaN(999) 🡪 false

Number.isNaN(9.99) 🡪 false

Number.isNaN(999/0) 🡪 false

Number.isNaN(Infinity) 🡪 false

Number.isNaN(NaN) 🡪 true

Number.isFinite(x)

Tugann true sa chás gur uimhir chríochta an uimhir a

sheachadtarh; tugann false seachas sin

Number.isFinite(“Joe”) 🡪 false

Number.isFinite(“999”) 🡪 false

Number.isFinite(999) 🡪 true

Number.isFinite(9.99) 🡪 true

Number.isFinite(999/0) 🡪 false

Number.isFinite(Infinity) 🡪 false

Number.isFinite(NaN) 🡪 false

Number.isInteger(x)

Tugann true sa chás gur slánuimhir (nó uimhir dheachúil

is féidir a chur in iúl mar shlánuimhir, e.g. 2.0) í an uimhir a

sheachadtar; tugann false seachas sin

Number.parseFloat(value)

Tugann uimhir shnámhphointe parsáilte ó value. Sa chás

nach féidir an value a athrú go huimhir, tugtar NaN

Tá an fheidhmiúlacht chéanna ag an modh seo agus atá

ag an bhfeidhm uilíoch parseFloat() :

Number.parseInt(value,

[base])

Tugann slánuimhir parsáilte ón value sa bhonnuimhir a

chuirtear ar fáil. Sa chás nach féidir value a athrú go

huimhir, tugtar NaN. Tá an fheidhmiúlacht chéanna ag an

modh seo agus atá ag an bhfeidhm uilíoch parseInt() :

17 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number

Page 294: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 294

Oibríonn na modhanna seo a leanas ar shlonn uimhriúil ar bith x.

Ainm an Mhodha Cur Síos

x.toExponential() Tugann léiriú teaghráin x i nodaireacht easpónantúil

19.64738.toExponential() 🡪 1.964738e+1

x.toFixed(len)

Tugann léiriú teaghráin x le digití len i ndiaidh an phointe

dheachúlaigh

19.64738.toFixed() 🡪 20

19.64738.toFixed(1) 🡪 19.6

19.64738.toFixed(2) 🡪 19.65

19.64738.toFixed(3) 🡪 19.647

x.toPrecision(len)

Tugann léiriú teaghráin x slánaithe go dtí digití suntasacha len

19.64738.toPrecision(0) 🡪 19.64738

19.64738.toPrecision(2) 🡪 20

19.64738.toPrecision(4) 🡪 19.65

19.64738.toPrecision(6) 🡪 19.6474

Page 295: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 295

Modhanna Teaghráin Coitianta18

Ainm an Mhodha Cur Síos

strA.concat(strB) Tugann teaghrán nua atá comhdhéanta de charachtair strA

agus ansin carachtair strB ina ndiaidh.

str.charAt(index)

Tugann teaghrán nua atá comhdhéanta den charachtar ag an

index sainithe sa str (nó teaghrán folamh sa chás go bhfuil

index thar teorainn)

str.charCodeAt(index) Tugann cód Unicode an charachtair ag an innéacs sainithe sa

str (nó NaN sa chás go bhfuil index thar teorainn)

str.toUpperCase() Tugann teaghrán nua ina bhfuil na litreacha ar fad sa str

aistrithe go cás uachtair

str.toLowerCase() Tugann teaghrán nua ina bhfuil na litreacha ar fad sa str

aistrithe go cás íochtair

str.indexOf(item

[,fromIndex])

Tugtar innéacs na chéad uaire a fheictear an luach a

shonraíonn item sa str. Mura sonraítear fromIndex,

tosaíonn an cuardach ag innéacs nialas. Sa chás nach

bhfaightear item, tugann an modh -1

str.lastIndexOf(item

[,fromIndex])

Ag tosú ag an deireadh (nó ag fromIndex) agus ag dul siar,

tugann an modh seo innéacs na chéad uaire a fheictear an

luach a shonraíonn item sa str. Sa chás nach bhfaightear

item, tugann an modh -1

str.slice([i1, [i2])

Tugann teaghrán nua atá comhdhéanta de charachtar str ó i1

go dtí i2 ach gan i2 san áireamh. Sa chás nach sonraítear i1,

glactar leis gur nialas é; sa chás nach sonraítear i2, glactar leis

gur str.length é. Níl athrú ar inneachar an teaghráin

bhunaidh.

str.replace(old, new) Gach uair a aimsítear old sa str, cuirtear new ina ionad.

str.split([separator]) Tugann eagar teaghrán deighilte ag an bpointe a shonraíonn an

separator

18 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String

Page 296: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 296

str.trim()

Cruthaíonn teaghrán nua bunaithe ar str le spásanna bána

chun tosaigh agus chun deiridh bainte amach. Tabhair faoi

deara, ní bhaineann trimStart() ach spásanna bána chun

tosaigh amach agus ní bhaineann trimEnd() ach spásanna

bána chun deiridh amach

Page 297: Luaigh mar: SFGM, Ríomheolaíocht na hArdteistiméireachta ... · 1 Bíonn go leor comhaid acmhainní eile i suíomh gréasáin, go háirithe cinn a bhaineann le hábhar meáin (e.g.

Web Development Skills – Part B - JavaScript 297

Tagairtí

Suíomhanna Gréasáin

Mozilla https://developer.mozilla.org/en-US/docs/Web/JavaScript

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference

Web

Demystified

https://www.youtube.com/playlist?list=PLo3w8EB99pqLEopnunz-dOOBJ8t-

Wgt2g

W3Schools https://www.w3schools.com/js/default.asp

TutorialsPoint https://www.tutorialspoint.com/javascript/

JavaScript.info https://javascript.info/js

Douglas

Crockford’s

JavaScript

http://crockford.com/javascript/

Oracle https://developer.oracle.com/javascript

geeksforgeeks https://www.geeksforgeeks.org/javascript-tutorial/

edX JavaScript

MOOC

https://courses.edx.org/courses/course-

v1:W3Cx+JS.0x+3T2018/course/

Glitch https://glitch.com/

ECMAScript

2018 Language

Specification

https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-

262.pdf

Leabhair/Nótaí

1) JavaScript The Definitive Guide, David Flanagan, O’Reilly, 2011

2) Heads First JavaScript Programming, Eric Freeman and Elisabeth Robson, O’Reilly, 2014

(Suíomh gréasáin a théann leis: https://www.wickedlysmart.com/hfjs/)

3) JavaScript and jQuery, Jon Duckett, Wiley and Sons, Inc. 2014

4) Tógtar go leo de na míthuiscintí coitianta a bhíonn ar scoláirí as “Misconceptions and the

Beginner Programmer” le Juha Sorva, a fheictear mar Chaibidil 13 in Computer Science

Education, Perspectives on Teaching and Learning in School, curtha in eagar ag Sentence,

Barendsen, and Schulte, Bloomsbury, 2018.

5) Tógtar go leor de na leideanna do mhúinteoirí as “Teaching Programming” le Michael E.

Caspersen, a fheictear mar Chaibidil 9 in Computer Science Education Perspectives on

Teaching and Learning in School, curtha in eagar ag Sentence, Barendsen, and Schulte,

Bloomsbury, 2018.

6) Professional Notes on Programming, Teaching and Learning, Joe English