HANNAH Blumberg: Hi kulħadd. Aħna qed tmur biex tibda biss ftit minuti kmieni peress li għandna lott kollu ta 'materjal li tinkiseb permezz. Jien Hannah. I'ma TF. Maria se jingħaqdu us biss fi ftit minuti. Hija tgħallem taqsima dritt qabel. I jgħallmu sezzjoni tal-lemin wara, hekk aħna qed tmur li jżomm lill-siegħa u nofs. Allura kif tkun taf tara up here, għandna pjuttost xi suġġetti ftit għandna bżonn li tikseb permezz, hekk aħna ser jkunu għaddejjin xi ftit fast. Iżda jekk fi kwalunkwe punt ngħidu xi ħaġa wisq malajr jew ma tifhimx, tħossok liberu li jinterrompu bil-mistoqsijiet. Aħna rridu li tkun tista 'tagħmel dan tirrevedi sessjoni utli kollu inti kemm jista 'jkun. Tal-biża. Mela ejja jaqbżu dritt ma xi suġġetti li għandna attwalment ħafna, koperti fil-qasir ħafna għall- kwizz 0 fis-sessjoni reviżjoni kwizz 0. Allura tibda ma 'listi marbuta. Hekk biss tagħmel ċert li jkollok xi għarfien bażiku dwar listi marbuta u huma komdu tagħmel xi wħud mill-operazzjonijiet bażiċi. Hekk biss biex tirrevedi, marbuta listi huma aħjar minn arrays għaliex dawn jistgħu jikbru b'mod dinamiku. Allura aħna għandna dan il-vantaġġ enormi. Rajna minnhom użata fit-tabelli hash meta aħna ma nafx eżattament kemm affarijiet aħna qed tmur jridu li ddaħħal fil istruttura data tagħna. Sfortunatament, aħna għandna biċċiet ta ' il-lista marbuta madwar memorja, hekk aħna mhux se neċessarjament jistgħu jagħmlu l-aċċess ta 'żmien kostanti għal kull element fil-lista marbuta. Sabiex issib element partikolari, aħna għandek jtenni l- mod mill-bidu. Allura wieħed iżomm f'moħħu li ħafna mill- operazzjonijiet bażiċi huma omega ta 1. Allura daħħal huwa biss se tieħu 1. Ħassar se jieħu n peress li aħna ikollhom imorru jsibuha mil-lista. U tfittxija tista 'tieħu, fl-agħar, n. Aħna ma tistax tagħmel xi ħaġa simili tfittxija binarju fuq lista marbuta peress li aħna ma tistax sempliċement saltwarjament jaqbżu l-nofs. Kessaħ. Tal-biża. Ftit ftit ta 'stacks. Dan, għal darb'oħra, ħarāu fuq kwizz 0, sabiex inti għandhom ikunu super komdu miegħu. Iżda għal stacks, aħna nitolbuk li tiftakar munzell ta 'dixxijiet. U li għaddej biex tkun l-ewwel fl-aħħar li joħroġ. Allura aħna munzell affarijiet up fil-ċmieni, u mbagħad jekk aħna qed jippruvaw jieħdu xi ħaġa off-- li aħna sejħa popping off l stack-- niġu off-quċċata. U jekk irridu biex xi ħaġa fil-ċmieni, nagħmlu sejħa hija imbuttar. Allura huwa dejjem se tkun jikbru mill-qiegħ bħal munzell ta 'dixxijiet. Tal-biża. Imxejna stacks tidher implimentati ma żewġ listi konnessi u arrays. Jekk inti qed implimentazzjoni ma arrays, inti tixtieq biex tagħmel żgur li jżommu rekord ta ' kemm id-daqs u l-kapaċità. Allura daqs se tkun l-kurrent numru ta 'affarijiet fil munzell tiegħek, billi kapaċità huwa n-numru totali ta 'affarijiet li inti jista' jaħżen fil munzell tiegħek. Kessaħ. Ħafna bl-istess mod, għandna kjuwijiet. F'dan il-każ, minflok ta 'ħsieb dwar munzell ta 'dixxijiet, jaħsbu ta' linja. Dan se jkun l-ewwel fl-ewwel out. Mela jekk inti qed lining up għall xi ħaġa fil-maħżen, nittamaw li l-persuna l-ewwel fil linja se tkun megħjuna ewwel. Minflok qal push u pop bħal nagħmlu għall munzell, aħna biss jgħidu enqueue u dequeue. U għal darb'oħra, jekk inti implimentazzjoni ta 'dan ma' firxa, għandna bżonn li jżommu rekord mhux biss id-daqs u l-kapaċità, iżda wkoll ir-ras, li se tkun il-quddiem tal-kju tagħna. Kessaħ. Kwalunkwe mistoqsijiet dwar xi li? Tal-biża. Nimxu dritt flimkien. OK, tabelli hash. Hawn fejn jibda jiksbu verament interessanti. Allura tabella hash hija implimentazzjoni waħda ta 'firxa assoċjattiva. Allura bażikament dak li ġara huwa għandna dan kollu input, u nagħtu lil hash funzjoni li jgħid, OK, dan huwa fejn fil- tabella hash jappartjeni. Allura l-funzjoni hash sempliċi li Rajna huwa biss qal, OK, ejja ngħidu aħna tixtieq li tqiegħed kordi fit-tabella hash tagħna. U idea verament sempliċi jista 'jkun li jgħidu, OK, ejja biss sort mill- ewwel ittra tal-kelma. Allura tista 'tara hawn, nieħdu banana, aħna poġġih permezz ta 'funzjoni hash, u jgħid, ħej, li għandhom imorru fi indiċi 1. Allura nistgħu essenzjalment jaħsbu ta 'hash tabella kif mazz ta 'bramel differenti. U kull wieħed minn dawn bramel qed jiġri li jżommu l-kap ta 'lista marbuta. U f'dik il-lista marbuta huwa fejn nistgħu fil-fatt imqiegħda biċċiet differenti ta 'data. Allura għadis ftit aktar fi funzjoni hash, hawn l-eżempju I biss deskritti fejn aħna biss jgħidu, OK, jieħdu l-ewwel ittra tal-kelma u aħna qed se sort fil-bramel. Allura preżumibbilment, se jkun hemm 26 bramel, wieħed għal kull ittra tal-alfabett. Għaliex hija le dan funzjoni hash kbira? X'jagħmel din non-ideal? Yeah. UDJENZA: Inti qed tmur li jkollhom kolliżjonijiet. HANNAH Blumberg: Yeah, eżattament. Inti qed tmur biex ikollhom kolliżjonijiet. Allura dak ħaġa waħda. U aħna ser nitkellmu dwar kif nistgħu jiffissaw kolliżjonijiet fi ftit tieni. Problema oħra ma 'dan funzjoni hash hija li differenti tagħna bramel ser ikunu daqsijiet ta 'pretty drastikament differenti. Nafu li hemm lott kollu aktar kliem li tibda bil-minn X, hekk aħna qed tmur biex ikollhom ħafna bramel żbilanċjat fit-tabella hash tagħna. Kessaħ. So yeah, ejja nikseb lura għall il-punt ta 'kolliżjonijiet. X'nagħmlu jekk ikun hemm xi ħabta? Għandna koppja għażliet differenti. Allura wieħed, hekk ejja ngħidu aħna qed jippruvaw li jpoġġu berry fis-mejda hash tagħna. U naraw, oh, irridu li tqiegħed lilha fl-indiċi 1, iżda banana diġà jgħix hemm. Liema huma aħna se jagħmlu? Għandna żewġ għażliet prinċipali. Numru wieħed huwa nistgħu ngħidu, OK, hemm l-ebda kamra indiċi 1, imma ejja biss iżommu tfittex permezz sakemm nistgħu nsibu post miftuħ ieħor. Allura aħna ser ngħidu, OK, ejja poġġih fil-post 3. C'est għażla waħda. Li sejjaħ lineari probing. U t-tieni għażla huwa qal, OK, ukoll, ejja biss tagħmel kull wieħed minn dawn bramel ikunu kapijiet ta 'listi marbuta. U huwa OK jekk ikun hemm aktar minn ħaġa waħda fil-barmil. Aħna biss se tehmeż hija fuq il-front. Allura hawn tistgħu taraw, OK, meta aħna jiddaħħal berry, aħna biss ħa banana, tip ta ' imbuttat dan matul ftit u threw berry fil hemmhekk. U li wkoll totalment multa. Din tissejjaħ chaining separata. Inti tista 'taħseb ta' dan bħala tip simili firxa ta 'kapijiet għal-listi marbuta. Kwalunkwe mistoqsijiet dwar hash tabelli, funzjonijiet hash? Tal-biża. Siġar u tipprova. Allura siġra huwa kwalunkwe tip tal-istruttura tad-data fejn hemm xi tip tal ġerarkija jew xi tip ta 'klassifikazzjoni għal oġġetti differenti tiegħek. U dan se jsir super ċara meta naraw eżempju. U rajna tentattivi, flimkien ma 'tabelli hash, fil pset5-- li, għal darb'oħra, logħba totalment ġust għal dan quiz-- bħala data ieħor strutturi li nistgħu jaħżnu l-affarijiet differenti. Fil-każ ta 'dizzjunarju, aħna maħżuna mazz ta 'kliem. Mela ejja tagħti ħarsa lejn xi siġar. Allura dan huwa eżempju ta 'siġra. Hija għandha tip ta 'struttura, dik l-istruttura ġerarkika, fejn tista 'tara li dan node 1 fil-quċċata għandu xi tip ta 'rank fuq minn 2 u 3, li huma 'l fuq 4, 5, u 6 u 7, li huma 'l fuq 8 u 9. Allura li kollox rridu nfissru minn siġra, sabiex inti tista 'sempliċement tip ta 'stampa dan fir-ras. Issa, għandna ftit Siġar aktar speċjalizzati. Allura eżempju wieħed hija siġra binarju. U siġra binarju huwa, għal darb'oħra, biss ser tkun struttura data ma 'xi tip ta' ġerarkija, iżda kull wieħed mill-lymph jista 'jkollhom mhux iktar żewġt itfal. Li meta l-binarju kelma ġejja mill. Allura dan huwa eżempju ta 'siġra binarju. Allura dak kategorija iżgħar ta 'siġar. Issa ejja nikseb saħansitra aktar speċifiċi u jitkellmu dwar tfittxija binarja trees-- binarja siġar, pjuttost. Allura hawnhekk l-idea mhix biss ma kull node jkollhom mill-aktar żewġt itfal, iżda kollha tat-tfal għall- xellug ser ikunu iżgħar u kollha tat-tfal għall- dritt ser ikunu akbar. Allura avviż fil biss tagħna siġra binarju, hemm ebda relazzjoni bejn in-numri. Iżda fit-tfittxija binarja tagħna siġra, naraw, OK, hawn 44. U kull numru ix-xellug tal 44 huwa kollox iżgħar u lejn il-lemin huwa akbar. U li jkollha f'kull livell tas-siġra. Allura hawnhekk, dan huwa iżgħar minn 22 u dan huwa ikbar minn 22. U li siġra tfittxija binarja. Għaliex aħna naħsbu huwa msejjaħ siġra tfittxija binarju? Dak algoritmu ma infakkarkom ta '? UDJENZA: tfittxija Binarju. HANNAH Blumberg: tfittxija Binarju. Għaliex jekk inti qed tfittex għal Numru partikolari din is-siġra, f'kull punt, inti tista 'sempliċement knock nofs off tas-siġra, li hija kbira. U hekk li għaddej biex tagħtina xi ħaġa li jistenna ħafna bħall tfittxija binarja. Kwalunkwe mistoqsijiet? Dritt kollha, berred. Id-dritt, jipprova. Favoriti kulħadd. Allura dan huwa l-eżempju li Rajna mazz fil-klassi. U għal darb'oħra, dan huwa biss ieħor mod li nistgħu jaħżen id-data. Fil-każ ta 'dizzjunarju, għal darb'oħra, dan huwa biss se tkun kordi. Mela ejja ara dak li dan fil-fatt qisu f'livell kemmxejn aktar baxx. Mela ejja tagħti ħarsa fil node wieħed fil-trie. U naraw, OK, hemm għaddej li jkun Boolean u node, a pointer għal node. U naraw li l- Boolean huwa msejjaħ is_word. Allura essenzjalment, li l- se jikkorrispondu għal dawn triangoli ftit li jgħid, jekk inti stajt gotten hawn, inti ħadthom misjuba kelma kompluta. Aħna nafu li "Turing" fuq hawnhekk hija kelma kompluta, billi biss T-U-R mhijiex kelma għaliex aħna ma tara li delta ftit. U li delta ftit, għal darb'oħra, jikkorrispondi għal din is_word, dan is_word Boolean. U allura għandna firxa ta 'tfal. Allura f'kull livell, inti jkollhom node partikolari, u li l-punti node lil firxa ta 'l-alfabett kollu. Allura tista 'tara, għal darb'oħra, f'dan picture-- jien ser iżommu jaqbeż lura u forth-- li dan array fil-quċċata għandha mazz ta 'differenti lymph li ġejjin off ta 'dan. Hija għandha 26, jew 27 jekk inti tixtieq li jinkludu karattru żejda. U dan jagħtina mod biex jaħżnu data tagħna b'mod li jista 'jiġi meqjus fuq li inti tista 'tfittex up super fast. X'inhu l-ħin lookup għal trie? UDJENZA: [inaudible]. HANNAH Blumberg: Yeah. Fit-teorija, wasal iż-żmien kostanti. Huwa biss se jkun id-daqs ta ' il-kelma li inti tixtieq li tfittex up. Anki jekk aħna żid zillion Kliem aktar għall trie tagħna, mhuwiex ser tieħu us aktar biex jiddeterminaw jekk kelma partikolari huwa fil-trie. Allura li tassew sbieħ. UDJENZA: Ridt biss initialize li array? Tkun insejt punt jew tnejn. Tista biss jitkellmu dwar li għat-tieni? HANNAH Blumberg: Sure, assolutament. Tajba kwistjoni. Il-kwistjoni kienet, aħna jkollhom firxa li l- ser ikollhom star node bħala kuntrarju biss node, right? Kessaħ. Allura hawnhekk dak li aħna qed tgħid huwa array tagħna huwa biss se tkun pointers għal arrays oħra. Allura huwa essentially-- it-tip ta ' iħoss bħal lista marbut b'dan il-mod fejn kull wieħed minn dawn it-tfal biss il-punt li l-node li jmiss. U l-mod li aħna fil-fatt jiddeterminaw, ħej, OK, konna tenna permezz ta 'kollu kelma, huwa din il-kelma fid-dizzjunarju, aħna biss tivverifika din is_word. Kwistjoni kbira. Yeah. UDJENZA: OK. Allura dak li kien il-runtime għall-trie? HANNAH Blumberg: Sure. Allura l-runtime għal trie għall lookup se jkun żmien kostanti. Allura huwa biss se tkun l- numru ta 'ittri fil-kelma. Mhuwiex dipendenti fuq il- daqs tal--dizzjunarju jew id-daqs tal-istruttura tad-data. Allura hawnhekk huwa eżempju kemmxejn aktar sempliċi. F'dan il-każ, tista 'tara li l-BAT kelma hija fid-dizzjunarju u inti għandek zoom, imma int ma jkollhomx xi ħaġa bħal zoo. Kif nagħmlu zoo? Kif nistgħu żid zoo għall tagħna dizzjunarju, li trie tagħna? Yeah. UDJENZA: Għamla is_word veru għall-[inaudible]. HANNAH Blumberg: Tajba. Allura aħna jgħidu Z-O-O, u allura aħna d tkun trid tivverifika off-kaxxa kif ukoll. Great. Ejja jqabblu fil-qasir ħafna jipprova versus tabelli hash. Jipprova huma verament kbir għaliex, kif għidna, dawn jipprovdu lookup kostanti-time. Iżda l-iżvantaġġ enormi huwa li qed humongous. Tista 'tikseb l-sens, anki billi tħares lejn din, li għaddej biex tieħu ammont kbir ta 'memorja. Allura dawn qed tmur biex tkun ferm akbar minn tabelli hash, iżda dawn qed tmur biex jagħti us drabi lookup ħafna aktar mgħaġġla. Allura dak it-tip ta tiegħek tradeoff, dak li inti care about, jekk huwa veloċità jew memorja. Kwalunkwe mistoqsijiet dwar xi li, kollha tal-istrutturi tad-data C. Beautiful. KOLLOX SEW. Aħna qed tmur biex jimxu fuq ftit daqsxejn ta 'web iżvilupp ma Maria. MARIA ZLATKOVA: sabiħ. KOLLOX SEW. HANNAH Blumberg: Tista 'tuża laptop tiegħi. MARIA ZLATKOVA: Nizza. OK, berred. Hekk kif nersqu issa li web iżvilupp, tkellimna ftit dwar permessi jinbidlu ta 'fajls u direttorji sabiex ikunu jistgħu jkunu aċċessibbli lil utenti oħra, għad-dinja, u sabiex inkunu nistgħu naraw kif bażikament nistgħu jwassalhom meta niżviluppaw affarijiet simili websites li konna aktar qed tagħmel. Allura rajna l-kmand chmod, li huwa mod bidla, bażikament. Li l-kmand Linux u tbiddel permessi aċċess ta 'oġġetti fajl sistema. U oġġett fajl sistema hija biss direttorju, fajl, xi ħaġa li inti tista ' jibdlu l-permessi ta '. Allura biex tara d-permessi fajl, aħna tip-kmand ls, lista, -l. U meta aħna tip li, aħna normalment tara xi permessi li look tip ta 'bħal dan quddiem ta 'isem id-direttorju. Allura d jirreferi għal direttorju. U allura għandna tliet triads li bażikament jirreferu għall-permessi ta 'kwalunkwe utent, grupp, jew fid-dinja. It-tipi ta 'permessi li nistgħu jkollhom għal dawn it-tliet gruppi ta 'nies huma jew r għall read, w għall jiktbu, u x għat tesegwixxi. U li jista 'jkollna dawk il-grupp u dinja kif ukoll. Il-ħaġa delikata hija li xi kultant meta aħna tip-kmand chmod, aħna tip xi numru li kien jikkonsisti fi tliet bits. Allura stajna nagħmlu bħal 777 u li bażikament imsemmi-valur miżjud ta 'kull wieħed minn dawn triads minħabba r jirreferi sa 4, w kieku jirreferu għal 2, u x jirreferi għal 1, hekk meta magħduda flimkien, kull wieħed mill-numri se tinżel għal numru kumulattiv għal valur kumulattiv bejn 0 u 7. Allura nistgħu wkoll ikollhom 0 għal mhux permessi fil-livelli kollha. U li bażikament tagħtina l-permessi jew għall-utent, il-grupp, jew fid-dinja. Kwalunkwe mistoqsijiet dwar dan s'issa? UDJENZA: Inti qal taqra kien 4? MARIA ZLATKOVA: Iva. UDJENZA: [inaudible]. HANNAH Blumberg: Yup. UDJENZA: U mbagħad billi żżid dawk kollha oħrajn indika n-numru tiegħek. MARIA ZLATKOVA: Yeah. Yeah. Dawn huma mistoqsijiet kbar. Sabiħ. Sussegwentement, aħna qabża fil HTML u ftit aktar dwar web iżvilupp. Allura HTML ifisser biss HyperText Markup Language. U dan huwa l-awment lingwa li huwa standard li huwa użat biex toħloq paġni tal-web. Huwa sejjaħ lingwa markup għaliex mhuwiex attwalment ikkompilati. Ma jgħidu kif xi kodiċi għandhom jiġu esegwiti jew xi ħaġa bħal dik. Hija biss jiddelinea u jiddeskrivi kif web paġna għandha tiġi stabbilita ma 'kull wieħed elementi tagħha u kif għandhom iħarsu lejn l-utent. Uħud mill-tags HTML li aħna marru fuq huma dawn li ġejjin. Kollha ta 'dokumenti HTML tagħna beda bil-html DOCTYPE. Imbagħad aħna dejjem ikollhom il-lametta html. Għandna ras u korp. U huwa importanti li HTML għandha dan it-tip ta 'struttura nested għaliex dan huwa ċar ħafna. U imbagħad isir ċar ħafna meta aħna bżonn li jinfetaħ u fil-fatt tags qrib. U aħna dejjem bżonn li tagħlaq tags li konna miftuħa. U hawn aħna għandna xi wħud mill-tipi ta 'affarijiet li ġejjin li rridu li jkollhom. Allura aħna għandna, per eżempju, it-titolu ta 'CS50. U allura aħna fil-fatt tista 'rabta folja stil li jiddefinixxi kif aħna stil websajt tagħna. Dan huwa CSS. Aħna qed tmur biex jmorru fuq fil- koppja li jmiss ta 'slajds ukoll. Fi ħdan il-korp, aħna waqqafna xi klassijiet u IDs. U bħala tfakkira, għal darb'oħra, IDs huma uniċi u l-klassijiet jista 'jiġi assenjat għal oġġetti multipli. U dan ifisser biss li nistgħu nużaw klassijiet u IDs fi ħdan structures-- oħra hekk, għal eżempju, fil-fajls CSS jew stil sheets-- li jirreferu għal elementi speċifiċi u bażikament jgħidu li aħna rridu li stil jew disinn xi element b'xi mod partikolari. U aħna nirreferu għalihom minn IDs tagħhom u l-klassijiet. U nistgħu wkoll jirreferi għal affarijiet differenti minn tags kif ukoll, iżda IDs u l-klassijiet biss tagħtina xi versatilità u dak speċifikament aħna tixtieq li jirreferu għal. Hekk biss eżempju. Nistgħu, għal darb'oħra, fil fajl CSS fejn aħna jridu jiġu definiti xi style-- hekk kuluri, fonts, u għalf bħal that-- nistgħu jiddefinixxu l-istil għal korp. Allura li jiddefinixxihiex għall-tag ġisem kollu. Iżda mbagħad nistgħu wkoll tiddefinixxi stil għal #title. U għal darb'oħra, il-hashtag jirreferi għall tagħna ID u l-dot jirreferi għall-klassi tagħna. U mbagħad għall-info, aħna jistgħu wkoll jistabbilixxu xi attributi. U għal darb'oħra, meta immorru lura, kellna tagħna klassi imsejħa info u titolu ID tagħna. U nistgħu naraw li aħna nirreferu lilhom mill #title u info. UDJENZA: Would you say hashtag [? jadotta me? ?] MARIA ZLATKOVA: Jiddispjacini? UDJENZA: Would you say hashtag [? jadotta me? ?] MARIA ZLATKOVA: hashtag ifisser ID, hekk #title jirreferi għall indipendentement mill-elementi jkollhom din ID imsejħa titolu. U allura l-dot jirreferi għal klassi. Allura info tirreferi għal dan l-element minħabba li għandha l-info klassi. Yup. UDJENZA: Għaliex inti jiddistingwuhom fil-HTML? Għaliex do you say ċerti affarijiet huma IDs u ċerti affarijiet huma klassi? MARIA ZLATKOVA: Li jinsab biss sa you-- HANNAH Blumberg: Irrepeti l-kwistjoni. MARIA ZLATKOVA: Oh, sorry. Għalfejn nagħmlu distinzjoni ċerti elementi kif IDs u elementi oħra bħala klassijiet? Li jinsab biss għaliex dan huwa verament spiss għażla disinn. Dan jagħtik ħafna ta ' versatilità li jkunu tista 'tgħid Irrid din il-partita speċifika li jkollhom din ID minħabba li jkunu jridu li tagħmel ħafna affarijiet magħha, u I biss tixtieq li jiddefinixxu stil, ċertu stil jew kulur ikun x'ikun għal dak l-oġġett. U l-mod biex tagħmel dan huwa biss tatha ID. U mbagħad jekk nixtieq li jkollhom koppja ta 'oġġetti differenti li li, minflok għaddejjin u l-istabbiliment their-- minflok tagħmel dan billi tag minħabba l-tikketta se jistabbilixxu l-ċellola għall-tikketta kollu għal kull darba li tag huwa użat, inti tista 'tistabbilixxi klassi għal oġġetti multipli. U mbagħad biss aċċess dik il-klassi u jgħidu Irrid stil din il-klassi li mod. U għal darb'oħra, il-klassi jista ikunu unitajiet differenti multipli u l-ID għandu jkun uniku. Mistoqsijiet kbar. Kwalunkwe mistoqsijiet oħra? OK, biża. Għal darb'oħra, dan huwa kif dawn seletturi huma referenzjati fil CSS, ma hashtag, ma dot, jew mingħajr xejn għall tassenja l-istil ta 'xi lametta, bħal ġisem. U hawn aħna għandna l-ġenerali sintassi ta 'kif isir dan. Jirrepetu xi aħjar prattiki għall HTML u CSS, għandna bżonn li, għal darb'oħra, qrib kollha l-tags HTML li aħna tiftaħ. U dak li aħna rakkomandat li inti tagħmel għall-proġetti finali tiegħek, kif ukoll għall-CS50 Finanzi, huwa li tagħmel żgur li kollha ta 'HTML tiegħek tivvalida. U li jsir bl-validator W3. U allura dak li għamilna u dak nirrakkomandaw tagħmel huwa separazzjoni stil, so CSS minn Markup HTML. Allura xi ħaġa li hija rigward kif paġna tiegħek se viżwalment tfittex u kif li għaddej biex jiġu modifikati għandhom imorru ġo dokument CSS. U mbagħad Markup tiegħek li tiddikjara kif l-affarijiet huma f'relazzjoni ma 'xulxin hija HTML, u li għandha tmur ġewwa ta 'dokumenti HTML tiegħek. Kwalunkwe mistoqsijiet? MHM. UDJENZA: X'inhi eżattament li qed jiġri fuq il-validazzjoni paġna meta aħna qed validazzjoni tal- HTML li [inaudible] ħolqot? MARIA ZLATKOVA: Allura what-- taħseb. Allura x'inhi eżattament li qed jiġri fuq il-validazzjoni paġna u għaliex għandna bżonn li nagħmlu? Bażikament, għandna bżonn li tagħmel dan peress li ħafna drabi, browser tiegħek, jekk inti ma tagħlaq tag jew xi ħaġa bħal dik, browser tiegħek għadu għaddej biex tirrendi paġna u xorta jista 'jaħdem, iżda huwa aħjar prattika li jiġi żgurat li inti stajt, għal darb'oħra, magħluqa tikketti kollha tiegħek, li l-elementi kollha tiegħek huma il-mod li dawn għandhom ikunu, u bażikament li huwa mill- konvenzjonijiet li huma issettjati minn qabel. Huwa, għal darb'oħra, biss ħaġa li għandek tkun tagħlim li tkun qiegħda tagħmel, aktar milli jkollok kodiċi sloppier u għalf bħal dik. Yeah. Oh, sorry. Ħsibt li inti kienu qed iżidu naħa tiegħek. UDJENZA: Le, I kien biss [inaudible]. MARIA ZLATKOVA: OK. UDJENZA: Grazzi. MARIA ZLATKOVA: Of course, grazie. Għalhekk għal darb'oħra, li tmur fuq lejn kif informazzjoni tiġi trasferita u mudelli ta 'komunikazzjoni li tittrasferixxi informazzjoni. TCP / IP. TCP ifisser biss Trażmissjoni Protokoll kontroll u IP jirreferi għal Internet Protocol. U li biss jirreferi għal il-mod id-data hija mogħtija. Jekk ikollna xi data li jeħtieġ li titwassal lil you-- hekk inti tagħmel talba għal server partikolari. Per eżempju, meta aħna tipprova l-aċċess cs50.net, nagħmlu talba lill l-server CS50 u aħna tara li aħna rridu nġibu dan it-tip ta 'informazzjoni. U mbagħad huma bbażati fuq dan il-protokoll għal kemm din l-informazzjoni ma tingħata, l-server jagħti informazzjoni lura lilna, il-klijent. U allura aħna qed kapaċi biex tara l-informazzjoni għall-paġna u mbagħad jużaw dan. Mela allura Portugues Transfer Protocol huwa biss protokoll jew sett ieħor ta 'konvenzjonijiet li tiddefinixxi kif il-web browser u l-web server għandhom jikkomunikaw. U t-tqegħid dan kollu flimkien, HTTP, għal darb'oħra, biss jiddefinixxi kif din Portugues definit mill-HTML li aħna kont qed taħdem dan, kif għandu jingħata lilek u kif dik id-data li hija mogħtija lilek gets lilek. U hu għalhekk li, jekk inti guys tiftakar minn klassi, kellna ħafna ta 'talbiet u kellna ħafna ta 'sintassi għal dawn it-talbiet li aħna qed se jmorru fuq id-dritt issa. Għalhekk għal darb'oħra, meta nibagħtu talba għal server, irridu jiddefinixxu ftit affarijiet. Allura għandna bżonn issib it-tip ta 'talba li aħna qed iffissar. U għal darb'oħra, aħna għandna, per eżempju, IKOLLOK hija tip wieħed ta-metodu li għandna fit-talba tagħna. U mbagħad HTTP / 1.1 huwa biss l- protokoll li aħna qed tuża bħalissa. Ħafna mill-ħin, li għaddej il-protokoll li aħna qed tuża. Mela jekk għandek xi mistoqsija bħal dik fuq kwizz tiegħek. Dik hija l-konvenzjonijiet li għandna s'issa. Backslash tirreferi għal dak it-tip ta 'affarijiet aħna qed titlob. Imbagħad, ospitanti tagħna huwa, per eżempju, f'dan każ, aħna qed jippruvaw biex tmur google.com. Allura dan huwa l-valur għal ospitanti. Dan huwa tip ta 'talba li jistgħu jintbagħtu. U mbagħad tip ta 'rispons li jista jintbagħtu, għal darb'oħra, ibbażata fuq dan il-protokoll, hija għal darb'oħra, HTTP / 1.1. Allura dak l-verżjoni HTTP mill-ġdid. 200 OK huwa biss il-kodiċi istatus. U li OK huwa biss frażi ibbażati fuq dak il-kodiċi istatus. U allura l-kontenut tat-Tip jirreferi għat-tip li huwa rritornat lilek li hija għal dik il-paġna web li inti tirċievi u li browser tiegħek jista 'jirrendi wara. U li huwa test / html. UDJENZA: X'tagħmel 1.1 jfisser? MARIA ZLATKOVA: Dik hija biss il- Verżjoni of-- oh, dak ma 1.1 jfisser? Dan huwa biss il-verżjoni, l-HTTP Verżjoni ta 'protokoll li aħna qed tuża. Kwistjoni kbira. Mistoqsijiet oħra? UDJENZA: Tista qosor Kontenut-Tip reali malajr? MARIA ZLATKOVA: Allura li huwa dak li l-server. it-tip ta 'information-- dak li hu tip kontenut kien l-mistoqsijiet. Allura li kien it-tip ta ' informazzjoni li inti tikseb lura mis-server, it-tip ta ' data li l-browser jista 'mbagħad jirrendu li inti qed tuża. UDJENZA: Hija li dak li dan protokoll huwa tghidlek li tagħmel? MARIA ZLATKOVA: Jiddispjacini? UDJENZA: Hija li dak il-protokoll jgħidu? MARIA ZLATKOVA: Il protocol-- UDJENZA: --what il Kontenut-Tip hija jew what-- MARIA ZLATKOVA: Il-protokoll huwa bbażat on-- dak huwa l-protokoll tghidlek? Dik hija biss il-mod li din l-informazzjoni ġiet mogħtija lilek bbażat fuq x'tip ta 'protokoll kien dan it-tagħrif ltqajna mogħtija lura lilek. Does li jagħmel sens it-tip ta '? HANNAH Blumberg: You tista 'taħseb protokoll kif a-- I think Professur Malan deskritt fil-klassi bħala tip simili a-- huwa simili l-ekwivalenti ta 'handshaking bniedem. Say, bħal, ħej, jien talba u I taf kif jitqandlu HTTP tal-verżjoni 1.1. U allura l-server jgħid, oh, OK, I-- u tnejn jeżistu. Naf kif se jagħmlu bi HTTP / 1.1. U jien ser jagħti inti lura xi kontenut. F'dan il-każ, li għaddej li jkunu ta 'test tip / html. Allura huwa tip ta biss mod minnhom għall communicating-- MARIA ZLATKOVA: Huwa biss tikkonferma li int kemm wara l-istess protokoll u li kemm il-klijent u l-server-- hekk browser tiegħek u l server-- tip ta 'know dak li qed jitkellem dwar u jkollhom il-konvenzjoni għal mogħdija fid-data. UDJENZA: Allura l-part-- Kontenut-Tip it-test Kontenut-Tip / html-- li l- parti separata tal-istess messaġġ? Jew hija parti mill ejja ngħidu, 200? Ma 200 jgħidulhom dak jew is-- MARIA ZLATKOVA: 200 jgħid li kollha marru OK. U mbagħad tip kontenut huwa tip ta ' parti separata tal-istess messaġġ, u qalu li l-ħaġa li I ritornati għandha dan it-tip ta 'test / html. Huwa sempliċiment tagħti aktar informazzjoni. Jkollhom xejn li jżid? KOLLOX SEW. Kwalunkwe mistoqsijiet oħra dwar dan? Tal-biża. Allura xi istatus HTTP oħra li nistgħu jiksbu flimkien ma '200 OK, dawk li Rajna forsi possibilment ħafna huma 403 u 404. Allura 404, jekk inti kienu qegħdin jippruvaw xi ħaġa li ma teżistix aċċess. Hekk per eżempju, fil tiegħek Psets CS50 Finanzi, jekk inti kienu tirrendi quote.html u inti ma kellhiex dan il-fajl, imma minflok kellek quote.php, li twassal għal 404 Not Found minħabba li l-fajl ma tista 'teżisti. Għal 403 projbit, li tirreferi għall-permessi. Mela jekk xi fajl mhuwiex tinqara mill- dinja, inti tista 'tikseb l-403 lura. Xi oħrajn li inti tista ' get-- 301, Ittrasferit permanenti; 302, Found; 304, Modifikat; 400, Bad Talba; u mbagħad Intern Error Server għall 500 u 503, Service mhux disponibbli. Iva. UDJENZA: Se aħna mistennija li jimmemorizza dawk status kollha? MARIA ZLATKOVA: I jkollhom minnhom fuq folja iqarrqu tiegħek. [Rires] UDJENZA: Are we mistennija li jafu dak li jqajjem kull wieħed? MARIA ZLATKOVA: Dawn huma? HANNAH Blumberg: Għal dawk li konna run into-- sabiex il-kwistjoni was-- MARIA ZLATKOVA: Dawn huma mistennija li jafu liema kull waħda minn dawn status kodiċijiet jista 'jiġi kkawżat minn? Allura għal dawk li konna użati u dam fis, nixtieq ngħid, iva. Allura konna definittivament dehru 200 OK u llekċerja fil psets. Rajna 403, 404. Għal dawk l-oħra? HANNAH Blumberg: nixtieq jgħidu 500 jidher ġusti logħba. MARIA ZLATKOVA: 500, yeah. HANNAH Blumberg: Yeah. Just jkollhom sens ġenerali ta 'dak li ġġiegħlhom. U wkoll biss minn dawn l ismijiet, inti tista tip ta ' bħal tagħmel raden edukati bħala għal dak li effettivament ikkawżat minnhom. Per eżempju, jimxu permanentement, probabbilment il-fajl kien imċaqlaq b'mod permanenti. UDJENZA: Iżda fuq preċedenti eżami, kien hemm tant kif taħseb li tistenna li tingħata risposta għal din? HANNAH Blumberg: Li kien jiswa żero punti. Il-mistoqsija fuq 418 fuq il-teapot huwa teknikament status HTTP, iżda kien jiswa żero punti. Ovvjament, int mhux mistenni jafu lilhom. UDJENZA: Iżda hija waħda reali? HANNAH Blumberg: Huwa veru wieħed, iżda dan ma jfissirx xejn. Huwa biss ċajta. Nies internet huma umoristiċi. MARIA ZLATKOVA: mistoqsijiet Kbar, guys. Kwalunkwe mistoqsijiet oħra? UDJENZA: X'inhu żball server interna? MARIA ZLATKOVA: Intern żball server biss ifisser li ġejt ma jkunux jistgħu jikkomunikaw mal-server għal xi raġuni. Għalhekk mhuwiex neċessarjament xi ħaġa li għandha x'taqsam mal-klijent jew xi ħaġa bħal dik. I do not know ta 'xi eżempju speċifiku li konna marret fuq biex jispjegaw, iżda yeah. HANNAH Blumberg: Sure. Hekk per eżempju, bħall ejja ngħidu li inti kienu qed jaħdmu fuq mashup u server Google niżlet għal xi raġuni, outage enerġija, ejja ngħidu. Dan ikun ta 'server intern żball jew xi tip of-- bħalek mhux se tikseb rispons lura. MARIA ZLATKOVA: Yeah. Huwa biss meta int ma jkunux jistgħu jikkomunikaw mal-server għal xi raġuni għaliex ta 'dan jinżel' l isfel jew xi raġuni oħra. Allura jaqbeż fis PHP. PHP, b'differenza HTML, huwa lingwa ta 'programmar. U aħna bdew jużaw dan għaliex dan huwa utli ħafna għall-iżvilupp tal-web. We ewwel użata fil CS50 Finanzi. U bażikament jgħinna iġibu flimkien dan markup, id-disinn, u kif aħna attwalment jużaw l-informazzjoni li juru l-affarijiet fuq paġna web. Allura PHP innifsu jfisser PHP Portugues Preprocessor, għalhekk huwa backnorym rikursivi minnu stess. U l-ftuħ tags għall PHP aħna ix-xellug u l-vleġeġ lemin bl-trade marks in kwistjoni u PHP. Allura aħna stajt diġà raw mazz ta 'dan. Issa, aħna qed biss se jmorru fuq xi wħud mill-affarijiet bażiċi dwar dan. Allura ma PHP, il-varjabbli ismijiet tibda bil sinjal dollaru. Aħna ma jispeċifikaw, għal darb'oħra, varjabbli tip aktar. Eżatt bħal għamilna ma C, ma kellniex bżonn biex tagħmel dan. Nistgħu nagħmlu mazz ta differenti Jittieħed ma 'varjabbli. Aħna tista 'tpoġġihom flimkien billi concatenating minnhom mal-dot notazzjoni, li aħna ma setgħux jagħmlu fis-C-ġdid. Għal darb'oħra, aħna għandna versatilità daqsxejn aktar ma PHP f'termini ta 'varjabbli. Għal darb'oħra, aħna ma jkollhom funzjoni prinċipali. U PHP huwa interpretat għall-kuntrarju kkompilata, Allura kemm aħna ma tagħmel għall-fajls C, aħna ma jkollhomx biex tagħmel dan PHP. Iżda, il-mod li l-lingwa huwa mmexxi minnu stess, huwa interpretat. U mbagħad laxk ittajpjat ifisser biss li aħna m'għandhomx għalfejn jispeċifika varjabbli tip u t-tipi varjabbli huma mifhuma fil runtime. UDJENZA: Imma What did you jfisser minn dot konkatenazzjoni? MARIA ZLATKOVA: Sure. Meta rridu biex l-affarijiet together-- hekk jekk kellna xi varjabbli li kellhom il-valur tat-3 u kellna ieħor varjabbli li kellha l-valur ta 'spag, nistgħu tpoġġi l-varjabbli flimkien billi jpoġġi dot bejniethom u concatenating minnhom. Jew nistgħu joħolqu imsejħa isem varjabbli u poġġih flimkien mill concatenating żewġ kordi. Mela jekk kellna string fi studji double kwotazzjonijiet u npoġġux dot wara dan, u mbagħad kellna string ieħor, li toħloq string għal kollox. UDJENZA: OK. MARIA LATVJA: Was li ċari? UDJENZA: Yeah. MARIA ZLATKOVA: OK. Iva. UDJENZA: Meta inti tgħidli interpretat minflok kkompilata, huma inti titkellem dwarek ma jeħtieġ li tkun speċifika meta niġu għall PHP versus C? MARIA ZLATKOVA: Meta ngħidu interpretata bħala kuntrarju kkompilata, X'nifhmu? Allura dan ifisser li aħna ma bżonn fajls eżekutibbli jiddekorri PHP. Dan ifisser li din tmur kif tmur. Does li jagħmel sens? A ftit aktar. HANNAH Blumberg: Allura inti tista 'taħseb ta' interpretu kif programm ieħor li huwa responsabbli biex imur linja b'linja permezz PHP u fil-fatt eżekuzzjoni, għall-kuntrarju li jikkompilawh kollha sa binarja. Din attwalment ma jfisser xejn dwar kif speċifika jeħtieġ li nkunu. Aħna xorta jeħtieġu li jkunu preċiżi, u ma tinsa virgola tiegħek, u kun żgur għandek sinjal dollaru tiegħek, u affarijiet bħal dik. Tajba kwistjoni. MARIA ZLATKOVA: Yeah. Allura linja b'linja, kif kuntrarju ma 'fajls C, irridu nkunu l-finali kollha qabel nistgħu ngħidu run. Dik hija d-differenza prinċipali. Iżda għal darb'oħra, ma nistgħux verament tkun inqas speċifiku. Allura arrays fil PHP jirrappreżentaw attwalment mappa ordnat. Allura valuri arrays assoċjati għal ċwievet. Iż-żewġ modi biex jiddikjaraw firxa, ibbażata fuq dan sintassi, nistgħu nkunu aktar espliċita jgħidu għandna firxa u għandna dan key1 li mapep li dan value1, key2 li mapep value2. Jew nistgħu biss joħolqu firxa li fiha l-valuri stess u allura l-ċwievet huma mifhum b'mod. Kwalunkwe mistoqsijiet dwar dan? Udjenza: Liema t-tasti jkun fit-tieni eżempju? 0, 1, 2, 3? MARIA ZLATKOVA: Per eżempju, huwa biss l-imfietaħ f'dan do mhux neċessarjament tagħmel differenza. Huma biss jiddefinixxu kif tista ' juża l-valuri ġewwa ta 'dan. Mela jekk kellna foreach loop fil-PHP li kieku inessu jgħaddu mill-valuri kollha, nistgħu jgħaddu l-valuri kollha, anke jekk kellna jew ma ddefinietx ċavetta speċifika fis-sit tal sintassi preċedenti. Allura anke ma 'dan it-tip ta array, nistgħu xorta jkollhom loop foreach li tmur permezz ta 'kull tal-valuri fl-iskema fil-firxa. Allura l-sintassi ta 'foreach loop, nibdew ma 'firxa. Din il-varjabbli $ arr huwa array attwali tagħna li aħna definit fil-slide ta 'qabel bħala l-valur li litteralment tmur permezz ta 'kull tal-valuri, irrispettivament minn jekk kellna kjavi jew le. U allura nistgħu nagħmlu xi ħaġa ma ' il-valur ġewwa tal-linja foreach. Għalhekk għal darb'oħra, jekk kellna firxa bħal dan hawn created-- hekk aħna ċ-ċavetta tas foo u l-valur tal bar, il-muftieħ tal baz u l-valur tal qux-- jista 'jkollna loop foreach li tmur permezz array bħala valur ewlieni u mbagħad tagħmel xi ħaġa il-formula u / jew il-valur. Iżda aħna ma neċessarjament dejjem għandhom ikollhom foreach linji li tmur permezz array kif mappa muftieħ għall-valur. Aħna tista 'tmur permezz tal- array loop foreach bħala valur. HANNAH Blumberg: U naħseb kien to-- mistoqsija tiegħek, liema huwa l-indiċi impliċitu? UDJENZA: Kinda. MARIA ZLATKOVA: Oh. HANNAH Blumberg: Yeah, yeah. Allura bażikament, jekk inti ma jispeċifikawx ewlieni, li għaddej biex tkun 01. MARIA ZLATKOVA: Yeah. Eżatt bħal ma C, huwa żero indiċjati jekk inti ma jispeċifikawx ċavetta. UDJENZA: Jiddispjacini. Tista 'tipprova titkellem ftit louder? Jien li ftit ta ' inkwiet kollox smigħ. MARIA ZLATKOVA: jien so sorry. Yeah, tal-kors. Allura inti tixtieq li lili li jmorru fuq dan jerġa? Jew hija this-- UDJENZA: Allura fuq il-slide-- preċedenti jekk inti tista 'biss tmur lura għat-tieni waħda. MARIA ZLATKOVA: Of course, sorry. UDJENZA: Allura t-tieni firxa hawn ma jidhru li jkollhom valur li ewlieni, Speċita [? kawżalità. ?] MARIA ZLATKOVA: Dritt, id-dritt. UDJENZA: Allura kif ma dak ix-xogħol meta inti tgħidli dan kollu jew xejn. Lili, li qisu a [? foo?] diġà. MARIA ZLATKOVA: Yeah, yeah. Għalhekk għal darb'oħra, dan huwa Mappa ordnat f'dan is-sens li hemm huma mifhuma, per eżempju, l-indiċi hawn tista 'tinftiehem bħala 0, 1, 2, 3. Għal darb'oħra, dan huwa li dawk indiċi huwa ekwivalenti tagħna ta 'wara ċwievet mapping fuq valuri. Mela jekk ċavetta tagħna kien 0-- sorry. HANNAH Blumberg: Le, theres ġibs up here. Huwa fil-fatt tassew sbieħ. MARIA ZLATKOVA: Li l-kbir. KOLLOX SEW. Għalhekk għal darb'oħra, $ arr 0 jkun l-muftieħ għall-valur 1. 0 kien jkun iċ-ċavetta għall-valur 1. UDJENZA: Jien sorry. Huwa inviżibbli. HANNAH Blumberg: Id-dritt, nevermind. Ġibs kienet idea ħażina. I teħodha lura. Inti tista 'taħseb l-keys kif 0 mapep għall-valur 1. MARIA ZLATKOVA: Yeah. Allura dan huwa ta '0, dan huwa 1, 2, 3. Dawn jistgħu jkunu ċwievet tiegħek. Inti tista 'taħseb minnhom as-- yeah. Allura minflok li ċwievet espliċiti, dawn qed tip ta 'tinftiehem bħala li l-indiċi li jibdew minn 0. Il ġibs ma jgħinu. Yeah. UDJENZA: Għall-loop foreach, jekk ridna biex tara l-valur kif, dan iwassal biss awtomatikament indiċi għal 0? MARIA ZLATKOVA: Yeah. Ikun jgħaddu kull wieħed mill-valuri. UDJENZA: [inaudible] kif 0 jew ikun li sempliċiment tagħmel 0? MARIA ZLATKOVA: Int tkun ngħid bħala sinjal dollaru u mbagħad xi isem varjabbli, il-valur. UDJENZA: [inaudible]. MARIA ZLATKOVA: Jiddispjacini? UDJENZA: Jiddispjacini, jien biss tipprova tiftakar. Kif inti tagħmel dan jekk inti tista 'tagħmel dan awtomatikament indiċjar huwa biss 0 tar? MARIA ZLATKOVA: Allura kif tista 'tagħmel dan jekk inti ma kellhiex ismijiet speċifiċi ewlenin? UDJENZA: Yeah. MARIA ZLATKOVA: inti biss define-- biss jgħidu lilek innifsek bħala xi isem. Allura fil psets tiegħek, inti guys tista ftakar $ ringiela foreach bħala $ ringieli, ħloqna ourself dan $ ringiela qal irridu li jmorru permezz ringiela kif $ ringieli. Anki jekk aħna ma kellhiex dan $ espliċita ringieli definiti, nistgħu biss tmur u jgħidu dan jista 'jkun importanti tagħna, u biss jgħaddu kull wieħed mill-valuri. UDJENZA: Allura huwa valur varjabbli ġdida aħna qed joħolqu taħżen [inaudible]? MARIA ZLATKOVA: Għalhekk mhuwiex intrinsikament varjabbli ġdida. Huwa varjabbli li tirreferi għall- ġewwa tal-firxa għal kull wieħed minnhom. HANNAH Blumberg: Huwa isem varjabbli ġdida. MARIA ZLATKOVA: Yeah, huwa isem varjabbli ġdida, iżda mhux inherently-- yeah. Huwa biss varjabbli ġdida li inti tista 'tagħmel dan. Allura kemm ma għamilna $ ringiela kif $ ringieli, ringieli kien isem varjabbli ġdid li aħna tista 'toħloq fil-loop foreach tagħna. Huwa ma jkollu li preexist qabel dik. UDJENZA: Tista tmur permezz tal- loġika għal kull, bl-użu l-eżempju hemmhekk? MARIA ZLATKOVA: MHM. Oh, sorry. Hawn l-eżempju. Sure. Allura għal kull array-- hekk dan ifisser jmorru għal din array kif ċavetta value-- li għaddej li jmorru permezz ta 'dan array u l-ewwel mur u jiksbu foo, il foo ewlenin u l-bar-valur. U mbagħad fit-tieni iterazzjoni tal-linja għall-, li għaddej biex jgħaddu u jieħdu l Baz ewlenin u l QUX valur. U allura inti tista 'tagħmel xi ħaġa ma' waħda minnhom jew it-tnejn minnhom. UDJENZA: Allura l-idea wara li jkollhom punt ewlieni għall-valur, liema do inti tispiċċa aċċess? MARIA ZLATKOVA: X'inhu l-idea li jkun hemm tipponta ewlieni għall-valur? Huwa biss konvenzjoni ieħor, ieħor mod ta 'għaddej permezz tal-firxa u li jkun hemm aċċess jew l- ċavetta jew il-valur jew it-tnejn u jużawhom. UDJENZA: X'inhu l-irwol għall- tordna li l-foreach tmur fil-? Hekk jekk konna biex iżżid Elementi għall-firxa aktar tard, ikun dawk tkun l-ewwel dawk imsejjaħ fil-firxa foreach, jew ma jkun tard fuq? MARIA ZLATKOVA: Allura x'inhi l l-ordni li l-foreach loop tmur permezz ta 'firxa fil-? Hija tmur permezz tal-ewwel element għall-aħħar element, l-aħħar element miżjud. Jekk inti żid elementi aktar tard, kieku jiġu accessed-- l-ewwel elementi se jiġu aċċessati bħala l-ewwel elementi tal-firxa, u mbagħad youd tmur minn kull waħda l-elementi bħala tip ta 'ordered-- mhux ordnat, iżda l-mod li ma tkun imqiegħda fil-firxa. UDJENZA: Elementi So ġodda huma miżjuda aktar tard? Allura dawn qed added-- dawn ser ikunu l- dawk aħħar fil-[? iterazzjoni. ?] MARIA ZLATKOVA: Elementi ġodda can-- bażikament, meta elementi ġodda huma miżjuda, dawn huma miżjuda fl-aħħar tal-firxa? UDJENZA: Yeah. MARIA ZLATKOVA: Nemmen hekk. Iva. U mbagħad mal loop foreach tiegħek, wara li tkun ħadthom miżjud elementi ġodda u inti tmur permezz tagħhom, l-elementi ġodda se tkun accessed-- l-element ġdid, jekk huwa miżjud aħħar, ikun aċċessata l-aħħar. UDJENZA: Tista 'biss tagħti eżempju ta 'xi ħaġa li kieku [inaudible] ma 'xi ħaġa b'valur bħal [inaudible] jew il-valur, simili kif youd format li? MARIA ZLATKOVA: Sure. Nista jagħtu eżempju ta 'x'jista aħna se nagħmlu mal-valur? Allura dak li inti guys tista 'tkun familjari ma' huwa li konna marret permezz ta 'firxa u bażikament stampati kull wieħed mill-elementi, per eżempju, bħala parti minn Lista ordnat jew xi ħaġa li. Does li jagħmel sens jew irridu to-- UDJENZA: Nistgħu tistampa dawn il-valuri out? MARIA ZLATKOVA: Yeah, nistgħu jistampaw u mbagħad bażikament $ valur minħabba li dan il-valur speċifiku, irridu jkunu istampar il-valur ġewwa ta 'dan. Hekk jekk konna fl-ewwel iterazzjoni tagħna ta 'dan u aħna stampati valur $, aħna jkollna istampar bar. UDJENZA: Huma hemm ukoll għall loops fil PHP jew sempliċiment loops foreach? MARIA ZLATKOVA: Hemm wkoll għal linji fil PHP. U l-loġika tagħhom huwa l-aktar l- istess bħal dak li inti kont qed użati biex. UDJENZA: Allura valur tagħha huwa null. MARIA ZLATKOVA: Huwa bħall-istess. Yeah. UDJENZA: Jien biss ser jistaqsu. Allura meta inti tiddikjara firxa, inti m'għandekx bżonn li tgħid liema daqs li għaddej biex jkun, li jfisser li inti tista 'sempliċement żid u jieħdu bogħod elementi [inaudible]. MARIA ZLATKOVA: Yup. Yup. Eżattament. Meta aħna niddikjaraw firxa, aħna m'għandhomx bżonn li jgħidu liema daqs li hi, hekk nistgħu biss żid elementi fuq dan aktar tard ukoll. Aktar mistoqsijiet? B'hekk tinħoloq PHP u HTML flimkien, dak li għandna seen-- ukoll, per eżempju, f'dan l-eżempju, għandna forma HTML li għandha kamp input. U l-qasam input huwa biss isem u mbagħad hija għandha Issottometti buttuna. U meta inti agħfas il-Issottometti buttuna, fil-fajl hello.php tagħna, minħabba li l-metodu għall-formola hija nikseb, nistgħu aċċess kollu li huwa fil-isem minn din tikseb varjabbli globali li is-- l sintassi għall huwa $ _GET. U allura nistgħu aċċess ikun x'ikun il- jintuza mill-utent ġewwa ta 'dik il-formola għall-isem billi tispeċifika l-isem ta 'dik il-qasam. Kwalunkwe mistoqsijiet oħra jew kwalunkwe mistoqsijiet dwar dan l-eżempju speċifiku? UDJENZA: Fejn hi l-PHP? MARIA ZLATKOVA: Hawnhekk. Allura dan huwa tag ftuħ tagħna għall-PHP. UDJENZA: Oh, id-dritt. MARIA ZLATKOVA: Iva. HANNAH Blumberg:? Il-= hija shorthand għal dan hija PHP u biss eku. UDJENZA: Oh. MARIA ZLATKOVA: Yeah, sorry. I għandu jkollhom dan b'mod espliċitu. HANNAH Blumberg: Stampa. MARIA ZLATKOVA: Huwa biss il-funzjoni li jippermetti li jistampaw xi ħaġa. Kwistjoni kbira. Allura going-- iva. UDJENZA: hemm se jkun pjuttost daqsxejn ta 'kodifikazzjoni idejn ta PHP u HTML fuq kwizz 1? MARIA ZLATKOVA: Jista 'jkun hemm ammont ġust ta 'interpretazzjoni ta PHP u HTML, mhux neċessarjament bħal ammont kbir ta 'kodifikazzjoni, għalkemm inti jista 'jkollok jiktbu loop foreach, għalkemm, għal loop. Kull waħda mill-linji li aħna tkopri hawnhekk huwa logħba ġust. U li l-aktar it. HANNAH Blumberg: I ​​se tkun ippreparata. Bl-istess mod li aħna talab li inti jiktbu mazz ta 'funzjonijiet Ċ fuq kwizz 0, Inkun lest li jagħmlu l- istess fil-PHP u JavaScript. MARIA ZLATKOVA: Yeah. HANNAH Blumberg: Jien ngħid a little-- bħal aħna mhux qed se tagħmel inti jiktbu HTML enormi paġna biss għaliex dan huwa xi ftit tedious, iżda inti jista 'jkollok partijiet. C'est logħba totalment ġust. Bħal paġna HTML żgħar, totalment ġust. UDJENZA: OK. Kif dwar fil JavaScript kif ukoll? HANNAH Blumberg: Yeah. Logħba ġust JavaScript s. MARIA ZLATKOVA: Yeah. C'est logħba kompletament ġust. HANNAH Blumberg: Aħna ser tingħata għal dak fil bħal 10 minuta. MARIA ZLATKOVA: SQL, għal darb'oħra, Strutturat Mistoqsija Lingwa. Bażikament jippermetti li jimmaniġġjaw data fil-ġestjoni ta 'database relazzjonali sistema. Li ftit bażikament ifisser li għandna x'imkien li jaħżen xi data li aħna tista 'tixtieq li użu fil-websajt jew f'xi forma oħra. U allura għandna mistoqsijiet biex jiksbu informazzjoni mid-database tagħna, u lanqas li jiddaħħlu informazzjoni fihom. A lott ta 'l-ones-- AĠĠORNAMENT komuni, DAĦĦAL, TAGĦŻEL, u ħassar. Allura għal AĠĠORNAMENT, dan huwa l-sintassi għall-aġġornament tad-data fid-database. Aġġornament din it-tabella msejħa tabella billi qal SET, nistgħu stabbilit xi valuri b'kollox ringieli għal xi ħaġa ugwali ħaġa oħra. Allura nistgħu wkoll tispeċifika xi speċifiku entrati li rridu li jimmodifika u li jista 'jkun bl-użu fejn. U nistgħu jispeċifikaw li aħna biss jixtiequ li timmodifika xi ringieli fejn l-dar għall- jekk kellna tabella ta 'studenti u l-istudenti kollha kellhom dar, hekk aħna se timmodifika biss xi valuri fejn dar ugwali Currier, pereżempju. Għal DAĦĦAL, nistgħu daħħal ċerti valuri ġo tabella. Allura ddaħħal fil-mejda, u allura l-valuri, u mbagħad fil-parentesi, aħna jispeċifikaw li valuri inti tixtieq li daħħal. Allura ddaħħal fil-mejda, col1 u col2, il-valur huwa val1 u val2. Allura dan inserts bażikament ringiela ġdida fis tabella li jkun fiha l-valuri 1 u 2 taħt il-kolonni 1 u 2. U allura aħna qed tmur biex jmorru fuq eżempju malajr ta 'kif dan jistenna bħal fid-database tagħna ftit. Iżda din il-mistoqsija finali li I think we qed tmur biex jmorru fuq, SELECT, hija biss jippermetti biex tagħżel data minn tabella li possibilment jużawh wara. U l-mod kif nagħmlu dan hija aħna biss jaħżnuh f'xi varjabbli. U allura nistgħu possibilment użu mill-ġdid. Allura star TAGĦŻEL ifisser tagħżel kollha. Li jinsab biss shorthand għall-għażla kollha. MILL tabella FEJN, aħna qegħdin ifittxu għal xi kondizzjonijiet speċifiċi, dan meta kolonna ugwali xi ħaġa, per eżempju. Jekk aħna biss riedu tagħżel kollha mit-tabella, dan biss jagħżel kolonni kollha u ringieli kollha minn tabella. U imbagħad tħassar mit-tabella FEJN col ugwali xi ħaġa, Dan iħassar biss ftit ringiela mit-tabella tagħna fejn għandna xi kundizzjonijiet speċifiċi. F'dan il-każ, il-kundizzjonijiet huma kolonna ugwali xi ħaġa. Hekk biss eżempju ta 'malajr ta' din. Jekk għandna din it-tabella dritt hawn u aħna daħħalha fis-tabella, dawn il-valuri, li tara li tintroduċi linja ġdida. U jekk kellna auto-inkrement, dan kieku biss inkrement ID tagħna minn 0 biex 1 sa 2. Jekk aħna magħżula kollha minn studenti, huwa jirritorna l-oqsma kollha u ringieli kollha. Fejn sena huwa akbar minn jew ugwali għal 2,016, li kien biss ritorn Hannah u myself. U allura jekk aħna biss magħżula sena id u s-sena MILL istudenti fejn l-dar hija Cabot House, li kieku, għal darb'oħra, ritorn Hannah u myself. Imbagħad jekk aħna mħassra minn studenti fejn isem huwa ugwali għal Rob, li tħassar il-filliera kollu. U allura jekk aħna waqqafna l- isem, l-istudenti UPDATE Isem SET ugwali għal Daven FEJN dar hija ugwali Cabot House, li għaddej biex tmur dawk ringieli u mbagħad taġġorna l-isem. U mbagħad ftit tipi ta 'data SQL huma CHAR, varchar, INT, u float. Dawn huma ġusti logħba. I imur aktar mill-ġdid u aċċerta ruħek li jafu u jkollhom magħhom fuq folja iqarrqu tiegħek, liema kull waħda minn dawn karattri ġew użati għal, dak inti użati minnhom fuq psets tiegħek, u tagħmel żgur li int familjari u komdu ma jkollhom għalfejn jagħżlu minn tipi differenti ta 'data fil pset tiegħek. Iva. UDJENZA: Liema kien dik it-tabella maħżuna? Yeah, fejn ikun din it-tabella maħżuna? MARIA ZLATKOVA: Well, dritt issa, mhuwiex maħżuna. Xorta waħda, fejn ikun din it-tabella maħżuna? Imma tista 'tkun maħżuna f'database SQL. UDJENZA: U fejn huwa l-database SQL? Fil-kompjuter, online x'imkien, il-server? MARIA ZLATKOVA: Hija tista 'tkun numru ta 'affarijiet differenti. HANNAH Blumberg: Imxejna interfaced ma Tabelli SQL aktar bl phpMyAdmin. Allura nistgħu jistaqsu server biex jaħżinhom għalina. Nistgħu jaħżinhom fuq il-kompjuter tagħna stess. MARIA ZLATKOVA: Hija biss tiddependi fuq kif inti tixtieq li tagħmel dan għalik innifsek. Iżda aħna ġew ħażna minnhom, kif Hannah imsemmi, fuq phpMyAdmin, li huwa online. U allura l-mod li bih nużaw PHP u SQL, aħna jaħżnu fis xi varjabbli dak li konna kkonsultat għal. Allura jekk aħna tagħżel kollha mill-istorja fejn UTENT huwa daqs il-SESSJONI id, li tagħżel l-fillieri għall-persuna speċifika li huwa illoggjat mill-istorja mejda u sort tagħhom fiċ ringieli. A ħaġa jibred hija li tkun taf dik il-funzjoni mistoqsija CS50 s jipproteġi kontra tags injezzjoni SQL. Li sempliċiment ifisser li hija tiżgura l-input li tiddaħħal hija korretta u li l-persuna li dieħla l-input hija mhijiex qed tipprova input xi malizzjużi kodiċi li jew tinżel tabelli tagħna jew tħassar kollox ġewwa tal database tagħna. Ħarsa ġenerali tal- Mudell Mudell View Kontrollur, huwa biss mod kif jiġi organizzat u l-ħsieb dwar kodiċi. Mill-ġdid l-mudell tad-disinn. X'inhu dan ifisser huwa li aħna can-- u huwa prattika tajba biex jiġu separati partijiet differenti tal-kodiċi tagħna u dak li jikkontrollaw fi dawn it-tliet mudelli. Allura fehma tagħna huwa l-aktar spiss tagħna templates, tqassim tagħna, il-mod li waqqafna kif kodiċi tagħna jistenna. Li l-aktar fajls CSS tagħna u l-mod li aħna definit d-disinn tal-kodiċi tagħna, bażikament. Kontrollur tagħna huwa l-aktar dak aħna kont qed tagħmel ma 'fajls PHP. Għalhekk għal darb'oħra, li jaħdmu ma 'l- informazzjoni li għandna u jiddefinixxi kif l informazzjoni hija użata, u mbagħad jgħaddi dik l-informazzjoni jew fuq il-fehma jew il-mudell. U l-mudell, il-mod li konna kienu jużaw jiġifieri kien database tagħna, hekk fejn l-informazzjoni tagħna huwa maħżuna u għalhekk għandha xi mkien li jgħixu fi, u xi wieħed minn kodiċi li tirrigwarda l-mod li nagħmlu dik l-informazzjoni jew l- mod li aħna aġġornament dik l-informazzjoni. Allura fil-mudell MVC, HTTP talbiet jintbagħtu lil web server. Imbagħad, il-tinterpreta kontrollur it-talba mill-utent u mbagħad tivvalida l-input utent. Huwa obbligatorju li għandna il-kontrollur jikkomunika ma 'mudell, hekk xi ħaġa bħal database tagħna jew xi funzjonalità oħra li tittrażmetti l-informazzjoni. U mbagħad finalment, il-kontrollur tgħaddi informazzjoni fuq il-fehma sabiex ikun jista 'jkun mogħtija u li tista ' jsiru viżibbli għal kull persuna aċċess għall-web page. Kwalunkwe mistoqsijiet? Tal-biża. Għalhekk għal darb'oħra, il-mudell, funzjoni tiegħu, għal darb'oħra, huma l-ħażna persistenti ta 'informazzjoni, ġestjoni u organizzazzjoni ta 'dejta. U dak li aħna stajt tidher hekk ferm hija d-database MySQL u xi fajls ta 'data li tista' tuża. View, il-preżentazzjoni ta 'informazzjoni lill l-utent, il-UI, jew interface għall-utent. U l-eżempju ta 'dan huwa HTML. U allura aħna jista 'jkollhom PHP minimu. Allura għal loop li ttenni fuq data li jirriżultaw f'dokument stampat huwa parti mill-opinjoni, kif kuntrarju għall-kontrollur. U mbagħad lott ta 'fajls PHP tagħna jaqgħu fil-kategorija kontrollur. Hija biss jieħu ħsieb talbiet ta 'utenti u gets informazzjoni mill-mudell. Jaqbeż fis-Dokument Mudell Għan, dan biss tirreferi għall-mod HTML dokumenti huma organizzati. U dawn qed organizzati fi siġra struttura li għandha ġerarkija. Mela jekk ikollna aċċess għal [inaudible] rappreżentazzjoni tad-dokument, nistgħu naħdmu mal-dokument, bħal aħna jimmanipulaw oġġetti bażikament. U biex tagħmel dan ftit aktar ċara, meta għandna ħafna ta 'tagħna tags differenti jirrispondu għal rotot differenti fil siġra tagħna. U mbagħad għal dan l-eżempju, aħna id-dokument node bidu. Għandna, allura, node HTML tagħna li qasmiet fis-kap u l-korp. Ras għandha titolu u mbagħad titolu jinkludi hello, dinja. U l-ġisem tagħna biss fiha hello, dinja kif ukoll. Allura xi mistoqsijiet dwar xi tal- affarijiet li aħna koperti s'issa? U jekk le, Hannah se tieħu f'idejha bl JavaScript. Tal-biża. HANNAH Blumberg: OK, berred. Jekk xejn jitla 'ma PHP jew HTML, jew kwalunkwe mill-għalf Maria koperti, nistgħu dejjem nieqaf. Aħna qed jagħmlu aħjar fuq ħin mill-ġdid, hekk tal-biża. U biss li jmorru lura verament malajr għal dan, jekk inti tħares lejn kull eżami sena li għaddiet, dan jitla 'either-- hawnhekk hija xi HTML, jagħmlu dan dijagramma. Jew hawn f'din l-istampa, jagħmlu xi HTML, hekk definittivament prattika li. U allura li wieħed garantit kwistjoni li tista 'tikseb id-dritt. Kessaħ. Mela ejja nitkellmu dwar JavaScript u kif huwa ftit differenti minn lingwi bħal PHP u C, iż-żewġ lingwi rajna qabel. Allura numru wieħed, huwa laxk ittajpjat. Dan huwa simili PHP, imma b'differenza C. Huwa ta 'lingwa interpretati. Għal darb'oħra, dan huwa simili PHP, b'differenza C. U dan se jippermettilna naslu biex use-- dan taħdem verament nicely ma 'paġni tal-web. Huwa ser inessu jimmanipulaw il-kontenut u kif jidher u dak li tagħmel. Aħna qed tmur biex tara xi ftit ta 'Ajax. Dan jippermetti li jikkomunikaw asynchronously ma 'servers differenti u jiksbu informazzjoni. U dan huwa l-ħaġa li verament jifred JavaScript minn PHP u C hija li huwa client-side. Kemm PHP u C huma tipikament server-side. Għall-parti l-kbira u kważi kompletament liema Rajna, għall-inqas fil din il-klassi, JavaScript jaġixxi fuq client-side, li jfisser li l-browser huwa attwalment responsabbli għall-ġestjoni tiegħu. U dan ifisser li aħna ma jeħtieġ li jinteraġixxu ma 'l-server. Allura dan ifisser li jista 'jkun ħafna aktar malajr għaliex dan huwa attwalment biss huwa Chrome, huwa Safari, huwa Firefox, tkun xi tkun użu attwalment taħdem tiegħek JavaScript. UDJENZA: X'tagħmel mhux sinkroniku jfisser? HANNAH Blumberg: Ah, liema ma asynchronously jfisser? Kwistjoni kbira. Asynchronously means-- ukoll, il-kontenut li fih nużaw huwa, OK, aħna qed joħolqu page web u għandna bżonn biex nikseb xi informazzjoni. Allura bl-eżempju ta mashup, xi informazzjoni li aħna tista 'tixtieq huwa titoli artikolu. Issa, aħna could-- għażla waħda huwa li tagħmel dan synchronously u dan ifisser li let stop, mur jiksbu l-artikolu, jiksbu l-artikolu lura, u mbagħad tirrendi, iżda li tkun verament bil-mod. Dan ikun l-esperjenza ħażina utent għaliex inti biss tkun seduta stennija hemm għal xi ħaġa biex jirrispondu. Asynchronously ifisser aħna ser tkompli tmur dwar in-negozju tagħna, tirrendi l-paġna, u aħna ser tibgħat off talba thats it-tip ta 'ser jiġri fl-isfond. I think aħna nużaw l-eżempju lecture ta 'sejħa Rob u qal, ħej, inti tista 'tfittex dan up għalija u terġa 'lura lili, għall-kuntrarju biss lili stennija fuq it-telefon. Allura asynchronously ifisser li jiġri fl-isfond bogħod minna b'mod parallel. Kwistjoni kbira. Xi ħaġa oħra? Great. Aħna ser jaqbżu ħafna aktar fis talbiet mhux sinkroniku ma Ajax. UDJENZA: Does JavaScript-- fejn ma jaqa bil mudell ħsieb kontrollur? HANNAH Blumberg: mistoqsija Great. Fejn ma JavaScript jaqgħu bil mudell ħsieb-kontrollur? Hm. I raden dan jista 'fall-- hekk aħna normalment ma simili li squish fis li paradigma, imma I raden I ngħid, OK, so JavaScript fil-fatt se jippermetti us biex tiġbor data, jinterpretaw id-data, fil-fatt jagħmlu affarijiet sinifikanti mad-data. B'dan il-mod, huwa ferm 'kontroll simili. Iżda huwa wkoll se jippermettilna naslu biex wiri affarijiet u affarijiet stampati. B'dan il-mod, huwa ferm 'opinjoni simili. Yeah. Allura huwa tip simili PHP fil fejn jista 'tip ta' jkun kemm. Tajba kwistjoni. Xi ħaġa oħra? Dritt kollox, biża '. Nimxu dritt flimkien. Mela ejja ara eżempju ta 'kif nistgħu nużaw JavaScript f'wieħed mill-programmi tal-web tagħna. So I ser jikkunsidraw dan index.html bil-mazz ta 'HTML. U l-ħaġa nixtieq tiffoka fuq hija din tag iskrittura. U dan jgħid, OK, I tixtieq li tmexxi xi JavaScript u hawn huwa fejn jgħix. Hija jgħix fil hello.js. U simili ħafna CSS, nistgħu tpoġġi JavaScript fil-HTML. Għaliex jista irridu li tissepara it out? Yeah. UDJENZA: Aktar faċli biex jikteb? HANNAH Blumberg: Yeah. Huwa aktar faċli għall-użu madwar paġni web differenti. Hija żżomm affarijiet aktar nodfa. Huwa biss prattika tajba. Tal-biża. Tweġiba tajba. Hekk tajjeb, għalhekk dan qed jiġri li jkun index.html tagħna. U allura l hawnhekk hija tagħna ċkejkna fajl JavaScript ftit. U kull ma jgħid hu twissija Hello, dinja. Allura dak li jiġri huwa meta din il-paġna renders-- hekk jekk inti tmur għal dak kollu website dan is-- dak kollu li jiġri huwa li għaddej biex ngħid, OK, jien ser imexxu dan il-kodiċi JavaScript. U dan il-kodiċi JavaScript biss jgħid twissija Hello, dinja. Hekk jien ser tikseb dan friendly ftit pop-up. Kessaħ? C'est tip simili tagħna ewwel JavaScript programm, Hello tagħna, dinja. Ejja nħarsu ftit aktar dwar dak li l sintassi ta JavaScript Dehra. U speċifikament, ejja din titqabbel ma ' C u PHP, li konna rajna qabel. Fl JavaScript, aħna qed tmur biex ikollhom var, l-isem tal-varjabbli, u mbagħad valur attwali tiegħu. U aħna ma jispeċifikawx it-tip, biss bħal fil-PHP, iżda ħafna b'differenza C. Għalhekk, per eżempju, jekk ridna biex jaħżnu l-valur 50, fis-C, aħna jkollhom jgħidu, ħej, C, nixtieq integer, Jien ser sejħa hija i, u l-valur tagħha huwa 50. Fil PHP, huwa ftit aktar faċli. Aħna ngħidu, ħej, nixtieq varjabbli imsejħa i u l-valur tagħha huwa 50. Ħafna bl-istess mod, fil JavaScript, aħna jgħidu ħej, nixtieq varjabbli imsejjaħ i, valur tagħha huwa 50. Kull darba wara li nuża i, I m'għandhomx bżonn li jiktbu var. Huwa biss i minn dak il-punt. Bl-istess mod, fis-C, fejn ladarba aħna ngħidu int i, aħna biss użu i. Kessaħ? Kull dritt. Nimxu fuq linji, fortunatament, dawn kważi tħares exactly-- Jien naħseb li qed eżattament l-istess bħal dak loops ser look like fil xi ħaġa bħal C fejn tiegħek għall loop huwa se jkollu tliet parts-- l inizjalizzazzjoni, kundizzjoni, u aġġornament. A loop waqt, jidher l-istess eżatt. Aħna biss jagħtu kundizzjoni. U do filwaqt loop, għal darb'oħra, eżattament l-istess. Nagħtu bħala kundizzjoni. Ejja ngħidu jien ridt li jtenni over-- Jien ridt li tagħmel xi ħaġa ħames darbiet. Fl C, nistgħu jiktbu għall Iniz i ugwali 0. i huwa inqas minn 5, i ++. Differenza biss, JavaScript, minflok ta 'tgħid int i ugwali 0, ngħidu i var ikun egwali għal 0. Beautiful. Dik hija l-unika differenza. Kwalunkwe mistoqsijiet dwar xi li? Iva. UDJENZA: Allura fil-PHP, huwa l-istess ħaġa, ħlief iżda bħal varjabbli? Jew kien li eżempju var? HANNAH Blumberg: Yeah. Allura fil-PHP, li għaddej li jkun sinjal dollaru. Allura li għaddej biex $ i ugwali 0, $ i huwa inqas minn 5, $ i ++. Kwistjoni kbira. Issa ejja nitkellmu dwar dikjarazzjonijiet funzjoni. Fil C, meta aħna ddikjarat funzjoni, aħna tatha isem u aħna tatha xi parametri. U fil-bidu, aħna kiteb it-tip. Fil JavaScript, kollox aħna għandek tagħmel hu li tikteb il-funzjoni keyword li jgħid, ħej, JavaScript, Jien wasalt biex jiddefinixxu funzjoni. F'dan il-każ, hija għandha somma isem. U li tieħu żewġ argumenti, xuy. Avviż li aħna ma 'kura dwar it-tipi ta 'x uy. U bħad C, għandna dan ir-ritorn keyword, hekk nistgħu nagħmlu xi ħaġa bħal ritorn x uy. U issa ladarba konna bil-miktub dan l-ewwel funzjoni, nistgħu nużaw somma kullimkien. U li totalment multa. Ħaġa waħda verament jibred dwar JavaScript li huwa ħafna b'differenza C huwa li l-funzjonijiet tista jiġu trattati bħal valuri. Allura nistgħu nagħmlu xi ħaġa bħal hawn fejn I suppose I ikopri dan up-- I koperti l-għadd var part-- u aħna biss qal xy funzjoni ugwali ritorn x plus y. Dan huwa dak li se jiġi mistieden funzjoni anonima. Huwa funzjoni mingħajr isem. Billi din il jgħid funzjoni somma, blah, blah, blah, dan ikun biss jgħidu funzjoni. Imma issa anki jekk I jkollhom din il-funzjoni anonima, dik il-funzjoni hija verament ftit valur. Nistgħu titratta dan bħal valur. Allura nistgħu ħlief fil varjabbli-istess mod nistgħu jaħżen 50 fil-varjabbli. Allura nistgħu ngħidu, OK, I jridu varjabbli, huwa msejjaħ somma, u hija din il-funzjoni. Allura dawn iż-żewġ affarijiet huma attwalment se tagħmel l-istess ħaġa eżatt, iżda l-sintassi hija ftit differenti u tip ta 'nota gost. Yeah. UDJENZA: Allura inti tista 'sejħa għal funzjoni li kienet anonima billi qal, parentesi somma 2, 5? HANNAH Blumberg: Yeah. Tista 'sejħa dan anonima funzjoni fl-istess mod. Inti se tagħmel somma (2, 5) ;. Dan ikun totalment multa. Jekk I ma tagħmel somma var ugwali funzjoni, jekk I biss mħassar this-- Naf huwa fuq naħa tiegħi, imma nippretendu I imħassar this-- mbagħad dik il-funzjoni hija tip ta 'ftit marret. Inti qatt ma tista 'tuża mill-ġdid minħabba inti ma għandekx isem għal dan. Huwa diffiċli li jirreferu għal xi ħaġa ma tkunx taf liema sejħa. Tajba kwistjoni. Yeah. UDJENZA: Tista referenza somma postijiet oħra bil-valur ta 'x flimkien y? HANNAH Blumberg: Tista somma ta 'referenza f'postijiet oħra bl-x-valur plus y? M'inix totalment ċert dak li jfisser. UDJENZA: Allura passat tiegħek semi-anonima funzjoni huwa somma hija ugwali għal dan funzjoni anonima, hekk somma hija issa varjabbli li inti can-- HANNAH Blumberg: Dritt. Allura somma hija l-varjabbli, imma hija actually-- hekk somma hija varjabbli li valur hija l-funzjoni. Għalhekk huwa funzjoni, li huwa tip ta ' ħaġa stramb biex nagħlaq ras tiegħek madwar peress li aħna kont qed jilagħbu bil C u inti ma tistax tagħmel dan fil C. Imma issa nistgħu sejħa somma l istess mod nistgħu sejħa somma hawn. UDJENZA: OK. HANNAH Blumberg: Yeah. Tajba kwistjoni. Yeah. UDJENZA: Allura aħna ma jużawx l- prototipi fil PHP jew JavaScript? HANNAH Blumberg: Le, aħna m'għandhomx bżonn li jużaw prototipi, speċjalment fil JavaScript. Ħaġa Allura wieħed prattika ħażina li jien se ngħid li inti m'għandekx tagħmel huwa inti ma għandekx jiktbu i var = 50. Inti tista 'biss tibda tagħmel i = 50. U se biss tagħmel i varjabbli globali. Huwa prattika ħażina ħafna biex qatt ma jgħidu i espliċitament var, imma hija xi ħaġa li tista 'tagħmel. L-interpretu mhux ser Yell fi inti. JavaScript huwa pjuttost simili, inti tista 'tagħmel dak li trid. Oh, sorry. Hemm tnejn. Fl-pants oranġjo. Jimxi 'l quddiem. UDJENZA: Le, inti tmur l-ewwel. UDJENZA: Le, I kien biss qal I ma kellhomx naħa tiegħi up. KOLLOX SEW. Mela jekk ġejt biex sejħa li l-ewwel darba, issa qosor, aħna sejħa hija l-istess mod, x, y, bħal kull darba waħda? HANNAH Blumberg: Yeah. Allura dawn iż-żewġ essenzjalment jagħmlu l-istess ħaġa. UDJENZA: U x'inhu l-vantaġġ ta 'użu ta' wieħed jew l-ieħor? HANNAH Blumberg: ebda vantaġġ ta 'użu ta' wieħed jew l-oħra. I biss riedu biex turi li inti żewġ biċċiet differenti ta 'sintassi. Ħafna drabi fejn anonimi funzjonijiet do jkollhom skop hija jekk l-argument għall-ieħor funzjoni għandha tkun funzjoni. U aħna ser tara li fil ftit tieni ma Ajax. Mela jekk dan ma jagħmel ebda sens, aħżen fid-dahar ta 'ras tiegħek. Li meta l anonima funzjoni tista 'tkun utli għaliex mhuwiex verament jiswa jtuha isem peress li aħna qed biss se tużah darba. Yeah. UDJENZA: Jekk xuy bidla aktar tard fuq, se tiġbor jinbidlu wkoll? HANNAH Blumberg: Jekk x u l-bidla y aktar tard, se tiġbor jinbidlu wkoll? Allura dan huwa effettivament I jaħsbu xi ħaġa li, għal darb'oħra, hija biss iħoss differenti ħafna minn C. Dan m'huwiex valur. Mhuwiex 5. Huwa biss il-funzjoni hija stess. Allura hekk kif inti tagħti parametri, allura inti ser fil-fatt jiġi kkalkolat valur. MARIA ZLATKOVA: U mbagħad inti tista 'sejħa l-funzjoni u jużaha biex nikseb xi valur. HANNAH Blumberg: Dritt. Eżattament. Yeah. UDJENZA: Mela jekk inti biss jaħżnuh fil-varjabbli, bħal var x ugwali somma ta 'żewġ values-- HANNAH Blumberg: Yeah. Allura inti tista 'biss tagħmel somma var huwa ugwali somma ta 'żewġ valuri. Yeah. Kwalunkwe mistoqsijiet oħra? Yeah. UDJENZA: Iżda kieku dan jikkonfondi somma u s-somma? Bħal jekk inti sejħa somma varjabbli tiegħek, kieku inti sejħa-somma funzjoni? HANNAH Blumberg: Mm. Mm. Jekk inti għamilt xi ħaġa simili, somma ugwali somma 2, 5? UDJENZA: Yeah. HANNAH Blumberg: Nemmen li se jissostitwixxu l-valur tal somma. Allura ieħor interessanti ħaġa dwar JavaScript hija li varjabbli waħda tista 'tieħu fuq mazz ta 'tipi differenti. Bad prattika. Inti m'għandekx tagħmel xi ħaġa bħal dak li inti biss qal. Iżda fis-C, jekk i huwa stabbilit ugwali għal integer, nafu li qatt ma ser issir string. Dan mhuwiex il-każ fil-JavaScript. Yeah, mistoqsija tajba. Xi ħaġa oħra? Kull dritt. Jsir kull dritt fil-ħin. Żamma għaddejjin. Kull dritt. Jekk inħarsu lejn firxa fl JavaScript, hawn eżempju ta 'malajr ta' firxa ta 'kordi. U arrays jistgħu jikbru b'mod dinamiku. Huma ma jkollhom daqs fiss bl-istess mod li jagħmlu fil C. Aħna jistgħu jaċċedu għall- elementi li biss il-parentesi kwadri. Li jistenna ħafna bħal PHP u ħafna bħal C, fejn nistgħu ngħidu, f'dan il-każ, jekk jien ridt l-kelma JavaScript, nixtieq do arr parentesi kwadri bil-0, 1, 2. U allura jekk inti tiftakar fil C meta aħna riedu jiksbu t-tul ta 'firxa, kien verament annoying. Iżda fl JavaScript, super faċli. Kollha għandna nagħmlu, .length. Jagħtiha l tulijiet. Daqshekk. UDJENZA: Li sempliċi. HANNAH Blumberg: Yeah, jagħmel ħajja tiegħek ħafna aktar faċli. OK, mhux object-- hemm. Oġġetti fl JavaScript jħossu ħafna bħall structs fis-C u arrays assoċjattiva fis PHP. Allura dak li aħna stajt tidher Ħafna huwa JSON, li stands għall JavaScript Notazzjoni Għan. U huwa bażikament mezz tad-istrutturar data tagħna. Mela ejja ara eżempju, probabbilment l-eħfef. Allura hawnhekk eżempju ta 'oġġett li taħżen il-klassi, CS50. U meta ngħid klassi, I tfisser ovvjament, mhux like-- yeah, il-kors, CS50. U tkun taf tara li kollox fl-oġġett se tkun tinsab fil braces kaboċċi. U nibdew ismijiet qasam jassoċjaw jew ċwievet mal-valuri differenti. Allura inti tista 'tibda biex tara kif dan it-tip ta' iħoss bħal firxa assoċjattiva fil-PHP. Allura aħna qed tmur biex jassoċjaw-qasam jew l-isem ewlenin, naturalment, ma 'l-string, CS50. Aħna ser ikollhom għalliem. Aħna ser ikollhom TFS. Aħna ser ikollhom numru ta 'psets u aħna qed tmur biex rreġistraw. U ħaġa waħda jibred li wieħed jinnota kollha dawn l-affarijiet għandhom tipi differenti, u li l-totalment multa. Huwa tal-multa għal oġġett, fil-fatt, huwa probabbilment mistenni għal oġġett li jkollhom taħlita ta 'spag u n-numri u Booleans u arrays u kwalunkwe ħaġa oħra li tista ' tixtieq li jkollok ġewwa oġġett tiegħek. U jinnota li dawn ser ikunu l-ismijiet jew il-keys, u allura aħna biss dan għandu jiġi ugwali b'żewġ punti ftit. UDJENZA: X'inhuma eżattament ma JSON jfisser? HANNAH Blumberg: What eżattament ma JSON jfisser? JSON biss stands għall JavaScript Notazzjoni Għan. Huwa biss mod ta 'ifformattjar. Yeah. Huwa mod ta 'ifformattjar data tagħna. Fil C, huwa structs. Fil PHP, huwa arrays assoċjattiva. Fl JavaScript, għandna oġġetti. UDJENZA: Allura CS50 s oġġett? HANNAH Blumberg: CS50 hija l-oġġett f'dan il-każ. Issa, kif do we attwalment aċċess F'dawk is-setturi jew bidla f'dawk l-oqsma. Per eżempju, ejja ngħidu aħna iddeċieda li int riedu wieħed inqas pset dan is-semestru. Minflok disa ', aħna qed biss se jkollhom tmien. Kif nagħmlu l-bidla li? Oh, mod żbaljat. Hemm żewġ modi li nistgħu nagħmlu dan. Numru wieħed huwa mal-dot notazzjoni u numru tnejn huwa bl-notazzjoni parentesi kwadri. Għalhekk, per eżempju, jekk I riedu bidla jew aċċess qasam psets fil-għan CS50 tagħna, dak li nixtieq nagħmel huwa CS50.psets, hekk l-isem ta 'l-oġġett dot l-isem tal-qasam jew ċ-ċavetta. Ħafna bl-istess mod, huwa eżattament ekwivalenti li tagħmel CS50, u mbagħad fil ċingi kwadru, psets. Kessaħ? Yeah. UDJENZA: Allura huwa JSON teknikament JavaScript xorta, anki jekk fil-psets aħna separati out [inaudible]? HANNAH Blumberg: Sure. Għalhekk il-kwistjoni hija, huma JavaScript u JSON ekwivalenti? Allura JSON huwa notazzjoni, bażikament il-mod li aħna jiktbu oġġett minn JavaScript. Allura dawn mhux qed eżattament l-istess. Jien ngħid JavaScript, hemm huma oġġetti fl JavaScript. JSON jieħu dawk l-oġġetti u stampi minnhom u turihom jew imħażen tagħhom b'mod sabiħ. Allura JSON mhix programmar lingwa tal-mod li JavaScript huwa. Huwa biss in-notazzjoni għall oġġetti tagħna fl JavaScript. Yeah. UDJENZA: Allura x'inhi eżattament [Inaudible] jitlesta? HANNAH Blumberg: Sure. Allura dan fil-fatt ma xejn. Dan huwa biss mod għall-aċċess. Mela ejja ngħidu aħna riedu bidla in-numru ta 'settijiet problema 9-8. Dak li nagħmlu huwa nagħmlu xi ħaġa bħal CS50.psets = 8 ;. Yeah, kwistjoni kbira. Dan huwa biss biex nuruk sintassi. Fatt ma tagħmel xejn utli. Kwalunkwe mistoqsijiet? Nimxu dritt flimkien. Mela ejja nħarsu lejn eżempju ta 'malajr ta' kif JavaScript xogħlijiet minħabba I qallek it ma dawn l-affarijiet jibred u jippermetti li timmodifika paġni tal-web. Ejja attwalment tara li fl-azzjoni. Sabiex jieħdu, per eżempju, dan il-fajl HTML. U l-ħaġa nixtieq li tiffoka fuq hija dan il-tikketta partikolari, li huwa buttuna, ma search_button id. Huwa biss fuq il-paġna. Allura issa ejja ara dak nistgħu attwalment jagħmlu. Ukoll, ejja ngħidu meta tikklikkja li buttuna, irridu li jagħmlu alert-- inti għafast il-buttuna. Ejja naraw kif nistgħu nagħmlu dan. Allura window.onload-- din mhix xi ħaġa li inti stajt tidher fil-klassi, għalhekk mhux se jeħtieġu li jkunu jafu lilha għall-kwizz. Iżda dan bażikament jgħid, OK, sejħa Din il-funzjoni meta t-tagħbijiet tat-twieqi. Allura dak biss tip ta 'kodiċi setup. Tinkwetax tant dwar dan. Dak li nixtieq li tiffoka fuq hija fil hawn. Aħna ngħidu searchButton var ugwali document.getElementByID search_button. Allura kif inti tista raden, X'inhu dan ma huwa jgħid, OK, mur isibu l-element ma search_button ID. U issa għandna li element attwali u jien se jaħżnu searchButton varjabbli. U issa nistgħu attwalment jużaw dan l-element u l-bidla, jew aċċess valuri tagħha, affarijiet bħal dik. Nistgħu ngħidu jibdew timpenja ruħha mal-paġna tal-web. So here I say, OK, issa li għandi li buttuna, meta huwa għafast, sejħa din il-funzjoni anonima. Allura dan huwa fejn anonima funzjonijiet jsiru utli. U dak ma l-funzjoni do? Ukoll, huwa biss jitlob dan funzjoni ta 'twissija u jgħid, inti għafast il-buttuna Search. Allura x'se jiġri jekk immur fejn dan HTML tgħix u I ikklikkja l-buttuna, I ser tingħata twissija ftit fancy li tgħid li inti għafast il-buttuna. Allura l-affarijiet li jiffokaw fuq here-- document.getElementByID gets HTML partikolari element bl-ID partikolari. U issa nistgħu stabbilit dak li għandu jiġri meta dak l-element partikolari huwa għafast. UDJENZA: Irridu tpoġġi kollha ta 'dak fil-? HANNAH Blumberg: Jiddispjacini? UDJENZA: Do irridu fiżikament kodiċi kollha ta 'dak? HANNAH Blumberg: Do irridu fiżikament kodiċi kollha ta 'dak? Iva. Huwa ma 'dan it-tip ta' annoying? Dan huwa ħafna ta 'kodiċi. UDJENZA: Inti tista 'timporta xi ħaġa. HANNAH Blumberg: Dritt. Aħna jistgħu jużaw xi ħaġa. U fl particular-- oh, huwa javżak me I għandhom jgħallmu taqsima. B'mod partikolari, ejja jużaw il-librerija jQuery, minħabba li kien verament twil u verament annoying u nixtieq li tkun tista tiġi simplifikata u jagħmilha iqsar u eħfef biex jiktbu. Allura jQuery hija librerija JavaScript. Allura JavaScript huwa programmazzjoni lingwa; jQuery hija librerija. U jagħmel mazz ta 'affarijiet eħfef. Jagħmel jinbidlu u li jmorru madwar dokument HTML ferm aktar faċli. Jagħmel avvenimenti tqandil aktar faċli. Jagħmel animazzjoni aktar faċli u jagħmel Ajax aktar faċli. Mela ejja Mur fis tnejn dawk l-affarijiet dritt issa. Skużani. Qabel nagħmlu, xi sintassi bażiku. Dan huwa dak li ħafna sejħiet għall il-librerija jQuery look like. Aħna nużaw dan dollaru sign-- ebda sinjal konnessjoni ma PHP, biss inconvenient---isem ta ' selettur, dot, u mbagħad azzjoni. Mela ejja tara xi eżempji konkreti ta 'dak. Allura dan fil-fatt huwa l-istess kodiċi mill-avveniment slide. Allura dan twil, ħaġa ikrah isir dan ħafna nicer, ħaġa iżgħar. Mela ejja jippruvaw li din tinqasam. Dan jgħid, OK, jQuery-- dan dollaru sign-- jQuery, isibu me-tieqa. Allura dak is-selettur. Meta tagħbijiet, sejħa din il-funzjoni. Allura dak kollox ġewwa. KOLLOX SEW. S'issa, hekk tajjeb? Kull dritt. Issa, jQuery, issib lili il ħaġa ma search_button ID. U dak li huwa għafast, sejħa din il-funzjoni. U allura dan l-funzjoni eżattament l-istess. Just jagħmlu daqsxejn ftit ta 'allert, inti għafast il-buttuna Search. Allura huwa verament sbieħ. Huwa verament jikkondensa u tissimplifika kodiċi tagħna. Kif ma naf li huwa search_button ID u mhux bħal klassi search_button? UDJENZA: hashtag? HANNAH Blumberg: Yeah. Dan is-simbolu hash, huwa bħad CSS. Mela ftakar, ma CSS, meta aħna riedu li tagħżel xi ħaġa mill-identità, użajna s-sinjal lira. U meta ridna li tagħżel xi ħaġa minn klassi, aħna nużaw l-dot. Great. Jagħmel sens? Allura jQuery suppost biss tagħmel il-ħajja tagħna iktar faċli. Yeah. UDJENZA: Allura jien ftit konfuża kif il-funzjoni anonimu xogħlijiet. Do inti isem dan anonymouse , il-funzjoni funzjoni? Kif huwa msejjaħ? HANNAH Blumberg: Sure. Allura funzjoni huwa biss keyword li jgħid, jien waslet biex jiddefinixxu funzjoni. UDJENZA: Oh, OK. HANNAH Blumberg: OK? U allura aħna tgħaddiha bħala argument to-- ejja tagħti dan one-- ġewwa għall-funzjoni klikk. Allura yeah, b'tali mod li funzjoni, din il-funzjoni anonima, isir argument attwali. Mela ftakar fil JavaScript, aħna jista 'jikkura funzjonijiet bħala valuri. UDJENZA: Oh, OK. HANNAH Blumberg: Yeah. I simili li "oh." Nizza. Mistoqsijiet oħra? Ħin? MARIA ZLATKOVA: Tajba. Tajba. HANNAH Blumberg: biża. Xi jQuery utli malajr. Jien mhux se jmorru kollha permezz ta 'dawn. Dawn slides se jkunu up online ftit aktar tard, sabiex inti tista 'tivverifika it out ftit aktar tard. Imma bażikament, il ġenerali mudell istivi fejn nistgħu ngħidu, OK, ħej, jQuery, hawnhekk tiegħi selettur u mbagħad hawnhekk azzjoni. U inti tista 'tagħmel affarijiet simili aċċess l valur ta 'formola, aċċess xi HTML, kontroll x'jiġri meta l-utent tissottometti formola, affarijiet bħal dik. Iva. UDJENZA: Allura fil- eżami, aħna qed tmur għall-ħtieġa tkun taf pjuttost ħafna minn id-dokumentazzjoni jQuery. Allura peress li aħna kopja / paste tal-jQuery dokumentazzjoni li iqarrqu folja tagħna, Fejn hi l-linja miġbuda? Bħal kemm għandna bżonn inkunu nafu? HANNAH Blumberg: mistoqsija Great. Il-kwistjoni hija essenzjalment minħabba li inti ma jistgħux jaċċessaw id-dokumentazzjoni jQuery matul it-test, kemm jekk inti jafu? Aħna ma jistennewx biex tiġu up ma 'xi funzjoni każwali li aħna se jistennew li inti Google. Affarijiet li huma ġusti logħba huma nixtieq jgħidu biss tip ta 'l-sintassi ġenerali, jkunu jistgħu jagħżlu minn ID u billi class-- hekk bħad CSS. U allura l-funzjonijiet attwali themself, aħna ser x'aktarx jgħidlek. Yeah. UDJENZA: Allura meta inti tagħżel skond il-klassi tkun tfisser dot. HANNAH Blumberg: Iva, eżattament. Tajba. Meta inti tagħżel skont il-klassi, li għaddej li jiġu dot minflok tas-sinjal lira. Iva. UDJENZA: Would you jmorru fuq id-differenza bejn għażla mill ID u skond il-klassi? HANNAH Blumberg: Sure. Id-differenza bejn għażla ID u l-għażla skond il-klassi. Sabiex Maria qal ftit qabel, hemm tista 'tkun biss element HTML wieħed b'ID partikolari, billi klassi, dan jippermetti li grupp mazz Elementi ta 'differenti flimkien, sabiex l-affarijiet li huma relatati, iżda mhux eżattament l-istess. Does li risposta għad-domanda? Tal-biża. Iva. UDJENZA: X'jiġri jekk għandek multipli affarijiet li huma fl-istess klassi? HANNAH Blumberg: X'jiġri jekk għandek affarijiet multipli li huma l-istess klassi? Għalhekk, per eżempju, jekk aħna qed biss bl-użu pur JavaScript, aħna se nagħmlu xi ħaġa bħal document.getElementsByClass. U allura dak li attwalment ma huwa prospetti firxa ta 'elementi. U inti għandek jew jtenni fuq minnhom jew isibu liema waħda tixtieq. Mhuwiex ser jagħti inti element wieħed. Li għaddej biex jagħtuk firxa ta 'elementi. Kwistjoni kbira. Xi ħaġa oħra? Tal-biża. So I think jekk int familjari ma kwalunkwe jQuery inti raw fil-pset, inti għandek tkun tajba biex tmur. Mistoqsija? Oh, no. I really jkollhom biex jgħallmu. Jirrilassaw. Hija ser tkun multa. I ser naslu s'hemm. Ejja nitkellmu dwar Ajax. Allura Ajax se tkun a-- sew, Nibdew bl xi tfisser. Huwa ta 'akronimu. Hija tirrappreżenta Asynchronous JavaScript u XML. U XML hija bażikament se tkun [Inaudible] ma 'tip ta' data tagħna. Iżda aħna ma attwalment użati XML. Minflok, aħna biss użu JSON. Allura bażikament, huwa xi data-- mhux sinkroniku, JavaScript, u ​​data, f'dan il-każ, JSON. U l-għan tagħna, kif aħna imsemmi ftit qabel, huwa li tkun tista 'tagħmel talba, għandhom dik it-talba ma ħaġa tagħha fil- isfond, iżda tkompli jagħmlu dak kollu konna intenzjoni li jagħmlu. U mbagħad meta l-informazzjoni tkun lest, allura aħna ser tiġi inkorporata. Mela ejja ara dak li dan attwalment tidher qiesha. U dan, inti għandek tkun ftit familjari mill pset8, l-waħda inti biss kellu. Allura hawnhekk a jQuery valida funzjoni li aħna jista trid tkun taf about-- dan is-sinjal dollaru. Għalhekk jgħid funzjoni jQuery, .getJson. U dak din il-funzjoni ma huwa tieħu URL u xi parameters-- hekk naħseb fil-każ tal pset8, kien simili, il-URL kienet articles.php u l parametri kien go = xi kodiċi postali. U jgħid, OK, jagħmel talba lill dan il-URL mal-parametri stabbiliti. U li jiġri biss. Meta jispiċċa, huwa jew se jtemmu b'suċċess jew li għaddej biex jonqsu. Allura dan huwa l-ekwivalenti ta 'sejħa Rob u jitolbuh biex jagħmel xi ħaġa. U allura meta huwa jitlob lura, hu jew ser tg jien jsir jew I fallew. Allura fil-każ fejn int jsir, inti tgħidli, OK, jien jsir. U allura inti sejħa din il-funzjoni. F'dan il-każ, li għaddej biex tkun funzjoni li jieħu xi informazzjoni. Il-waħda aħna normalment care about hija data, id-data li konna attwalment lura bħala riżultat ta 'sejħa .getJSON. U inti tista 'tagħmel xi ħaġa ma' dan. Allura fil-każ ta 'pset8, aħna murija bħala lista. Fail se tkun funzjoni li jintuża jekk it-talba jonqos għal kwalunkwe raġuni. U fil-każ ta 'pset8, aħna biss console.log dan. Kwalunkwe mistoqsijiet dwar dak? Yeah. UDJENZA: Nistgħu biss tuża theta funzjoni minflok funzjoni, textStatus, jqHXR. HANNAH Blumberg: Sure. So yeah, I think fil-pset, aħna biss raw data funzjoni. Allura huwa biss the-- iva, OK. Dak hu li rajna fil-pset. C'est totalment multa. Dawn huma biss jekk int riedu biex tiġbed aktar informazzjoni, dawn huma l-affarijiet li inti tista 'tikseb minn .getJSON. Tajba kwistjoni. Xi ħaġa oħra? Yeah. UDJENZA: Allura .getJSON huwa Ajax? HANNAH Blumberg: OK. Allura dan hu t-tip ta 'parti delikata. Hija funzjoni jQuery li tippermetti inti tagħmel sejħiet mhux sinkroniku. U dawk is-sejħiet mhux sinkroniku, li dak li aħna kont qed jirreferu għalih bħala Ajax. Yeah. Li ħa me żmien twil verament biex pull bogħod minn xulxin meta I kien student. UDJENZA: Tista 'tgħid li għal darb'oħra? HANNAH Blumberg: Yeah. Nista 'ngħid li għal darb'oħra? Din il-funzjoni .getJSON, huwa funzjoni jQuery. U li għaddej biex jagħmlu sejħa mhux sinkroniku. U dawn is-sejħiet mhux sinkroniku, konna ġie jirreferu għal dawk kif Ajax. Kwalunkwe mistoqsijiet oħra? Għandna ftit minuti koppja xellug. U Maria għaddej biex nagħlaq mas-sigurtà u allura aħna qed tmur li jiġu biss dwar jsir. MARIA ZLATKOVA: biża, OK. Allura dan is-- ħu ftit ta 'sekonda li tħares fuq dan. U dan mhux xi ħaġa verament kbir. U jista 'xi ħadd tell me għaliex? Dak li qed jiġri fil-foo u tista jista potenzjalment jirriżultaw xi ħaġa ħażina, u dak li sejjaħ? Yeah. UDJENZA: Jekk l-argument li l- għadda fil hija aktar minn 12 karattru, jista overflow. MARIA ZLATKOVA: Dritt. Perfect. X'inhu msejjaħ? Inti biss imsemmija fiha. UDJENZA: overflow buffer. MARIA ZLATKOVA: Yup, buffer overflow. Allura din hija xi ħaġa li aħna jirreferu għalih bħala overflow buffer. U naraw li ġewwa tal foo, konna definit buffer tagħna, c, b'daqs ta '12. Madankollu, fil-prinċipali, aħna ma check b'xi mod possibbli jekk il-argv1-- sabiex kien it-tieni argument. Aħna ma tivverifika jekk il- daqs ta 'dan huwa xieraq. Hekk jekk kellna utent speċjalment malizzjużi li jitqiegħdu f'xi argument li kien itwal minn 12, u mbagħad potenzjalment lil hinn mill-limiti ta 'dak argument, kellhom xi kodiċi esegwit li hu kien qed jipprova jagħmel xi ħaġa ħażina magħha; allura dan, dak li jiġri, tirkibx-ritorn indirizz tal-funzjoni foo, jikkawżaw l-funzjoni meta jirritornaw biex tesegwixxi dik kodiċi. U imbagħad l-affarijiet ħżiena jista 'jiġri. Does this jagħmel sens għal kulħadd? U kif nistgħu jipproteġu kontra dan? Għandek xi suġġerimenti? Bażikament, ġewwa ta ' potenzjalment foo, kif nistgħu jivverifika sabiex ikun żgur li dan ma jista 'jiġri? UDJENZA: Jekk id-daqs 12 jinqabeż, inti jalloka memorja addizzjonali? MARIA ZLATKOVA: Suġġeriment hija, jallokaw memorja addizzjonali tad-daqs jinqabeż. Fil-fatt, nistgħu nagħmlu xi ħaġa ħafna aktar sempliċi minn dak ukoll. Nistgħu biss tikseb it-tul string tal-argument li tiddaħħal, tivverifika jekk dak hu inqas minn jew ugwali għal 12-- li huwa dak li rridu li li jkun għaliex aħna ma rridux lill hinn mil-limiti ta 'buffer tagħna. U mbagħad jekk ma jiġrix dan, aħna jistgħu jaħdmu ma 'l-argument. U allura jekk dan huwa minnu, aħna fil-fatt tixtieq li Yello potenzjalment fir-utent. Iżda dan huwa kif aħna se nagħmlu dan. Iva. UDJENZA: Jista inti jispjegaw reali malajr memcpy? MARIA ZLATKOVA: Oh, sorry. Iva. Memcpy jieħu x'ikun is-- sorry, OK. Memcpy jieħu dak kollu li huwa fil bar, dak kollu li huwa mgħoddi fuq foo bħala l-argument kmand tal-linja. Allura li għaddej biex tieħu argv1. Argv1 tissejjaħ bar hawn. Allura li għaddej biex tieħu bar u li għaddej biex jibagħtu kopja tagħha fis c. UDJENZA: OK. MARIA ZLATKOVA: U li għaddej biex copy---tielet argument jirreferi biss li kemm li għaddej biex kopja fis c. UDJENZA: Ah. Allura ikkupjar dan wieħed kollha ta 'dan imbagħad. MARIA ZLATKOVA: Yeah, huwa ikkupjar kollha ta 'dan. Yep. L-ewwel, irridu niżguraw l-bar ma jkunx daqs null għaliex dan huwa pointer. Imbagħad irridu jiksbu t-tul sensiela ta 'bar. Għandna niżguraw li huwa inqas minn jew ugwali għal 12. U allura għaliex konna għamel żgur, nistgħu attwalment memcpy u kun żgur li dan huwa OK. Kwalunkwe mistoqsijiet? Great. Għandi żewġ mistoqsijiet veru jew falz. Jista 'xi ħadd tell me dritt bogħod jekk dawn huma vera jew falza? Iva, huwa falz. Eżattament. Kemm minnhom huma foloz. Hekk billi tuża password wieħed huwa idea qatt verament tajba għaliex jekk xi ħadd jaf password tiegħek, huma jistgħu biss aċċess għal kulħadd għall-kontijiet l-oħra tiegħek. U mbagħad ikoni jagħmlu xejn biex tiġi żgurata s-sigurtà. Aħna normalment għandha tfittex għal HTTPS minflok HTTP u l-URL. U xi tipi oħra ta ' attakki li konna msemmija, li David ikun semma fid lecture, attakki injezzjoni SQL. Aħna diġà raw li jekk aħna don't-- l Funzjoni query CS50 jagħmel ċert li SQL attakki injezzjoni ma jistgħu jseħħu. Imma jekk aħna ma kinux jużaw CS50, kwotazzjoni, unquote "fl mistoqsija," rridu naraw li tiżgura li l- jintuza mill-utent ma tkunx attwalment xi SQL query li se jikkawżaw l tabelli tagħna jintefgħu jew xi ħaġa ħażina li jiġri ma database tagħna. Ħtif Sessjoni hija tip ieħor ta 'attakk li jiġri meta xi bad persuna tuża sessjoni xi vittma ID jaċċessaw l-informazzjoni login. Allura eżempju trivjali ħafna ta 'dan huwa bħal jekk ikollna kompjuter pubbliċi, mela l-persuna ħażin zkuk u mbagħad huma għandhom cookies li huma salvati. U l-cookies ma jbiddlux għal sessjoni. Imbagħad għandna l-vittma tmur fil u mbagħad log fil-websajt. Il-cookies ma jbiddlux għal sessjoni ċerti. U allura l-vittma zkuk fis il-websajt u mbagħad iħalli. U allura l-persuna li tmur lura allura tista għadhom jużaw sessjoni ID tagħhom aċċess għal informazzjoni tagħhom. B'tali mod li eżempju wieħed ta kif dan jista 'jiġri. U allura jien ma jinkwetaw wisq dwar kodiċi jew xi ħaġa speċifika bħal dik li jistgħu jikkawżaw dan, iżda li xi tip ta 'idea liema l-varjabbli involuti f'dan huma. U mbagħad timmanipula header data hija tip ieħor ta 'attakk li għandha David tkellem dwar. U hija biss jirreferi għal dak li jista 'jiġri meta ir-rispons, l-HTTP rispons ġewwa tal header tagħna mhux sanitizzati kif suppost. U xi wieħed minn fields-- per eżempju, jekk xi ħadd overwrites wieħed mill-header valuri li fihom xejn aktar minn dak li għandhom contain-- u fil-fatt fihom, per eżempju, ta '200 Kodiċi istatus OK, allura dawn tista 'potenzjalment jagħmlu malizzjuż affarijiet meta dawn mhux qed suppost. Imma jiena ma tinkwieta wisq ħafna dwar l-kodiċi speċifiku li jistgħu jikkawżaw dan, biss it-tip ta 'fehim affarijiet ta 'livell għoli bħal dik. Naħseb li dan huwa kollu li għandna biex ikopru. Amazing. Kull min ikollu xi mistoqsijiet dwar xi mill-affarijiet li aħna koperti? Iva. UDJENZA: Allura wieħed tip ta ' aktar kwistjoni loġistika. Hija l-kontenut li prinċipalment jiffokaw fuq affarijiet wara kwizz 1? MARIA ZLATKOVA: So kwistjoni hija, huwa l-kontenut prinċipalment iffokati fuq affarijiet wara kwizz 1? Allura l-fokus huwa fuq wara kwizz 1, bl-eċċezzjoni li għandna bżonn li wieħed jiffoka fuq affarijiet fil pset5 u ħafna ta 'l-istrutturi tad-data li aħna koperti. U ma nistgħux ngħidu li aħna tista 'tinjora xejn qabel li minħabba li tibni fuq dan ukoll. Allura tiffoka fuq li, flimkien ma 'materjal pset5 bħal inklużi listi marbuta, stacks, kjuwijiet, u kollox li Hannah marru fuq. HANNAH Blumberg: Dritt. Yeah, aħna marru fuq l-għalf C fil-bidu nett malajr ħafna. Imma kun żgur li tirrevedi dan. Mur lura u tara l-analiżi kwizz 0. Koppja noti aktar loġistiċi, biss filwaqt li aħna għandna l-attenzjoni tiegħek. Aħna ser ikollhom ħinijiet tal-uffiċċju kemm-Tnejn u t-Tlieta bil-lejl. Huma qed tmur biex tkun fil MD 119. Dan huwa fuq il-websajt, hekk jekk inti ma tismagħha, l-ebda inkwiet. MARIA ZLATKOVA: 8:30-11:00. HANNAH Blumberg: Yeah, 8:30-11:00. Aħna ser jkun hemm. Aħna ser ikunu hemm biex twieġeb mistoqsijiet. Huwa chill pretty u gost. You guys tista 'tistaqsi xi mistoqsijiet li għandek fuq kwizz 1. U kwizz 1 huwa fuq L-Erbgħa, Xorti hekk tajjeb. Jekk għandek xi mistoqsijiet, forsi jiġu Kellimna up here one-on-one. Kessaħ. Grazzi hafna. MARIA ZLATKOVA: Grazzi tant, guys. UDJENZA: Yay. [Applause]