[MUSIC PLAYING] DAVID Malan: Bu CS50 edir. Bu həftə doqquz başlanğıc. Bu var ki, nə var Cənab Boole 200 ad günü olmuşdur. Belə ki, bu yoldaşları deyil biz alluded etdiyiniz kimə istifadə haqqında çox bir dəfə Doğru və yalan Boolean dəyişənlər, 1 və 0 və. Bu Google idi Bu gün ona xərac. O, 200 çevirərək dönüb gedərdilər. Isterseniz belə CS50 nahar üçün bizə qoşulmaq link nəzər kurs saytında. Və belə simalar və dostları kimi bu burada Cambridge sizi gözləyir. Bu kimi Faces New Haven sizi gözləyir. Və Ken, əslində New Haven xahiş etdi Eli cizgi GIF deyirlər nə Burada son bir GIF hələ lunch-- başqa qrafik fayl format, olan ki, familiar-- istəyirik bu kimi bir az bir şey görünür. Belə ki, yalnız bir sequence OK of--. Cambridge burada heç kim gülür. Lakin New Haven, bu sağ, həqiqətən gülməli deyil? Oldu. Belə ki, orada bizə qoşulmaq yoxdur. Burada Harvard, xüsusilə, bu Çərşənbə, Bir sophomore əgər və ya birinci even-- edilməsi və ya hətta junior-- düşüncə kompüter bir keçid elm, bilirik var lazımdır ki, bir CS bu ədalətli məsləhət edilə Çərşənbə, qısa sinif sonra kompüter 4:00 PM elm bina Maxwell Dworkin. Biz əlbəttə nin bu qoymaq lazımdır sabah haqqinda, həmçinin. Donuts, mən bildirib alıram, xidmət edəcək. Oldu. Mən poking belə funny story-- ətrafında internet, Mən bəzi köhnə arxiv aşkar mənim keçmiş veb. Və bu ətrafında çıxır zaman, bu çox vaxtında görünür Mən UC seçkiləri ki, toplamaq ci ildən təkrar Ötürücü haqqında. Mən UC çalışır boynuburuq itirdi. Və bəlkə bu niyə hissəsi idi. Belə ki, bu dəfə də mənim web idi. Nədənsə, mən bu idi düşündüm insanlara izah əvvəl yaxşı bir fikirdir, nə mənim platforma idi və niyə onlar ki, mənə səs lazımdır ki, tapmaq üçün daxil etmək üçün basın retrospect olan informasiya, ürpertici cür. Mən, həqiqətən, nə bilmirəm. Amma əlbəttə ki, olmadı Mənim kampaniyası kömək edir. Mən də baş ki, aşkar year-- Bu Muppet təqvim idi. Muppets geri sonra dəbdə cür idi. Və ya bəlkə onlar deyil. Mən geri sonra Muppet təqvim var idi. Mən bu adı sərin olardı düşündüm Harvard şəbəkə kompüter frogman.student.harvard.edu. Zamanda, biz bütün benzersiz idi müəyyən edilə host adları. Və bəzi boş seçə bilər əvəzinə öz adı. Mən nədənsə qurbağa adam ilə getdi. Və sonra mən bir çox sərf started-- vaxt bu əlaqələri vasitəsilə tıklayarak bu səhər. Bu, mənim haqqında səhifə idi indi cür sitayişə layiq görünür. Lakin bu da yalnız göstərir nə qədər texnologiya gəlib. Mən geri gün, demək 486 bir şey idi. Bu gün, bu super, super var, super yavaş və daha az Siz ola bilər çox öz mobil bu gün. Orada daha çox var daha utancaq idi. Belə ki, onu tərk edəcəyik. Amma bu mənim ilk idi çapqın web-- daxil oh, no. Ki, yox idi. Web proqramlaşdırma mənim ilk real çapqın Mən yalnız unuttum bu site idi. Bir nöqtədə, mən öyrəndim necə təkrar fon şəkilləri edir. Və mən, bu kirəmit effektiv xokkey oyunçusu, futbol və golf kimi top, və ya hər hansı ki, Frosh Ani haqqinda üçün. Bu həqiqətən, həqiqətən ilk web-based layihənin I Us etdi Mən bəlkə sophomore edirəm il, kiçik year-- CS50 və CS51, bir alaraq sonra ümumi təqib-on dərsləri. Mən axtarır hiss arxiv vasitəsilə ki, mənim varisləri biri dostlar, Lee cür dəyişdi özünə copyright. Amma bu həqiqətən bir şey idi ki, Mən xəcalət malik olmalıdır. Amma zamanda, bu ilk veb-sayt oldu Mən bir neçə həftə əvvəl dediyi kimi, olan birinci bilər tərəfindən burada intramural idman üçün qeydiyyatdan keçin. Və belə çıxır ki, fon şəkilləri ki, kimi yaxşı bir fikir deyil. Amma web yeni idi, və biz bütün eksperiment edilmişdir. Bu nə mən yəqin zamanda etdi. Oldu. Belə ki, daha ADO olmadan, biz keçid həqiqətən, siz vermək üçün bu gün gears, Siz tapa bilərsiniz final parça son layihələr üçün xüsusilə faydalıdır həm də başlayacaq bütün dünyada geniş web etmək bir az daha aydın hiss edirəm. Həqiqətən, biz təqdim olacaq daha bir proqramlaşdırma dili oxşar adlı JavaScript və müxtəlif yollarla müxtəlif Dil biz indiyə qədər baxdı etdik. Belə ki, C, geri, bu tərtib dilidir. Siz compiler vasitəsilə run var. Siz etiraz kodunu almaq kodu və ya zeroes və olanları. Və o zeroes və olanlardır ki, CPU, Central Processing Unit, həqiqətən başa düşürük. PHP, əksinə deyil tərtib dil. Bir Nə var? Bu bir şərh dil var. Belə ki, bəzi proqram var tərcüməçi ki, deyilən üçün pseudocode üst oxumaq var alt soldan sağa və nə anlamaq Sizin syntax edir və o deməkdir ki, bir loop və ya bir vəziyyət olub və ya proqramlaşdırma hər hansı digər sayı yaradır. Belə ki, bir şərh dil var. Sonra biz HTML təqdim etdi. Və HTML hətta deyil proqramlaşdırma dili. Biz bunu nə zəng istədiyiniz? Yalnız A biçimlendirme dili, deyərək xülya yol sort kimi proqramlaşdırma yoxdur biz hətta geri Not günü gördüm. Heç bir loops var. Şərait yoxdur. Bu, həqiqətən bir dil məlumatın qeyd haqqında və formatlama və ya bir şəkildə quruluşlanması. CSS, eyni zamanda, eyni bir proqramlaşdırma dili. Daha estetik yönümlü oldu. Və bu gözəl tune düzmək üçün imkan verir font ölçüsü və rəng kimi şeylər yerləşdirilməsi və ki, bütün və. Sonra biz idi SQL. Belə ki, SQL, həqiqətən bir proqramlaşdırma var müəyyən mənada dil, olsa uyğun xüsusi verilənlər bazası. Amma biz yalnız sizə təqdim olsa da seçin və daxil edin və silin və yeniləmə və digər bir neçə Siz, həqiqətən, bilərsiniz çıxır funksiyaları yazmaq və ya onlar kimi prosedurları, baxmaq SQL və akt adlı olduqca PHP və C funksiyaları kimi. Belə ki, həmin mövcud olduğunu bilirik. Amma biz hətta onlarla narahat deyil biz yalnız burada səthində danışıq kimi. Və sonra JavaScript son Bizim languages ​​rəsmi olaraq tanıdıldı. JavaScript belə də edir bir şərh dil. Və o tanış, nə Siz ayırmaq istəyirəm bəzi xarakterik ilə C və PHP həm də? Nə müxtəlif edir? Auditoriya: Bu tərtib deyil. DAVID Malan: daha demək? Auditoriya: Bu tərtib deyil. DAVID Malan: Bu tərtib deyil. Belə ki, çox şərh olunur. Belə ki, tərtib deyil. Lakin bu PHP kimi bir az edir. Amma hələ fərqli Təəccüblü şəkildə PHP, şəkildə ən azı biz istifadə edəcəyik. Evet? Auditoriya: Bu klient çalışır. DAVID Malan: Bu çalışır klient, adətən. Ki, həqiqətən fərqləndirici var İndi bizim üçün xarakterik. C mənada server-side idi biz CS50 IDE hər şeyi etdi ki. PHP indiyə qədər olmuşdur server-side insofar bu kimi də interpreted-- olur Biz tərtib, lakin interpreted-- əlbəttə CS50 IDE, daxili bulud yalnız bir server və ya server. Amma JavaScript hətta Sizin olsa olacaq pset, demək, onu yazmağa başlayın səkkiz və etdiyiniz projects-- bəlkə final onu doğru gedir CS50 IDE və saxlamaq CS50 IDE, CS50 IDE ərzində faylları və, öz növbəsində, bulud server Bu ev sahibliyi edən, niyyətində deyil şərh və ya kodu icra. Əksinə, bu göndərilən olacaq brauzerinizin aşağı dəyişməz forması. Və sonra IE olacaq Chrome və ya Firefox və ya Safari və ya və ya ki, həqiqətən şərh nə Bu, alt üst sağ. Əsas fərqləndirmək Belə ki, Bu gün üçün xarakterik JavaScript klient ki və PHP, məsələn, olmuşdur server-yan var. İndi bu maraqlı təsir göstərir kimi, əqli mülkiyyət və kim həqiqətən, sizin kodu bilərsiniz. And olsun ki, siz edə bilərsiniz və web görmək ən kimsə var ki, hər hansı bir kodu JavaScript yazılı. Bəzən, oxunaqlı bəzən obfuscated oldu. Lakin vaxt ki, daha çox. JavaScript Belə ki, gözəl kifayət qədər deyil super oxşar syntactically, C. Və PHP kimi çox, heç bir əsas funksiyası var. Siz yazılı başlamaq istəyirsinizsə JavaScript kodu, bu gün görəcəksiniz kimi, yalnız yazmağa başlayın. Amma bu, xüsusilə, görürsünüz edir web browser kontekstində faydalı. Lakin, mənim kiçik adətən əvvəllər disclaimer Siz getdikcə bilər ki, demək idi Bu gün istifadə JavaScript server-side Node.js adlı xülya çərçivəsində istifadə CS50 öz applications bəzi yazılmışdır. Həqiqətən Node.js. istifadə edir 50 yoxlayın Amma biz diqqət olacaq Out burada JavaScript klient. Belə ki, burada PHP şərait bir sıra edir. Bağışlayın, həqiqətən in-- ki, Şərhdə, çox doğru deyil. Burada da bir sıra JavaScript şərtlər. Syntactically, o, C və PHP eyni. Cənab Boole nin ifadələri var Eynilə, syntactically C və PHP həm də eyni. Biz də açarları var Eyni baxmaq JavaScript. Biz loops üçün eyni strukturlaşdırılmış, loops isə loops isə yoxdur. Bu bir az fərqli. PHP hər tikmək idi istifadə ola bilər ki, və ya bəlkə, pset yeddi istifadə edəcək. JavaScript bu xüsusi versiyası Siz sözün bir şey demək harada obyekt dəyişən əsas kimi olan deyərək çox qısa yoldur, Mən bir obyekt var və, əgər biz lazımdır bir an yenidən bu barədə danışmaq və mən bütün təkrarlamaq istəyirəm daxili əsas dəyər cüt, Mən necə anlamaq yoxdur sıfır, bir ilə sayca index onları, iki, üç. Mən sözün bu demək olar. Və hər iteration, JavaScript Mənə dəyişən əsas yeniləyir üçün sonra ilk əsas, növbəti əsas olmaq, sonra növbəti düyməsini, sonra isə növbəti əsas, və s. Mən müalicə onun dəyəri əldə edə bilərsiniz JavaScript bir obyekt kimi biz görəcəyik bir var sanki PHP assosiativ array. Həqiqətən, siz, nəhayət bükülmüş əgər sizin assosiativ array nə ətrafında ağla PHP, indi kimi hesab edə bilər JavaScript bir obyekt ilə eynidir. Amma bu bir az var bir oversimplification. Diziler gözəl kifayət qədər, eyni baxmaq bir xarakter istisna olmaqla PHP. Burada itkin bir şey var biz PHP ilə ötən həftə gördünüz ki. Nə çıxarılmışdır var? Evet? No dollar işarəsi. Beləliklə, biz bir geri istəyirik daha normal dünya yerləşir dəyişənlər dollar əlamətləri yoxdur. Amma onlara prefiks nə adətən var ilə. Və var dəyişən deməkdir. Və PHP kimi çox loosely deyil növləri var vasitəsi typed--, nömrələri və strings var və üzüb gedirdi və belə forth-- JavaScript eyni növ var. Lakin bu azad ki, çap biz proqramçılar onlara müəyyən etmək yoxdur. Biz yalnız xəbərdar olmalıdır müxtəlif növləri var. Dəyişənlər, meanwhile-- burada necə biz "Salam, dünya" elan edə bilər bir string kimi. Bu eyni deyil bildirək PHP lakin heç bir dollar işarəsi. Bu bir şey olacaq deyil daha bu gün görmeye başlamaq, bir obyekt var qovuşdurmağımız düymələri və dəyərləri ilə. Və cəhd istəyirsinizsə ötən həftə nəticə çıxarmaq syntax bir az fərqli. Amma bir az ağlı başında olma neçə yoxlamaq düymələri bu obyekt var görünür edir? Belə ki, dörd görürük. Mən iki oldu. Belə ki, əslində iki var. Belə ki, bu toplusudur iki əsas dəyəri cüt. əsas onların dəyəri FB edir rəmzidir. əsas onların dəyəri 101,53 qiyməti var. Belə ki, həmin iki əsas dəyər cüt var. Və PHP xatırlayıram və bu yenidən yalnız sort sintaktik fərq. Bu, bütün deyil ki, intellektual maraqlı. PHP bu eyni yazılı ola bilər Bu aşağıdakı quote kimi bir şey bərabərdir. Mən kvadrat mötərizədə bu dəyişir. Və sonra mən bu dəyişə bir sitat söz "qiymət". Və sonra bir nöqtə istifadə etməyin. Mən keçən həftə nə istifadə etdi? Bəli, bərabər işarəsi funky notation arrow. Və sonra mən burada eyni şey idi. Burada eyni şey. Və bütün var. Bu deyil, əgər Belə ki, gözəl həqiqətən xatirəsinə batmış yalnız Hələ bu, həqiqətən, çünki intellektual maraqsız. Bu, yalnız sintaktik fərqlər var. Amma fikir tam olaraq eynidir. Bu dəyişən Inside JavaScript quote əsas dəyər cüt toplusudur biri biri rəmzidir qiymətidir. Mən o dəyərləri əldə edə bilərsiniz Aşağıdakı sintaksis ilə. Just PHP, mən biləcəyi kimi imkan kimi bir şey oxşar qutusu bir az böyük etmək. Just PHP, mən biləcəyi kimi dammit, oh şeylərdir edir. Hadi. Just php OK, biz lazımdır kimi yalnız aparıcısı qeydlər istifadə edin. Just PHP kimi, mən ["simvolu"] $ quote $ quote etmək, və bu məni olacaq dəyəri "simvolu". JavaScript, bu olacaq eyni, yalnız bunu edə bilərsiniz qovuşdurmağımız. ki, yalnız bir şey itkin dollar əlamətidir. Belə gözəl kifayət qədər sonra var bütün çox yeni sintaksis. Beləliklə, biz diqqət bu gün, həqiqətən, var ideya və bəzi tətbiqləri. Və ilk proqram güc Siz pset getdi əgər gördük yeddi artıq bu sintaksis edir. Belə ki, var pset yeddi, əgər görüldü və ya hələ gördük, veririk bir fayl var bilirik ki, Siz config.json-- JavaScript adlı Notation Obyekt. Niyə? Biz təmin etmək istədi bəzi əsas dəyəri cüt ilə bir şablon. Biz sizə bir siyahısını verə istədi ev sahibi, server adı. Biz sizə vermək istədi Sizin istifadəçi adı üçün tutucu və parol üçün tutucu. Siz görmüyorsanız Bu hələ narahat deyil. Pset yeddi bu barədə daha ətraflı [? spec. ?] Daha sonra, Aydındır ki, biz istəyirik to-dos doldurmaq üçün Siz daxil zaman, çünki Siz hər CS50 IDE, Öz adınızı və şifrənizi var. Beləliklə, biz bir yarısı bir çox istifadə etdiyiniz bilər və ya daha çox müxtəlif fayl formatları. Biz Txt faylı istifadə edə bilər. Biz CSV faylı istifadə edə bilər. Biz istifadə etdiyiniz bilər ki, bir INI fayl XML fayl, bütün dəstə daha acronyms ki Əgər eşitmişəm bilər. Bu ixtiyari cür Günün sonunda. Amma bu gün super məşhur bir mətn format JSON-- JavaScript Obyekt adlı Notation-- ki, bu kimi görünür. Bu, bir az sirli var lakin nümunələri görürsünüz. Siz açıq buruq ilə başlamaq brace, və eyni ilə son. Inside ki, bir şey. Bu əsas dəyər cüt var. Belə ki, bu mən bir obyekt deyil burada ekranda baxaraq ki, bir dəyəri var bir əsas var. Və yalnız əsasında inferring Əvvəlki model, əsas burada nə var? Database, şey kolon sol. İndi dəyər olmaq olur Bir neçə xətləri bu dəfə. Amma dəyəri buruq ilə başlayır burğu və buruq brace ilə başa çatır. Beləliklə, nə siz təklif edirəm verilənlər bazası dəyərinin növü? A lüğət ya, daha çox müfəssəl bir obyekt. Sağ? Bu data strukturu cür ki, özü digər strukturları istifadə edə bilərsiniz. Bu bütün şey biz əgər Belə ki, bir obyekt və obyekt zəng pairs-- əsas dəyər bir dəstə bazası özü dəyəri bir obyekt deyil. verilənlər bazası dəyəri bütün dəstə var əsas dəyər cüt ilk olan ev sahibi, sonra, ad istifadəçi adı, parol sonra, dəyərləri hər, eyni zamanda, bu ikiqat quotes yalnız bir qazma string. Belə ki, deyil, hətta yalnız hələ super aydın, Bu yalnız bir bilirik ki, standart, ədalətli qazma yolu bir standart formatda məlumatların saxlanılması. Amma ümumi səhvlər sizə hətta pset yeddi, edə bilər, az axmaq şeylər, əgər kimi təsadüfən orada vergül buraxmaq. Ki, fayl səbəb olacaq mütləq oxunaqlı olmayan. Siz təsadüfən kimi şeylər buraxmaq edin quotes, oxunaqlı olmaq niyyətində deyil. Belə ki, olduqca nitpicky fayl format var, lakin bu super ümumi var, biri. Və biz, baxmayaraq ki, istifadə üçün baş Əgər hər hansı bir javascript başqa istifadə etməyin, pset yeddi. Oldu. Belə ki, bu şəkil xatırlayıram. Biz ki, HTML, haqqında danışdı kodu bu kimi baxmaq bilər. Bu Hypertext Markup Language deyil [Işitilemez] yalnız üçün "Salam, dünya." Amma sonra biz təklif geri isə kömək edir ki, düşüncə başlamaq istəyirəm bilər bu artıq bir ağac kimi haqqında. Əslində, abzas ki, biz Okunabilirlik naminə yalnız istifadə və ya stil xatirinə üzrə Sol bilərsiniz cür Bu ağac, sizə dilinə tərcümə olunacaq bəzi xüsusi kök node var ki, biz lazımdır generically, sənəd adlı aşağıda kök HTML element və ya tag, HTML, daha sonra iki var uşaqlar, baş və bədən. Və sonra öz növbəsində, baş bir mövzu var. Və adı bir mətn dəyəri var. Və bədən eyni mətn dəyəri var. Rahat söz əgər Belə ki, Bəli, bu HTML bilər ki, və kimi bir şəkil çəkmək Bu, sağ tərəfində gözəl ruhi model indi biz JavaScript ki, bir proqramlaşdırma dil ki brauzerlər bilər icra və sizin üçün şərh, nə çıxır ki, biz kodu nə istəyirik bu manipulyasiya başlayın xatirəsinə ağac strukturu. Biz qurmaq yoxdur yaddaş ağac. Biz növ etmək yoxdur pset beş-stil data structure mürəkkəbliyi. gözəl kifayət qədər, sonra browser, alt HTML üst şərh, sol və ya sağ, sanki gedir Bizə göstərici ekvivalent əl Pulsuz üçün ki, bütün ağac. Bu ağır iş bütün yoxdur. Ki, nə Mozilla və Apple və başqaları bizim üçün etdik. Və JavaScript ilə biz gedir nəzarət edə və dəyişə və bunu maraqlı şeylər ki, ağac, başqa məlum bir DOM və ya Document Object Model kimi. Nə cür şeylər? Bəli, bu çıxır ki, JavaScript var Bu camaşırxana siyahısı baş verə bilər hadisələr. Və biz, həqiqətən, istifadə etməmişlər söz həftə sıfır və pset-ci ildən sıfır biz Not haqqında söhbət zaman. Siz çox güman ki, istifadə etməyib Sizin Scratch layihə bir hadisə. Amma geri bilər sadə Marco Polo Məsələn, biz iki idi sprites, onlardan biri Marco bildirib. kimə sonra dinləmə sonra digər ki, hadisə eşitmə, Polo bildirib. Əgər, çekinmeyin ki, hələ geri baxmaq. Amma bu yalnız edir demək və siz cür edə bilərsiniz bunların adlarını nəticə çıxarmaq şeylər, JavaScript, bu çıxır, Bizə qulaq asmaq üçün bir yol vermək niyyətindədir siçan enən və ya siçan qədər davam üçün və ya əsas aşağı və ya əsas gedir qədər davam və ya onsubmit onselect və ya bir şey onresizing. Başqa sözlə, hər hansı bir fiziki fəaliyyət bir insan bir browser ilə edə bilər ki, hər gün nə ki, siz yaza bilərsiniz ki, kodu bu tədbirlər üçün qulaq asır və sonra uyğun bir şey yoxdur. Məsələn, Google Maps istifadə əgər, Siz basın və hərəkət əgər nə olur siçan, adətən? Siz basın və sürükleyin bilər? Evet? Məhz. Xəritə hərəkət başlayır. Belə ki, sort nə görə bilərsiniz burada, orada nə var. Və necə Google həyata keçirir? Bəli, ehtimalla, onlar Bu hadisə bir neçə istifadə edərək dinləyicilərə, bir ki, , siçan üçün qulaq asmaq deyir istifadəçi fiziki belə aldadan onun trackpad və ya onun siçan itələyir aşağı. Və sonra biz aradığınız hərəkət kimi bir şey və ya digər hadisə Bizə drag ələ imkan verir. Və əslində, drag bu eyni deyil dot mümkün variantları dot siyahısı nöqtə. Belə ki, bu güclü olacaq yol istifadəçi cavab başlamaq üçün hətta o həqiqətən klik əvvəl açıq bir şey kimi təqdim edir. Amma biz təqdim olacaq bir neçə mövzular orada almaq üçün. Lakin ilk, edək keçid bəzi aktual kodu. Beləliklə, mən getmək üçün gedirəm irəli və açmaq dom-0, olan bir çox sadə nümunə burada sadəcə zoom əgər ki, Mənim üçün burada bu giriş var. Mən irəli getmək və yazın gedirəm Mənim adıma "David" və təqdim basın. Və sonra, olsa növ ucuz, mən deyir ki, up pops ki, bu tez var "Salam, David!" Belə ki, bu cür deyil kimi "Salam, dünya" biz biraz geri C etdi və hətta PHP I dinamik var, çünki mənim ad outputted. Mən burada başqasının adını edə bilərsiniz. Mən sadəcə, bu dəyişə bilər kimi, Hannah, təqdim basın. Şübhəsiz ki, az pop-up dəyişikliklər. İndi, pop-up biridir web ən sui xüsusiyyətləri. Və əslində, geri gün pop-up blokerlerinin moda minib çünki bəzi website-- gedəcəyini bəlkə şübhəli place-- ki, birdən-birə onda olardı ekran peppering başlamaq pop-up bütün dəstə ilə. Və bu qabiliyyəti açılır istifadəçi qarşısında pəncərə xüsusilə olmamışdır insanlıq tərəfindən yaxşı qəbul. Gördüyünüz nə ki, var bu şey qarşısını almaq, olan yalnız bu bütün şey çirkin edir. Beləliklə, biz bir ehtiyac olacaq istifadəçi təklif yaxşı yoludur. Amma indi ki, iş görünür. Belə ki, yalnız daxilən, nə burada baş görünür? Mən irəli getmək və təqdim basın və sonra bir şey aydın olur. Amma baş deyil nə baş verdi Keçən həftə mən təqdim tıklayan hər zaman? Ekranda nə etmədi? Bağışlayın? Yenidən yüklə. URL bütün dəyişmədi. Mən bu dom-0 olduğunu söylədi Mən DOM-0 hələ edirəm. Adətən, biz bəzi digər dəyişib almaq istədiyiniz Register.php ya kimi kimi URL. Lakin hətta mən azad zaman OK tıklayarak bu şey, Saytın URL fark qalır tamamilə qoydu. Və əslində, mən bir az Ben əgər şübhə, mənə Chrome açmaq bildirin. Mənə Network nişanı açmaq edək. Və bu anda boş görürsünüz. Mənə davam və Maria yeniden edək. Heç bir şəbəkə trafik var. Belə ki, heç HTTP var. Şübhəsiz ki, mən mənbə kodu baxsaq şeylərdir üçün oxşar pəncərə bağlayın və mənbə keçirmək gedin. Maraqlı. Bir var kimi görünür Yeni tags, onların arasında script. Belə ki, CS50 ərzində bir nəzər salaq IDE məhz mən istifadəçi göndərdi. Belə ki, burada edək is-- HTML yalnız yönəldir. Burada dom-0.html alt yarısı var. Və bu adı var ki, görürsünüz, baş tag, bir bədən tag, bir forma tag. Amma nə kimi həyata atlamalar müxtəlif heç vaxt var, xüsusilə də əgər Hər hansı bir JavaScript özünüzü yazılı. Mənə bir az diyirləyin bildirin Burada sağ. Mən giriş var, başqa giriş təqdim edir. Mən yeni növüdür bir ID, var. Amma biz CSS ilə bu gördünüz. Nə mütləq yeni? Evet? Nice. Oldu. Belə ki, onsubmit deyir harada, təqib görünür nə görürsünüz. Bu əlamətdir HTML nomenklaturasında. Onun dəyəri burada bu sitat simli edir. Və bu bir az görünür ilk baxışda qəribə. Bu HTML deyil. Bu CSS deyil. Siz tahmin bilər Bu, JavaScript edir. Belə ki, bu daxil ki, görünür web page Tanışma adlı bir funksiyası var. Mən yalnız inferring alıram bir söz var, çünki salamlayıram. Bu, açıq paren var yaxın paren, nöqtəli vergül. , C funksiyası kimi görünür PHP funksiyası kimi görünür. Şübhəsiz ki, bu, olacaq bir JavaScript funksiyası ola bilər. Sonra mən yalan qaytarılması alıram. Biz geri gəlmək lazımdır yalnız bir anda olduğunu. Amma bu funksiyası müəyyən olunur? Yaxşı mənə diyirləyin bildirin fayl üst. Və bu uzun xətt var, baxmayaraq ki, Bu nisbətən sadə deyil. Mənə burada kiçiltmək edək bu dörd xətləri üzrə diqqət. , JavaScript belə ki, yalnız PHP kimi, yalnız demək, sanki, sözü "funksiyası" funksiyası adı, və sonra hər hansı bir parantez bu halda heç bir dəlilləri arqumentlər. Və heç bir qaytarılması növü var JavaScript, yalnız PHP kimi. Belə ki, C. bir az looser var Açıq buruq brace, yaxın buruq brace. JavaScript daxil bir funksiyası var bir tövsiyə funksiyası lakin bir funksiyası alert adlı həyat yeganə məqsədi ki, olduqca çirkin qoparmaq üçün biz bir an əvvəl gördüm ki, təklif. İndi bu bir qurtum növüdür. Burada nə olur? Belə ki, başlamaq edək burada hər şey seçin. Ki, xəbərdarlıq eyni arqument var. Və nə olub? Bu yalnız bir string kimi görünür. Və bu PHP fərqli olaraq fərqli olaraq, çıxır C, JavaScript etməz Siz bir quotes və ya cüt quotes əgər. Onlar ekvivalent olacaq. Və səmimi, yalnız var bu gün məşhur həmişə JavaScript proqramçılar üçün nədənsə vahid quotes istifadə edin. Bunu yalnız bir şey var. Amma biz, həmçinin ikiqat quotes istifadə edə bilər. Belə ki, plus yeni bir xarakter var. Amma sizin etdik edən əvvəl, üstəgəl nə deməkdir? Bəli. Concatenate. Beləliklə, biz PHP gördüm. Yalnız dot var PHP operator ki birlikdə iki strings concatenate edəcək. C boyun bir ağrı bunu idi. Idi pset altı olan geri boyun bir xüsusi ağrı, istifadə etmək olardı strcat kimi bir şey yaddaş ayrılması sonra yığını və ya yığın. Siz hoops vasitəsilə jump idi yalnız iki strings concatenate üçün. JavaScript, bu super sadə. Just onların arasında plus operator istifadə. Belə ki, kompleks axtarır şey bu görünür Çünki sonunda Bu bütün simli, mən yalnız bir nida nöqtəsində concatenate. Nə idi up yaratma edilmişdir əgər "Hello, David", "hello, Hannah" "Salam, Maria" və s aydın iki arasında ki, orta şey müsbət mənə nə erişim lazımdır? Nə əmin üçün var? Bəli. Belə ki, burada iddia lazımdır onların adı cavab, sağ? Belə ki, onların adı final qədər atdı nəticə. Belə ki, bu nə deməkdir? Yaxşı, mən əvvəllər təklif DOM qondarma şəkil Bu xüsusi kök element var yol top sənəd adlandırıb. İndi, bu olacaq, çıxır xüsusi qlobal dəyişən olmaq JavaScript, bir olan daxil faydalı funksionallıq bütün dəstə. Faydalı funksionallığı arasında qabiliyyəti hər hansı bir nəslindən node almaq üçün. Həmin meydanların və ya düzbucaqlı və ya ellipses yalnız belə danışmaq, bir ağac qovşaqlarının. Belə ki, daxil çıxır ki, JavaScript sənəd obyekt başqa bir kimi tanınan bir funksiyası var üsul ki getElementById deyirlər. zəng üçün syntax JavaScript funksiyası ki, bir obyekt və ya a daxilində dəyişən yalnız dot notation edir. Və biz C bu gördüm nə struct syntax. Siz cür, pset yeddi görürük sort, siz CS50 :: sorğu görəndə. PHP colon colon başqa bir funksiyası zəng yolu bir obyekt daxilində. Amma indi JavaScript üçün, yalnız bir dot var. Və bu funksiya, gözəl kifayət qədər cür Bu ID element almaq does-- nə deyir. Bir element yalnız bir adı DOM bir tag və ya node üçün. Və belə ID "adı" ilə element almaq Mənim HTML burada şeylərdir deməkdir. Bu HTML əsasında, nə node və ya nə HTML tag am program əlli olacaq document.getElementByID axtararaq? Bəli, dəqiq. Mən daxil almaq üçün gedirəm kimin ID orada element "adı" dir. Belə ki, xüsusi, siz Bu funksiya hesab edirəm ki, verilməsi yolu kimi, getElementById xüsusi node bir göstərici geri ağac. Biz bu tərtib deyil ağac, ancaq bir yolu var ki, əldə etmək düzbucaqlı və ya düzbucaqlı benzersiz öz ID vasitəsilə təyin. İndi niyə bu faydalıdır? Bəli, bu çıxır Siz kazanılmış sonra ki, olan düzbucaqlı ki node, şəkil, onun daxilində node, öz növbəsində, bütün dəstə var properties-- əsas dəyər cüt və ya dəyəri adlanır olan bir data. Belə ki, sanki, bir növü var qurtum bütün şey izah etmək. Lakin günün sonunda, bütün bu yoxdur vermək deyil istifadəçi tipli bir string Bu hiyerarşik moda. Amma kimi deyil bunlar neçə. Və ya əksinə, bəzi maraq hələ də var. Ki, bütün iş idi. Niyə mən geri düşünürsünüz salamlayıram zəng sonra yalan? Bu ki, bir az çirkin görünür Mən iki hesabatları var semicolons ayrılmış. Bir tahmin edin. Mən saxta qayıtmaq aradan varsa, nə yalnız qeyri-iradi, baş verə bilər? Bağışlayın, bir daha demək? Windows bir dəstə açın. Belə ki, potensial bəlkə bir şey ki, baş verəcək kimi. Başqa? Sorğu harada təqdim edə bilər? Eyni səhifə. Belə ki, əslində, ki, var Burada cavab yaxın, hətta fərqli olaraq, baxmayaraq Keçmişdə, mən var fəaliyyət atribut müəyyən, olan normal etməmiz lazımdır. Bir default var çıxır. Siz hərəkət müəyyən deyilsə, Bu quote deyən kimi, dırnağı bağlamaq və ya fayl özü adı Bu halda hansı ki dom-0.html kimi. Bu, sadəcə cür, inferred edir daha doğrusu nəzərdə tutulmuş. Mən bunu yoxdur, belə ki, əgər Qeyd edək. Oxşar xilas edək. Mən yalan qaytarılması xaric etdik. Oxşar qayıdaq nümunə və güc onu yeniden. Və mənə təklif görmüşəm bilər Bu CS50 dəfə bir dəstə müzakirə. Bir şey heç fəaliyyət göstərən əgər funky və beklediğiniz kimi browser, davranır deyil oftentimes siz keçirmək lazımdır Shift və sonra yenidən yüklə basın. Bu yeniden hər bir fayl məcbur edəcək və brauzerinizin yerli cache istifadə və ya surəti indi ki, mənə irəli gedək və Mənim inspektor, Network nişanı açmaq. Mən basın gedirəm Qeydiyyatdan keçin Qeydiyyatdan keçin çünki Qoruğu I Bu satır silmək istəmirəm Mən başqa yerdə üz whisked almaq. Mənə burada davam edək və Andi yazın, təqdim basın. Oldu. Gözlənildiyi kimi görünür. Bu, "salam, Andi." Deyir Mənə OK basın edək. Maraqlı. , Səhifə dəyişib Qeyd edək ki, Orijinal səhifə olsa. Dəyişdirilmiş URL cür edək. Bu, bir sual işarəsi əlavə adətən bir göstəricidir ki, biz bir şey təqdim etməyə çalışdıq. Və sonra alt, daha aydın, Burada faktiki HTTP sorğu, 200 bir cavab var ki, burada məni geri gətirdi. Belə ki, bu nə deyil biz doğru etmək istəyirsiniz? Mən istəmirəm, çünki bütün səhifə yeniden. Mən əvəzinə qayıtmaq istədi belə qısa dövrə yalan brauzerinizin default davranış olan səhifə təqdim, əlbəttə, idi. Belə ki, bir nəzər edək cüzi daha yaxşı nümunəsidir. Bu dom versiya biridir. Və aşağıdakı bildirim. Siz grok etməyin, əgər OK kodu xətləri bütün. Amma əsaslı müxtəlif nə Bu həyata haqqında? Mən davranır nəzərdə lazımdır eyni eyni şey deyil. Mən açıq-aydın fərqli nə var? Evet? Auditoriya: [işitilemez]. DAVID Malan: Bəli. Belə ki, funksiyası müəyyən edilir differently-- şəklində sahibi başqa sözlə,, orada xətt 7-- və ya daha doğrusu, line 8-- artıq Mən onsubmit atributu var. Əvvəlki Məsələn, mən bu idi. Və sonra mən sözün mənim kodu yazdı. Və sonra mən yalan qayıtmaq bildirib. Və bu rub olmasaydı Siz hələ yanlış yol, Bu başlamaq lazımdır insofar yalnız HTML kimi, kimi, biz başladıq zaman birgə mingle stil atributları CSS ilə, yalnız bir az almaq başladı messy və ya bir az yanlış hiss edirəm. Eynilə burada, əgər Siz HTML alaraq başlamaq və sonra avtomatik olaraq Bəzi JavaScript kodu Plop bir sitat simli ortasında, bu çox maintainable olacaq deyil. Sağ? Bu ilk belə aydın deyil JavaScript kodu harada yer. Belə ki, kimi həqiqətən gözəl olardı yaxşı dizayn prinsipi, Bizim HTML tamamilə saxlamaq imkan Bizim JavaScript ayrı. Belə ki, biz var nə, bunu burada görülən aşağıdakı kimidir deyil biz sadəcə yalnız biçimlendirme üçün HTML istifadə edin. Və belə versiyası bu biri, bütün Mən bir unikal ID formasıdır. Və sonra burada, mən istifadə alıram JavaScript xüsusi xüsusiyyət vasitəsi Mən nə ola bilər anonim funksiyası adlanır. Belə ki, mən zəng əgər çıxır ki, "demo" nın document.getElementByID ki, mənə bir göstərici verilməsi kimi Mənim ağac bu node, forma element, belə danışmaq. İndi mən yalnız bilirik HTML bir az bilmədən indi biz bir online oxumaq qarşılaşdıqda arayış, bir forma element dəstəkləyir Tədbirdə listeners-- bütün dəstə ilə başqa sözlə, hadisənin camaşırxana siyahısı biz bir an əvvəl gördüm dinləyicilərə. Mən sənədlərin oxu bilirik ki onsubmit etibarlı hadisədir bir forma element üçün dinləyici. Belə ki, bir dəfə, Mənə nə üçün təhlükəsiz ki node almaq aşağıdakıları edin ağacdan, forma element, və onun sözdə daxil olmaq onsubmit əmlak. Belə ki, dot yalnız deməkdir bu bir mülkiyyətidir Bunun içərisində xüsusi dəyər kimi. Və nə data type I am təyin, yəqin, olan onsubmit üçün daxili səmərəli dəyişən ağac ki node? Bu struct daxilində bir sahə var. Data type nədir? A funksiyası, evet. Belə ki, PHP, bu ki çıxır. Və hətta baxmayaraq bu barədə sizə demək deyildi, C də funksiyası göstəricilərinə var keçir və funksiyaları təyin etmək imkanı dəyişənlərin "dəyərlər özləri kimi. Və biz fikrində deyilik C. geri tənəzzül Amma indi, bu çıxır burada sağ tərəfində, Bu bir az görünür, baxmayaraq ki, funky, bu vasitələr, hey browser, Mənə bir funksiyası verir. Mən hətta verilməsi narahat fikrində deyiləm Bu bir ad Mən sözün deyiləm, çünki nin zəng edək təyin etmək niyyətindədir Bu funksiya ünvanı dərhal onsubmit üçün. Başqa sözlə, brauzerinizin, siz ehtiyac yoxdur Bu funksiya adlanır nə bilmək. Siz yalnız bilmək lazımdır harada yaddaş var. Və belə ki, yalnız kifayətdir orada bir bərabər işarəsi var və kimi, bu adlandırma narahat deyil foo və ya salamlayıram və ya hər hansı digər söz. İndi bu yalnız bir üslub şeydir. Mən bu buruq brace hərəkət edə bilər the-- sorry növbəti xətti üzərində kimi biz adətən CS50 yoxdur. Amma JavaScript, bu həqiqətən stylistically ümumi yalnız buruq brace saxlamaq üçün, ilk line birinci. Amma bundan sonra var heç bir şey maraqlı. Ki, açıq buruq brace yalnız mənim funksiyası start ayırır. funksiyası indi eyni, mən var istisna olmaqla, geri yalan daxil bu funksiya daxilində. Çıxır, çünki və yalnız ki oxu bu bilirik documentation-- Siz funksiyası təyin ki, əgər ki, onsubmit handler yalan qaytarır, browser yalnız bilir və qəbul edir bir server şəklində təqdim deyil. Bu doğru qaytarır, bu, təqdim edəcək görəcəyik səbəblərdən bir server üçün yalnız bir anda faydalıdır. Və sonra nöqtəli vergül sonra buruq brace orada yalnız Mən funksiyası müəyyən edildiyini edirəm deməkdir. Siz tezliklə zəng etmək üçün nə Bir təqdim eşitmək kimi. Oldu. Bu hələ arguably cür çirkin deyil. Beləliklə, biz daha nə edə bilər? Bəli, bu sonra çıxır last-- versiyası iki, və biz bu yalnız nəzər lazımdır. Edilməsi riski Bu uglier, bu çıxır kitabxana da var ki, Dünya jQuery çağırıb. Və jQuery bir super Məşhur JavaScript kitabxana ki, ən ki, məşhur deyil hər hansı bir bu deyil JavaScript insanlar çaşdırmaq üçün qeyri-adi JavaScript jQuery. Niyə? JavaScript özünü çox var hər şeyə bunu verbose yolları document.getElementByID, dadadadadada. Siz çox olan qədər başa kod uzun xətləri. Belə ki, John Resid adlı bir yoldaş, olan həqiqətən bir başlanğıc üçün çalışır bu gün up, çıxdı Bu kitabxana il əvvəl bir çox insanlar əməyi dəyişikliklər jQuery çağırıb Aşağıdakı şəkildə syntax. Və yalnız belə ki, bu gördüm Siz daim lazımdır, çünki bir bunu əgər bu görmək web-based final layihə, Bu ekvivalent yol olardı istifadə edərək eyni funksiyanı həyata keçirir Bu xüsusi kitabxana. İndi daha sataşmaq çox ayrı bütövlükdə bu, Yalnız bəzi nümunələri baxaq. Bu syntax var görünür neçə anonim funksiyaları və ya adsız funksiyaları və ya AKA lambda funksiyaları? İki, sağ? Və siz bilirsiniz ki, hətta Siz bu super rahat deyilik yalnız ki, deyir function () iki dəfə. Və bu çıxır ki, nə bu code əməlindəndir deyil və biz online istinadlar müraciət edəcəyik, nəticədə, bu bəzi yardım üçün. Bu yalnız o deməkdir ki sənəd hazırdır irəli getmək və qeydiyyatdan Aşağıdakı funksiyası HTML təqdim handler kimi Onun unikal fikir demo deyil element. Və sonra, ki, baş zaman, kodu bu iki xətləri zəng. Bu, bir daha faciəvi edir saxta qayıtmaq deyərək verbose yol. Və biz yalnız, çünki bu qeyd Bu online kimi kodu görəcəksiniz. Və bu ilə daunted bir şey var. Əksinə, nə unutmayın JavaScript ümumi olacaq bu paradiqma edir. Biz indi onu göstərir niyə belə ki, var. Oldu. Belə ki, çox yaşayış olmadan ki, sintaksis çox, Hər hansı bir sualınız var var bu nümunələr və ya fikir belə uzaq? Oldu. Belə ki, faydalı bir şey üçün istifadə edək. , Yalnız salam deyir ki, bir web page edilməsi belə ki, bütün maraqlı deyil underwhelm deyil. Bu, gözəl olmaq niyyətində deyil lakin faydalı bir şey gedir. Mənim kataloq qayıdaq burada açmaq form-0.html, deyirlər. Belə ki, bu birinci güman intramural idman qeydiyyat səhifə Hər hansı bir CSS və ya dizayn hər hansı bir hissi olmadan. Mən irəli getmək istəyirik və parol ilə qeydiyyatdan. Mən şərtləri razı gedirəm və şərtləri və Qeydiyyat düyməsini basın. İndi veb Siz "deyir qeydiyyatdan! (Bəli, həqiqətən.) " Işləyib kimi ki, görünür, lakin Mənə davam və yenidən məcbur edək. Və mənə yox, siz deyil, deyək mənim faktiki e-mail lazımdır. Və ya bəlkə biz yalnız orada mail demək lazımdır. Şifrə 12345 kimi olacaq. Və sonra, mən yalnız, çünki bir idiot, indi 123456789 var. Və mən sizin kutuyu fikrində deyiləm. Hmm. Oldu. Belə ki, bir neçə imkanı var burada yaxşılaşdırılması üçün. Və siz bilirsiniz, və ya pset görəcəksiniz Siz kod yazmaq olar ki, yeddi, və yazmaq lazımdır php kod müdafiə istifadəçi bu cür qarşı səhvlər aydın istifadəçi çünki əməkdaşlıq deyil. Və o sizə verilməyib bütün istəyirdi və ya hətta formatında dəyərlər Əgər siz onları istəyirdi ki. Belə ki, pset yeddi görmək lazımdır ki, biz, əlbəttə, bəzi ola bilər demək şəraitdə əgər e-mail, əgər bir username@something.edu deyil biz yalnız bilər üzr demək və istifadəçi üzr çox, siz pset yeddi ola bilər kimi. Yoxsa onlar qutusu yoxlanılır əgər, PHP çıxır, siz aşkar edə bilərsiniz, çox. Və əlbəttə ki, parol əgər register.php kimi uyğun deyil pset yeddi üçün, ki, aşkar edə bilərsiniz. Amma ki, bir ağrı var ki, boyun indi onlar tələb Bizə server bütün yol getmək. istifadəçi səhv məlumat verilir. Və ən azı istifadə halda bəzi meraklısı texnika, indi onlar geri arrow basın. Bu kimi gözəl ola bilməz web sites bir çox bu gün, daha çox dərhal olsa Əlaqə dərhal? Başqa sözlə, mənə versiyası gedək heç bir gözəlləşir olacaq bir. Lakin bu xüsusiyyət yoxdur. Malan, 12345, 123456789 deyil Qeydiyyat kutuyu gedir. Parollar uyğun gəlmir. Belə ki, bu pop-up ugly-- olsa biz nəhayət bu əvəz edə bilməz Bootstrap kimi bir şey ilə, Siz pset yeddi görmək lazımdır Mən bir çox məşhur kitabxana var parol uyğun deyil ki, aşkar. Oldu. Yaxşı, məni istifadəçi kimi düzeltmek bildirin. Mənə davam və 12345, 12345 deyirlər. Hələ müqavilə yoxlanılması deyil. Siz razı olmalıdır şərtlər və qaydalar. Belə ki, niyə? Biz artıq posited varsa bir yol var ki, və biz sizə lazım etdik səhv aşkar etmək üçün pset yeddi oxşar şərait server-side, niyə olmalıdır da JavaScript bunu narahat? Bir dəlil nədir əlavə üstünlük hansı Siz some-- kimi görmək istəyirik əlavə mürəkkəbliyi var. Bəlkə heç bir ayaq var. Bu nə ola bilər? Auditoriya: [işitilemez]. DAVID Malan: Oh, maraqlı. Potensial istismar. Belə ki, siz user değilseniz səhv istifadəçi girişi böyük ki, bəlkə bu, bütün yaxşı hətta server çatmır. Mən orada geri itələmək bilər və demək, siz yəqin ki, olmalıdır həmin problemlərin də düzeltmek. Amma ki, ədalətli deyil. Başqa? Auditoriya: [işitilemez]. DAVID Malan: Bəli. Biz əvvəl dediyi kimi bu kodu, edir klient tərəfində şərh. Bu server narahat etmir, deməkdir bu deyil server yük və ya gücü təsir. İndi az köhnə mənim üçün, Bu, heç bir mənalı təsiri var İndi bir istifadəçi var, çünki. Lakin hər hansı bir değilseniz layiqli ölçüsü haqqinda, xüsusilə böyük, Facebook kimi, Daha çox insanların off saxlaya bilərsiniz server daha yaxşı Bir server, çünki, əlbəttə, yalnız RAM məhdud məbləği var, GHz məhdud sayı, şeyi bir sonlu sayı Bu vaxt vahidi edə bilərsiniz. Daha çox insan var Belə ki dünya, server vuruş təsadüfən giriş səhv, kimi də əgər server off ki, yük saxlaya bilərsiniz. Plus, xüsusilə mobil Əgər var, əgər cihaz my.harvard daxil və ya Yale nin netid və ya kimi, bir çox bu gizlilik var ki, edir vasitəsi kimi saytları, kimi, bir lənətləmək ikinci və ya iki, bəzən. Və sonra, mənim Allahım, siz mistype əgər sonra geri basın və redo lazımdır. Belə ki, xüsusilə, gizlilik var yavaş şəbəkə əlaqələri. Amma JavaScript, çünki Bu müştəri çalışır və geri və irəli getmək lazım deyil Potensial yavaş internet üzrə bağlantısı əldə edə bilərsiniz təxminən ani Əlaqə. Belə ki, bu baxaq. Mənə açmaq edək form-0 Burada HTML baxmaq. Və yalnız neler görmək bildirin. Bu, bir formasıdır fəaliyyət register.php edir. Mən yalnız almaq istifadə edirəm Mən URL oldu ki. Amma parol üçün, biz, şübhəsiz ki istəyirəm əslində göndərmək üçün bu dəyişdirmək üçün. Burada növü mətn giriş sahəsində var. Burada başqa bir giriş var tipli parol sahəsində. Siz görməmişəm, əgər burada var, növü onay bir giriş. Amma heç bir JavaScript var Burada heç. Bu yalnız HTML ki, register.php gedir. Amma versiyası bir, mən bu pop-up almaq başladı, əslində burada nə görmək edək. Versiyası bir, nə Mən mən see-- gedirəm Mən kifayət qədər tövlə bilər düşündüm kifayət qədər sözləri ilə, lakin mən qaçdım. Versiyası var one-- getmək. Versiyası bir, aşağıdakı qeyd və ən yaxşı həyata keçirilməsi deyil, lakin bu, mənim ilk var. Aşağıda bildirək ki forması, mən bir script tag var. Və bir script tag deməkdir hey, browser, burada bəzi kodu gəlir, adətən JavaScript. Və indi mən edirəm nə görürsünüz. Xətti On Mən ancaq bilərsiniz Bildirilir ki, pseudocode 32 xətti oxumaq, var, belə ki, mənə vermək forması forma adlı dəyişən. Və sonra document.getElementId almaq "qeydiyyat." nın Bu nədir? Yaxşı, mənə burada geri edək. Və bildiriş, ah, mən forma element verdi bir ixtiyari, lakin təsviri fikir qeydiyyat. Belə ki, bu mənə dəyişən verir ki, Mənə node işğalçı imkan verir, ağac ki, düzbucaqlı şəklində çağırıb. form.onsubmit vasitələri, hey browser, bir hadisə dinləyici qeydiyyatdan Bu forma. Bu formasıdır Başqa sözlə, təqdim, aşağıdakı kodu icra. Bu ad, çünki lazım deyil niyə adını bilmək lazımdır? Siz yalnız bilmək lazımdır bundan dolayı, nə icra Bu anonim və ya lambda funksiyası var. Və funksiyası Burada bu xətləri bütün. İndi, vicdanlı olmaq belə olsa Heç JavaScript yazılı ola bilər əvvəl, yalnız C və PHP məntiq var. Belə ki, form.email.value əgər == "" - email sahədə boş əgər, Siz olmalıdır "ilə istifadəçi fəğan Sizin e-mail təmin edir. " Else əgər form.password.value istifadəçi boş Yell edir "Siz parol təmin etməlidir." Daha maraqlı məntiqi, form.password.value deyil, əgər bərabər form.confirmation.value-- təsdiq haradan gəldi? Mənə geri edək. Bəli, mən bu giriş adlı Burada sahəsində parol. Mən təsdiq burada bu çağırıb. Mən bunu deyilən bilərdi parol iki və ya başqa bir şey. Mən yalnız məntiqi yoxlanılması alıram bu iki eyni olduğunu. Bu cənab Boole bu çıxır Else-- bir Boolean dəyər, onay kutusunu again--. Beləliklə, mən demək əgər, nida point form.agreement.checked əgər, həmçinin istifadəçi fəğan. Belə ki, görürsünüz, bu sintaksis JavaScript çox ümumi, burada bu dotted notation var. Burada bir obyekt ilə başlayın. Siz bir dərin dalış parol kimi bir əmlak. Və sonra onun faktiki dəyər almaq. Və yenə, burada daxil edilir. Burada adı parol. Və onun dəyəri nə insan həqiqətən tipli etmişdir. Bütün bunlar belə hallarda, yalan döndü. Amma, mən doğru qayıtmaq. Və indi biz bir çox çekici istifadə Siz yalan qayıtmaq istifadəçi bunu nə dayandırmaq və onu və ya onun seçmək yenidən və ya yenidən yazın. Əks halda, biz doğru qayıtmaq. Və mənə bir təqdim edək Bu digər variant yalnız onların bəzi anlayış toxum. Bəli, bu versiyası 2, form-2-- Mən bir tərəfdən bir dalğa ilə bunu edəcəyik. Bu, maraqlı olanlar üçün, jQuery versiyası isteyebilirsiniz olan sizin xüsusi kitabxana dabble. Amma start-- və hər hansı bir sualınız edək? Mənə an çünki fasilə edək ki, sürətli və bir çox idi. Amma burada gözəl şey bütün ki, kodu olduqca çox eyni. yeni stuff dom nə edir? Bu düzbucaqlı hansılardır? Bu qovşaqlarının hansılardır? Anonim funksiyası nədir? Bir hadisə handler nədir? Amma şükürlər olsun ki, bu ən yalnız Həftə sıfır, demək, tam dairə. Oldu. Belə ki, bir az daha maraqlı bir şey? Bəli, ilk növbədə, mənə gedək irəli və Google Maps açmaq. Və bir üçün görəcəksiniz an, split ikinci, ne olur fark Mən kifayət qədər sürətli basın. Və Harvard Bununla əlaqədar belə sürətli Siz, həqiqətən, hiss yoxdur ki. Amma cür sort nə görürsünüz Mən basın və həqiqətən sürətli sürükleyin əgər? Siz online seyr edənlər, Siz 0.5x sürəti bu yavaş əgər, Bu daha yaxşı görə bilərsiniz. Yalnız nə olurdu Mən tıklayan və sürüklənəcəklər əvvəl? Mənə bunu bildirin burada cəhd edək 90210 kimi başqa bir şey. Uzaq getmək edək. Bu da həqiqətən sürətli idi. Necə Disney Dünya haqqında? Biz orada getmək. OLDU. Bir split ikinci üçün nə gördünüz? Sadəcə, meydanların, kimi, sağ? Plitələr üçün Placeholders? Yaxşı, burada nə olub? Google Maps bir gözəl nümunəsidir AJAX adlı bu texnologiya. Biz başlamaq lazımdır və bu xüsusilə JavaScript istifadə cəzbedici yol. Geri günü, var idi MapQuest adlanan bu haqqinda. Mən qəbul etməlidir bir 1990-cı ildən bu ekran, Siz istəyirdi harada Xəritədə burada baxmaq, siz sözün bir arrow basın olardı üst qədər ki göstərdi Xəritədə müxtəlif kvadrat. Siz sol hərəkət etmək istəyirdi göstərdi arrow tıklayan Xəritədə müxtəlif kvadrat. Və bəzi saytları hələ bu gün yoxdur. Lakin hətta MapQuest kazanılmış Google Maps kimi, daha yaxşı. Əksinə, nə bu yaxşı gün AJAX istifadə saytları var. AJAX-- başqa kimi tanınan Asynchronous JavaScript and XML, olan deyərək bir xülya yoldur texnologiya və ya texnika ki, JavaScript istifadə browser imkan verir əlavə HTTP sorğu etmək sonra səhifə yüklü edilmişdir. Belə ki, bu nə deməkdir? Bəli, bu cür olardı Gmail annoying Əgər istəyirdi hər dəfə Sizin mail yoxlamaq üçün, sözün Control-R və ya isabət etdi Command-R və ya yenidən yüklə düyməsini basın bütün darn səhifə yeniden olacaq. Sağ? Bu ağ flash olardı yəqin ki, ikinci. Siz axmaq tərəqqi bar görmək olardı. Yeni varsa yalnız görmək mail, bütün web səhifə və URL Siz yeniden olardı istəyirik. Amma ki, Gmail nə deyil. Sağ? Yeni bir e-poçt almaq zaman Gmail, nə ekranda olur? Bu, yalnız sağ, göstərir? Bu, sadəcə magically görünür masa yeni bir sıra kimi. Bu, həqiqətən əhatə edən bir mürəkkəblik layiqli məbləği. Əslində, bu ağacı haqqında düşünüyorsanız, burada sadə bir olsa, Gmail-- və mən baxmaq istədiyiniz koda sure-- olmaq yəqin ki, bir HTML masa var və ya bəlkə Bu göstərir bir unordered siyahısı kimi daxil olanlar e-poçt hər. Və belə ki, orada bu təsəvvür əgər sen xatirəsinə ağac sort cür görünür Gmail istifadə edərək bu kimi Google ooh, həyata zaman, Yeni bir e-poçt, bu deyil bütün ağac bərpa etmək istəyirik. Əksinə, bu node tapmaq istəyir gelen kutunuza təmsil ağac və yalnız bir yeni node daxil edin. Beş, siz pset üçün çox oxşar bir hash masa qovşaqlarının daxil idi, eyni Google vasitəsilə deyil Bu yazıb JavaScript kodu, bu ağacın traverse, harada şekillendirmek pəncərə ki inbox hissəsidir, və sonra yeni bir sıra daxil edin. Və yeni sıra yalnız bir deməkdir bir ağac yeni qovşaqlarının və ya daha çox. Və belə AJAX bu texnika ki, məhz bunun üçün imkan verir. Bir URL ziyarət sonra, lakin uzun crazy, və səhifə var bir dəfə Siz hələ də bilər yüklənmişdir daha çox məlumat qamarlamaq Bu olsun internet-- bir e-poçt və ya map-- bir kafel pərdə arxasında onu qapmaq və sonra səhifənin onu daxil edin insan həqiqətən deyil, belə ki, bunun üçün gözləmək lazımdır. Facebook Messenger eyni şəkildə işləyir. Digər websites-- hər hansı bir sayı oh, həqiqətən, hətta bu. Bu, səmimi, mehriban deyil, demək bir annoying bu gün edir. Mən cats-- bu üçün axtarış başlamaq əgər bir dəhşətli istifadəçi experience növüdür. Bu, yalnız mənim üçün axtarış başlayır. Yaxşı nə edir? URL həqiqətən dəyişməyib Mən yazaraq başlandı. Amma nə arasında olacaq maraqlı hmm, OK wire--. Nə rast olacaq tel burada yalnız weirder olur. OLDU. Mənə irəli getmək və yoxlamaq edək element və Network nişanı getmək bu etmək üçün cəhd texniki və pişik haqqında az. Mən yazın kimi, sanki, pişiklər and-- nə baş per-- edirəm ki, basın fikrində deyiləm. Oldu. Belə ki, burada aşağı, hər nələr olur dəfə görünür, bir xarakter yazın? Kimi, aşağı səviyyədə? Nə o hər biri ilə baş Mən klaviatura simvol yazaraq alıram? Evet? Auditoriya: [işitilemez]. DAVID Malan: Məhz. Bu simvol hər biri bir zamanda Google, bir gedir. Onlar bir simli qədər qururuq onların server təmsil Mən bu günə qədər çap etdik hər şey. Və hər dəfə yazın başqa xarakter, onlar bir onların gizli sousu istifadə alqoritm axtarış və anlamaq, bu cat səhifə deməkdir Bu pişik səhifə və ya kimi və ya? Müəyyən mənada, belə ki, bir mənə təmin edir ki, daha yaxşı təcrübə Mən hətta deyil fikrimi tamamlamaq lazımdır. Şübhəsiz ki, bu, faydalı şey, ümumiyyətlə AutoComplete. Onların alqoritmləri kifayət qədər yaxşı halda və mənim axtarış kifayət qədər aydın olduqda, Mən bütün söz yazın yoxdur. Onlar mənə olacaq nə Mən, həqiqətən, üçün axtarış alıram edir. Belə ki, nə Google ani çağırır Axtarış yalnız AJAX istifadə edir onlara tələb etmək imkan verir kodu istifadə bir web browser vasitəsilə əlavə content Bu istifadə pərdə arxasında yeni dil, JavaScript. Beləliklə, biz sol bir neçə dəqiqə var. Və mənim dost qədər zəng edək Səhnəyə Colton up, görünürdü-ci ildən xüsusilə əyləncə son dəfə bir texnologiya təqdim etmək bəzi ki, maraq ifadə etdilər son layihələr üçün. Biz gətirmək üçün fun ola istədiyiniz düşündüm könüllü up, baxmayaraq ki, bu gün sizə bir əlavə göstərmək Bəli səni imkan verir ki, bu, Mən ilk bu əl gördüm. Qədər gəlib. Çox yaxşı. Yaxşı iş. Mən bu barədə layihə gedirəm yalnız bir anda ekran. Hər kəs üçün adı nədir? EFA: Mən Efa edirəm. DAVID Malan: Etha? EFA: Efa. DAVID Malan: Efa? EFA: Bəli. DAVID Malan: görmək Nice. Oldu. Oxşar hazır edək. Üzərində Hadi burada Colton ilə orta. Nə Colton onun əlində var Bu gün uzaqdan nəzarət edir. Belə ki, deyil, yalnız bir var durmaq çox ətrafında axtarır üç ölçülü dünya Colton kimi, indi Efa bilərsiniz həqiqətən gedən ətrafında gəzmək, aşağı, sol və sağ kimi Nintendo və ya Xbox nəzarətçi. EFA: I mərhələ off düşmək üçün gedirəm. DAVID Malan: Mən burada təxminən durmaq. Amma ki, bir risk edir. OLDU. Belə ki, davam və bu qoymaq. Mənə davam edək burada ekran keçid. Mənə işıq zəif edək. Və Colton, mənə imkan Sizə yanında dayanmaq gəlir. Burada izah etmək istəyirsiniz mikrofon ilə biz nə edirik? Buyurunuz. COLTON: Sure. Belə ki, indi biz istəyirik Oculus qədər yüklənməsi, Mən operating-- əməliyyat deyil tapmaq sistemi, lakin əsas proqram, Bütün oyun əldə edə bilərsiniz və Sizin kitabxana var apps. Belə ki, indi, demək lazımdır touchpad başlamaq üçün dokunun. Touchpad haqqında olacaq qulaqlıq sağ. Belə ki, davam və tap-- EFA: Oh, man. DAVID Malan: Bəli, siz gedin. Efa görən keyfiyyət daha yüksək keyfiyyətli edir. Burada yalnız Wi-Fi var. COLTON: sen Belə ki, nə etmək istəyirəm olacaq yuxarı doğru baxmaq Ekranın sağ. Yep, çox sağ üst ki, oyun. Və sonra seçilməsi etdiyiniz zaman Bu, yenidən Touchpad dokunun. Mən onun Dreadhalls düşünürəm. Və sonra burada a-- ki, qoy Mənə sizin üçün eynək saxlayın. Mən yalnız ona nəzarətçi verdi. Belə ki, indi o, oyun nəzarət edə bilərsiniz. O kimi ətrafında və stuff hərəkət edə bilər. Belə ki, davam və üst axtarmaq. Siz yeni oyun görmək lazımdır. Belə ki, davam və siz bunu edə bilərsiniz. İndi, nəzarət etmək lazımdır nəzarətçi ilə özünüzü, eləcə də, qısa müddətdə Oyun burada yükləyir. Bu bir az qorxudan ola bilər. EFA: İndi mənə. OLDU. COLTON: Bütün hüququ. Beləliklə, siz ətrafında hərəkət edə bilər ki, təsdiq edir. OLDU. Siz ətrafında hərəkət edə bilər. Mükəmməldir. Siz aşağı baxmaq Belə ki, əgər, bir xəritə var. Siz harada xəritəsi göstərir. Siz oda ətrafında baxa bilərsiniz. Siz tamamilə ətrafında çevirmək bilər. Bəli, dəqiq. Fırlanmaq. Belə ki, sol baxmaq. Mən bir şey var siz hesab otaqda bir barel seçin. EFA: Mən almaq necə yol xəritəsi? COLTON: baxın. Just axtarmaq. Oldu. Burada getmək. İndi irəli getmək və yalnız ətrafında açın. Belə ki, sol uzaq baxmaq. Sol hərəkət edin. Sol axtarır saxlamaq. Davam et. Bəli. EFA: Oh, belə. COLTON: Bəli. Nəzarətçi ilə qarşı tamamlayın. Burada getmək. İndi ala demək lazımdır. Burada getmək. Onu seçin. Oldu. İndi bu oda çıxmaq imkan verir. Irəli getmək və qapı gəzmək. Belə ki, deyir hold-- olacaq açıq məcbur düyməsini basıb saxlayın. Belə ki, davam və düyməsini basıb saxlayın. Yep, bu, açıq məcbur. Oldu. Yaxşı iş. İndi biz oda gəzinti edirik. Beləliklə, mən qalan tərk gedirəm və sizə tapmaq nə görmək. EFA: Mən qaranlıq otaqda fikrində deyiləm. Oh, gözləyin. İndi qaranlıq salonda aşağı getmək üçün var? OK, mən [işitilemez] geri gedirəm. COLTON: Bütün hüququ. Bəzi daha maddələr almaq üçün. Bəzi pul kimi görünür. Ki, bir kilidi pick var. Siz tapmaq Əgər belə bir kilidli qapı, siz istifadə edə bilərsiniz. Siz qorxuram edirmi? EFA: Not yet. COLTON: OK. Bəli Pretend--. Yalnız etdiyiniz iddia həqiqətən orada daimi. Və around-- döndərsələr Siz onu istifadə almaq üçün var. Amma bu mənada edir. DAVID Malan: Efa davam edir və isə biz bu gün nə bilər-ci ildən, oynamaq, biz bütün tip-ayaq burada edə bilərsiniz. Amma biz digər iki cüt var, Siz gəlib və oynamaq istəyirsinizsə. Əks halda, biz görəcəksiniz Siz çərşənbə günü gələcək. Bu gün könüllü təşəkkür edirik. [Alqış] [MUSIC - "Seinfeld MÖVZUSUNDA"] HOPARLÖR 1: Bəli, mən deyiləm qoyaraq yeni PL bağlamaya. Mən yalnız OLPF-- dəyişib HOPARLÖR 2: Belə ki, nə dəqiq edirsiniz? HOPARLÖR 1: Bəli, hər bir these-- Burada, mən burada bu bir göstərmək lazımdır. Siz burada görə bilərsiniz. HOPARLÖR 3: Mən bu ilə yaxşı olduğumu düşünürəm. Siz bir daha istəyirsiniz? HOPARLÖR 4: Xeyr, mən yaxşı deyiləm. [Işitilemez]. HOPARLÖR 3: Xeyr, [işitilemez]. Bəzi var. HOPARLÖR 1: müxtəlif rəng. HOPARLÖR 2: OK. HOPARLÖR 1: Belə ki, son nəticədə nə Bu rəng ayarlar var yoxdur of--