[Predvaja glasba] Doug LLOYD: Torej, do sedaj smo stari pros na spletnem programiranju, kajne? In smo zajeti več jeziki v posameznih video posnetkov. In zdaj naredimo še eno, JavaScript. Najprej dobra novica, JavaScript je sodoben programski jezik, podobno kot so PHP, katere sintaksa izhaja iz C, tako da je dober kraj za začetek. To je približno tako stara kot so PHP, kot tudi, ki je bila približno približno 20 let. Bilo je izumil okoli v istem času, kot je PHP. In JavaScript je pravzaprav zelo temeljnega pomena za uporabniško izkušnjo spleta. Dejstvo je, da so trije jeziki, ki sem bi rekel, neke vrste, ki sestavljajo uporabniška izkušnja interakcije s spletno stranjo, html, css in JavaScript. In tako zdaj pa talk malo o JavaScript. Slaba novica, čeprav z JavaScript je da postavlja veliko pravil zase, nato pa jih zlomi. In JavaScript lahko dejansko vrste izziv, da se naučijo, ker je za razliko od C in PHP, ki so zelo strukturiran in imajo zelo toga pravila za to, kako lahko stvari delujejo. JavaScript je vrsta od gotten tako prilagodljiv da morda stvari se ne bo deluje tako, kot smo jih pričakovali, da, in morda res ne morejo naučiti naš prvi programski jezik kot JavaScript. Mogoče zato, ker ne sama vsa pravila določena, in to v resnici ne uveljavljanje dobrih kodirane navade. Ampak zdaj smo upajmo razvili nekaj dobrih kodiranje navade, in tako lahko začnemo plenilec v JavaScriptu malo. Če želite napisati JavaScript, podobno odprtino up datoteko C z dot razširitev C ali datoteko PHP z razširitvijo dot PHP, vse, kar morate storiti, je odpreti datoteko s piko js končnico datoteke. Mi ne potrebujemo, da imate kakršne koli posebne Ločila, kot smo to storili v PHP. Da nekako pod kotom Nosilec vprašaj PHP da smo navajeni od tiste, na način, povemo naš brskalnik, da je tisto, kar imamo JavaScript je z vključitvijo je v html tag, in bomo videli malo o kako to storiti v samo trenutek. Druga stvar, ki naredi JavaScript različni, čeprav, je, da teče strani odjemalca. Tako opozarjajo, s PHP, ki smo lahko nikoli zares videli PHP, ki je poudaril, spletne strani. Če bomo kdaj ogledov Stran vir, bi le mi glej html, ki je bil jih ustvari ta PHP. Ampak JavaScript teče strani odjemalca. Tvoj JavaScript teče na vašem računalniku. In to je, zakaj lahko narediš Stvari radi dodali blokatorji. Prav? Blokiranje oglasov se običajno opravi z ubijanje vseh JavaScript ki se izvaja na posebno spletno stran. In ker bi morali teče na vašem računalniku odjemalca strani lahko samo ustaviti JavaScript za vožnjo v celoti. To tudi pomeni, da je, ko uporabljate spletna stran, ki vsebuje JavaScript, morate poslati vir JavaScript Koda kot del vašega http odgovor za stranko, ko jo zahteva. In tako morda ne želite uporabiti JavaScript narediti res občutljivih stvari kot poteka informacij o gesel uporabnikov in nazaj naprej, ker oni so dejansko bodo prejeli vse izvorne kode, ne samo html, ki je ustvarjena, kot bi se zgodilo z recimo PHP. Torej, kako bomo vključiti JavaScript v našem html začeti s? No, podobno kot CSS, pravzaprav, je nekako, kako to počnemo tukaj. Z CSS imamo slog oznake. In znotraj teh slogovnih oznak, moremo opredeliti CSS slogi je. Podobno je z JavaScript Lahko se nam odpirajo skriptne oznake, en html tag nismo govoriti v našem html video, in pisati JavaScript v med temi scenarij oznakami. Prav tako, čeprav, kot so CSS, smo bi lahko povezali v zunanji CSS datotek in jih povlecite v naš program, ki način. Z CSS smo lahko tudi, oprostite, z JavaScript lahko določite tudi vir atribut script tag povezati v JavaScript ločeno, tako da vam ne morali pisati v med scenarija tags smo Lahko ga povežete z uporabo da skript priponka dobro. In tako kot pri primeru z CSS, kjer je priporočamo, da je verjetno v vašem najboljšem interesu, da napišete tvoj CSS v ločeni datoteki, v primeru morate spremeniti, podobno storiti priporočamo da napišete JavaScript v ločenih datotekah in uporabite vir script oznak pripisovati tie vaš JavaScript v svoj html, svojo spletno stran. Torej JavaScript spremenljivke, bomo začeli govoriti o skladnji tukaj. In bomo šli skozi ta vrsta hitro, ker smo to storili v PHP, tako To bi morali biti precej pozna. Torej spremenljivke v JavaScriptu so Zelo podobna PHP spremenljivke. Ni tip določilo, in ko uvedejo spremenljivko, jo predpono z var ključno besedo. V PHP bi naredili nekaj kot je ta, znak za dolar x. To je, kako smo navedli spremenljiva, vendar ne bomo ne omenjam tip spremenljivke sploh. Mi bi rekli nekaj podobnega znak za dolar x enaka 44 v PHP. Če smo bili početje ista stvar v JavaScript, bi rekli var x enaka 44. Torej var je nekako naše poti uvedbe spremenljivko. To je morda malo bolj intuitivna kot le znak za dolar spremenljivko. Še enkrat, saj ni tipi podatkov, da bi lahko to storite s katero koli vrsto podatkov, nizi, karkoli drugega, bi bili vsi var. Pogojniki, vse naše stari prijatelji iz C in PHP so še vedno na voljo, tako da imamo, če else if, drugega, stikalo in vprašanje znamka kolona. Stikalo Preostali tako prilagodljiv kot to je bil v PHP, ampak vse to ste seznanjeni z do sedaj. In podobno, pa so zanke stare favorite iz časa, storite nekaj časa, in še vedno na voljo za nas. Tako že vemo, veliko od Osnovna JavaScript vrsta temeljev samo na podlagi, ki ima zelo malo znanja zdaj o C in PHP. Kaj funkcij v JavaScript? No, podobno PHP vsaka funkcija je uveden s funkcijo ključno besedo. Pravite funkcijo, nato pa vas začeli definirati svojo funkcijo. Kaj je malo drugačna o JavaScript, čeprav je zmožnost, da ima kar se imenuje anonimni funkcija. Torej lahko določite funkcije da nimajo ime. To je nekaj, kar smo Res niso videli prej. Bomo res uporabljajo koncept od anonimnega funkcije malo kasneje v tem video, saj bom bi malo bolj smiselno v kontekstu ko smo ga videli v določeni situaciji da sem tukaj zvijača. Ampak kaj je samo da si ogledate na kateri preprost JavaScript Funkcija bi izgledal. Tako sem šel naprej in odprla svoj CS50 IDE in sem že teče Apache da začne svoj strežnik teče. In imam to datoteko Odpri imenuje Home.html. In bom povečate malo tukaj. In v bistvu, lahko vidite Home.html je samo kup gumbov. In jaz sem trdila na vrhu tukaj da je ta odsek JavaScript materiali. Torej, tam je kup gumbov tukaj, ampak kaj ti gumbi dejansko naredil? No, bomo nad glavo, da moje IED, in sem Home.html odpreti tukaj. Na samem začetku, Tukaj je, kjer sem povezavo v vseh mojih JavaScript izvornih datotek. Prav? Torej imam anonymous.js, clock.js, Jaz sem z izvorno atribut skripta tag povezati v datoteki. Torej nisem napisal koli JavaScript neposredno v tej datoteki, vendar sem potegnil v vseh JavaScript sem napisal ločeno. In če smo se pomaknite dol, to vsi bi morali videti nekoliko seznanjeni z malo nove sintakse. Imamo tukaj header tag za funkcije in nato gumb. Imam vhod, ki je gumb tipa, in očitno, ko sem ga kliknite, Bom poklical nekaj delovati opozorilno datum. In to je, kako bomo lahko nekako pomešajo malo JavaScript in HTML. Dejansko igrajo zelo lepo skupaj, in tako očitno, ko I kliknite na ta gumb, da bom poklicati nekaj datum opozorilno funkcijo. In podobno se nisem opredeljena vedenje Za vse druge tipke, da so na tej strani home.html, ki bomo vedno znova vračali da med tem videu. Ampak pojdimo nazaj gor tukaj in si oglejte pri clock.js, ki je Datoteka JavaScript, da sem zapisal, da je to prvo funkcijo bomo si oglejte. Kot lahko vidite, sem začel svoj JavaScript delovati s funkcijo za ključne besede, in sem dal tale ime, je pozval opozorilo datum. Znotraj tam, sem očitno ustvariti nova lokalna spremenljivka imenovan trenutni datum. In bom dodeliti enako na nov dan. In bi lahko dobili v veliko Podatek o tem, kaj je datum, in res JavaScript je tako velik, da ne moremo morebiti zajema vse, kar je v enem videu. Ampak je dovolj reči, to se dogaja da se vrnete zame podatek, da je povzema trenutni datum in čas. Jaz shranjevanje, ki v spremenljivko, da sem očitno gre za opozarjanje trenutni datum. No, kaj počne opozorilo trenutni datum izgledal? Oglejmo pogled na same datoteke nazaj čez v oknu brskalnika. Torej še enkrat, to je gumb, ki sem so vezani, s tem imenom funkcijo. In sem jo kliknite tam in poglej, kaj je storil, je opozoril. Je izstrelil te vrste škatle pove me, da je sedanji čas, očitno to je 4. november ob 10:43:43 zjutraj. In če sem ga znova kliknite, zdaj to je le nekaj sekund kasneje, kajne? Tako, da je vse to funkcijo ne. Ko sem kliknite ta gumb, da pops up opozorilno sporočilo, da me. Torej je res ni preveč funkcij ki je drugačna od PHP, samo malo nove sintakse ki prihaja z dela z JavaScriptom. Polja v JavaScriptu so precej preprosta. Naj ugotovi vrsto, uporabite sintakso oglati oklepaji da smo seznanjeni z od PHP. In podobno PHP, smo Prav tako lahko mix podatkovnih tipov. Torej, ta niz, tako teh nizi bi popolnoma legitimno JavaScript. Ena, ki je vsa cela števila, in tisti, ki je pomešal različne podatkovne tipe. Kaj je nekaj zelo drugačna v JavaScript, čeprav? To je pojem objekta. Torej, morda ste že slišali za objektno usmerjenega programiranja. Tega ne počnemo veliko od tega v CS50, vendar bomo storili malo njega tu v okviru JavaScript. Sedaj JavaScript je sposoben obnašajo kot objektnega programiranja jezik, vendar ni sama izključno predmet usmerjen programski jezik. In to spet prihaja nazaj, zakaj sem rekel, da je lahko zelo zahtevno, da se naučijo JavaScript kot vaš prvi programiranje jezik, ker ne res fit posebno paradigmo. C na drugi strani pa je funkcijski programski jezik. Če želimo, funkcije nekako big boss človeka, kajne? Ti narekujejo, kaj zgodi vse ostalo. Želimo spremeniti spremenljivke, pravimo funkcij. Počnemo stvari funkcij. Namesto nasprotuje, v objektno usmerjen jezik, predmeti nekako postala zvezda in funkcije postanejo nekako drugotnega pomena. Toda kaj je predmet, kaj je ta pojem objekta? No, če to pomaga, mislim, o tem na prvem vrste podobnega strukturo C ali struct da smo spoznali prej. V C, struktura vsebuje številnih področjih, in morda smo zdaj lahko začne pokličite teh področjih lastnosti. Toda lastnosti nikoli zares stati na svoje, kajne? Če sem opredeliti strukturo za avto kot je ta z naslednjih dveh polja ali lastnosti, ena an celo za leto avtomobila in ena 10 karakter Niz za model avtomobila, Lahko rečem kaj takega, Jaz lahko razglasi novo spremenljivko tipa struct avtomobila Herbie. In potem lahko rečem nekaj kot herbie.year enaka 1963, in herbie.model enaka Beetle. To je ok. Jaz sem z uporabo polja v kontekst strukture, ampak jaz nikoli ne bi samo reči kaj takega. Prav? Ne morem uporabljati ime polja neodvisno od strukture. To je neke vrste temeljno stvar. Torej polja pa Temeljna struktur C so zelo podobne lastnosti čemer temeljnega pomena za JavaScript predmetov. Toda kaj jih naredi posebej zanimiva je, da lahko imajo tudi predmeti kaj se imenujejo metode, ki so res samo fancy beseda za funkcije, ki so neločljivo povezana s predmetom, kot dobro. Tako da je funkcija, ki je lahko le imenovana v okviru predmeta. Samo predmet, ki je opredeljena ta funkcija znotraj ITS, Če menite, da približno struct, funkcija je definiran znotraj tiste, ki določajo zaviti oklepaji konstrukcije. Torej to pomeni le nekaj strukture. In to je nekako tisto, kar delamo tukaj s predmeti in metod. To je v bistvu, kot da smo opredeljuje funkcijo, ki smiselna le na zlasti predmet, in tako smo klic, da postopku objekta. In mi nikoli ne more poklicati, da Funkcija neodvisna od objekta, tako kot ne moremo reči, leto ali modela neodvisno od struct v C. Torej funkcionalno programiranje paradigme izgledala nekako takole. Funkcija in potem, ko se boste peljali v predmeta kot parameter. V objektnega programiranja jeziki, to nekako dobi zrcaljeno, in mi bi razmišljati o je všeč to, object.function. Torej je nekako ta pika Operater spet kar pomeni, da je to neke vrste nepremičnin ali atribut predmeta samega. Ampak to je tisto, kar je predmet usmerjen programski jezik lahko storili, da bi funkcijo pokličite na metodi, še enkrat, ki je prav posebno beseda za funkcijo ki je neločljivo povezana s predmetom. To je tisto, ki sintaksa bi izgledal. In tako bomo začeli videti nekaj to v kontekstu JavaScript. Lahko tudi razmišljati o predmetu nekako kot asociativni array, ki smo seznanjeni z od PHP. Zapomni asociativno paleto omogoča nas, da imajo ključne parov vrednosti, namesto imajo indekse 0, ena, dva, tri, in tako naprej, kot smo navajeni od C nizi. Asociativne nize lahko zemljevid Besede, kot so v PHP video, smo govorili o prelivi za pice. In tako smo imeli niz imenovane pice, in smo imel sir je bil ključen in 8,99 $ je bil vrednost, nato pa feferoni bila ključna, 9,99 $ je vrednost, in tako naprej. In tako smo lahko tudi razmišljati o ugovarja nekako podobna asociativnega matrika. In tako je ta sintaksa tukaj bi ustvarite nov predmet imenuje herbie z dvema lastnosti znotraj nje. Leto, ki je določena z vrednostjo 1963, in model, ki je dodeljen niz Beetle. In opazila sem, da sem s pomočjo enojni narekovaji v JavaScript. Lahko uporabite enojne ali dvojne narekovaje ko govoriš o strune. To je samo konvencionalno v primeru, da je večina krat Ko pišete JavaScript, samo uporabite enojne narekovaje. Vendar sem lahko uporabite dvojne narekovaje tukaj, in da bi bila popolnoma v redu, kot tudi. Torej, ne pozabite, kako v PHP smo imeli ta pojem od A za vsako zanko, ki bi nam omogoči Ponovil čez vse ključne vrednosti pari z društvenim matrika, ker smo niso imeli te možnosti za ponovitev z 0, ena, dva, tri, štiri, in tako naprej? JavaScript je nekaj zelo podobnega, vendar je ne imenuje za vsako zanko, to se imenuje v zanke. Torej, če sem rekel, da mi je všeč to, za var ključ v objektu, to je nekako podobno rekel za vsakega nekaj, kot nekaj. Toda vse delam tukaj je iterating skozi vse tipke mojega objekta. In notranjost Curly naramnice tam, jaz bi uporaba objektno oglatih oklepajih ključ sklicevati na vrednosti v tem ključnega lokaciji. Druga možnost je, da je tudi drugačen pristop. Če sem mar le približno vrednosti, lahko rečem za ključ objekta, in samo s tipko v notranjosti. Torej za var ključ v objektu, imam za uporabo objektov oglatih oklepajev Ključ notranjosti zanke. Za var ključ objekta, sem lahko Samo uporabite tipko znotraj zanke, ker sem samo posebej govorimo o vrednotah tam. Torej, kaj je morda trajalo pogled na razliko samo da hitro vam pokažem razlika med štiri v in iz z zelo specifično matrika, ki smo tukaj, teden matrika. Torej moram najti novo paleto da sem napolnjena s sedmimi strunami, Ponedeljek, torek, sreda, Četrtek, petek, sobota, nedelja. In želim, da zdaj Ponovil s tem polju, tiskanje določene informacije. Če sem uporabljate v zanki natisniti informacije, kaj misliš, da bom dobil? No, poglej. In preden smo skok čez do mojega okna brskalnika, samo vem, da console.log je nekako ena način za početje tiskanja F v JavaScript. Toda kaj je konzola? No, to je tisto, kar bomo iti, da pogled na zdaj. OK, tako da smo spet tukaj v mojem oknu brskalnika, in bom odpreti do mojih razvojnimi orodji. Še enkrat, jaz sem samo udaril F12 odpirati orodja za razvijalce. In opazil, da je tu v top sem izbral konzolo. Torej je ta pojem od razvijalca konzole, in to nam bo omogočilo, da tiskati informacije ven, nekaj podobnega terminala, vendar kot boste videli malo kasneje, bomo lahko tudi vnesete podatke v interakcijo z naše spletne strani. Jaz grem za povečavo malo tu, in bom zdaj kliknite na v testu. In štiri v test-- ne bom vam pokažem kodo za to prav zdaj, ampak ga boste dobili, če boste prenesete izvorno kodo, ki je povezana s to video-- je le, da je v zanko da smo videli samo Druga nazaj na slide. Torej bom klik, da je gumb, in tukaj, tukaj je, kaj se je izpisal v naslon, 0, ena, dva, tri, štiri, pet, šest. Nisem izpisati podatke znotraj teh polj lokacijah, ker sem uporabiti v zanko. In v notranjost telesa zanke, sem Samo izpisal ključ ne nasprotuje tipko. Ampak, če sem zdaj zbistriti konzolo, in jaz preklopite na za test, in štiri test Rečem uporabiti za zanke namesto tega in izpisal ključ, če sem kliknite, da zdaj jaz sem pridobivanje dejanski elementi znotraj mojega predmeta ali je moja matrika v tem primeru. Moj array teden dni. Jaz natisne ponedeljek, Torek, sreda. Tako, da je razlika med A za v zanko, ki natisne samo tipke, če ste jo pravkar uporabljate ključ notranjost telesa zanke in za zanke, ki tiska od vrednosti, če uporabljate le Ključ notranjost telesa zanke. Vse je v redu, kako bomo zdaj začeli združevanje nizov in morda pomešajo nekatere spremenljivke z interpolacijo kot smo bili sposobni narediti v PHP? No, mi smo precej seznanjeni s tem od PHP. To je, kako bi to naredil z uporabo dot operator za združevanje nizov. V JavaScript, čeprav, smo dejansko uporabili nekaj imenuje operator plus, ki je morda celo malo bolj intuitivno, kajne? Mi smo dodajanjem kup nizov skupaj. Torej vrnimo nazaj znova in videli, kaj je to bo izpisal, če smo poskušali, da natisnete vse informacije v tednu matriki. Vse je v redu, tako da v skladu s tukaj pod niz združevanje, Imam dve možnosti, niz stavba V1 in nato niz zgradba V2. In bomo videli, zakaj smo potrebujejo V2 v sekundi. Ampak bom kliknite na Niz zgradba V1, ki je koda smo tik ob poglej, console.log z vsemi pluse. Poglejmo, če te tiska izvedeti, kaj pričakujemo. Ponedeljek dan številka 01 v tednu, Torek je dan številka 11 tednu. No, kaj sem bil težaven storiti prišlo dobili ga natisniti ponedeljek dan številka ena, torek je dan številka dve. Toda zdi se, kot da sem Vedno tiskanje enega. No, zakaj je to? No, se izkaže, še enkrat pogledati na ta mali košček kode tukaj. Opazimo, da smo s tipkami plus operater v dveh različnih kontekstih. In tako da tukaj je, kjer morda stvari da smo nekako že rekel, oh, to je tako super. Mi se ne ukvarjajo s podatkovnimi tipi več. Ampak tukaj je, kjer je dejstvo, da smo izgubili podatkovnih tipov lahko dejansko malo problem za nas. Zdaj, ko je upravljavec plus se uporablja za združevanje nizov in dodate številke skupaj JavaScript je narediti svoje najboljše ugibati glede tega, kaj želim, da bi naredil zame. In v tem primeru, je uganil narobe. Samo sestavljenim dan, kar bi bilo 0, ena, dva, tri, štiri, pet ali šest, in potem to združena z verigo da nato združena z verigo eno. To pa jih dejansko ne seštevajo. In tako ti jeziki, PHP in JavaScript, da abstrahira stran ta pojem vrste, vam ni treba ukvarjati z njo več. So pa še vedno vrst pod pokrovom. In smo lahko v razmerah, kot je ta, izkoristite to dejstvo z besedami, kaj kot je morda to, kar je povedal JavaScript, z Tako to obravnava kot celo število, ga ne obravnava kot niz, celo čeprav smo mešanje skupaj strune in cela tukaj. To je samo ena od tistih stvari da se zdi tako velika, v okviru da mi ne bi bilo treba ukvarjajo z vrstami več, ampak včasih boste vodijo v situacijo natanko tako kot to, če je dejstvo, da nimate nadzora nad vrstami lahko Nazaj prižiganje na vas če niste previdni. In tako, če bomo pop nazaj čez do IDE, sem bo spet počistiti mojo konzolo, in grem, da kliknete niz Različica dva, ki je, če sem uporabljati to funkcijo razčleniti int. Zdaj je tiskanje informacije, da sem pričakoval. Ponedeljek dan številka ena, torek dan številka dve, in tako naprej. Torej, kaj je spet govoril o funkcijah. Obljubil sem, bomo govorili o anonimni funkcije, in zdaj kontekst, ki je končno prišel. Torej, preden bomo to storili, kaj je govoril zopet o nizi za samo sekundo. Torej, nizi so posebna V primeru objekta. V bistvu, vse v JavaScript je pravzaprav predmet. Torej funkcije so Poseben primer predmeta, cela števila so posebna V primeru objekta, vendar nizi posebej imajo številne metode. Ne pozabite, ker oni so predmeti, imajo lahko lastnosti in metod. Imajo številne metode, ki Uporabijo se lahko na te predmete. Obstaja metoda, imenovana velikost, array.size, ki se bo vrnil na ste, kot ste morda pričakovali število elementov v matriki. array.pop, nekako tako kot naš pojem popping off kupu, če se spomnimo iz naše Stacks video, odstrani zadnji element iz matrike. array.push dodaja nov element do konca matrike. array.shift je nekako kot DQ, da spoji ven zelo prvi element matrike. Ampak tam je tudi ena posebna metoda niz se imenuje zemljevid. In to je neke vrste zanimiv koncept. Torej, kaj je ideja o zemljevidu? Boste dejansko videli to v več drugih jezikih, in mi ne govorimo o nekako kartografov karto tukaj, govorimo o odvisnosti kartiranja. V kontekstu smo tu govoriš, zemljevid je posebna operacija smo lahko opravljajo na paleto uporabiti določeno funkcijo za vsak element tega polja. in tako bi lahko rekli v V tem primeru, morda array.map, in znotraj nje, smo mimo na karti je funkcija, ki ga želimo ki se uporablja za vsak posamezen element. Torej, to je nekako analogno uporabo zanka za ponovitev čez vsak element in se uporablja posebna delovati na vsakem elementu, Samo JavaScript je to vgrajeno Pojem kartiranja, ki se lahko uporabljajo. In to je odličen okvir za govorimo o anonimni funkcijo. Torej, recimo, da imamo ta množica celih števil. Imenuje nums, in je dobil pet stvari v njem, ena, dva, tri, štiri, pet. Sedaj želim karto nekaj funkcija na tem polju. Rad bi imel funkcijo uporabiti za vsak element matrike. No, recimo, da je tisto, kar želim storiti je samo dvojno vseh elementov. Kaj lahko storim je le uporabiti zanko za var I enak 0, I je manj kot ali enako 4, sem plus plus in takrat podvojilo vsako posamezno številko. Ampak ne morem narediti tudi kaj takega. Lahko rečem nums je bil prej ena dva tri štiri pet, zdaj, čeprav, jaz bi vas rad uporablja preslikavo na tem polju če bi vas rad podvojilo vsako številko. In to je točno kaj se dogaja tukaj. Ampak obvestilo, kaj sem mimo v kot argument na zemljevid. To je anonimna funkcija. In opazila nisem dal ta funkcija ime, Sem mu dal samo seznam parametrov. In tako je to primer od anonimnega funkcije. Smo na splošno ne bi nikoli to imenujemo Funkcija izven konteksta zemljevidu. Mi smo jo opredeljuje kot parameter zemljevid, in tako smo v resnici ne morajo imeti ime za to, če Edina stvar, ki skrbi je map in to je opredeljena pravica obstaja znotraj zemljevida. In tako je to anonimno funkcijo. Nismo bili sposobni to storiti že prej. Zemljevid nekatere funkcije, ki sprejema enega parametra, num, in kaj ta funkcija ne se vrne num krat 2. In tako po tem je bil uporabljen kartiranje, to je zdaj kaj nums videz podobno, dve, štiri, šest, osem, 10. In bomo pop v mojo okno brskalnika in samo poglej na to res hitro, kot tudi. Torej imam drug gumb tukaj V moji domači strani imenuje dvojno. In ko sem kliknite dvojna, in to pove mi preden je bila ena, dva, tri, štiri, pet po dva, štiri, šest, osem, 10. In če grem nazaj in kliknite double Ponovno, dve, štiri, šest, osem, 10. In potem po štiri, osem, 12, 16, in nato 20. In kaj počnem v tej funkciji? No, če smo samo pop prenesejo IDE, in Sem dvigni mojo anonimno funkcijo, tu na liniji sedem do 13 let, da sem početje malo fancy delo tukaj, ampak jaz sem samo tiskanje kaj je trenutno v matriki. Nato na liniji 16, 17, in 18, tam je moja karta. To je, če sem uporabo tega podvojitev funkcija za vsak posamezen element. In potem še malo navzdol, Jaz sem samo počne isto stvar Sem delal prej, razen zdaj sem tiskanje vsebino matrike zatem. Ampak vse tukaj sem naredil, je samo uporabo anonimnega funkcijo zemljevid čez celotno paleto. Torej, še ena velika tema za pogovor o v JavaScript je pojem dogodka. Dogodek je nekaj, kar se zgodi le ko uporabnik komunicira z vašo spletno stran, tako da morda pa kliknite nekaj, ali pa je stran naložena, ali pa ste se preselili njihova miško nad nečim, ali oni vnesli nekaj v vnosno polje. Vse te stvari so dogodki ki se pojavljajo na naši spletni strani. In JavaScript je sposobnost za podporo nekaj imenuje dogodek trener, ki je funkcija za povratni klic, ki odziva na html dogodka. In kaj je funkcija za povratni klic? No, to je v glavnem samo še en ime za anonimno funkcijo. To je funkcija odziva na dogodek. In to je, če smo prišli do Ideja o zavezujočih določenih funkcij na določeno html atributa. Večina elementov html imajo podpora za atribut da nismo govorili o v html video nekaj podobnega na klik ali na lebdenje ali obremenitve, vse te dogodke da lahko potem napišite funkcije ki se ukvarjajo s temi dogodki ko te dogodke pojavijo na vaši spletni strani. In tako morda vaš html izgleda nekako takole. In imam dva gumba tukaj, Gumb ena in dva gumba, in tukaj imam trenutno opredeljena nič, ampak to je, če atribut klik je očitno del mojega html tag. Torej, očitno, ko sem opredeliti, kaj je dogaja znotraj tega atributa, to se dogaja, da se nekateri JavaScript funkcijo, ki se odziva na dogodek domnevno z klikom na Gumb en gumb ali dva. Kaj je nekako kul je to smo Lahko napišete generični dogodek trener. In ta dogodek Handler bo ustvariti dogodek predmeta. In nam bo dogodek predmet povej kateri od teh dveh gumbov je kliknil. Zdaj pa, kako to deluje? No, morda je videti nekako takole. Tako bomo najprej opredeliti svoje gumbe da imajo odgovor na povratni klic funkcijo, ki se bo imenovala ko je gumb kliknili, bomo klic dogodek opozorilno ime. In opazil, v obeh primerih sva poteka na tem dogodku parameter. Torej pravimo to funkcijo ali ko je ta funkcija se sproži dogodek dogaja, to se dogaja, da ustvarite ta dogodek predmeta in ga prenese kot parameter za opozarjanje ime. In ta dogodek objekt dogaja, da vsebujejo informacije o katerih je gumb kliknili. In kako to storiti? No, morda je videti nekako takole. Torej, zdaj je moja ločena Datoteka JavaScript, da bi lahko morali najti to Funkcija opozarjanja ime, ki spet sprejema ta dogodek parameter. In potem je tu, kjer sem zaznavam kateri gumb je sprožil, var sprožilec enak dogodek pika element vira. Kaj je bil vir, ki je ustvaril Ta dogodek je objekt, ki je bil sprejet leta? Bila je Gumb ena ali pa je gumb za dva? In potem tukaj vse kar počnem, je tiskanje trigger.innerhtml. No, v tem primeru v tem kontekst, trigger.innerhtml je samo tisto, kar je napisano na gumb. Samo tako se zgodi, če skočimo nazaj za sekundo, bi, da to, kar je med temi gumb oznakami. To bo gumb en gumb ali dva. In dajmo si oglejte kako bi ta dogodek trener poglej, če bi imeli to deluje v praksi. Torej, najprej, ste odprle events.js, ki je datoteka JavaScript kjer Imam definirana to funkcijo. In kot lahko vidite, da je precej točno to, kar smo pravkar videli na slide drugi nazaj. In bom šel čez na Domača stran smo bili z uporabo. In tukaj imam gumb ena in dva gumba. In bom kliknite na gumb enega. Ste kliknili na gumb eno, če vas vidim tukaj v razpisu. V REDU. Kliknite na gumb dveh, vas kliknili na gumb dveh. Torej, obe tipki imajo Enako klic funkcije, kajne? Prav tako je bilo opozorilo ime dogodek, vendar je ta dogodek objekt da dobi ustvarili, ko smo kliknite na to nam pove, kateri gumb je kliknil. Nismo imeli napisati dveh ločenih funkcije ali se ukvarjajo z ob da prenese vse dodatne informacije. Mi samo zanašajo na kar JavaScript bo narediti za nas, ki je ustvariti, da nekako dogodkovnega objekta v našem imenu. Tam je veliko več za JavaScript kot kaj smo zajeti v tem videu, vendar imajo ti Temeljna naj bi dobil precej dolgo načini za učenje vse, kar boste morate vedeti o tem zanimiv jezik. Sem Doug Lloyd. To je CS50.