JASON Hirsch: Welkom, almal, tot week 10. Dit is 'n opwindende week, want môre is Quiz 1, wat ons sal kry om in 'n tweede. Vandag in artikel gaan ons om te gaan oor 'n paar hulpbronne vir die toets, en dan sal ek enige en alle beantwoord vrae wat jy ouens het. En ons sal uiteindelik eindig met 'n praktyk probleme. Ons kan die hele gedeelte te spandeer vrae te beantwoord. Ons kan die hele gedeelte te spandeer gaan oor die praktyk probleme. Ons sal net uit te brei om te vul die ruimte en tyd wat ons het. Dus het ek hierdie lys word elke week, maar dit is veral belangrik om hierdie week. Vir die studie, as jy nie het nie begin reeds, o seun. Maar hopelik het jy al begin. En jy gaan deur die materiaal en hulpbronne word hier gelys. Ek sou raai 'n aantal van hierdie. In die besonder, lesing notas is ongelooflik belangrik en nuttig. Die study.cs50.net bied 'n groot primer op 'n baie die onderwerpe wat ons gedek. Dit het ook 'n paar groot oefen probleme. En dan, Google is groot, ook. Ek weet nie wat jy dit wil gebruik vir. Maar die gebruik van Google, as well. Reik uit na my as jy enige vrae, kommentaar of bekommernisse. Kyk oor die hersiening sessie skyfies uit die vorige nag. Of, as jy 'n geruime tyd, kyk na die video. Hulle bied 'n baie nuttige materiaal en inligting. En probeer en bedek indien nie alle, baie van Die onderwerpe wat ons gedek is en dat jy kan sien op die quiz. Praat van die toets, wat more gaan wees. Dit is 75 minute lank. Baie van julle neem dit op 1 uur, en 'n paar van julle neem dit om 5:30. Vir die tyd wat jy neem dit en die plek wat jy neem dit, maak seker jy check die dokument op die CS50.net tuisblad. Onthou wat jy kan kry 'n 8 1/2 met 11 vel te neem met jou. Dikwels mense gebruik dit nie blad op alle tydens die toets. Maar regtig, dit is 'n ongelooflike nuttige studie hulpmiddel. So om saam dat vel is wat Ek het waarskynlik drie of vier uur doen wanneer ek studeer vir CS50, en Dit was maklik om die mees nuttige manier wat ek kon leer vir die toets. So selfs as jy 'n paar ander mense se studiegidse om te kyk na en gebruik as verwysings, ek raai maak jou eie studiegids, om daardie dinge saam. Wat regtig help om te leer al van die materiaal. Laaste maar nie die minste nie in hierdie artikel, ná die toets môre daar is een meer lesing - volgende Maandag. Daar is nog 'n artikel, nie die volgende Dinsdag voor Thanksgiving, maar die Dinsdag daarna. Ons sal saam vergader vir 'n finale totsiens party en ook besig met 'n paar koel dinge te kry wat jy ouens opgewonde oor verdere studies in Rekenaarwetenskap. Daar is nog 'n projek, 'n meer regverdig, een hackathon. Ons is naby aan die einde van die CS50, wat is opwindend - maar ook, as jy soos my 'n bietjie hartseer. Voordat ek beweeg, nie almal het enige vrae oor wat wat ons tot dusver gedek? OK, goed laat gaan oor 'n paar vrae wat jy vir die toets en onderwerpe ons kan dek. So dit is 'n lys wat ek saam. Dit is geensins volledig nie, maar hopelik sal jou geheue draf as jy het 'n paar vrae oor enige van hierdie onderwerpe, of as jy vrae het oor praktyk probleme uit vasvrae in die afgelope jaar. Ek het 'n paar vrae wat per e-pos aan my, maar ek wil om af te hou op dié vir 'n tweede. Het enige iemand enige vrae het, probleme wat hulle nie verstaan ​​het nie, antwoorde wat hulle nie verstaan ​​het nie ons begin om te kry? Avi. Publiek: Kan jy net gaan oor DOM en Ajax regtig vinnig? Soos wat ons nodig het om te weet, of indien verstaan ​​oor hulle? JASON Hirsch: Ek gaan om te antwoord algemeen hierdie vraag, wat doen ek nodig het om te weet oor die gegewe onderwerp x? Want ek het 'n gevoel dat baie van julle gaan my vra wat nie, of nuuskierig oor dat. So in die mate dat die onderwerp was gedek in lesing, of artikel, of op study.cs50.net, 'n probleem, het julle moet vertroud wees met dit. So jy hoef nie elke tipe om te weet tag wat beskikbaar is in HTML of elke tipe kenmerk of eiendom jy iets kan gee in CSS. Maar as jy dit gesien het in 'n lesing byvoorbeeld As jy het dit gesien in 'n probleem stel, moet jy waarskynlik vertroud wees met dit, veral die dinge wat jy gesien het in lesing. So het ons gepraat oor die dokument beswaar model 'n bietjie in artikel, meer so in lesing. Jy moet vertroud wees met dat baie van dit. En jy moet vertroud wees met Ajax in dieselfde mate. Ons het nooit ongelooflik gevorderde of sien ingewikkelde voorbeelde van Ajax, so jy gaan nie gevra word om te doen iets ongelooflik ingewikkeld. Maar jy kan gevra word, hoe kan ek Maak 'n Ajax oproep met behulp van jQuery? Dit is iets wat jy gesien het 'n aantal keer voor, beide in die hersien sessie en in lesing, en dit is net 'n twee-ish reëls van die kode. So dit is iets wat jy moet vertroud te wees met. Maar weereens, vir al die onderwerpe, as jy dit gesien het voor, dit is fair game. En ons mag vra - natuurlik, ons is gaan jy dinge wat jy vra nie gesien het nie. Kodering iets wat jy nie het nie gesien het nie. Dit is nie te sê jy het nie gesien die gereedskap op te los dat die probleem voor. Jy het gesien die instrumente. Byvoorbeeld, op Quiz 1, indien wat jy nodig het om te StrLen kode. Ons het nie voor gekodeerde StrLen. Maar jy weet hoe om 'n te gebruik vir lus, jy weet hoe om te gebruik as die omstandighede. Jy weet hoe om veranderlikes in C. te skryf Dit gaan dieselfde ding hier te wees. Jy gaan nie gevra word om te doen enigiets wat jy nie gesien het nie, maar jy kan gevra word om, soos, sit iets saam in 'n nuwe manier, of los 'n ander soort probleem. Jammer, dit was nie spesifiek vir jou vraag, maar ek kan nie antwoord oor elke enkele onderwerp wat jy doen of nie nodig om te weet. Maar ook, jammer, laaste ding wat op daardie. Ons het aansienlik meer tyd bestee op die skakel lyste as ons op Ajax. Jy het nie Ajax gebruik in 'n probleem stel. Een van die sentrale kenmerke van daardie probleem stel wat skakel lyste. En ons het 'n baie tyd in lesing en artikel om dit te gebruik. So, is die kans skakel lys sal meer kom dikwels op die quiz as Ajax wil. Of die vrae wat te doen het met 'n skakel lys sal die moeite werd meer punte wees. So kan jy seker fokus en smal in die dinge wat meer geneig om te kom, want ons het spandeer meer tyd op hulle. OK enige ander vrae? Ja. Publiek: Kan ons gaan oor die gebruik van anonieme funksies in JavaScript? Ek is 'n bietjie verward is daaroor. JASON Hirsch: So in JavaScript - Ek probeer om te dink hoe ek dit kan skryf oor - so laat ons eintlik oop hierdie kode. So dit is die kode wat ons gedoen het die afgelope week. En jy het dit voor gesien as jy was hier in artikel verlede week. Of jy iets gesien soortgelyk aan hierdie voor. Maar jy kan kyk na die eerste lyn. Dit is hoe jy begin - almal is dit gesien het. As jy wil 'n paar JavaScript-kode om te sit, jy sit dit binne-in hierdie, met die veronderstelling jy gebruik JQuery. Dit word gesê, niks doen nie totdat die dokument gelaai. En dan, Curt, jy sien reg hier ons doen iets soos hierdie - funksie oop paren, gesluit hakie. So ons is nie gee hierdie funksioneer 'n naam. Ons is nie van plan om hierdie funksie te definieer veronderstel is om te hardloop en dan noem dit 'n klomp van die tye. Ons is net sê hierdie dokument neem reeds 'n funksie. 'N Paar van die dinge te doen. En ons wil nie die tyd te spandeer gee dit 'n naam of stoor dit vir altyd. Ons wil net 'n paar dinge uit te voer. So 'n anonieme funksie soort van dien dat die doel. Wanneer jy nie gaan om iets te gebruik oor en oor weer, so jy hoef nie gee dit 'n naam - jy net dit wil keer gebruik - jy wil net sê funksie, Byvoorbeeld, in hierdie geval, en jy net definieer iets wat jy kan 'n naam gee. Soos ons kan hierdie funksie te trek en gee dit 'n naam en dan noem funksioneer hier. Maar ons hoef nie te omdat ons dit nie doen nie wil tyd te mors om dit 'n naam of iets mors in ons naam ruimte. En jy sal sien dat 'n lot. Byvoorbeeld, ons sien dat 'n lot in hierdie kode, maar jy het dit gesien voor wanneer jy iets op - hardloop hierdie tipe van die kode. Ons kon die kode wat ons wil definieer uit te voer wanneer ons kliek, in hierdie geval, hierdie ID, as 'n afsonderlike funksie en dan loop daardie funksie. Maar in hierdie geval, ons is maar net die draai wat stap en beweeg dit in hier en net om te definieer alles wat ons wil hê om te gebeur en nie gee dit 'n naam. Wat nog nie kan hê jou vraag beantwoord. Publiek: Nee, dit doen nie. Ek bedoel, ek dink ek het net nie regtig Hoekom is dit 'n sou wees funksioneer nie, al is. Want dit is nie regtig genoem word. Dit maak nie regtig 'n naam. JASON Hirsch: Dit is 'n funksie in die sin dat dit is 'n reeks stappe, soos jy sou sit in 'n funksie. En dan dit is hoekom ons 'n beroep dit anoniem funksie. Ons is nie van plan om dit 'n naam te gee. Ons gaan nie probeer om te mors om dit te noem nie, maar ons kon. Anonymous funksies, jy kan altyd 'n naam gee. So byvoorbeeld, die kode hier, Ons kan hierdie kode sit in 'n funksie en dan bel hierdie funksie hier. In plaas daarvan, sê ons, ons gaan nie te pla met dit. Ons is net gaan om te skryf dit alles hier. Dit is soos soms wanneer jy skryf 'n vier-lus in C - julle ouens hierdie gesien voor - dalk is jy iterating deur 'n forloop in i gelyk aan 0. Ek is minder as StrLen. Of jy gaan deur 'n paar skikking, kan jy skikking red indeks i in sommige veranderlike. En jy daardie veranderlike. So jy hoef nie skikking te herskryf bracket ek oor en oor en oor. En dit is soort van soos 'n dummy veranderlike. Dit is nie die bediening van baie ander doel as jou kode 'n bietjie skoner te maak en makliker om te lees. Soortgelyke funksie hier. Net maak dit 'n bietjie makliker te maak, maar funksioneel is daar geen verskil nie. Maak dit jou vraag? Gehoor: Ja. JASON Hirsch: OK .. Mario? Publiek: Gister het hulle dikwels sit funksie hakies gebeurtenis. Is dit iets beteken? Of is dit vir dinge soos dat hulle sal doen document.ready funksie gebeurtenis. JASON Hirsch: Ons het dit gesien, en weer, dit is kleiner dinge wat waarskynlik Ek wil nie spandeer te veel tyd op. Want soms wil ek nie mense raak baie bang dat hulle nie dat daar nog baie gehoor oor hierdie dinge. Maar ons gepraat het 'n bietjie oor event handlers. So iets gebeur, en dan hierdie funksie uitgevoer word. En dan moet ons ook wil weet 'n paar besonderhede oor wat gebeur in hierdie geval. So dink terug aan die probleem stel 4. Dit is waarskynlik die maklikste manier om te verstaan ​​dat in breek uit. Daar was 'n paar kode - soos 'n geval sou gebeur nie, maar gebeurtenis kan beteken baie dinge. As kan beteken dat die muis gekliek word, is dit kan beteken jy getref 'n pyl sleutel, et ensovoorts, ensovoorts. Maar dit is alles gered in hierdie generiese ding genaamd gebeure. En dan kan ons sê, is hierdie gebeurtenis hierdie ding? Of is hierdie gebeurtenis hierdie ding? Of watter soort van gebeur met so 'n geval? So dit is waarom jy skep dat veranderlike daar daardie ekstra inligting te red oor wat presies gebeur het wat jy gaan om te wil gebruik in die funksie. Maar weereens, dit is waarskynlik een van die minder belangrike dinge te wees super vertroud is met. OK, watter ander vrae het mense het, of struikelblokke wat hulle het teëgekom terwyl die hersiening? Ons sal terug na die lys. Wat van in die praktyk vasvrae, indien mense het reeds dié? Wat was 'n paar probleme wat geskakel julle nie? Ek weet vir 'n feit dat verlede jaar se quiz was werklik moeilik. Publiek: Kan jy verduidelik wat 'n SQL-inspuiting aanval is? JASON Hirsch: OK, groot. So het ons gepraat oor dit 'n bietjie. Daar is 'n lesing oor die veiligheid. En weer, soos ek vroeër genoem het, dit is 'n eenkant. Maar jy sal gefrustreerd word op die toets wanneer jy lees 'n paar klein twee punt vraag, en jy is soos wanneer het ek ooit leer dat? Al hierdie dinge in die lesings dat jy nie dink dat jy nodig het om te weet, of jy kan die glans oor, want hulle het nie te doen met die probleem stel, wat sal waarskynlik kom weer op die quiz. So, koel, pret dinge wat jy net gedink David vertel vir jou geniet, is hy vertel jy vir jou geniet en te sorg dat jy net super wees opgewonde oor die leer van alles daar is om te leer oor die rekenaar wetenskap. Daardie dinge ook op vasvrae kom. So, selfs hierdie klein dinge wat nie direk verband hou met jou probleem stel, as julle vertroud is met uit Quiz 0, sal waarskynlik kom. En dit is 'n goeie voorbeeld van iets. So 'n SQL-inspuiting aanvalle is wanneer jy kry 'n paar inligting van die gebruiker en jy wil om dit te plaas in 'n tabel gebruik 'n SQL insetsel verklaring, maar jy het nie die insette ontsmet voor die tyd. So, natuurlik het ons gesien SQL stellings. Ek sal net oop - laat ons gaan - ons sal gaan na die hersiening - Ek dink wat dit gedek? Ek dink Samala het. So ons kan kry - Publiek: Waar het jy dit? JASON Hirsch: So as jy gaan na CS50.net, vasvrae, en dan kan jy scroll oor en kry skyfies van die hersiening sessie. Maar jy kan sien dit is 'n goeie voorbeeld van 'n SQL-inspuiting aanval. Ons neem 'n paar inligting van die gebruiker en hulle het vir ons 'n string, en dan het ons wil hê dat die string te voeg in 'n databasis. Die algemeen ons gaan om dit te ontsmet insette, wat beteken daar is 'n paar karakters wat gevaarlik is. Byvoorbeeld, in SQL snare, Hierdie aanhalings - aanhalingstekens of dubbele aanhalingstekens - iets beteken. Dit beteken die einde van hierdie string hier. En so, as die gebruiker gee jou 'n enkele of 'n dubbele quote, kan dit wees probeer om te reis op jou SQL navraag en voeg 'n paar slegte dinge in dit. En as hulle dit doen, kan hulle kry beheer van jou databasis of doen 'n paar dinge wat jy nie wil hê om dit te doen. So dit is waarom wanneer ons SQL navrae, ons ontsmet die insette voor om dit in die databasis, wat beteken dat ons ontsnap diegene karakters. Ons sal praat oor wat in 'n tweede. Maar lang storie kort, 'n SQL-inspuiting aanval is as jy dit nie doen nie - as jy nie sorg vir die insette hulle het aan jou voor om jou databasis, kan hulle, as jy sien neer hier, 'n soektog, in werklikheid - hulle het in hul kode hier en hierdie kies lyn af hier sal kies alles van die tafel, ongeag van wat die wagwoord is gegee. Omdat jy die of 1 is gelyk aan 1. So dit is basies, 'n lang storie kort, 'n manier om die databasis oor te neem. Die vraag is dan, vir julle, is Waar in p stelle 7 het jy al ontsmet die insette van jou SQL navrae? Waar het die stap gebeur? Waar dink jy dat 'n SQL-inspuiting aanvalle gebeur in p stel 7? Ja. Publiek: kerkhof? JASON Hirsch: So dit was nie grafkelder. Ons het nie maak dat jy doen dit vir hierdie spesifieke probleem gestel, maar dit gebeur in die soektog funksie. Ons is eintlik geskryf het dit vir jou, en ons het sorg van die reinig insette vir jou. Maar in die afgelope jare, het studente gehad het die insette op hul eie te tik. In p stel 7, 'n baie van julle - laat my oopmaak een ander lêer. So jy sal sien hier 'n baie mense, in probleem gestel 7, het nie geroep hierdie funksie snare. Hierdie funksie, htmlspecialchars, weer - hierdie string kan 'n paar dinge wat in HTML beteken iets anders. Soos 'n stut, 'n vierkant, of 'n hoek bracket iets beteken in HTML. En so, as jy druk wat na die skerm of as jy net neem dit en druk wat uit jou HTML, wat mag doen iets wat jy nie verwag nie. So htmlspecialchars gaan oor al die karakters wat spesiale vergadering en ontsnap nie. So dit word uitgedruk as die teks jy wil om te sien, eerder as skroefwerk jou HTML. Ons het daardie funksie in die kop. En 'n baie van die mense vergeet om te noem dat die funksie in die kode wat jy is skryf. So, byvoorbeeld, as 'n voorraad se naam het 'n hoekhakie in dit en jy vergeet hierdie funksie, wat hoek te noem bracket kon gegooi het af wat jou HTML lyk. Maar roep van hierdie funksie sal ontsnap dat dit so eintlik druk uit as 'n hoeke en nie gooi af jou HTML-kode. Om dieselfde rede het ons gesien, soms, houe voor dubbele aanhalingstekens in 'n printf lyn, want ons wil nie die dubbel aanhalings af in die tou. Ons wil hulle uit te druk uit na die skerm. So al hierdie dinge is dieselfde idee. Maak dit jou vraag? Publiek: Tipe. JASON Hirsch: Het jy 'n follow-up? Publiek: Ek dink die SQL-inspuiting aanval het te doen met dit? Ek verstaan ​​nie hoe Die twee is verwant. Hoekom sou jy doen die specialchars? JASON Hirsch: OK, so die SQL inspuiting aanval is wanneer jy spuit sommige kwaadwillige snare in iemand se program, en hulle het net neem dit en hardloop die SQL navraag met 'n string U het hom gegee. Soos jy kan sien hier dat kan 'n probleem wees. So die manier waarop jy voorkom teen wat jy hulle string wat hulle gee jy - so hierdie string reg hier - en jy ontsmet dit. Jy ontsnap al die dinge wat potensieel problematies. Sodat jy nie te interpreteer nie hulle as iets dit beteken iets. En 'n voorbeeld van wat met HTML is hierdie funksie. So dit is dieselfde idee hier. En ek is net wat jy ander voorbeelde van wanneer jy gesien hierdie idee voor. Ontsnap die gebruiker se toevoer voor druk dit uit na 'n skerm of om dit in 'n SQL-stelling. Publiek: So in hierdie geval, die gebruiker is geknoei met die programmeerder. JASON Hirsch: Ja. Met al hierdie sekuriteit aanvalle, dit is altyd die algemeen die gebruiker, of iemand, probeer om te mors met jou, die programmeerder. En dit is maniere wat jy kan verhoed dat teen hulle. Publiek: Ek het 'n vraag oor hash funksies. In Quiz 1 van 2011, is daar twee vrae oor eensydige twee velde. En ek het net gewonder wat dit beteken. JASON Hirsch: OK, wat quiz? 2011? Publiek: Ja. Publiek: Quiz 1? Publiek: [onhoorbaar]. Dit is soos 'n wagwoord hashing. Dit is nie om dinge - JASON Hirsch: Wat bladsy is dit? Publiek: Ek dink dit was 9 of 10, of beide. JASON Hirsch: Alle reg, gaan voort, Curt. U kan antwoord, terwyl ons kyk. Publiek: Ek dink dit is praat oor hashing 'n wagwoord. Soos wanneer iemand gaan 'n wagwoord, jy draai dit in 'n geïnkripteer ding. Dit is die wagwoord hash, wat anders as 'n hash funksie wat sit iets in 'n gemors tafel. JASON Hirsch: Kom ons kyk. Laat my toe om dit wat hulle gee die antwoord. En dan sal ons loop deur dit. So Curt het 'n goeie voorbeeld van 'n een-rigting hash. Wanneer ons dit voor gesien het, het ons neem die wagwoord en draai - Onthou, in p stel 7, iemand kan 'n wagwoord wat net wagwoord maar dan is dit kry geïnkripteer in 'n paar baie lang ding. Die eenrigting-hash beteken dit is baie maklik om te gaan van die een pad na die ander nie, maar dit is baie moeilik om te gaan uit die ander pad terug. En dan weet jy, toe jy die beheer van mense se wagwoorde in probleem Stel 7, sou jy hulle - So, byvoorbeeld, sê hulle wou hul wagwoord verander nie, jy hulle vra vir hul ou wagwoord. Jy het hul ou wagwoord. Jy geïnkripteer dit. En dan vergelyk die twee encrypties eerder as unencrypting die oorspronklike een, want dit is regtig hard dat die manier om te gaan. Ja. Publiek: Hoe in diepte doen ons begrip van telnet te wees? JASON Hirsch: As dit is genoem kortliks in lesing, net 'n kort begrip. Weereens, terug na die antwoord na AVI se vraag - Hoe meer dinge kom, hoe meer waarskynlik dit is wat jy hoef te wees super vertroud met hulle. As hulle het net kom in lesing dit is net een plek. Maar as hulle kom in lesing, artikel, en 'n probleem gestel, dan is jy waarskynlik moet wees super vertroud met hulle. So ek het 'n vraag uit vroeër oor - Die idee was val 2010 - Quiz 1, laat ons trek - hierdie vraag op stapels en toue, wat ons gedoen het spandeer 'n billike bietjie van die tyd praat in lesing, selfs al het ons nie regtig ooit getref het in afdeling. So hierdie vraag gee jou 'n reeks instruksies en jy vra wat kry gedruk in hierdie geval. So dit is 'n heeltemal redelike vraag wat van jou gevra word ouens, en dan Julle moet in staat wees om dit te beantwoord. So hoekom nie jy kyk na dit vir 30 sekondes, en dan as iemand wil stel die antwoorde op my, en dan sal ons loop deur dit. Alle reg, wat 'n antwoord te bevraagteken 27? Ja. Publiek: Is dit 1, 2, 3, 3? JASON Hirsch: Dis reg. 27 is 1, 2, 3, 3. So laat ons kyk na hoe ons dit. Eerstens, sê ons, as s is 'n tou, wat kry gedruk? So 'n Q is die eerste in, eerste uit. Ons het gesien dat voor. Ons het die foto van die mense wag by die Apple Slaan 'n produk te koop. Die eerste mense in is die eerste mense uit. Die eerste dinge in 'n ry is die eerste dinge uit. So as ons druk iets in 'n tou, jy druk op die 1, dan pop ons die 1. Pop beteken net uithaal. In hierdie geval, net om iets uit. Ons neem die eerste ding, dis 'n 1. So sal ons dinge wat ons druk af hier. Dit is nie meer in ons ry. Dan druk ons ​​op 'n 2 en 'n 3 en ons pop af die eerste ding. Weer, want dit is 'n tou. So kry ons 'n 2, dan is ons op 'n ander 3 en noem pop weer. Ons 3 is die eerste. En dan het ons 'n hele klomp van die ander dinge en oproep pop. Maar weereens, want dit is 'n tou, eerste in, eerste uit. Ons neem uit die eerste ding wat ooit sit in Dit is ons 3. En in hierdie geval, ons moenie bekommerd wees nie oor al die ander dinge. So dit is as dit 'n tou. Enige vrae oor 'n tou? 'N stapel se verskillende. Wat is die akroniem ons het vir die begrip van 'n stapel? Publiek: laaste in, eerste uit. JASON Hirsch: LIFO, dink ek. Laaste in, eerste uit. So ons het 'n voorbeeld van 'n stapel van bak in 'n eetsaal. Wat ook al skinkbord is op die top kry opgetel. En dan as nuwe bak kom in, kry hulle op die top. En dan wat ookal op top kry opgetel. So diegene bak op die bodem mag bly daar vir 'n rukkie. In daardie geval, weer, ons sal trek dit uit. Ons stoot aan die een, so een is eerste in die ry. En ons pop iets af. En daar is net een ding in daar, sodat ons beweeg 1 hier. Toe ons sit op 2 en 3 en ons pop iets af. Maar weereens, want dit is 'n tou - of is dit 'n stapel, eerder - neem ons ook al in die laaste. Wat ook al in verlede kom eerste uit. En 3 is in die laaste. So het ons die 3 af daar, dan Ons sit op 'n ander 3 en ons pop weer iets. Ten slotte, ons sit op die 4, 5, 6 en 7, en hier het ons pop. En omdat dit 'n stapel, neem ons alles wat gestel is in die laaste en skryf dat hier. So het ons uiteindelik met 1, 3, 3, 7. Het enige iemand enige vrae oor stapels of toue, of hierdie voorbeeld? OK. Kom ons gaan terug na die lys van onderwerpe te gaan. Nie dat manier, op hierdie manier. Watter ander vrae mense het? Publiek: Ek weet nie hoe belangrik dit is, maar ek is verward deur die verskil tussen die verskillende tipes tale soos opmaak, saamgestel, vertolk. JASON Hirsch: Dis 'n goeie vraag. Ek dink dit is 'n bietjie belangrik, so laat ons gaan oor dit vinnig. Die groot tale wat ons tot dusver gesien is C, PHP, en JavaScript, in terme van programmeertale. HTML, soos jy genoem het, is nie 'n programmeertaal. Dit is 'n opmaak taal. En dan het ons CSS, wat ook nie 'n programmeertaal. Ons het ook SQL, wat ons nie sien nie 'n programmeertaal nie. So SQL kan jy om te skryf navrae vir 'n databasis. HTML is 'n opmaak taal. Dit bepaal hoe dinge gestruktureer is. En CSS kan jy dinge te stileer. Dit is waarskynlik die mate vir wat jy nodig het om te weet oor die drie. Maar dit is meer interessant om te figuur die verskille tussen C, PHP, en JavaScript. So een van die grootste verskille, soos jy genoem het, is hoe hulle saamgestel is, of wat ook al die ekwivalent is. So C saamgestel word. Ons sal altyd hardloop 'n vertaler. En dan waar is jou foute wanneer jy die C samesteller? Waar kom dit wys jou die foute in jou kode? Hoe weet jy daar is 'n fout in jou kode in C? Publiek: Dit wys jou in die terminale. JASON Hirsch: Dit wys jou in die terminale as jy die opstel van. En as daar is foute, is dit sal eintlik nie stel nie. So jy weet dat daar foute reg weg, voor die tyd, voordat jy selfs hardloop jou kode. Van die kursus, kan jy jou kode hardloop en 'n segmentering skuld nie, maar dit was waarskynlik omdat jy dit gedoen sommige dom logika ding. Maar jou kode met tegnies alles reg en kon loop. So C-kode kry voor die tyd saamgestel. Wat van PHP-kode? Waar was foute in jou PHP-kode? Hoe weet jy foute het in jou PHP-kode? Publiek: Run time? JASON Hirsch: Ja, wanneer jy sou dit hardloop, sal jy die PHP-kode in die rug. En dan sal jy 'n skerm vertoon. Jy kan sien 'n paar dinge op die top, maar dan sou jy sien, soos sommige oranje, lelike tafel. En dit sal vir jou 'n lyn nommer en sê, blah, blah, blah, hierdie dinge het nie werk nie. So PHP geïnterpreteer lyn deur die lyn en uitgevoer op die bediener. En dan is die resultaat is gestuur na jou toe. Groot. Uitgevoer in die bediener lyn deur die lyn en dan gestuur na jou toe. En as daar 'n fout is, sal dit vir jou stuur jy die fout, maar jy kan hê gekry 'n paar dinge voor die tyd. So 'n paar van dit dalk gewerk het nie, maar Later, 'n paar dinge kan nie ' nie gewerk nie. Wat van JavaScript? Waar het jy JavaScript foute sien? In p stel 8, wanneer jy het 'n fout, hoe het jy geweet? Waar sou dit wys? Publiek: In die console, aan die onderkant. JASON Hirsch: In die troos, op die bodem. Dit sal ook vir jou die lyn nommer, en dit sou wys op die onderkant. En JavaScript nie uitgevoer is nie op die bediener. JavaScript is op u rekenaar gestuur, en dan wanneer dit tyd was om te hardloop die JavaScript, die JavaScript was hardloop lyn deur die lyn op die kliënt, aan jou kant. Nie die bediener, die kliënt kant. En so, was dit hardloop reël vir reël. En dan wanneer sou jy 'n fout kry, sou dit wys aan die onderkant. Net soos PHP, sommige van hulle mag voer, en dan kan jy dalk 'n fout later. Ook, 'n bietjie anders as PHP, indien jy het 'n JavaScript-fout - sê jy nie gedoen het nie die reg kode vir 'n waarskuwing venster - jy kan hou die bestuur van jou program. Die alarm boks sal nie werk nie, maar jou program sal goed wees. Net miskien daardie funksie sou misluk. So daar is 'n paar van die grootste verskil in terme van hoe hierdie tale, of hoe die ontwikkeling kode jy skryf eintlik geëvalueer. Daar is ook ander verskille in terme van - die grootste verskil ons gesien het in terme van veranderlikes in die verskillende tale. So kan enige iemand gee my 'n verskil tussen veranderlikes in die drie tale? Ja. Publiek: In C, hulle is streng getik. In die ander twee, hulle is losweg getik. JASON Hirsch: En wat beteken dit? Publiek: Dit is in C, jy het om te verklaar die tipe van die veranderlike wanneer verklaar u die veranderlike, soos interbool of kar. JASON Hirsch: Uitstekende. In C, het ons altyd gehad het om te sit 'n tipe van 'n veranderlike. En ons kon nie regtig tipes meng. Jy kan dit nie doen nie 'n heelgetal plus 'n string. Maar soos ons gesien het in hierdie ander tale, wat jy eintlik kan meng tipes, en jy nooit regtig te gee iets wat 'n tipe, ooit. So hoe weet ons dinge is veranderlikes in PHP en JavaScript? Publiek: In PHP, het hulle begin met 'n dollar-teken. In JavaScript, as jy verklaar hulle, jy het 'n kroeg te hê. JASON Hirsch: Right. So in PHP, het hulle begin met 'n dollar-teken. In JavaScript, hulle het bar te hê, hoewel soms wat hulle doen nie eintlik het bar te hê. Maar dit is reg. So dit is 'n groot verskil tussen veranderlikes. Ek dink dit is waarskynlik, uit die top van my kop, die twee grootste verskille tussen hierdie drie tale. Maar, ja. Publiek: en die omvang van C veranderlikes is beperk tot die krulhakies, waar die ander kinders, dit is net soos, dit sterf as dit is slegs 'n funksie, maar andersins, it's - JASON Hirsch: Right. So omvang is effens anders in C. As jy onthou, krullerige draadjies definieer die omvang van veranderlikes. So as dit is gedefinieer binne 'n as toestand, wat is in 'n lus vir, die veranderlike bestaan ​​net daar. In JavaScript, word as 'n veranderlike gedefinieer binne 'n as voorwaarde - binne 'n lus vir die - dit sal bestaan ​​vir daardie funksie, maar dit sal nie bestaan ​​nie buite daardie funksie. So omvang is 'n bietjie meer buigsaam in JavaScript en PHP. Dit beantwoord die vraag? OK, enige ander vrae? Ons kan vier minute doen vrae, dan ons sal spring in die kodering. Publiek: Kan ons gaan in Ajax en praat oor wat dit is? JASON Hirsch: Praat met Avi na. Hy het gevra dat die vraag vroeër. Publiek: My slegte. JASON Hirsch: Geen sorge. Publiek: Wat presies is into? JASON Hirsch: Wat is into? Wat is jou vraag? Publiek: Net regtig vinnig, die verskil tussen druk en eggo in PHP. JASON Hirsch: Hoekom dink jy Google nie die verskil tussen gedrukte en eggo? Effense verskil. Nie dat die groot van 'n deal. Maar jy moet beslis google dit, en dit sal vir jou 'n goeie antwoord. Into, waarskynlik groter van 'n deal. Staan vir JavaScript Object notasie. En toe het ons gesien into gebruik word? Wanneer het jy gesien - Hoekom doen jy selfs die woord weet into? Wanneer het jy dit gesien? Publiek: Toe ons kry voorraadkwotasies vir finansies. JASON Hirsch: So jy sien wanneer jy kry voorraadkwotasies vir finansies. En hoekom het jy dit sien? Publiek: Toe ons die herwinning al die inligting wat gekom het in daardie formaat. JASON Hirsch: So jy sou kry - ja. Gaan voort. Publiek: [onhoorbaar] inligting uit 'n voorwerp? JASON Hirsch: Beide van daardie saam is die antwoord ons soek. Jy wil inligting uit hierdie ander webblad. En jy hoop dat wanneer jy om daardie inligting, sou dit wees aangebied aan julle in 'n soort gestandaardiseerde formaat. Almal is waarskynlik vertroud met kommas geskei waardes. Jy kan 'n Excel of uitvoer enige vorm van spreadsheet as 'n lys van komma-geskeide waardes. En die kommas verdeel al die verskillende velde. JavaScript Object Notasie - Into - is 'n ander tipe van gestandaardiseerde uitleg van die dinge. En dit is dikwels hoe ons haal inligting van ons Ajax navrae. So in hierdie geval, ons het dit uit die Yahoo site. Hulle keer terug om dinge te ons in 'n into voorwerp. En dan weet ons, want dit is 'n standaard, wat dit is gaan lyk. So kan ons Itereer deur die skikking dit is terug na ons, die verskeidenheid van voorwerpe wat teruggekeer word aan ons. Ons moet waarskynlik die sleutels te leer ken, maar hulle in die algemeen gee dokumentasie in die webwerf toe jy gaan haal 'n paar into notasie vir hulle. Net so, kan jy into enkodeer 'n voorwerp. So is daar 'n funksie into beklemtoon enkodeer. En so kan jy 'n voorwerp te neem wat jy gemaak het, into enkodeer, en slaag dit op iets anders, as jy wil. En into dekodeer is ook beskikbaar vir 'n soortgelyke doel, of vir die teenoorgestelde doel. Publiek: Het ons nodig om te weet kodering vir hash tabelle en drieë? Of moet ons net om te verstaan hoe hulle gebruik word, konseptueel? JASON Hirsch: So, maak jou hand As jy het 'n gemors tafel p stel 4 met 'n skakel lys. Of p stel 5. So dit was 'n groot meerderheid van die mense. P stel 5, 6, wie weet. 'N lang tyd gelede. So het die oorgrote meerderheid van julle het hash tabelle met skakel lyste. En omdat dit is waarskynlik die meer gemeenskaplike benadering, en omdat ons spandeer 'n baie tyd doen skakel lyste en hash tafels, jy moet waarskynlik redelik vertroud met hoe om te kodeer 'n gemors tafel en 'n skakel lys. En as jy terug dink aan daardie probleem stel, was dit nie regtig so hard as wat jy verwag. En daar was 'n baie minder kode as wat jy verwag. Ek sou sê jy moet weet hoe om te kode om 'n hash tafel of 'n skakel lys. Nie dat jy sal gevra word dat, noodwendig nie, maar jy moet in beslis weet dat. Ook, as jy kyk deur die verlede vasvrae, Daar het 'n baie gewees vrae oor die skryf van funksies skakel lyste of dubbel-geskakelde lyste. Dit lyk kom elke jaar. Reg te voeg op 'n skakel lys, reg verwyder uit 'n lys met skakels, reg te voeg vir 'n dubbel-gekoppelde lys, ensovoorts. Dus, ek voel redelik gemaklik sê moet jy weet dat. Vir drie, sou ek sê jy moet beslis weet hoe dit werk, en miskien gee 'n paar pseudokode vir hoe om dit te kode en dit stel. Maar dit sal nie die ergste ding in die wêreld as jy nie geweet het nie hoe om te Kode Daar in C. Dit sal wonderlik wees as jy geweet hoe om dit te kode in C, maar ek dink waarskynlik pseudokode vir 'n drie sou wees om die meeste wat jy nodig sou wees om te weet vir 'n drie. Publiek: Ekstra krediet? JASON Hirsch: En dieselfde met, as ons gaan in binêre soek bome, kan jy nodig het - en jy gesien het in die verlede, ons gedoen het 'n baie - jy weet hoe binêre soek boom werk. Jy moet waarskynlik in staat wees om te stel een in pseudokode. Maar omdat die oorgrote meerderheid van die mense dit nie doen nie op die probleem stel, sou ek sê dit is waarskynlik minder belangrik dat jy weet hoe om te kode en die opstel van 'n boom soos dit. Enige ander vrae? Ook, kan ons hulle die hele vra as ons gaan deur 'n paar probleme. OK, ons gaan om aan te beweeg. Slaan wat skuif vir nou. Praat van bome, wat die eerste vraag wat ek het vir julle. Want dit is 'n probleem. Ek sou sê dit is hoogs waarskynlik sal jy 'n probleem soos hierdie op jou quiz vra jy 'n soort van insetsel te kode, verwyder, soek, vir 'n tipe van data struktuur ons gesien het. Dit kom elke jaar en ons het 'n baie tyd in die tweede helfte van hierdie semester gaan oor hierdie data tipes. So nou, ek het 'n knoop gedefinieer in 'n binêre soek boom. En wat ek wil hê jy moet doen is gegee 'n binêre soek boom wat begin op hierdie node ster wortel, voltooi die implementering van die funksie hieronder, wat gebeur 'n vonds funksie te wees. En doen dit met en sonder recursions. So ek wil julle twee funksies te skryf. Een om dit te doen met rekursie, een om dit te doen sonder rekursie. En aanvaar nie dat die wortel sal wees nie-nul. So ons is op soek vir die heelgetal i in die boom begin by die wortel, en ons moet om dit te rekursief skryf en iteratief. Ja. Publiek: So jy wil hê ons moet terugkeer waar As ons dit vind, en vals as ons nie vind nie. JASON Hirsch: Hoe weet jy? Hoe weet jy dit? Publiek: Ek is die eerste keer te vra, maar ek was aanvaarding, want dit sê Bool op die begin van die funksie. JASON Hirsch: Right. Dit sê Bool, so ek hoef nie eens te vertel wat ek verwag om terug te keer want dit sê net daar. Maar dit is reg. Terug te keer, waar of vals is. So voordat jy begin, sou ek aanbeveel, As jy nie vertroud is met binêre soek bome, vinnig teken 'n foto van dit te kry om jou begrip, reg. Dit sal ook help om jou toe te skryf jou kode en te keur nie. Weer, moet jy ook nie dat veel tyd op die toets al die dinge te doen dat ons vra om te doen. So skryf pseudokode is baie nuttig. En ons in die algemeen gee oor - As die pseudokode is perfek korrek, dis algemeen 50% op 'n vraag. So dit is nie 'n vaste reël nie, maar as jy net skryf pseudokode en dit is korrek is, is dit gewoonlik 50%. So ek wil altyd beveel - As jy min tyd het, of selfs as jy net probeer om dit uit te vind - begin met die pseudokode. En uiteindelik, as jy dit kan skryf al in C, sou dit fantasties wees. So kom ons neem drie minute om te werk op die program. En dan gaan ons te skryf pseudokode vir dit net een keer, en dan ons gaan om dit te rekursief code en dan iteratief. As jy enige vrae het, voel gratis verhoog jou hand. Gelukkig om rond te loop en hulle antwoord voordat ons begin as 'n groep. Laat ons weer, en ons gaan pseudokode die rekursiewe weergawe van hierdie, en dan sal ons Kode Daar. So 'n rekursiewe funksie moet twee dinge. Dit kan 'n vraag wees wat jy kan gevra word. Moet twee dinge. Wie kan hulle hand opsteek en sê vir my wat die twee dinge wat 'n rekursiewe funksie moet? Per definisie is dit het twee dinge. Wat is die twee dinge? Nuwe hande. Ja, Alden. Publiek: So ek is nie presies seker of dit is die terme nie, maar - JASON Hirsch: Ek is bly jy die verhoging van jou hand. Publiek: Dit moet 'n basis geval, en dit moet 'n rekursiewe stap. JASON Hirsch: Perfect. Dit moet 'n basis geval en 'n rekursiewe stap. So, wat is ons basis geval hier? Publiek: F wortel gelyk is gelyk aan nul. Jammer, net in pseudokode, As dit is nul. As wortel is leeg. JASON Hirsch: As wortel is leeg. Dit is uitstekend. Dit is ons basis geval. Dit is wat ons gaan elke keer om seker te maak. En basis geval is die eerste ding wat jy doen. As jy druk op die basis geval, jy klaar is. Nou moet ons ons rekursiewe oproep, en ek wil bereid wees om te wed ons nodig het 'n paar rekursiewe oproepe hier. Want dit is 'n boom, en ons kon verskeie maniere gaan. So as wortel, is van nul, ons is goed. Wat stel jy? En nou gaan ek begin roep op julle, want ek weet julle ouens almal weet hierdie. Maar Annie, wat moet die volgende lyn wees? Wat as ons het dit gevind? Wat doen ons? Publiek: As ons dit gevind? JASON Hirsch: Of wat behoort te wees dat - gee my die pseudokode vir die lyn waar ons het dit gevind. Publiek: As ek gelyk wortel i? JASON Hirsch: En dan wat doen ons? Publiek: Terug waar. JASON Hirsch: Groot. So as ek is i - O, hulle is albei genoem i. Dit word verwarrend. Maar as ek is ek terugkeer waar. Dit is waarskynlik die volgende ding wat ons moet doen. Sin maak. OK, nou het ons nie gedoen om ons rekursiewe noem nie, al is, want 'n rekursiewe oproep sou hierdie funksie weer bel. So wat moet die volgende lyn van pseudokode wees? Anna. Publiek: die linkerkant. JASON Hirsch: Wees spesifiek, al is. Dit is 'n binêre soek boom, so wat het die beheer van die linkerkant behels? Publiek: So knoop - Ek is jammer, wortel. En dan pyl links. Knoop, knoop, jammer. Ek is nie behoorlik lees. Dit is bekend as knoop, reg? JASON Hirsch: Dit sal wortel genoem word in daardie funksie, maar een manier. Die linkerkant - ja? Publiek: As dit nie gelyk Ek is, dan gaan ons bel weer die funksie? JASON Hirsch: Dis reg. As dit nie gelyk i, ons gaan die funksie weer te bel. Maar watter kant van die boom gaan ons die funksie weer te bel? Publiek: Aan die linkerkant. JASON Hirsch: Ons is nie altyd gaan om dit te noem links, indien dit nie gelyk nie. Publiek: Ag, jammer. 'N beroep op die reg. JASON Hirsch: Ons wil weet spesifiek, al is - onthou, in 'n binêre soek boom om alles te die linkerkant is kleiner. Alles aan die regterkant kant is groter. So dit is net nie - ja, gaan voort. Publiek: As dit is minder as wat ek, dan - As dit is aan die linkerkant - JASON Hirsch: So as ri is minder as - So as ons nommer is minder as wat ek, watter kant wil ons heen? Publiek: Ons wil gaan na die regterkant. JASON Hirsch: Ons wil gaan - laat my trek 'n vinnige boom. As dit is 5, sal dit wees 3. So as ri is minder as vyf, wat kant wil ons gaan? Publiek: Jammer, wat? JASON Hirsch: Ons getal is minder as die aantal ons soek nou by. Publiek: O, dan wil ons om te gaan na die linkerkant. Ja. Jammer. JASON Hirsch: Presies. Geen bekommernisse. In die binêre soek boom, alles laer is aan die linkerkant, groter is aan die regterkant. So as ons nommer is minder as die i Ons monitor - want jy sien in die knoop, dit het 'n I - dan kan jy wil om te gaan na die linkerkant. En dit is 'n maklike een. Wat is dit die ander lyn van pseudokode ons nodig het om te skryf? Carlos? Publiek: dieselfde ding, jy moet net skakel dit tot 'n groter as teken en gaan na die regterkant. JASON Hirsch: Kan u sê dit nog een keer? Publiek: As ons nommer groter as ek, gaan na die regterkant. JASON Hirsch: Uitstekend werk op die pseudokode. Kom ons doen dit in die werklike kode. En weer, hierdie pseudokode sal waarskynlik nie, want dit is korrek is, 50% op hierdie vraag. Maar dit pseudokode vertaal ook een een, in wese, in die kode. So laat ons dit doen in C. Wie kan gee my die eerste reël van die kode? Eintlik is die eerste, voordat ek doen dat, laat my trek - Publiek: Ek het 'n vraag. Hoekom het jy duik in die lyn wat ek vir jou gegee het? JASON Hirsch: Omdat Ek kon dit nie skryf nie. Ek weet nie. Jy is reg. Dat die lyn moet daar wees. OK, hier is ons funksie. En laat my trek, ook, ons definisie van 'n knoop. Wat gebeur as ons nie skryf typedef? Het enige iemand weet? Publiek: Dit sal nie stel. JASON Hirsch: Dit sou stel, ja. Publiek: Sal dit net een verklaar byvoorbeeld in plaas van om dit 'n nuwe tik jy kan verskeie verklaar gevalle van? JASON Hirsch: So dit sou nie weet nie - dit sal nie net verklaar 'n tipe. Jy kan nog steeds 'n baie nodes. Publiek: Maar sou ons nie hoef te skryf struct knoop elke keer? JASON Hirsch: Dis reg. Jy sal struct knoop te skryf elke keer, in plaas van net knoop. Maar met typedef, kan jy net skryf knoop elke keer. OK, wat nie gegee nie - ja, Avica. Publiek: As wortel gelyk gelykes nul, terugkeer onwaar. JASON Hirsch: Groot, en dit is ons basis geval. Volgende lyn van kode. Iemand wat nie gegee my 'n reël van die kode nie? Ja. Publiek: Root pyl i gelyk is gelyk aan i. Dan terug waar. JASON Hirsch: Groot. Volgende lyn? Ja. Iemand anders? En dan kan jy gaan volgende. Publiek: want as root pyl Ek is minder as wat ek terugkeer funksie genoem vonds wortel - JASON Hirsch: Jammer. Publiek: Return vonds wortel wys na links komma i. JASON Hirsch: So as ri groter as die ding in die boom, ons wil links gaan? Publiek: Nee, ek het dit aangeskakel. JASON Hirsch: Watter een? Publiek: Nee, ja. Ek het 'n minder as daar teken. JASON Hirsch: Right, as ri is minder as wat in die wortel - ons huidige wortel - dan moet ons wil om te gaan na die linkerkant. En wat is die laaste reël, het jy? Publiek: Basies dieselfde ding, Behalwe skakel die groter as of gelyk aan minder as en van links na regs. JASON Hirsch: Uitstekende. Het enige iemand enige vrae oor hierdie? So 'n paar ander dinge wat sou het korrek is, is dat kon die-ltiff wees. Raai, tegnies, nie een van hierdie regtig moet ook-ltiff wees. Ook, daar is waarskynlik net een geval hier. So dit is waarskynlik jou laaste geval. Jy hoef nie eens dat-ltiff. Maar waarskynlik goed te skryf dit duidelik wees. Ja. Publiek: So jy dink nie die toets - as ons foute maak, byvoorbeeld, in sintaksis - bietjie sintaksfoute - Hoe is dit raak geneem in die toets? JASON Hirsch: algemeen op die toets, klein sintaksfoute of klein styl foute nie verloor jy nie punte. So as jy 'n kommapunt vergeet hier, sou dit OK wees. As jy vergeet het hierdie hakies te sluit, dat OK sal wees. Groot sintaksfoute wat verander die funksionele betekenis van jou kode dramaties, kan jy geneem uit punte vir. Of oor die algemeen, net gradering jy op die vraag of jou kode funksies, selfs - nie sy ontwerp so baie, en nie sy styl. Kom ons kyk nou kodeer 'n iteratiewe weergawe van vonds. So dit gaan redelik soortgelyk, maar Daar is seker gaan wees 'n paar belangrike verskille. Maar ons pseudokode kan waarskynlik gaan - Ons kan nog steeds een lyn van die pseudokode en uit te vind wat die lyn is in hierdie geval. So in 'n iteratiewe weergawe, wat dink jy, Julia, moet wees die eerste reël? Publiek: Weereens, in iteratiewe boolean, wat jy nodig het om 'n lus vir die, reg? JASON Hirsch: OK. Publiek: So vir die wil, k, vir x gelyk aan 0, x is minder as i. Of nee, x is minder as die grootte van die boom. JASON Hirsch: Die boom. Sodat ons nie regtig weet nie die grootte van die boom, en ons weet nie regtig vir hoeveel keer kan ons gaan, so wat is 'n verskillende tipe lus wat dalk beter in hierdie geval? Publiek: As anders? JASON Hirsch: As anders kan nie 'n lus. So, wat is 'n soort van lus kan ons net gaan totdat 'n geval is met? Wat is die enigste ander tipe lus in C Behalwe 'n lus vir? Publiek: Terwyl. JASON Hirsch: Terwyl, presies. In 'n rukkie lus, doen nie nodig het om te weet hoe om - 'n rukkie lus en lus kan doen om die presies dieselfde ding, maar die lekker ding oor 'n rukkie lus is wat ons nodig het nie om te weet hoe groot ons boom is. So ons gaan om te gaan tot wat? Publiek: totdat dit gelyk die grootte van - JASON Hirsch: Wel, dit is baie soortgelyk aan ons rekursiewe geval. So - Publiek: Terwyl wortel Ek is nie gelyk aan i. JASON Hirsch: Dit is baie naby. Terwyl wortel i - Kom ons probeer. Ek dink nie [onhoorbaar] waar wortel i nie gelyk i. Ons kan dit nodig het om te verander in 'n bietjie bietjie, maar dit klink soos dit is redelik goed, vir nou. So ons sal dit doen. Ook, onthou, ons nie kan aanvaar per die vraag. Jy aanvaar nie dat die wortel sal wees nie-nul. So, wat dink jy het die baie eerste ding wat ons moet doen, is om? Publiek: dieselfde doen net ding as tevore. As die wortel gelyk gelykes nul, terugkeer onwaar. JASON Hirsch: Groot. So kan dit nul. So ons wil ontslae te raak te kry van dit dadelik. En dan gaan ons kyk of wortel i nie gelyk i. So, sê ons soek in die boom vir 3, wortel i nie gelyk i, nou ons is in ons, terwyl lus. Wat wil ons doen? En weer, dit gaan mooi wees soortgelyk aan ons rekursiewe weergawe. Ja. Publiek: So jy wil wil Itereer, of hou die boom so lank as wat Die wortel is nie gelyk aan nul. JASON Hirsch: So lank as wat die wortel is nie gelyk aan null? Publiek: Die wortel Dash i is nie gelyk aan nul. Net die wortel, ja. Soos 'n lang as die wortel nie gelyk aan null. JASON Hirsch: So jy wil om dit te verander in wortel nie gelyk nul? Publiek: Ja. Publiek: Ons kan kombineer hierdie, reg? Ons hoef nie die indien aanvanklik. JASON Hirsch: OK, so as ons moenie - as ons kombineer hulle, so ons gaan doen terwyl wortel nie gelyk nul, en en as die wortel gebeur nul by die wees begin, wat doen ons hier? Publiek: Terug onwaar. JASON Hirsch: Groot. So beide maniere waarskynlik sou gewerk het. Dit is 'n ander manier, en dit kombineer dit. Maar weereens, as jy gedoen het een manier, ons is gaan nie af te neem ontwerp punte op die quiz. Maar dit lyk goed. Dus, terwyl die wortel nie gelyk nul, wat is die eerste ding wat ons wil hê om seker te maak? Iemand anders? Nul, wat is die eerste ding? Publiek: As ri is minder as - O, ek dink, as ons reeds gevind dat dit in die wortel. So as root pyl i is gelyk aan i - JASON Hirsch: Jammer? Publiek: As wortel pyl Ek is gelyk gelyk i - JASON Hirsch: Wat doen ons? Publiek: Terug waar. JASON Hirsch: Groot. En wat is volgende? Jeff, wat is die volgende lyn van die kode? Publiek: As Ek is minder as root pyl i, dan wortel gelyk wortel pyl links. JASON Hirsch: wortel gelykes wortel pyl links. So dit is waarskynlik die grootste verskil hier in hierdie iteratiewe weergawe in teenstelling met die rekursiewe weergawe. Die rekursiewe weergawe, ons bel weer die funksie. Ons sal die opdatering wortel toe noem ons die nuwe funksie. Hier is ons nie 'n beroep 'n nuwe funksie. Ons is eenvoudig net die opdatering wortel in hierdie funksie. Dit is uitstekend. En wat is die laaste reël van die kode? Ja, Mario? Publiek: Else wortel gelykes wortel pyl reg. JASON Hirsch: Jammer? Publiek: Root gelykes wortel pyl reg. JASON Hirsch: jy kan ook skryf iets soos hierdie? Publiek: Ek het geen idee nie. JASON Hirsch: Jy kan nie. Jy kan dit nie doen plus gelykes. OK, so dit lyk goed. Hoekom het ons nie net doen wat dit skoon te maak. Dit lyk baie goed, en dit sal werk. En ons sou uitbreek. As wortel links was leeg of wortel reg was nul, sou ons hier kom. Wortel gelyk aan nul sou wees. Ons wil breek uit ons lus, en ons wil terugkeer onwaar. So wanneer ons breek uit die lus, ons terugkeer onwaar. En weer, die 'n rukkie lus was volmaak hier omdat ons nie weet hoe om groot ons boom is. Ons het probeer om die te skryf vir lus, maar ons besef jy het om uit te vind hoe groot dit is voor die tyd. Ja. Publiek: As dit was nie 'n binêre Soek boom, sou dit werklik wiskunde-y om dit te iteratief skryf, reg? Soos, as dit was 'n boom, maar nie noodwendig nie - so dit was nie al kleiner aan die linkerkant, en al groter op die regterkant. Dit sou werklik moeilik te Itereer oor dit, reg? Ons wil hê om te red wat vroeër in die boom en terug te gaan, en dinge soos dat. JASON Hirsch: As dit was nie 'n binêre Soek boom, al was dit net 'n boom en dinge was nie gesorteer soos hierdie - en ons besef vroeër toe Anna is ons te help wat maak dit gesorteer help ons om 'n baie - ons sal moet, ja, altyd red waar ons was voorheen. Maar daar kan 'n baie wees waar ons was previouslys. Daar kan 'n baie ouer nodes wees. Waarskynlik die beste manier om dit te doen sou wees om te hou stoot dinge op 'n tipe stapel of tou. Jy sal nooit nodig om dit te kodeer want dit is 'n harde probleem. Maar jy 'n paar dinge te stoot op 'n stapel of tou en dan pop dit af, en dan evalueer hulle. En dan het 'n paar ander ding waar jy is eintlik om die nodes, en skep dan dat en dan soek deur dit. Dit is dalk die beste manier om dit te doen. OK, enige vrae oor hierdie probleem? Publiek: Dit is 'n verwante noot. Sal ons 'n lopie tye te vergelyk vir hash tabelle, binêre Soek bome, ensovoorts? JASON Hirsch: Waarskynlik. So laat ons doen wat regtig vinnig. Begin tyd vir hash tafel - wat is die ander? Binêre boom? Publiek: Link lyste. JASON Hirsch: OK, kom ons doen insetsel. Wat is die groot O van insetsel op 'n hash tafel? Wat is die aannames jy maak? Publiek: Jy inbring by die die begin van die skakel lys. JASON Hirsch: Waarskynlik die eerste aanname is dat daar geen botsings. As daar geen botsings, dan die invoeging tyd is een. Indien daar botsings, en jy doen aparte aaneenskakeling en die inbring aan die begin van die skakel lys dan voeg is ook konstant. As jy 'n hutstabel doen nie, maar jy 'n ander metode van hantering met botsings, wat is 'n ander metode? Wat se is 'n ander metode van die hantering van botsing in 'n gemors tafel? Publiek: Lineêre programmering. JASON Hirsch: Lineêre programmering. So ons gaan hou soek vir die volgende oop plek. Dit is nie konstant te voeg tyd. Jy kan hê om deur te gaan die hele tafel, sodat kon groot O van n wees. Ja. Publiek: Anders net chaining? JASON Hirsch: Ons het afsonderlike aaneenskakeling. Dit was die eerste een. Dit is wat die skakel lys. Die fancy naam is aparte aaneenskakeling. Dit kan enige tipe van lys struktuur ons gebeur te doen in skakel lys. So weer, voeg op 'n hash tafel kon konstante tyd. Wat van inplanting op 'n stapelaar tou? Publiek: Is dit nie konstant? JASON Hirsch: Dit is konstante tyd. Jy is net besig om dit op. OK. Inplanting, wat was die ander kinders? Op 'n probeer? Wat is 'n groot O van plasing op 'n probeer? Publiek: Duur konstant. Lengte van die langste - die lengte van die woord jy inbring. JASON Hirsch: Jammer? Wag, so wat het ek hoor? Jy sê - wat het jy gesê? Wat was jou antwoord, Marcus? Publiek: Die lengte van die woord jy inbring in karakters, die veronderstelling dat dit is 'n karakter probeer. JASON Hirsch: OK, so die lengte van die woord. Ons sal 'n aanname te maak dat dit is 'n string van die karakters. Jy sê iets anders, al is. Jy het gesê lengte van die langste woord. Publiek: Dit is net konstante, reg? JASON Hirsch: Hoekom sou dit konstant wees? Publiek: Soos, as jy gebruik groot O notasie, dan is dit nie wissel op grond op die aantal van die dinge wat is reeds in die drie. JASON Hirsch: sodat ons sê dit is konstante tyd. Dit is konstant te voeg, en dit is omdat hierdie idee - sê ons het 'n woord wat 45, of 'n woord wat 60, wat het 'n konstante getal is. En dit sal net ingevoeg word in konstante tyd. In die praktyk egter, sou dit nie wees nie, natuurlik, gebeur dit in een millisekonde, byvoorbeeld. Maar ons sou sê groot O konstant vir 'n drie. En dit is een van sy grootste voordele. Wat van opname in 'n skakel lys? Net 'n generiese, gesorteer skakel lys? Ja. Publiek: Ek het 'n vraag. Op die toets, sou hulle ooit ons vra om die voeg die tyd wat vier stappe, of iets? Of is dit net - wanneer jy sê inplanting tyd is een, dit beteken net konstante tyd? JASON Hirsch: Ja, hulle sal altyd vra, is dit groot O van n? Big O log n? N vierkantig konstant. Dit is werklik die enigste wat jy nodig het om te weet. Wat van inplanting op gesorteer skakel lys? Publiek: Ek het 'n vraag - 'n vraag - JASON Hirsch: Wat is die antwoord op die vraag, al is? Publiek: Wag, wat het jy vra? JASON Hirsch: Wat is 'n groot O van opname in 'n gesorteer skakel lys? Publiek: Een? Geen Wag, nee wag, n. JASON Hirsch: N. Behalwe die skakel lys. En wat was jou vraag? Publiek: So sal jy skryf o k of o van 1 vir die - JASON Hirsch: Oh. Ek sou skryf o 1, waarskynlik. Daar was 'n ander data struktuur dat 'n goeie sou gewees het. Tree, binêre soek boom. Wat se inplanting op 'n binêre soek boom? GEHOOR: Teken. JASON Hirsch: So, wat is die ergste geval in 'n binêre soek boom? So as ons gebeur te begin op 5, en elke getal is groter as 5 is, dan ons het 5, 7, 9, 11, ensovoorts. In hierdie geval, dit is basies net 'n skakel lys, en ons moet almal in te voeg die pad aan die einde. So dit is groot O van n. Dit kan ons ergste geval op 'n binêre soek boom. Dit is duidelik dat, sou jy nooit bou 'n binêre soek boom met 5 in die middel, met die wete 5 sal wees om die laagste getal. Maar dit kan wees, as jy van nuuts af begin. Enige vrae oor hierdie voor ek beweeg na 'n ander vraag? Dit was 'n goeie vraag. Ek wil weet groot O van - Publiek: Wat soek Vir diegene vier? JASON Hirsch: Beslis ons het soek-en sorteer. Ons het al die algoritmes, reg. Wag, was dat vir Quiz 1? Is wat gedek - het jy reeds dat vraag op Quiz 1? Die groot O looptyd van binêre soek, voeg soort, borrel soort? Publiek: Ja. JASON Hirsch: As jy het wat vraag op Quiz 0, is die kans jy sal nie kry presies dieselfde vraag op Quiz 1. Dalk nog goeie diegene wees om te weet. Jy moet hopelik weet GH reeds. Maar ander logaritmiese Runtimes is waarskynlik goed om te weet. Dinge wat nie gedek op Quiz 0. Soos al hierdie operateurs op hierdie abstrakte datatipes. OK, kom ons beweeg aan. Hierdie een moet wees redelik vinnig. En dit is 'n nuwe taal wat ons nie het nie eintlik gekodeerde voor. Dit is 'n vraag vra te kode in PHP. So kyk na die PHP array hieronder. Skryf PHP en / of HTML kode sodanig dat dit uitgange 'n twee-kolom tafel met TFS name en huise. Jy het nog nooit dit gedoen het voor, hierdie spesifieke probleem. Maar dit moet baie vertroud te wees wat jy gedoen het in die probleem gestel 7. So ek sou bereid wees om te wed jy sal wees gevra om iets te kode in PHP wat is baie soortgelyk aan wat jy het in die probleem gestel 7. Eerstens, skikking is nie daardie spesifieke. Watter tipe skikking is dit? Publiek: Assosiatiewe. JASON Hirsch: Dit is ' 'n assosiatiewe skikking. En wat is die verskil tussen 'n assosiatiewe skikking en 'n voorwerp? Publiek: 'n voorwerp reeks het 'n indeks heelgetalle, en 'n assosiatiewe skikking is 'n indeks van 'n string, of iets soos dit. JASON Hirsch: So 'n verskeidenheid van voorwerpe indekse van sou hê heelgetalle, maar 'n voorwerp het velde. Dit het die velde name soos noem, huis, student. Het jy 'n idee? Publiek: Wel, assosiatiewe skikking is in PHP, reg? En voorwerp in JavaScript? JASON Hirsch: Honestly, daar is geen werklik 'n verskil tussen die twee. Albei het stringe as die sleutels, en kan het basies enigiets as die waarde. Verskillende tale noem een ding assosiatiewe skikking, een ding wat 'n voorwerp. So eerlik, daar is geen werklike verskil, maar daar is beslis 'n paar sintaktiese verskille tussen die twee. Ja. Publiek: So is ook voorwerp gekodeerde onder die kap as 'n hash tafel, dan? JASON Hirsch: Wat doen jy bedoel, gekodeerde onder die enjinkap? Publiek: Ons is vertel dat assosiatiewe skikking was tegnies 'n hash tafel. So is ook voorwerp tegnies 'n gemors tafel? JASON Hirsch: Ek gaan nie daardie vraag te beantwoord. Ek sal terug te kry om jou op daardie. Maar ek sou nie dink nie van diegene soos dit. Maar, op enige wyse, assosiatiewe skikking en voorwerp, in die algemeen, mense gebruik dié terme verwissel. In hierdie geval, die koel deel is jy sleutels kan gebruik. Strings as sleutels, eerder as net 'n eenvoudige getalle. So ek het gepraat oor dit vir 'n rukkie. Hopelik, sommige mense gekry het op hierdie. Ons gaan 'n paar PHP en HTML te skryf kode, soos wat ons kry 'n twee-kolom tafel met TFS name en huise. OK, ek sou ook 'n kop hou ry op hierdie tafel. So ek gaan reguit kry in hierdie. Ons gaan om te dien, 'n nuwe, en ons gaan - OK. Hoe begin ek 'n tafel? Wat is die etiket, Michael, 'n tafel te begin? Publiek: Table. JASON Hirsch: Table. En as ek 'n merker oopmaak, wat anders het ek nodig? Publiek: 'n kop? Of, dink ek, die klas. JASON Hirsch: So, jammer. Aanvaar dat ons reeds geskryf doctab, HTML, al daardie dinge. Maar as ek oop die tafel etiket, wat anders moet ek skryf? vir bekragtig HTML? Publiek: sluit dit. JASON Hirsch: Maak die etiket. Hoe skryf ek 'n close-tafel tag? Publiek: Dot streep tafel. JASON Hirsch: Sny tafel, groot. Maak seker sin om beide te skryf van diegene saam, want jy het om dit te doen. OK, as ek wil 'n kop ry, hoe Ek skryf 'n kop-ry met titels? Publiek: Is dit minder as 10 uur naby - TR, ja. JASON Hirsch: TR? Publiek: Toe dieselfde ding, die streep, ja. JASON Hirsch: OK, en gee my twee kolomme. Publiek: T D? JASON Hirsch: OK. Ek wil twee kolomme. Is dit gee my twee kolomme? Hoeveel kolomme is dit? Een. So laat kopieer en plak dit. So eintlik, op die quiz, al hierdie kode wat ons tot dusver was geskryf eintlik aan jou gegee. Maar jy moet waarskynlik nog weet hoe om dit te skryf. Ja. Publiek: Jou huis is tussen die twee. JASON Hirsch: Boom. Dit moet net daar gaan nie, reg? Goeie oproep. So weer, al hierdie kode is eintlik aan jou gegee op die werklike toets. Maar dit is pret om dit te skryf, en jy moet weet hoe om dit te skryf. So dit is waar jy moet jou kode te begin. Wat moet ons hier skryf? Jammer, ek nodig het om te verander die naam van hierdie lêer. Sodat ons dit gestoor in 'n. HTML-lêer, nie in 'n. PHP lêer. Hierdie dinge sou niks beteken in 'n. PHP lêer. So ons is in 'n. HTML lêer. Wat is die eerste ding wat Ek nodig het om te skryf? Ek wil 'n paar PHP te sit kode in 'n HTML. Publiek: PHP, soos 'n ander wortel en vraagteken PHP, reg? JASON Hirsch: Groot. En hoe kan ek eindig dit? Publiek: Met 'n vraagteken. JASON Hirsch: Dit is 'n groot. Dit is die eerste ding wat ek nodig het as ek wil sommige PHP-kode om te sit in hier. Publiek:. Ek het gedink 'n PHP lêer kon HTML neem. JASON Hirsch: Ja. A. PHP lêer kan neem 'n paar HTML en word vertoon. Dit was my sleg. Ek het net probeer om na te boots wat dit was op die quiz. OK, jammer om jou te verwar. Ja, practice.HTML. Nou gaan ons om te sit sommige PHP-kode in Wat is die eerste lyn van PHP-kode moet ek skryf? Ek gaan om te gaan deur middel van hierdie reeks en maak dit in 'n tabel. Ja. Publiek: Jy kan óf gebruik 'n vir H lus of 'n lus vir. JASON Hirsch: OK, wat wil jy gebruik? Publiek: Ek sou gebruik om 'n lus vir. Vir en dan doen jy dollar-teken Ek is gelyk aan 0 kommapunt dollar teken ek minder as 2. En dan kommapunt i dollar teken ek plus plus. JASON Hirsch: Hoe doen jy weet te gebruik 'n 2? Publiek: Omdat daar twee assosiatiewe skikkings binne die groter assosiatiewe skikking. JASON Hirsch: So het die groot ding se nie 'n mede-skikking. Die groot ding is net 'n gewone skikking. Maar jy is reg, daar is twee assosiatiewe skikkings in ons groter verskeidenheid. Dit is hoekom jy gebruik om die twee. Ek voel ongemaklik in die veronderstelling dat hulle is 2, so wat is 'n manier om te skryf sonder die veronderstelling dat hulle is 2? Publiek: [onhoorbaar]? JASON Hirsch: OK, hoe skryf jy dit? Publiek: foreach dollar-teken TFS of soos dollar teken tf. JASON Hirsch: OK, so vir elke TFS as TFS, ek wil nou weer, het my tafel. So wat my kan gee volgende lyn van die kode? Publiek: Print, en dan in kwotasies, bracket tr einde bracket, einde kwotasie. Einde hakies, kommapunt. JASON Hirsch: OK, en Wat is dit gaan doen? Publiek: Dit gaan om te sê, 'n nuwe ry. Dit gaan sit die merk vir 'n nuwe ry. JASON Hirsch: Right, hierdie PHP, soos het ons gepraat oor vroeër - dit PHP gaan geëvalueer word, en dan dit gaan om uit te druk van hierdie lêer 'n tafel sleep, en dan is dit HTML geëvalueer sal word. Ons is net die kopiëring van hierdie HTML het ons hier. Ja. Publiek: [onhoorbaar]? JASON Hirsch: Jammer? Dit is reg hier. Val 2012. Moenie kyk na die antwoorde, laat se los dit saam. So het ons druk tafel ry. So is jy waarskynlik in die swaai van die dinge. Wat is die volgende lyn van kode wat ons nodig het om te skryf? Assam, gee my die volgende lyn van kode. Publiek: Jy moet die tf se naam. Tf oop hakies aanhalingstekens noem geslote hakies. JASON Hirsch: Gee my hul naam. Publiek: Jy moet dit te druk. [INTERPOSING Voices] JASON Hirsch: OK, hoe kan ek druk dit? [INTERPOSING Voices] JASON Hirsch: ek mis iets wat nou. Wat mis ek? Publiek: Jy moet 'n dollar-teken. JASON Hirsch: Wat anders mis ek? Al wat ons het so ver gedruk is die tr. Publiek: Maak die tr nadat dit. JASON Hirsch: So moet ons die tr te na te sluit. Wat sien wat ons mis on line 16? Ja, Anna. Publiek: Jy moet oopmaak 'n td en krullerige draadjies. JASON Hirsch, en waar sit ons krulhakies? Publiek: Rondom die tf naam. JASON Hirsch: Soos hierdie? Publiek: Ja. En dan sluit die td. JASON Hirsch: Soos wat? Publiek: Het jy behoefte aan dubbele aanhalingstekens punte langs die krulhakies? JASON Hirsch: Right hier? Nee, jy doen nie. So dit is presies reg. Ja. Publiek: So het die verskil tussen wat en encatenating met kolle is, indien jy punte gebruik, sal jy wil hê dat die dubbele aanhalingstekens, dan 'n dot, dan is die dot - JASON Hirsch: Korrekte. So jy sê daar is 'n uiteindelike manier om te skryf hierdie soos dit. Wat die aaneenskakellling operateur in JavaScript? Publiek: 'n plus-teken. Jy het vergeet om te sit die krullerige stut terug. JASON Hirsch: Groot. En daar is nog 'n lyn van die kode ontbreek. Wie kan my die laaste reël van die kode ons ontbreek? Publiek: Net presies dieselfde ding, net met die huis in plaas van die naam. Groot JASON Hirsch: Groot. En jou sintaksis is presies reg vir om dinge in 'n mede-skikking. So in die werklike toets, is jy eintlik gegee tot hier. So hierdie kode is wat aan jou gegee. Al wat jy het om te skryf was hierdie vier lyne en onthou om te sluit die tafel etiket. Julle het eintlik en nog baie meer. Ja. Publiek: So is dit funksioneel wees dieselfde as jy moes net dat al in een groot druk oproep, reg? En dan net saamgevoeg dit op, ensovoorts? JASON Hirsch: Soos wat? Publiek: Ja. Dit sou net nie goed lyk as jy kyk na dit wanneer jy inspekteer die element op jou webwerf, reg? JASON Hirsch: Ek stem saam. As ek gelaai hierdie webblad, wil ek wees staat om hierdie PHP-kode om te sien, ooit? Publiek: No JASON Hirsch: No En eintlik, ek wou nie. Publiek: Dit is nie HTML, reg? So kan jy dalk in staat wees om - JASON Hirsch: So dit sou PHP geëvalueer bediener kant. PHP is altyd geëvalueer bediener kant, so jy nog nooit in staat PHP-kode te sien. Publiek: Maar jy wil in staat wees om sien die gevolg van die druk. JASON Hirsch: Right. En dit eerlik mag nie sit dit op die lyn. Dit kan dit mooi klaarmaak vir julle, of dit kan dit op een lyn. Onduidelik. Maar ja, 'n goeie punt. Publiek: Hoe kom daar ' geen teks Verligting vir enige van die PHP instruksies? Omdat ek onthou aangesien. JASON Hirsch: Omdat dit 'n . HTML-lêer hier op die top. Daar gaan jy. Publiek: As ons die eerste metode met die vir loops, reg, as ons wou 'n TFS om toegang te verkry, sou ons doen TFS bracket 0 bracket, dan [Onhoorbaar]? JASON Hirsch: Jy sal - So jy sê vir die for-lus, het jy in dollar-teken TFS bracket 1 sou doen of ek, reg. Of dollar teken i sluit bracket en dan vierkante hakies dubbele aanhalingstekens, ja. OK, 'n uitstekende. Ons het nog 'n vinnige een. Sewe minute, so ek wil om te gaan oor hierdie een. Dit is nog 'n voorbeeld. Ons is nou 'n totaal ander taal. Ons het 'n paar HTML-kode. Dit is soort van 'n klein op die skerm, maar Ek wil jou om te kyk deur dit regtig vinnig, en kan iemand my vertel, as ek hierdie webblad te laai, wat ek sien? Beskryf alles oor hierdie webblad. Noag? Wat sou ek sien? Publiek: Kode aan die voorkant van Google met 'n gevoel vir die teks en 'n stuur knoppie. JASON Hirsch: En wat sou die knoppie sê? Publiek: Stuur. O, soek. Ek is jammer. JASON Hirsch: Dit sou sê soek. Onthou, noem. Wat gebruik ons ​​naam vir? Hierdie naam eienskap, wat is wat gebruik word vir? [INTERPOSING Voices] Publiek: Dit is sy naam wanneer dit gekliek? JASON Hirsch: Dit kan wees. Maar wat doen ons in die algemeen sien - waarom gee ons hierdie naam tou? Hoekom sien ons dit? Ja. Publiek: Maak nie wat geword indeks van die super globale veranderlike? JASON Hirsch: Ja, in die algemeen wanneer hierdie vorm sal dien, en dan waar sou dit aan? Wat bladsy? Noag, wat sou hierdie bladsy aan? Publiek: Ek is nie seker nie. JASON Hirsch: Waar kon ons dit kan kry? Waar vind jy wat bladsy dit lê aan? Wat reël van die kode? Publiek: Form aksie. JASON Hirsch: Presies. Aksie. So dit lê aan die soektog bladsy. Agteroorskuisstreep soek. So dit is presies reg. Watter metode? Publiek: Kry. JASON Hirsch: Kry. Presies. So lees ons hierdie. Dit gaan 'n vorm te wees. Jy is presies reg. Twee dinge wat op die vorm, die titel van die bladsy en die top sal wees Google. So hier is twee vrae wat jy behoort in staat wees om te antwoord oor hierdie bladsy. As dit HTML woon op hierdie webwerf en die gebruiker insette fout in hierdie teks gebied reg hier, wat URL sal die gebruiker haarself vind op indiening van die vorm? So het ons hierdie reg hier. Ek gaan om terug te gaan na hierdie bladsy, al is. Ek sal skryf hierdie eerste deel. Kan almal sien hier? OK, Mario, jy dink jy weet? Wat bladsy? Publiek: agteroorskuisstreep soek. JASON Hirsch: Ek gaan om hier te beweeg. OK, backslash soek vraag punt Q gelyk fout. Enigiemand het 'n ander voorstel? Ja. So hoe kry ons dit? Wel, ons het dit voor gesien. En jy het met hierdie vroeër. Jy was reg, Noag, dat die aksie om ons te vertel wat bladsy gaan ons. Ons weet ook watter metode. Ons doen kry. En die verskil tussen AOO en post is wat kry vertoon in die URL en na nie. So as ek geskryf post reg daar in die metode, wat sou anders wees? Publiek: Dit sou net wees streep soek. JASON Hirsch: Dit sou net streep word soek. Niks hier sou gebeur. Maar, want dit is 'n te kry, die URL word soos volg vertoon. Eerste sien ons 'n vraagteken en sien ons die naam en die waarde. Sê daar was een ander teks veld en Ek het dit 'n naam van r en ek insette 'n waarde, ruspe. Wat sou dit nou lyk? Ek het nog 'n teks veld, gee ek 'n naam van r en 'n waarde van ruspe. Publiek: Na bar wat jy wil hê die ampersand ruspe. JASON Hirsch: Dis nie, en-teken. Publiek: Of is dit net watter die en-simbool. JASON Hirsch: Ja, nee. Jy was reg, ek was verkeerd. Dit is soos 'n g. Publiek: Caterpillar. r gelyk ruspe, jammer. JASON Hirsch: Is daar Nee R in daar? Publiek: Nee, daar is. JASON Hirsch: Ons sal praat oor wat na die klas. Dit is presies reg. So het die en is korrek. En dan kan jy baie van hierdie het, en hulle sal almal saamgevoeg word saam met dit en. So dit is presies reg. Daar is nog 'n vraag. Teken hierdie HTML DOM se begin met dokument. Ons kan dit doen in twee minute. Ons sal dit doen hier. Ek kom terug na hierdie webblad te gaan. OK, ons begin met dokument. Wat is volgende? So wanneer jy dit lees deur - Publiek: HTML. JASON Hirsch: HTML is volgende. Ons gaan om te gaan tag deur tag. Wat se na HTML? Publiek: Hoof. JASON Hirsch: Hoof. Wat is ná kop? Publiek: titel. JASON Hirsch Titel. En die titel het 'n waarde van Google, maar ek is nie van plan om skryf dat vir nou. OK, waar kom die liggaam te gaan? Publiek: kom ook af van die HTML. JASON Hirsch: Presies. Liggaam kom af van hier. Nie almal sien waarom dit die geval is? Jy moet waarskynlik in staat wees om te vind dit uit ook, selfs al het ek nie hierdie mooi inkeping. Die inkeping soort gee dit weg, maar jy kan sien dat die hoof tag het gesluit is, wat beteken dat ons waarskynlik kan nie gaan hier af. Ons moet terug te gaan na wat ook al was reg voor die kop tag, of onder daardie. Ons is selfs met die kop tag. En onder liggaam gaan vorm. Onder vorm, is daar twee insette. OK. Dit is al wat ek gekry het. Quiz 1 is môre. Ek is so opgewonde vir julle. Dit gaan 'n belewenis wees. As jy - Publiek: [Applous] JASON Hirsch: O stop, stop. Maar nee, ek grap. As jy enige vrae het, reg na artikel, sal ek buite te wees. As jy enige vrae vanaand, voel vry om te bel, e-pos, gchat, duif my. Sterkte môre. Het 'n wonderlike Thanksgiving breek, As ek sien nie dat jy voor dan. En Ek sal julle sien ná Thanksgiving op Dinsdag vir ons finale artikel partytjie ooit. Publiek: [onhoorbaar]. JASON Hirsch: Groot. OK, ek sien julle ouens volgende week, of in twee weke. En baie geluk môre.