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