[Muzikos grojimo] Doug LLOYD: Taigi dabar mes metai Argumentai "už" at interneto programavimo, tiesa? Ir mes apėmė kelis Kalbos atskirų vaizdo įrašus. O dabar padarykime dar vieną, "JavaScript". Pirma gera žinia, "JavaScript" yra modernus programavimo kalba panašiai kaip PHP, kurio sintaksė yra kilęs iš C, taip, kad gera vieta pradėti. Tai maždaug tiek pat senas, kaip PHP, taip pat, buvo maždaug apie 20 metų. Jis buvo išrastas maždaug tuo pačiu metu kaip PHP. Ir Javaskriptą iš tiesų yra gana esminis vartotojo patirtį iš interneto. Iš tiesų, yra trys kalbos, kad aš sakyčiau tarsi sudaro vartotojo patirtį bendrauja su svetaine, HTML, CSS ir "JavaScript". Ir todėl dabar Pakalbėkime Šiek tiek apie "JavaScript". Bloga naujiena, nors su JavaScript kad jis nustato taisykles daug už save, ir tada ji sugenda juos. Ir Javaskriptą iš tikrųjų gali būti rūšies sudėtinga išmokti, nes jis, skirtingai nei C PHP, kurie yra labai struktūriškai ir turi labai griežtas taisykles kiek dalykų gali dirbti. JavaScript yra natūra iš Dotarłeś tiek lankstus kad gal ne viskas, kad dirbti taip, kaip mes tikimės, kad jie, o gal mes tikrai negali mokytis mūsų pirmasis programavimo kalba kaip JavaScript. Tai gal, nes ji neturi nusibrėžė bet taisyklės, ir tai tikrai ne vykdyti gerus kodavimo įpročius. Bet dabar mes tikimės sukūrė gerų kodavimo įpročius, ir todėl mes galime pradėti įsiveržimas į JavaScript truputį. Norėdami rašyti JavaScript, panašus į atidarymo iki C failą su dot C pratęsimo arba PHP failą su dot PHP išplėtimas, viskas, ką reikia padaryti, tai atverti failą su DOT js failo plėtinys. Mums nereikia turėti jokios specialios separatoriai, kaip mes padarėme PHP. Šis kampas Rūšiuoti laikiklis klaustukas PHP kad mes įpratę prie to, beje mes pasakyti mūsų naršyklę, kad tai, ką mes turime, yra JavaScript įtraukiant jį į HTML tegus, ir mes pamatyti šiek tiek apie Kaip padaryti, kad vos akimirką. Kitas dalykas, kuris daro JavaScript skirtingi, nors tai, kad ji veikia kliento pusėje. Taigi prisiminti, kad su PHP mes niekada iš tikrųjų galėtų matyti PHP kad pabrėžė svetainėje. Jei mes kada nors peržiūrėtas puslapis šaltinis, tik mes būtume pamatyti html, kad buvo generuoja, kad PHP. Bet Javaskriptą veikia kliento pusėje. Jūsų "JavaScript" veikia jūsų kompiuteryje. Ir štai kodėl jūs galite padaryti Dalykų, pavyzdžiui, pridėti blokatorius. Teisė? Reklamos blokavimas paprastai daroma žuvo visi JavaScript kad veikia tam tikroje svetainėje. Ir dėl to, ji turėtų paleisti savo mašina kliento pusėje galite tiesiog sustabdyti JavaScript veikia visiškai. Tai taip pat reiškia, kad kai jūs naudojate svetainė, kuri apima JavaScript, Jūs turite nusiųsti JavaScript šaltinį kodas, kaip dalį savo atsakymo HTTP klientui, kai jie prašo ją. Ir taip jūs negalite norite naudoti JavaScript padaryti tikrai jautrius dalykus kaip einančios informacijos apie vartotojų slaptažodžiai ir atgal pirmyn, nes jie iš tikrųjų vyksta gauti visą kodą, ne tik HTML kuri yra generuojama, pvz būtų tuo atveju, tarkim PHP. Taigi, kaip mes apimti JavaScript mūsų html pradėti? Na, panašus į CSS, iš tikrųjų, yra tarsi kaip mes jį čia. Su CSS turime stiliaus žymes. Ir viduje tų stiliaus žymių, mes galime apibrėžti CSS stilių. Panašiai su JavaScript mes galime atverti scenarijų žymes, kitas HTML tegus mes ne kalbėti apie mūsų html vaizdo, ir rašyti JavaScript tarp šių scenarijų žymes. Taip pat, nors, pavyzdžiui, CSS, mes gali susieti į ne CSS failus ir traukti juos į mūsų programą, kad taip. Su CSS mes galime taip pat, atsiprašau, su JavaScript mes taip pat galime nurodyti šaltinį atributas scenarijų žymę susieti JavaScript atskirai, todėl jums nereikia turi parašyti jam tarp scenarijaus žymeles, mes gali susieti jį naudojant kad scenarijų žyma, taip pat. Ir kaip su atveju su CSS kur mes rekomenduojama, kad tai tikriausiai buvo geriausia jūsų labui rašyti CSS atskirame faile atveju jums reikia jį pakeisti, Panašiai mes rekomenduojame parašykite savo JavaScript atskirus failus ir naudoti scenarijų žymės šaltinį priskirti tie jūsų "JavaScript" į savo HTML, savo interneto puslapyje. Taigi JavaScript kintamieji, mes pradėti kalbėti apie sintaksę čia. Ir mes eiti per tai greitai natūra, nes mes tai padarė PHP, todėl visa tai turėtų būti gana pažįstamas. Taigi kintamieji JavaScript yra labai panašus į PHP kintamieji. Nėra tipas specifikatorius ir kai jūs įdiegti kintamąjį, Jūs priešdėlis jį su var raktinį žodį. PHP mes kažką daryti kaip tai, dolerio ženklas x. Štai kaip mes nurodyta kintamasis, bet ne, mes nemini tipą kintamojo ne visiems. Norime pasakyti kažką panašaus dolerio ženklas x lygus 44 PHP. Jei mes buvome daro Tas pats JavaScript, sakytume var x lygus 44. Taigi var yra tarsi mūsų kelyje įvesti kintamąjį. Štai galbūt šiek tiek paprastesnis ne tik dolerio ženklas kintamąjį. Vėlgi, nes nėra duomenų tipai, mes galime tai padaryti bet kokios duomenų tipą, įsipareigojimų, nieko kito visi būtų var. Conditionals, visi mūsų seni draugai iš C ir PHP yra vis dar prieinami, todėl mes turime, jei kitur, jei kitur, jungiklis ir klausimas ženklas dvitaškis. Perjungti likę tokie lankstūs, kaip jį buvo PHP, bet visa tai jūs susipažinęs su dabar. Ir panašiai su kilpos seni favoritai Nors daryti, o, ir dar mums prieinama. Taigi jau žinome iš partijos Pagrindinis JavaScript tarsi pagrindai tik pagal turintis gana didelis Žinių dabar apie C ir PHP. Ką apie funkcijų JavaScript? Na, panašus į PHP kiekvieną funkcija supažindinti su funkcija raktinį žodį. Sakote funkciją, tada jums pradėti apibrėžti savo funkciją. Kas šiek tiek kitoks apie JavaScript, , nors yra galimybė turėti tai, kas vadinama anoniminė funkcija. Taigi galite nustatyti funkcijų kad neturiu vardą. Tai kažkas, ką mes tikrai nemačiau anksčiau. Mes tikrai naudoti sąvoką anoniminio funkcija šiek tiek vėliau šiais vaizdo, nes jis bus padaryti šiek tiek daugiau prasmės kontekste kai mes matome jį konkrečioje situacijoje kad aš meistriškai čia. Bet tegul tiesiog pažvelgti kokia paprasta JavaScript funkcija gali atrodyti. Taigi aš nuėjo į priekį ir atvėrė savo CS50 IDE ir aš jau paleisti Apache pradėti savo serveryje, kuriame veikia. Ir aš turiu šį failą atidaryti vadinamas home.html. Ir aš priartinti trupučiu čia. Ir iš esmės, jūs galite pamatyti Home.html yra tik keletas mygtukų krūva. Ir aš teigdamas viršuje čia kad tai yra JavaScript skyrius medžiagos. Taigi ten yra mygtukai krūva čia Bet ką šie mygtukai tikrųjų daryti? Na, mes per galvą į mano IED, ir aš home.html atidaryti čia. Pačioje pradžioje, čia, kur aš susiejimas į visus mano "JavaScript" kodo failus. Teisė? Taigi turiu anonymous.js, clock.js, Aš naudoju šaltinio atributas scenarijaus žymę susieti į failą. Taigi aš ne parašyta bet JavaScript tiesiai į šį failą, bet aš iškedentas visi JavaScript aš parašiau atskirai. Ir jei mes slinkti žemyn čia, tai turėtų visi atrodo šiek tiek susipažinę su trupučiu naujos sintaksės. Mes čia turime antraštės tag funkcijos ir tada mygtuką. Turiu įvestį, kad yra tipo mygtuką, ir, matyt, kai aš spustelėkite jį, Aš ruošiuosi skambinti kai veikti įspėjimo datą. Ir tai, kaip mes galime tarsi išmaišyti šiek tiek JavaScript ir HTML. Jie iš tikrųjų žaisti gana gražiai kartu, ir taip, matyt, kai Aš spustelėkite šį mygtuką, aš ruošiuosi skambinti tam tikrą funkciją įspėjimo datą. Ir panašiai Aš apibrėžta elgesio už visų kitų mygtukų, kad yra tame home.html puslapyje kuri mes vėl ir vėl grįžta į per šio vaizdo metu. Bet grįžkime iki čia ir pažvelgti bent clock.js, kuris yra JavaScript failą, kad aš rašė, kad turi šią funkciją pirmą mes ketiname pažvelgti. Kaip matote, aš pradėti savo JavaScript veikti su raktažodžiu funkcija, ir aš suteikti šį vieną pavadinimas, tai vadinama perspėjimas data. Viduje ten, aš, matyt, sukurti Naujas vietinis kintamasis vadinamas dabartinė data. Ir aš ruošiuosi priskirti lygią į naują dieną. Ir mes galime patekti į Siuntos patikslinimo, kas data yra ir tikrai JavaScript, kad didelė, kad mes negalime galbūt apima viską vienoje vaizdo. Tačiau pakanka pasakyti, tai vyksta grįžti į mane duomenų elementas, kuris apimantis esamą datą ir laiką. Aš saugoti, kad į kintamąjį, kad aš matyt ketina įspėti esamą datą. Na, ką perspėjimą dabartinė data atrodyti? Leiskite pažvelgti į patį failą išvaizdą atgal per naršyklės langą. Taigi dar kartą, tai yra mygtukas, kad aš sąlygotosios į šios pavadintas funkcija. Ir aš spustelėkite jį ten ir pažiūrėkite, ką ji padarė, tai įspėti. Jis popped up šį laukelį rūšiuoti pasakoja man, kad dabartinis laikas yra, matyt tai lapkričio 4 d 10:43:43 ryte. Ir jei aš spustelėkite jį dar kartą, dabar tai keletą sekundžių vėliau, tiesa? Taigi, kad viskas ši funkcija veikia. Kai paspaudžiu šį mygtuką, jis pasirodo įspėjamasis pranešimas man. Taigi ten tikrai nėra per daug funkcijų tai skiriasi nuo PHP, tik šiek tiek naujos sintaksės kuris ateina su darbo su JavaScript. Masyvai JavaScript yra gana paprasta. Norėdami paskelbti masyvą, naudoti laužtiniuose skliaustuose sintaksė kad mes susipažinę su nuo PHP. Ir panašus į PHP, mes Taip pat galite maišyti duomenų tipus. Taigi, šis masyvas, tiek Šių masyvai būtų būti visiškai teisėtas JavaScript. Vienas, kad visi sveikieji skaičiai, ir vienas, kad yra sumaišyti skirtingus duomenų tipus. Kas yra kažkas labai skiriasi JavaScript, nors? Štai objekto sąvoka. Taigi, galbūt jūs girdėjote apie Objektinis programavimas. Mes neturime daryti jį daug CS50, bet mes padaryti šiek tiek apie tai čia, JavaScript kontekste. Dabar JavaScript turi galimybę elgtis kaip Objektinis programavimas kalba, bet tai nėra pati tik Objektinis programavimo kalba. Ir tai vėl ateina Atgal kodėl sakiau, tai gali būti labai sudėtinga išmokti JavaScript pat savo pirmojo programavimo kalba, nes ji nėra tikrai tinka tam tikrą paradigmą. C, kita vertus, yra funkcinė programavimo kalba. Jei norime, funkcijos rūšiuoti didelis bosas žmogus, tiesa? Jie diktuoja, ką atsitinka visa kita. Mes norime keisti kintamųjų, mes vadiname funkcijas. Mes darome dalykus funkcijas. Daiktai vietoj to, nurodytame Objektinis kalbą, objektai tarsi tapo žvaigždė ir funkcijos tampa tarsi antraeilis. Bet kas yra objektas, ką tai objekto sąvoka? Na, jei tai padeda, manau, apie tai iš pirmo rūšiuoti apie tarsi C struktūros ar struct kad mes sužinojome apie anksčiau. C, struktūra yra daugelyje sričių, o gal dabar gali pradėti skambinti šiose srityse savybes. Bet savybės niekada stovėti ant savo, tiesa? Jei aš apibrėžti struktūrą automobilį kaip tai su šių dviejų Laukai ar savybės: vieną sveikasis skaičius už automobilio metus o kitas 10 simbolių eilutė automobilio modelio, Galiu pasakyti kažką panašaus į tai, Galiu paskelbti naują kintamąjį, tipo konstrukto automobilių Herbie. Ir tada aš galiu pasakyti kaip herbie.year lygus 1963, ir herbie.model lygus Beetle. Tai gerai. Aš naudoju laukuose konteksto, kurio struktūra, bet aš niekada negalėjo tiesiog sako kažką panašaus į tai. Teisė? Aš negaliu naudoti lauko pavadinimas nepriklausoma nuo struktūrą. Tai tarsi esminis dalykas. Taigi laukai yra esminis C struktūrų yra labai panašūs į savybės yra esminis JavaScript objektų. Bet ką daro juos Ypač įdomu yra tai, kad daiktai taip pat gali turėti ką yra vadinami metodai, kurie yra tikrai tik išgalvotas žodis funkcijų, yra neatsiejamas nuo objekto, taip pat. Taigi, tai funkcija, kuri gali būti tik vadinamas objekto kontekste. Tik objektas, kuris apibrėžiamas Tai viduje savo funkciją, Jei galvoti apie konstrukto, funkcija apibrėžiamas viduje apibrėžiančius garbanotas petnešos statinio. Taigi tik reiškia kažką prie konstrukcijos. Ir tai tarsi ką mes darome čia su objektų ir metodų. Tai iš esmės, kaip mes apibrėžti funkciją, kuri prasmę tik ant tikras objektas, ir todėl mes skambinti, kad tam tikro objekto metodu. Ir mes niekada negali skambinti, kad funkcija nepriklauso nuo objekto, kaip mes negalime pasakyti, metus ar modelis nepriklausomai nuo C struct Taigi funkcinis programavimas paradigmos atrodo kažkas panašaus į tai. Funkcija ir tada, kai pereisite į objektą kaip parametras. Be Objektinis programavimas kalbos, tai tarsi tampa apversta, ir mes galvojame apie tai, kaip šis, object.function. Taigi tarsi tos tašku operatorius vėl reiškia kad tai kai turto Rūšiuoti arba požymis paties objekto. Bet tai, ką objektas orientuota programavimo kalba gali padaryti, kad funkcija skambinti ant metodu, vėl, kuri yra tik specialus žodis funkcijos kad yra neatskiriamas prie objekto. Tai, ką tai sintaksė gali atrodyti. Ir taip mes pradėsime pamatyti kai ši į JavaScript kontekste. Jūs taip pat galite galvoti apie objekto rūšiuoti kaip masyvą, kurį mes esate susipažinę su nuo PHP. Įsiminti Association masyvas leidžia mums turėti rakto poras, o ne turintys indeksų 0, vienas, du, trys, ir taip toliau, kaip mes naudojamas iš C masyvų. Asociatyvūs masyvai gali žemėlapis žodžiai, pavyzdžiui, PHP vaizdo, mes kalbame apie užpilai picų. Ir todėl mes turėjome masyvą vadinami picos, ir mes turėjo sūris buvo pagrindinis ir 8,99 $ buvo vertė, o tada ankštpipiriai buvo pagrindinis, 9,99 $ buvo vertės, ir taip toliau. Ir taip mes taip pat galime pagalvoti apie prieštarauti tarsi panašus į Association masyvas. Ir todėl ši sintaksė čia būtų sukurti naują objektą vadinamas Herbie su dviem NT viduje ji. Metai, kuri yra priskiriama vertė 1963 ir modelis, kuris yra priskirtas eilutę Vabalas. Ir pastebėti, kad čia aš naudoju Viengubomis kabutėmis JavaScript. Galite naudoti vieną ar kabutes kai jūs kalbate apie stygos. Tai tiesiog tradiciškai Tuo atveju, dauguma kartų kai rašote JavaScript, tiesiog naudokite kabutes. Bet aš galėtų naudoti dvigubas kabutes čia, ir kad būtų visiškai gerai, taip pat. Taigi prisiminti, kaip į PHP mes turėjome šią sąvoką iš to, kiekviena kilpa, kad leistų mus į kartoti per visą rakto poros Association masyvas, nes mes neturėjo šį gebėjimą pakartoti per 0, vienas, du, tris, keturis, ir taip toliau? JavaScript turi kažką labai panašios, Bet tai ne vadinamas kiekvienos kilpos, ji vadinama dėl kilpomis. Taigi, jei aš sakė, kad man patinka Tai, var rakto objektas, tai tarsi panašus į sakydamas kiekvienam kažką kaip kažką. Bet viskas, ką aš darau čia Iteracja per visus iš savo objekto raktus. Ir viduje garbanotieji ten petnešos, aš norėčiau naudoti objekto laužtiniuose skliaustuose raktą perduoti į tą pagrindinis vietos vertę. Arba ten net kitą metodą. Jei aš tiesiog rūpi tik apie vertės, galiu pasakyti rakto objektas, ir tiesiog naudokite raktą viduje. Taigi var rakto objektas, turiu naudoti objektų skliaustus raktas viduje linijos. Var rakto objektas, galiu tiesiog naudokite raktą viduje linijos, nes aš tik specialiai kalbame apie ten vertybes. Taigi leiskite gal užtrukti pažvelgti į skirtumo tik greitai parodyti jums, tarp keturių skirtumas ir už kartu su labai specifinė masyvas, kurį mes čia savaitę masyvo. Taigi turiu rasti naują masyvo kad aš alsuoja septynių stygų, Pirmadienis, Antradienis, Trečiadienis, Ketvirtadienis, Penktadienis, šeštadienis, sekmadienis. Ir aš noriu dabar pakartoti per šio masyvo, spausdinti tam tikrą informaciją. Jei aš naudoju už LOOP spausdinti informaciją Ką manote, kad aš ruošiuosi gauti? Na, leiskite pažvelgti. Ir kol mes šokinėti per mano naršyklės lange, tiesiog žinau, kad console.log yra tarsi vienas būdas tai spausdinimo F JavaScript. Bet kas yra konsolė? Na, tai ką mes ketiname eiti pažvelgti dabar. Gerai, kad mes grįžome čia mano naršyklės lange, ir aš ruošiuosi atidaryti iki mano Kūrėjo įrankiai. Vėlgi, aš tiesiog pataikyti F12 atverti Kūrėjo įrankiai. Ir pastebėsite, kad čia ne Top aš pasirinko konsolę. Taigi tai yra sąvoka iš kūrėjo konsolę, ir tai leis mums spausdinti informaciją iš, rūšiuoti panašaus į terminalą, bet kaip pamatysite šiek tiek vėliau, mes taip pat gali įvesti informaciją bendrauti su mūsų tinklalapio. Aš ruošiuosi padidinti šiek tiek čia ir aš gonna dabar spustelėkite ant testas. Ir keturi test-- Aš ne viskas parodyti jums jo kodą dabar, bet jūs jį gauti, jei atsisiųsti kodą, kad yra susijęs su šiuo video-- yra tik tai, kad pagal kilpa kad mes matėme tik Antrasis prieš skaidrėje. Taigi aš gonna Spauskite, kad mygtuką, ir daugiau čia čia tai, kas išspausdinti į konsolė, 0, vienas, du, tris, keturis, penkis, šeši. Aš ne atsispausdinti informaciją viduje šių masyvų vietose, nes aš naudojamas pagal kilpa. Ir viduje kilpos kūno, aš tiesiog atspausdinti raktą neprieštaraus klavišą. Bet jei aš dabar aišku, mano konsolę, ir aš pereiti prie už bandymo ir keturių bandymų Sakau aš naudoju Vijos o ir atsispausdinti raktą, jei aš spustelėkite, kad dabar aš gaunu faktiniai elementai viduje mano objektas ar mano masyvas šioje byloje. Mano masyvas savaitės dienomis. Aš atspausdinti Pirmadienis, Antradienis, trečiadienį. Taigi, kad skirtumas tarp už į kilpą, kuri spausdina vos raktai Jei naudojate tik raktą viduje kilpos kūno, ir už Vijos, kuris spausdina iš verčių, jei jūs naudojate tik raktas viduje kilpa kūno. Gerai, kaip dabar mes pradedame Jungiant eilutes, o gal išmaišyti kai interpoliuojant kintamieji kaip mes galėjome padaryti PHP? Na, mes gana susipažinę su šiuo nuo PHP. Tai, kaip mes būtų tai padaryti naudojant dot operatorius Jungiant eilutes. Be JavaScript, nors, mes iš tikrųjų naudoti kažką vadinamas plius operatorius, kuris yra gal net šiek tiek daugiau intuityvus, tiesa? Mes pridedant krūva eilučių kartu. Taigi leiskite galvą atgal daugiau ir pamatyti, ką tai bus atspausdinti, jei mes bandome atsispausdinti visi į savaičių masyvo informaciją. Visos teisės, todėl pagal čia pagal simbolių eilučių sujungimas, Turiu du variantus, styginių pastatas V1 ir tada seka pastatas V2. Ir mes pamatysime, kodėl mes reikia V2 per sekundę. Bet aš gonna spustelėkite styginių V1, kuris yra kodas buvome tik atsižvelgiant pažvelgti, console.log su visais pliusus. Leiskite pamatyti, jei tai spausdina , ką mes tikimės. Pirmadienis dienos numeris 01 savaitės, Antradienis yra diena numeris 11 savaitės. Na, ką aš bandžiau padaryti buvo gauti tai atsispausdinti pirmadienis dieną, skaičius vienas, antradienis yra diena numeris du. Tačiau atrodo, kad aš visada spausdinti vieną. Na, kodėl taip yra? Na, it turns out, išgerkite kitą išvaizdą Šiuo mažai kodo fragmentą čia. Atkreipkite dėmesį, kad mes naudojame pliuso operatorius dviejuose skirtinguose kontekstuose. Ir taip čia, kur gal kas kad mes natūra buvo suprantama, oh, tai toks didelis. Mes neturime kovoti su duomenų tipų nebėra. Bet čia, kur tai kad mes prarasti duomenų tipai tikrųjų gali būti šiek tiek iš už mus problemą. Dabar, kad pridėjus operatorius yra naudojamas Jungiant eilutes ir pridėti numerius kartu JavaScript turi padaryti savo geriausią spėjimą kaip tai, ką aš noriu, kad ji tai padaryti už mane. Ir šiuo atveju, tai atspėti negerai. Jis tiesiog sudurtinius dieną, kuri būtų 0, vienas, du, tris, keturis, penkis arba šešis, ir tada jis tiesiog sujungiamos kad ir tada sujungiamos vieną. Tai iš tikrųjų nebuvo įtraukti juos kartu. Ir taip tos kalbos, PHP ir JavaScript kad tezės toli Šis tipų samprata, Jūs neturite kovoti su ja nebėra. Jie vis dar turi tipus po gaubtu. Ir mes galime tais atvejais, kaip tai, sverto šį faktą sakydamas kažką kaip gal tai, kuris pasakoja JavaScript, tokiu būdas, gydyti tai kaip sveikasis skaičius, netraktuoja kaip eilutę, net nors mes sumaišius stygos ir sveikieji čia. Tai tik vienas iš tų dalykų, kad jis atrodo toks didelis kontekste kad mes neturi spręsti tipų nebėra, bet kartais jums paleisti į situaciją tiksliai, kaip tai, kur tai, kad Jūs neturite kontroliuoti tipų gali turėti neigiamos jums jei nesate atsargūs. Ir todėl, jei mes grįžti virš IDE, aš ketina išsiaiškinti savo konsolę vėl, ir aš ruošiuosi spustelėkite eilutę Pastatas versija dvi, kurios kur aš naudoju, kad parse int funkciją. Dabar ji spausdinti informacija, kad aš laukiu. Pirmadienio dieną numeris vienas, antradienį yra dieną numeris du, ir taip toliau. Taigi pakalbėkime apie funkcijų dar kartą. Pažadėjau mes kalbame apie anoniminis funkcijos, o dabar už tai kontekstas pagaliau atvyko. Taigi, kol mes padaryti, pakalbėkime dar kartą apie masyvų vos sekundę. Taigi matricos yra specialus atvejis objektas. Tiesą sakant, viskas JavaScript yra iš tikrųjų objektas. Taigi, funkcijos yra ypatingas atvejis objektas, sveikieji skaičiai yra ypatinga atvejis objektas, bet matricas specialiai turėti metodų, skaičių. Įsiminti nes jie objektus, jie gali turėti savybes ir metodus. Jie turi vieną iš metodų, numerį, kad gali būti taikomi šių objektų. Yra būdas vadinamas dydis, array.size, kuris bus grįžti į Jums kaip galima tikėtis iš elementų savo masyvas skaičius. array.pop, tarsi Mūsų samprata Popping išjungtas iš kamino, jei jūs prisimenate iš mūsų kaminai vaizdo, pašalina paskutinį elementą iš masyvo. array.push prideda naują elementą į masyvą pabaigoje. array.shift yra tarsi kaip DQ, tai sudurtųjų iš labai pirmasis elementas masyve. Bet yra ir kitas ypatingas metodas masyvo vadinamas žemėlapį. Ir tai yra tarsi įdomi koncepcija. Taigi, kas yra žemėlapyje idėja? Jūs iš tikrųjų matyti šį kelių kitų kalbų, ir mes kalbame ne apie rūšiuoti kartografų map čia mes kalbame apie žemėlapių funkciją. Be konteksto mes kalbame apie čia žemėlapis yra speciali operacija mes gali atlikti patikrinimus vietoje masyvo taikyti tam tikrą funkciją į kiekvieną tos masyvo elementas. ir taip mes sakome šiuo atveju, gal array.map, ir viduje ji, mes artimųjų į žemėlapyje yra funkcija, kad mes norime kuris turi būti taikomas kiekvieno elemento. Taigi, tai tarsi analogiškas naudojant kilpos pakartoti per kiekvieną elementą ir taikyti tam tikras veikti į kiekvieną elementą, tiesiog "JavaScript" tai pastatyta sąvoka iš žemėlapių, kad būtų galima taikyti. Ir tai yra didelis konteksto kalbėti apie anoniminių funkcija. Taigi tarkime, mes turime Šis sveikieji masyvo. Tai vadinama nums ir jis gavo penkis viskas jame, vienas, du, tris, keturis, penki. Dabar aš noriu map kai funkcija į šią masyvo. Noriu turėti taikomos funkcija į kiekvieną masyvo elementas. Na, tarkime, kad tai, ką noriu padaryti, tai tik dvigubai visus elementus. Ką galėčiau padaryti, tai tiesiog naudokite kilpa už var I lygus 0, I yra mažiau nei arba lygus 4, I plius, pridedant, ir Tada du kartus kiekvieną numerį. Bet aš taip pat galime padaryti kažką panašaus į tai. Galiu pasakyti nums anksčiau buvo vienas du trys Keturi Penki, dabar, nors norėčiau jus taikyti žemėlapių ant šio masyvo kur aš norėčiau, kad jūs padvigubinti kiekvieną numerį. Ir tai būtent tai, kas čia vyksta. Tačiau pastebėti tai, ką aš artimųjų AS argumentas, į žemėlapį. Tai yra anoniminis funkcija. Ir pastebėsite Aš nedavė Ši funkcija vardas, Aš tik suteikti jai parametrų sąrašą. Ir todėl tai yra pavyzdys anoniminio funkcija. Mes paprastai niekada tai vadiname funkcija nepriklausė žemėlapyje kontekste. Mes apibrėžiant ją kaip parametras į žemėlapį, ir todėl mes tikrai ne reikia turėti vardą už jį, jei Vienintelis dalykas, kuris rūpi tai žemėlapis ir tai apibrėžta teisė ten viduje žemėlapyje. Ir todėl tai yra anoniminis funkcija. Mes negalėjome tai padaryti anksčiau. Žemėlapis šiek funkciją, kuri priima vieną parametrą, Num, ir kas, kad funkcija nėra yra grįžta num kartus 2. Ir taip po to kartografavimas buvo taikomas, tai, ką nums išvaizda panašiai, dviejų, keturių, šešių, aštuonių, 10. Ir mes pop į mano naršyklės langą ir tiesiog Pažvelkite į šį išvaizdą tikrai greitai, kaip gerai. Taigi, aš turiu kitą mygtuką čia mano pagrindiniame puslapyje vadinamas dvigubai. Ir kai aš spustelėkite du kartus, ir tai pasako me prieš tai buvo vieną, du, tris, keturis, penkių po dviejų, keturių, šeši, aštuoni, 10. Ir jei aš einu atgal ir spustelėkite du kartus vėl, dviejų, keturių, šešių, aštuonių, 10. Ir tada, po, keturių, aštuoni, 12, 16, 20 ir tada. Ir ką aš darau šioje funkcijoje? Na, jei mes tiesiog pop perkelti į IDE ir Aš atsigriebti savo anoniminį funkciją, čia ant septynių linijos, einančios per 13 Aš daro šiek tiek išgalvotas darbą čia bet aš tiesiog spausdinti kas šiuo metu masyvo. Tada, linijos 16 17, ir 18, ten mano žemėlapis. Tai kur aš Taikant šį padvigubinti funkcija kiekvienam elementui. Ir tada šiek tiek toliau žemyn, Aš tiesiog daro tą patį Darau prieš, išskyrus dabar aš spausdinti masyvo turinį vėliau. Bet viskas, ką aš padariau čia tiesiog naudokite anoniminį funkciją į žemėlapį visoje visą masyvą. Taigi dar vienas didelis tema, kalbėti apie JavaScript yra įvykio sąvoka. Įvykis yra kažkas, kad tiesiog atsitinka kai vartotojas sąveikauja su jūsų internete puslapis, tad gal jie spustelėkite kažką, arba gal puslapis yra įkeltos, o gal jie jau persikėlė jų pelę ant kažko, ar jie įvedėte kažką į įėjimo srityje. Visi šie dalykai yra Renginiai kurie vyksta mūsų tinklalapio. Ir "JavaScript turi tą gebėjimas palaikyti kažką vadinamas renginys prižiūrėtojas, kuris yra atgalinių funkcija, reaguoja į html atveju. Ir kas atgalinio ryšio funkcija? Na, tai paprastai tik dar pavadinimas anoniminių funkcija. Tai funkcija, kuri reaguoja į renginį. Ir tai, kai mes einame į idėja privalomas tam tikras funkcijas į tam tikrą html atributas. Dauguma HTML elementai turi parama atributą kad mes ne kalbėti apie HTML Vaizdo kažką panašaus paspaudimu arba hover arba apkrovai, visų šių įvykių kad tada galite rašyti funkcijas kad susidoroti su šių įvykių kai tie įvykiai atsirasti jūsų tinklalapį. Ir taip gal tavo html atrodo kažkas panašaus į tai. Ir aš turiu du mygtukus čia mygtuką vieną ir mygtuką du, ir čia turiu dabar apibrėžta nieko, tačiau tai yra, kur ant atributo paspaudimas, matyt, dalis mano HTML tegus. Taigi, matyt, kai aš apibrėžti, kas yra vyksta viduje tos atributas, tai bus kai Javaskriptą funkcija, kuri reaguoja į renginį matyt paspaudę ant mygtuką vieną mygtuką arba du. Kas tipo kietas, apie tai mes gali parašyti bendrą renginį prižiūrėtojas. Ir šis renginys nagrinėjimą sukurti renginių objektą. Ir įvykis objektas bus pasakyti mums kuris iš dviejų mygtukų buvo paspaudėte. Dabar, kaip tai veikia? Na, tai gali atrodyti kažką panašaus į tai. Taigi, mes pirmiausia apibrėžti savo mygtukus turėti atsakymą į perskambinti funkcija, kuri bus vadinama kai mygtukas paspaudžiamas, mes vadiname įvykį įspėjimo vardą. Ir pranešimas abiem atvejais mes esame einančios į šio renginio parametrą. Taigi mes vadiname šią funkciją arba kai šią funkciją iššaukiamas tuo atveju vyksta, jis ketina sukurti šį įvykio objektą ir perduoti jį kaip parametras įspėti vardą. Ir tas įvykis objektas ketina pateikiama informacija apie kuriuos mygtukas paspaudėte. Ir kaip ji padaryti? Na, tai gali atrodyti kažką panašaus į tai. Taigi dabar mano atskiras Failas JavaScript, galiu turite rasti tai funkcija perspėjimas vardas, kuris vėl priima Tokiu atveju parametrą. Ir tada čia yra, kur aš aptikti kurį mygtuką sukėlė, var sukelti lygus renginį dot šaltinio elementas. Koks buvo šaltinis, kuris sukūrė Šis renginys objektas, kuris buvo priimtas? Ar tai buvo mygtuką vieną ar jis buvo mygtuką du? Ir tada čia viskas, ką aš darau yra spausdinti trigger.innerhtml. Na, šiuo atveju, šiame kontekstas, trigger.innerhtml yra tik tai, kas parašyta ant mygtuko. Jis tiesiog taip atsitinka, jei mes šokinėti atgal per sekundę, kad būtų būti, kas yra tarp tų mygtukų žymes. Tai bus mygtuką vieną mygtuką arba du. Ir tegul pažvelgti kaip šis renginys prižiūrėtojas būtų atrodo, jei mes turėjome tai veikia praktikoje. Taigi, visų pirma, jūs atvėrė events.js, kuri yra failas JavaScript, kur Aš apibrėžta šią funkciją. Ir, kaip matote, tai gana daug, ką mes tik pamačiau ant skaidrės antras prieš. Ir aš eisiu per į Titulinis puslapis mes jau naudojate. Ir aš turiu čia mygtuką vienas ir mygtuką du. Ir aš paspauskite mygtuką vieną. Jūs paspaudėte mygtuką vieną, jei jums galite pamatyti čia perspėjime. GERAI. Paspauskite mygtuką du, jums paspaudžia ant mygtuko du. Taigi abu mygtukai turėti pati skambinimo funkcijos, tiesa? Jie abu buvo perspėjimas vardas įvykis, bet šis įvykis objektas kad gauna sukūrė kai mes spustelėkite jis pasakoja, kurį mygtuką paspausti buvo. Mes neturėjome rašyti du atskiri funkcijas arba spręsti turintys perduoti bet kokią papildomą informaciją. Užtenka tik pasikliaujant kas Javaskriptą bus padaryti už mus, kurie yra sukurti, kad Rūšiuoti renginio objektą mūsų vardu. Yra daug daugiau nei "JavaScript" ką mes įtraukti į šį video, bet turintys jų pagrindinė turėtų jums Ilgą būdai mokymosi viską jums reikia žinoti apie tai Įdomu kalba. Aš Doug Lloyd. Tai CS50.