[Zenelejátszási] DOUG LLOYD: Tehát most már mi vagyunk a régi profik webes programozás, igaz? És már lefedett több nyelvek egyes videók. És most lássuk még egy, a JavaScript. Először a jó hír, JavaScript egy modern programozási nyelven ugyanúgy, mint a PHP, amelynek szintaxis származik C, Szóval ez egy jó kiindulópont lehet. Arról van szó, olyan régi, mint a PHP, valamint, miután már körülbelül 20 éve. Azt találta körül ugyanabban az időben, mint a PHP. És a JavaScript valójában elég alapvető fontosságú a felhasználói élmény A web. Sőt, vannak három nyelven, hogy én mondanám egyfajta alkotó felhasználói élményt kölcsönható A honlap, html, CSS és JavaScript. És így most beszéljünk egy kicsit JavaScript. A rossz hír, bár a JavaScript is hogy meghatározza egy csomó szabályokat is, és akkor tör rájuk. És JavaScript is lehet fajta kihívást tanulni, mert ellentétben a C és PHP, amelyek nagyon strukturált és nagyon merev szabályok A dolgok nem működnek. JavaScript fajtája A ütött annyira rugalmas hogy talán a dolgok nem fognak úgy működik, ahogy elvárjuk tőlük, hogy, és talán tényleg nem lehet tanulni az első programozási nyelv mint egy JavaScript. Így talán mert nem tűzte semmilyen szabályt, és ez nem igazán érvényesíteni jó kódolási szokások. De most már remélhetőleg kifejlesztett néhány jó kódolási szokások, és így elkezdhetjük fosztogat a JavaScript egy kicsit. Írni JavaScript, hasonló megnyitása egy C fájl ponttal C kiterjesztése vagy egy PHP fájlt egy ponttal PHP kiterjesztés, minden meg kell tennie, hogy nyit egy fájlt A dot js fájl kiterjesztését. Nem kell semmilyen különleges határolójelek mint mi, PHP nyelven. Ez a fajta szög konzol kérdőjel PHP hogy mi szokva attól, hogy az út elmondjuk mi böngésző, hogy amink van, az A JavaScript azáltal, ez egy html tag, és majd meglátjuk, egy kicsit hogyan kell csinálni, hogy csak egy pillanatra. A másik dolog, ami JavaScript különböző, de az, hogy fut kliens oldalon. Szóval emlékszem, hogy a PHP soha nem tudtuk igazán látni A PHP, hogy kiemelte a honlapon. Ha valaha is nézett a oldal forrását, akkor csupán Nézd meg a HTML volt által generált, hogy a PHP. De a JavaScript fut kliens oldalon. A JavaScript fut a számítógépen. És ezért meg tudod csinálni dolgok, mint a hozzá blokkolók. Jobbra? Hirdetés blokkoló általában úgy történik, megöli az összes JavaScript futó egy adott honlapon. És mert volna fut a gépen kliens oldalon, akkor csak megáll a JavaScript futtatására teljesen. Ez azt is jelenti, hogy ha használja egy weboldal, amely tartalmazza a JavaScript, meg kell küldeni a JavaScript forrás kód részeként a http válasz az ügyfélnek, amikor kérik. És így talán nem kívánja használni a JavaScript hogy nem igazán érzékeny a dolgokat mint a tompított információk kb felhasználók jelszavait vissza és oda, mert ők valóban fog kapni az összes forráskódot, Nem csak a html generált, mint például lenne a helyzet mondjuk a PHP. Szóval hogyan közé JavaScript a HTML kezdeni? Nos, hasonló a CSS, valóban, van valami, hogy hogyan csináljuk itt. A CSS van szerű tag. És belül e-szerű tag, tudjuk meg egy CSS stíluslapot. Hasonlóképpen a JavaScript tudjuk nyitni szkriptcímkéket, Egy másik html tag nem tettük beszélni a HTML videó, és írni JavaScript között szkriptcímkéket. Szintén bár, mint a CSS, összekapcsolására a külső CSS fájlok és húzza őket a program, hogy így. A CSS mi is, elnézést, a JavaScript mi is adja meg a forrás attribútum a script tag összekapcsolni a JavaScript külön, így nem kell írni, hogy között script tag, akkor A link azt használó hogy script tag is. És ahogy az a helyzet, amikor CSS azt javasolta, hogy valószínűleg az Ön érdeke, hogy írjon A CSS egy külön fájlban esetén meg kell változtatni, Hasonlóan ajánljuk hogy írjuk meg a JavaScript külön fájlokban és használja a script tag forrás attribútum kötni a JavaScript a HTML, a web oldalon. Tehát a JavaScript változók, akkor kezdeni beszélni a szintaxis itt. És megyünk keresztül ez a fajta gyorsan, mert már megtette ezt a PHP, ezért ez mind elég ismerős. Tehát változók JavaScript nagyon hasonlít a PHP változókat. Nincs típusleíróval, és Ha be egy változót, előtagot, hogy a var kulcsszó. A PHP tennénk valamit mint ez, dollár jel x. Mi így megjelölt Változó, de nem, Nem beszélve a típus A változó egyáltalán. Mi azt mondjuk valami ilyesmit dollár jel x = 44, PHP nyelven. Ha teszünk a Ugyanez a JavaScript, Mi azt mondjuk var x = 44. Tehát var egyfajta utunkat bevezetésének változó. Ez talán egy kicsit több intuitív mint dollár jel változó. Ismét mivel nincs adattípusok, mi is ezt bármilyen adattípust, vonósok, bármi más lenne mind var. A feltételes, minden kedves régi barátok a C és a PHP továbbra is elérhető, így van, ha, else if, else, switch és kérdés mark vastagbélben. Kapcsoló fennmaradó olyan rugalmas, mint ez volt a PHP, de ezek vagytok ismerik már. És hasonlóképpen hurkok A régi kedvencek, miközben, do while és for még elérhető számunkra. Így tehát már tudjuk, hogy sok a alapvető JavaScript fajta fundamentumok csupán arra hivatkozva, amelyek egy kicsit A tudás már a C és a PHP. Mi a helyzet a funkciók JavaScript? Nos, hasonló a php minden funkciója bevezette a funkciót kulcsszó. Azt mondod funkciót, és akkor kezdeni, hogy meghatározza a funkció. Mi egy kicsit más mintegy JavaScript, bár az a képesség, hogy a az úgynevezett egy névtelen függvényt. Szóval lehet meghatározni funkciók amelyek nem rendelkeznek egy név. Ez olyasmi, amit tényleg nem láttam azelőtt. Mi lesz igazán fogalmának használatát Egy névtelen függvényt egy kicsit később ebben a videót, mert ez lesz hogy egy kicsit több értelme összefüggésben amikor látjuk, hogy egy adott helyzetben hogy én már kialakított itt. De nézzük csak vess egy pillantást hogy milyen egyszerű JavaScript funkciót nézhet. Szóval mentem előre, és megnyitotta az én CS50 IDE és már futnak Apache kezdeni az én szerver fut. És én ezt a fájlt open nevű home.html. És én nagyítás egy kicsit itt. És alapvetően láthatod Home.html csak egy rakás gomb. És én azt állítva, a tetején van hogy ez a JavaScript szakasz anyagokat. Szóval van egy csomó gomb van, de mit jelentenek ezek a gombok valójában? Nos, akkor menj át az én IED, és én home.html nyitni itt. A legelején, itt van, ahol én vagyok összekötő Minden az én JavaScript forrás fájlokat. Jobbra? Szóval van anonymous.js, clock.js, Én vagyok a forrás attribútum A script tag összekapcsolni a fájlban. Szóval én nem írt JavaScript közvetlenül a fájlba, de én már húzta az egész JavaScript írtam külön-külön. És ha lépjünk le itt, ebben a kell minden némiképp ismerős egy kicsit az új szintaxist. Van itt fejléccímkét funkciókat, majd egy gombot. Nekem van egy bemeneti ez egyfajta gombot, és látszólag amikor kattintson rá, Én fogom hívni néhány működni riasztási időpont. És ez hogyan tudjuk a fajta keverjük össze egy kicsit a JavaScript és a HTML. Ők valóban játszani nagyon szépen együtt, és így látszólag amikor Én kattintson erre a gombra, megyek felhívni néhány funkció a riasztási időpont. És hasonlóképpen tettem meghatározott viselkedések az összes többi gomb, vannak, hogy home.html oldalon, amit majd visszatérnek hogy során ez a videó. De menjünk vissza Itt és vessen egy pillantást at clock.js, amely a JavaScript fájlt, hogy én azt írta, hogy van ez a funkció első megyünk megnézzük. Mint látható, kezdek én JavaScript működni a kulcsszó funkciót, és adtam ezt a nevet, úgy hívják riasztási időpont. Belsejében van, azt nyilván létre új lokális változó nevű aktuális dátumot. És fogok rendelni azonos egy új időpontot. És mi lehetne még egy csomó pontosítja, mit egy dátum, és tényleg JavaScript annyira nagy, hogy nem tudunk esetleg fedezésére mindent egy videót. De elég annyit mondani, ez lesz hogy visszatérjen hozzám olyan adat, amely magában foglalja az aktuális dátumot és időt. Én tárolására, hogy egy változót, hogy én vagyok nyilván fog figyelmeztetni aktuális dátumot. Nos, mit figyelmeztetés aktuális dátum néz ki? Vessünk egy pillantást a fájl maga Visszatekintve a böngészőablakban. Tehát még egyszer: ez a gomb, hogy én lett kötve, ez a megnevezett funkciót. És én kattintson rá és ott nézd, mit tett, azt riasztani. Ez tűnt fel ez a fajta mező, nekem, hogy az aktuális idő, látszólag ez november 4 at 10:43:43 reggel. És ha én kattintson rá újra, most ez néhány másodperccel később, ugye? Annak érdekében, hogy ez az egész függvény. Amikor erre a gombra kattint, akkor felugrik egy figyelmeztető üzenetet nekem. Tehát igazából nem Túl sok a funkciók amelyek eltérnek a PHP, Csak egy kicsit új szintaxis hogy jön dolgozni a JavaScript. Tömbök a JavaScript elég egyértelmű. Egy tömböt, akkor használd A szögletes zárójelek szintaxis hogy vagyunk tisztában PHP. És hasonló a PHP, mi is tudja keverni adattípusok. Szóval ez a tömb, mind Ezen tömbök tökéletesen legitim JavaScript. Az egyik, hogy minden egész, és egy olyan keveredik különböző adattípusok. Mi valami egészen más JavaScript, igaz? Ez a fogalom egy tárgy. Így talán hallottál objektumorientált programozás. Nem csinálunk egy csomó azt CS50, de nem egy kicsit belőle itt összefüggésben JavaScript. Most a JavaScript megvan az a képessége, hogy viselkednek, mint egy objektumorientált programozás nyelv, de ez önmagában nem kizárólag egy objektum-orientált programozási nyelv. És ez megint jön vissza miért mondtam, hogy lehet igazi kihívást tanulni JavaScript, mint az első programozási nyelvet, mert nem igazán illik egy adott paradigma. C másrészt egy funkcionális programozási nyelv. Ha azt akarjuk, hogy függvényei fajta a nagy főnök ember, nem? Ők diktálják, hogy mit történik minden mást. Szeretnénk változtatni változók, hívjuk funkciókat. Tesszük a dolgokat funkciókat. Tárgyak helyett, egy objektum-orientált nyelv, objektumok egyfajta sztárja lett, és funkciókra valamiféle másodlagos. De mi is egy objektum, mit van ez a fogalom egy tárgy? Nos, ha ez segít, gondolj róla levőket mint egy C szerkezet, vagy egy struct hogy már értesült előtt. C-ben a szerkezetet tartalmaz Számos területen, és talán most elkezdheti hívni ezeket a mezőket tulajdonságait. De az ingatlan soha nem állni a saját, igaz? Ha én meg egy szerkezetet egy autó mint ez az alábbi két mezők vagy ingatlan, az egyik egy egész évre az autó és a másik 10 karakter húr a modell az autó, Azt lehet mondani, valami ilyesmit, Kijelenthetem egy új változó típusú struct autó Herbie. És akkor tudok mondani valamit mint herbie.year egyenlő 1963, és herbie.model egyenlő Beetle. Rendben. Én a területeken a összefüggésben a szerkezet, de soha nem tudtam, csak hogy ilyet mondjon. Jobbra? Nem tudom használni a mező nevét független a szerkezet. Ez egyfajta alapvető dolog. Tehát területeken az alapvető C szerkezetek nagyon hasonlóak a tulajdonságai, hogy alapvető JavaScript objektumok. De mi teszi őket különösen érdekes az, hogy a tárgyak is, hogy mit nevezik módszerek, amelyek valóban csak egy divatos szó funkciók együtt járnak a tárgy is. Szóval ez egy függvényt, amely csak akkor lehet úgynevezett összefüggésben egy tárgy. Csak egy objektumot, amely meghatározta Ezt a funkciót belsejét annak, ha belegondolsz egy struct, a függvény határozza belül azokat, amelyek meghatározzák kapcsoszárójele a szerkezet. Tehát ez csak jelent valamit a szerkezetre. És ez a fajta, amit csinálunk Itt a tárgyak és módszerek. Ez alapvetően, mint mi vagyunk meghatározása, hogy a funkció Csak akkor van értelme a adott objektumot, és így hívja, hogy egy módszer az objektum. És mi soha nem nevezném működésében független az objektum, mint nem mondhatjuk év vagy modell független a struktúra a C. Tehát funkcionális programozás paradigmák kinézni. Funkciót, majd amikor át az objektum paraméterként. Egy objektumorientált programozás nyelv, ez a fajta kap tükrözött, és mi alapján gondolnánk ez tetszik ez, object.function. Tehát ez a fajta, hogy pont üzemeltető ismét utalva hogy ez valamiféle ingatlan vagy attribútuma maga a tárgy. De ez az, amit egy tárgy orientált programozási nyelv Lehet csinálni, hogy egy függvény Felszólítom a módszert, újra, ami csak egy speciális szót függvényében hogy benne rejlik, hogy egy tárgy. Ez az, amit, hogy szintaktikai nézhet. És így fogunk kezdeni, hogy néhány, ez összefüggésben JavaScript. Azt is gondolni egy tárgy Valahogy úgy, mint egy asszociatív tömb, ami vagyunk tisztában PHP. Ne feledje, az asszociatív tömb lehetővé teszi, számunkra, hogy kulcsfontosságú érték párok helyett annak, indexek 0, egy, kettő, három, és így tovább, mint szoktunk, hogy honnan C tömbök. Asszociatív tömbök map szavak, mint például a PHP-video, beszéltünk fehéráru pizzák. És ezért kellett egy tömböt nevű pizzák, és mi Volt sajt volt a legfontosabb, és 8,99 $ volt értéket, majd paprikás volt a legfontosabb, $ 9.99 volt egy értéket, és így tovább. És így is gondolj egy objektum fajta hasonlít egy asszociatív sor. És így ez a szintaxis itt hozna létre egy új objektumot nevű Herbie két ingatlan belsejébe. Évben, ami hozzá van rendelve az értéket 1963- és a modell, amely hozzá van rendelve a húr Bogár. És megemlítem, hogy én vagyok a Egyetlen idézetek a JavaScript. Használhatja szimpla vagy dupla idézőjelek ha te beszélsz szálakat. Ez csak a hagyományosan a helyzet, hogy a legtöbb alkalommal amikor írsz JavaScript, csak egyszerű idézőjeleket. De tudtam használni idézőjelek között van, és lenne teljesen rendben is. Úgy emlékszem, hogyan PHP mi volt ez a fogalom Egy minden egyes ciklus, ami lehetővé tenné számunkra, hogy végighaladni összes fontos érték pár asszociatív tömb, mert nem lenne ez a képesség, hogy ismételget keresztül 0, egy, két, három, négy, stb? JavaScript valami nagyon hasonló, de ez nem hívják az egyes hurok, ezt hívjuk a hurkok. Tehát ha azt mondanám, hogy nekem, mint Ennek a var kulcs tárgy, ez a fajta hasonló mondván Az egyes valamit valami. De minden, amit csinálok itt van ismételve végig a kulcsait célom. És belül a göndör nadrágtartó van, megtenném Használja tárgy szögletes zárójelek legfontosabb, hogy utalja arra az értékre, hogy a legfontosabb helyen. Alternatívaként van akár egy másik megközelítés. Ha én csak csak érdekel a értékeket, azt mondhatom, a legfontosabb az objektumot, és csak használni kulcs belülről. Így var kulcs objektumot, van használható tárgy szögletes zárójelben kulcs belülről a hurok. Var kulcsa tárgy, tudok Csak a gombbal a cikluson belül, mert én csak konkrétan beszélünk értékek vannak. Úgyhogy talán hoz nézd meg a különbséget csak azért, hogy gyorsan mutassa meg a különbség a négy és az a nagyon sajátos tömb, amely már itt van, hét tömb. Szóval meg kell találni egy új tömböt hogy én tele hét húrok, Hétfő Kedd Szerda, Csütörtök, péntek, szombat, vasárnap. És azt akarom, hogy most ismételget ezen keresztül tömb, kinyomtatásával bizonyos információkat. Ha valaki használja a számára a hurok kinyomtatni információkat, mit gondolsz fogok kapni? Nos, vessünk egy pillantást. És mielőtt átugrani az én böngésző ablakot, csak tudom, hogy console.log a fajta egyik módja ennek a nyomtatási F JavaScript. De mi az a konzol? Nos, ez az, amit mi lesz hogy menjen vessen egy pillantást most. OK, így vagyunk itt hátul az én böngésző ablakot, és fogok nyitni az én fejlesztői eszközöket. Ismét én csak üti F12 nyitni fejlesztői eszközöket. És észre, hogy itt a top általam kiválasztott konzolt. Szóval ez a fogalom A fejlesztői konzolt, és ez lehetővé teszi számunkra, hogy nyomtassa ki információt, Valahogy úgy, mint a terminál, de mint látni fogod egy kicsit később, mi is írja információ hogy befolyásolja a honlapunkon. Megyek nagyítás egy kicsit itt, és fogok most kattintson a teszt. És négy test-- nem fogok mutassa meg a kódot, hogy most, de megkapod, ha letöltheti a forráskódot, hogy is társítva van a video-- csak az, hogy a hurok hogy láttunk csak egy második ezelőtt a dián. Szóval fogom kattintással, hogy gombot, és ide, itt van, amit már kinyomtatható a konzol, 0, egy, két, három, négy, öt, hat. Én nem információt ki kell nyomtatni belül azokat a tömb helyeken, mert én egy a hurok. És a test belsejében a hurok, én Csak kinyomtatható kulcs nem emel kifogást gombot. De ha én most egyértelmű a konzolt, és én váltani az a vizsgálat, és a négy vizsgálati Azt mondom, használom a hurok helyett, és nyomtassa ki gombot, ha rákattintok, hogy most kapok a tényleges belső elemek, az én objektum vagy én tömb ebben az esetben. Saját tömb hét napjaira. Nyomtattam ki, hétfő Kedd szerda. Szóval ez a különbség Egy a hurok, amely kiírja Csak a kulcsokat, ha csak használ kulcs belsejében a test a hurok, és a hurok, amely nyomatok az értékeket, ha használni csak kulcs belülről a hurok teste. Rendben, hogyan tudjuk most kezd összefűzni húrok és talán keverjük össze Egyes változók interpolációval mint tudtuk csinálni PHP-ben? Nos, mi nagyon ismerős ezzel a PHP. Ez hogyan is kellene csinálni az dot üzemeltető összefûzését szálakat. A JavaScript azonban, valójában használjuk valamit az úgynevezett plus üzemeltető, amely talán még egy kicsit többet intuitív, ugye? Mi hozzá egy csomó A húrok össze. Úgyhogy irány vissza újra és látni, mi ez fog nyomtatni, ha azt próbáljuk ki kell nyomtatni az összes információt a héten sor. Rendben, tehát alatt van alatt szövegösszefűzés, Van két lehetőség, string épület V1 majd húr épület V2. És majd meglátjuk, hogy miért kell V2 a második. De fogok kattintson húr épület V1, amely az a kód voltunk Csak egy pillantást vetni, a console.log minden a pluses. Lássuk, ha ez a nyomatok ki mit várunk. Hétfő nap száma 01 a héten, Kedd nap száma 11 a héten. Nos, mit akartam hogy nem volt kap hogy nyomtassa ki a hétfő nap száma Egy, a kedd napon két számot. De úgy tűnik, mintha én lennék Mindig nyomtat ki egyet. Nos, miért van ez? Nos, kiderült, hogy egy pillantást meg ezt a kis kódrészletet itt. Figyeljük meg, hogy mi a Plusz szereplő két különböző kontextusban. És így itt van, ahol talán a dolgok hogy már ilyen is mondtam, Ó, ez olyan nagy. Mi nem foglalkozunk adattípusok többé. De itt van, ahol az a tény, hogy elveszítjük adattípusok is lehet egy kicsit A probléma számunkra. Most, hogy a plusz operátor arra, hogy összefűzni húrok és Számok együtt, JavaScript hogy a legjobb becslés hogy mit akarok vele csinálni nekem. És ebben az esetben, hogy kitalálta rossz. Ez csak összefűzött nap, ami 0, egy, két, három, négy, öt, vagy hat, és akkor csak összefűzött hogy majd összefűzve egy. Ez valójában nem add össze őket. És így ezen nyelvek PHP és JavaScript, hogy absztrakt re ez a fogalom fajta, Önnek nem kell foglalkozni vele többé. Ők még mindig van típusok a motorháztető alatt. És mi lehet azokban a helyzetekben, mint ez, igénybe ezt a tényt hogy mondok valamit mint talán ez, amely azt mondja a JavaScript, a Így kezeli ezt, mint egy egész, Nem kezelik, mint egy húr, akkor is, Bár mi összekeverésével húrok és egész számok itt. Ez csak egyike azoknak a dolgoknak hogy úgy tűnik, igen nagy a kontextusban hogy nem kell foglalkozni típusú többé, de néha akkor befut a helyzetet pontosan olyan, mint ez, ahol az a tény, hogy a nincs ellenőrzés alatt típusok visszaüthet rád ha nem vigyázunk. És így, ha a pop vissza át IDE vagyok megy, hogy törölje el az én konzolt újra, és megyek kattintson húr épület változat két, amely én ott is használom, hogy a szintaktikai int függvény. Most már kinyomtatott információt, hogy várok. A hétfői nap első számú, kedd jelentése nap száma kettő, és így tovább. Szóval beszéljünk ismét működik. Megígértem beszélgettünk arról, névtelen funkciók, és most a kontextust, hogy végre megérkezett. Szóval mielőtt így teszünk, akkor beszéljünk újra mintegy tömbök egy pillanatra. Tehát a tömbök egy különleges esetén egy tárgy. Sőt, mindent JavaScript valójában egy tárgy. Tehát funkciók egy különleges esetben, ha egy tárgy, egészek egy speciális esetén egy tárgy, de tömbök kifejezetten van egy több módszer. Ne feledje, mert ők tárgyak, hogy lehet tulajdonságok és módszerek. Ezek számos módszert, hogy lehet alkalmazni, hogy ezek a tárgyak. Van egy módszer, az úgynevezett méretű, array.size, amely visszatér Ön, mint az várható Az elemek száma a tömbben. array.pop, vagyis afféle alkotott fogalmaink leugrás kéményen, ha visszaemlékeztek a mi halom video, eltávolítja az utolsó elemet a tömbből. array.push hozzáad egy új elemet hogy a végén a tömb. array.shift egyfajta mint a DQ, ez kötések ki A legelső eleme egy tömb. De van még egy másik különleges módszer nevű tömbben térképet. És ez a fajta egy érdekes koncepció. Tehát mi az ötlet egy térkép? Akkor valóban látni ezt számos más nyelven, és mi nem beszélünk egy fajta térképészek térkép itt, beszélünk térképezési funkciót. Összefüggésben vagyunk beszélünk itt, térkép egy különleges Működésünk végezhet tömb alkalmazni egy adott funkció minden eleméhez a tömbben. és így mondaná Ebben az esetben talán array.map, és a benne lévő, mi halad a térképen egy olyan funkció, hogy azt akarjuk, kell alkalmazni minden egyes elem. Tehát ez a fajta analóg használatával Egy hurok végighaladni minden eleme és alkalmazni egy adott működik minden eleméhez, Csak a JavaScript ezt épült Márpedig a térképészeti, hogy lehet alkalmazni. És ez egy nagyszerű összefüggésben beszélni egy névtelen függvényt. Tehát mondjuk van Ez a tömb egész számokat. Úgy hívják nums, és ez van öt dolgok benne, egy, kettő, három, négy, öt. Most azt akarom, hogy feltérképezze néhány funkciója, hogy ezt a tömböt. Azt szeretnénk, hogy a funkció alkalmazni minden eleme a tömb. Nos, mondjuk, hogy mit akarok tennie, csak dupla valamennyi elemét. Mit tehettem csak használja a hurok var i értéke 0, I-nél kisebb vagy egyenlő 4, plusz, plusz, és Akkor kétszer minden egyes számot. De azt is ilyesmire. Azt lehet mondani, nums korábban Egy, kettő, három, négy, öt, Most azonban szeretném, ha a alkalmazni feltérképezése erre tömb ahol szeretném, ha megduplázódik minden számot. És pontosan ez az, mi történik itt. De észre, amit én halad A Azzal az érvvel, hogy feltérképezze. Ez egy névtelen függvényt. És észre nem adtam Ez a funkció egy nevet, Én csak adtam azt a paraméter lista. És így ez egy példa Egy névtelen függvényt. Mi általában soha nem hívja ezt funkciója keretein kívül a térképet. Mi határozta meg azt a paramétert feltérképezésére, és így nem igazán szükség van egy nevet, ha a egyetlen dolog, amely törődik a térképen és ez határozza meg a jobb ott belül a térképet. És így ez egy névtelen függvényt. Mi már nem voltak képesek Ehhez korábban. Térkép valami funkciója, hogy elfogadja az egyik paraméter, szám, és hogy ez mit függvény A hozamok NUM alkalommal 2. És így, miután ezt feltérképezése került sor, ez most mi nums néz mint, kettő, négy, hat, nyolc, 10. És mi lesz a pop át én böngészőablakban, és csak vessünk egy pillantást ezt nagyon gyorsan is. Szóval van egy másik gomb itt az én honlapon úgynevezett kettős. És amikor rákattintok kétágyas, és azt mondja rám, mielőtt ez volt egy, két, három, négy, Öt követően kettő, négy, hat, nyolc, 10. És ha visszamegyek, és kattintson duplán ismét, kettő, négy, hat, nyolc, 10. És azután, négy, nyolc, 12, 16, majd 20. És mit csinálok én itt ezt a funkciót? Nos, ha csak a pop át IDE és Húzom fel a névtelen függvényt, itt on-line hét és 13 vagyok csinál egy kicsit hímzés van, de én csak kinyomtatásával hogy pillanatnyilag mi a tömbben. Ezután sorban 16, 17, és 18, ott van az én térképet. Ez az, ahol én alkalmazó megduplázódása függvény minden elemét. És akkor egy kicsit lejjebb, Én csak ugyanazt a dolgot Csinálok előbb, csak én vagyok kinyomtatott tartalmát a tömb később. De amit tettem itt használjunk egy névtelen függvényt feltérképezni az egész egy egész tömb. Tehát még egy nagy téma, hogy beszéljünk a A JavaScript fogalma egy esemény. Az esemény valami, ami csak történik ha a felhasználó kölcsönhatásba lép a web oldal, így lehet, hogy kattintson valamit, vagy talán a oldal betöltődött, vagy lehet, hogy már átkerült az egeret valamit, vagy ők már gépelt valamit egy beviteli mezőbe. Mindezek a dolgok események hogy történnek a honlapunkon. És JavaScript a képes támogatni valamit nevű eseménykezelő, ami az a visszahívott függvény, reagál egy html eseményt. És mi az a visszahívási funkció? Nos, ez általában csak egy másik Íme egy névtelen függvényt. Ez egy függvényt, amely reagál egy eseményre. És ez az, ahol mi jön a ötlete kötődés bizonyos funkciók egy adott html attribútum. A legtöbb HTML elemek támogatja egy attribútum hogy nem beszélhetünk a html Videó valami ilyesmit kattintásra vagy hover vagy a terhelés, mindezen események hogy lehet majd írni funkciók hogy foglalkoznak azokkal események ha ezen események jelenhetnek meg a weboldalt. És így talán a html valahogy így néz ki. És van két gomb van, gombot, és a gombot két, és itt jelenleg meghatározott semmit, de ez az, ahol a attribútuma klikk nyilvánvalóan része a html tag. Tehát úgy tűnik, amikor meghatározzák, mi folyik belül az adott tulajdonság, ez lesz némi JavaScript funkciót, amely választ ad az esemény feltehetően a kattintva gombot, vagy a gomb kettő. Mi egyfajta hűvös erről, mi írhatunk egy általános eseménykezelő. És ez az esemény felvezető hozzon létre egy eseményt objektumot. És az event objektum megmondja nekünk amely a két gomb kattintottak. Most hogyan működik ez? Nos, lehet, hogy valahogy így néz ki. Tehát először meghatározza a gombok hogy a válasz a visszahívás funkciót, hogy fogják hívni ha a gombra kattint, hívjuk esetén figyelmeztető nevét. És észre mindkét esetben mi vagyunk halad ezen az eseményen paramétert. Így hívjuk ezt a funkciót vagy ha ez a funkció váltja ki az esemény történik, ez lesz az esemény létrehozása objektumot és adja át a paraméter figyelmezteti nevét. És az esemény objektum fog információt tartalmaznak melyről gombra kattintás. És hogyan csináltad? Nos, lehet, hogy valahogy így néz ki. Tehát most már az én külön JavaScript fájl, talán Meg kell találnunk ezt funkció figyelmeztető neve, amely ismét elfogadja az esemény paraméter. És akkor itt van, ahol én vagyok kimutatására melyik gombot érkezik, var kiváltó esemény megegyezik dot forrás elem. Mi volt a forrás, amely megteremtette Az esemény célja, hogy fogadtak el? Vajon gombot egy vagy volt gombra kettő? És akkor itt van minden, amit csinálok, az kinyomtatásával trigger.innerhtml. Nos, ebben az esetben, ebben a összefüggésben trigger.innerhtml csak, mi van írva a gombot. Ez csak azért történik, ha ugrunk vissza másodjára, amely legyen, mi van azok között, gomb tag. Ez lesz a gombot egy vagy két gombot. És vessünk egy pillantást hogy ez eseménykezelő lenne nézd, ha megvolna fut a gyakorlatban. Tehát először is, akkor már megnyitotta events.js, amely a JavaScript-fájlt, ahol Definiáltam ezt a funkciót. És mint látható, ez nagyjából pontosan mit láttunk a dián egy másodperccel ezelőtt. És megyek át a nyitólap korábban használt. És én itt gombot egy és két gombot. És én kattints gombra egyet. Ön kattintott gombra egyik, ha Láthatjuk itt a figyelmeztetés. OKÉ. Kattints a gombra a két, akkor rákattintottam egy gombot kettő. Tehát mindkét gomb van ugyanazt a funkciót döntök, ugye? Mindketten voltak riasztásnevet esemény, de ez az esemény objektum amikor létrejön, amikor rákattintunk azt mondja nekünk, amely gombra kattintás. Nem kell írni két különböző funkciók vagy foglalkozik, amelyek átadni minden további információt. Mi csak támaszkodva mi JavaScript nem értünk, ami létrehozni, hogy fajta rendezvény célja a nevünkben. Van egy sokkal több, mint a JavaScript amit mi már le ez a videó, de mivel ezek a alapvető kell kapni elég hosszú az út tanulási mindent fogsz tudni kell ezt Érdekes nyelv. Én Doug Lloyd. Ez CS50.