>> [TÓNLIST spila]
>> DOUG LLOYD: Svo nú erum við gamla kostir á forritun vefur, ekki satt?
Og við höfum fjallað nokkrum tungumálum í einstökum myndbönd.
Og nú skulum gera eitt, JavaScript.
>> Fyrsta góðar fréttir, JavaScript er nútíma forritun
Tungumál mikið eins og PHP sem setningafræði er dregið úr C,
svo það er góður staður til að byrja.
Það er nokkurn veginn jafngömul PHP, eins og heilbrigður, hafa verið í kringum um 20 ár.
Það var fundið í kringum sama tíma og PHP.
Og JavaScript er í raun frekar grundvallaratriði í reynslu notenda
á vefnum.
Í staðreynd, there ert þrjú tungumál sem ég
myndi segja svona gera upp notandi reynsla af samskiptum
með heimasíðu, HTML, CSS og JavaScript.
Og svo nú skulum tala svolítið um JavaScript.
>> The slæmur fréttir, þó, með JavaScript er sem það setur mikið af reglum fyrir sig,
og þá er það brýtur þá.
Og JavaScript geta raunverulega vera konar erfitt að læra,
því það er ólíkt C og PHP, sem er mjög skipulögð
og hafa mjög strangar reglur fyrir hvernig hlutirnir geta unnið.
JavaScript er góður af fengið svo sveigjanleg
að kannski hlutirnir eru ekki að fara að vinna eins og við búast við þá til,
og kannski við getum í raun ekki lært Fyrsta forritun okkar tungumál
sem JavaScript.
Svo kannski vegna þess að það er ekki sett sér allar reglur,
og það er í raun ekki framfylgja góð forritun venja.
En nú höfum við vonandi þróað nokkrar góðar forritun venja,
og svo við getum byrjað að skyndiárás í JavaScript svolítið.
>> Til að skrifa JavaScript, svipað opnun upp á C skrá með punktur C eftirnafn
eða PHP skrá með punktur PHP eftirnafn, allt sem við þurfum að gera er að opna skrá
með punktur js skrá eftirnafn.
Við þurfum ekki að hafa neitt sérstakt delimiters eins og við gerðum í PHP.
Þessi tegund af sjónarhorni krappi spurningarmerki PHP
sem við erum að nota til frá því, hvernig við segja vafra okkar að það sem við höfum er
JavaScript er með því það í HTML tag,
og við munum sjá svolítið um hvernig á að gera það í bara smá stund.
>> The annar hlutur sem gerir JavaScript öðruvísi,
þó, er að það keyrir viðskiptavinur hlið.
Svo muna með PHP sem við gætum aldrei séð
PHP sem undirstrikað vefsíðu.
Ef við skoðað alltaf á síðu uppspretta, myndum við bara
sjá html sem var mynda með því PHP.
En JavaScript keyrir viðskiptavinur hlið.
Þinn JavaScript keyrir á tölvunni þinni.
Og þess vegna er hægt að gera Hluti eins og að bæta við blokkar.
Ekki satt?
Sljór auglýsing er venjulega gert með því drepa alla JavaScript
sem er í gangi á tiltekinni vefsíðu.
Og vegna þess að það þyrfti að keyra á vél viðskiptavinur hlið,
þú getur bara hætt að JavaScript til að keyra alveg.
Það þýðir líka að þegar þú notar a website sem inniheldur JavaScript,
þú þarft að senda JavaScript uppspretta númer sem hluta af http svar þitt
til viðskiptavinar þegar þeir biðja um það.
Og svo þú gætir ekki vilt nota JavaScript
að gera virkilega viðkvæm hluti eins liggur upplýsingar
um lykilorð notenda baka og fram, vegna þess að þeir eru í raun
að fara að taka á móti öllum af the uppspretta merkjamál, ekki bara html sem er myndaður,
svo sem væri raunin með segjum PHP.
>> Svo hvernig gera við eru JavaScript í html okkar til að byrja með?
Jæja, svipað CSS, reyndar, er tegund af hvernig við gerum það hér.
Með CSS við höfum stíl tags.
Og inni af þeim stíl tags, getum við að skilgreina CSS stílblað.
Á sama hátt með JavaScript getum við opna handrit tags,
annars HTML tag við gerðum ekki tala um í HTML vídeó okkar,
og skrifa Javascript í á milli þessara handrit tags.
Einnig þó, eins og CSS, við gæti tengt í utan CSS skrár
og draga þá inn í kerfi okkar þannig.
Með CSS við getum líka, Afsakið mig, með JavaScript
við getum líka tilgreina uppruna eiginleiki handriti tag
að tengja í JavaScript sérstaklega, svo þú ert ekki
að skrifa það í milli skrifta tags, við
getur tengt það í notkun sem handrit tag eins og heilbrigður.
Og rétt eins og með málið með CSS hvar við mælt með því að það var líklega
í besta áhuga þinn til að skrifa CSS í sérstakri skrá í tilfelli
þú þarft að breyta því, álíka gera við mælum
sem þú skrifar þína JavaScript í sérstökum skrám
og nota handrit tags uppspretta eigindi að binda þinn Javascript
í HTML kóðanum, vefsíðu þinni.
>> Svo JavaScript breytur, munum við byrja að tala um setningafræði hér.
Og við munum fara í gegnum svona fljótt,
vegna þess að við höfum gert þetta í PHP, svo þetta ætti allt að vera nokkuð kunnugt.
Svo breytur í JavaScript er mjög svipað PHP breytur.
Það er engin tegund specifier og þegar þú kynna breytu,
þú forskeytið það með VAR leitarorð.
Í PHP við myndum gera eitthvað eins og þetta, dollaramerki x.
Það er hvernig við fram breytu, en nei, við
ekki minnst á tegund breytu á öllum.
Við myndi segja eitthvað eins dollaramerki x er jafnt 44 í PHP.
Ef við vorum að gera á sama í JavaScript,
myndum við segja var x jafngildir 44.
Svo er Var konar leiðinni að kynna breytu.
Það er kannski svolítið meira innsæi en bara dollaramerki breytu.
>> Aftur, því það er engin gagnatög, gætum við gert þetta
með hvaða tegund gagna, strengir, eitthvað annað myndi allt vera var.
Conditionals, allt okkar gamlir vinir frá C og PHP
eru enn í boði, þannig að við höfum ef annars ef annar, rofi og spurning
merkja ristill.
Skipta eftir eins sveigjanleg og það var í PHP, en öll þessi þú ert
þekki nú.
Og álíka með lykkjur eru gamla uppáhaldi stund,
gera á meðan, og enn í boði fyrir okkur.
Svo þegar við vitum mikið af undirstöðu JavaScript konar grundvallaratriði
bara í krafti þess að hafa töluvert þekkingar nú um C og PHP.
>> Hvað um aðgerðir í JavaScript?
Jæja, svipað PHP hvert hlutverk er kynnt með virka leitarorð.
Þú segir virka, og þá byrja að skilgreina virka.
Hvað er svolítið öðruvísi um JavaScript,
þó er sá eiginleiki að hafa það sem er kallað nafnlaus aðgerð.
Svo er hægt að skilgreina aðgerðir sem ekki hafa nafn.
Þetta er eitthvað sem við í raun hafa ekki séð áður.
Við munum virkilega að nota hugtakið af nafnlaus aðgerð
stuttu seinna í þessu video, því það verður
gera smá meira vit í samhengi þegar við sjáum það í tilteknu ástandi
sem ég hef iðn hér.
En við skulum bara taka a líta á hvaða einfaldan JavaScript
virka gæti litið út.
>> Þannig að ég hef farið á undan og opnaði CS50 IDE minn
og ég hef keyrt þegar Apache að byrja framreiðslumaður hlaupandi mína.
Og ég hef þessa skrá opna kallað heim.html.
Og ég ætla að stækka smá hér.
Og í rauninni er hægt að sjá Heim.html er bara fullt af hnöppum.
Og ég er krafa efst hér að þetta er JavaScript hluti
efni.
Svo er það fullt af hnöppum hér, en hvað þessir takkar raunverulega gera?
>> Jæja, munum við höfuð yfir hvöt mína, og ég hef heim.html opna hér.
Í upphafi, hér er þar sem ég er að tengja
í öllum mínum JavaScript fengið skrár.
Ekki satt?
Þannig að ég hef anonymous.js, clock.js, Ég er að nota uppspretta eigindi
af handriti tag til að tengja í skrá.
Þannig að ég hef ekki skrifað eitthvað JavaScript beint í skrána,
en ég hef dregið í allt JavaScript Ég hef skrifað sig.
Og ef við skruna niður hér, þetta ættu allir að líta nokkuð kunnugur
með smá nýja setningafræði.
Við höfum hér haus tag fyrir virka og þá hnappinn.
Ég er með inntak sem er gerð hnappinn, og virðist þegar ég smelltu á það,
Ég ætla að hringja í nokkrar virka viðvörun dagsetningu.
Og þetta er hvernig við getum konar blanda upp smá JavaScript og HTML.
Þeir spila reyndar mjög fallega saman, og svo virðist hvenær
Ég smelli á þennan hnapp, ég ætla að hringja nokkur virka viðvörun dagsetningu.
Og álíka hef ég skilgreint hegðun fyrir alla aðra reiti sem
eru á þeirri heim.html síðu, sem við munum halda aftur
að meðan á þessu myndbandi.
En við skulum fara aftur upp hér og kíkja
á clock.js, sem er JavaScript skrá sem ég
skrifaði sem hefur þessa fyrstu aðgerð við erum að fara að kíkja á.
Eins og þú geta sjá, byrja ég minn Javascript virka með leitarorðinu virka,
og ég hef gefið þetta a nafn, það heitir viðvörun dagsetning.
Inni þar, ég skapa greinilega Ný staðbundin breytu sem heitir dag-.
Og ég ætla að úthluta jafn í nýja dagsetningu.
Og við gætum fengið inn mikið af smáatriði um hvað a dagsetning er,
og í raun JavaScript er svo stór að við getum ekki mögulega
ná allt í einu vídeó.
En nægja að segja, þetta er að fara til að fara aftur til mín gögn atriði sem
ævisaga núverandi dagsetningu og tíma.
Ég er að geyma það í breytu sem ég er greinilega að fara að láta dagsetninguna.
>> Jæja, hvað þýðir viðvörun dag- líta út?
Við skulum taka a líta á the skrá sig aftur yfir í glugga.
Svo aftur, þetta er hnappur sem ég hafa bundið við, þetta heitir virka.
Og ég smelli það þar og Sjáðu hvað það gerði, viðvörun það.
Það smella upp þessa tegund af kassa segja mér að núverandi tími er virðist
það er 4. nóvember á 10:43:43 um morguninn.
Og ef ég smelli á það aftur, nú það er nokkrum sekúndum síðar, ekki satt?
Svo er það allt þetta virka gerir.
Þegar ég smelli á þennan hnapp, það birtist upp viðvörun skilaboð til mín.
Svo er það í raun ekki of mikið að virka
það er mismunandi frá PHP, bara svolítið af nýjum setningafræði
sem kemur með að vinna með JavaScript.
>> Fylki í JavaScript er frekar einfalt.
Að lýsa fylki, þú notar hornklofum setningafræði
sem við erum kunnugir frá PHP.
Og svipað PHP, við Einnig er hægt að blanda gögn gerðum.
Þannig að þetta array, bæði af þessum fylki myndi
vera fullkomlega lögmætur JavaScript.
Eitt sem er allt heiltölur, og sá sem er ruglað mismunandi gerðir gagna.
>> Hvað er eitthvað mjög öðruvísi í JavaScript, þó?
Það er hugmyndin um hlut.
Svo kannski þú hafir heyrt um Object oriented Forritun.
Við gerum ekki mikið af því í CS50, en við munum gera smá af því
hér í tengslum við JavaScript.
Nú hefur JavaScript getu til haga sér eins og Object oriented Forritun
tungumál, en það er ekki sjálft eingöngu hlutur stilla
forritunarmál.
Og aftur kemur aftur til hvers vegna ég sagði, það
getur verið mjög erfitt að læra JavaScript sem fyrsta forritun
tungumál, því það er ekki virkilega passa ákveðna hugmyndafræði.
>> C á hinn bóginn er hagnýtur forritunarmál.
Ef við viljum, eru aðgerðir konar stóru stjóri Manchester, ekki satt?
Þeir ákveða hvað gerist allt annað.
Við viljum breyta breytur, við köllum aðgerðir.
Við gerum það til að virka.
Hlutir í staðinn, í mótmæla stilla tungumál,
hlutir konar verða stjarna og aðgerðir orðið eins konar efri.
En hvað er hlutur, hvað er þetta hugmynd af hlut?
Jæja, ef það hjálpar, ég held um það á fyrst raða
af eins og C uppbyggingu eða strúktúr sem við höfum lært um áður.
Í C, uppbygging inniheldur a tala af sviðum,
og kannski við nú gæti byrjað að kalla þessum sviðum eiginleika.
En eignir aldrei standa á eigin spýtur, ekki satt?
Ef ég skilgreina uppbyggingu fyrir bíl svona með eftirfarandi tveimur
sviðum eða eignir, einn an heiltala fyrir árið á bílnum
og annar 10 staf band fyrir líkan af bílnum,
Ég get sagt eitthvað eins og þetta, Ég get lýst því yfir nýja breytu
af gerðinni struct bíl Herbie.
Og þá get ég sagt eitthvað eins herbie.year jafngildir 1963,
og herbie.model jafngildir Beetle.
Það er allt í lagi.
Ég er að nota reiti samhengi á skipulagi,
en ég gat aldrei bara segja eitthvað eins og þetta.
Ekki satt?
Ég get ekki notað reit nafn óháð uppbyggingu.
Það er tegund af grundvallar hlutur.
>> Svo sviðum vera grundvallaratriði að C mannvirki
eru mjög svipuð eignir vera grundvallaratriði að JavaScript hlutum.
En það sem gerir þá sérstaklega áhugavert
er að hlutir geta einnig hafa það eru kallaðir aðferðir, sem eru í raun
bara fínt orð fyrir aðgerðir sem felast að mótmæla eins og heilbrigður.
Svo það er aðgerð sem getur aðeins verið kölluð í tengslum við hlut.
Aðeins hlutur sem hefur skilgreint þessi aðgerð inni í sínum,
ef þú hugsar um að struct, sem virka
er skilgreind innan þessara skilgreina hrokkið axlabönd á skipulagi.
Svo það þýðir aðeins eitthvað við uppbyggingu.
Og það er tegund af því sem við erum að gera hér við hluti og aðferðir.
Það er í grundvallaratriðum eins og við erum skilgreina fall sem
gerir bara skilningi á a einkum hlut, og svo við
kalla að aðferð á hlut.
Og við getum aldrei kalla það virka óháð af hlutnum,
bara eins og við getum ekki sagt ár eða líkan óháð strúktúr í C.
>> Svo hagnýtur forritun málin líta eitthvað eins og this.
Virka og þá þegar þú fara í hlut sem viðfang.
Í Object oriented Forritun tungumálum, þessi tegund af fær
hreifi, og við myndum hugsa um það eins og þetta, object.function.
Svo það er tegund af þeirri punktur rekstraraðila aftur felur
að það er einhvers konar eign eða eiginleiki hlutnum sjálfum.
En þetta er það hlutur stilla forritunarmál
gæti gert til að gera aðgerð kalla á aðferð, aftur, sem
er bara sérstakt orð fyrir aðgerð sem felst í hlut.
Þetta er það sem að setningafræði gæti litið út.
Og svo munum við byrja að sjá nokkrar af þetta í tengslum við JavaScript.
>> Þú getur einnig hugsa um hlut tegund af eins tengin array,
sem við erum kunnugir frá PHP.
Mundu tengin array gerir okkur að hafa lykilinn gildi pör stað
af því að hafa vísitölur 0, einn, tveir, þrír, og svo framvegis eins og við erum að nota til úr C
fylki.
Tengin fylki getur kortinu orð, svo sem í PHP vídeó,
við vorum að tala um álegg á pizzur.
Og svo við höfðum fjölda kallast pizzur, og við
hafði ostur var lykillinn og $ 8,99 var gildi, og þá pepperoni var lykillinn,
$ 9,99 var gildi, og svo framvegis.
Og svo við getum einnig að hugsa um að mótmæla konar svipað tengin
array.
Og svo þetta setningafræði hér myndi búa til nýjan hlut
heitir Herbie með tveimur eiginleikar inni af því.
Ári, sem er úthlutað gildi 1963, og fyrirmynd, sem er úthlutað band
Bjalla.
>> Og taka fram að ég er að nota einn vitna í JavaScript.
Þú getur notað einfaldar eða tvöfaldar gæsalappir þegar þú ert að tala um strengi.
Það er bara venjulega að ræða að flestir sinnum
þegar þú ert að skrifa JavaScript, þú notar bara einn quotes.
En ég gæti notað gæsalappa hér, og það væri fullkomlega í lagi eins og heilbrigður.
>> Svo muna hvernig í PHP við höfðum þessa hugmynd
A fyrir hverja lykkju sem myndi leyfa okkur að iterate yfir öll helstu verðmæti
pör af tengin array, vegna þess að við
ekki hafa þessa getu til að árétta í gegnum 0, einn, tveir, þrír, fjórir,
og svo framvegis?
JavaScript er eitthvað mjög svipað, en það er ekki kallað eftir hverja lykkju,
það er kallað í lykkjur.
Þannig að ef ég sagði við mig eins og þetta fyrir VAR lykill í hlut,
það er tegund af líkur til að segja fyrir hvern eitthvað eins og eitthvað.
En allt sem ég er að gera hér er iterating gegnum alla takkana af hlut mínum.
Og inni í hrokkið axlabönd það, myndi ég
nota mótmæla hornklofa takka til að vísa á gildið á þeim lykill stað.
>> Einnig, það er jafnvel annað nálgun.
Ef ég bara aðeins annt um gildi, get ég sagt fyrir lykill hlut,
og bara nota takkann inni.
Svo fyrir VaR-lykill í hlut, ég hef að nota hlut hornklofa
lykill inni í lykkju.
Fyrir VaR lykli hlut, ég get bara nota takkann inni í lykkju,
því ég er bara sérstaklega að tala um gildi þar.
>> Svo skulum kannski taka a líta á mismun
bara að fljótt sýna þér munurinn á milli fjögurra
í og á við mjög sérstakur array, sem við höfum hér, vika array.
Svo ég verð að finna nýtt array sem ég fyllti með sjö strengi,
Mánudagur, þriðjudagur, miðvikudagur, Fimmtudagur, föstudagur, laugardagur, sunnudagur.
Og ég vil nú árétta gegnum þennan fjölda,
prenta út ákveðnar upplýsingar.
Ef ég nota í lykkju að prenta út upplýsingar,
hvað finnst þér að ég ætla að fá?
Jæja, við skulum taka a líta.
Og áður en við stökkva yfir að glugga minn,
bara veit að console.log er tegund af eins
leið til að gera prenta F í JavaScript.
En hvað er að hugga?
Jæja, það er það sem við erum að fara að fara kíkja á núna.
>> OK, þannig að við erum aftur hingað í glugga mínum,
og ég ætla að opna upp mínum verktaki verkfæri.
Aftur, ég er bara hitting F12 að opna verktaki verkfæri.
Og eftir að hér á toppur Ég hef valið vélinni.
Þannig að þetta er hugmynd forritari vélinni,
og það mun leyfa okkur að prenta upplýsingar út,
tegund af eins flugstöðinni, en eins og þú munt sjá smá seinna,
við getum líka slegið upplýsingar í að hafa samskipti við vefsíðu okkar.
Ég ætla að stækka í smá hér, og ég ætla að smella nú á fyrir prófun.
Og fjórir í test-- Ég ætla ekki að sýna þér kóðann fyrir hann núna,
en þú munt fá það ef þú sækja kóðann sem
er tengt þessari video-- er bara að leita í lykkja
sem við sáum bara sekúndu á mynd.
>> Þannig að ég ætla að smella sem hnappinn og hérna,
hér er það sem hefur prentað út í hugga, 0, einn, tveir, þrír, fjórir, fimm,
sex.
Ég vissi ekki að prenta út upplýsingar innan þessara array stöðum,
vegna þess að ég notaði í lykkju.
Og inni í líkama lykkju, ég bara prenta út takkann ekki andmælum takkann.
En ef ég hreinsa á mína vélinni, og ég skipta yfir í próf, og fjórir af próf
Ég segi að ég nota fyrir lykkju staðinn og prenta út takkann,
ef ég smelli sem, nú er ég að fá Raunveruleg atriði inni í hlut minn
eða array minn í þessu tilfelli.
Array minn virkum dögum.
Ég prenta út mánudagur, Þriðjudagur, Miðvikudagur.
Svo er það munurinn á milli a í lykkju, sem prentar út
bara takkarnir ef þú notar bara lykil inni meginmál lykkju,
og fyrir lykkju, sem prentar út gildum ef þú notar bara
lykill inni meginmál lykkju.
>> Allt í lagi, hvernig eigum við að byrja núna að concatenate strengi og kannski blanda upp
sumar breytur með brúun eins og við gátum að gera í PHP?
Jæja, við erum nokkuð kunnugur með þetta frá PHP.
Þetta er hvernig við myndum gera það með því að nota punktur rekstraraðila til concatenate strengi.
JavaScript, þó, við notum í raun eitthvað
kallað auk rekstraraðila, sem er kannski jafnvel svolítið meira
innsæi, ekki satt?
Við erum að bæta fullt af strengjum saman.
Svo skulum fara aftur yfir og sjá hvað þetta
prentar ef við erum að reyna að prenta út allar upplýsingar í viku fylkisins.
Allt í lagi, svo undir hér undir band samtenging,
Ég hef tvo valkosti, string bygging V1 og þá band bygging V2.
Og við munum sjá hvers vegna við þarf V2 í annað.
En ég ætla að smella á band bygging V1, sem
er kóðinn sem við vorum bara að taka a líta á,
sem console.log með öllum plús-merkjum.
Við skulum sjá hvort þetta framköllun hvað við búast.
>> Mánudagur er dagur númer 01 í viku, Þriðjudagur er dagur númer 11 í vikunni.
Jæja, það sem ég var að reyna að gera það var að fá
það að prenta út mánudagur er dagur númer einn, þriðjudagur er dagur númer tvö.
En það virðist eins og ég er alltaf prenta út einn.
Ja, hvers vegna er það?
Jæja, það kemur í ljós, að taka aðra líta á þessu litla runu af kóða.
Takið eftir að við erum að nota plús stjórnandi í tveimur mismunandi samhengi.
>> Og svo hér er þar kannski það sem við höfum konar verið að segja,
ó, það er svo mikill.
Við takast ekki á við gagnatög lengur.
En hér er þar sem staðreynd að við missum gagnatög
geta raunverulega vera a hluti um vandamál fyrir okkur.
Nú þegar Plus rekstraraðili er notað til að concatenate strengi og bæta símanúmerum
saman, JavaScript er að gera ágiskun sína
um hvað ég vil það að gera fyrir mig.
Og í þessu tilfelli, það giska rangt.
Það bara Concatenated dag, sem væri 0, einn, tveir, þrír, fjórir, fimm, eða sex,
og þá er það concatenated bara sem og þá concatenated einn.
Það var í raun ekki bæta þeim saman.
Og svo þessar tungumál, PHP og JavaScript,
sem Ágrip burtu Þessi hugmynd um tegund,
þú þarft ekki að takast á við það lengur.
Þeir hafa enn gerðir undir hetta.
Og við getum, við aðstæður eins og þetta, nýta þá staðreynd
með því að segja eitthvað eins og kannski þetta, sem
er að segja JavaScript, af leið, meðhöndla þetta sem heiltala,
ekki meðhöndla það eins og band, jafnvel þó að við erum að blanda saman strengi
og heiltölur hér.
>> Það er bara einn af þeim hlutum að það virðist svo mikill í samhengi
að við þurfum ekki að takast á við gerðum lengur,
en stundum þú munt hlaupa inn í aðstæður
nákvæmlega eins og þetta þar sem sú staðreynd að þú þarft ekki stjórn á gerðum
getur aukasprenging á þig ef þú ert ekki varkár.
Og svo ef við skjóta aftur yfir til IDE, ég er að fara að hreinsa út mína hugga aftur,
og ég ætla að smella band bygging útgáfa tveimur, sem
er þar sem ég nota þessi þátta int virka.
Nú er að prenta út upplýsingar sem ég er að búast við.
Dagur númer eitt Mánudagur, þriðjudagur er dagur númer tvö, og svo framvegis.
>> Svo skulum við tala um aðgerðir aftur.
Ég lofaði að við myndum tala um nafnlaus virka, og nú sett í annað samhengi sem
er loksins komin.
Svo áður en við gerum það, við skulum tala aftur um fylki fyrir bara annað.
Svo fylki eru sérstök ræða hlut.
Í raun, allt í JavaScript er í raun hlutur.
Svo virka eru sérstakt tilfelli af hlut,
heiltölur eru sérstök ræða hlut,
en fylki sérstaklega hafa ýmsar aðferðir.
Mundu því þeir eru hluti, þeir geta haft eiginleika og aðferðir.
Þeir hafa a tala af aðferðum sem er hægt að beita til að þeim hlutum.
Það er aðferð sem kallast stærð, array.size,
sem mun koma aftur til þú eins og þú might búast
fjöldi staka í fylkinu þinn.
array.pop, tegund af eins hugmynd okkar pabbi burt
stafla, ef þú manst frá Stacks vídeó okkar,
fjarlægir síðasta stakið úr fylkinu.
array.push bætir nýjum þáttum til loka fylki.
array.shift er tegund af eins DQ, samsetninga það út
the mjög fyrstur þáttur í fylki.
>> En það er líka annar sérstaka aðferð við fjölda kallast kort.
Og þetta er tegund af að áhugavert hugtak.
Svo er það hugmyndin um kort?
Þú munt í raun sjá þetta í nokkrum öðrum tungumálum,
og við erum ekki að tala um a konar sjókortagerðarmanna map hér,
við erum að tala um kortlagning virka.
Í tengslum við erum að tala um hér, kort
er sérstakt aðgerð við getur framkvæmt á fjölda
að beita tiltekinni aðgerð að sérhver þáttur þessi fylking.
og svo við myndum segja í þetta mál, kannski array.map,
og innan þess, við erum liggur í kort er fall sem við viljum
til að beita hvert einasta frumefni.
Svo það er tegund af hliðstætt með lykkju til að árétta yfir öllum þáttum
og gilda tiltekin virka til að hvert frumefni,
bara JavaScript hefur þetta innbyggður í Hugtakið kortlagningu sem hægt er að beita.
Og þetta er frábær samhengi að tala um nafnlaus aðgerð.
>> Svo skulum segja að við höfum þetta array af heiltölur.
Það er nums, og það fékk fimm hlutir í henni, einn, tveir, þrír, fjórir,
fimm.
Nú vil ég að kortleggja nokkrar virka á þessu fylki.
Ég vil hafa virka gilda að hvert frumefni fylkisins.
Jæja, við skulum segja að það sem ég vil gera er réttlátur tvöfaldur alla þá þætti.
Hvað ég gæti gert er bara að nota lykkju að Var I jafngildir 0, I er minni en
eða jafnt og 4, ég auk, plús, og þá tvöfalda hvert einasta númer.
En ég get líka gert eitthvað eins og this.
Ég get sagt nums var áður einn tveir þrír fjórir fimm,
nú, þó, myndi ég eins og þú að beita kortlagning á þessu fylki
þar sem ég vildi eins og þú að tvöfalda hvert númer.
Og það er einmitt hvað er að gerast hér.
En taka það sem ég er að brottför í sem rök að kortleggja.
Þetta er nafnlaus aðgerð.
Og eftir að ég hef ekki gefið þessi aðgerð a nafn,
Ég hef bara gefið það breytu lista.
Og svo er þetta dæmi á nafnlaus aðgerð.
>> Við almennt myndi aldrei kalla þetta virka utan tengslum við kortinu.
Við erum að skilgreina það sem viðfang að kortleggja, og svo við í raun ekki
þarf að hafa nafn fyrir það ef Það eina sem er ekki sama um er kort
og það er skilgreint í lagi það inni kortinu.
Og svo er þetta nafnlaus aðgerð.
Við höfum ekki getað til að gera þetta áður.
Kort sumir virka sem tekur einn stika, num,
og hvað það virka er er aftur Num sinnum 2.
Og svo eftir þetta kortlagning hefur verið beitt,
þetta er nú hvað nums útlit eins, tveggja, fjögurra, sex, átta, 10.
Og við munum skjóta yfir minn glugga og bara
taka a líta á þetta mjög fljótt og vel.
>> Þannig að ég hef annan hnapp hér í heimasíðu mína kallað tvöfaldur.
Og þegar ég smelli tvöfaldur, og það segir mig áður en það var einn, tveir, þrír, fjórir,
fimm eftir tveimur, fjórum, sex, átta, 10.
Og ef ég fer aftur og smella tvöfaldur aftur, tveir, fjórir, sex, átta, 10.
Og þá eftir, fjórir, átta, 12, 16, og síðan 20.
Og hvað er ég að gera í þessa aðgerð?
Jæja, ef við skjóta bara yfir IDE og Ég draga upp nafnlaus virka minn, hér
á línu sjö gegnum 13, ég er gera svolítið fínt vinna hér,
en ég ætla bara að prenta út hvað er nú í array.
Þá á línu 16, 17, og 18, það er kort mitt.
Þetta er þar sem ég er að beita þessari tvöföldun aðgerð til að hvert einasta frumefni.
Og þá aðeins lengra niður, Ég ætla bara að gera það sama
Ég var að gera áður, nema núna er ég prentun út innihald fylkisins
eftirá.
En allt sem ég hef gert hér er bara nota nafnlaus virka
að kortleggja yfir heilt fylki.
>> Svo eitt stórt atriði að tala um í JavaScript er hugmyndin um atburði.
Atburður er eitthvað sem bara gerist þegar notandi samskipti við þinn vefur
síðu, svo kannski þeir smella eitthvað, eða kannski síðu er lokið hleðsla,
eða kannski þeir hafa flutt músarbendlinum yfir einhverju,
eða þeir hafa slegið eitthvað í innsláttarreit.
Allir þessir hlutir eru viðburðir sem koma á vefsíðu okkar.
Og JavaScript hefur getu til að styðja eitthvað
kallað atburður dýraþjálfari, sem er svarhringingu virka sem
bregst við HTML atburð.
Og hvað er svarhringingu virka?
Jæja, það er yfirleitt bara annað nafn fyrir óþekktan virka.
Það er fall sem bregst við atburði.
Og þetta er þar sem við koma til Hugmyndin um bindandi ákveðnar aðgerðir
við ákveðna HTML eiginleiki.
Flest HTML þættir hafa stuðningur eiginleiki
að við ekki tala um í html video fyrir eitthvað eins og á smell
eða á sveima eða hleðslu, allar þessar atburða
sem þú getur þá skrifað aðgerðir að takast á við þá atburði
þegar þá atburði eiga sér stað á vefsíðu þinni.
>> Og svo kannski HTML þitt lítur eitthvað eins og this.
Og ég hef tvo hnappa hér, hnappur einn og hnappur tveir,
og hér er ég nú hafa skilgreint ekkert,
en þetta er þar sem eiginleiki á smellur er greinilega hluti af HTML tag mínum.
Svo virðist þegar ég skilgreina hvað er fara á inni þess eiginleika,
það er að fara að vera einhver JavaScript virka sem svarar til the atburður
væntanlega af því að smella á hnappur einn eða hnappinn tvö.
>> Hvað er góður af kaldur um þetta er að við getur skrifað almenna atburði dýraþjálfari.
Og þessi atburður Handler mun búa til atburð hlut.
Og the atburður mótmæla mun segja okkur hvaða tvo hnappa var smellt.
Nú hvernig virkar þessi vinna?
Jæja, það gæti litið eitthvað svona.
Þannig að við munum fyrst að skilgreina hnappa okkar að hafa svar við svarhringingu
virka sem verður kallað þegar smellt er á,
við munum kalla atburði viðvörun nafn.
Og taka í báðum tilvikum sem við erum liggur í þessum atburði breytu.
Svo við köllum þessa aðgerð eða þegar þessi aðgerð
er af stað með the atburður gerast, það er að fara að búa til þennan atburð hlut
og gefa það sem breytu til að láta nafn.
Og sá atburður mótmæla er að fara að geyma upplýsingar
um hver hnappur sem smellt.
Og hvernig er það að gera það?
Jæja, það gæti litið eitthvað svona.
Svo nú í aðskilið mín JavaScript skrá, gæti ég
þarft að finna þetta virka viðvörun nafn, sem
aftur tekur að atburður breytu.
Og þá er hér þar sem ég er að finna hver hnappur var kölluð,
Var kveikja jafngildir atburð punktur uppspretta þáttur.
Hvað var fengið sem skapaði þessi atburður hlut sem var samþykkt í?
Var það hnappinn einn eða var það hnappinn tvö?
>> Og þá er hér allt sem ég er að gera prenta út trigger.innerhtml.
Vel, í þessu tilfelli, í þessu samhengi, trigger.innerhtml
er bara það sem er skrifað á hnappinn.
Það gerist bara svo að ef við hoppa aftur fyrir annað, sem myndi
vera það sem er á milli þessara hnappinn tags.
Það mun vera hnappur einn eða hnappinn tvö.
Og við skulum taka a líta á hvernig þessi atburður dýraþjálfari myndi
líta út ef við hefðum það í gangi í reynd.
>> Svo fyrst af öllu, þú hefur opnaði events.js,
sem er JavaScript skrá þar Ég hef skilgreint þessa aðgerð.
Og eins og þú geta sjá, það er ansi mikið nákvæmlega hvað
við sáum bara á mynd í annað síðan.
Og ég mun fara yfir til heimasíða við höfum verið að nota.
Og ég hef hér hnappinn einn og hnappur tveir.
Og ég ætla að smella á hnappinn einu.
Þú smellir á hnappinn einu, ef þú getur séð hérna í varðbergi.
OK.
Smelltu á hnappinn tvö, þér smellt á hnappinn tvö.
>> Svo bæði hnappar hafa Sama virka símtalinu, ekki satt?
Bæði voru þau vakandi nafn atburður, en þessi atburður hlut
sem fær til þegar við smellur á það segir okkur hvaða hnappur sem smellt.
Við vildum ekki að skrifa tvö aðskilin virka eða takast á við að hafa
að fara frekari upplýsingar.
Við erum bara að treysta á hvað JavaScript verður
gert fyrir okkur, sem er að búa til þessi konar atburður hlut í okkar þágu.
There 'a einhver fjöldi fleiri til JavaScript en það sem við höfum fjallað í þessu myndbandi,
en hafa þessir grundvallaratriði ættir að fá þér
alveg langar leiðir að læra allt sem þú munt
þarft að vita um þetta áhugavert tungumál.
Ég er Doug Lloyd.
Þetta er CS50.