[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.