1 00:00:00,000 --> 00:00:05,616 2 00:00:05,616 --> 00:00:07,030 >> HANNAH Blumberg: Ahoj všetci. 3 00:00:07,030 --> 00:00:09,530 Chystáme sa začať len pár minút čoskoro 4 00:00:09,530 --> 00:00:11,738 pretože máme veľa materiálu prejsť. 5 00:00:11,738 --> 00:00:12,790 Ja som Hannah. 6 00:00:12,790 --> 00:00:13,865 Som TF. 7 00:00:13,865 --> 00:00:16,239 Maria sa bude spojenie nám za pár minút. 8 00:00:16,239 --> 00:00:17,560 Sekcia Učí tesne pred. 9 00:00:17,560 --> 00:00:19,351 Učím sekcie právo po, takže ideme 10 00:00:19,351 --> 00:00:21,200 aby ju udržali na hodinu a pol. 11 00:00:21,200 --> 00:00:25,490 >> Tak ako uvidíte tu, máme dosť niekoľko tém musíme dostať cez, 12 00:00:25,490 --> 00:00:27,200 takže budeme ísť trochu rýchlo. 13 00:00:27,200 --> 00:00:31,140 Ale ak sa v ktoromkoľvek bode povieme niečo príliš rýchlo, alebo nechcete pochopiť, 14 00:00:31,140 --> 00:00:33,170 neváhajte a prerušiť s otázkami. 15 00:00:33,170 --> 00:00:36,610 Chceme byť schopní, aby sa tento preskúma relácii ako užitočné pre všetkých z vás, 16 00:00:36,610 --> 00:00:37,973 ako je to možné. 17 00:00:37,973 --> 00:00:38,920 Úžasné. 18 00:00:38,920 --> 00:00:41,650 >> Takže poďme skočiť priamo v s niektoré témy, že sme vlastne 19 00:00:41,650 --> 00:00:46,980 veľmi, veľmi stručne sa vzťahuje na kvíz 0 v prieskumnom zasadnutí kvíz 0. 20 00:00:46,980 --> 00:00:48,840 Takže počínajúc spojových zoznamov. 21 00:00:48,840 --> 00:00:52,090 Takže len uistite sa, že máte nejaké základné znalosti o spojových zoznamov 22 00:00:52,090 --> 00:00:55,110 a sú pohodlne robiť niektoré zo základných operácií. 23 00:00:55,110 --> 00:00:58,560 >> Takže len preskúmať, spojený zoznamy sú lepšie ako polia 24 00:00:58,560 --> 00:01:01,020 pretože oni môžu rásť dynamicky. 25 00:01:01,020 --> 00:01:03,300 Takže máme tú obrovskú výhodu. 26 00:01:03,300 --> 00:01:06,031 Videli sme je použitý V stoly mriežky, kedy sme 27 00:01:06,031 --> 00:01:08,280 neviem presne, koľko čo budeme chcieť 28 00:01:08,280 --> 00:01:10,900 vložiť do našej dátovej štruktúry. 29 00:01:10,900 --> 00:01:15,700 Bohužiaľ, máme kusy prepojený zoznam všade pamäť, 30 00:01:15,700 --> 00:01:20,820 takže nemusí byť nutne schopný robiť konštantnom čase prístup 31 00:01:20,820 --> 00:01:22,502 akéhokoľvek prvku v Google zoznamu. 32 00:01:22,502 --> 00:01:24,210 Aby bolo možné nájsť Najmä prvok, my 33 00:01:24,210 --> 00:01:26,510 musieť opakovať všetky cesta od začiatku. 34 00:01:26,510 --> 00:01:30,610 Takže majte na pamäti, že väčšina Základné operácie sú omega kyseliny 1. 35 00:01:30,610 --> 00:01:32,130 Takže vložka je jednoducho bude trvať 1. 36 00:01:32,130 --> 00:01:37,520 Zmazať bude trvať n, pretože sme musieť ísť nájsť ju zo zoznamu. 37 00:01:37,520 --> 00:01:39,260 A hľadanie môže trvať, v najhoršom prípade, n. 38 00:01:39,260 --> 00:01:42,330 Nemôžeme urobiť niečo ako binárne vyhľadávanie na Google zoznamu 39 00:01:42,330 --> 00:01:45,101 pretože nemôžeme len náhodne skok do stredu. 40 00:01:45,101 --> 00:01:45,600 Super. 41 00:01:45,600 --> 00:01:48,160 42 00:01:48,160 --> 00:01:48,960 Úžasné. 43 00:01:48,960 --> 00:01:50,270 >> Trochu stohov. 44 00:01:50,270 --> 00:01:53,980 To opäť prišiel na kvíz 0, takže vás by mali byť super pohodlné s ním. 45 00:01:53,980 --> 00:01:57,210 Ale pre komíny, žiadame vás pamätať stoh zásobníkov. 46 00:01:57,210 --> 00:01:59,940 A to bude prvý, posledný von. 47 00:01:59,940 --> 00:02:02,272 Tak sme stack veci v zásobníku, a potom 48 00:02:02,272 --> 00:02:04,980 ak sa snažíme, aby sa niečo, off-- ktorý nazývame praskanie off 49 00:02:04,980 --> 00:02:06,581 stack-- sme prišli z vrcholu. 50 00:02:06,581 --> 00:02:09,289 A ak chceme dať niečo v stohu, hovoríme to tlačiť. 51 00:02:09,289 --> 00:02:13,170 Takže je vždy bude vyrastať z dna ako stĺpca podložiek. 52 00:02:13,170 --> 00:02:14,540 Úžasné. 53 00:02:14,540 --> 00:02:17,607 >> Videli sme komíny implementovaná s oboma prepojené zoznamy a polia. 54 00:02:17,607 --> 00:02:19,440 Ak ste sa vykonáva s poli, chcete 55 00:02:19,440 --> 00:02:22,350 aby sa ubezpečil, sledovať, ako veľkosť a kapacita. 56 00:02:22,350 --> 00:02:27,540 Takže veľkosť bude aktuálna rad vecí vo vašom stacku, 57 00:02:27,540 --> 00:02:32,900 vzhľadom k tomu, kapacita je celkový počet vecí, ktoré môžete uložiť do vášho stacku. 58 00:02:32,900 --> 00:02:34,220 Super. 59 00:02:34,220 --> 00:02:35,767 >> Veľmi podobne, máme fronty. 60 00:02:35,767 --> 00:02:38,850 V tomto prípade, namiesto toho premýšľať o stoh priehradiek, myslím, že na riadku. 61 00:02:38,850 --> 00:02:40,697 To bude prvý dovnútra, prvý von. 62 00:02:40,697 --> 00:02:42,780 Takže ak ste čakajú, až pre niečo v obchode, 63 00:02:42,780 --> 00:02:46,920 dúfame, že sa osoba po prvýkrát v linka bude musí pomôcť ako prvý. 64 00:02:46,920 --> 00:02:49,350 >> Namiesto toho, hovorí tlačiť a pop ako my na stack, 65 00:02:49,350 --> 00:02:52,000 my len povedať čakací a Dequeue. 66 00:02:52,000 --> 00:02:54,970 A opäť, ak ste sa vykonáva to s radom, 67 00:02:54,970 --> 00:02:56,720 musíme sledovať nie iba veľkosť 68 00:02:56,720 --> 00:03:02,390 a kapacity, ale aj hlava, ktorá bude predná časť našej fronty. 69 00:03:02,390 --> 00:03:03,010 Super. 70 00:03:03,010 --> 00:03:05,770 Akékoľvek otázky týkajúce sa niečo z toho? 71 00:03:05,770 --> 00:03:06,320 Úžasné. 72 00:03:06,320 --> 00:03:07,640 Pohybujúce sa vpravo pozdĺž. 73 00:03:07,640 --> 00:03:08,564 >> OK, hashovacie tabuľky. 74 00:03:08,564 --> 00:03:10,605 Tu je miesto, kde to začína naozaj zaujímavé. 75 00:03:10,605 --> 00:03:14,150 Takže hash tabuľka je jedna implementácia asociatívneho poľa. 76 00:03:14,150 --> 00:03:16,700 Takže v podstate, čo sa stalo je máme všetky tohto vstupu, 77 00:03:16,700 --> 00:03:18,750 a dáme ju do hash funkcia, ktorá hovorí, 78 00:03:18,750 --> 00:03:21,840 OK, to je miesto, kde v hash tabuľka patrí. 79 00:03:21,840 --> 00:03:24,860 >> Takže najjednoduchšie hashovacie funkcie že sme videli, je len hovorí, 80 00:03:24,860 --> 00:03:28,170 OK, predpokladám, že chceme dať reťazca v našom hash tabuľky. 81 00:03:28,170 --> 00:03:30,870 A naozaj jednoduchý nápad by mohlo byť povedať, v poriadku, 82 00:03:30,870 --> 00:03:34,350 nech to len radiť podľa Prvé písmeno slova. 83 00:03:34,350 --> 00:03:37,570 Takže si môžete pozrieť tu, berieme banán, dáme cez transformačné funkcie, 84 00:03:37,570 --> 00:03:40,190 a hovorí, hej, že by mal ísť na indexe 1. 85 00:03:40,190 --> 00:03:45,120 >> Takže môžeme v podstate myslieť na hash stôl ako veľa rôznych vedierka. 86 00:03:45,120 --> 00:03:49,880 A každá z týchto lopaty sa deje držať hlavu prepojeného zoznamu. 87 00:03:49,880 --> 00:03:55,030 A v tomto zozname Google je miesto, kde môžeme skutočne dať rôznych kusov dát. 88 00:03:55,030 --> 00:03:57,820 >> Takže potápanie trochu viac do funkcie hash, tu je 89 00:03:57,820 --> 00:03:59,870 Príklad Proste opísal, kde sme len povedať, 90 00:03:59,870 --> 00:04:02,460 OK, vezmi prvé písmeno slová a my sme 91 00:04:02,460 --> 00:04:03,990 bude triediť do vedier. 92 00:04:03,990 --> 00:04:08,490 Tak pravdepodobne, bude tam 26 vedierka, jeden pre každé písmeno abecedy. 93 00:04:08,490 --> 00:04:10,090 Prečo nie je to skvelá funkcia hash? 94 00:04:10,090 --> 00:04:13,461 Čo je to non-ideál? 95 00:04:13,461 --> 00:04:13,960 Jo. 96 00:04:13,960 --> 00:04:15,790 >> Divákov: Idete mať kolízie. 97 00:04:15,790 --> 00:04:16,390 >> HANNAH Blumberg: Jo, presne tak. 98 00:04:16,390 --> 00:04:18,000 Budeš mať kolízie. 99 00:04:18,000 --> 00:04:18,954 Takže to je jedna vec. 100 00:04:18,954 --> 00:04:21,620 A budeme hovoriť o tom, ako môžeme opraviť kolíziám len sekundu. 101 00:04:21,620 --> 00:04:23,980 Ďalší problém s týmto najmä hashovacie funkcie 102 00:04:23,980 --> 00:04:25,980 je, že náš líši lopaty sa bude 103 00:04:25,980 --> 00:04:28,960 docela drasticky rôznych veľkostí. 104 00:04:28,960 --> 00:04:33,840 >> Vieme, že tam je oveľa viac slov, ktoré začínajú ako X, 105 00:04:33,840 --> 00:04:38,980 takže budeme mať veľmi nevyvážené vedierka v našej hash tabuľky. 106 00:04:38,980 --> 00:04:40,050 Super. 107 00:04:40,050 --> 00:04:41,340 Tak jo, poďme sa dostať späť do bod kolízií. 108 00:04:41,340 --> 00:04:42,900 Čo budeme robiť, keď tam je kolízia? 109 00:04:42,900 --> 00:04:44,490 >> Máme niekoľko rôznych možností. 110 00:04:44,490 --> 00:04:47,600 Takže človek, takže predpokladám, že sa snažíme dať bobule do našej tabuľky hash. 111 00:04:47,600 --> 00:04:50,370 A vidíme, oh, chceme dať do indexu 1, 112 00:04:50,370 --> 00:04:52,070 ale banán už tam žije. 113 00:04:52,070 --> 00:04:53,110 Čo budeme robiť? 114 00:04:53,110 --> 00:04:54,560 Máme dve hlavné možnosti. 115 00:04:54,560 --> 00:04:58,050 >> Číslo jedna je, môžeme povedať, v poriadku, tam nie je miesto v indexe 1, 116 00:04:58,050 --> 00:05:03,210 ale nech to len hľadať ďalej skrz kým sa nám nepodarí nájsť ďalšie voľné miesto. 117 00:05:03,210 --> 00:05:08,490 Takže budeme hovoriť, OK, Povedzme to v mieste 3. 118 00:05:08,490 --> 00:05:09,240 To je jedna možnosť. 119 00:05:09,240 --> 00:05:11,470 Tomu sa hovorí lineárne sondovania. 120 00:05:11,470 --> 00:05:15,500 >> A druhá možnosť hovorí, OK, dobre, nech to len, aby každý z týchto vedierka 121 00:05:15,500 --> 00:05:17,470 byť vedúci spojových zoznamov. 122 00:05:17,470 --> 00:05:21,910 A je to v poriadku, ak je toho viac ako jednu vec v vedre. 123 00:05:21,910 --> 00:05:23,820 Sme len tak pripojiť ho na prednej strane. 124 00:05:23,820 --> 00:05:26,032 Takže tu vidíte, OK, Keď sme vložená bobule, my 125 00:05:26,032 --> 00:05:28,240 si vzal banán, druh tlačil ju trochu 126 00:05:28,240 --> 00:05:29,842 a hodil bobule tam. 127 00:05:29,842 --> 00:05:31,050 A to je taky úplne v pohode. 128 00:05:31,050 --> 00:05:32,830 To sa nazýva samostatný reťazenie. 129 00:05:32,830 --> 00:05:38,100 Môžete si myslieť na to ako niečo ako rad hláv na spojových zoznamov. 130 00:05:38,100 --> 00:05:41,950 Akékoľvek otázky týkajúce hash stoly, hashovacie funkcie? 131 00:05:41,950 --> 00:05:44,290 Úžasné. 132 00:05:44,290 --> 00:05:45,470 >> Stromy a pokusov. 133 00:05:45,470 --> 00:05:47,287 Takže strom je nejaký druh dátové štruktúry 134 00:05:47,287 --> 00:05:49,453 v ktorom tam je nejaký druh hierarchie alebo nejaký druh 135 00:05:49,453 --> 00:05:51,247 o poradí na vaše rôzne objekty. 136 00:05:51,247 --> 00:05:53,580 A to sa stane výborný jasné, kedy vidíme príklad. 137 00:05:53,580 --> 00:05:56,960 A my sme videli pokusy, spolu sa stoly mriežky, v pset5-- 138 00:05:56,960 --> 00:06:00,700 ktorý, znovu, naprosto poctivá hra pre tento quiz-- ako ďalšie dát 139 00:06:00,700 --> 00:06:03,110 štruktúry, ktoré môžeme ukladať rôzne veci. 140 00:06:03,110 --> 00:06:06,782 V prípade slovníka, sme skladovať veľa slov. 141 00:06:06,782 --> 00:06:08,240 Takže poďme sa pozrieť na niektoré stromy. 142 00:06:08,240 --> 00:06:10,190 Tak to je príklad stromu. 143 00:06:10,190 --> 00:06:13,105 Má druh štruktúry, že hierarchickej štruktúre, 144 00:06:13,105 --> 00:06:15,920 kde môžete vidieť, že Tento uzol 1 v hornej časti 145 00:06:15,920 --> 00:06:20,750 má nejaký hodnosti nad 2 a 3, , Ktoré sú vyššie ako 4, 5 a 6 a 7, 146 00:06:20,750 --> 00:06:22,860 ktoré sú nad 8 a 9. 147 00:06:22,860 --> 00:06:25,210 Tak to je všetko, myslíme strom, takže si môžete len tak 148 00:06:25,210 --> 00:06:26,660 Picture to vo vašej hlave. 149 00:06:26,660 --> 00:06:29,050 >> Teraz máme pár špecializovanejšie stromy. 150 00:06:29,050 --> 00:06:31,070 Takže jeden príklad je binárny strom. 151 00:06:31,070 --> 00:06:33,290 A binárny strom je, znovu, len bude 152 00:06:33,290 --> 00:06:37,040 dátová štruktúra s nejakou hierarchie, ale každý z uzlov 153 00:06:37,040 --> 00:06:38,650 môžu mať maximálne dve deti. 154 00:06:38,650 --> 00:06:41,530 To je miesto, kde slovo binárne pochádza. 155 00:06:41,530 --> 00:06:43,410 Takže toto je príklad binárneho stromu. 156 00:06:43,410 --> 00:06:45,720 Tak to je menšie kategórie stromov. 157 00:06:45,720 --> 00:06:48,960 >> Teraz poďme ešte konkrétnejšie a hovoriť o binárny trees-- binárneho vyhľadávania 158 00:06:48,960 --> 00:06:51,310 stromy, skôr. 159 00:06:51,310 --> 00:06:56,430 Tak tu je nápad nie je len každý uzol má u väčšiny dvoch detí, 160 00:06:56,430 --> 00:07:00,300 ale všetky deti do vľavo sa bude menší 161 00:07:00,300 --> 00:07:03,450 a všetky deti do právo sa bude väčšia. 162 00:07:03,450 --> 00:07:05,890 Takže oznámenia v práve našej binárny strom, je tu 163 00:07:05,890 --> 00:07:08,650 medzi číslami žiadny vzťah. 164 00:07:08,650 --> 00:07:12,990 Ale v našom binárne vyhľadávanie strom, vidíme, OK, tu je 44. 165 00:07:12,990 --> 00:07:17,080 A každé číslo na ľavej strane 44, je menšie a všetko vpravo 166 00:07:17,080 --> 00:07:17,920 je väčšia. 167 00:07:17,920 --> 00:07:20,130 >> A to platí u každej úroveň stromu. 168 00:07:20,130 --> 00:07:24,810 Tak tu, to je menšia než 22, a to je väčšia ako 22. 169 00:07:24,810 --> 00:07:26,390 A to je binárny vyhľadávací strom. 170 00:07:26,390 --> 00:07:28,900 Prečo si myslíme, že je to len binárny vyhľadávací strom? 171 00:07:28,900 --> 00:07:30,651 Čo algoritmus to vám pripomína? 172 00:07:30,651 --> 00:07:31,650 Divákov: Binárne vyhľadávanie. 173 00:07:31,650 --> 00:07:32,480 HANNAH Blumberg: Binárne vyhľadávanie. 174 00:07:32,480 --> 00:07:35,150 Pretože ak hľadáte Najmä čísla v tejto vetve, 175 00:07:35,150 --> 00:07:38,800 na každom mieste, stačí zaklopať off polovica stromu, čo je skvelé. 176 00:07:38,800 --> 00:07:43,800 A tak, čo sa deje, aby nám niečo že vyzerá ako binárne vyhľadávanie. 177 00:07:43,800 --> 00:07:45,870 Nejaké otázky? 178 00:07:45,870 --> 00:07:47,570 Dobre, v pohode. 179 00:07:47,570 --> 00:07:48,560 >> V poriadku, sa snaží. 180 00:07:48,560 --> 00:07:49,657 Obľúbený každého z nás. 181 00:07:49,657 --> 00:07:51,990 Tak to je príklad, ktorý sme videli veľa v triede. 182 00:07:51,990 --> 00:07:54,710 A opäť, je to len ďalší spôsob, ako môžeme ukladať dáta. 183 00:07:54,710 --> 00:07:57,530 V prípade slovníka, opäť, je to len bude reťazca. 184 00:07:57,530 --> 00:08:00,870 Takže poďme sa pozrieť, čo to vlastne vyzerá ako na mierne nižšej úrovni. 185 00:08:00,870 --> 00:08:03,690 >> Takže poďme sa pozrieť na jednom uzle v trie. 186 00:08:03,690 --> 00:08:07,532 A vidíme, OK, tam sa deje byť logická a uzol, 187 00:08:07,532 --> 00:08:09,170 ukazovateľ na uzla. 188 00:08:09,170 --> 00:08:11,400 A vidíme, že Boolean sa nazýva is_word. 189 00:08:11,400 --> 00:08:13,490 Takže v podstate, to je bude zodpovedať 190 00:08:13,490 --> 00:08:16,750 na týchto malých trojuholníky, ktoré hovorí, ak ste sem dostali, 191 00:08:16,750 --> 00:08:19,100 ste našli kompletné slovo. 192 00:08:19,100 --> 00:08:23,670 >> Vieme, že "Turing" cez Tu je kompletný slovo, 193 00:08:23,670 --> 00:08:28,030 keďže, len T-U-R nie je slovo pretože my nevidíme tú malú delta. 194 00:08:28,030 --> 00:08:31,440 A ten malý trojuholník, opäť, zodpovedá tomuto is_word, 195 00:08:31,440 --> 00:08:34,480 tento Boolean is_word. 196 00:08:34,480 --> 00:08:36,320 A potom máme rad detí. 197 00:08:36,320 --> 00:08:39,860 Takže na každej úrovni, budete majú zvláštne uzol, 198 00:08:39,860 --> 00:08:42,470 a že uzol ukazuje na array celej abecedy. 199 00:08:42,470 --> 00:08:44,346 >> Takže vidíte, zase, V tomto picture-- Som 200 00:08:44,346 --> 00:08:48,170 bude držať skákanie späť a forth--, že, že pole na vrchole 201 00:08:48,170 --> 00:08:51,640 má veľa rôznych uzly prichádzajúce z nej. 202 00:08:51,640 --> 00:08:57,140 To má 26, alebo 27, ak chcete, zahrnúť osobitný charakter. 203 00:08:57,140 --> 00:09:01,320 A to nás si dáva spôsob ukladania naše dáta 204 00:09:01,320 --> 00:09:04,450 a to spôsobom, ktorý môže byť prizerali že sa môžete pozrieť na super rýchly. 205 00:09:04,450 --> 00:09:06,650 Aká je doba vyhľadávania na trie? 206 00:09:06,650 --> 00:09:07,970 >> Divákov: [Nepočuteľné]. 207 00:09:07,970 --> 00:09:08,300 >> HANNAH Blumberg: Jo. 208 00:09:08,300 --> 00:09:09,550 Teoreticky je to konštantná čas. 209 00:09:09,550 --> 00:09:13,230 Je to len bude byť veľkosť slovo, ktoré chcete vyhľadať. 210 00:09:13,230 --> 00:09:15,950 Aj keď pridáme obrovské množstvo viac slov našej trie, 211 00:09:15,950 --> 00:09:18,160 nie je to bude trvať nás dlhšie na určenie 212 00:09:18,160 --> 00:09:19,690 v prípade, že dané slovo je v trie. 213 00:09:19,690 --> 00:09:21,412 Tak to je naozaj pekné. 214 00:09:21,412 --> 00:09:23,697 >> Divákov: Práve si inicializovať, že pole? 215 00:09:23,697 --> 00:09:24,780 Prišli ste na bod alebo dva. 216 00:09:24,780 --> 00:09:26,130 Môžeš len hovoriť o že na sekundu? 217 00:09:26,130 --> 00:09:26,680 >> HANNAH Blumberg: Jasné, určite. 218 00:09:26,680 --> 00:09:27,590 Dobrá otázka. 219 00:09:27,590 --> 00:09:31,140 Otázkou bolo, my majú celý rad, ktorý je 220 00:09:31,140 --> 00:09:34,180 bude mať uzol hviezdy as na rozdiel od púhych uzla, že jo? 221 00:09:34,180 --> 00:09:35,180 Super. 222 00:09:35,180 --> 00:09:37,990 Tak tu, čo hovoríme je naša pole je práve 223 00:09:37,990 --> 00:09:40,035 Bude odkazy na ďalšie polia. 224 00:09:40,035 --> 00:09:42,910 Takže to essentially-- to druh cíti ako Google zoznamu týmto spôsobom 225 00:09:42,910 --> 00:09:46,620 kde každý z týchto detí len bod na ďalší uzol. 226 00:09:46,620 --> 00:09:49,030 >> A to tak, že sme vlastne určiť, hej, OK, 227 00:09:49,030 --> 00:09:52,320 sme opakoval cez celý slovo, je toto slovo v slovníku, 228 00:09:52,320 --> 00:09:54,476 sme len skontrolovať túto is_word. 229 00:09:54,476 --> 00:09:55,100 Veľká otázka. 230 00:09:55,100 --> 00:09:55,675 Jo. 231 00:09:55,675 --> 00:09:56,216 Divákov: OK. 232 00:09:56,216 --> 00:09:57,470 Takže to, čo bolo runtime pre trie? 233 00:09:57,470 --> 00:09:58,386 >> HANNAH Blumberg: Iste. 234 00:09:58,386 --> 00:10:01,852 Takže runtime pre trie pre vyhľadávanie bude konštantný čas. 235 00:10:01,852 --> 00:10:04,310 Takže je to len bude byť počet písmen v slove. 236 00:10:04,310 --> 00:10:06,310 To nie je závislé na Veľkosť slovníka 237 00:10:06,310 --> 00:10:09,510 alebo veľkosť dátové štruktúry. 238 00:10:09,510 --> 00:10:12,170 Tak tu je to trochu jednoduchšie príklad. 239 00:10:12,170 --> 00:10:15,430 >> V takom prípade môžete vidieť, že slovo bat je v slovníku 240 00:10:15,430 --> 00:10:18,900 a máte zoom, ale vy nemajú niečo ako zoo. 241 00:10:18,900 --> 00:10:20,050 Ako by sme urobiť zoo? 242 00:10:20,050 --> 00:10:24,276 Ako môžeme pridať zoo na náš slovník, k nášmu trie? 243 00:10:24,276 --> 00:10:24,776 Jo. 244 00:10:24,776 --> 00:10:27,014 >> Publikum: Urobiť is_word platí pre [nepočuteľných]. 245 00:10:27,014 --> 00:10:27,930 HANNAH Blumberg: Dobrý. 246 00:10:27,930 --> 00:10:31,731 Takže by sme povedať, Z-O-O, a potom sme si chcete zaškrtnúť políčko, že rovnako. 247 00:10:31,731 --> 00:10:32,230 Skvelé. 248 00:10:32,230 --> 00:10:35,160 249 00:10:35,160 --> 00:10:37,930 Porovnajme veľmi stručne sa snaží proti stoly mriežky. 250 00:10:37,930 --> 00:10:39,770 Pokusy sú naozaj skvelé pretože, ako sme povedali, 251 00:10:39,770 --> 00:10:41,610 poskytujú konštantný-time vyhľadávanie. 252 00:10:41,610 --> 00:10:44,285 Ale obrovská nevýhoda je, že sú humongous. 253 00:10:44,285 --> 00:10:46,160 Môžete získať pocit, dokonca aj pri pohľade na to, 254 00:10:46,160 --> 00:10:48,454 že to bude trvať obrovské množstvo pamäte. 255 00:10:48,454 --> 00:10:50,620 Takže oni bude oveľa väčšie ako hash tabuľky, 256 00:10:50,620 --> 00:10:52,270 ale idú dať nás oveľa rýchlejšie časy vyhľadávania. 257 00:10:52,270 --> 00:10:54,478 Takže to je druh vášho Kompromis, čo vám záleží, 258 00:10:54,478 --> 00:10:57,350 či už je to rýchlosť alebo pamäť. 259 00:10:57,350 --> 00:11:02,251 Akékoľvek otázky na nič z toho, všetky C dátových štruktúr. 260 00:11:02,251 --> 00:11:02,750 Krásne. 261 00:11:02,750 --> 00:11:03,250 OK. 262 00:11:03,250 --> 00:11:07,322 Chystáme sa prejsť na trochu bit vývoj webových aplikácií s Máriou. 263 00:11:07,322 --> 00:11:08,280 MARIA Zlatkov: Lovely. 264 00:11:08,280 --> 00:11:09,036 OK. 265 00:11:09,036 --> 00:11:10,380 >> HANNAH Blumberg: Môžete používať svoj notebook. 266 00:11:10,380 --> 00:11:11,255 >> MARIA Zlatkov: Nice. 267 00:11:11,255 --> 00:11:13,320 268 00:11:13,320 --> 00:11:14,912 OK v pohode. 269 00:11:14,912 --> 00:11:17,120 Ako sme sa presťahovať teraz na web vývoj, hovorili sme trochu 270 00:11:17,120 --> 00:11:20,680 o meniacich sa oprávnenia súborov a adresárov 271 00:11:20,680 --> 00:11:24,190 tak, aby mohli byť prístupné pre ostatných užívateľov, do sveta, 272 00:11:24,190 --> 00:11:28,640 a tak, že môžeme vidieť, ako v podstate im môžeme oznámiť 273 00:11:28,640 --> 00:11:32,600 pri vývoji webových stránok veci ako že sme väčšinou robili. 274 00:11:32,600 --> 00:11:36,400 >> Takže sme videli príkaz chmod, čo je režim zmeniť, v podstate. 275 00:11:36,400 --> 00:11:39,300 To je príkaz Linux a mení povolenie na prístup 276 00:11:39,300 --> 00:11:40,410 z objektov systému súborov. 277 00:11:40,410 --> 00:11:43,370 A objekt súborový systém len adresár, súbor, 278 00:11:43,370 --> 00:11:46,810 čokoľvek, čo môžete zmeniť povolenia. 279 00:11:46,810 --> 00:11:53,750 >> Takže vidieť súbor oprávnení, sme zadajte príkaz ls -l, zoznam. 280 00:11:53,750 --> 00:11:56,500 A keď sme typ, ktorý sme zvyčajne vidieť nejaké oprávnenie 281 00:11:56,500 --> 00:11:59,660 ktoré vyzerajú nejako takto v prednej časti názvu adresára. 282 00:11:59,660 --> 00:12:01,260 Takže d odkazuje na adresár. 283 00:12:01,260 --> 00:12:05,930 A potom máme tri trojice, ktoré v podstate 284 00:12:05,930 --> 00:12:11,675 odkazujú na oprávneniami buď užívateľ, skupina, alebo svet. 285 00:12:11,675 --> 00:12:16,490 >> Typy oprávnenia, ktoré môžeme mať pre tieto tri skupiny ľudí 286 00:12:16,490 --> 00:12:20,830 sú buď r pre čítanie, w pre písať, a X pre spustiť. 287 00:12:20,830 --> 00:12:23,650 A môžeme mať pre tých, skupina a svet rovnako. 288 00:12:23,650 --> 00:12:26,940 Najťažšie vec je, že niekedy keď sme zadajte príkaz chmod, 289 00:12:26,940 --> 00:12:32,960 by sme zadajte nejaké číslo že sa skladala z troch bitov. 290 00:12:32,960 --> 00:12:36,990 Takže sme mohli urobiť ako 777, a ktoré v podstate 291 00:12:36,990 --> 00:12:40,450 odvolával sa na pridanej hodnote každého z týchto triad 292 00:12:40,450 --> 00:12:45,060 pretože r odkazuje na 4, by w odkazujú na 2, a x odkazuje na 1, 293 00:12:45,060 --> 00:12:50,020 takže keď spočítajú, každé z čísel príde až na kumulatívnej číslo 294 00:12:50,020 --> 00:12:52,750 na súhrnnou hodnotou medzi 0 a 7. 295 00:12:52,750 --> 00:12:55,150 Tak by sme mohli tiež 0 k vôbec žiadne oprávnenie. 296 00:12:55,150 --> 00:12:58,200 A to by v podstate dá nám oprávnenia buď pre užívateľov, 297 00:12:58,200 --> 00:13:00,450 skupina, alebo svet. 298 00:13:00,450 --> 00:13:02,620 Akékoľvek otázky týkajúce sa to tak ďaleko? 299 00:13:02,620 --> 00:13:05,331 >> Divákov: ste povedal čítať bol 4? 300 00:13:05,331 --> 00:13:06,164 MARIA Zlatkov: Áno. 301 00:13:06,164 --> 00:13:07,568 Divákov: [Nepočuteľné]. 302 00:13:07,568 --> 00:13:08,504 HANNAH Blumberg: Jo. 303 00:13:08,504 --> 00:13:11,790 Divákov: A potom pridaním všetci tí, iní by uveďte vaše číslo. 304 00:13:11,790 --> 00:13:12,665 MARIA Zlatkov: Jo. 305 00:13:12,665 --> 00:13:14,970 Jo. 306 00:13:14,970 --> 00:13:17,810 To sú veľké otázky. 307 00:13:17,810 --> 00:13:20,490 Lovely. 308 00:13:20,490 --> 00:13:25,340 Ďalej sme skočili do HTML a niečo viac o vývoj webových aplikácií. 309 00:13:25,340 --> 00:13:27,990 Takže HTML jednoducho znamená, HyperText Markup Language. 310 00:13:27,990 --> 00:13:30,460 A to je značky jazyk, ktorý je štandardný 311 00:13:30,460 --> 00:13:32,720 že to používa na vytvorenie webovej stránky. 312 00:13:32,720 --> 00:13:35,750 >> Volá sa to značkovací jazyk pretože to nie je v skutočnosti zostavujú. 313 00:13:35,750 --> 00:13:40,310 Nehovorí, ako nejaký kód by mal byť vykonané, alebo niečo také. 314 00:13:40,310 --> 00:13:44,800 Je to len a vymedzuje opisuje, ako web 315 00:13:44,800 --> 00:13:46,840 stránka by mala byť zriadená s každým z jej prvkov 316 00:13:46,840 --> 00:13:48,460 a ako by mali vyzerať pre užívateľov. 317 00:13:48,460 --> 00:13:53,090 318 00:13:53,090 --> 00:13:57,110 >> Niektoré z HTML tagov, ktoré sme prešiel sú nasledovné. 319 00:13:57,110 --> 00:14:00,500 Všetky naše dokumenty HTML začala s DOCTYPE html. 320 00:14:00,500 --> 00:14:02,550 Potom máme vždy html tag. 321 00:14:02,550 --> 00:14:03,930 Máme hlavu a telo. 322 00:14:03,930 --> 00:14:07,890 A to je dôležité, že má HTML tento druh vnorené štruktúry 323 00:14:07,890 --> 00:14:09,280 pretože to je veľmi jasné. 324 00:14:09,280 --> 00:14:13,200 A potom sa to stáva veľmi jasné, kedy my je potrebné otvoriť a zatvoriť vlastne tagy. 325 00:14:13,200 --> 00:14:18,400 A vždy je potrebné zavrieť tagy, ktoré sme otvorili. 326 00:14:18,400 --> 00:14:23,170 >> A máme tu niektoré z typov vecí najbližších, ktoré chceme mať. 327 00:14:23,170 --> 00:14:26,580 Takže máme, napríklad, názov CS50. 328 00:14:26,580 --> 00:14:31,980 A potom sme vlastne môžete prepojiť štýlov 329 00:14:31,980 --> 00:14:34,030 že definuje, ako štýl naše webové stránky. 330 00:14:34,030 --> 00:14:35,650 To je CSS. 331 00:14:35,650 --> 00:14:39,320 Chystáme sa ísť cez to v ďalší pár snímkov rovnako. 332 00:14:39,320 --> 00:14:42,580 >> V tele, nastavíme niektoré triedy a ID. 333 00:14:42,580 --> 00:14:45,860 A ako pripomienka, znovu, ID sú jedinečné a triedy 334 00:14:45,860 --> 00:14:47,390 možno priradiť k viac položiek. 335 00:14:47,390 --> 00:14:52,110 A to práve znamená, že môžeme použiť triedy a ID 336 00:14:52,110 --> 00:14:55,860 v rámci druhej structures-- tak, pre Napríklad v rámci CSS súborov alebo štýlu 337 00:14:55,860 --> 00:15:00,940 sheets-- sa odkazovať na zvláštne prvky a v podstate hovoria, že chceme štýl 338 00:15:00,940 --> 00:15:03,280 alebo navrhnúť nejaký prvok nejakým konkrétnym spôsobom. 339 00:15:03,280 --> 00:15:06,440 A máme na mysli im ich ID a triedy. 340 00:15:06,440 --> 00:15:09,870 A môžeme tiež odkazovať na rôzne veci podľa tagov rovnako, 341 00:15:09,870 --> 00:15:13,830 ale ID a triedy nám len dať nejaké všestrannosť a čo konkrétne my 342 00:15:13,830 --> 00:15:15,850 chcete odkázať. 343 00:15:15,850 --> 00:15:19,620 >> Takže len príklad. 344 00:15:19,620 --> 00:15:22,730 Môžeme opäť v rámci súbor CSS, kde sme 345 00:15:22,730 --> 00:15:25,770 chcete definovať niektoré style-- takže farby, typ písma, 346 00:15:25,770 --> 00:15:30,340 a tak podobne that-- môžeme definovať štýl pre telo. 347 00:15:30,340 --> 00:15:32,640 Tak, že by ju definujú pre celé telo tag. 348 00:15:32,640 --> 00:15:36,160 Ale potom sa môžeme tiež definovať štýl pre #title. 349 00:15:36,160 --> 00:15:40,390 A opäť sa hashtag sa vzťahuje k nášmu ID a dot odkazuje na našej triedy. 350 00:15:40,390 --> 00:15:44,760 >> A potom sa pre .info, sme môžete tiež nastaviť niektoré atribúty. 351 00:15:44,760 --> 00:15:49,750 A opäť, keď sa vrátime, sme mali triedy nazvanej info a náš titul ID. 352 00:15:49,750 --> 00:15:53,422 A my môžeme vidieť, že hovoríme ktoré im #title a .info. 353 00:15:53,422 --> 00:15:55,380 Divákov: Povedal by ste, mriežka [? prijíma ma? ?] 354 00:15:55,380 --> 00:15:55,725 MARIA Zlatkov: Sorry? 355 00:15:55,725 --> 00:15:58,120 Divákov: Povedal by ste, mriežka [? prijíma ma? ?] 356 00:15:58,120 --> 00:16:01,400 MARIA Zlatkov: hashtag znamená ID, takže #title 357 00:16:01,400 --> 00:16:07,890 sa týka akýchkoľvek prvkov majú toto ID s názvom titulu. 358 00:16:07,890 --> 00:16:10,735 A potom dot odkazuje na triedu. 359 00:16:10,735 --> 00:16:14,590 Takže .info sa odkazuje na tento prvok preto, že má informácie triedy. 360 00:16:14,590 --> 00:16:15,090 Áno. 361 00:16:15,090 --> 00:16:17,905 >> Divákov: Prečo vás odlíšiť je v HTML? 362 00:16:17,905 --> 00:16:20,985 Prečo hovoríte, niektoré veci sú ID a niektoré veci sú triedy? 363 00:16:20,985 --> 00:16:22,610 MARIA Zlatkov: To je len na vás-- 364 00:16:22,610 --> 00:16:24,151 HANNAH Blumberg: Zopakujte otázku. 365 00:16:24,151 --> 00:16:25,370 MARIA Zlatkov: Oh, prepáč. 366 00:16:25,370 --> 00:16:29,480 Prečo rozlišujeme určité prvky ako ID a ďalšími prvkami, ako sú triedy? 367 00:16:29,480 --> 00:16:34,760 Je to len preto, že je to naozaj často výber designu. 368 00:16:34,760 --> 00:16:38,520 To vám dáva veľa všestrannosť v tom, že 369 00:16:38,520 --> 00:16:43,250 schopný povedať, že som chcem túto konkrétne položky mať toto ID, pretože chcú 370 00:16:43,250 --> 00:16:45,300 urobiť veľa vecí s ním, a ja som len 371 00:16:45,300 --> 00:16:50,010 chcete definovať štýl, určitý štýl alebo farbu bez ohľadu na túto položku. 372 00:16:50,010 --> 00:16:52,630 A spôsob, ako to urobiť, je jednoducho dávať to ID. 373 00:16:52,630 --> 00:16:55,060 >> A potom, ak chcem mať niekoľko rôznych položiek 374 00:16:55,060 --> 00:16:58,940 ktoré majú, že miesto ísť a nastavenie their-- 375 00:16:58,940 --> 00:17:03,840 namiesto toho, robiť ho tag, pretože by tag 376 00:17:03,840 --> 00:17:07,369 nastaviť bunku pre celý tag pre každú dobu sa používa, že tag, 377 00:17:07,369 --> 00:17:09,740 môžete nastaviť triedu na viacerých položiek. 378 00:17:09,740 --> 00:17:15,109 A potom už len prístup k danej triede a hovoriť Chcem štýle s triedu, ktorá cestu. 379 00:17:15,109 --> 00:17:17,579 >> A opäť, trieda môže byť viac rôznych položiek 380 00:17:17,579 --> 00:17:21,150 a ID musí byť unikátne. 381 00:17:21,150 --> 00:17:21,849 Veľké otázky. 382 00:17:21,849 --> 00:17:25,339 Nejaké ďalšie otázky? 383 00:17:25,339 --> 00:17:26,220 OK, úžasné. 384 00:17:26,220 --> 00:17:30,680 385 00:17:30,680 --> 00:17:35,330 Opäť platí, že je to, ako sa tieto voliča sú spomenuté v CSS, s hashtag, 386 00:17:35,330 --> 00:17:40,031 s bodkou, alebo bez ničom priradenie štýl nejakého tagu, 387 00:17:40,031 --> 00:17:40,530 ako telo. 388 00:17:40,530 --> 00:17:43,500 389 00:17:43,500 --> 00:17:47,860 A máme tu všeobecný syntax, ako sa to robí. 390 00:17:47,860 --> 00:17:52,830 391 00:17:52,830 --> 00:17:55,680 >> Ak chcete zopakovať niektoré najlepšie postupy pre HTML a CSS, 392 00:17:55,680 --> 00:17:59,170 musíme znova, zatvorte všetky značky HTML, ktoré sme otvorené. 393 00:17:59,170 --> 00:18:03,950 A to, čo sme vás odporúča urobiť pre vaše záverečných prác, 394 00:18:03,950 --> 00:18:10,560 ako aj pre CS50 financie, je, aby sa istí, že všetky vaše HTML potvrdzuje. 395 00:18:10,560 --> 00:18:12,920 A to urobil s W3 Validator. 396 00:18:12,920 --> 00:18:16,940 >> A potom to, čo sme robili a to, čo odporúčame robiť 397 00:18:16,940 --> 00:18:19,790 oddeľuje štýl, takže CSS z HTML značky. 398 00:18:19,790 --> 00:18:24,210 Takže všetko, čo sa týka ako vaša stránka bude vizuálne vyzerať 399 00:18:24,210 --> 00:18:27,330 a ako to bude upravený by mal ísť do CSS dokumentu. 400 00:18:27,330 --> 00:18:33,880 A potom sa vaše značky hovoriť, ako sa veci sú vo vzťahu k sebe navzájom, je HTML, 401 00:18:33,880 --> 00:18:37,550 a to by malo ísť dovnútra z vašich dokumentov HTML. 402 00:18:37,550 --> 00:18:38,590 Nejaké otázky? 403 00:18:38,590 --> 00:18:39,226 MHM. 404 00:18:39,226 --> 00:18:42,628 >> Divákov: Čo presne sa deje na s validáciu stránky 405 00:18:42,628 --> 00:18:47,945 keď sme potvrdzovanie HTML, že [nepočuteľný] vytvoril? 406 00:18:47,945 --> 00:18:49,850 >> MARIA Zlatkov: Takže what--, že ty. 407 00:18:49,850 --> 00:18:53,020 Takže čo presne sa deje Na stránke s validáciou 408 00:18:53,020 --> 00:18:55,570 a prečo musíme urobiť, že? 409 00:18:55,570 --> 00:18:59,180 V podstate, musíme k tomu, že pretože mnoho časov, váš prehliadač, 410 00:18:59,180 --> 00:19:01,390 ak nechcete uzavrieť tag alebo niečo také, 411 00:19:01,390 --> 00:19:05,680 Váš prehliadač je stále na vykreslenie stránku a môže stále fungovať, 412 00:19:05,680 --> 00:19:10,840 ale to je najlepšia prax, aby sa uistil, že ste opäť zavrel všetky svoje značky, 413 00:19:10,840 --> 00:19:13,190 že všetky vaše prvky sú tak, že by mali byť, 414 00:19:13,190 --> 00:19:18,470 a v podstate, že je touto konvencie, ktoré sú prednastavené. 415 00:19:18,470 --> 00:19:21,970 >> Je to opäť, len vec, ktorú by ste mali 416 00:19:21,970 --> 00:19:24,040 je naučiť sa robiť, na rozdiel od mať 417 00:19:24,040 --> 00:19:25,696 nedbalejší kód a tak podobne. 418 00:19:25,696 --> 00:19:26,688 Jo. 419 00:19:26,688 --> 00:19:27,680 Oh, prepáč. 420 00:19:27,680 --> 00:19:29,221 Myslel som, že zvyšovanie ruku. 421 00:19:29,221 --> 00:19:31,240 Publikum: Nie, len som [nepočuteľných]. 422 00:19:31,240 --> 00:19:33,800 >> MARIA Zlatkov: OK. 423 00:19:33,800 --> 00:19:34,640 >> Divákov: Ďakujem. 424 00:19:34,640 --> 00:19:36,181 >> MARIA Zlatkov: Samozrejme, ďakujem. 425 00:19:36,181 --> 00:19:41,680 Takže znova, deje na tom, ako informácie sa prenáša 426 00:19:41,680 --> 00:19:44,630 a komunikačné modely k prenosu informácií. 427 00:19:44,630 --> 00:19:45,730 TCP / IP. 428 00:19:45,730 --> 00:19:48,600 TCP jednoducho znamená, Prevodovka Control Protocol a IP 429 00:19:48,600 --> 00:19:51,260 odkazuje na internetový protokol. 430 00:19:51,260 --> 00:19:54,275 A to len odkazuje na spôsob akým sú dáta doručená. 431 00:19:54,275 --> 00:19:59,470 432 00:19:59,470 --> 00:20:02,710 >> Ak máme nejaké údaje, ktoré je potrebné doručiť tak vás-- 433 00:20:02,710 --> 00:20:06,770 urobíte žiadosť o nejakom serveri. 434 00:20:06,770 --> 00:20:09,800 Napríklad, keď sme pokuse o prístup k cs50.net, 435 00:20:09,800 --> 00:20:12,420 urobíme žiadosť CS50 servera a my 436 00:20:12,420 --> 00:20:14,720 vidieť, že chceme dostať tento druh informácií. 437 00:20:14,720 --> 00:20:19,294 A potom sa na základe tohto protokolu na to, ako je táto informácia doručená, 438 00:20:19,294 --> 00:20:21,460 server poskytuje informácie späť k nám, klient. 439 00:20:21,460 --> 00:20:25,590 A potom sme schopní zobraziť informácie pre stránku 440 00:20:25,590 --> 00:20:26,390 a potom ju použiť. 441 00:20:26,390 --> 00:20:29,300 442 00:20:29,300 --> 00:20:33,050 >> Takže Hypertext Transfer Protocol je len ďalší protokol alebo nastavenia 443 00:20:33,050 --> 00:20:37,470 dohovorov, ktoré určuje, ako webový prehliadač a webový server 444 00:20:37,470 --> 00:20:38,890 by mali oznamovať. 445 00:20:38,890 --> 00:20:43,730 A to všetko uvedenie spolu, HTTP, opäť, 446 00:20:43,730 --> 00:20:50,960 definuje, ako len to hypertext definované o HTML, ktoré sme pracovali to, 447 00:20:50,960 --> 00:20:59,500 ako to by malo byť dodaný na vás a ako to dáta, ktorá je dodávaná na vás 448 00:20:59,500 --> 00:21:00,540 dostane k vám. 449 00:21:00,540 --> 00:21:05,990 >> A to je dôvod, prečo, ak vy pamätať z triedy, mali sme veľa žiadostí 450 00:21:05,990 --> 00:21:08,970 a mali sme veľa syntaxe pre tieto požiadavky, ktoré sme 451 00:21:08,970 --> 00:21:10,250 ísť cez práve teraz. 452 00:21:10,250 --> 00:21:13,270 Takže znova, keď sme sa poslať požiadavka na server, 453 00:21:13,270 --> 00:21:15,920 musíme definovať niekoľko vecí. 454 00:21:15,920 --> 00:21:18,520 Preto musíme nájsť typ požiadavke, že sme nastavenie. 455 00:21:18,520 --> 00:21:22,180 A opäť, máme, napríklad, GET je jeden typ metódy 456 00:21:22,180 --> 00:21:25,290 že máme v našej žiadosti. 457 00:21:25,290 --> 00:21:31,710 >> A potom HTTP / 1.1 je len Protokol, ktorý používame v súčasnosti. 458 00:21:31,710 --> 00:21:34,224 459 00:21:34,224 --> 00:21:36,890 Väčšinu času, že sa deje do protokolu, že používate. 460 00:21:36,890 --> 00:21:40,290 Takže ak máte dotaz takto na kvíz. 461 00:21:40,290 --> 00:21:43,120 To je konvencie že máme tak ďaleko. 462 00:21:43,120 --> 00:21:46,580 >> Spätné lomítko označuje, aká vecí sme požiada. 463 00:21:46,580 --> 00:21:52,810 Potom, náš hostiteľ je, napríklad, v tomto Prípad, snažíme sa ísť na google.com. 464 00:21:52,810 --> 00:21:57,070 Tak toto je hodnota pre hostiteľa. 465 00:21:57,070 --> 00:21:59,330 Jedná sa o typ žiadosti ktoré by mohli byť zaslané. 466 00:21:59,330 --> 00:22:02,890 >> A potom typ reakcie, ktoré by mohli byť odoslaný, opäť na základe tohto protokolu, 467 00:22:02,890 --> 00:22:05,190 je opäť, HTTP / 1.1. 468 00:22:05,190 --> 00:22:07,150 Tak to je zase verzia protokolu HTTP. 469 00:22:07,150 --> 00:22:09,730 200 OK je len stavový kód. 470 00:22:09,730 --> 00:22:12,860 A to v poriadku, je len fráza na základe tohto stavového kódu. 471 00:22:12,860 --> 00:22:15,520 >> A potom Content-Type Odkazuje na typ 472 00:22:15,520 --> 00:22:20,295 ktorá je vrátená sa vám, že je pre danú webovú stránku, ktorá sa zobrazí 473 00:22:20,295 --> 00:22:22,570 a že vo vašom prehliadači môže spôsobiť neskôr. 474 00:22:22,570 --> 00:22:24,401 A to je text / html. 475 00:22:24,401 --> 00:22:26,660 >> Divákov: Čo to 1.1 znamená? 476 00:22:26,660 --> 00:22:29,910 >> MARIA Zlatkov: To je práve verzia of-- oh, čo 1.1 znamená? 477 00:22:29,910 --> 00:22:37,075 To je len verzia, HTTP Verzia protokolu, ktorý sme používate. 478 00:22:37,075 --> 00:22:37,700 Veľká otázka. 479 00:22:37,700 --> 00:22:38,366 Ďalšie otázky? 480 00:22:38,366 --> 00:22:41,222 481 00:22:41,222 --> 00:22:45,080 >> Divákov: Mohli by ste zhrnúť Content-Type naozaj rýchlo? 482 00:22:45,080 --> 00:22:48,150 >> MARIA Zlatkov: Takže to je to, čo je server. 483 00:22:48,150 --> 00:22:51,020 typ information--, čo je typ obsahu bolo otázky. 484 00:22:51,020 --> 00:22:53,400 A tak, že bol typ informácie, ktoré sa dostanete späť 485 00:22:53,400 --> 00:22:58,200 zo servera, typ Dáta, že prehliadač potom môžu 486 00:22:58,200 --> 00:23:00,604 vykreslenie, ktoré používate. 487 00:23:00,604 --> 00:23:03,020 Divákov: Je to to, čo táto Protokol je ti robiť? 488 00:23:03,020 --> 00:23:03,390 MARIA Zlatkov: Sorry? 489 00:23:03,390 --> 00:23:05,380 Divákov: Je to to, čo protokol povedať? 490 00:23:05,380 --> 00:23:05,915 MARIA Zlatkov: The protocol-- 491 00:23:05,915 --> 00:23:07,940 Publikum: --what Content-Type je alebo what-- 492 00:23:07,940 --> 00:23:12,040 MARIA Zlatkov: Protokol je založený on-- čo je protokol hovorím? 493 00:23:12,040 --> 00:23:16,070 Je to presne tak, ako že tieto informácie 494 00:23:16,070 --> 00:23:18,610 sa vydal na vás na báze o aký druh protokolu 495 00:23:18,610 --> 00:23:21,830 bola táto informácia sa dostal doručený späť k vám. 496 00:23:21,830 --> 00:23:23,500 Dáva to zmysel druh? 497 00:23:23,500 --> 00:23:28,320 498 00:23:28,320 --> 00:23:30,070 HANNAH Blumberg: Vy môže myslieť protokolu 499 00:23:30,070 --> 00:23:33,300 ako je-- Myslím, že profesor Malan popisoval to 500 00:23:33,300 --> 00:23:36,910 v triede ako niečo ako je-- to je ekvivalent ľudskej handshaking. 501 00:23:36,910 --> 00:23:44,930 Povedzme, rovnako ako, hej, ja som žiadosť a ja vedieť, ako zaobchádzať HTTP verzie 1.1. 502 00:23:44,930 --> 00:23:48,770 A potom server hovorí, oh, OK, já-- a obaja existujú. 503 00:23:48,770 --> 00:23:51,337 Tiež viem, ako sa vysporiadať s HTTP / 1.1. 504 00:23:51,337 --> 00:23:53,170 A ja idem dať vám späť nejaký obsah. 505 00:23:53,170 --> 00:23:56,230 V tomto prípade, bude to byť typu text / html. 506 00:23:56,230 --> 00:23:58,480 Takže je to trochu len spôsob, z nich communicating-- 507 00:23:58,480 --> 00:24:00,480 >> MARIA Zlatkov: Je to len potvrdzujúci, že ste 508 00:24:00,480 --> 00:24:03,290 a to ako po rovnakej Protokol a to ako 509 00:24:03,290 --> 00:24:06,620 klient a tak server-- Váš prehliadač a server-- 510 00:24:06,620 --> 00:24:09,280 trochu viem, čo ste hovorí, a majú 511 00:24:09,280 --> 00:24:12,557 konvencie pre odovzdávanie v dátach. 512 00:24:12,557 --> 00:24:17,022 >> Divákov: Takže Content-Type part-- Content-Type text / html-- to je 513 00:24:17,022 --> 00:24:18,521 Samostatnou časťou rovnakej správe? 514 00:24:18,521 --> 00:24:20,509 Alebo je to súčasťou povedzme, 200? 515 00:24:20,509 --> 00:24:22,010 Má 200 Povedzte im, že alebo je-- 516 00:24:22,010 --> 00:24:23,770 >> MARIA Zlatkov: 200 hovorí, že to všetko prebehlo v poriadku. 517 00:24:23,770 --> 00:24:27,900 A potom typ obsahu je niečo ako Samostatnou časťou rovnakej správe, 518 00:24:27,900 --> 00:24:34,274 a hovoriť, čo mám Vrátený má tento typ text / html. 519 00:24:34,274 --> 00:24:35,690 Je to len dávať viac informácií. 520 00:24:35,690 --> 00:24:38,700 521 00:24:38,700 --> 00:24:39,995 Mať niečo dodať? 522 00:24:39,995 --> 00:24:40,495 OK. 523 00:24:40,495 --> 00:24:43,590 524 00:24:43,590 --> 00:24:46,530 >> Nejaké ďalšie otázky o tom myslíte? 525 00:24:46,530 --> 00:24:48,370 Úžasné. 526 00:24:48,370 --> 00:24:54,070 Takže niektoré ďalšie HTTP stavy, ktoré by sme sa mohli dostať navyše k 200 OK, 527 00:24:54,070 --> 00:24:59,500 Tie, ktoré sme videli možno možno veľa, sú 403 a 404. 528 00:24:59,500 --> 00:25:05,190 Takže 404, ak ste sa snažili Prístup niečo, čo neexistuje. 529 00:25:05,190 --> 00:25:10,460 Tak napríklad vo vašej CS50 Financie psets, 530 00:25:10,460 --> 00:25:15,640 ak ste boli rendering quote.html a ste nemali tento súbor, 531 00:25:15,640 --> 00:25:19,740 ale namiesto toho ste mali quote.php, že by malo za následok 404 Not Found 532 00:25:19,740 --> 00:25:21,600 pretože súbor nemusí existovať. 533 00:25:21,600 --> 00:25:25,690 >> Pre 403 zakázané, že odkazuje na oprávnenie. 534 00:25:25,690 --> 00:25:31,150 Takže ak nejaký súbor nie je čitateľné svet, by ste mohli dostať 403 sa vrátil. 535 00:25:31,150 --> 00:25:34,510 536 00:25:34,510 --> 00:25:37,810 Niektorí iní, že by vás mohli get-- 301, Trvalo presunuté; 537 00:25:37,810 --> 00:25:41,300 302, nájdené; 304, Modified; 400, Bad Request; 538 00:25:41,300 --> 00:25:47,330 a potom Vnútorná chyba servera pre 500 a 503, Služba nie je k dispozícii. 539 00:25:47,330 --> 00:25:48,140 Áno. 540 00:25:48,140 --> 00:25:51,490 >> Divákov: Will sme očakávali pamätať všetky tie stavy? 541 00:25:51,490 --> 00:25:53,739 MARIA Zlatkov: Ja by som mal je na ťahák. 542 00:25:53,739 --> 00:25:55,146 [SMIECH] 543 00:25:55,146 --> 00:25:59,954 Divákov: Sme očakáva viem, čo spúšťa každý z nich? 544 00:25:59,954 --> 00:26:00,995 MARIA Zlatkov: Sú? 545 00:26:00,995 --> 00:26:03,870 HANNAH Blumberg: Pre tých, ktoré sme spustiť into-- takže otázka was-- 546 00:26:03,870 --> 00:26:08,010 MARIA Zlatkov: Sú Očakáva sa, vedieť, čo každé z týchto stave 547 00:26:08,010 --> 00:26:09,330 kódy by mohli byť vyvolané? 548 00:26:09,330 --> 00:26:13,240 Takže pre tých, ktoré sme použili a narazil na, povedal by som, že áno. 549 00:26:13,240 --> 00:26:16,610 Takže sme určite videli 200 OK a prednášal ju psets. 550 00:26:16,610 --> 00:26:19,071 Videli sme 403, 404. 551 00:26:19,071 --> 00:26:20,550 Pre tých ostatných? 552 00:26:20,550 --> 00:26:22,690 >> HANNAH Blumberg: Rád by som hovoria, 500 sa zdá spravodlivé hry. 553 00:26:22,690 --> 00:26:23,330 >> MARIA Zlatkov: 500, jo. 554 00:26:23,330 --> 00:26:24,246 >> HANNAH Blumberg: Jo. 555 00:26:24,246 --> 00:26:27,006 Stačí mať všeobecný pocit z toho, čo je spôsobuje. 556 00:26:27,006 --> 00:26:28,880 A tiež práve nimi mená, môžete druh 557 00:26:28,880 --> 00:26:32,890 rovnako ako vykonať kvalifikovaný odhad ako k čomu vlastne spôsobilo ich. 558 00:26:32,890 --> 00:26:36,919 Napríklad presunúť natrvalo, pravdepodobne Súbor bol presunutý natrvalo. 559 00:26:36,919 --> 00:26:39,328 >> Divákov: Ale na predchádzajúcu skúška, tam bol tak 560 00:26:39,328 --> 00:26:41,050 ako si nás očakávať, že to odpovedať? 561 00:26:41,050 --> 00:26:42,883 >> HANNAH Blumberg: To stálo za nula bodov. 562 00:26:42,883 --> 00:26:45,870 Otázka na 418 na kanvicu je technicky stav HTTP, 563 00:26:45,870 --> 00:26:47,090 ale stálo to za nula bodov. 564 00:26:47,090 --> 00:26:48,320 Je zrejmé, že nie ste Očakáva sa, že ich poznáme. 565 00:26:48,320 --> 00:26:49,670 >> Divákov: Je to skutočný? 566 00:26:49,670 --> 00:26:51,970 >> HANNAH Blumberg: Je to skutočný človek, ale to nič neznamená. 567 00:26:51,970 --> 00:26:52,700 Je to len vtip. 568 00:26:52,700 --> 00:26:55,480 569 00:26:55,480 --> 00:26:57,010 Internetové ľudia sú smiešne. 570 00:26:57,010 --> 00:26:59,680 >> MARIA Zlatkov: Veľké otázky, chlapi. 571 00:26:59,680 --> 00:27:01,452 Nejaké ďalšie otázky? 572 00:27:01,452 --> 00:27:04,891 >> Divákov: Čo je vnútorná chyba serveru? 573 00:27:04,891 --> 00:27:06,640 MARIA Zlatkov: Vnútorné chyba servera len 574 00:27:06,640 --> 00:27:10,050 Znamená to, že ste boli schopný komunikovať 575 00:27:10,050 --> 00:27:13,400 so serverom z nejakého dôvodu. 576 00:27:13,400 --> 00:27:15,400 Takže to nie je nevyhnutne niečo, čo má čo do činenia 577 00:27:15,400 --> 00:27:19,170 s klientom, alebo niečo také. 578 00:27:19,170 --> 00:27:22,170 Neviem o žiadnej konkrétnej príklad že sme prešli na vysvetlenie, 579 00:27:22,170 --> 00:27:23,000 ale jo. 580 00:27:23,000 --> 00:27:23,250 >> HANNAH Blumberg: Iste. 581 00:27:23,250 --> 00:27:25,625 Tak napríklad, ako je či to že ste pracovali na mashup 582 00:27:25,625 --> 00:27:30,440 a server Google klesli pre niektoré Dôvodom, výpadok prúdu, povedzme. 583 00:27:30,440 --> 00:27:33,400 To by byť interný server Chyba, alebo nejaký druh of-- ťa rád 584 00:27:33,400 --> 00:27:34,630 by sa nedostal odpoveď späť. 585 00:27:34,630 --> 00:27:35,260 >> MARIA Zlatkov: Jo. 586 00:27:35,260 --> 00:27:37,050 Je to len, keď ste schopný komunikovať 587 00:27:37,050 --> 00:27:40,299 so serverom z nejakého dôvodu nasledujúcich dôvodov to ísť dole, alebo nejaký iný dôvod. 588 00:27:40,299 --> 00:27:44,430 589 00:27:44,430 --> 00:27:47,690 Takže skákanie do PHP. 590 00:27:47,690 --> 00:27:49,930 PHP, na rozdiel od HTML, je programovací jazyk. 591 00:27:49,930 --> 00:27:54,820 A my sme začali používať, pretože je to veľmi užitočné pre vývoj webových aplikácií. 592 00:27:54,820 --> 00:27:56,940 >> Prvýkrát sme sa používal to v CS50 financií. 593 00:27:56,940 --> 00:28:02,240 A to v podstate pomáha nám priviesť spolu toto značenie, dizajn, 594 00:28:02,240 --> 00:28:07,460 a ako vlastne používať údaje zobraziť veci na webovej stránke. 595 00:28:07,460 --> 00:28:11,870 Takže PHP samo o sebe znamená, že PHP Hypertext Preprocessor, 596 00:28:11,870 --> 00:28:15,360 takže je to rekurzívne backnorym sám. 597 00:28:15,360 --> 00:28:22,330 A otvorenie značky pre PHP sme ľavý a pravú šípku s otáznikmi 598 00:28:22,330 --> 00:28:23,060 a php. 599 00:28:23,060 --> 00:28:25,890 >> Takže sme už videli veľa to. 600 00:28:25,890 --> 00:28:29,150 Teraz sme to len tak prejsť niektoré základné veci o tom. 601 00:28:29,150 --> 00:28:32,280 Takže s PHP, premenné názvy začínajú znakom dolára. 602 00:28:32,280 --> 00:28:35,660 Nechceme špecifikovať, znovu, typ premenná ešte. 603 00:28:35,660 --> 00:28:38,450 Rovnako ako sme to urobili s C, nepotrebujeme k tomu, že. 604 00:28:38,450 --> 00:28:41,670 605 00:28:41,670 --> 00:28:44,490 >> Môžeme robiť veľa rôznych veci s premennými. 606 00:28:44,490 --> 00:28:47,750 Môžeme dať dohromady tým, že je zřetězením 607 00:28:47,750 --> 00:28:52,900 s tečkové notácie, ktorý sme nemohli urobiť v C znova. 608 00:28:52,900 --> 00:28:57,490 Opäť platí, že máme trochu väčšiu univerzálnosť s PHP, pokiaľ ide o premenných. 609 00:28:57,490 --> 00:29:00,080 Opäť platí, že nemáme mať hlavnú funkciu. 610 00:29:00,080 --> 00:29:03,370 >> A PHP je interpretovaný na rozdiel od skompilovaný, 611 00:29:03,370 --> 00:29:09,970 Tak, ako sme sa vytvoriť pre súbory C, nemusíme robiť, že pre PHP. 612 00:29:09,970 --> 00:29:15,440 Ale skôr tak, že jazyka je prevádzkovaný sám o sebe, je interpretovaný. 613 00:29:15,440 --> 00:29:18,550 A potom voľne zadali jednoducho znamená, že my 614 00:29:18,550 --> 00:29:22,490 Nemusíte špecifikovať premennú typ, a typy premenných 615 00:29:22,490 --> 00:29:25,415 sa rozumie za behu. 616 00:29:25,415 --> 00:29:29,185 >> Divákov: Ale to, čo ste urobil mysli dot konkatenace? 617 00:29:29,185 --> 00:29:30,060 MARIA Zlatkov: Iste. 618 00:29:30,060 --> 00:29:37,660 Keď chceme dať veci together-- takže ak by sme mali nejaké premenné 619 00:29:37,660 --> 00:29:41,500 mal hodnotu 3 a my sme mali ďalšie premenná, ktorá mala hodnotu reťazca, 620 00:29:41,500 --> 00:29:45,920 by sme mohli dať dohromady premenné tým, že bodku medzi nimi 621 00:29:45,920 --> 00:29:46,970 a zreťazenie je. 622 00:29:46,970 --> 00:29:52,670 Alebo by sme mohli vytvoriť premenná s názvom názov 623 00:29:52,670 --> 00:29:56,900 a dať to dokopy zreťazenie dvoch reťazcov. 624 00:29:56,900 --> 00:30:00,680 >> Takže ak sme mali reťazec v double citácie a kladieme bodku za ním, 625 00:30:00,680 --> 00:30:03,660 a potom sme mali ďalšie reťazec, ktorý by vytvorila reťazec úplne. 626 00:30:03,660 --> 00:30:05,242 >> Divákov: OK. 627 00:30:05,242 --> 00:30:06,450 MARIA LOTYŠSKO: Bolo to jasné? 628 00:30:06,450 --> 00:30:07,099 Divákov: Jo. 629 00:30:07,099 --> 00:30:07,890 MARIA Zlatkov: OK. 630 00:30:07,890 --> 00:30:08,766 Áno. 631 00:30:08,766 --> 00:30:11,146 >> Divákov: Keď sa povie vykladať skôr ako skompilovaný, 632 00:30:11,146 --> 00:30:14,160 hovoríte o vás nie musí byť čo najkonkrétnejšie, pokiaľ 633 00:30:14,160 --> 00:30:15,906 ide o PHP v porovnaní s C? 634 00:30:15,906 --> 00:30:18,085 635 00:30:18,085 --> 00:30:20,710 MARIA Zlatkov: Keď hovoríme, vykladať tak, na rozdiel od skompilovaný, 636 00:30:20,710 --> 00:30:21,850 Čo máme na mysli? 637 00:30:21,850 --> 00:30:26,220 Takže to znamená, že nepotrebujeme spustiteľné súbory spustiť PHP. 638 00:30:26,220 --> 00:30:29,870 To znamená, že to beží, ako to chodí. 639 00:30:29,870 --> 00:30:31,650 dáva to zmysel? 640 00:30:31,650 --> 00:30:32,495 Trochu viac. 641 00:30:32,495 --> 00:30:34,620 HANNAH Blumberg: Takže vy môže myslieť na tlmočníka 642 00:30:34,620 --> 00:30:38,980 ako ďalší program, ktorý je zodpovedný pre prechod riadok po riadku pomocou PHP 643 00:30:38,980 --> 00:30:42,745 a vlastne spustením, ako protichodný k zostavovanie to všetko až do binárne. 644 00:30:42,745 --> 00:30:46,050 To nie je v skutočnosti nič neznamená o tom, ako špecifické musíme byť. 645 00:30:46,050 --> 00:30:49,470 Stále potrebujeme byť presné, a nie zabudli bodkočiarka, a uistite sa, 646 00:30:49,470 --> 00:30:51,470 máte znak dolára, a podobné veci. 647 00:30:51,470 --> 00:30:52,240 Dobrá otázka. 648 00:30:52,240 --> 00:30:53,115 >> MARIA Zlatkov: Jo. 649 00:30:53,115 --> 00:30:55,590 Takže riadok po riadku, as na rozdiel od so súbormi C, 650 00:30:55,590 --> 00:30:59,100 musíme celý finále než budeme môcť skutočne spustiť. 651 00:30:59,100 --> 00:31:00,360 To je hlavný rozdiel. 652 00:31:00,360 --> 00:31:02,655 Ale opäť, nemôžeme naozaj menej konkrétne. 653 00:31:02,655 --> 00:31:08,760 654 00:31:08,760 --> 00:31:13,950 Takže pole v PHP predstavujú vlastne objednal mapa. 655 00:31:13,950 --> 00:31:17,550 >> Takže pole pridružených hodnôt ku kľúčom. 656 00:31:17,550 --> 00:31:23,350 Tieto dva spôsoby, ako deklarovať poľa, na základe tejto syntax, 657 00:31:23,350 --> 00:31:26,380 môžeme byť viac explicitný keď hovorí, máme rad 658 00:31:26,380 --> 00:31:31,010 a máme túto key1, ktorá mapuje tento hodnota1, key2, ktorá mapuje hodnota2. 659 00:31:31,010 --> 00:31:34,660 Alebo môžeme len vytvoriť pole , Ktorý obsahuje hodnoty sám 660 00:31:34,660 --> 00:31:38,360 a potom sú kľúče chápať spôsobom. 661 00:31:38,360 --> 00:31:40,000 Akékoľvek otázky na to? 662 00:31:40,000 --> 00:31:42,500 >> Divákov: Čo by kľúče sa v druhom príklade? 663 00:31:42,500 --> 00:31:47,100 664 00:31:47,100 --> 00:31:47,920 0, 1, 2, 3? 665 00:31:47,920 --> 00:31:50,650 666 00:31:50,650 --> 00:31:55,780 >> MARIA Zlatkov: Napríklad, je to len kľúče v tejto nemusí nutne 667 00:31:55,780 --> 00:31:56,550 urobiť zmenu. 668 00:31:56,550 --> 00:32:01,720 Jednoducho definovať, ako je to možné použiť hodnoty vnútri nej. 669 00:32:01,720 --> 00:32:08,660 Takže ak sme mali foreach slučka v PHP, ktorý by 670 00:32:08,660 --> 00:32:14,760 nám umožní prejsť všetky hodnoty, môžeme ísť cez všetky hodnoty, 671 00:32:14,760 --> 00:32:19,570 aj keď sme mali, alebo že nie je definovaný konkrétny kľúč v rámci webu 672 00:32:19,570 --> 00:32:20,820 predchádzajúca syntax. 673 00:32:20,820 --> 00:32:23,460 >> Takže aj tento druh z poľa, mohli by sme ešte 674 00:32:23,460 --> 00:32:26,260 majú slučky foreach že prechádza každý 675 00:32:26,260 --> 00:32:31,240 hodnôt v kľúči v poli. 676 00:32:31,240 --> 00:32:36,180 Takže syntax foreach slučka, začneme s radom. 677 00:32:36,180 --> 00:32:38,720 678 00:32:38,720 --> 00:32:43,900 Táto $ arr premenná je naša skutočná array , Že je definovaná v predchádzajúci snímok 679 00:32:43,900 --> 00:32:47,550 ako hodnota, ktoré doslova ide cez každú z hodnôt, 680 00:32:47,550 --> 00:32:50,122 bez ohľadu na to, či sme mal kľúč, alebo nie. 681 00:32:50,122 --> 00:32:53,080 A potom môžeme niečo urobiť s hodnota vnútri slučky foreach. 682 00:32:53,080 --> 00:32:57,730 Takže znovu, ak sme mali pole takhle tady created-- 683 00:32:57,730 --> 00:33:03,270 takže máme kľúč foo a hodnoty bar, kľúč Baz a hodnotu qux-- 684 00:33:03,270 --> 00:33:09,730 môžeme mať slučky foreach, ktorý prechádza poľa ako na hodnoty kľúča 685 00:33:09,730 --> 00:33:11,900 a potom robiť niečo s kľúčom a / alebo hodnoty. 686 00:33:11,900 --> 00:33:15,980 Ale nie nevyhnutne vždy musí mať foreach slučky, ktorá 687 00:33:15,980 --> 00:33:19,410 prechádza poľom ako kľúčový mapy do hodnoty. 688 00:33:19,410 --> 00:33:26,060 Môžeme ísť cez foreach slučky pole ako hodnotu. 689 00:33:26,060 --> 00:33:28,990 >> HANNAH Blumberg: A myslím, že to-- bola vaša otázka, čo 690 00:33:28,990 --> 00:33:31,229 je implicitný index? 691 00:33:31,229 --> 00:33:31,895 Divákov: Kinda. 692 00:33:31,895 --> 00:33:32,240 MARIA Zlatkov: Oh. 693 00:33:32,240 --> 00:33:33,406 HANNAH Blumberg: Jo, jo. 694 00:33:33,406 --> 00:33:36,150 Takže v podstate, ak nechcete zadať kľúč, to bude 01. 695 00:33:36,150 --> 00:33:37,140 >> MARIA Zlatkov: Jo. 696 00:33:37,140 --> 00:33:41,718 Rovnako ako v C, je to nula indexované ak nechcete zadať kľúč. 697 00:33:41,718 --> 00:33:42,384 Divákov: Ospravedlňujem sa. 698 00:33:42,384 --> 00:33:43,827 Mohli by ste skúsiť hovoriť trochu hlasnejšie? 699 00:33:43,827 --> 00:33:45,270 Mám trochu ťažkosti všetko sluchu. 700 00:33:45,270 --> 00:33:46,478 >> MARIA Zlatkov: Je mi to veľmi ľúto. 701 00:33:46,478 --> 00:33:48,439 Samozrejme. 702 00:33:48,439 --> 00:33:50,230 Tak chceš so mnou ísť cez to znova? 703 00:33:50,230 --> 00:33:51,680 Alebo je tohle-- 704 00:33:51,680 --> 00:33:54,930 Divákov: Tak na predchádzajúcu slide-- pokiaľ môžete jednoducho vrátiť na jednu sekundu. 705 00:33:54,930 --> 00:33:57,313 MARIA Zlatkov: Samozrejme, je mi ľúto. 706 00:33:57,313 --> 00:33:59,237 Divákov: Takže druhý array tu nie je 707 00:33:59,237 --> 00:34:04,135 Zdá sa, že majú hodnotu pre zadanie, druh [? príčina. ?] 708 00:34:04,135 --> 00:34:05,343 MARIA Zlatkov: Dobre, dobre. 709 00:34:05,343 --> 00:34:07,608 Divákov: Tak ako to funguje keď hovoríte, že je to všetko, alebo nič. 710 00:34:07,608 --> 00:34:08,969 Pre mňa, že vyzerá ako a [? foo?] už. 711 00:34:08,969 --> 00:34:10,093 >> MARIA Zlatkov: Jo, jo. 712 00:34:10,093 --> 00:34:12,969 Takže znovu, to je objednať mapa v tomto zmysle 713 00:34:12,969 --> 00:34:15,639 , Že sa rozumie, napríklad indexy 714 00:34:15,639 --> 00:34:20,159 tu je možné chápať ako 0, 1, 2, 3. 715 00:34:20,159 --> 00:34:25,929 Opäť platí, že to majú tí, Indexy je naša ekvivalentná 716 00:34:25,929 --> 00:34:28,980 mať kľúče mapovaných na hodnoty. 717 00:34:28,980 --> 00:34:34,710 Takže ak naše kľúčové bolo 0-- ľúto. 718 00:34:34,710 --> 00:34:36,524 >> HANNAH Blumberg: Nie, Je tu krieda sem. 719 00:34:36,524 --> 00:34:36,929 V skutočnosti je to naozaj pekné. 720 00:34:36,929 --> 00:34:37,460 >> MARIA Zlatkov: To je skvelé. 721 00:34:37,460 --> 00:34:38,260 OK. 722 00:34:38,260 --> 00:34:49,489 Takže znovu, $ arr 0 by bolo kľúč pre hodnotu 1. 723 00:34:49,489 --> 00:34:51,138 0 by byť kľúčom pre hodnotu 1. 724 00:34:51,138 --> 00:34:51,971 Divákov: Je mi to ľúto. 725 00:34:51,971 --> 00:34:53,190 Je to neviditeľné. 726 00:34:53,190 --> 00:34:53,659 >> HANNAH Blumberg: Dobre, nevadí. 727 00:34:53,659 --> 00:34:54,980 Krieda bol zlý nápad. 728 00:34:54,980 --> 00:34:58,030 Beriem to späť. 729 00:34:58,030 --> 00:35:01,425 Môžete si myslieť kľúčov as 0 mapy na hodnotu 1. 730 00:35:01,425 --> 00:35:02,300 MARIA Zlatkov: Jo. 731 00:35:02,300 --> 00:35:04,630 Takže to je 0, to je 1, 2, 3. 732 00:35:04,630 --> 00:35:05,760 Tie môžu byť vaše kľúče. 733 00:35:05,760 --> 00:35:10,020 Môžete si myslieť z nich as-- jo. 734 00:35:10,020 --> 00:35:12,740 A tak namiesto toho, explicitné kľúče, sú 735 00:35:12,740 --> 00:35:17,180 nejako chápané ako indexy začínajúce pri 0 ° C. 736 00:35:17,180 --> 00:35:21,630 737 00:35:21,630 --> 00:35:24,820 Krieda nepomohlo. 738 00:35:24,820 --> 00:35:25,722 Jo. 739 00:35:25,722 --> 00:35:30,914 >> Obecenstvo: pre foreach slučky, Ak by sme chceli zobraziť ako hodnota, 740 00:35:30,914 --> 00:35:33,245 by to jednoducho automaticky index na 0? 741 00:35:33,245 --> 00:35:34,120 MARIA Zlatkov: Jo. 742 00:35:34,120 --> 00:35:35,745 To by prejsť každú z hodnôt. 743 00:35:35,745 --> 00:35:39,130 Divákov: [Nepočuteľné] as 0 alebo by to jednoducho urobiť 0? 744 00:35:39,130 --> 00:35:43,710 >> MARIA Zlatkov: Tie by museli teda ako znak dolára a potom 745 00:35:43,710 --> 00:35:46,266 niektorí názov premennej, hodnota. 746 00:35:46,266 --> 00:35:47,182 Divákov: [Nepočuteľné]. 747 00:35:47,182 --> 00:35:50,048 748 00:35:50,048 --> 00:35:50,964 MARIA Zlatkov: Sorry? 749 00:35:50,964 --> 00:35:52,839 Publikum: Ospravedlňujem sa, že som Len sa snažím spomenúť. 750 00:35:52,839 --> 00:35:57,190 Ako by ste si, že ak to dokážeš automatickej indexácie je len 0 z? 751 00:35:57,190 --> 00:36:00,780 >> MARIA Zlatkov: Tak ako by ste to urobil ak ste nemali konkrétne mená kľúčov? 752 00:36:00,780 --> 00:36:01,710 >> Divákov: Jo. 753 00:36:01,710 --> 00:36:07,820 >> MARIA Zlatkov: Tie by jednoducho define-- len povedať, sami seba ako nejaká mená. 754 00:36:07,820 --> 00:36:17,950 Takže vo vašich psets, vy by mohla pamätať foreach $ riadok $ ako riadky, 755 00:36:17,950 --> 00:36:24,610 sme vytvorili sami túto $ riadok porekadlá chceme prejsť rade, ako $ riadky. 756 00:36:24,610 --> 00:36:28,360 Aj keď sme nemali Tento explicitné $ riadkov definovaný, 757 00:36:28,360 --> 00:36:31,990 mohli by sme jednoducho ísť a hovoria, že toto môže byť náš kľúč, 758 00:36:31,990 --> 00:36:33,615 a jednoducho prejsť každú z hodnôt. 759 00:36:33,615 --> 00:36:37,295 760 00:36:37,295 --> 00:36:41,660 >> Divákov: Takže je hodnota nová premenná vytvárame uložiť [nepočuteľných]? 761 00:36:41,660 --> 00:36:46,820 762 00:36:46,820 --> 00:36:49,990 >> MARIA Zlatkov: Takže to nie je neodmysliteľne nový variabilný. 763 00:36:49,990 --> 00:37:00,310 Je to premenná, ktorá odkazuje na vnútri poľa na každý z nich. 764 00:37:00,310 --> 00:37:02,060 HANNAH Blumberg: Je to nový názov premennej. 765 00:37:02,060 --> 00:37:04,018 MARIA Zlatkov: Jo, je to nový názov premennej, 766 00:37:04,018 --> 00:37:06,680 ale nie je to inherently-- jo. 767 00:37:06,680 --> 00:37:08,950 Je to len nová premenná ktoré môžete urobiť. 768 00:37:08,950 --> 00:37:12,680 Tak, ako sme to urobili robiť $ Rade, ako $ riadky, riadky 769 00:37:12,680 --> 00:37:17,980 bol nový názov premenné, ktoré sme mohol vytvoriť v našej foreach slučke. 770 00:37:17,980 --> 00:37:22,065 Nemusí sa preexist pred tým. 771 00:37:22,065 --> 00:37:25,777 >> Divákov: Mohol si prejsť Logika pre každý, na príklade tam? 772 00:37:25,777 --> 00:37:26,610 MARIA Zlatkov: Mhm. 773 00:37:26,610 --> 00:37:31,240 774 00:37:31,240 --> 00:37:32,080 Oh, prepáč. 775 00:37:32,080 --> 00:37:33,780 Tu je príklad. 776 00:37:33,780 --> 00:37:34,280 Iste. 777 00:37:34,280 --> 00:37:38,950 Takže pre každý tak array-- to znamená, že ísť do tohto poľa 778 00:37:38,950 --> 00:37:43,930 ako kľúč value--, čo sa deje prejsť tohto poľa 779 00:37:43,930 --> 00:37:49,480 a ako prvý ísť a dostať foo sa key foo a hodnota bar. 780 00:37:49,480 --> 00:37:51,570 A potom na druhý iterácii slučky for, 781 00:37:51,570 --> 00:37:55,090 že to bude prejsť a vziať kľúč baz a hodnota qux. 782 00:37:55,090 --> 00:38:00,512 A potom môžete niečo urobiť s jeden z nich alebo oba. 783 00:38:00,512 --> 00:38:03,488 >> Divákov: Takže myšlienka ktoré majú kľúčový bod na hodnotu, 784 00:38:03,488 --> 00:38:07,470 čo ste skončili prístup? 785 00:38:07,470 --> 00:38:10,680 >> MARIA Zlatkov: Aká je idea mať kľúč ukazujúce na hodnotu? 786 00:38:10,680 --> 00:38:16,400 Je to len ďalší konvencie, ďalšie spôsob, ako prechádza poľom 787 00:38:16,400 --> 00:38:22,600 a sú schopní pristupovať buď kľúč alebo hodnotu, alebo oboje a ich použitie. 788 00:38:22,600 --> 00:38:27,100 >> Divákov: Aká je úloha pre nariadiť, že foreach pracuje v? 789 00:38:27,100 --> 00:38:29,250 Takže ak by sme mali pridať prvky do poľa neskôr 790 00:38:29,250 --> 00:38:32,140 by ti, byť prvý z nich zavolal foreach poli, 791 00:38:32,140 --> 00:38:33,750 alebo by to bolo neskôr? 792 00:38:33,750 --> 00:38:37,770 >> MARIA Zlatkov: Takže to, čo je objednávka, že foreach 793 00:38:37,770 --> 00:38:39,210 slučka prechádza pole v? 794 00:38:39,210 --> 00:38:42,220 To prechádza prvý element na posledný prvok, 795 00:38:42,220 --> 00:38:43,400 na poslednú pridaný prvok. 796 00:38:43,400 --> 00:38:48,020 Ak pridáte prvky neskôr, oni odkázaný byť accessed-- prvý prvky by 797 00:38:48,020 --> 00:38:51,410 získať prístup ako prvý prvky poľa, 798 00:38:51,410 --> 00:38:57,620 a potom by som šiel cez každého prvky ako akýsi ordered-- 799 00:38:57,620 --> 00:39:02,930 nie je objednané, ale tak, že ich uvedenie do poľa. 800 00:39:02,930 --> 00:39:06,855 >> Divákov: Takže nové prvky sú pridané neskôr? 801 00:39:06,855 --> 00:39:10,680 Takže oni added-- budú byť posledný z nich v [? iterácie. ?] 802 00:39:10,680 --> 00:39:14,280 >> MARIA Zlatkov: Nové prvky can-- v podstate, keď sú pridané nové prvky, 803 00:39:14,280 --> 00:39:16,520 sa pridali do konca poľa? 804 00:39:16,520 --> 00:39:17,632 >> Divákov: Jo. 805 00:39:17,632 --> 00:39:18,840 MARIA Zlatkov: Myslím, že áno. 806 00:39:18,840 --> 00:39:20,850 Áno. 807 00:39:20,850 --> 00:39:24,330 A potom sa svojím slučky foreach, potom, čo ste pridali nové prvky 808 00:39:24,330 --> 00:39:26,790 a ísť cez ne, nové prvky by 809 00:39:26,790 --> 00:39:30,930 byť accessed-- nového prvku, pokiaľ je to pridaná ako posledná, bolo by byť prístupné ako posledný. 810 00:39:30,930 --> 00:39:34,416 >> Divákov: Môžete len dať príklad niečoho, čo by [nepočuteľných] 811 00:39:34,416 --> 00:39:37,404 s niečím s hodnotou ako [nepočuteľný] alebo hodnoty, 812 00:39:37,404 --> 00:39:38,910 Páči sa mi, ako by ste formátovať, že? 813 00:39:38,910 --> 00:39:39,785 >> MARIA Zlatkov: Iste. 814 00:39:39,785 --> 00:39:42,340 815 00:39:42,340 --> 00:39:46,410 Môžem uviesť príklad toho, čo budeme robiť s hodnotou? 816 00:39:46,410 --> 00:39:52,440 Takže to, čo si chlapci by mohlo byť oboznámení s je, že sme prešli pole 817 00:39:52,440 --> 00:39:55,380 a v podstate tlačený každý z prvkov, 818 00:39:55,380 --> 00:40:00,910 napríklad ako súčasť objednal zoznam alebo niečo, čo. 819 00:40:00,910 --> 00:40:02,674 Dáva to zmysel, alebo chceme to-- 820 00:40:02,674 --> 00:40:04,340 Divákov: Môžeme vytlačte si tieto hodnoty von? 821 00:40:04,340 --> 00:40:13,220 MARIA Zlatkov: Jo, mohli by sme vytlačiť a potom v podstate $ value, pretože v 822 00:40:13,220 --> 00:40:16,570 že konkrétne hodnota, budeme tlač hodnotu vnútri nej. 823 00:40:16,570 --> 00:40:20,150 Takže ak sme boli na našej prvej iteráciu to a my tlačený $ value, 824 00:40:20,150 --> 00:40:23,775 budeme tlačiť bar. 825 00:40:23,775 --> 00:40:27,020 >> Divákov: Sú tu tiež slučky v PHP alebo len foreach slučky? 826 00:40:27,020 --> 00:40:30,430 >> MARIA Zlatkov: Existuje aj pre slučiek v PHP. 827 00:40:30,430 --> 00:40:33,399 A ich logika je väčšinou rovnako ako to, čo ste boli zvyknutí. 828 00:40:33,399 --> 00:40:34,690 Divákov: Takže jeho hodnota je null. 829 00:40:34,690 --> 00:40:35,090 MARIA Zlatkov: Je to ako rovnaký. 830 00:40:35,090 --> 00:40:35,590 Jo. 831 00:40:35,590 --> 00:40:37,747 Divákov: Ja som jednoducho ísť opýtať. 832 00:40:37,747 --> 00:40:39,695 Takže keď ste vyhlásiť poľa, nepotrebujete 833 00:40:39,695 --> 00:40:42,617 povedať, čo veľkosť to bude byť, čo znamená, že môžete len 834 00:40:42,617 --> 00:40:44,417 pridať a odniesť prvky [nepočuteľných]. 835 00:40:44,417 --> 00:40:45,250 MARIA Zlatkov: Jo. 836 00:40:45,250 --> 00:40:45,750 Áno. 837 00:40:45,750 --> 00:40:46,251 Presne tak. 838 00:40:46,251 --> 00:40:48,875 Keď sme sa vyhlásiť poľa, my Nemusíte hovoriť, čo veľkosť to je, 839 00:40:48,875 --> 00:40:51,022 takže môžeme len pridať prvky na to aj neskôr. 840 00:40:51,022 --> 00:40:55,075 841 00:40:55,075 --> 00:40:55,700 Ďalšie otázky? 842 00:40:55,700 --> 00:40:59,870 843 00:40:59,870 --> 00:41:05,950 Takže prinášať PHP a HTML dohromady, to, čo sme seen-- dobre, 844 00:41:05,950 --> 00:41:15,130 Napríklad, v tomto príklade, máme HTML forma, ktorá má vstupné pole. 845 00:41:15,130 --> 00:41:18,830 >> A je vstupné pole len názov a potom má tlačidlo Odoslať. 846 00:41:18,830 --> 00:41:26,040 A keď stlačíte tlačidlo Odoslať Tlačidlo, v našej hello.php súbore, 847 00:41:26,040 --> 00:41:32,130 pretože metóda pre formu je dostať, môžeme pristupovať čo je v názve 848 00:41:32,130 --> 00:41:40,360 tým získať globálny premennú, ktorá je-- syntax pre to je $ _GET. 849 00:41:40,360 --> 00:41:44,520 A potom môžeme získať prístup bez ohľadu na Užívateľ vstup vnútri daného formulára pre názov 850 00:41:44,520 --> 00:41:47,410 zadaním názvu tejto oblasti. 851 00:41:47,410 --> 00:41:51,480 852 00:41:51,480 --> 00:41:55,060 >> Akékoľvek ďalšie otázky alebo akejkoľvek Otázky týkajúce sa tejto konkrétnej príklad? 853 00:41:55,060 --> 00:41:58,275 >> Divákov: Kde je PHP? 854 00:41:58,275 --> 00:41:59,150 MARIA Zlatkov: Tu. 855 00:41:59,150 --> 00:42:01,150 Tak toto je naša otváracia tag pre PHP. 856 00:42:01,150 --> 00:42:01,530 >> Publikum: Áno, jasné. 857 00:42:01,530 --> 00:42:02,363 >> MARIA Zlatkov: Áno. 858 00:42:02,363 --> 00:42:05,320 859 00:42:05,320 --> 00:42:09,609 >> Hannah Blumberg? Odpoveď: = je skratka k tomu je PHP a len ozvena. 860 00:42:09,609 --> 00:42:10,150 Divákov: Oh. 861 00:42:10,150 --> 00:42:10,720 MARIA Zlatkov: Jo, je mi ľúto. 862 00:42:10,720 --> 00:42:12,040 Mal som urobil to jasné. 863 00:42:12,040 --> 00:42:13,759 >> HANNAH Blumberg: Print. 864 00:42:13,759 --> 00:42:16,800 MARIA Zlatkov: Je to proste funkcie ktorý nám umožňuje tlačiť niečo. 865 00:42:16,800 --> 00:42:19,795 866 00:42:19,795 --> 00:42:20,420 Veľká otázka. 867 00:42:20,420 --> 00:42:24,140 868 00:42:24,140 --> 00:42:25,495 Takže going-- áno. 869 00:42:25,495 --> 00:42:31,940 >> Divákov: Je tam bude dosť trochu ruky kódovanie PHP a HTML 870 00:42:31,940 --> 00:42:33,450 na kvíz 1? 871 00:42:33,450 --> 00:42:36,310 872 00:42:36,310 --> 00:42:38,810 MARIA Zlatkov: Tam môže byť slušné množstvo interpretácia 873 00:42:38,810 --> 00:42:43,330 PHP a HTML, nie nevyhnutne ako obrovské množstvo kódovanie, 874 00:42:43,330 --> 00:42:46,960 aj keď budete musieť napísať foreach slučky, aj keď, je pre slučke. 875 00:42:46,960 --> 00:42:49,790 Jedno zo slučiek, ktoré sme pokrytie tu je poctivá hra. 876 00:42:49,790 --> 00:42:51,889 A to je väčšinou to. 877 00:42:51,889 --> 00:42:53,430 HANNAH Blumberg: Ja by som byť pripravený. 878 00:42:53,430 --> 00:42:57,010 Rovnakým spôsobom, že sme vás o to prosil napísať veľa funkcií C na kvíz 0, 879 00:42:57,010 --> 00:42:59,766 Chcel by som byť pripravení robiť To isté v PHP a JavaScript. 880 00:42:59,766 --> 00:43:00,640 MARIA Zlatkov: Jo. 881 00:43:00,640 --> 00:43:03,210 HANNAH Blumberg: Povedal by som, little--, ako že nie sme 882 00:43:03,210 --> 00:43:06,251 bude, aby ste napísať obrovský HTML stránky len preto, že je to trochu 883 00:43:06,251 --> 00:43:08,240 nudné, ale môžete mať dielov. 884 00:43:08,240 --> 00:43:09,310 To je úplne fér hra. 885 00:43:09,310 --> 00:43:11,082 Rovnako ako malý HTML stránky, úplne fér. 886 00:43:11,082 --> 00:43:11,623 Divákov: OK. 887 00:43:11,623 --> 00:43:13,814 Ako sa asi v JavaScripte rovnako? 888 00:43:13,814 --> 00:43:14,730 HANNAH Blumberg: Jo. 889 00:43:14,730 --> 00:43:15,250 JavaScript je fér. 890 00:43:15,250 --> 00:43:15,635 >> MARIA Zlatkov: Jo. 891 00:43:15,635 --> 00:43:16,801 To je úplne fér hra. 892 00:43:16,801 --> 00:43:19,280 HANNAH Blumberg: Dostaneme sa, že v, ako je 10 minút. 893 00:43:19,280 --> 00:43:23,750 >> MARIA Zlatkov: SQL, znovu, Structured Query Language. 894 00:43:23,750 --> 00:43:28,651 To v podstate nám umožňuje spravovať dáta v relačný databázový 895 00:43:28,651 --> 00:43:29,150 systém. 896 00:43:29,150 --> 00:43:31,149 To v podstate znamená, len že máme niekde 897 00:43:31,149 --> 00:43:37,980 ukladať niektoré dáta, že by sme mohli chcieť použitie na internetových stránkach alebo v nejakej inej forme. 898 00:43:37,980 --> 00:43:42,190 A potom sme sa dostať otázky Informácie z našej databázy, 899 00:43:42,190 --> 00:43:44,320 alebo vložiť informácie v nich. 900 00:43:44,320 --> 00:43:47,560 Veľa spoločného ones-- UPDATE, INSERT, SELECT a DELETE. 901 00:43:47,560 --> 00:43:50,790 >> Takže pre UPDATE, to je syntaxe pre aktualizáciu dát v databáze. 902 00:43:50,790 --> 00:43:53,330 903 00:43:53,330 --> 00:43:57,340 Aktualizácia túto tabuľku nazvanú stôl tým, že hovorí SET, 904 00:43:57,340 --> 00:44:04,170 môžeme nastaviť niektoré hodnoty vo všetkých riadkov na rovnej niečo iné. 905 00:44:04,170 --> 00:44:09,410 Takže môžeme tiež určiť niektoré konkrétne položky, ktoré chceme zmeniť 906 00:44:09,410 --> 00:44:11,240 a to môže byť pomocou WHERE. 907 00:44:11,240 --> 00:44:16,380 A môžeme určiť, že chceme len upraviť niektoré riadky, kde dom, 908 00:44:16,380 --> 00:44:19,830 keby sme mali tabuľku študentov a všetci študenti mali dom, 909 00:44:19,830 --> 00:44:24,890 tak by sme len zmeniť niektoré hodnoty kde dom sa rovná Jirchářích 910 00:44:24,890 --> 00:44:25,430 napríklad. 911 00:44:25,430 --> 00:44:29,120 912 00:44:29,120 --> 00:44:31,800 >> Pre INSERT, môžeme vložiť určité hodnoty do tabuľky. 913 00:44:31,800 --> 00:44:35,150 Takže INSERT INTO tabuľky, a potom sa hodnoty, 914 00:44:35,150 --> 00:44:39,080 a potom sa v zátvorkách, špecifikujeme ktoré hodnoty chcete vložiť. 915 00:44:39,080 --> 00:44:43,220 Takže INSERT INTO tabuľky, col1 a COL2, je hodnota VAL1 a hodnota2. 916 00:44:43,220 --> 00:44:48,930 Takže to v podstate vloží nový riadok do tabuľku, ktorá obsahuje hodnoty 1 a 2 917 00:44:48,930 --> 00:44:50,850 V stĺpci 1 a 2. 918 00:44:50,850 --> 00:44:54,760 >> A potom budeme ísť cez rýchly príklad toho, ako to vyzerá 919 00:44:54,760 --> 00:44:56,310 rovnako ako v našej databáze trochu. 920 00:44:56,310 --> 00:44:58,685 Ale to, že som v konečnom dotaz že budeme ísť cez, 921 00:44:58,685 --> 00:45:01,450 SELECT, to nám práve umožňuje k výberu dát z tabuľky 922 00:45:01,450 --> 00:45:03,080 eventuálne používať neskôr. 923 00:45:03,080 --> 00:45:05,830 A spôsob, ako to urobiť, je, že sme stačí uložiť ho do nejakej premennej. 924 00:45:05,830 --> 00:45:07,780 A potom môžeme prípadne znovu použiť. 925 00:45:07,780 --> 00:45:10,260 >> Takže SELECT hviezda znamená vyberte všetky. 926 00:45:10,260 --> 00:45:13,280 To je len skratka pre výber všetkých. 927 00:45:13,280 --> 00:45:19,760 FROM stolu, kde hľadáme pre niektoré špecifické podmienky, 928 00:45:19,760 --> 00:45:22,290 tak kde stĺpec sa rovná niečo, napríklad. 929 00:45:22,290 --> 00:45:24,410 Ak by sme len chceli vybrať všetko z tabuľky, 930 00:45:24,410 --> 00:45:28,400 to len vyberie všetky stĺpce a všetky riadky z tabuľky. 931 00:45:28,400 --> 00:45:32,040 >> A potom DELETE FROM tabuľka WHERE col rovná niečo, 932 00:45:32,040 --> 00:45:36,440 to len odstráni niektoré riadok z nášho stola 933 00:45:36,440 --> 00:45:38,860 kde máme nejaké špecifické podmienky. 934 00:45:38,860 --> 00:45:41,870 V tomto prípade, podmienky sú stĺpec sa rovná niečo. 935 00:45:41,870 --> 00:45:43,460 Takže len rýchly príkladom. 936 00:45:43,460 --> 00:45:49,100 Ak máme túto tabuľku tu a my vložte ju do tabuľky, tieto hodnoty, 937 00:45:49,100 --> 00:45:50,400 že by vloženie nového riadku. 938 00:45:50,400 --> 00:45:56,380 A keby sme mali auto-prírastok, to by len zvýšiť našu ID od 0 do 1 až 2. 939 00:45:56,380 --> 00:46:00,010 >> Ak sme vybrali všetci zo študentov to, Len vráti všetky polia a všetky riadky. 940 00:46:00,010 --> 00:46:02,430 Kde rok je väčšia než alebo sa rovná 2016, 941 00:46:02,430 --> 00:46:04,390 že by jednoducho vráti Hannah a ja. 942 00:46:04,390 --> 00:46:08,360 A potom, ak sme práve zvolená id rok a rok od študentov 943 00:46:08,360 --> 00:46:11,710 kde dom je Cabot dom, že by sa opäť vrátiť Hannah a ja. 944 00:46:11,710 --> 00:46:14,430 >> Potom, ak sme sa ruší od študentov kde názov je presne Rob, 945 00:46:14,430 --> 00:46:16,760 ktoré by odstrániť celý riadok. 946 00:46:16,760 --> 00:46:19,696 A potom, keď sme sa nastaviť meno, UPDATE študenti 947 00:46:19,696 --> 00:46:21,570 SET názov rovná Daven KDE Dom je rovná 948 00:46:21,570 --> 00:46:27,010 Cabot dom, ktorý pôjde do tie riadky a aktualizovať názov. 949 00:46:27,010 --> 00:46:31,470 >> A potom niekoľko dátových typov SQL sú CHAR, VARCHAR, INT, a plavidlo. 950 00:46:31,470 --> 00:46:32,760 Sú to poctivá hra. 951 00:46:32,760 --> 00:46:36,740 Chcel by som ísť znova a uistite sa, že viete, 952 00:46:36,740 --> 00:46:40,930 a mať ich na vašej ťahák, čo každý z týchto znakov, 953 00:46:40,930 --> 00:46:44,140 boli použité pre to, čo ste použili je na svojich psets, 954 00:46:44,140 --> 00:46:48,050 a uistite sa, že ste sa zoznámili a pohodlné s musieť vybrať 955 00:46:48,050 --> 00:46:51,450 z rôznych typov dát vo vašom pset. 956 00:46:51,450 --> 00:46:51,950 Áno. 957 00:46:51,950 --> 00:46:54,300 >> Divákov: Čo to bolo, že tabuľka uložená? 958 00:46:54,300 --> 00:46:57,119 Áno, ak je táto tabuľka uložená? 959 00:46:57,119 --> 00:46:59,160 MARIA Zlatkov: No, práve teraz, to nie je uložené. 960 00:46:59,160 --> 00:47:00,700 V každom prípade, ak je táto tabuľka uložená? 961 00:47:00,700 --> 00:47:04,503 Ale to môže byť uložené v databáze SQL. 962 00:47:04,503 --> 00:47:07,330 >> Divákov: A kde je SQL databázy? 963 00:47:07,330 --> 00:47:11,200 V počítači, online Niekde, server? 964 00:47:11,200 --> 00:47:15,000 >> MARIA Zlatkov: To môže byť počet rôznych vecí. 965 00:47:15,000 --> 00:47:19,690 >> HANNAH Blumberg: sme prepojený s SQL tabuľky väčšinou s phpMyAdmin. 966 00:47:19,690 --> 00:47:22,060 A tak by sme mohli požiadať server uložiť je pre nás. 967 00:47:22,060 --> 00:47:23,830 Mohli by sme ich uložiť na vlastnom počítači. 968 00:47:23,830 --> 00:47:27,950 >> MARIA Zlatkov: Záleží len na ako chcete, aby to pre seba. 969 00:47:27,950 --> 00:47:30,075 Ale my sme boli skladovanie je, ako bolo uvedené Hannah, 970 00:47:30,075 --> 00:47:31,755 na phpMyAdmin, ktorý je online. 971 00:47:31,755 --> 00:47:36,550 972 00:47:36,550 --> 00:47:39,280 A potom spôsob, akým využívame PHP a SQL, uložíme ho 973 00:47:39,280 --> 00:47:43,450 do nejakej premennej čo sme požiadaný na. 974 00:47:43,450 --> 00:47:48,370 >> Takže ak budeme chcete vybrať všetky z histórie kde USER_ID rovná ID relácie, 975 00:47:48,370 --> 00:47:53,900 že by vybrať všetky riadky pre konkrétnu osobu, ktorá 976 00:47:53,900 --> 00:47:58,327 je zaznamenaná z histórie stôl a triediť ich do radov. 977 00:47:58,327 --> 00:48:00,410 Cool vec je vedieť, je že funkciu dotazu CS50 je 978 00:48:00,410 --> 00:48:02,180 chráni proti SQL injection tagy. 979 00:48:02,180 --> 00:48:07,420 To jednoducho znamená, že dbá na to, vstup, ktorý je zadaný správny 980 00:48:07,420 --> 00:48:09,920 a že osoba, ktorá vstupuje do vstupu 981 00:48:09,920 --> 00:48:15,100 sa nesnaží vstup niektoré druhy škodlivého Kód buď klesnúť naše stoly 982 00:48:15,100 --> 00:48:17,305 alebo odstrániť všetko vnútri našej databáze. 983 00:48:17,305 --> 00:48:20,060 984 00:48:20,060 --> 00:48:23,400 >> Rýchly Prehľad Model model View Controller, 985 00:48:23,400 --> 00:48:27,360 je to len spôsob, ako organizovať a premýšľať o kóde. 986 00:48:27,360 --> 00:48:29,100 Je to opäť, dizajn paradigma. 987 00:48:29,100 --> 00:48:33,380 Znamená to, že sme can-- a je to dobré praxe 988 00:48:33,380 --> 00:48:37,790 na oddelenie jednotlivých častí z nášho kódu a to, čo 989 00:48:37,790 --> 00:48:40,530 ovládanie do týchto troch paradigiem. 990 00:48:40,530 --> 00:48:46,700 >> Takže náš pohľad je najčastejšie naša šablóny, naše dispozície, ako 991 00:48:46,700 --> 00:48:48,260 že sme si stanovili, ako náš kód vyzerá. 992 00:48:48,260 --> 00:48:55,190 To je hlavne naša CSS súborov a spôsob, akým že sme definovali návrh nášho kódu, 993 00:48:55,190 --> 00:48:55,710 v podstate. 994 00:48:55,710 --> 00:48:59,280 Náš regulátor je väčšinou to, čo sme robili s PHP súbory. 995 00:48:59,280 --> 00:49:03,030 Takže znovu, prácu s informácie, ktoré máme 996 00:49:03,030 --> 00:49:06,700 a definovanie ako to informácie sa používajú, 997 00:49:06,700 --> 00:49:10,660 a potom odovzdá túto informáciu a to buď na zobrazenie alebo modelu. 998 00:49:10,660 --> 00:49:13,880 A model, tak, že máme Používam v ktorom bolo naše databázy, 999 00:49:13,880 --> 00:49:17,510 takže kde naše informácie uložený tak, že má niekde 1000 00:49:17,510 --> 00:49:21,490 k životu, a niektorú z kód, ktorý sa vzťahuje na spôsob, akým 1001 00:49:21,490 --> 00:49:25,410 že sme si tieto informácie alebo spôsob, akým môžeme uvedené informácie aktualizuje. 1002 00:49:25,410 --> 00:49:28,940 1003 00:49:28,940 --> 00:49:33,200 >> Takže v modeli MVC, HTTP Žiadosti sú odosielané na webový server. 1004 00:49:33,200 --> 00:49:36,220 Potom sa interpretuje regulátor požiadavka od užívateľa 1005 00:49:36,220 --> 00:49:38,260 a potom overuje vstup užívateľa. 1006 00:49:38,260 --> 00:49:41,580 Je voliteľná, že máme regulátor komunikovať 1007 00:49:41,580 --> 00:49:44,000 s modelom, tak niečo ako našej databáze 1008 00:49:44,000 --> 00:49:47,500 alebo nejaké iné funkcie že relé informácie. 1009 00:49:47,500 --> 00:49:50,340 A nakoniec, regulátor odovzdá informácie na pohľad 1010 00:49:50,340 --> 00:49:52,090 tak, že to môže byť tavené a že môže 1011 00:49:52,090 --> 00:49:55,860 stáva viditeľným na akúkoľvek osobu prístupu na webové stránky. 1012 00:49:55,860 --> 00:49:58,440 1013 00:49:58,440 --> 00:50:01,340 >> Nejaké otázky? 1014 00:50:01,340 --> 00:50:01,840 Úžasné. 1015 00:50:01,840 --> 00:50:04,530 1016 00:50:04,530 --> 00:50:08,469 Takže znovu, model, jeho funkcie, opäť, 1017 00:50:08,469 --> 00:50:11,260 je trvalé uchovávanie informácií, správu a organizáciu dát. 1018 00:50:11,260 --> 00:50:13,890 A to, čo sme videli tak ak je databáza MySQL 1019 00:50:13,890 --> 00:50:16,200 a všetky dátové súbory, ktoré môžu používať. 1020 00:50:16,200 --> 00:50:20,580 >> Pohľad, prezentácia informácií Užívateľ, užívateľské rozhranie, alebo užívateľské rozhranie. 1021 00:50:20,580 --> 00:50:22,350 A príkladom je HTML. 1022 00:50:22,350 --> 00:50:23,950 A potom by sme mohli mať minimálnu PHP. 1023 00:50:23,950 --> 00:50:28,360 Takže pre sláčiky, ktorá iteruje cez dáta, ktoré sú vytlačené 1024 00:50:28,360 --> 00:50:30,720 je súčasťou toho názoru, as na rozdiel od regulátora. 1025 00:50:30,720 --> 00:50:35,660 A potom veľa našich PHP súbory spadajú do kategórie regulátora. 1026 00:50:35,660 --> 00:50:38,410 Je to len spracováva požiadavky užívateľov a získava informácie z modelu. 1027 00:50:38,410 --> 00:50:42,880 1028 00:50:42,880 --> 00:50:45,590 >> Skákanie do dokumentu Object Model, to len 1029 00:50:45,590 --> 00:50:47,700 sa vzťahuje na spôsob, akým HTML dokumenty sú organizované. 1030 00:50:47,700 --> 00:50:51,600 A oni sú organizované do stromu štruktúra, ktorá má hierarchiu. 1031 00:50:51,600 --> 00:50:56,720 Takže ak máme prístup k [nepočuteľných] reprezentácie dokumentu, 1032 00:50:56,720 --> 00:51:02,750 môžeme pracovať s dokumentom, ako sme manipuláciu s objektmi v podstate. 1033 00:51:02,750 --> 00:51:06,630 >> A aby to trochu jasnejšie, keď 1034 00:51:06,630 --> 00:51:10,540 Máme veľa našich rôzne značky reagovať 1035 00:51:10,540 --> 00:51:12,590 sa rôznymi cestami v našom stromu. 1036 00:51:12,590 --> 00:51:17,070 A potom sa pre tento príklad, sme majú počiatočný uzol dokumentu. 1037 00:51:17,070 --> 00:51:20,010 Máme teda naše HTML uzol ktorá rozdeľuje do hlavy a tela. 1038 00:51:20,010 --> 00:51:22,810 Hlava má titul a potom titul obsahuje ahoj, svet. 1039 00:51:22,810 --> 00:51:24,860 A naše telo práve obsahuje ahoj, svet rovnako. 1040 00:51:24,860 --> 00:51:28,700 1041 00:51:28,700 --> 00:51:31,900 >> Takže akékoľvek otázky týkajúce sa niektorý z veci, ktoré sme doteraz na ktoré sa vzťahuje? 1042 00:51:31,900 --> 00:51:35,891 A ak nie, bude Hannah prevziať s JavaScriptom. 1043 00:51:35,891 --> 00:51:36,390 Úžasné. 1044 00:51:36,390 --> 00:51:37,473 >> HANNAH Blumberg: OK, v pohode. 1045 00:51:37,473 --> 00:51:40,980 Ak niečo príde s PHP alebo HTML, alebo niektorý z vecí Maria vzťahuje, 1046 00:51:40,980 --> 00:51:42,700 môžeme vždy pozastaviť. 1047 00:51:42,700 --> 00:51:46,430 Robíme lepšie čas znova, tak úžasné. 1048 00:51:46,430 --> 00:51:48,770 A len preto, aby sa vrátiť veľmi rýchlo na to, 1049 00:51:48,770 --> 00:51:51,010 keď sa pozriete na každý Minuloročné skúška, to 1050 00:51:51,010 --> 00:51:54,120 prichádza either-- tu niektoré HTML, aby tento diagram. 1051 00:51:54,120 --> 00:51:58,380 Alebo tu je to schéma, aby niektoré HTML, takže určite praktizovať to. 1052 00:51:58,380 --> 00:52:01,500 A potom to je jeden zaručené Otázka, ktorá sa môžete dostať pravdu. 1053 00:52:01,500 --> 00:52:02,000 Super. 1054 00:52:02,000 --> 00:52:04,510 Tak poďme hovoriť o JavaScripte a ako je to trochu 1055 00:52:04,510 --> 00:52:09,130 odlišný od jazykov, ako je PHP a C, oba jazyky sme videli predtým. 1056 00:52:09,130 --> 00:52:10,780 Takže číslo jedna, je to voľne zadali. 1057 00:52:10,780 --> 00:52:14,630 To je ako PHP, ale na rozdiel od C. 1058 00:52:14,630 --> 00:52:15,890 >> Je to interpretovaný jazyk. 1059 00:52:15,890 --> 00:52:19,870 Opäť platí, že je ako PHP, na rozdiel od C a to 1060 00:52:19,870 --> 00:52:24,630 sa chystá, aby nám to use-- funguje naozaj dobre s webovými stránkami. 1061 00:52:24,630 --> 00:52:28,350 Bude to nám umožňuje manipulovať obsah a ako to vyzerá, 1062 00:52:28,350 --> 00:52:30,300 a čo to robí. 1063 00:52:30,300 --> 00:52:32,330 >> Budeme vidieť trochu Ajax. 1064 00:52:32,330 --> 00:52:36,140 To nám umožňuje komunikovať asynchrónne s rôznymi servermi 1065 00:52:36,140 --> 00:52:37,950 a získať informácie. 1066 00:52:37,950 --> 00:52:42,820 A to je vec, ktorá naozaj oddeľuje JavaScript z PHP a C 1067 00:52:42,820 --> 00:52:45,590 je to, že je na strane klienta. 1068 00:52:45,590 --> 00:52:49,860 Obaja PHP a C sú zvyčajne na strane servera. 1069 00:52:49,860 --> 00:52:51,960 >> Z väčšej časti, a takmer úplne, čo 1070 00:52:51,960 --> 00:52:53,900 sme videli, aspoň v táto trieda, JavaScript 1071 00:52:53,900 --> 00:52:57,040 pôsobí na strane klienta, čo znamená, že prehliadač je vlastne 1072 00:52:57,040 --> 00:52:58,597 zodpovedný za spustením. 1073 00:52:58,597 --> 00:53:01,180 A to znamená, že my nie je potrebné komunikovať so serverom. 1074 00:53:01,180 --> 00:53:04,380 Takže to znamená, že môže byť oveľa rýchlejší pretože je to vlastne len, že je to Chrome, 1075 00:53:04,380 --> 00:53:10,420 to je Safari, Firefox je to, čo vás používať v skutočnosti spustený váš JavaScript. 1076 00:53:10,420 --> 00:53:12,290 >> Divákov: Čo to asynchrónne znamená? 1077 00:53:12,290 --> 00:53:13,620 >> HANNAH Blumberg: Ach, čo to asynchrónne znamená? 1078 00:53:13,620 --> 00:53:14,250 Veľká otázka. 1079 00:53:14,250 --> 00:53:17,890 Asynchrónne means-- dobre, obsah, v ktorom 1080 00:53:17,890 --> 00:53:22,140 používame to je, OK, vytvárajú webové stránky 1081 00:53:22,140 --> 00:53:23,860 a potrebujeme získať nejaké informácie. 1082 00:53:23,860 --> 00:53:28,250 Tak na príklade mashup, Niektoré informácie, že by sme mohli chcieť 1083 00:53:28,250 --> 00:53:30,580 Je tituly článok. 1084 00:53:30,580 --> 00:53:33,330 Teraz sme could-- jednu možnosť je to synchrónne 1085 00:53:33,330 --> 00:53:37,940 a to znamená, poďme zastaviť, choď si článok, 1086 00:53:37,940 --> 00:53:41,275 ten článok Späť, a potom render, ale to by bolo celkom pomalé. 1087 00:53:41,275 --> 00:53:44,150 To by bolo zlé užívateľské skúsenosti pretože by ste len sedieť 1088 00:53:44,150 --> 00:53:46,630 čaká na niečo reagovať. 1089 00:53:46,630 --> 00:53:50,020 >> Asynchrónne znamená, že budeme aj naďalej sa o našom podnikaní, 1090 00:53:50,020 --> 00:53:52,529 vykresľovanie stránky, a budeme odoslať žiadosť 1091 00:53:52,529 --> 00:53:54,570 Je to niečo ako ísť do stáť v pozadí. 1092 00:53:54,570 --> 00:53:57,610 Myslím, že sme použiť príklad v prednáška volanie Rob a hovorí, 1093 00:53:57,610 --> 00:53:59,980 hej, môžete sa pozrieť toto hore Pre mňa a vrátiť sa ku mne, 1094 00:53:59,980 --> 00:54:02,870 na rozdiel od práve mne čakanie na telefóne. 1095 00:54:02,870 --> 00:54:07,020 Takže asynchrónne znamená, že sa stane V pozadí sa od nás 1096 00:54:07,020 --> 00:54:08,676 paralelne. 1097 00:54:08,676 --> 00:54:10,400 >> Veľká otázka. 1098 00:54:10,400 --> 00:54:11,830 ešte niečo? 1099 00:54:11,830 --> 00:54:12,330 Skvelé. 1100 00:54:12,330 --> 00:54:15,020 Budeme skákať oveľa viac do asynchrónnych požiadaviek s Ajax. 1101 00:54:15,020 --> 00:54:18,287 >> Divákov: Má JavaScript-- Odkiaľ spadnúť s Model-View-Controller? 1102 00:54:18,287 --> 00:54:19,620 HANNAH Blumberg: Veľká otázka. 1103 00:54:19,620 --> 00:54:23,320 Odkiaľ JavaScript pád s Model-View-Controller? 1104 00:54:23,320 --> 00:54:23,930 Hm. 1105 00:54:23,930 --> 00:54:28,350 Myslím, že to môže fall-- takže my zvyčajne 1106 00:54:28,350 --> 00:54:31,340 Páči sa prebiť ju do toho paradigma, ale myslím, že by som povedal, 1107 00:54:31,340 --> 00:54:34,280 OK, takže JavaScriptu v skutočnosti bude umožnenie 1108 00:54:34,280 --> 00:54:37,587 nám zhromaždiť údaje, interpretovať dáta, vlastne robiť 1109 00:54:37,587 --> 00:54:38,920 zmysluplné veci s dátami. 1110 00:54:38,920 --> 00:54:41,100 Týmto spôsobom, je to veľmi podobné ovládanie. 1111 00:54:41,100 --> 00:54:43,900 >> Ale je to tiež bude, aby nám umožňujú zobraziť vecí a tlačové veci. 1112 00:54:43,900 --> 00:54:47,021 Týmto spôsobom, je to veľmi pohľad-podobne. 1113 00:54:47,021 --> 00:54:47,520 Jo. 1114 00:54:47,520 --> 00:54:51,710 Takže je to niečo ako v PHP kde môže byť trochu oboje. 1115 00:54:51,710 --> 00:54:53,330 Dobrá otázka. 1116 00:54:53,330 --> 00:54:55,209 ešte niečo? 1117 00:54:55,209 --> 00:54:56,000 V poriadku, úžasné. 1118 00:54:56,000 --> 00:54:57,120 Pohybujúce sa vpravo pozdĺž. 1119 00:54:57,120 --> 00:54:59,110 >> Tak sa pozrime, príklad o tom, ako môžeme použiť 1120 00:54:59,110 --> 00:55:02,250 JavaScript v jednom z našich webových programov. 1121 00:55:02,250 --> 00:55:05,680 Tak som si to považujú index.html s partiou HTML. 1122 00:55:05,680 --> 00:55:08,800 A vec, ktorú chcem ťa zamerať sa na to tag skript. 1123 00:55:08,800 --> 00:55:13,280 A to hovorí, OK, ja chcem spustiť niektoré JavaScript a tu je miesto, kde to žije. 1124 00:55:13,280 --> 00:55:15,400 Žije vo hello.js. 1125 00:55:15,400 --> 00:55:21,120 >> A veľmi podobne ako CSS, mohli by sme vložiť JavaScript v HTML. 1126 00:55:21,120 --> 00:55:24,000 Prečo by sme mohli chcieť oddeliť to? 1127 00:55:24,000 --> 00:55:24,500 Jo. 1128 00:55:24,500 --> 00:55:25,486 >> Divákov: Ľahšie prepísať? 1129 00:55:25,486 --> 00:55:26,402 >> HANNAH Blumberg: Jo. 1130 00:55:26,402 --> 00:55:28,450 Je to jednoduchšie používať naprieč rôzne webové stránky. 1131 00:55:28,450 --> 00:55:29,980 Udržuje veci čistejšie. 1132 00:55:29,980 --> 00:55:32,090 Je to proste dobré praxe. 1133 00:55:32,090 --> 00:55:32,590 Úžasné. 1134 00:55:32,590 --> 00:55:33,930 Dobrá odpoveď. 1135 00:55:33,930 --> 00:55:36,690 Tak dobre, takže to sa deje aby bol naším index.html. 1136 00:55:36,690 --> 00:55:39,430 A potom tu je naša malinké súbor JavaScript. 1137 00:55:39,430 --> 00:55:42,410 >> A všetko, čo hovorí, že je ostražitý Hello, world. 1138 00:55:42,410 --> 00:55:46,040 Takže čo sa stane, keď je Táto stránka renders-- 1139 00:55:46,040 --> 00:55:49,680 takže ak idete na akejkoľvek webovej stránky to je-- všetko, čo sa bude diať 1140 00:55:49,680 --> 00:55:53,330 Je to bude hovoriť, OK, ja som chystá spustiť tento kód JavaScript. 1141 00:55:53,330 --> 00:55:56,370 A tento kód JavaScript len hovorí upozornenie Hello, world. 1142 00:55:56,370 --> 00:55:59,090 Takže budem si to Priateľská malá pop-up. 1143 00:55:59,090 --> 00:56:00,360 >> V pohode? 1144 00:56:00,360 --> 00:56:04,746 To je niečo ako naša prvá JavaScript programu, naše Hello, world. 1145 00:56:04,746 --> 00:56:07,690 1146 00:56:07,690 --> 00:56:12,190 Poďme sa pozrieť trochu viac o tom, čo syntaxe JavaScriptu vyzerá. 1147 00:56:12,190 --> 00:56:16,330 A konkrétne, poďme porovnať ju s C a PHP, ktoré sme videli predtým. 1148 00:56:16,330 --> 00:56:20,610 >> V JavaScriptu, budeme mať var, názov premennej, a potom 1149 00:56:20,610 --> 00:56:21,690 jeho skutočná hodnota. 1150 00:56:21,690 --> 00:56:26,170 A my neurčíte typ, len rovnako ako v PHP, ale veľmi na rozdiel od C. 1151 00:56:26,170 --> 00:56:28,850 Tak napríklad, keď sme chceli pre uloženie hodnoty 50, 1152 00:56:28,850 --> 00:56:32,490 v C, museli by sme povedať, hej, C, chcem celé číslo, 1153 00:56:32,490 --> 00:56:35,076 Chystám sa to nazvať i, a jeho hodnota je 50. 1154 00:56:35,076 --> 00:56:36,450 V PHP, je to trochu jednoduchšie. 1155 00:56:36,450 --> 00:56:41,880 My hovoríme, hej, ja chcem premennú Zavolal som a jeho hodnota je 50. 1156 00:56:41,880 --> 00:56:45,890 Veľmi podobne, v JavaScript sme hovoria hej, chcem premenná zavolal som, 1157 00:56:45,890 --> 00:56:47,080 jeho hodnota je 50. 1158 00:56:47,080 --> 00:56:52,140 Každý ďalší čas, ktorý som použiť i, nemám potrebu písať var. 1159 00:56:52,140 --> 00:56:53,810 Je to len som od tohto okamihu. 1160 00:56:53,810 --> 00:56:58,660 Rovnakým spôsobom, v C, kde sa akonáhle povieme int i, my stačí použiť i. 1161 00:56:58,660 --> 00:57:00,340 V pohode? 1162 00:57:00,340 --> 00:57:01,800 Dobre. 1163 00:57:01,800 --> 00:57:03,710 >> Presun do slučky, našťastie, tieto takmer 1164 00:57:03,710 --> 00:57:06,720 vyzerať exactly-- Myslím, že sú presne rovnaké ako to, čo 1165 00:57:06,720 --> 00:57:09,799 slučky budú vyzerať v niečo ako C, kde sa vaše pre sláčiky 1166 00:57:09,799 --> 00:57:11,840 bude mať tri parts-- inicializácii, 1167 00:57:11,840 --> 00:57:13,640 podmienka, a aktualizácie. 1168 00:57:13,640 --> 00:57:15,340 Slučka while, to vyzerá presne rovnaký. 1169 00:57:15,340 --> 00:57:16,390 Práve sme dať podmienku. 1170 00:57:16,390 --> 00:57:18,264 >> A robiť, kým slučka, opäť, presne rovnaké. 1171 00:57:18,264 --> 00:57:20,190 Dávame to podmienkou. 1172 00:57:20,190 --> 00:57:24,510 Povedzme, že som chcel opakovať over-- Chcel som urobiť niečo päťkrát. 1173 00:57:24,510 --> 00:57:27,840 V jazyku C, môžeme písať pre init i rovná 0. 1174 00:57:27,840 --> 00:57:30,480 i je menší ako 5, i ++. 1175 00:57:30,480 --> 00:57:34,240 Jediný rozdiel, v JavaScripte, namiesto toho hovorí, int i = 0, 1176 00:57:34,240 --> 00:57:36,820 hovoríme var i = 0. 1177 00:57:36,820 --> 00:57:38,370 Krásne. 1178 00:57:38,370 --> 00:57:41,320 To je jediný rozdiel. 1179 00:57:41,320 --> 00:57:43,200 Akékoľvek otázky týkajúce sa niečo z toho? 1180 00:57:43,200 --> 00:57:44,160 Áno. 1181 00:57:44,160 --> 00:57:48,480 >> Divákov: Takže v PHP, je to rovnaké vec, s výnimkou ale ako premenné? 1182 00:57:48,480 --> 00:57:49,564 Alebo to bol príklad var? 1183 00:57:49,564 --> 00:57:50,480 HANNAH Blumberg: Jo. 1184 00:57:50,480 --> 00:57:52,310 Takže v PHP, bude to byť znak dolára. 1185 00:57:52,310 --> 00:57:59,450 Tak to bude aj $ rovným 0, $ i je menší ako 5, $ i ++. 1186 00:57:59,450 --> 00:58:02,490 Veľká otázka. 1187 00:58:02,490 --> 00:58:04,570 >> Teraz poďme hovoriť o deklarácie funkcie. 1188 00:58:04,570 --> 00:58:07,010 V jazyku C, keď vyhlásil funkcie, dal nám meno 1189 00:58:07,010 --> 00:58:08,490 a dal nám niektoré parametre. 1190 00:58:08,490 --> 00:58:10,670 A na začiatku, sme napísali typ. 1191 00:58:10,670 --> 00:58:12,440 V JavaScript, všetko, čo sme musíte urobiť, je napísať 1192 00:58:12,440 --> 00:58:15,080 funkcia kľúčové slovo hovorí, hej, JavaScript, 1193 00:58:15,080 --> 00:58:16,570 Chystám sa definovanie funkcie. 1194 00:58:16,570 --> 00:58:18,520 >> V tomto prípade, má názov súčet. 1195 00:58:18,520 --> 00:58:20,820 A to trvá dva argumenty, X a Y. 1196 00:58:20,820 --> 00:58:23,280 Všimnite si, že je nám jedno, o typoch x a y. 1197 00:58:23,280 --> 00:58:26,280 A rovnako ako C, my máme tento návrat kľúčové slovo, 1198 00:58:26,280 --> 00:58:29,140 takže môžeme niečo urobiť ako spiatočný x a y. 1199 00:58:29,140 --> 00:58:32,540 >> A teraz zrazu písali sme to prvýkrát funkcie, môžeme použiť súčet kdekoľvek. 1200 00:58:32,540 --> 00:58:34,740 A to je úplne v pohode. 1201 00:58:34,740 --> 00:58:37,530 Jedna naozaj cool vec, o JavaScript, že je veľmi na rozdiel od C 1202 00:58:37,530 --> 00:58:40,770 je to, že funkcie môžu zaobchádzať ako hodnoty. 1203 00:58:40,770 --> 00:58:43,895 Takže môžeme niečo také tu kde som, že som to pokryť up-- 1204 00:58:43,895 --> 00:58:46,400 Zakryl som si var súčet part-- a my sme len povedal 1205 00:58:46,400 --> 00:58:49,850 Funkcia xy rovná sa spiatočná X plus y. 1206 00:58:49,850 --> 00:58:52,140 >> To je to, čo by bol nazývaný anonymné funkcie. 1207 00:58:52,140 --> 00:58:53,920 Je to funkcia bez názvu. 1208 00:58:53,920 --> 00:58:56,290 Vzhľadom k tomu, táto funkcia hovorí suma, bla, bla, bla, 1209 00:58:56,290 --> 00:58:59,340 To by len povedať funkciu. 1210 00:58:59,340 --> 00:59:02,020 Ale teraz, aj keď mám táto anonymný funkcie, 1211 00:59:02,020 --> 00:59:03,630 táto funkcia je naozaj len hodnotu. 1212 00:59:03,630 --> 00:59:05,160 Môžeme to zaobchádzať ako hodnotu. 1213 00:59:05,160 --> 00:59:10,180 >> Takže môžeme uložiť do premennej rovnakého Spôsob, akým mohol uložiť 50 v premennej. 1214 00:59:10,180 --> 00:59:13,870 Takže môžeme povedať, v poriadku, chcem variabilné, je to len súčet, 1215 00:59:13,870 --> 00:59:16,011 a je to práve táto funkcia. 1216 00:59:16,011 --> 00:59:18,760 Takže tieto dve veci sú v skutočnosti robiť presne to isté, 1217 00:59:18,760 --> 00:59:21,576 ale syntax je trochu odlišný a druh zábavné poznámky. 1218 00:59:21,576 --> 00:59:22,076 Jo. 1219 00:59:22,076 --> 00:59:25,548 >> Divákov: Takže ste mohli nazvať funkcia, ktorá bola anonymná tým, že hovorí, 1220 00:59:25,548 --> 00:59:28,244 Suma konzola 2, 5? 1221 00:59:28,244 --> 00:59:29,160 HANNAH Blumberg: Jo. 1222 00:59:29,160 --> 00:59:32,280 Môžete volať to anonymný funkcie rovnakým spôsobom. 1223 00:59:32,280 --> 00:59:33,350 Tie by to súčet (2, 5);. 1224 00:59:33,350 --> 00:59:36,180 1225 00:59:36,180 --> 00:59:38,200 To by bolo úplne v pohode. 1226 00:59:38,200 --> 00:59:41,575 >> Keby som to neurobil var suma rovná funkcie, keď som práve zmazal 1227 00:59:41,575 --> 00:59:45,480 tohle-- Viem, že je na mojej strane, ale predstierať, že vypúšťa tohle-- potom 1228 00:59:45,480 --> 00:59:46,964 táto funkcia je druh jednoducho preč. 1229 00:59:46,964 --> 00:59:49,630 Môžete nikdy znovu použiť, pretože nemáte jeho názov. 1230 00:59:49,630 --> 00:59:53,497 Je ťažké odkazovať na niečo neviete, ako to nazvať. 1231 00:59:53,497 --> 00:59:54,080 Dobrá otázka. 1232 00:59:54,080 --> 00:59:54,580 Jo. 1233 00:59:54,580 --> 00:59:59,580 >> Divákov: Môžete odkazovať sumu v ďalších miest s hodnotou X plus Y? 1234 00:59:59,580 --> 01:00:01,940 >> HANNAH Blumberg: Môžete referencie súčet v okolí 1235 01:00:01,940 --> 01:00:03,360 s hodnotou X plus y? 1236 01:00:03,360 --> 01:00:05,130 Nie som si úplne istý, čo máte na mysli. 1237 01:00:05,130 --> 01:00:10,582 >> Divákov: Takže vaše minulosť semi-anonymný funkcia je súčet je rovný tejto 1238 01:00:10,582 --> 01:00:14,452 Funkcie anonymné, takže súčet Teraz premenná, ktorá vám can-- 1239 01:00:14,452 --> 01:00:15,410 HANNAH Blumberg: Správne. 1240 01:00:15,410 --> 01:00:18,980 Aby súčet je premenná, ale je to actually-- 1241 01:00:18,980 --> 01:00:23,770 aby súčet je premenná, ktorej hodnota funkcie. 1242 01:00:23,770 --> 01:00:27,030 Tak to je funkcia, ktorá je druh podivné veci zabaliť hlavu okolo 1243 01:00:27,030 --> 01:00:29,880 od tej doby sme sa hrať s C a môžete to robiť v C. 1244 01:00:29,880 --> 01:00:32,679 Ale teraz sa môžeme nazývať sa spočítajú Rovnako tak by sme mohli nazvať súčet tu. 1245 01:00:32,679 --> 01:00:33,220 Divákov: OK. 1246 01:00:33,220 --> 01:00:33,970 HANNAH Blumberg: Jo. 1247 01:00:33,970 --> 01:00:34,553 Dobrá otázka. 1248 01:00:34,553 --> 01:00:35,438 Jo. 1249 01:00:35,438 --> 01:00:39,862 >> Divákov: Takže nepoužívajte prototypy v PHP alebo JavaScript? 1250 01:00:39,862 --> 01:00:42,070 HANNAH Blumberg: Nie, my Nemusíte používať prototypy, 1251 01:00:42,070 --> 01:00:43,880 najmä v JavaScripte. 1252 01:00:43,880 --> 01:00:49,380 Takže človek praxe vec zle, že som chcel povedať, že by ste nemali robiť 1253 01:00:49,380 --> 01:00:52,620 ich nemusíte písať var i = 50. 1254 01:00:52,620 --> 01:00:54,840 Dalo by sa jednoducho začať robiť i = 50. 1255 01:00:54,840 --> 01:00:57,490 A bude len aby aj globálnej premennej. 1256 01:00:57,490 --> 01:01:00,550 >> Je to veľmi zlé praxe nikdy nehovor výslovne var i, 1257 01:01:00,550 --> 01:01:01,800 ale je to niečo, čo môžete urobiť. 1258 01:01:01,800 --> 01:01:03,591 Tlmočník nie je bude revať na vás. 1259 01:01:03,591 --> 01:01:05,920 JavaScript je celkom rád, môžete robiť, čo chcete. 1260 01:01:05,920 --> 01:01:09,301 1261 01:01:09,301 --> 01:01:09,800 Oh, prepáč. 1262 01:01:09,800 --> 01:01:10,300 Je tu dva. 1263 01:01:10,300 --> 01:01:12,150 V oranžovej nohavice. 1264 01:01:12,150 --> 01:01:13,190 Choďte do toho. 1265 01:01:13,190 --> 01:01:14,390 >> Publikum: Nie, tie prvé. 1266 01:01:14,390 --> 01:01:16,765 >> Publikum: Nie, ja som len povedať Nemal som svoju ruku. 1267 01:01:16,765 --> 01:01:20,248 1268 01:01:20,248 --> 01:01:20,748 OK. 1269 01:01:20,748 --> 01:01:26,604 Takže ak ste boli volať že prvýkrát, teraz zhrnúť, 1270 01:01:26,604 --> 01:01:29,864 hovoríme, že rovnakým spôsobom, x, y, rovnako ako každý čas? 1271 01:01:29,864 --> 01:01:30,780 HANNAH Blumberg: Jo. 1272 01:01:30,780 --> 01:01:32,572 Takže tieto dve v podstate robia rovnakú vec. 1273 01:01:32,572 --> 01:01:35,113 Divákov: A aká je výhoda použitie jedného alebo druhého? 1274 01:01:35,113 --> 01:01:37,500 HANNAH Blumberg: žiadna výhoda použitie jedno alebo druhé. 1275 01:01:37,500 --> 01:01:40,080 Chcel som vám ukázať dva rôzne časti syntaxe. 1276 01:01:40,080 --> 01:01:42,770 Mnohokrát, kde anonymný Funkcie majú zmysel 1277 01:01:42,770 --> 01:01:48,220 ak je argument na iný funkcia by mala byť funkcia. 1278 01:01:48,220 --> 01:01:50,600 A uvidíme, že v len na druhom mieste s Ajax. 1279 01:01:50,600 --> 01:01:53,577 >> Takže ak to nedávalo žiadny zmysel, uložte ho do zadnej časti hlavy. 1280 01:01:53,577 --> 01:01:55,660 To je miesto, kde anonymný Funkcie môžu byť užitočné 1281 01:01:55,660 --> 01:01:58,284 pretože to nie je naozaj stojí za to dávať to meno, pretože sme len 1282 01:01:58,284 --> 01:01:59,443 bude raz použiť. 1283 01:01:59,443 --> 01:02:00,370 Jo. 1284 01:02:00,370 --> 01:02:03,635 >> Divákov: Ak je x a y neskôr zmeniť na, bude súčet zmení rovnako? 1285 01:02:03,635 --> 01:02:06,510 HANNAH Blumberg: Ak je x a y zmena neskôr, zhrnie zmení rovnako? 1286 01:02:06,510 --> 01:02:08,840 Takže to je vlastne ja myslím, niečo, čo je, 1287 01:02:08,840 --> 01:02:12,260 znova, to jednoducho cíti veľmi odlišné z C. Toto nie je hodnota. 1288 01:02:12,260 --> 01:02:13,620 Nie je to 5. 1289 01:02:13,620 --> 01:02:15,550 Je to len samotná funkcia. 1290 01:02:15,550 --> 01:02:19,110 Takže akonáhle si ho parametre, potom budete skutočne vypočítať hodnotu. 1291 01:02:19,110 --> 01:02:21,193 >> MARIA Zlatkov: A potom môžete volať funkciu 1292 01:02:21,193 --> 01:02:23,272 a používať to, aby si nejakú hodnotu. 1293 01:02:23,272 --> 01:02:24,230 HANNAH Blumberg: Správne. 1294 01:02:24,230 --> 01:02:25,250 Presne tak. 1295 01:02:25,250 --> 01:02:25,863 Jo. 1296 01:02:25,863 --> 01:02:27,946 >> Divákov: Takže ak ste práve uložte ju do premennej, 1297 01:02:27,946 --> 01:02:31,430 ako var x sa rovná súčtu dvoch values-- 1298 01:02:31,430 --> 01:02:32,420 >> HANNAH Blumberg: Jo. 1299 01:02:32,420 --> 01:02:35,320 Takže ste mohli len robiť var súčet sa rovná súčtu dvoch hodnôt. 1300 01:02:35,320 --> 01:02:37,670 Jo. 1301 01:02:37,670 --> 01:02:38,680 Nejaké ďalšie otázky? 1302 01:02:38,680 --> 01:02:39,642 Jo. 1303 01:02:39,642 --> 01:02:42,047 >> Divákov: Ale by to zmiasť sumu a sumu? 1304 01:02:42,047 --> 01:02:45,062 Rovnako ako Ak zavoláte svoje variabilné sumy, by volanie funkcie sumu? 1305 01:02:45,062 --> 01:02:45,895 HANNAH Blumberg: MM. 1306 01:02:45,895 --> 01:02:46,395 Mm. 1307 01:02:46,395 --> 01:02:51,253 Ak ste niečo ako, suma sa rovná súčtu 2, 5? 1308 01:02:51,253 --> 01:02:53,170 >> Divákov: Jo. 1309 01:02:53,170 --> 01:02:56,465 >> HANNAH Blumberg: Verím, že by sa prepísať hodnotu sumy. 1310 01:02:56,465 --> 01:02:59,290 Takže ďalší zaujímavé vec, o JavaScriptu 1311 01:02:59,290 --> 01:03:02,950 je to, že jedna premenná môže trvať na veľa rôznych typov. 1312 01:03:02,950 --> 01:03:03,790 Zlá prax. 1313 01:03:03,790 --> 01:03:06,280 Nemali by ste robiť niečo ako to, čo ste práve povedal. 1314 01:03:06,280 --> 01:03:10,240 >> Ale v C, ak som je nastavený rovná celé číslo, 1315 01:03:10,240 --> 01:03:13,570 vieme, že to nikdy stane reťazec. 1316 01:03:13,570 --> 01:03:15,670 To nie je prípad v JavaScripte. 1317 01:03:15,670 --> 01:03:17,770 Jo, dobrá otázka. 1318 01:03:17,770 --> 01:03:20,151 ešte niečo? 1319 01:03:20,151 --> 01:03:20,650 Dobre. 1320 01:03:20,650 --> 01:03:21,850 Robiť všetko presne na čas. 1321 01:03:21,850 --> 01:03:23,050 Vedenie ísť. 1322 01:03:23,050 --> 01:03:25,200 Dobre. 1323 01:03:25,200 --> 01:03:27,780 >> Ak sa pozrieme na pole v JavaScripte, tu je 1324 01:03:27,780 --> 01:03:30,250 rýchly príklad pole reťazcov. 1325 01:03:30,250 --> 01:03:31,967 A pole môže rásť dynamicky. 1326 01:03:31,967 --> 01:03:33,675 Oni nemajú pevné veľkosti rovnakým spôsobom 1327 01:03:33,675 --> 01:03:37,990 že to robia v C. Môžeme prístup k prvky s len v hranatých zátvorkách. 1328 01:03:37,990 --> 01:03:41,720 >> To vyzerá veľa ako PHP a množstvom ako je C, kde sa môžeme povedať, v tomto prípade, 1329 01:03:41,720 --> 01:03:48,360 keby som chcel slovo JavaScript, urobil by som to sa arr hranatých zátvoriek s 0, 1, 2. 1330 01:03:48,360 --> 01:03:51,450 1331 01:03:51,450 --> 01:03:55,390 A potom, ak si spomínate, keď sme v C chcel dostať dĺžku poľa, 1332 01:03:55,390 --> 01:03:56,820 to bolo naozaj otravné. 1333 01:03:56,820 --> 01:03:58,460 Ale v JavaScriptu, super ľahké. 1334 01:03:58,460 --> 01:03:59,910 Všetko, čo robíme, .length. 1335 01:03:59,910 --> 01:04:01,120 Dáva jej dĺžky. 1336 01:04:01,120 --> 01:04:01,892 To je všetko. 1337 01:04:01,892 --> 01:04:03,140 >> Divákov: To je jednoduché. 1338 01:04:03,140 --> 01:04:05,306 >> HANNAH Blumberg: Jo, robí váš život oveľa jednoduchší. 1339 01:04:05,306 --> 01:04:08,950 1340 01:04:08,950 --> 01:04:11,560 OK, object-- tam nie je. 1341 01:04:11,560 --> 01:04:15,480 Objekty v JavaScripte pocit veľa ako structs v C 1342 01:04:15,480 --> 01:04:18,280 a asociatívne pole v PHP. 1343 01:04:18,280 --> 01:04:20,270 Takže to, čo sme videli Veľa je JSON, ktorý 1344 01:04:20,270 --> 01:04:23,150 je skratka pre JavaScript Object Notation. 1345 01:04:23,150 --> 01:04:25,550 A je to v podstate spôsob, štruktúrovať naše dáta. 1346 01:04:25,550 --> 01:04:27,880 >> Tak uvidíme príklad, asi najjednoduchšie. 1347 01:04:27,880 --> 01:04:32,540 Tak tu je príklad objektu ktorý ukladá triedu, CS50. 1348 01:04:32,540 --> 01:04:37,790 A keď hovorím triedu, mám na mysli samozrejme, Nie je jako-- jo, beh, CS50. 1349 01:04:37,790 --> 01:04:40,730 A uvidíte, že všetko v objekte 1350 01:04:40,730 --> 01:04:43,526 sa bude obsiahnutá do zložených zátvoriek. 1351 01:04:43,526 --> 01:04:48,260 >> A začneme spájať názvy polí alebo klávesy s rôznymi hodnotami. 1352 01:04:48,260 --> 01:04:52,920 Takže môžete začať vidieť, ako tento druh cíti ako asociatívne pole v PHP. 1353 01:04:52,920 --> 01:04:57,450 Takže budeme spájať poľa alebo názov kľúča, samozrejme, s reťazcami, 1354 01:04:57,450 --> 01:04:58,510 CS50. 1355 01:04:58,510 --> 01:04:59,940 >> Budeme mať inštruktora. 1356 01:04:59,940 --> 01:05:00,940 Budeme musieť TFS. 1357 01:05:00,940 --> 01:05:05,240 Budeme mať niekoľko psets a budeme mať zaznamenané. 1358 01:05:05,240 --> 01:05:10,720 A jedna super vec k poznámke je všetky tieto veci majú rôzne typy, 1359 01:05:10,720 --> 01:05:12,020 a to je úplne v poriadku. 1360 01:05:12,020 --> 01:05:15,330 >> To je v poriadku pre objekt, v skutočnosti, je to asi očakávali pre objekt 1361 01:05:15,330 --> 01:05:19,620 mať kombinácia reťazcov a čísla a Booleans a polia 1362 01:05:19,620 --> 01:05:23,420 a čokoľvek iné, čo by ste mohli Chcete mať vo vnútri vášho objektu. 1363 01:05:23,420 --> 01:05:28,570 A všimnite si, že tieto sa bude názvy alebo kľúče, a potom sme len 1364 01:05:28,570 --> 01:05:30,300 nastaviť tak, rovný s malou hrubého čreva. 1365 01:05:30,300 --> 01:05:32,015 >> Divákov: Čo presne JSON znamená? 1366 01:05:32,015 --> 01:05:33,890 HANNAH Blumberg: Čo presne to JSON znamená? 1367 01:05:33,890 --> 01:05:36,470 JSON len skratka pre JavaScript Object Notation. 1368 01:05:36,470 --> 01:05:38,430 Je to len spôsob, ako formátovania. 1369 01:05:38,430 --> 01:05:40,040 Jo. 1370 01:05:40,040 --> 01:05:41,800 Je to spôsob, ako formátovania naše dáta. 1371 01:05:41,800 --> 01:05:43,620 >> V jazyku C, je to structs. 1372 01:05:43,620 --> 01:05:45,800 V PHP, je to asociatívne pole. 1373 01:05:45,800 --> 01:05:47,120 V JavaScriptu, máme objekty. 1374 01:05:47,120 --> 01:05:48,969 >> Divákov: Takže CS50 to objekt? 1375 01:05:48,969 --> 01:05:51,010 HANNAH Blumberg: CS50 je objekt v tomto prípade. 1376 01:05:51,010 --> 01:05:54,830 1377 01:05:54,830 --> 01:05:57,880 A teraz, ako to vlastne prístup tieto polia alebo zmeniť týchto polí. 1378 01:05:57,880 --> 01:06:03,920 Predpokladajme napríklad, že sme sa rozhodli, že ste chcel jeden menej pset tomto semestri. 1379 01:06:03,920 --> 01:06:06,300 Namiesto toho, deväť, my sme len bude mať osem. 1380 01:06:06,300 --> 01:06:08,240 Ako by sme to zmeniť? 1381 01:06:08,240 --> 01:06:09,436 >> Oh, zle. 1382 01:06:09,436 --> 01:06:11,060 Existujú dva spôsoby, ako to môžeme urobiť. 1383 01:06:11,060 --> 01:06:13,490 Číslo jedna je s bodkou notácie a číslo dva 1384 01:06:13,490 --> 01:06:15,750 je s hranatých zátvorkách notácie. 1385 01:06:15,750 --> 01:06:19,720 Tak napríklad, ak I chceli zmeniť alebo prístup 1386 01:06:19,720 --> 01:06:26,820 poľa psets v našej CS50 objekte, čo budem robiť, je CS50.psets, 1387 01:06:26,820 --> 01:06:30,770 takže názov objektu bodkou názov poľa alebo kľúče. 1388 01:06:30,770 --> 01:06:37,120 >> Veľmi podobne, to je presne to, ekvivalentná k tomu CS50, a potom 1389 01:06:37,120 --> 01:06:42,050 v hranatých zátvorkách, psets. 1390 01:06:42,050 --> 01:06:42,837 V pohode? 1391 01:06:42,837 --> 01:06:44,298 Jo. 1392 01:06:44,298 --> 01:06:47,707 >> Divákov: Tak je JSON technicky stále JavaScript 1393 01:06:47,707 --> 01:06:51,814 aj keď v psets sme oddeliť ju [nepočuteľných]? 1394 01:06:51,814 --> 01:06:52,730 HANNAH Blumberg: Iste. 1395 01:06:52,730 --> 01:06:56,290 Takže otázka znie, sú JavaScript a JSON ekvivalent? 1396 01:06:56,290 --> 01:07:00,750 Takže JSON je zápis, v zásade tak, že sme sa zapísať 1397 01:07:00,750 --> 01:07:02,700 objekt z jazyka JavaScript. 1398 01:07:02,700 --> 01:07:05,190 Takže to nie sú úplne rovnaké. 1399 01:07:05,190 --> 01:07:08,950 >> Povedal by som, že JavaScript tam sú objekty v JavaScripte. 1400 01:07:08,950 --> 01:07:12,590 JSON vezme tie objekty a vytlačí je a zobrazuje ich 1401 01:07:12,590 --> 01:07:15,160 alebo ukladá ich v príjemnom spôsobom. 1402 01:07:15,160 --> 01:07:18,110 Takže JSON nie je programovací jazyk, tak, že JavaScript je. 1403 01:07:18,110 --> 01:07:20,900 Je to len zápis pre v JavaScripte naše objekty. 1404 01:07:20,900 --> 01:07:21,400 Jo. 1405 01:07:21,400 --> 01:07:24,144 >> Divákov: Takže čo presne [Nepočuteľný] kompletnú? 1406 01:07:24,144 --> 01:07:25,060 HANNAH Blumberg: Iste. 1407 01:07:25,060 --> 01:07:27,727 Takže to vlastne nič nerobí. 1408 01:07:27,727 --> 01:07:28,935 To je len spôsob, ako získať prístup. 1409 01:07:28,935 --> 01:07:31,393 Takže povedzme, že by sme chceli zmeniť počet problémových sád 1410 01:07:31,393 --> 01:07:32,450 z deviatich na osem. 1411 01:07:32,450 --> 01:07:34,383 To, čo robíme, je niečo urobiť ako CS50.psets = 8;. 1412 01:07:34,383 --> 01:07:38,500 1413 01:07:38,500 --> 01:07:39,400 >> Jo, skvelá otázka. 1414 01:07:39,400 --> 01:07:40,733 To je len ukázať vám syntax. 1415 01:07:40,733 --> 01:07:43,620 Nie je v skutočnosti robiť nič užitočného. 1416 01:07:43,620 --> 01:07:46,085 Nejaké otázky? 1417 01:07:46,085 --> 01:07:48,210 Pohybujúce sa vpravo pozdĺž. 1418 01:07:48,210 --> 01:07:51,960 >> Takže poďme sa pozrieť na rýchly príklad toho, ako JavaScript funguje, pretože som vám povedal, že to 1419 01:07:51,960 --> 01:07:55,170 robí všetky tieto veci a chladné nám umožňuje upravovať webové stránky. 1420 01:07:55,170 --> 01:07:56,970 Poďme sa skutočne vidieť v akcii. 1421 01:07:56,970 --> 01:07:59,850 Tak sa napríklad tento súbor HTML. 1422 01:07:59,850 --> 01:08:04,350 >> A vec, ktorú chcem, aby si zamerať, je tento konkrétny tag, ktorý je tlačidlo, 1423 01:08:04,350 --> 01:08:06,182 s id search_button. 1424 01:08:06,182 --> 01:08:08,670 Je to len na stránke. 1425 01:08:08,670 --> 01:08:10,690 Takže teraz uvidíme, čo môžeme vlastne robiť. 1426 01:08:10,690 --> 01:08:12,560 >> No, predpokladám, že keď kliknete na toto tlačidlo, 1427 01:08:12,560 --> 01:08:16,010 chceme urobiť alert-- ste klikli na tlačidlo. 1428 01:08:16,010 --> 01:08:17,840 Pozrime sa, ako to môžeme urobiť. 1429 01:08:17,840 --> 01:08:23,869 Takže window.onload-- to nie je niečo, že ste videli v triede, a preto 1430 01:08:23,869 --> 01:08:26,180 nebudú musieť poznať na kvíz. 1431 01:08:26,180 --> 01:08:33,660 Ale to v podstate hovorí, OK, call Túto funkciu použite pri načíta okno. 1432 01:08:33,660 --> 01:08:35,080 >> Tak to je len trochu nastavenie kódu. 1433 01:08:35,080 --> 01:08:36,390 Nebojte sa toľko o tom. 1434 01:08:36,390 --> 01:08:39,170 To, čo chcem, aby ste zamerať, je tu. 1435 01:08:39,170 --> 01:08:44,020 Hovoríme var searchButton rovná document.getElementById search_button. 1436 01:08:44,020 --> 01:08:46,450 >> Takže, ako asi tušíte, čo to robí, je to hovorí, 1437 01:08:46,450 --> 01:08:50,920 OK, choď nájsť prvok s ID search_button. 1438 01:08:50,920 --> 01:08:52,790 A teraz máme, že Aktuálny prvok a ja som 1439 01:08:52,790 --> 01:08:56,279 chystá uložiť v variabilný searchButton. 1440 01:08:56,279 --> 01:09:00,651 A teraz môžeme skutočne používať tento prvok a zmeniť alebo otvoriť svoje hodnoty, 1441 01:09:00,651 --> 01:09:01,359 takéto veci. 1442 01:09:01,359 --> 01:09:04,649 Môžeme skutočne začať zapojiť s webovou stránkou. 1443 01:09:04,649 --> 01:09:10,330 >> Tak tu hovorím, v poriadku, teraz, keď mám toto tlačidlo, keď na neho kliknete, 1444 01:09:10,330 --> 01:09:12,859 volanie tejto anonymné funkcie. 1445 01:09:12,859 --> 01:09:16,811 Takže toto je miesto, kde anonymný Funkcia sa stal užitočným. 1446 01:09:16,811 --> 01:09:18,060 A čo robí funkcie robiť? 1447 01:09:18,060 --> 01:09:20,529 No, to jednoducho nazýva funkcia upozornenia a hovorí, 1448 01:09:20,529 --> 01:09:22,910 ste klikli na tlačidlo Hľadať. 1449 01:09:22,910 --> 01:09:29,670 >> Takže čo sa stane, keď pôjdem tam, kam tento HTML žije a ja kliknite na tlačidlo, 1450 01:09:29,670 --> 01:09:33,729 Dostanem vymysleného trochu upozornenie ktorý hovorí, že ste klikli na tlačidlo. 1451 01:09:33,729 --> 01:09:40,710 Takže veci, aby sa zamerali na here-- document.getElementById 1452 01:09:40,710 --> 01:09:44,960 dostane konkrétnu HTML prvok s daným ID. 1453 01:09:44,960 --> 01:09:48,529 A teraz môžeme nastaviť čo sa má stať, keď 1454 01:09:48,529 --> 01:09:50,702 že určitý prvok kliknutie. 1455 01:09:50,702 --> 01:09:52,670 >> Divákov: Musíme dať všetko v? 1456 01:09:52,670 --> 01:09:53,162 >> HANNAH Blumberg: Sorry? 1457 01:09:53,162 --> 01:09:55,130 >> Divákov: Musíme fyzicky kódovať všetko, že? 1458 01:09:55,130 --> 01:09:56,340 >> HANNAH Blumberg: Musíme fyzicky kódovať všetko, že? 1459 01:09:56,340 --> 01:09:56,839 Áno. 1460 01:09:56,839 --> 01:09:58,120 Nie je to trochu nepríjemné? 1461 01:09:58,120 --> 01:10:00,032 To je veľa kódu. 1462 01:10:00,032 --> 01:10:01,574 >> Divákov: Dalo by sa niečo importovať. 1463 01:10:01,574 --> 01:10:02,532 HANNAH Blumberg: Správne. 1464 01:10:02,532 --> 01:10:03,610 Mohli by sme použiť niečo. 1465 01:10:03,610 --> 01:10:08,140 A v particular-- ach, to je mi hovoril, musím naučiť sekcii. 1466 01:10:08,140 --> 01:10:11,061 Najmä, poďme používať knižnicu jQuery, 1467 01:10:11,061 --> 01:10:13,060 pretože to bolo naozaj dlhá a naozaj otravné 1468 01:10:13,060 --> 01:10:16,860 a ja chcem, aby bolo možné ho zjednodušiť a aby bolo kratšie a jednoduchšie napísať. 1469 01:10:16,860 --> 01:10:19,810 >> Takže jQuery je knižnica JavaScript. 1470 01:10:19,810 --> 01:10:24,930 Takže JavaScript je programovací Jazyk; jQuery je knižnica. 1471 01:10:24,930 --> 01:10:27,190 A to robí veľa vecí jednoduchšie. 1472 01:10:27,190 --> 01:10:33,230 To je meniace sa a ísť naprieč dokument HTML oveľa jednoduchšie. 1473 01:10:33,230 --> 01:10:35,030 >> To je akcia pre manipuláciu s jednoduchšie. 1474 01:10:35,030 --> 01:10:37,580 To robí animácie jednoduchšie a to je Ajax jednoduchšie. 1475 01:10:37,580 --> 01:10:40,140 Takže poďme sa skočiť do dvoch tie veci hneď teraz. 1476 01:10:40,140 --> 01:10:40,900 Prepáčte mi. 1477 01:10:40,900 --> 01:10:42,620 Než tak urobíme, niektoré základné syntaxe. 1478 01:10:42,620 --> 01:10:46,870 >> To je to, čo väčšina volaní knižnica jQuery vyzerať. 1479 01:10:46,870 --> 01:10:50,520 Používame tento dolár sign-- žiadne pripojenie znamenie PHP, 1480 01:10:50,520 --> 01:10:56,030 Len inconvenient-- na meno Volič, bodka, a potom akcie. 1481 01:10:56,030 --> 01:10:58,860 Takže poďme sa pozrieť na nejaké konkrétne príklady, ktoré. 1482 01:10:58,860 --> 01:11:02,980 >> Takže to je vlastne rovnaký Kód zo snímky udalosti. 1483 01:11:02,980 --> 01:11:08,740 Tak dlho, škaredá vec sa stane to oveľa krajší, menšie vec. 1484 01:11:08,740 --> 01:11:10,370 Takže poďme sa pokúsiť rozčleniť tento systém. 1485 01:11:10,370 --> 01:11:17,090 To hovorí, OK, jQuery-- tento dolár sign-- jQuery, nájdite mi okno. 1486 01:11:17,090 --> 01:11:18,480 Tak to je volič. 1487 01:11:18,480 --> 01:11:21,800 >> Keď sa to načíta, túto funkciu volať. 1488 01:11:21,800 --> 01:11:23,880 Takže to je všetko vo vnútri. 1489 01:11:23,880 --> 01:11:24,380 OK. 1490 01:11:24,380 --> 01:11:25,740 Zatiaľ je všetko dobré? 1491 01:11:25,740 --> 01:11:26,750 Dobre. 1492 01:11:26,750 --> 01:11:32,970 >> Teraz, jQuery, nájsť ma o tá vec s ID search_button. 1493 01:11:32,970 --> 01:11:36,090 A čo na neho kliknete, volanie tejto funkcie. 1494 01:11:36,090 --> 01:11:37,900 A potom sa táto funkcia je presne to isté. 1495 01:11:37,900 --> 01:11:41,052 Len to trochu výstrahy, ste klikli na tlačidlo Hľadať. 1496 01:11:41,052 --> 01:11:42,650 >> Takže je to naozaj pekné. 1497 01:11:42,650 --> 01:11:46,260 Je to naozaj kondenzuje a zjednodušuje náš kód. 1498 01:11:46,260 --> 01:11:49,030 Ako som vedel, že je to ID search_button 1499 01:11:49,030 --> 01:11:50,960 a nie ako triedny search_button? 1500 01:11:50,960 --> 01:11:52,024 >> Publikum: hashtag? 1501 01:11:52,024 --> 01:11:52,940 HANNAH Blumberg: Jo. 1502 01:11:52,940 --> 01:11:56,450 Tento symbol hash, je to len ako CSS. 1503 01:11:56,450 --> 01:12:00,080 Takže pamätajte, že sa CSS, keď sme sa chcel vybrať niečo podľa ID, 1504 01:12:00,080 --> 01:12:01,590 sme použili libry. 1505 01:12:01,590 --> 01:12:05,400 A keď sme chceli vybrať niečo podľa triedy, používame bodku. 1506 01:12:05,400 --> 01:12:06,870 Skvelé. 1507 01:12:06,870 --> 01:12:08,230 Dáva zmysel? 1508 01:12:08,230 --> 01:12:11,500 Takže jQuery má len aby sa náš život jednoduchší. 1509 01:12:11,500 --> 01:12:12,000 Jo. 1510 01:12:12,000 --> 01:12:15,660 >> Divákov: Takže som trochu zmätený, ako s tým, ako anonymný funkcia pracuje. 1511 01:12:15,660 --> 01:12:19,027 Myslíte si názov tohto anonymný funkcie, fungujú? 1512 01:12:19,027 --> 01:12:20,594 Ako sa to volá? 1513 01:12:20,594 --> 01:12:21,510 HANNAH Blumberg: Iste. 1514 01:12:21,510 --> 01:12:25,812 Takže funkcia je len kľúčové slovo hovorí, že som asi pre definovanie funkcie. 1515 01:12:25,812 --> 01:12:26,520 Publikum: Oh, OK. 1516 01:12:26,520 --> 01:12:27,353 HANNAH Blumberg: OK? 1517 01:12:27,353 --> 01:12:32,120 A potom sme to prejsť ako Argument to-- poďme 1518 01:12:32,120 --> 01:12:37,040 tento vnútorný one-- funkciu click. 1519 01:12:37,040 --> 01:12:39,420 Tak jo, takže funkcie, táto anonymný funkcie, 1520 01:12:39,420 --> 01:12:40,910 sa stáva skutočný argument. 1521 01:12:40,910 --> 01:12:43,632 Takže pamätajte v JavaScripte, my môže liečiť funkcie ako hodnoty. 1522 01:12:43,632 --> 01:12:44,340 Publikum: Oh, OK. 1523 01:12:44,340 --> 01:12:45,256 HANNAH Blumberg: Jo. 1524 01:12:45,256 --> 01:12:46,035 Páči sa mi, že "Aha." 1525 01:12:46,035 --> 01:12:47,490 Nice. 1526 01:12:47,490 --> 01:12:49,915 Ďalšie otázky? 1527 01:12:49,915 --> 01:12:50,505 Time? 1528 01:12:50,505 --> 01:12:51,380 MARIA Zlatkov: Dobrý. 1529 01:12:51,380 --> 01:12:52,760 Dobre. 1530 01:12:52,760 --> 01:12:54,210 >> HANNAH Blumberg: Úžasné. 1531 01:12:54,210 --> 01:12:55,720 Niektoré rýchle užitočné jQuery. 1532 01:12:55,720 --> 01:12:57,559 Nebudem ísť cez všetky z nich. 1533 01:12:57,559 --> 01:12:59,350 Tieto snímky budú up on-line trochou 1534 01:12:59,350 --> 01:13:02,040 neskôr, takže môžete skontrolovať it out o niečo neskôr. 1535 01:13:02,040 --> 01:13:07,120 Ale v podstate, generálny vzor drží kde hovoríme, 1536 01:13:07,120 --> 01:13:11,510 OK, hej, jQuery, tu je moja Volič, a potom je tu akcia. 1537 01:13:11,510 --> 01:13:15,940 A vy môžete robiť veci, ako je prístup k Hodnota formy, prístup k niektorým HTML, 1538 01:13:15,940 --> 01:13:19,195 Ovládanie čo sa stane, keď používateľ predložia formulár, také veci. 1539 01:13:19,195 --> 01:13:20,106 Áno. 1540 01:13:20,106 --> 01:13:22,090 >> Divákov: Takže v skúška, budeme potrebovať 1541 01:13:22,090 --> 01:13:25,066 vedieť, veľa z dokumentácie jQuery. 1542 01:13:25,066 --> 01:13:31,018 Takže vzhľadom k tomu, že sme sa kopírovať / vložiť jQuery dokumentácia k našej ťahák, 1543 01:13:31,018 --> 01:13:32,506 Kde je čiara? 1544 01:13:32,506 --> 01:13:33,957 Rovnako ako to, koľko potrebujeme vedieť? 1545 01:13:33,957 --> 01:13:35,290 HANNAH Blumberg: Veľká otázka. 1546 01:13:35,290 --> 01:13:37,765 Otázkou je, v podstate vzhľadom na to, že vás 1547 01:13:37,765 --> 01:13:41,330 nemôže získať prístup k dokumentácii k jQuery počas testu, koľko by ste mali 1548 01:13:41,330 --> 01:13:41,830 vieš? 1549 01:13:41,830 --> 01:13:45,540 Nemali by sme očakávať, že vám príde s nejakou náhodnou funkciou 1550 01:13:45,540 --> 01:13:47,240 že by sme vás očakávať, že Google. 1551 01:13:47,240 --> 01:13:52,930 >> Veci, ktoré sú poctivá hra sú by som hovoria len tak všeobecné syntaxe, 1552 01:13:52,930 --> 01:13:58,310 budú môcť vybrať podľa ID a podľa class-- tak len ako CSS. 1553 01:13:58,310 --> 01:14:01,876 A potom skutočné funkcie themself, budeme pravdepodobne povie. 1554 01:14:01,876 --> 01:14:02,376 Jo. 1555 01:14:02,376 --> 01:14:05,591 >> Divákov: Takže keď zvolíte podľa triedy by znamenalo bod. 1556 01:14:05,591 --> 01:14:06,840 HANNAH Blumberg: Áno, presne tak. 1557 01:14:06,840 --> 01:14:07,340 Dobre. 1558 01:14:07,340 --> 01:14:10,461 Ak vyberiete podľa triedy, bude to sa bodka namiesto libry. 1559 01:14:10,461 --> 01:14:10,960 Áno. 1560 01:14:10,960 --> 01:14:12,710 >> Publikum: Chceli by ste prejsť tým rozdielom, 1561 01:14:12,710 --> 01:14:14,310 medzi výberom podľa ID a podľa triedy? 1562 01:14:14,310 --> 01:14:14,560 >> HANNAH Blumberg: Iste. 1563 01:14:14,560 --> 01:14:17,510 Rozdiel medzi výberu ID a výberu podľa triedy. 1564 01:14:17,510 --> 01:14:20,685 Tak ako hovorí Maria a trochu skôr, tam 1565 01:14:20,685 --> 01:14:26,280 môže byť iba jedným prvkom HTML s daným ID, vzhľadom k tomu, triedy, 1566 01:14:26,280 --> 01:14:29,740 to nám umožňuje skupine banda rôznych prvkov dohromady, 1567 01:14:29,740 --> 01:14:34,300 takže veci, ktoré sa vzťahujú, ale nie presne to isté. 1568 01:14:34,300 --> 01:14:35,685 Znamená to, že odpoveď na otázku? 1569 01:14:35,685 --> 01:14:36,200 Úžasné. 1570 01:14:36,200 --> 01:14:37,194 Áno. 1571 01:14:37,194 --> 01:14:40,680 >> Divákov: Čo keď máte viac veci, ktoré sú v rovnakej triede? 1572 01:14:40,680 --> 01:14:42,150 >> HANNAH Blumberg: Čo sa stane, ak máte viac vecí, ktoré 1573 01:14:42,150 --> 01:14:43,280 sú rovnakej triedy? 1574 01:14:43,280 --> 01:14:45,829 Tak, napríklad, keď sme len s použitím čistého JavaScript 1575 01:14:45,829 --> 01:14:48,120 budeme robiť niečo také document.getElementsByClass. 1576 01:14:48,120 --> 01:14:52,280 1577 01:14:52,280 --> 01:14:56,320 A potom, čo to vlastne robí je vráti pole prvkov. 1578 01:14:56,320 --> 01:14:59,517 >> A budete musieť buď iterácii je alebo zistiť, ktorý z nich chcete. 1579 01:14:59,517 --> 01:15:01,350 Nebude to dať Ste jediný prvok. 1580 01:15:01,350 --> 01:15:03,450 Bude to, aby vám pole prvkov. 1581 01:15:03,450 --> 01:15:05,280 Veľká otázka. 1582 01:15:05,280 --> 01:15:07,700 ešte niečo? 1583 01:15:07,700 --> 01:15:09,520 Úžasné. 1584 01:15:09,520 --> 01:15:12,860 >> Takže si myslím, ak ste oboznámení s akýkoľvek jQuery ste videli v pset, 1585 01:15:12,860 --> 01:15:15,600 mali by ste byť dobré ísť. 1586 01:15:15,600 --> 01:15:16,325 Otázka? 1587 01:15:16,325 --> 01:15:17,610 Ale nie. 1588 01:15:17,610 --> 01:15:18,859 Naozaj musím učiť. 1589 01:15:18,859 --> 01:15:19,358 Odpočívajte. 1590 01:15:19,358 --> 01:15:20,035 Bude to v poriadku. 1591 01:15:20,035 --> 01:15:20,660 Budem tam dostať. 1592 01:15:20,660 --> 01:15:24,670 1593 01:15:24,670 --> 01:15:26,870 >> Poďme sa baviť o Ajax. 1594 01:15:26,870 --> 01:15:31,350 Takže Ajax bude je-- dobre, začnime s tým, čo to znamená. 1595 01:15:31,350 --> 01:15:32,350 Je to skratka. 1596 01:15:32,350 --> 01:15:35,855 To je skratka pre asynchrónny JavaScript a XML. 1597 01:15:35,855 --> 01:15:39,800 A XML je v podstate bude [Nepočuteľný] s typom našich dát. 1598 01:15:39,800 --> 01:15:42,100 Ale my sme to vlastne použitý XML. 1599 01:15:42,100 --> 01:15:43,430 Namiesto toho stačí použiť JSON. 1600 01:15:43,430 --> 01:15:48,350 >> Takže v podstate, je to nejaký data-- asynchrónne, JavaScript, a dáta, 1601 01:15:48,350 --> 01:15:50,040 V tomto prípade, JSON. 1602 01:15:50,040 --> 01:15:52,820 A náš cieľ, ako sme už uviedli trochu skôr, 1603 01:15:52,820 --> 01:15:56,880 je, aby bolo možné, aby sa Požiadavka, že sa žiadosť robiť 1604 01:15:56,880 --> 01:16:00,700 jeho vec v pozadia, ale aj naďalej 1605 01:16:00,700 --> 01:16:02,550 robiť, čo sme boli v úmysle robiť. 1606 01:16:02,550 --> 01:16:06,650 A potom, keď sú tieto informácie pripravený, potom budeme začleniť ju. 1607 01:16:06,650 --> 01:16:08,470 >> Takže poďme sa pozrieť, čo to v skutočnosti vyzerá. 1608 01:16:08,470 --> 01:16:11,210 A to, mali by ste byť trochu povedomý 1609 01:16:11,210 --> 01:16:13,680 od pset8, ten, ktorý ste práve obrátil. 1610 01:16:13,680 --> 01:16:16,200 Tak tu je platný jQuery funkcia, ktorú by sme mohli 1611 01:16:16,200 --> 01:16:18,250 Chcete vedieť about-- tento znak dolára. 1612 01:16:18,250 --> 01:16:21,500 Tak to hovorí funkcie jQuery, .getJson. 1613 01:16:21,500 --> 01:16:25,020 >> A to, čo táto funkcia robí, je to trvá URL a niektoré parameters-- 1614 01:16:25,020 --> 01:16:28,000 takže myslím, že v prípade, z pset8, bolo to ako, 1615 01:16:28,000 --> 01:16:33,520 URL bola articles.php a Parametre bol go = nejaký poštové smerovacie číslo. 1616 01:16:33,520 --> 01:16:41,580 A hovorí, OK, podať žiadosť adresovanú Táto adresa URL s danými parametrami. 1617 01:16:41,580 --> 01:16:43,480 A to sa jednoducho stáva. 1618 01:16:43,480 --> 01:16:47,730 >> Keď to skončí, je to buď bude úspešne dokončiť 1619 01:16:47,730 --> 01:16:49,370 alebo to bude na neúspech. 1620 01:16:49,370 --> 01:16:53,480 Tak to je ekvivalent výzvy Rob a požiadať ho, aby niečo urobiť. 1621 01:16:53,480 --> 01:17:00,260 A potom, keď mu zavolá späť, je to buď chystá povedať, že som urobil, alebo som zlyhal. 1622 01:17:00,260 --> 01:17:04,030 >> Takže v prípade, kam hotovo, hovoríte, OK, ja som urobil. 1623 01:17:04,030 --> 01:17:05,980 A potom budete volať túto funkciu. 1624 01:17:05,980 --> 01:17:08,915 V tomto prípade, bude to byť funkcia, ktorá zoberie nejaké informácie. 1625 01:17:08,915 --> 01:17:12,890 Ten zvyčajne zaujíma je dát, Dáta, ktoré sme vlastne vrátili 1626 01:17:12,890 --> 01:17:15,900 ako výsledok volanie .getJSON. 1627 01:17:15,900 --> 01:17:17,470 >> A vy môžete urobiť niečo s ním. 1628 01:17:17,470 --> 01:17:23,670 Takže v prípade pset8, my zobrazené ako zoznam. 1629 01:17:23,670 --> 01:17:29,050 Fail bude funkcia ktorá je aktivovaná, ak požiadavka zlyhá 1630 01:17:29,050 --> 01:17:30,450 z akéhokoľvek dôvodu. 1631 01:17:30,450 --> 01:17:35,104 A v prípade pset8, my len console.log to. 1632 01:17:35,104 --> 01:17:36,020 Akékoľvek otázky na to? 1633 01:17:36,020 --> 01:17:36,300 Jo. 1634 01:17:36,300 --> 01:17:39,633 >> Divákov: Môžeme stačí použiť funkciu theta namiesto funkcie, textStatus, jqHXR. 1635 01:17:39,633 --> 01:17:43,464 1636 01:17:43,464 --> 01:17:44,380 HANNAH Blumberg: Iste. 1637 01:17:44,380 --> 01:17:46,713 Tak jo, myslím, že v pset, sme práve videli funkciu dáta. 1638 01:17:46,713 --> 01:17:48,700 Takže je to len the-- áno, OK. 1639 01:17:48,700 --> 01:17:50,510 To je to, čo sme videli v pset. 1640 01:17:50,510 --> 01:17:51,480 To je úplne v poriadku. 1641 01:17:51,480 --> 01:17:54,210 >> To sú len ak ste chceli vytiahnuť viac informácií, 1642 01:17:54,210 --> 01:17:57,190 to sú veci, ktoré by ste mohli dostať od .getJSON. 1643 01:17:57,190 --> 01:17:59,040 Dobrá otázka. 1644 01:17:59,040 --> 01:17:59,706 ešte niečo? 1645 01:17:59,706 --> 01:18:00,206 Jo. 1646 01:18:00,206 --> 01:18:01,787 >> Divákov: Takže .getJSON je Ajax? 1647 01:18:01,787 --> 01:18:02,620 HANNAH Blumberg: OK. 1648 01:18:02,620 --> 01:18:05,700 Tak toto je ten druh chúlostivé časti. 1649 01:18:05,700 --> 01:18:12,390 Jedná sa o funkciu, ktorá umožňuje jQuery ste k tomu asynchrónne volanie. 1650 01:18:12,390 --> 01:18:16,080 A tie asynchrónne volanie, to je čo sme na mysli ako Ajax. 1651 01:18:16,080 --> 01:18:16,850 Jo. 1652 01:18:16,850 --> 01:18:20,185 To mi trvalo naozaj dlho ťahať od seba, keď som bol študentom. 1653 01:18:20,185 --> 01:18:21,560 Divákov: Môžete povedať, že znovu? 1654 01:18:21,560 --> 01:18:22,476 HANNAH Blumberg: Jo. 1655 01:18:22,476 --> 01:18:23,630 Môžem povedať, že znovu? 1656 01:18:23,630 --> 01:18:29,010 Táto funkcia .getJSON, to je funkcia jQuery. 1657 01:18:29,010 --> 01:18:31,970 A bude to robiť asynchrónne volanie. 1658 01:18:31,970 --> 01:18:35,700 A tieto asynchrónne volanie, máme bol na mysli tie, ako Ajax. 1659 01:18:35,700 --> 01:18:39,610 1660 01:18:39,610 --> 01:18:41,872 >> Nejaké ďalšie otázky? 1661 01:18:41,872 --> 01:18:43,330 Máme len pár minút odišiel. 1662 01:18:43,330 --> 01:18:45,080 A Maria sa chystá zabaliť s bezpečnosťou 1663 01:18:45,080 --> 01:18:47,464 a potom pôjdeme napríklad len o hotové. 1664 01:18:47,464 --> 01:18:48,630 MARIA Zlatkov: Super, OK. 1665 01:18:48,630 --> 01:18:54,030 Tak to je-- len vziať pár sekúnd sa pozrieť cez to. 1666 01:18:54,030 --> 01:18:56,750 A to nie je niečo, čo naozaj skvelé. 1667 01:18:56,750 --> 01:18:59,430 A môže mi niekto povedať, prečo? 1668 01:18:59,430 --> 01:19:05,650 To, čo sa deje v foo a môžu sa mohol potenciálne vyústiť v niečo zlé, 1669 01:19:05,650 --> 01:19:06,770 a čo, že sa volá? 1670 01:19:06,770 --> 01:19:07,270 Jo. 1671 01:19:07,270 --> 01:19:10,391 Divákov: V prípade, že tvrdenie, že je prešiel v roku je viac ako 12 znakov, 1672 01:19:10,391 --> 01:19:11,454 to môže pretekať. 1673 01:19:11,454 --> 01:19:12,370 MARIA Zlatkov: Správne. 1674 01:19:12,370 --> 01:19:14,180 Perfektné. 1675 01:19:14,180 --> 01:19:15,384 Ako sa to volá? 1676 01:19:15,384 --> 01:19:16,300 Práve ste sa o tom zmienil. 1677 01:19:16,300 --> 01:19:16,840 >> Divákov: pretečeniu vyrovnávacej pamäte. 1678 01:19:16,840 --> 01:19:18,381 >> MARIA Zlatkov: Jo, pretečeniu vyrovnávacej pamäte. 1679 01:19:18,381 --> 01:19:21,230 Tak to je niečo, čo označujeme ako pretečeniu vyrovnávacej pamäte. 1680 01:19:21,230 --> 01:19:25,500 A vidíme, že vo vnútri foo, sme formulovali sme vyrovnávacej pamäte, C, 1681 01:19:25,500 --> 01:19:27,240 o veľkosti 12. 1682 01:19:27,240 --> 01:19:32,680 Avšak, v hlavnej, my nie zistiť v žiadnom prípade vôbec 1683 01:19:32,680 --> 01:19:36,480 či tak, že argv1-- bol druhý argument. 1684 01:19:36,480 --> 01:19:39,630 Nechceme kontrolovať, či Veľkosť je to vhodné. 1685 01:19:39,630 --> 01:19:43,380 >> Takže ak sme mali Používateľ so zlými úmyslami, najmä 1686 01:19:43,380 --> 01:19:47,170 ktorí sa dať do nejakej tvrdenie, že bol dlhšie ako 12 rokov, a potom prípadne 1687 01:19:47,170 --> 01:19:50,850 za hranice, ktoré Argument, mal nejaký spustiteľný kód 1688 01:19:50,850 --> 01:19:55,570 že sa snaží urobiť niečo zlé s tým; potom to, čo by sa stalo, 1689 01:19:55,570 --> 01:19:59,310 by sa prepísať návrat adresa funkcie foo, 1690 01:19:59,310 --> 01:20:04,370 spôsobujúce funkciu, ktorá pri vracať na vykonanie tohto kódu. 1691 01:20:04,370 --> 01:20:07,540 A potom sa zlé veci sa môže stať. 1692 01:20:07,540 --> 01:20:09,850 Má to zmysel, aby všetky? 1693 01:20:09,850 --> 01:20:12,424 >> A ako môžeme chrániť proti tomu? 1694 01:20:12,424 --> 01:20:13,090 Nejaké návrhy? 1695 01:20:13,090 --> 01:20:16,480 1696 01:20:16,480 --> 01:20:21,890 V podstate, vo vnútri potenciálne foo, ako 1697 01:20:21,890 --> 01:20:28,294 môžeme skontrolovať, aby sa ubezpečil , Že sa nemôže stať? 1698 01:20:28,294 --> 01:20:33,879 >> Divákov: Keď sa prekročí veľkosť 12, by ste prideliť ďalšie pamäť? 1699 01:20:33,879 --> 01:20:37,170 MARIA Zlatkov: návrh je, prideliť prekročené ďalšie pamäť veľkosti. 1700 01:20:37,170 --> 01:20:39,800 V skutočnosti, môžeme urobiť niečo oveľa jednoduchšie, než je tiež. 1701 01:20:39,800 --> 01:20:44,870 Môžeme len získať dĺžka reťazca argumentu, ktorý je zadaný, 1702 01:20:44,870 --> 01:20:48,590 skontrolovať, či, ktorý je menej alebo rovné 12-- 1703 01:20:48,590 --> 01:20:50,790 čo je to, čo to chceme byť, pretože nechceme 1704 01:20:50,790 --> 01:20:52,373 to prekročiť medze našej pamäti. 1705 01:20:52,373 --> 01:20:55,690 A potom, ak to tak nie je, my môže pracovať s argumentom. 1706 01:20:55,690 --> 01:21:00,296 A potom, ak sa tak stane, budeme skutočne chcú na Yello potenciálne u používateľa. 1707 01:21:00,296 --> 01:21:01,670 Ale to je, ako by sme to urobiť. 1708 01:21:01,670 --> 01:21:02,443 Áno. 1709 01:21:02,443 --> 01:21:04,360 >> Publikum: Mohli by ste vysvetliť memcpy naozaj rýchlo? 1710 01:21:04,360 --> 01:21:05,443 MARIA Zlatkov: Oh, prepáč. 1711 01:21:05,443 --> 01:21:06,040 Áno. 1712 01:21:06,040 --> 01:21:11,290 Memcpy vezme čokoľvek je-- ľúto, OK. 1713 01:21:11,290 --> 01:21:15,850 Memcpy berie, čo je v baroch, čo je odovzdaný 1714 01:21:15,850 --> 01:21:18,050 na foo ako argument príkazového riadku. 1715 01:21:18,050 --> 01:21:19,440 Takže to bude trvať argv1. 1716 01:21:19,440 --> 01:21:21,420 Argv1 sa nazýva bar tu. 1717 01:21:21,420 --> 01:21:24,453 Takže to bude trvať a baru to bude kopírovať to do cca. 1718 01:21:24,453 --> 01:21:25,402 >> Divákov: OK. 1719 01:21:25,402 --> 01:21:28,360 MARIA Zlatkov: A bude to copy-- tretí argument jednoducho sa odkazuje 1720 01:21:28,360 --> 01:21:30,601 na to, ako veľmi to bude kopírovať do cca. 1721 01:21:30,601 --> 01:21:31,142 Divákov: Ah. 1722 01:21:31,142 --> 01:21:33,030 Takže toto je kopírovanie všetko to potom. 1723 01:21:33,030 --> 01:21:34,310 >> MARIA Zlatkov: Jo, je to kopírovanie všetko. 1724 01:21:34,310 --> 01:21:34,810 Jo. 1725 01:21:34,810 --> 01:21:38,400 1726 01:21:38,400 --> 01:21:41,910 Po prvé, sme sa uistite, že bar nie je rovná null, pretože je to ukazovateľ. 1727 01:21:41,910 --> 01:21:44,680 Potom sme si dĺžka reťazca bar. 1728 01:21:44,680 --> 01:21:47,530 Snažíme sa o to, že je to menšie ako alebo rovný 12. 1729 01:21:47,530 --> 01:21:50,070 A potom preto, že sme uistil, môžeme vlastne 1730 01:21:50,070 --> 01:21:53,122 memcpy a uistite sa, že to je v poriadku. 1731 01:21:53,122 --> 01:21:53,705 Nejaké otázky? 1732 01:21:53,705 --> 01:21:56,280 1733 01:21:56,280 --> 01:21:58,690 Skvelé. 1734 01:21:58,690 --> 01:22:00,400 Mám dve true alebo false otázky. 1735 01:22:00,400 --> 01:22:05,470 Môže mi niekto povedať hneď ak ide o pravdivé alebo nepravdivé? 1736 01:22:05,470 --> 01:22:07,460 Áno, je to falošné. 1737 01:22:07,460 --> 01:22:07,960 Presne tak. 1738 01:22:07,960 --> 01:22:09,330 Obaja z nich sú falošné. 1739 01:22:09,330 --> 01:22:12,682 Takže za použitia jedno heslo je nikdy naozaj dobrý nápad 1740 01:22:12,682 --> 01:22:14,890 pretože ak niekto vie, vaše heslo, môžu len 1741 01:22:14,890 --> 01:22:16,260 prístup ku všetkým vaše ďalšie účty. 1742 01:22:16,260 --> 01:22:19,260 A potom ikony robiť nič aby bola zaistená bezpečnosť. 1743 01:22:19,260 --> 01:22:24,900 Mali by sme sa zvyčajne vyzerajú na HTTPS miesto HTTP a URL. 1744 01:22:24,900 --> 01:22:28,560 >> A niektoré ďalšie druhy útoky, ktoré sme uvádzané 1745 01:22:28,560 --> 01:22:31,390 že David je uvedené v prednáška, SQL injection útoky. 1746 01:22:31,390 --> 01:22:37,310 Už sme videli, že ak budeme ne-- Funkcia CS50 dotaz zaručuje, že SQL 1747 01:22:37,310 --> 01:22:39,530 injection útoky nemôže nastať. 1748 01:22:39,530 --> 01:22:42,640 Ale keď sme neboli používať CS50, citát, koniec citátu "v dotazu" 1749 01:22:42,640 --> 01:22:46,830 by sme sa uistiť, že vstup užívateľa nie je vlastne nejaký SQL 1750 01:22:46,830 --> 01:22:49,670 dotaz, ktorý spôsobí, všetko naše stoly byť zrušený 1751 01:22:49,670 --> 01:22:54,070 alebo niečo zlé na stane s našej databáze. 1752 01:22:54,070 --> 01:22:56,790 >> Session je únos iný typ útoku 1753 01:22:56,790 --> 01:23:05,940 že sa stane, keď niektoré zlé osoba používa relácie nejaké obete 1754 01:23:05,940 --> 01:23:08,740 ID pre prístup k prihlasovacie údaje. 1755 01:23:08,740 --> 01:23:13,620 Takže veľmi triviálne príklad, ktorý je ako keď máme verejného počítača, 1756 01:23:13,620 --> 01:23:21,120 potom je zlý človek prihlási a potom majú súbory cookie, ktoré sú uložené. 1757 01:23:21,120 --> 01:23:23,380 A cookies nemení na zasadnutí. 1758 01:23:23,380 --> 01:23:27,620 >> Potom máme obeť ísť a potom sa prihlásiť na webových stránkach. 1759 01:23:27,620 --> 01:23:30,290 Cookies sa nemení pre určitú reláciu. 1760 01:23:30,290 --> 01:23:33,060 A potom obeť prihlási do webové stránky a potom odíde. 1761 01:23:33,060 --> 01:23:36,190 A potom ten, kto sa vracia potom môžu aj naďalej používať svoje ID relácie 1762 01:23:36,190 --> 01:23:37,430 pre prístup k ich informácie. 1763 01:23:37,430 --> 01:23:40,050 Takže to je jeden z príkladov, ako sa to mohlo stať. 1764 01:23:40,050 --> 01:23:45,570 >> A potom by som si starosti príliš veľa o zvláštny kód alebo čokoľvek 1765 01:23:45,570 --> 01:23:49,270 ako to, ktoré by mohli spôsobiť to, ale má nejaký nápad, čo 1766 01:23:49,270 --> 01:23:51,400 zahrnuté premenné sú v tom. 1767 01:23:51,400 --> 01:23:53,897 A potom manipulácia hlavičky Dáta je iný typ útoku 1768 01:23:53,897 --> 01:23:55,230 že má Dávid hovoril o. 1769 01:23:55,230 --> 01:23:59,730 A to len odkazuje na čo sa môže stať, keď 1770 01:23:59,730 --> 01:24:04,300 boli reakcie, HTTP odozva vnútri našej hlavičky 1771 01:24:04,300 --> 01:24:05,720 nie je správne dezinfikujú. 1772 01:24:05,720 --> 01:24:14,340 >> A každý z fields-- napríklad, ak niekto prepíše jeden z hlavičky 1773 01:24:14,340 --> 01:24:18,860 Hodnoty, ktoré majú obsahovať nič viac, než čo by mali contain-- a vlastne 1774 01:24:18,860 --> 01:24:22,720 obsahovať, napríklad, 200 OK stavový kód, potom sa 1775 01:24:22,720 --> 01:24:26,890 by mohli robiť škodlivý veci, keď nemáš. 1776 01:24:26,890 --> 01:24:30,815 Ale ja by som si starosti príliš moc o osobitným kódom 1777 01:24:30,815 --> 01:24:34,110 ktoré by mohli spôsobiť to, len trochu porozumenia 1778 01:24:34,110 --> 01:24:37,290 na vysokej úrovni také veci. 1779 01:24:37,290 --> 01:24:39,570 >> Myslím, že to je všetko, že musíme pokryť. 1780 01:24:39,570 --> 01:24:40,090 Amazing. 1781 01:24:40,090 --> 01:24:43,310 Každý, kto má nejaké otázky u ktoréhokoľvek z vecí, ktoré sme na ktoré sa vzťahuje? 1782 01:24:43,310 --> 01:24:44,213 Áno. 1783 01:24:44,213 --> 01:24:48,077 >> Divákov: Takže jeden druh viac logistické otázka. 1784 01:24:48,077 --> 01:24:53,400 Je zameraná predovšetkým obsah na veci, po kvíz 1? 1785 01:24:53,400 --> 01:24:55,730 >> MARIA Zlatkov: So Otázkou je, je obsah 1786 01:24:55,730 --> 01:24:59,720 zameraná predovšetkým na veci po kvíz 1? 1787 01:24:59,720 --> 01:25:06,070 Takže je kladený dôraz na neskôr kvíz 1, s výnimkou 1788 01:25:06,070 --> 01:25:10,914 že sa musíme sústrediť na veci v pset5 a mnoho dátových štruktúr 1789 01:25:10,914 --> 01:25:11,580 že sa vzťahuje. 1790 01:25:11,580 --> 01:25:14,300 A nemôžeme povedať, že sme môžete ignorovať čokoľvek predtým, než 1791 01:25:14,300 --> 01:25:17,120 že preto, že nadväzuje na to, ako dobre. 1792 01:25:17,120 --> 01:25:21,845 >> Tak sa zameriavajú na to, že navyše pset5 materiál ako zahŕňajúce prepojené zoznamy, stohy, 1793 01:25:21,845 --> 01:25:23,720 fronty, a všetko, čo že Hannah prešiel. 1794 01:25:23,720 --> 01:25:24,050 >> HANNAH Blumberg: Správne. 1795 01:25:24,050 --> 01:25:27,450 Jo, išli sme cez všetky veci C hneď na začiatku veľmi rýchlo. 1796 01:25:27,450 --> 01:25:29,090 Ale uistite sa, že preskúmať. 1797 01:25:29,090 --> 01:25:32,700 Vráťte sa späť a pozerať sa na kvíz 0 hodnotení. 1798 01:25:32,700 --> 01:25:36,110 >> Pár viac logistické poznámky, Len keď máme vašu pozornosť. 1799 01:25:36,110 --> 01:25:39,100 Budeme mať úradné hodiny a to ako v pondelok a utorok večer. 1800 01:25:39,100 --> 01:25:41,540 Chystajú sa byť v MD 119. 1801 01:25:41,540 --> 01:25:44,220 To všetko je na webových stránkach, tak ak nechcete počuť, žiadne starosti. 1802 01:25:44,220 --> 01:25:45,266 >> MARIA Zlatkov: 08:30 do 11:00. 1803 01:25:45,266 --> 01:25:46,260 >> HANNAH Blumberg: Jo, 08:30 do 11:00. 1804 01:25:46,260 --> 01:25:46,910 Budeme tam. 1805 01:25:46,910 --> 01:25:48,368 Budeme tam odpovedať na otázky. 1806 01:25:48,368 --> 01:25:49,480 Je to celkom chladno a zábavné. 1807 01:25:49,480 --> 01:25:53,240 Vy môžete klásť žiadne otázky že budete mať na kvíz 1. 1808 01:25:53,240 --> 01:25:55,740 A kvíz 1 je Streda, tak veľa šťastia. 1809 01:25:55,740 --> 01:25:59,770 Ak máte akékoľvek otázky, možno prísť s nami hovoriť tady one-on-one. 1810 01:25:59,770 --> 01:26:00,880 Super. 1811 01:26:00,880 --> 01:26:01,630 Ďakujem veľmi pekne. 1812 01:26:01,630 --> 01:26:02,880 >> MARIA Zlatkov: Díky moc, chlapci. 1813 01:26:02,880 --> 01:26:03,480 >> Divákov: Hurá. 1814 01:26:03,480 --> 01:26:05,930 >> [APPLAUSE] 1815 01:26:05,930 --> 01:26:07,530