1 00:00:00,000 --> 00:00:05,616 2 00:00:05,616 --> 00:00:07,030 >> HANNAH Blumberg: Tere kõigile. 3 00:00:07,030 --> 00:00:09,530 Me läheme alustada vaid paar minutit varem 4 00:00:09,530 --> 00:00:11,738 sest meil on palju materjali läbi saama. 5 00:00:11,738 --> 00:00:12,790 Ma olen Hannah. 6 00:00:12,790 --> 00:00:13,865 Ma olen TF. 7 00:00:13,865 --> 00:00:16,239 Maria läheb ühinevad meil vaid paar minutit. 8 00:00:16,239 --> 00:00:17,560 Ta õpetab paragrahvi õigus enne. 9 00:00:17,560 --> 00:00:19,351 Ma õpetan paragrahvi õigus pärast, et me ei kavatse 10 00:00:19,351 --> 00:00:21,200 hoida seda poolteist tundi. 11 00:00:21,200 --> 00:00:25,490 >> Nii nagu näete siin, on meil üsna mõned teemad on meil vaja, et saada läbi, 12 00:00:25,490 --> 00:00:27,200 nii me minema natuke kiire. 13 00:00:27,200 --> 00:00:31,140 Aga kui igal hetkel me midagi öelda liiga kiiresti või te ei saa aru, 14 00:00:31,140 --> 00:00:33,170 vabalt katkestada küsimusi. 15 00:00:33,170 --> 00:00:36,610 Me tahame, et oleks võimalik teha seda vaatab seansi kasulik teile kõigile 16 00:00:36,610 --> 00:00:37,973 kui võimalik. 17 00:00:37,973 --> 00:00:38,920 Fantastiline. 18 00:00:38,920 --> 00:00:41,650 >> Nii saab hüpata paremale sisse mõned teemad, mida me tegelikult 19 00:00:41,650 --> 00:00:46,980 väga lühidalt kaetud jaoks Viktoriin 0 viktoriinis 0 läbivaatamise istungil. 20 00:00:46,980 --> 00:00:48,840 Nii algab ahelloendid. 21 00:00:48,840 --> 00:00:52,090 Nii lihtsalt veendumaks, et on mõned baasteadmised ahelloendid 22 00:00:52,090 --> 00:00:55,110 ja on mugav teha mõned põhilised toimingud. 23 00:00:55,110 --> 00:00:58,560 >> Nii lihtsalt vaadata, mis on seotud nimekirjad on parem kui massiivid 24 00:00:58,560 --> 00:01:01,020 sest nad võivad kasvada dünaamiliselt. 25 00:01:01,020 --> 00:01:03,300 Nii et meil on see suur eelis. 26 00:01:03,300 --> 00:01:06,031 Me oleme näinud neid kasutada in hash tabeleid, kui me 27 00:01:06,031 --> 00:01:08,280 ei tea täpselt, kui palju asju, mida me ei kavatse taha 28 00:01:08,280 --> 00:01:10,900 lisada meie andmestruktuur. 29 00:01:10,900 --> 00:01:15,700 Kahjuks oleme tükki lingitud nimekirja üle mälu, 30 00:01:15,700 --> 00:01:20,820 nii et me ei pea tingimata olema võimeline tegema pidevat aja juurdepääsu 31 00:01:20,820 --> 00:01:22,502 mis tahes element seotud nimekirja. 32 00:01:22,502 --> 00:01:24,210 Selleks, et leida Eelkõige element, me 33 00:01:24,210 --> 00:01:26,510 on itereerima kõiki tee alguses. 34 00:01:26,510 --> 00:01:30,610 Nii pea meeles, et enamik põhiline tegevus on omega 1. 35 00:01:30,610 --> 00:01:32,130 Nii sisestada lihtsalt aega võtab 1. 36 00:01:32,130 --> 00:01:37,520 Kustuta kavatseb võtta n, sest me minema leida loendist. 37 00:01:37,520 --> 00:01:39,260 Ja otsing võiks võtta, halvimal juhul n. 38 00:01:39,260 --> 00:01:42,330 Me ei saa teha midagi binaarne otsing ahelloend 39 00:01:42,330 --> 00:01:45,101 sest me ei saa lihtsalt juhuslikult hüpata keskel. 40 00:01:45,101 --> 00:01:45,600 Cool. 41 00:01:45,600 --> 00:01:48,160 42 00:01:48,160 --> 00:01:48,960 Fantastiline. 43 00:01:48,960 --> 00:01:50,270 >> Natuke korstnad. 44 00:01:50,270 --> 00:01:53,980 See omakorda tuli üles viktoriini 0, siis peaks olema super rahul ta. 45 00:01:53,980 --> 00:01:57,210 Aga korstnad, palume mäleta virn. 46 00:01:57,210 --> 00:01:59,940 Ja see saab olema esimene, viimane välja. 47 00:01:59,940 --> 00:02:02,272 Nii me korstna asju pakis, ja seejärel 48 00:02:02,272 --> 00:02:04,980 Kui me üritame teha midagi off-- mida me nimetame popping välja 49 00:02:04,980 --> 00:02:06,581 stack-- me tuleme välja tippu. 50 00:02:06,581 --> 00:02:09,289 Ja kui me tahame panna midagi pakis, me nimetame seda lükates. 51 00:02:09,289 --> 00:02:13,170 Nii see on alati saab olema suureks alt nagu virn. 52 00:02:13,170 --> 00:02:14,540 Fantastiline. 53 00:02:14,540 --> 00:02:17,607 >> Me oleme näinud korstnad ellu nii ahelloendid ja massiivid. 54 00:02:17,607 --> 00:02:19,440 Kui oled rakendamisel massiivid, mida soovid 55 00:02:19,440 --> 00:02:22,350 veenduda, et jälgida nii suuruse ja võimsusega. 56 00:02:22,350 --> 00:02:27,540 Nii suurus saab olema praeguse mitmeid asju oma korstnat, 57 00:02:27,540 --> 00:02:32,900 kuid tootmisvõimsuse koguarv asju saab salvestada oma korstnat. 58 00:02:32,900 --> 00:02:34,220 Cool. 59 00:02:34,220 --> 00:02:35,767 >> Väga sarnaselt, meil on järjekorrad. 60 00:02:35,767 --> 00:02:38,850 Sel juhul asemel mõtlema virna plaate, mõtle line. 61 00:02:38,850 --> 00:02:40,697 See saab olema esimene, first out. 62 00:02:40,697 --> 00:02:42,780 Seega, kui olete vooder üles midagi poest, 63 00:02:42,780 --> 00:02:46,920 Loodame, et isik kõigepealt line läheb aidanud esimene. 64 00:02:46,920 --> 00:02:49,350 >> Selle asemel, et öelda push and pop nagu me teeme korstnat, 65 00:02:49,350 --> 00:02:52,000 me lihtsalt öelda Lisa järjekorda ja dequeue. 66 00:02:52,000 --> 00:02:54,970 Ja jälle, kui olete rakendatakse seda massiivi, 67 00:02:54,970 --> 00:02:56,720 meil vaja jälgida mitte ainult suurus 68 00:02:56,720 --> 00:03:02,390 ja suutlikkuse, vaid ka peas, mis saab olema ees meie järjekorda. 69 00:03:02,390 --> 00:03:03,010 Cool. 70 00:03:03,010 --> 00:03:05,770 Kõik küsimused mis tahes selle? 71 00:03:05,770 --> 00:03:06,320 Fantastiline. 72 00:03:06,320 --> 00:03:07,640 Liikumine paremale mööda. 73 00:03:07,640 --> 00:03:08,564 >> OK, hash tabeleid. 74 00:03:08,564 --> 00:03:10,605 Siin, kus ta hakkab saada tõesti huvitav. 75 00:03:10,605 --> 00:03:14,150 Nii hash tabelis on üks rakendamine on assotsiatiivne massiiv. 76 00:03:14,150 --> 00:03:16,700 Ühesõnaga, mis juhtus on meil kõik see sisend, 77 00:03:16,700 --> 00:03:18,750 ja me anname selle räsi funktsioon, mis ütleb, 78 00:03:18,750 --> 00:03:21,840 OK, see on koht, kus on hash tabelis see kuulub. 79 00:03:21,840 --> 00:03:24,860 >> Nii lihtsaim hash funktsiooni et me oleme näinud, on lihtsalt öeldes, 80 00:03:24,860 --> 00:03:28,170 OK, oletame me taha panna stringid meie hash tabelit. 81 00:03:28,170 --> 00:03:30,870 Ja tõesti lihtne idee võib öelda, OK, 82 00:03:30,870 --> 00:03:34,350 olgem lihtsalt sorteerida esimene täht sõna. 83 00:03:34,350 --> 00:03:37,570 Nii et näete, siin, võtame banaan, me paneme ta läbi hash funktsiooni, 84 00:03:37,570 --> 00:03:40,190 ja ta ütleb, hey, et peaks minema indeks 1. 85 00:03:40,190 --> 00:03:45,120 >> Nii saame sisuliselt mõelda hash tabeli hunnik erinevaid ämbrid. 86 00:03:45,120 --> 00:03:49,880 Ja kõik need ämbrid läheb hoida pea ahelloend. 87 00:03:49,880 --> 00:03:55,030 Ja et ahelloendid on koht, kus saame tegelikult panna erinevaid tükke andmeid. 88 00:03:55,030 --> 00:03:57,820 >> Nii sukeldumine natuke rohkem arvesse hash funktsiooni, siin 89 00:03:57,820 --> 00:03:59,870 näitel ma lihtsalt kirjeldatud, kus me lihtsalt öelda, 90 00:03:59,870 --> 00:04:02,460 OK, võta esimene täht sõna ja me oleme 91 00:04:02,460 --> 00:04:03,990 läheb sorteerida see ämbrid. 92 00:04:03,990 --> 00:04:08,490 Nii arvatavasti, seal saad 26 ämbrid, üks iga täht. 93 00:04:08,490 --> 00:04:10,090 Miks ei ole see suur hash funktsiooni? 94 00:04:10,090 --> 00:04:13,461 Mis teeb selle mitteideaalse? 95 00:04:13,461 --> 00:04:13,960 Jah. 96 00:04:13,960 --> 00:04:15,790 >> Sihtrühm: Sa lähed on kokkupõrkeid. 97 00:04:15,790 --> 00:04:16,390 >> HANNAH Blumberg: Jah, täpselt. 98 00:04:16,390 --> 00:04:18,000 Sa lähed on kokkupõrkeid. 99 00:04:18,000 --> 00:04:18,954 Nii et üks asi. 100 00:04:18,954 --> 00:04:21,620 Ja me räägime, kuidas me suudame määrata kokkupõrkeid vaid teine. 101 00:04:21,620 --> 00:04:23,980 Teine probleem on selles Eelkõige hash funktsiooni 102 00:04:23,980 --> 00:04:25,980 on see, et meie erinevad ämbrid ei kavatse olla 103 00:04:25,980 --> 00:04:28,960 päris drastiliselt erineva suurusega. 104 00:04:28,960 --> 00:04:33,840 >> Me teame, et seal on palju rohkem sõnu, mis algavad kui X, 105 00:04:33,840 --> 00:04:38,980 nii et me lähed on väga tasakaalustamata ämbrid meie hash tabelit. 106 00:04:38,980 --> 00:04:40,050 Cool. 107 00:04:40,050 --> 00:04:41,340 Nii et jah, lähme tagasi punkti kokkupõrkeid. 108 00:04:41,340 --> 00:04:42,900 Mida me teeme, kui seal on kokkupõrge? 109 00:04:42,900 --> 00:04:44,490 >> Meil on paar erinevat võimalust. 110 00:04:44,490 --> 00:04:47,600 Nii et üks, nii et arvan, et me üritame panna marja meie hash tabelit. 111 00:04:47,600 --> 00:04:50,370 Ja me näeme, oh, me tahame pane see indeks 1, 112 00:04:50,370 --> 00:04:52,070 kuid banaani juba elab seal. 113 00:04:52,070 --> 00:04:53,110 Mida me teeme? 114 00:04:53,110 --> 00:04:54,560 Meil on kaks peamist võimalust. 115 00:04:54,560 --> 00:04:58,050 >> Number üks on võime öelda, OK, pole ruumi indeks 1, 116 00:04:58,050 --> 00:05:03,210 kuid olgem lihtsalt hoida vaadates läbi kuni leiame teise avatud kohapeal. 117 00:05:03,210 --> 00:05:08,490 Nii me ütleme, OK, paneme selle koha 3. 118 00:05:08,490 --> 00:05:09,240 See on üks võimalus. 119 00:05:09,240 --> 00:05:11,470 Seda nimetatakse lineaarselt katsetamine. 120 00:05:11,470 --> 00:05:15,500 >> Ja teine ​​võimalus on öelda, OK, noh, olgem lihtsalt kõik need ämbrid 121 00:05:15,500 --> 00:05:17,470 olla juhid ahelloendid. 122 00:05:17,470 --> 00:05:21,910 Ja see on OK, kui seal on rohkem kui üks asi ämber. 123 00:05:21,910 --> 00:05:23,820 Me lihtsalt läheb lisada see peale ees. 124 00:05:23,820 --> 00:05:26,032 Nii et siin näed, OK, kui me lisada marja-, me 125 00:05:26,032 --> 00:05:28,240 lihtsalt võttis banaan, millist surutakse see üle natuke 126 00:05:28,240 --> 00:05:29,842 ja viskas marja seal. 127 00:05:29,842 --> 00:05:31,050 Ja see on ka täiesti korras. 128 00:05:31,050 --> 00:05:32,830 Seda nimetatakse eraldi ühendamine. 129 00:05:32,830 --> 00:05:38,100 Sa ei mõtle seda tüüpi, nagu massiivi pead ahelloendid. 130 00:05:38,100 --> 00:05:41,950 Kõik küsimused räsi tabelid, hash funktsioonid? 131 00:05:41,950 --> 00:05:44,290 Fantastiline. 132 00:05:44,290 --> 00:05:45,470 >> Puud ja proovib. 133 00:05:45,470 --> 00:05:47,287 Nii puu on mingisugune andmestruktuuri 134 00:05:47,287 --> 00:05:49,453 kus on olemas mingisugune hierarhia või mingisugune 135 00:05:49,453 --> 00:05:51,247 järjekohale oma erinevate objektide kohta. 136 00:05:51,247 --> 00:05:53,580 Ja see muutub super selge, kui me näeme näiteks. 137 00:05:53,580 --> 00:05:56,960 Ja me nägime üritab koos koos räsitabeli, in pset5-- 138 00:05:56,960 --> 00:06:00,700 mis jällegi täiesti aus mäng selle quiz-- teise andmeid 139 00:06:00,700 --> 00:06:03,110 struktuure, et suudame salvestada erinevaid asju. 140 00:06:03,110 --> 00:06:06,782 Juhul sõnastik, meil salvestatud hunnik sõnu. 141 00:06:06,782 --> 00:06:08,240 Võtame pilk mõned puud. 142 00:06:08,240 --> 00:06:10,190 Nii et see on näide puu. 143 00:06:10,190 --> 00:06:13,105 See on mingi struktuur, et hierarhiline struktuur, 144 00:06:13,105 --> 00:06:15,920 kus saab näha, et Selle 1 sõlm tipus 145 00:06:15,920 --> 00:06:20,750 on mingi rank üle 2 ja 3, mis on ülevalpool 4, 5 ja 6 ja 7, 146 00:06:20,750 --> 00:06:22,860 mis on ülal 8 ja 9. 147 00:06:22,860 --> 00:06:25,210 Nii et kõik mean puu, nii et saate lihtsalt selline 148 00:06:25,210 --> 00:06:26,660 pildi sellest oma peaga. 149 00:06:26,660 --> 00:06:29,050 >> Nüüd on meil paar rohkem spetsialiseerunud puud. 150 00:06:29,050 --> 00:06:31,070 Nii et üks näide on Binääripuu. 151 00:06:31,070 --> 00:06:33,290 Ja Binääripuu on, uuesti, lihtsalt läheb 152 00:06:33,290 --> 00:06:37,040 andmestruktuur mingi hierarhiat, kuid iga sõlm 153 00:06:37,040 --> 00:06:38,650 võib olla maksimaalselt kaks last. 154 00:06:38,650 --> 00:06:41,530 See, kui sõna binaarne pärineb. 155 00:06:41,530 --> 00:06:43,410 Nii et see on näide Binääripuu. 156 00:06:43,410 --> 00:06:45,720 Nii et väiksema kategooria puud. 157 00:06:45,720 --> 00:06:48,960 >> Nüüd lähme veelgi täpsem ja rääkida binaarne trees-- Kahendotsingupuu 158 00:06:48,960 --> 00:06:51,310 puud, pigem. 159 00:06:51,310 --> 00:06:56,430 Nii et siin mõte on mitte ainult ei iga sõlm on kõige rohkem kaks last, 160 00:06:56,430 --> 00:07:00,300 kuid kõik last ikkagi vasakule ei kavatse olla väiksem 161 00:07:00,300 --> 00:07:03,450 ja kõik last ikkagi õigus saab olema suurem. 162 00:07:03,450 --> 00:07:05,890 Nii teate lihtsalt meie Binääripuu, seal on 163 00:07:05,890 --> 00:07:08,650 mingit seost numbrid. 164 00:07:08,650 --> 00:07:12,990 Aga meie binaarne otsing puu, näeme, OK, siin on 44. 165 00:07:12,990 --> 00:07:17,080 Ja iga number vasakul 44 on väiksem ja kõike paremale 166 00:07:17,080 --> 00:07:17,920 on suurem. 167 00:07:17,920 --> 00:07:20,130 >> Ja mis hoiab igas tase puu. 168 00:07:20,130 --> 00:07:24,810 Nii et siin on see väiksem kui 22 ja see on suurem kui 22. 169 00:07:24,810 --> 00:07:26,390 Ja see on kahendotsingupuu. 170 00:07:26,390 --> 00:07:28,900 Miks me mõtleme seda nimetatakse Kahendotsingupuu? 171 00:07:28,900 --> 00:07:30,651 Mis algoritm see meenutab sulle? 172 00:07:30,651 --> 00:07:31,650 Sihtrühm: Binary otsing. 173 00:07:31,650 --> 00:07:32,480 HANNAH Blumberg: Binary otsing. 174 00:07:32,480 --> 00:07:35,150 Sest kui sa otsid Eelkõige number selles puude, 175 00:07:35,150 --> 00:07:38,800 igas punktis, võid lihtsalt koputama off pool puud, mis on suurepärane. 176 00:07:38,800 --> 00:07:43,800 Ja nii, et see saab meile midagi mis näeb välja palju nagu binaarne otsing. 177 00:07:43,800 --> 00:07:45,870 Kas küsimusi on? 178 00:07:45,870 --> 00:07:47,570 Olgu, lahe. 179 00:07:47,570 --> 00:07:48,560 >> Olgu, püüab. 180 00:07:48,560 --> 00:07:49,657 Igaühel lemmik. 181 00:07:49,657 --> 00:07:51,990 Nii et see on näide, et oleme näinud hunnik klassis. 182 00:07:51,990 --> 00:07:54,710 Ja jällegi, see on lihtsalt üks nii, et me saame salvestada andmeid. 183 00:07:54,710 --> 00:07:57,530 Juhul sõnastik jällegi See on lihtsalt saab olema stringid. 184 00:07:57,530 --> 00:08:00,870 Vaatame, mida see tegelikult Tundub veidi madalamal tasemel. 185 00:08:00,870 --> 00:08:03,690 >> Võtame pilk ühes sõlme Prefiksipuu. 186 00:08:03,690 --> 00:08:07,532 Ja me näeme, OK, seal saab olema loogilise ja sõlme, 187 00:08:07,532 --> 00:08:09,170 kursor sõlme. 188 00:08:09,170 --> 00:08:11,400 Ja me näeme, et Loogiline nimetatakse is_word. 189 00:08:11,400 --> 00:08:13,490 Nii et sisuliselt, et on läheb vastavad 190 00:08:13,490 --> 00:08:16,750 Nende vähe kolmnurgad, mis ütleb, kui olete saanud siin 191 00:08:16,750 --> 00:08:19,100 olete leidnud täielikku sõna. 192 00:08:19,100 --> 00:08:23,670 >> Me teame, et "Turingi" üle Siin on täielik sõna, 193 00:08:23,670 --> 00:08:28,030 samas lihtsalt T-U-R ei ole sõna sest me ei näe, et väike delta. 194 00:08:28,030 --> 00:08:31,440 Ja see väike delta jällegi vastab see is_word, 195 00:08:31,440 --> 00:08:34,480 Selle Loogiline is_word. 196 00:08:34,480 --> 00:08:36,320 Ja siis on meil hulgaliselt lapsi. 197 00:08:36,320 --> 00:08:39,860 Nii et igal tasandil, siis on eriti sõlme, 198 00:08:39,860 --> 00:08:42,470 ja et sõlm punktid kaasa massiivi kogu tähestikku. 199 00:08:42,470 --> 00:08:44,346 >> Nii et näete, jälle, Selles picture-- ma olen 200 00:08:44,346 --> 00:08:48,170 läheb, et hoida tagasi hüpates forth--, et massiivi tipus 201 00:08:48,170 --> 00:08:51,640 on hunnik erinevaid sõlmed tulevad välja sellest. 202 00:08:51,640 --> 00:08:57,140 See on 26 või 27, kui soovite lisada extra iseloomu. 203 00:08:57,140 --> 00:09:01,320 Ja see annab meile viis säilitada meie andmeid 204 00:09:01,320 --> 00:09:04,450 viisil, mis võib nägi et võid otsida super kiire. 205 00:09:04,450 --> 00:09:06,650 Mis on lookup aeg Prefiksipuu? 206 00:09:06,650 --> 00:09:07,970 >> Sihtrühm: [kuuldamatu]. 207 00:09:07,970 --> 00:09:08,300 >> HANNAH Blumberg: Jah. 208 00:09:08,300 --> 00:09:09,550 Teoreetiliselt on see pidev aega. 209 00:09:09,550 --> 00:09:13,230 See on ainult kavatse olla suurus sõna, mida soovite otsida. 210 00:09:13,230 --> 00:09:15,950 Isegi kui me lisame Hirveän rohkem sõnu meie Prefiksipuu, 211 00:09:15,950 --> 00:09:18,160 see ei hakka meid enam kindlaks teha 212 00:09:18,160 --> 00:09:19,690 kui antud sõna on Prefiksipuu. 213 00:09:19,690 --> 00:09:21,412 Nii see on tõesti kena. 214 00:09:21,412 --> 00:09:23,697 >> Sihtrühm: Kas sa lihtsalt initsialiseerida et massiivi? 215 00:09:23,697 --> 00:09:24,780 Sa jäid punkti või kaks. 216 00:09:24,780 --> 00:09:26,130 Kas sa lihtsalt rääkida et teist? 217 00:09:26,130 --> 00:09:26,680 >> HANNAH Blumberg: lgatahes. 218 00:09:26,680 --> 00:09:27,590 Hea küsimus. 219 00:09:27,590 --> 00:09:31,140 Küsimus oli, me on massiiv, mis on 220 00:09:31,140 --> 00:09:34,180 läheb on sõlm staar mitte ainult sõlm, eks? 221 00:09:34,180 --> 00:09:35,180 Cool. 222 00:09:35,180 --> 00:09:37,990 Nii et siin see, mida me ütleme on meie massiiv on lihtsalt 223 00:09:37,990 --> 00:09:40,035 saab olema viiteid teistele massiivid. 224 00:09:40,035 --> 00:09:42,910 Nii see essentially-- seda liiki tundub ahelloend sel viisil 225 00:09:42,910 --> 00:09:46,620 kus iga neist lastest Lihtsalt punkti järgmise sõlme. 226 00:09:46,620 --> 00:09:49,030 >> Ja nii, et me tegelikult kindlaks, hei, OK, 227 00:09:49,030 --> 00:09:52,320 oleme kordasid läbi kogu Ühesõnaga, on see sõna sõnastikku 228 00:09:52,320 --> 00:09:54,476 me lihtsalt vaadata seda is_word. 229 00:09:54,476 --> 00:09:55,100 Hea küsimus. 230 00:09:55,100 --> 00:09:55,675 Jah. 231 00:09:55,675 --> 00:09:56,216 Sihtrühm: OK. 232 00:09:56,216 --> 00:09:57,470 Mis oli runtime jaoks Prefiksipuu? 233 00:09:57,470 --> 00:09:58,386 >> HANNAH Blumberg: Muidugi. 234 00:09:58,386 --> 00:10:01,852 Nii runtime Prefiksipuu eest lookup saab olema pidev aega. 235 00:10:01,852 --> 00:10:04,310 Nii et see on lihtsalt saab olema tähtede arv sõna. 236 00:10:04,310 --> 00:10:06,310 See ei sõltu Suurus sõnastik 237 00:10:06,310 --> 00:10:09,510 või suurus andmestruktuuri. 238 00:10:09,510 --> 00:10:12,170 Nii et siin on veidi lihtsam näide. 239 00:10:12,170 --> 00:10:15,430 >> Sel juhul on näha, et Sõna nahkhiir on sõnastikus 240 00:10:15,430 --> 00:10:18,900 ja teil on zoom, kuid sa ei ole midagi loomaaias. 241 00:10:18,900 --> 00:10:20,050 Kuidas me teeme loomaaed? 242 00:10:20,050 --> 00:10:24,276 Kuidas lisada zoo meie sõnastik, meie Prefiksipuu? 243 00:10:24,276 --> 00:10:24,776 Jah. 244 00:10:24,776 --> 00:10:27,014 >> Sihtrühm: Tee is_word tõsi [kuuldamatu]. 245 00:10:27,014 --> 00:10:27,930 HANNAH Blumberg: Hea. 246 00:10:27,930 --> 00:10:31,731 Nii et me ütleks, et Z-O-O, ja siis me suudaksime soovite kontrollida off, et kast samuti. 247 00:10:31,731 --> 00:10:32,230 Hea. 248 00:10:32,230 --> 00:10:35,160 249 00:10:35,160 --> 00:10:37,930 Olgem võrrelda väga lühidalt püüab versus hash tabeleid. 250 00:10:37,930 --> 00:10:39,770 Püüab on tõesti suur sest, nagu me ütlesime, 251 00:10:39,770 --> 00:10:41,610 nad annavad pideva tööajaga otsing. 252 00:10:41,610 --> 00:10:44,285 Aga suur puudus on nad humongous. 253 00:10:44,285 --> 00:10:46,160 Saad mõttes, isegi vaadates seda, 254 00:10:46,160 --> 00:10:48,454 et see läheb võtma tohutu mälu. 255 00:10:48,454 --> 00:10:50,620 Nii nad ei kavatse olla palju suurem kui hash tabeleid, 256 00:10:50,620 --> 00:10:52,270 aga nad ei kavatse anda meil palju kiiremini lookup korda. 257 00:10:52,270 --> 00:10:54,478 Nii et mingi oma Miinuseks, mida sa hoolid, 258 00:10:54,478 --> 00:10:57,350 kas see on kiirus või mälu. 259 00:10:57,350 --> 00:11:02,251 Kõik küsimused ühelgi et kõik C andmestruktuuride. 260 00:11:02,251 --> 00:11:02,750 Ilus. 261 00:11:02,750 --> 00:11:03,250 OKEI. 262 00:11:03,250 --> 00:11:07,322 Me läheme edasi liikuda vähe natuke veebi arengut Maria. 263 00:11:07,322 --> 00:11:08,280 MARIA ZLATKOVA: Armas. 264 00:11:08,280 --> 00:11:09,036 OKEI. 265 00:11:09,036 --> 00:11:10,380 >> HANNAH Blumberg: Võite kasutada oma sülearvuti. 266 00:11:10,380 --> 00:11:11,255 >> MARIA ZLATKOVA: Nice. 267 00:11:11,255 --> 00:11:13,320 268 00:11:13,320 --> 00:11:14,912 OK, lahe. 269 00:11:14,912 --> 00:11:17,120 Astume nüüd veebis areng, me rääkisime natuke 270 00:11:17,120 --> 00:11:20,680 umbes õiguste muutmist faile ja katalooge 271 00:11:20,680 --> 00:11:24,190 nii, et nad võivad olla kättesaadavad teiste kasutajatega, et maailmas, 272 00:11:24,190 --> 00:11:28,640 ja nii, et me näeme, kuidas Põhimõtteliselt saame saata nad 273 00:11:28,640 --> 00:11:32,600 kui me arendame asjad veebilehed et oleme enamasti teinud. 274 00:11:32,600 --> 00:11:36,400 >> Nii nägime chmod käsk, mis on muutmise režiimi, põhimõtteliselt. 275 00:11:36,400 --> 00:11:39,300 See on Linux käsk ja see muudab juurdepääsu õigused 276 00:11:39,300 --> 00:11:40,410 failisüsteemi objektide kohta. 277 00:11:40,410 --> 00:11:43,370 Ja failisüsteemi objekti lihtsalt kataloogi, faili 278 00:11:43,370 --> 00:11:46,810 midagi, mida saab muuta õiguseid. 279 00:11:46,810 --> 00:11:53,750 >> Nii, et näha faili õigusi, me tippige käsk ls nimekirja, -l. 280 00:11:53,750 --> 00:11:56,500 Ja kui me kirjutame, et me tavaliselt näha mõningaid õigusi 281 00:11:56,500 --> 00:11:59,660 mis näevad välja justkui niimoodi ees kataloogi nime. 282 00:11:59,660 --> 00:12:01,260 Nii d viitab kataloogis. 283 00:12:01,260 --> 00:12:05,930 Ja siis on meil kolm triaadid et põhimõtteliselt 284 00:12:05,930 --> 00:12:11,675 vaadake õigusi kas kasutaja, grupi või kogu maailmas. 285 00:12:11,675 --> 00:12:16,490 >> Liigid õigusi, et suudame on nende kolme inimrühma 286 00:12:16,490 --> 00:12:20,830 kas r lugemiseks, w kirjutada, ja x sooritamiseks. 287 00:12:20,830 --> 00:12:23,650 Ja meil on neid, rühma ja ka maailma. 288 00:12:23,650 --> 00:12:26,940 Keeruline on see, et mõnikord kui me tippige chmod käsk, 289 00:12:26,940 --> 00:12:32,960 meil oleks tüüp mõned number mis koosnes kolmest bitti. 290 00:12:32,960 --> 00:12:36,990 Nii et me võiks teha nagu 777 ja et põhimõtteliselt 291 00:12:36,990 --> 00:12:40,450 nimetatud lisaväärtus Iga nimetatud kolmikut 292 00:12:40,450 --> 00:12:45,060 sest r viitaks 4, w oleks viidata 2 ja x viitaks 1, 293 00:12:45,060 --> 00:12:50,020 nii et kui liita, kõik numbrid oleks tulnud alla kumulatiivne arv 294 00:12:50,020 --> 00:12:52,750 kumulatiivne väärtus vahemikus 0 kuni 7. 295 00:12:52,750 --> 00:12:55,150 Nii võiksime ka 0 ilma õigused üldse. 296 00:12:55,150 --> 00:12:58,200 Ja mis oleks põhimõtteliselt annab meile load kas kasutaja 297 00:12:58,200 --> 00:13:00,450 rühma või kogu maailmas. 298 00:13:00,450 --> 00:13:02,620 Kõik küsimused selle siiani? 299 00:13:02,620 --> 00:13:05,331 >> Sihtrühm: Sa ütlesid, et lugeda oli 4? 300 00:13:05,331 --> 00:13:06,164 MARIA ZLATKOVA: Jah. 301 00:13:06,164 --> 00:13:07,568 Sihtrühm: [kuuldamatu]. 302 00:13:07,568 --> 00:13:08,504 HANNAH Blumberg: Jah. 303 00:13:08,504 --> 00:13:11,790 Sihtrühm: Ja siis, lisades kõik need teised näitaks oma number. 304 00:13:11,790 --> 00:13:12,665 MARIA ZLATKOVA: Jah. 305 00:13:12,665 --> 00:13:14,970 Jah. 306 00:13:14,970 --> 00:13:17,810 Need on suured küsimused. 307 00:13:17,810 --> 00:13:20,490 Armas. 308 00:13:20,490 --> 00:13:25,340 Edasi me hüppas HTML ja veidi rohkem veebi arengut. 309 00:13:25,340 --> 00:13:27,990 Nii HTML tähendab lihtsalt HyperText Markup Language. 310 00:13:27,990 --> 00:13:30,460 Ja see on juurdehindlus keeles, mis on standard 311 00:13:30,460 --> 00:13:32,720 et seda kasutatakse, et luua veebilehti. 312 00:13:32,720 --> 00:13:35,750 >> Seda nimetatakse märgistuskeel sest see ei ole tegelikult koostatud. 313 00:13:35,750 --> 00:13:40,310 See ei ütle, kuidas mingi kood peaks täidetakse või midagi sellist. 314 00:13:40,310 --> 00:13:44,800 See lihtsalt joonistab ja kirjeldab, kuidas veebi 315 00:13:44,800 --> 00:13:46,840 lk tuleks luua iga oma elemendi 316 00:13:46,840 --> 00:13:48,460 ja kuidas nad peaksid otsima kasutaja. 317 00:13:48,460 --> 00:13:53,090 318 00:13:53,090 --> 00:13:57,110 >> Mõned HTML sildid, mis me läks üle on järgmine. 319 00:13:57,110 --> 00:14:00,500 Kõik meie HTML dokumendile algas DOCTYPE html. 320 00:14:00,500 --> 00:14:02,550 Siis meil on alati html tag. 321 00:14:02,550 --> 00:14:03,930 Meil on pea ja keha. 322 00:14:03,930 --> 00:14:07,890 Ja see on oluline, et HTML on selline pesastatud struktuuri 323 00:14:07,890 --> 00:14:09,280 sest see on väga selge. 324 00:14:09,280 --> 00:14:13,200 Ja siis see muutub väga selge, kui me vaja avada ja tegelikult lähedal sildid. 325 00:14:13,200 --> 00:14:18,400 Ja meil on alati vaja sulgeda sildid, et oleme avanud. 326 00:14:18,400 --> 00:14:23,170 >> Ja siin on meil mõned liigid asju ette, et me tahame olla. 327 00:14:23,170 --> 00:14:26,580 Nii et meil on näiteks pealkiri CS50. 328 00:14:26,580 --> 00:14:31,980 Ja siis me tegelikult võimalik ühendada laadilehte 329 00:14:31,980 --> 00:14:34,030 mis määrab, kuidas me stiilis meie veebilehel. 330 00:14:34,030 --> 00:14:35,650 See on CSS. 331 00:14:35,650 --> 00:14:39,320 Me läheme üle seda Järgmise paari slaidid samuti. 332 00:14:39,320 --> 00:14:42,580 >> Kehas, seadsime mõned tunnid ja sümbolid. 333 00:14:42,580 --> 00:14:45,860 Ja meeldetuletuseks, jälle, ID on unikaalne ja klassid 334 00:14:45,860 --> 00:14:47,390 saab määrata mitu elementi. 335 00:14:47,390 --> 00:14:52,110 Ja see tähendab lihtsalt, et saame kasutada klassi ja sümbolid 336 00:14:52,110 --> 00:14:55,860 teistes structures-- nii, et Näiteks jooksul CSS failide või stiili 337 00:14:55,860 --> 00:15:00,940 sheets-- viidata konkreetsetele elemendid ja põhimõtteliselt öelda, et tahame stiilis 338 00:15:00,940 --> 00:15:03,280 või kujundada mõned element mõnel kindlal viisil. 339 00:15:03,280 --> 00:15:06,440 Ja me nimetame neid oma ID ja klassid. 340 00:15:06,440 --> 00:15:09,870 Ja me saame viidata ka erinevaid asju sümbolitega samuti, 341 00:15:09,870 --> 00:15:13,830 kuid sümbolid ja klasside lihtsalt annab meile mitmekülgsus ja mida konkreetselt me 342 00:15:13,830 --> 00:15:15,850 tahan viidata. 343 00:15:15,850 --> 00:15:19,620 >> Nii lihtsalt näide. 344 00:15:19,620 --> 00:15:22,730 Saame taas jooksul CSS faili, kus me 345 00:15:22,730 --> 00:15:25,770 soovite määrata mõne style-- nii värve, fonte 346 00:15:25,770 --> 00:15:30,340 ja värki selle-- saame määratleda stiili keha. 347 00:15:30,340 --> 00:15:32,640 Nii et seda defineeriks Kogu keha tag. 348 00:15:32,640 --> 00:15:36,160 Aga siis me saame määrata ka stiili jaoks #title. 349 00:15:36,160 --> 00:15:40,390 Ja jälle hashtag viitab meie ID ja dot viitab meie klassis. 350 00:15:40,390 --> 00:15:44,760 >> Ja siis, et Infot me Samuti saab määrata mõningaid omadusi. 351 00:15:44,760 --> 00:15:49,750 Ja jällegi, kui me läheme tagasi, oli meil klassi nimetatakse info ja meie ID pealkiri. 352 00:15:49,750 --> 00:15:53,422 Ja me näeme, et me nimetame neile #title ja Infot. 353 00:15:53,422 --> 00:15:55,380 Sihtrühm: Kas Te ütleksite hashtag [? vastu mind? ?] 354 00:15:55,380 --> 00:15:55,725 MARIA ZLATKOVA: Vabandust? 355 00:15:55,725 --> 00:15:58,120 Sihtrühm: Kas Te ütleksite hashtag [? vastu mind? ?] 356 00:15:58,120 --> 00:16:01,400 MARIA ZLATKOVA: Hashtag tähendab ID, nii #title 357 00:16:01,400 --> 00:16:07,890 viitab iganes elemendid on see ID nimetatakse pealkiri. 358 00:16:07,890 --> 00:16:10,735 Ja siis dot viitab klassi. 359 00:16:10,735 --> 00:16:14,590 Nii Infot viitab see element sest tal on klassis info. 360 00:16:14,590 --> 00:16:15,090 Jep. 361 00:16:15,090 --> 00:16:17,905 >> Sihtrühm: Miks sa eristada neid HTML? 362 00:16:17,905 --> 00:16:20,985 Miks sa ütled teatud asjad ID ja teatud asjad on klassis? 363 00:16:20,985 --> 00:16:22,610 MARIA ZLATKOVA: See on lihtsalt kuni Sa-- 364 00:16:22,610 --> 00:16:24,151 HANNAH Blumberg: Korda küsimust. 365 00:16:24,151 --> 00:16:25,370 MARIA ZLATKOVA: Oh, vabandust. 366 00:16:25,370 --> 00:16:29,480 Miks me eristada teatud elemendid IDS ja muid elemente nagu klassi? 367 00:16:29,480 --> 00:16:34,760 See on lihtsalt sellepärast, et see on tõesti sageli disaini valik. 368 00:16:34,760 --> 00:16:38,520 See annab teile palju mitmekülgsus on 369 00:16:38,520 --> 00:16:43,250 võimalik öelda, et ma tahan seda eriteema on see ID, sest nad tahavad 370 00:16:43,250 --> 00:16:45,300 teha palju asju sellega, ja ma ainult 371 00:16:45,300 --> 00:16:50,010 soovite määratleda stiili, teatud stiili või värvi iganes selle eseme. 372 00:16:50,010 --> 00:16:52,630 Ja kuidas seda teha on lihtsalt andes talle ID. 373 00:16:52,630 --> 00:16:55,060 >> Ja siis, kui ma tahan olla paari erinevaid objekte 374 00:16:55,060 --> 00:16:58,940 võttes, et selle asemel läheb ja millega their-- 375 00:16:58,940 --> 00:17:03,840 selle asemel, et teha seda, mida tag sest sildist 376 00:17:03,840 --> 00:17:07,369 valid kogu tag iga kord, kui silt on kasutatud, 377 00:17:07,369 --> 00:17:09,740 saate määrata klassi mitu elementi. 378 00:17:09,740 --> 00:17:15,109 Ja siis lihtsalt juurde, et klassi ja öelda Ma tahan stiilis Selle klassi nii. 379 00:17:15,109 --> 00:17:17,579 >> Ja jälle klassi saab olla mitu erinevat toodet 380 00:17:17,579 --> 00:17:21,150 ja ID peab olema unikaalne. 381 00:17:21,150 --> 00:17:21,849 Hea küsimusi. 382 00:17:21,849 --> 00:17:25,339 Muid küsimusi? 383 00:17:25,339 --> 00:17:26,220 OK, awesome. 384 00:17:26,220 --> 00:17:30,680 385 00:17:30,680 --> 00:17:35,330 Jällegi, see on, kuidas neid selektoreid on viidatud CSS koos hashtag, 386 00:17:35,330 --> 00:17:40,031 dot, või ilma midagi määrates stiilis mõned sildi, 387 00:17:40,031 --> 00:17:40,530 nagu keha. 388 00:17:40,530 --> 00:17:43,500 389 00:17:43,500 --> 00:17:47,860 Ja siin on meil üldiselt süntaks, kuidas seda tehakse. 390 00:17:47,860 --> 00:17:52,830 391 00:17:52,830 --> 00:17:55,680 >> Kordan mõned parimad tavad HTML ja CSS, 392 00:17:55,680 --> 00:17:59,170 peame taas sulge kõik HTML sildid, et avame. 393 00:17:59,170 --> 00:18:03,950 Ja mida soovitame teil teha oma lõplik projekte, 394 00:18:03,950 --> 00:18:10,560 samuti CS50 Finance, on teha Veenduge, et kõik teie HTML kinnitab. 395 00:18:10,560 --> 00:18:12,920 Ja see on tehtud koos W3 süntaksi. 396 00:18:12,920 --> 00:18:16,940 >> Ja siis, mida me tegime ja mida soovitame teed 397 00:18:16,940 --> 00:18:19,790 on eraldades stiili, nii et CSS on juurdehindlus HTML. 398 00:18:19,790 --> 00:18:24,210 Nii midagi, mis käsitleb kuidas Sinu lehele läheb visuaalselt välja 399 00:18:24,210 --> 00:18:27,330 ja kuidas see saab muuta peaks minema CSS dokument. 400 00:18:27,330 --> 00:18:33,880 Ja siis oma juurdehindlus öelda, kuidas asjad on teineteise suhtes on HTML, 401 00:18:33,880 --> 00:18:37,550 ja mis peaks minema sees oma HTML dokumente. 402 00:18:37,550 --> 00:18:38,590 Kas küsimusi on? 403 00:18:38,590 --> 00:18:39,226 Mhm. 404 00:18:39,226 --> 00:18:42,628 >> Sihtrühm: Mis täpselt toimub edasi lehel valideerimine 405 00:18:42,628 --> 00:18:47,945 kui me valideerida HTML, et [kuuldamatu] loodud? 406 00:18:47,945 --> 00:18:49,850 >> MARIA ZLATKOVA: Nii what-- arvan, et sa. 407 00:18:49,850 --> 00:18:53,020 Mis täpselt toimub edasi lehel valideerimine 408 00:18:53,020 --> 00:18:55,570 ja miks me peame seda tegema? 409 00:18:55,570 --> 00:18:59,180 Põhimõtteliselt me ​​peame tegema, et sest palju kordi, brauseri, 410 00:18:59,180 --> 00:19:01,390 Kui te ei sulgu silt või midagi sellist, 411 00:19:01,390 --> 00:19:05,680 Teie brauser on ikka veel muuda lehekülg ja võib veel palju tööd, 412 00:19:05,680 --> 00:19:10,840 aga see on hea tava, et veenduda, et oled jälle suletud kõik oma silte, 413 00:19:10,840 --> 00:19:13,190 et kõik oma elemendid on nii, et nad peaksid olema, 414 00:19:13,190 --> 00:19:18,470 ja põhimõtteliselt, et see, mida konventsioone, mis on eelseadistatud. 415 00:19:18,470 --> 00:19:21,970 >> See on jällegi vaid asi, mida tuleks 416 00:19:21,970 --> 00:19:24,040 saab õppida tegema, vastandina võttes 417 00:19:24,040 --> 00:19:25,696 sloppier kood ja värki. 418 00:19:25,696 --> 00:19:26,688 Jah. 419 00:19:26,688 --> 00:19:27,680 Oi vabandust. 420 00:19:27,680 --> 00:19:29,221 Ma arvasin, et sa tõsta oma käsi. 421 00:19:29,221 --> 00:19:31,240 Sihtrühm: Ei, ma olin lihtsalt [kuuldamatu]. 422 00:19:31,240 --> 00:19:33,800 >> MARIA ZLATKOVA: OK. 423 00:19:33,800 --> 00:19:34,640 >> Sihtrühm: Aitäh. 424 00:19:34,640 --> 00:19:36,181 >> MARIA ZLATKOVA: Muidugi, aitäh. 425 00:19:36,181 --> 00:19:41,680 Nii jälle toimub, kuidas teabe edastamise 426 00:19:41,680 --> 00:19:44,630 ja kommunikatsiooni mudelid teabe edastamiseks. 427 00:19:44,630 --> 00:19:45,730 TCP / IP. 428 00:19:45,730 --> 00:19:48,600 TCP tähendab lihtsalt Ülekanne Control Protocol ja IP 429 00:19:48,600 --> 00:19:51,260 viitab Internet Protocol. 430 00:19:51,260 --> 00:19:54,275 Ja see lihtsalt viitab kuidas on andmed esitanud. 431 00:19:54,275 --> 00:19:59,470 432 00:19:59,470 --> 00:20:02,710 >> Kui meil on mõningaid andmeid, et peab toimetatakse teile-- 433 00:20:02,710 --> 00:20:06,770 teete taotluse teatud server. 434 00:20:06,770 --> 00:20:09,800 Näiteks kui me pääsemast cs50.net, 435 00:20:09,800 --> 00:20:12,420 teeme taotluse CS50 server ja me 436 00:20:12,420 --> 00:20:14,720 näha, et me tahame saada selline teave. 437 00:20:14,720 --> 00:20:19,294 Ja siis põhinevad käesoleva protokolli kuidas seda teavet ei esita, 438 00:20:19,294 --> 00:20:21,460 server annab infot meile tagasi, kliendi. 439 00:20:21,460 --> 00:20:25,590 Ja siis me saame näha teave lehekülje 440 00:20:25,590 --> 00:20:26,390 ja siis kasuta seda. 441 00:20:26,390 --> 00:20:29,300 442 00:20:29,300 --> 00:20:33,050 >> Siis Hypertext Transfer Protocol on lihtsalt üks protokoll või seada 443 00:20:33,050 --> 00:20:37,470 konventsioone, mis määrab, kuidas veebibrauser ja veebiserver 444 00:20:37,470 --> 00:20:38,890 peaks suhtlema. 445 00:20:38,890 --> 00:20:43,730 Ja paneb see kõik koos, HTTP jällegi 446 00:20:43,730 --> 00:20:50,960 lihtsalt määratleb, kuidas seda hüperteksti määratletud poolt HTML, et me oleme töötanud see, 447 00:20:50,960 --> 00:20:59,500 kuidas see peaks Teieni ja kuidas need andmed, mis on Teile saadetud 448 00:20:59,500 --> 00:21:00,540 saab sulle. 449 00:21:00,540 --> 00:21:05,990 >> Ja sellepärast, kui te poisid mäletan alates klassis oli meil palju taotlusi 450 00:21:05,990 --> 00:21:08,970 ja meil oli palju süntaks Nende nõuab, et me oleme 451 00:21:08,970 --> 00:21:10,250 lähe kohe sinna. 452 00:21:10,250 --> 00:21:13,270 Nii jälle, kui me saata taotluse server, 453 00:21:13,270 --> 00:21:15,920 meil määratleda paar asja. 454 00:21:15,920 --> 00:21:18,520 Seega on meil vaja leida tüüp Taotluse et me kehtestamisel. 455 00:21:18,520 --> 00:21:22,180 Ja jälle on meil näiteks GET on ühte tüüpi meetod 456 00:21:22,180 --> 00:21:25,290 et meil on meie taotlus. 457 00:21:25,290 --> 00:21:31,710 >> Ja siis HTTP / 1.1 on alles protokolli, et me kasutame praegu. 458 00:21:31,710 --> 00:21:34,224 459 00:21:34,224 --> 00:21:36,890 Enamik aega, et läheb protokollile, et me kasutame. 460 00:21:36,890 --> 00:21:40,290 Nii et kui teil on küsimus niimoodi oma viktoriini. 461 00:21:40,290 --> 00:21:43,120 See on konventsioonid et meil on nii palju. 462 00:21:43,120 --> 00:21:46,580 >> Längkriipsu viitab, millist asju me taotlenud. 463 00:21:46,580 --> 00:21:52,810 Siis meie host on näiteks selles Juhul, me üritame minna google.com. 464 00:21:52,810 --> 00:21:57,070 Nii et see on raha hulk. 465 00:21:57,070 --> 00:21:59,330 See on taotluse liik mida võiks saata. 466 00:21:59,330 --> 00:22:02,890 >> Ja siis tüüpi vastuse, mis võiks saadetakse jällegi põhineb Selle protokolli 467 00:22:02,890 --> 00:22:05,190 on jälle HTTP / 1.1. 468 00:22:05,190 --> 00:22:07,150 Nii et HTTP versioon uuesti. 469 00:22:07,150 --> 00:22:09,730 200 OK on just staatus koodi. 470 00:22:09,730 --> 00:22:12,860 Ja see OK on lihtsalt fraas põhineb selle staatuse koodi. 471 00:22:12,860 --> 00:22:15,520 >> Ja siis Content-Type viitab tüüpi 472 00:22:15,520 --> 00:22:20,295 mis tagastatakse sulle, et on eest, et veebilehe, et saate 473 00:22:20,295 --> 00:22:22,570 ja et teie brauser saab muuta hiljem. 474 00:22:22,570 --> 00:22:24,401 Ja see on text / html. 475 00:22:24,401 --> 00:22:26,660 >> Sihtrühm: Mida 1.1 tähendab? 476 00:22:26,660 --> 00:22:29,910 >> MARIA ZLATKOVA: See on lihtsalt versioon of-- oh, mida ei 1.1 tähendab? 477 00:22:29,910 --> 00:22:37,075 See on lihtsalt versioon, HTTP versioon protokoll, mis me kasutame. 478 00:22:37,075 --> 00:22:37,700 Hea küsimus. 479 00:22:37,700 --> 00:22:38,366 Muud küsimused? 480 00:22:38,366 --> 00:22:41,222 481 00:22:41,222 --> 00:22:45,080 >> Sihtrühm: Kas sa Kokkuvõttes Content-Type reaalne kiire? 482 00:22:45,080 --> 00:22:48,150 >> MARIA ZLATKOVA: Nii et on see, mida server. 483 00:22:48,150 --> 00:22:51,020 tüüpi information-- mis on Sisu tüübi järgi oli küsimusi. 484 00:22:51,020 --> 00:22:53,400 Nii et oli tüübist informatsiooni, et saad tagasi 485 00:22:53,400 --> 00:22:58,200 serverist tüübist andmed, et brauser saab siis 486 00:22:58,200 --> 00:23:00,604 muuta, et te kasutate. 487 00:23:00,604 --> 00:23:03,020 Sihtrühm: Kas see, mida see Protokolli ütlen teile teha? 488 00:23:03,020 --> 00:23:03,390 MARIA ZLATKOVA: Vabandust? 489 00:23:03,390 --> 00:23:05,380 Sihtrühm: Kas see, mida protokolli öelda? 490 00:23:05,380 --> 00:23:05,915 MARIA ZLATKOVA: protocol-- 491 00:23:05,915 --> 00:23:07,940 Sihtrühm: --what Content-Type on või what-- 492 00:23:07,940 --> 00:23:12,040 MARIA ZLATKOVA: Protokoll põhineb nüüd-- mis on protokolli ütlen teile? 493 00:23:12,040 --> 00:23:16,070 See on lihtsalt nii et see teave 494 00:23:16,070 --> 00:23:18,610 toimetati sa põhinev kohta, millist protokolli 495 00:23:18,610 --> 00:23:21,830 Kas sellest teabest oli saanud toimetatakse sulle tagasi. 496 00:23:21,830 --> 00:23:23,500 Kas see teeb mõttes omamoodi? 497 00:23:23,500 --> 00:23:28,320 498 00:23:28,320 --> 00:23:30,070 HANNAH Blumberg: Sa ei mõtle protokoll 499 00:23:30,070 --> 00:23:33,300 kui a-- Ma arvan, professor Humala kirjeldas 500 00:23:33,300 --> 00:23:36,910 klassis, kui selline nagu a-- see on nagu samaväärne inimese handshaking. 501 00:23:36,910 --> 00:23:44,930 Ütle, mõtled, ma olen taotluse ja ma oska HTTP versioon 1.1. 502 00:23:44,930 --> 00:23:48,770 Ja siis server ütleb, oh, OK, I-- ja nii on olemas. 503 00:23:48,770 --> 00:23:51,337 Ma tean ka, kuidas tulla toime HTTP / 1.1. 504 00:23:51,337 --> 00:23:53,170 Ja ma annan Teile tagasi mõned sisu. 505 00:23:53,170 --> 00:23:56,230 Sel juhul läheb tüübiks text / html. 506 00:23:56,230 --> 00:23:58,480 Nii et see on omamoodi lihtsalt viis neist communicating-- 507 00:23:58,480 --> 00:24:00,480 >> MARIA ZLATKOVA: See on lihtsalt kinnitades, et sa oled 508 00:24:00,480 --> 00:24:03,290 nii järgides sama protokolli ja et nii 509 00:24:03,290 --> 00:24:06,620 kliendi ja server-- nii Teie brauser ja server-- 510 00:24:06,620 --> 00:24:09,280 omamoodi tea, mida sa oled räägi ja on 511 00:24:09,280 --> 00:24:12,557 konventsiooniga möödub andmeid. 512 00:24:12,557 --> 00:24:17,022 >> Sihtrühm: Nii Content-Type part-- Sisu-Type text / html-- see on 513 00:24:17,022 --> 00:24:18,521 Eraldi osa samal sõnum? 514 00:24:18,521 --> 00:24:20,509 Või on see osa oletame, 200? 515 00:24:20,509 --> 00:24:22,010 Kas 200 ütle neile, et ega on-- 516 00:24:22,010 --> 00:24:23,770 >> MARIA ZLATKOVA: 200 ütleb, et see kõik läks OK. 517 00:24:23,770 --> 00:24:27,900 Ja siis sisu tüüp on omamoodi Eraldi osa sama sõnumit, 518 00:24:27,900 --> 00:24:34,274 ja öeldes asi, mis ma Tagastatud on selline text / html. 519 00:24:34,274 --> 00:24:35,690 See lihtsalt annab rohkem infot. 520 00:24:35,690 --> 00:24:38,700 521 00:24:38,700 --> 00:24:39,995 Kas midagi lisada? 522 00:24:39,995 --> 00:24:40,495 OKEI. 523 00:24:40,495 --> 00:24:43,590 524 00:24:43,590 --> 00:24:46,530 >> Muid küsimusi selle? 525 00:24:46,530 --> 00:24:48,370 Fantastiline. 526 00:24:48,370 --> 00:24:54,070 Nii mõned teised HTTP staatused, et me võiksime saada lisaks 200 OK, 527 00:24:54,070 --> 00:24:59,500 need, mis me oleme näinud äkki võib-olla palju on 403 ja 404. 528 00:24:59,500 --> 00:25:05,190 Nii 404, kui sa üritasid Juurdepääs midagi, mida ei ole olemas. 529 00:25:05,190 --> 00:25:10,460 Nii näiteks oma CS50 Finance psets, 530 00:25:10,460 --> 00:25:15,640 kui sa olid muudab quote.html ja sa ei pea selle faili 531 00:25:15,640 --> 00:25:19,740 vaid siis tuli quote.php, et tulemuseks oleks 404 Not Found 532 00:25:19,740 --> 00:25:21,600 sest fail ei pruugi eksisteerida. 533 00:25:21,600 --> 00:25:25,690 >> Sest 403 keelatud, et viitab õigused. 534 00:25:25,690 --> 00:25:31,150 Nii et kui mõned faili ei ole loetav maailma, võite saada 403 tagasi. 535 00:25:31,150 --> 00:25:34,510 536 00:25:34,510 --> 00:25:37,810 Mõned teised, et sa võiksid get-- 301, püsivalt liigutatud; 537 00:25:37,810 --> 00:25:41,300 302, leitud; 304, Modifitseeritud; 400, Bad Request; 538 00:25:41,300 --> 00:25:47,330 ja siis Internal Server Error eest 500 ja 503, mis ei ole kättesaadavad. 539 00:25:47,330 --> 00:25:48,140 Jah. 540 00:25:48,140 --> 00:25:51,490 >> Sihtrühm: me oodata pähe kõik need staatused? 541 00:25:51,490 --> 00:25:53,739 MARIA ZLATKOVA: oleksin neid oma petma lehte. 542 00:25:53,739 --> 00:25:55,146 [NAER] 543 00:25:55,146 --> 00:25:59,954 Sihtrühm: Kas me oodata tea, mis vallandab iga üks? 544 00:25:59,954 --> 00:26:00,995 MARIA ZLATKOVA: Kas nad on? 545 00:26:00,995 --> 00:26:03,870 HANNAH Blumberg: Sest need, mis me oleme joosta into-- nii küsimus was-- 546 00:26:03,870 --> 00:26:08,010 MARIA ZLATKOVA: Kas nad on eeldatavasti tean, mida igaüks neist staatus 547 00:26:08,010 --> 00:26:09,330 koodid võivad vallanduda? 548 00:26:09,330 --> 00:26:13,240 Nii et need, kes me oleme, mida kasutatakse ja jooksin, ma ütleksin, jah. 549 00:26:13,240 --> 00:26:16,610 Nii oleme kindlasti näinud 200 OK ja loenguid seda psets. 550 00:26:16,610 --> 00:26:19,071 Me oleme näinud 403, 404. 551 00:26:19,071 --> 00:26:20,550 Teiste jaoks? 552 00:26:20,550 --> 00:26:22,690 >> HANNAH Blumberg: oleksin öelda 500 tundub aus mäng. 553 00:26:22,690 --> 00:26:23,330 >> MARIA ZLATKOVA: 500, yeah. 554 00:26:23,330 --> 00:26:24,246 >> HANNAH Blumberg: Jah. 555 00:26:24,246 --> 00:26:27,006 Lihtsalt on üldises mõttes mis põhjustab neid. 556 00:26:27,006 --> 00:26:28,880 Ja ka just need nimed, saate liiki 557 00:26:28,880 --> 00:26:32,890 nagu teha haritud arvan nii mis tegelikult põhjustas neile. 558 00:26:32,890 --> 00:26:36,919 Näiteks liikuda pidevalt, ilmselt faili on liigutatud jäädavalt. 559 00:26:36,919 --> 00:26:39,328 >> Sihtrühm: Aga eelmine eksam oli nii 560 00:26:39,328 --> 00:26:41,050 kuidas sa kavatsed meid vastata, et? 561 00:26:41,050 --> 00:26:42,883 >> HANNAH Blumberg: See oli väärt null punkti. 562 00:26:42,883 --> 00:26:45,870 Küsimus 418 kohta teekann on tehniliselt HTTP staatuse, 563 00:26:45,870 --> 00:26:47,090 kuid see oli seda väärt null punkti. 564 00:26:47,090 --> 00:26:48,320 Ilmselt sa ei ole eeldatavasti teavad neid. 565 00:26:48,320 --> 00:26:49,670 >> Sihtrühm: Kas see on reaalne? 566 00:26:49,670 --> 00:26:51,970 >> HANNAH Blumberg: See on tõeline üks, kuid see ei tähenda midagi. 567 00:26:51,970 --> 00:26:52,700 See on lihtsalt nali. 568 00:26:52,700 --> 00:26:55,480 569 00:26:55,480 --> 00:26:57,010 Internet inimesed on naljakad. 570 00:26:57,010 --> 00:26:59,680 >> MARIA ZLATKOVA: Hea küsimusi, poisid. 571 00:26:59,680 --> 00:27:01,452 Muid küsimusi? 572 00:27:01,452 --> 00:27:04,891 >> Sihtrühm: Mis on internal server viga? 573 00:27:04,891 --> 00:27:06,640 MARIA ZLATKOVA: sisemine serveri viga lihtsalt 574 00:27:06,640 --> 00:27:10,050 tähendab, et teil on olnud ei suuda suhelda 575 00:27:10,050 --> 00:27:13,400 server mingil põhjusel. 576 00:27:13,400 --> 00:27:15,400 Nii see ei ole tingimata midagi, mis on pistmist 577 00:27:15,400 --> 00:27:19,170 kliendi või midagi sellist. 578 00:27:19,170 --> 00:27:22,170 Ma ei tea ühtegi konkreetne näide et oleme läinud üle seletada, 579 00:27:22,170 --> 00:27:23,000 aga jah. 580 00:27:23,000 --> 00:27:23,250 >> HANNAH Blumberg: Muidugi. 581 00:27:23,250 --> 00:27:25,625 Nii näiteks nagu olgem ütled töötasid Mashup 582 00:27:25,625 --> 00:27:30,440 ja Google server läks mõned Põhjus, voolukatkestus, oletame. 583 00:27:30,440 --> 00:27:33,400 See oleks internal server viga või mingi of-- meeldib sulle 584 00:27:33,400 --> 00:27:34,630 ei saa vastust tagasi. 585 00:27:34,630 --> 00:27:35,260 >> MARIA ZLATKOVA: Jah. 586 00:27:35,260 --> 00:27:37,050 See on lihtsalt, kui sa oled ei suuda suhelda 587 00:27:37,050 --> 00:27:40,299 server mingil põhjusel, sest see läheb alla või mõnel muul põhjusel. 588 00:27:40,299 --> 00:27:44,430 589 00:27:44,430 --> 00:27:47,690 Nii hüppas PHP. 590 00:27:47,690 --> 00:27:49,930 PHP, erinevalt HTML, on programmeerimiskeelt. 591 00:27:49,930 --> 00:27:54,820 Ja me hakkasime seda kasutada, sest see on väga kasulik veebi arengut. 592 00:27:54,820 --> 00:27:56,940 >> Esmalt kasutati seda CS50 Finance. 593 00:27:56,940 --> 00:28:02,240 Ja see põhimõtteliselt aitab meil tuua koos selle juurdehindlus, projekteerimise, 594 00:28:02,240 --> 00:28:07,460 ja kuidas me tegelikult kasutada teavet näidata asju veebilehele. 595 00:28:07,460 --> 00:28:11,870 Nii PHP ise tähendab PHP Hypertext eeltöötlus, 596 00:28:11,870 --> 00:28:15,360 nii et see on rekursiivne backnorym ise. 597 00:28:15,360 --> 00:28:22,330 Ja avamist silte PHP me vasakule ja paremale nooled küsimärke 598 00:28:22,330 --> 00:28:23,060 ja php. 599 00:28:23,060 --> 00:28:25,890 >> Nii et me oleme juba näinud kamp ta. 600 00:28:25,890 --> 00:28:29,150 Nüüd me lihtsalt läheb minema üle mõned põhilised asjad midagi. 601 00:28:29,150 --> 00:28:32,280 Nii PHP muutuja nimed algavad dollari märk. 602 00:28:32,280 --> 00:28:35,660 Me ei täpsusta, jälle, muutuva kirjuta enam. 603 00:28:35,660 --> 00:28:38,450 Nii nagu me tegime koos C, me ei pea seda tegema. 604 00:28:38,450 --> 00:28:41,670 605 00:28:41,670 --> 00:28:44,490 >> Me ei saa teha hunnik erinevaid kraam muutujaid. 606 00:28:44,490 --> 00:28:47,750 Me ei pane neid kokku liitmisel neid 607 00:28:47,750 --> 00:28:52,900 dot märke, mis me ei saanud teha C uuesti. 608 00:28:52,900 --> 00:28:57,490 Jällegi, meil on natuke rohkem mitmekülgsus PHP poolest muutujaid. 609 00:28:57,490 --> 00:29:00,080 Jällegi, meil pole põhifunktsioon. 610 00:29:00,080 --> 00:29:03,370 >> Ja PHP tõlgendatakse vastandina koostamiseks 611 00:29:03,370 --> 00:29:09,970 Nii lihtsalt, kuidas me ei tee C-faile, me ei pea seda tegema PHP. 612 00:29:09,970 --> 00:29:15,440 Aga mitte see, kuidas keel juhib ise, see on tõlgendanud. 613 00:29:15,440 --> 00:29:18,550 Ja siis lõdvalt kirjutatud tähendab lihtsalt, et me 614 00:29:18,550 --> 00:29:22,490 ei ole määrata muutuja tüübist ja muutuja tüüpi 615 00:29:22,490 --> 00:29:25,415 mõistetakse käivitamisel. 616 00:29:25,415 --> 00:29:29,185 >> Sihtrühm: Aga mida sa mõtlen dot ahel? 617 00:29:29,185 --> 00:29:30,060 MARIA ZLATKOVA: Muidugi. 618 00:29:30,060 --> 00:29:37,660 Kui me tahame, et õiglus jalule together-- nii et kui meil oli mõned muutuja 619 00:29:37,660 --> 00:29:41,500 oli väärtus 3 ja meil oli teise muutuja, mis oli väärtus string, 620 00:29:41,500 --> 00:29:45,920 me võiks panna muutujaid kokku pannes dot nende vahel 621 00:29:45,920 --> 00:29:46,970 ja concatenating neid. 622 00:29:46,970 --> 00:29:52,670 Või me võiksime luua muutuja nimega nimi 623 00:29:52,670 --> 00:29:56,900 ja pane see koos concatenating kaks stringi. 624 00:29:56,900 --> 00:30:00,680 >> Nii et kui meil oli string topelt hinnapakkumisi ja paneme dot pärast seda, 625 00:30:00,680 --> 00:30:03,660 ja siis oli meil veel üks string, mis looks string üldse. 626 00:30:03,660 --> 00:30:05,242 >> Sihtrühm: OK. 627 00:30:05,242 --> 00:30:06,450 MARIA Läti: Oli selge? 628 00:30:06,450 --> 00:30:07,099 Sihtrühm: Jah. 629 00:30:07,099 --> 00:30:07,890 MARIA ZLATKOVA: OK. 630 00:30:07,890 --> 00:30:08,766 Jah. 631 00:30:08,766 --> 00:30:11,146 >> Sihtrühm: Kui sa ütled tõlgendada mitte koostada, 632 00:30:11,146 --> 00:30:14,160 sa räägid sa ei pea olema nii konkreetsete kui 633 00:30:14,160 --> 00:30:15,906 tegemist PHP versus C? 634 00:30:15,906 --> 00:30:18,085 635 00:30:18,085 --> 00:30:20,710 MARIA ZLATKOVA: Kui me ütleme tõlgendada erinevalt koostamiseks 636 00:30:20,710 --> 00:30:21,850 Mida tähendab? 637 00:30:21,850 --> 00:30:26,220 Nii et see tähendab, et me ei pea käivitatava faili käivitada PHP. 638 00:30:26,220 --> 00:30:29,870 See tähendab, et see töötab see läheb. 639 00:30:29,870 --> 00:30:31,650 Kas see on mõtet? 640 00:30:31,650 --> 00:30:32,495 Natuke rohkem. 641 00:30:32,495 --> 00:30:34,620 HANNAH Blumberg: Nii et sa ei mõtle tõlgi 642 00:30:34,620 --> 00:30:38,980 kui mõni teine ​​programm, mis vastutab läheb rida-realt läbi PHP 643 00:30:38,980 --> 00:30:42,745 ja tegelikult käivitamata, mitte et kompileerimisel kõik alla binaarne. 644 00:30:42,745 --> 00:30:46,050 See tegelikult ei tähenda midagi kuidas konkreetsed peame olema. 645 00:30:46,050 --> 00:30:49,470 Meil on veel vaja, et olla täpne, ja mitte unustasite semikooloniga, ja veenduge, 646 00:30:49,470 --> 00:30:51,470 sul on dollari märk, ja asju. 647 00:30:51,470 --> 00:30:52,240 Hea küsimus. 648 00:30:52,240 --> 00:30:53,115 >> MARIA ZLATKOVA: Jah. 649 00:30:53,115 --> 00:30:55,590 Nii rida-realt, kui Erinevalt C-faile, 650 00:30:55,590 --> 00:30:59,100 peame kogu lõplik Enne saame tegelikult kasutada seda. 651 00:30:59,100 --> 00:31:00,360 See on peamine erinevus. 652 00:31:00,360 --> 00:31:02,655 Aga jälle, me ei saa tõesti vähem spetsiifilised. 653 00:31:02,655 --> 00:31:08,760 654 00:31:08,760 --> 00:31:13,950 Nii massiivid PHP esindavad tegelikult korrastatud kaart. 655 00:31:13,950 --> 00:31:17,550 >> Nii massiivid assotsieerunud väärtused võtmed. 656 00:31:17,550 --> 00:31:23,350 Kaks võimalust tunnistada massiiv, mis põhineb selle süntaks, 657 00:31:23,350 --> 00:31:26,380 saame olla selgem öeldes on meil hulgaliselt 658 00:31:26,380 --> 00:31:31,010 ja meil on see key1 et kaardistatud Selle väärtuses1, key2 mis seob väärtus2. 659 00:31:31,010 --> 00:31:34,660 Või saame lihtsalt luua massiivi mis sisaldab väärtusi iseenesest 660 00:31:34,660 --> 00:31:38,360 ja siis võtmed mõista nii. 661 00:31:38,360 --> 00:31:40,000 Kõik küsimused selle? 662 00:31:40,000 --> 00:31:42,500 >> Sihtrühm: Mis oleks võtmed olema teine ​​näide? 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 ZLATKOVA: Näiteks, see on lihtsalt võtmed selles ei pruugi 667 00:31:55,780 --> 00:31:56,550 muuta. 668 00:31:56,550 --> 00:32:01,720 Nad lihtsalt määrata, kuidas saad kasuta väärtusi sees on. 669 00:32:01,720 --> 00:32:08,660 Nii et kui meil oli foreach loop PHP, mis 670 00:32:08,660 --> 00:32:14,760 võimaldab meil läbida kõik väärtused, saame läbida kõik väärtused, 671 00:32:14,760 --> 00:32:19,570 isegi kui meil oleks või ei oleks määratud konkreetse võtit saidi 672 00:32:19,570 --> 00:32:20,820 Eelmise süntaks. 673 00:32:20,820 --> 00:32:23,460 >> Nii isegi selline massiivi, võiksime veel 674 00:32:23,460 --> 00:32:26,260 on foreach loop mis läheb läbi iga 675 00:32:26,260 --> 00:32:31,240 väärtuste võtmes massiivi. 676 00:32:31,240 --> 00:32:36,180 Nii süntaks foreach loop, hakkame koos massiivi. 677 00:32:36,180 --> 00:32:38,720 678 00:32:38,720 --> 00:32:43,900 See $ arr muutuja on meie tegelik massiivi et meil on määratletud eelmise slaidi 679 00:32:43,900 --> 00:32:47,550 kui väärtus, mis sõna otseses mõttes läheb läbi iga väärtusi, 680 00:32:47,550 --> 00:32:50,122 olenemata sellest, kas meil oli oluline või mitte. 681 00:32:50,122 --> 00:32:53,080 Ja siis me saame teha midagi väärtus sees foreach loop. 682 00:32:53,080 --> 00:32:57,730 Nii jälle, kui meil oli hulgaliselt nagu see siin created-- 683 00:32:57,730 --> 00:33:03,270 nii et meil on võti suva ja väärtust baar, võti baz ja väärtust qux-- 684 00:33:03,270 --> 00:33:09,730 meil on foreach loop et läheb läbi massiivi põhiväärtus 685 00:33:09,730 --> 00:33:11,900 ja tehke midagi võtme ja / või väärtuse. 686 00:33:11,900 --> 00:33:15,980 Aga me ei pruugi alati pea olema foreach silmad, et 687 00:33:15,980 --> 00:33:19,410 läheb läbi massiivi võti kaardi väärtus. 688 00:33:19,410 --> 00:33:26,060 Me ei lähe läbi foreach loop massiivi väärtuse. 689 00:33:26,060 --> 00:33:28,990 >> HANNAH Blumberg: Ja ma arvan mina-- oli oma küsimus, mida 690 00:33:28,990 --> 00:33:31,229 on kaudne indeks? 691 00:33:31,229 --> 00:33:31,895 Sihtrühm: Kinda. 692 00:33:31,895 --> 00:33:32,240 MARIA ZLATKOVA: Oh. 693 00:33:32,240 --> 00:33:33,406 HANNAH Blumberg: Jah, jah. 694 00:33:33,406 --> 00:33:36,150 Ühesõnaga, kui sa ei määra oluline, see saab olema 01. 695 00:33:36,150 --> 00:33:37,140 >> MARIA ZLATKOVA: Jah. 696 00:33:37,140 --> 00:33:41,718 Just nagu C, see on null indekseeritud kui sa ei määra oluline. 697 00:33:41,718 --> 00:33:42,384 Sihtrühm: Vabandust. 698 00:33:42,384 --> 00:33:43,827 Kas sa püüad keelt kõnelevate natuke valjem? 699 00:33:43,827 --> 00:33:45,270 Mul on natuke probleeme kuulmise kõike. 700 00:33:45,270 --> 00:33:46,478 >> MARIA ZLATKOVA: Mul on nii kahju. 701 00:33:46,478 --> 00:33:48,439 Jah, muidugi. 702 00:33:48,439 --> 00:33:50,230 Nii sa tahad mind minna üle selle uuesti? 703 00:33:50,230 --> 00:33:51,680 Või on see-- 704 00:33:51,680 --> 00:33:54,930 Sihtrühm: Nii eelmise slide-- kui võid lihtsalt minna tagasi ühe sekundi. 705 00:33:54,930 --> 00:33:57,313 MARIA ZLATKOVA: Muidugi kahju. 706 00:33:57,313 --> 00:33:59,237 Sihtrühm: Nii teine massiivi siin ei ole 707 00:33:59,237 --> 00:34:04,135 tundub, et on väärtus sisestada, mingis mõttes [? põhjusliku seose. ?] 708 00:34:04,135 --> 00:34:05,343 MARIA ZLATKOVA: Õigus, õigus. 709 00:34:05,343 --> 00:34:07,608 Sihtrühm: Niisiis, kuidas see toimib kui te ütlete, et see kõik või mitte ükski. 710 00:34:07,608 --> 00:34:08,969 Mulle see välja näeb [? suva?] juba. 711 00:34:08,969 --> 00:34:10,093 >> MARIA ZLATKOVA: Jah, jah. 712 00:34:10,093 --> 00:34:12,969 Nii jälle see on tellitud kaart selles mõttes 713 00:34:12,969 --> 00:34:15,639 et seal on arusaadav, näiteks indeksid 714 00:34:15,639 --> 00:34:20,159 Siit võib mõista kui 0, 1, 2, 3. 715 00:34:20,159 --> 00:34:25,929 Jällegi, see on, võttes neid indeksid on meie samaväärne 716 00:34:25,929 --> 00:34:28,980 võttes võtmed vastenduseks väärtusi. 717 00:34:28,980 --> 00:34:34,710 Nii et kui meie peamine oli 0-- kahju. 718 00:34:34,710 --> 00:34:36,524 >> HANNAH Blumberg: No, seal kriit siin. 719 00:34:36,524 --> 00:34:36,929 See on tegelikult väga kena. 720 00:34:36,929 --> 00:34:37,460 >> MARIA ZLATKOVA: See on tore. 721 00:34:37,460 --> 00:34:38,260 OKEI. 722 00:34:38,260 --> 00:34:49,489 Nii jälle $ arr 0 oleks võti väärtus 1. 723 00:34:49,489 --> 00:34:51,138 0 oleks võti väärtus 1. 724 00:34:51,138 --> 00:34:51,971 Sihtrühm: mul on kahju. 725 00:34:51,971 --> 00:34:53,190 See on nähtamatu. 726 00:34:53,190 --> 00:34:53,659 >> HANNAH Blumberg: Olgu, nevermind. 727 00:34:53,659 --> 00:34:54,980 Kriit oli halb mõte. 728 00:34:54,980 --> 00:34:58,030 Ma võtan selle tagasi. 729 00:34:58,030 --> 00:35:01,425 Sa ei mõtle võtmed kui 0 kaartide väärtus 1. 730 00:35:01,425 --> 00:35:02,300 MARIA ZLATKOVA: Jah. 731 00:35:02,300 --> 00:35:04,630 Nii et see on 0, siis on 1, 2, 3. 732 00:35:04,630 --> 00:35:05,760 Need võivad olla oma võtmed. 733 00:35:05,760 --> 00:35:10,020 Sa ei mõtle neid kui-- yeah. 734 00:35:10,020 --> 00:35:12,740 Seega ei pea selgesõnaline võtmed, nad 735 00:35:12,740 --> 00:35:17,180 omamoodi mõistetakse indeksid algavad 0. 736 00:35:17,180 --> 00:35:21,630 737 00:35:21,630 --> 00:35:24,820 Kriit ei aidanud. 738 00:35:24,820 --> 00:35:25,722 Jah. 739 00:35:25,722 --> 00:35:30,914 >> Sihtrühm: Sest foreach loop, Kui me tahame, et vaadata, kui väärtus, 740 00:35:30,914 --> 00:35:33,245 See oleks lihtsalt automaatselt indeks 0? 741 00:35:33,245 --> 00:35:34,120 MARIA ZLATKOVA: Jah. 742 00:35:34,120 --> 00:35:35,745 See läheks läbi iga väärtusi. 743 00:35:35,745 --> 00:35:39,130 Sihtrühm: [kuuldamatu] kui 0 või oleks see lihtsalt ei 0? 744 00:35:39,130 --> 00:35:43,710 >> MARIA ZLATKOVA: Sa oleks öelda, kui dollari märk ja siis 745 00:35:43,710 --> 00:35:46,266 mõned muutuja nimi, väärtusega. 746 00:35:46,266 --> 00:35:47,182 Sihtrühm: [kuuldamatu]. 747 00:35:47,182 --> 00:35:50,048 748 00:35:50,048 --> 00:35:50,964 MARIA ZLATKOVA: Vabandust? 749 00:35:50,964 --> 00:35:52,839 Sihtrühm: Vabandust, ma olen lihtsalt üritan meeles pidada. 750 00:35:52,839 --> 00:35:57,190 Kuidas sa seda tegid, kui sa ei saa seda teha automaatselt indekseerimine on lihtsalt 0? 751 00:35:57,190 --> 00:36:00,780 >> MARIA ZLATKOVA: Niisiis, kuidas sa seda tegid Kui te ei ole konkreetse võtme nimi? 752 00:36:00,780 --> 00:36:01,710 >> Sihtrühm: Jah. 753 00:36:01,710 --> 00:36:07,820 >> MARIA ZLATKOVA: Sa lihtsalt define-- lihtsalt öelda end mõne nime. 754 00:36:07,820 --> 00:36:17,950 Nii teie psets, kutid võiks mäletan foreach $ rida $ rida, 755 00:36:17,950 --> 00:36:24,610 Lõime paigaldada see $ rida öeldes me tahame minna läbi rida $ rida. 756 00:36:24,610 --> 00:36:28,360 Kuigi meil ei olnud Selle selgesõnaline $ rida määratletud, 757 00:36:28,360 --> 00:36:31,990 me võiks lihtsalt minna ja öelda võib see olla meie peamine, 758 00:36:31,990 --> 00:36:33,615 ja lihtsalt minna läbi iga väärtusi. 759 00:36:33,615 --> 00:36:37,295 760 00:36:37,295 --> 00:36:41,660 >> Sihtrühm: Nii on väärtus uue muutuja me luua salvestada [kuuldamatu]? 761 00:36:41,660 --> 00:36:46,820 762 00:36:46,820 --> 00:36:49,990 >> MARIA ZLATKOVA: Nii see ei ole olemuselt uus muutuja. 763 00:36:49,990 --> 00:37:00,310 On muutuja, mis viitab sees massiivi igale neist. 764 00:37:00,310 --> 00:37:02,060 HANNAH Blumberg: See on uus muutuja nimi. 765 00:37:02,060 --> 00:37:04,018 MARIA ZLATKOVA: Jah, see on uue muutuja, 766 00:37:04,018 --> 00:37:06,680 Aga see ei ole inherently-- yeah. 767 00:37:06,680 --> 00:37:08,950 See on lihtsalt uus muutuja et võite seda teha. 768 00:37:08,950 --> 00:37:12,680 Nii lihtsalt, kuidas me tegime $ rida $ rida, rida 769 00:37:12,680 --> 00:37:17,980 oli uue muutuja, mida me võiks luua meie foreach loop. 770 00:37:17,980 --> 00:37:22,065 See ei pea preexist enne seda. 771 00:37:22,065 --> 00:37:25,777 >> Sihtrühm: Kas sa lähed läbi Loogika iga näitel olemas? 772 00:37:25,777 --> 00:37:26,610 MARIA ZLATKOVA: Mhm. 773 00:37:26,610 --> 00:37:31,240 774 00:37:31,240 --> 00:37:32,080 Oi vabandust. 775 00:37:32,080 --> 00:37:33,780 Siin on näide. 776 00:37:33,780 --> 00:37:34,280 Muidugi. 777 00:37:34,280 --> 00:37:38,950 Nii iga array-- nii see tähendab, et minna selle massiivi 778 00:37:38,950 --> 00:37:43,930 peamiste value-- et läheb minna läbi selle massiivi 779 00:37:43,930 --> 00:37:49,480 ja esimene minna ja saada suva on võti suva ja väärtust baar. 780 00:37:49,480 --> 00:37:51,570 Ja siis teisel iteratsiooni silmus, 781 00:37:51,570 --> 00:37:55,090 see saab läbida ning võtta võti baz ja väärtust qux. 782 00:37:55,090 --> 00:38:00,512 Ja siis saab midagi teha kumbki neist või mõlemad. 783 00:38:00,512 --> 00:38:03,488 >> Sihtrühm: Nii idee võttes oluline punkt, et väärtus, 784 00:38:03,488 --> 00:38:07,470 Mida sa lõpuks pääseda? 785 00:38:07,470 --> 00:38:10,680 >> MARIA ZLATKOVA: Mis on idee võttes võtme juhtides väärtustada? 786 00:38:10,680 --> 00:38:16,400 See on lihtsalt üks kokkulepe, teise kuidas läheb läbi massiivi 787 00:38:16,400 --> 00:38:22,600 ja pääse kas võti või väärtus või mõlemad ning neid kasutada. 788 00:38:22,600 --> 00:38:27,100 >> Sihtrühm: Mis roll Tellimiseks et foreach jookseb? 789 00:38:27,100 --> 00:38:29,250 Nii et kui me olime lisada elemendid massiivi hiljem 790 00:38:29,250 --> 00:38:32,140 oleks need olla esimesed, kes kutsutud foreach massiiv, 791 00:38:32,140 --> 00:38:33,750 või oleks hiljem? 792 00:38:33,750 --> 00:38:37,770 >> MARIA ZLATKOVA: Mis on järjekorras, et foreach 793 00:38:37,770 --> 00:38:39,210 loop läbib massiivi? 794 00:38:39,210 --> 00:38:42,220 See läheb läbi esimese element viimasele element, 795 00:38:42,220 --> 00:38:43,400 viimasele lisatud element. 796 00:38:43,400 --> 00:38:48,020 Kui lisate elemendid hiljem, nad oleksid saab accessed-- esimene elemente, 797 00:38:48,020 --> 00:38:51,410 juurde kui esimene elemendid massiivi, 798 00:38:51,410 --> 00:38:57,620 ja siis tahaks minna läbi iga elemente nagu omamoodi ordered-- 799 00:38:57,620 --> 00:39:02,930 ei ole tellinud, kuid nii, et nad on pandud massiivi. 800 00:39:02,930 --> 00:39:06,855 >> Sihtrühm: Nii uued elemendid lisatakse hiljem? 801 00:39:06,855 --> 00:39:10,680 Nii nad added-- nad olla viimase omadega [? iteratsiooni. ?] 802 00:39:10,680 --> 00:39:14,280 >> MARIA ZLATKOVA: New elemendid can-- Põhimõtteliselt, kui lisatakse uusi elemente, 803 00:39:14,280 --> 00:39:16,520 nad lõppu lisatakse massiivi? 804 00:39:16,520 --> 00:39:17,632 >> Sihtrühm: Jah. 805 00:39:17,632 --> 00:39:18,840 MARIA ZLATKOVA: Ma usun, et. 806 00:39:18,840 --> 00:39:20,850 Jah. 807 00:39:20,850 --> 00:39:24,330 Ja siis oma foreach loop, kui olete lisanud uusi elemente 808 00:39:24,330 --> 00:39:26,790 ja lähete nende kaudu uued elemendid oleksid 809 00:39:26,790 --> 00:39:30,930 olla accessed-- uus element, kui see on Lõpuks lisatakse oleks kättesaadav viimase. 810 00:39:30,930 --> 00:39:34,416 >> Sihtrühm: Kas sa anda näiteks midagi, mis oleks [kuuldamatu] 811 00:39:34,416 --> 00:39:37,404 midagi koos väärtus nagu [kuuldamatu] või väärtus, 812 00:39:37,404 --> 00:39:38,910 meeldib, kuidas sa formaat, mis? 813 00:39:38,910 --> 00:39:39,785 >> MARIA ZLATKOVA: Muidugi. 814 00:39:39,785 --> 00:39:42,340 815 00:39:42,340 --> 00:39:46,410 Kas ma saan tuua näite, mida me teeks koos väärtus? 816 00:39:46,410 --> 00:39:52,440 Mis te poisid võiksid olla tuttav on, et me oleme läbi käinud hulgaliselt 817 00:39:52,440 --> 00:39:55,380 ja põhimõtteliselt trükitud iga osa, 818 00:39:55,380 --> 00:40:00,910 näiteks osana et nimekiri nummerdada või midagi sellist. 819 00:40:00,910 --> 00:40:02,674 Kas see on mõtet või ei taha me mina-- 820 00:40:02,674 --> 00:40:04,340 Sihtrühm: Kas me printida need väärtused välja? 821 00:40:04,340 --> 00:40:13,220 MARIA ZLATKOVA: Jah, me võime printida ja siis põhimõtteliselt $ väärtus, sest kell 822 00:40:13,220 --> 00:40:16,570 mis eriline väärtus, oleksime trükkimiseks raha sees on. 823 00:40:16,570 --> 00:40:20,150 Nii et kui me olime meie esimene esitus seda ja me trükitud $ väärtus, 824 00:40:20,150 --> 00:40:23,775 oleksime trükkimine baar. 825 00:40:23,775 --> 00:40:27,020 >> Sihtrühm: Kas on olemas ka silmuseid PHP või lihtsalt foreach silmad? 826 00:40:27,020 --> 00:40:30,430 >> MARIA ZLATKOVA: Ei ka silmad PHP. 827 00:40:30,430 --> 00:40:33,399 Ja nende loogika on enamasti sama, mida olete juba harjunud. 828 00:40:33,399 --> 00:40:34,690 Sihtrühm: Nii et selle väärtus on null. 829 00:40:34,690 --> 00:40:35,090 MARIA ZLATKOVA: See on nagu sama. 830 00:40:35,090 --> 00:40:35,590 Jah. 831 00:40:35,590 --> 00:40:37,747 Sihtrühm: Ma lihtsalt küsin. 832 00:40:37,747 --> 00:40:39,695 Nii et kui sa tunnistada massiivi, siis ei ole vaja 833 00:40:39,695 --> 00:40:42,617 öelda, mis suurus see läheb olla, mis tähendab, et saate lihtsalt 834 00:40:42,617 --> 00:40:44,417 lisada ja ära võtta elemendid [kuuldamatu]. 835 00:40:44,417 --> 00:40:45,250 MARIA ZLATKOVA: Jah. 836 00:40:45,250 --> 00:40:45,750 Jep. 837 00:40:45,750 --> 00:40:46,251 Täpselt. 838 00:40:46,251 --> 00:40:48,875 Kui me kinnitame massiivi, me ei pea ütlema, millise suurusega on, 839 00:40:48,875 --> 00:40:51,022 nii me lihtsalt lisada elemente peale seda ka hiljem. 840 00:40:51,022 --> 00:40:55,075 841 00:40:55,075 --> 00:40:55,700 Rohkem küsimusi? 842 00:40:55,700 --> 00:40:59,870 843 00:40:59,870 --> 00:41:05,950 Nii tuua PHP ja HTML kokku mida me oleme seen-- hästi, 844 00:41:05,950 --> 00:41:15,130 näiteks selles näites on meil HTML kujul, mis on sisendiks valdkonnas. 845 00:41:15,130 --> 00:41:18,830 >> Ja sisestusväli on lihtsalt nimi ja siis on nuppu Esita. 846 00:41:18,830 --> 00:41:26,040 Ja kui vajutate Esita nuppu, meie hello.php faili 847 00:41:26,040 --> 00:41:32,130 sest meetod kujul on saada, suudame iganes on nimi 848 00:41:32,130 --> 00:41:40,360 Käesoleva saada globaalse muutuja on-- süntaks on $ _GET. 849 00:41:40,360 --> 00:41:44,520 Ja siis saame juurdepääsu olenemata kasutaja sisend sees, et vormi nimi 850 00:41:44,520 --> 00:41:47,410 määrates nimi selles valdkonnas. 851 00:41:47,410 --> 00:41:51,480 852 00:41:51,480 --> 00:41:55,060 >> Muid küsimusi või mis tahes küsimustele see konkreetne näide? 853 00:41:55,060 --> 00:41:58,275 >> Sihtrühm: Kus on PHP? 854 00:41:58,275 --> 00:41:59,150 MARIA ZLATKOVA: Siin. 855 00:41:59,150 --> 00:42:01,150 Nii et see on meie avamist silt PHP. 856 00:42:01,150 --> 00:42:01,530 >> Sihtrühm: Oh, eks. 857 00:42:01,530 --> 00:42:02,363 >> MARIA ZLATKOVA: Jah. 858 00:42:02,363 --> 00:42:05,320 859 00:42:05,320 --> 00:42:09,609 >> HANNAH Blumberg:? = On stenografisti on see, PHP ja lihtsalt kaja. 860 00:42:09,609 --> 00:42:10,150 Sihtrühm: Oh. 861 00:42:10,150 --> 00:42:10,720 MARIA ZLATKOVA: Jah, vabandust. 862 00:42:10,720 --> 00:42:12,040 Ma oleks pidanud selgeks teinud. 863 00:42:12,040 --> 00:42:13,759 >> HANNAH Blumberg: Print. 864 00:42:13,759 --> 00:42:16,800 MARIA ZLATKOVA: See on lihtsalt funktsioon mis võimaldab meil printida midagi. 865 00:42:16,800 --> 00:42:19,795 866 00:42:19,795 --> 00:42:20,420 Hea küsimus. 867 00:42:20,420 --> 00:42:24,140 868 00:42:24,140 --> 00:42:25,495 Nii going-- jah. 869 00:42:25,495 --> 00:42:31,940 >> Sihtrühm: Kas seal saab olema üsna natuke käsi kodeerimine PHP ja HTML 870 00:42:31,940 --> 00:42:33,450 kohta viktoriini 1? 871 00:42:33,450 --> 00:42:36,310 872 00:42:36,310 --> 00:42:38,810 MARIA ZLATKOVA: Ei saa olla päris palju tõlgendus 873 00:42:38,810 --> 00:42:43,330 PHP ja HTML, ei pruugi nagu suur hulk kodeerimine 874 00:42:43,330 --> 00:42:46,960 Kuigi sa võisid kirjutada foreach loop, kuigi jaoks silmus. 875 00:42:46,960 --> 00:42:49,790 Iga aasade et me katta siin on aus mäng. 876 00:42:49,790 --> 00:42:51,889 Ja ongi enamasti see. 877 00:42:51,889 --> 00:42:53,430 HANNAH Blumberg: ma oleks valmis. 878 00:42:53,430 --> 00:42:57,010 Samamoodi, et me palusime teil kirjuta kamp C funktsioone viktoriin 0, 879 00:42:57,010 --> 00:42:59,766 Ma oleks valmis tegema Samal aastal PHP ja JavaScript. 880 00:42:59,766 --> 00:43:00,640 MARIA ZLATKOVA: Jah. 881 00:43:00,640 --> 00:43:03,210 HANNAH Blumberg: Ütleksin little-- nagu me ei ole 882 00:43:03,210 --> 00:43:06,251 läheb sul kirjutada suur HTML lk lihtsalt sellepärast, et see on natuke 883 00:43:06,251 --> 00:43:08,240 tüütu, kuid sa võisid osad. 884 00:43:08,240 --> 00:43:09,310 See on täiesti aus mäng. 885 00:43:09,310 --> 00:43:11,082 Nagu väike HTML lehel täiesti õiglane. 886 00:43:11,082 --> 00:43:11,623 Sihtrühm: OK. 887 00:43:11,623 --> 00:43:13,814 Kuidas JavaScript ka? 888 00:43:13,814 --> 00:43:14,730 HANNAH Blumberg: Jah. 889 00:43:14,730 --> 00:43:15,250 JavaScript on aus mäng. 890 00:43:15,250 --> 00:43:15,635 >> MARIA ZLATKOVA: Jah. 891 00:43:15,635 --> 00:43:16,801 See on täiesti aus mäng. 892 00:43:16,801 --> 00:43:19,280 HANNAH Blumberg: Me saame omaga nagu 10 minutit. 893 00:43:19,280 --> 00:43:23,750 >> MARIA ZLATKOVA: SQL jällegi Structured Query Language. 894 00:43:23,750 --> 00:43:28,651 Sisuliselt võimaldab meil õnnestub andmed relatsioonandmebaasis juhtimine 895 00:43:28,651 --> 00:43:29,150 süsteem. 896 00:43:29,150 --> 00:43:31,149 See lihtsalt tähendab põhimõtteliselt et meil on kuskil 897 00:43:31,149 --> 00:43:37,980 salvestada mõned andmed, et saaksime taha kasuta veebilehel või mõnel muul viisil. 898 00:43:37,980 --> 00:43:42,190 Ja siis on meil päringud saada teavet meie andmebaasi 899 00:43:42,190 --> 00:43:44,320 või sisestada teavet neile. 900 00:43:44,320 --> 00:43:47,560 Palju ühist ones-- UPDATE, INSERT, SELECT, ja kustutada. 901 00:43:47,560 --> 00:43:50,790 >> Nii UPDATE, see on süntaks ajakohastamise andmed andmebaasis. 902 00:43:50,790 --> 00:43:53,330 903 00:43:53,330 --> 00:43:57,340 Uuendamine selles tabelis nimega laua juurde SET, 904 00:43:57,340 --> 00:44:04,170 saame mõned väärtused kõigis rida võrdsele midagi muud. 905 00:44:04,170 --> 00:44:09,410 Nii saame ka täpsustada teatavaid kirjed, mis me tahame muuta 906 00:44:09,410 --> 00:44:11,240 ja mida saab vajaduse korral kasutatakse. 907 00:44:11,240 --> 00:44:16,380 Ja meil on võimalik määrata, et me tahame ainult muuta mõned read, kus maja, 908 00:44:16,380 --> 00:44:19,830 kui meil oleks tabel õpilaste ja kõik oli õpilastel maja, 909 00:44:19,830 --> 00:44:24,890 nii et me oleks vaid muuta mõned väärtused Kui maja on võrdne Currier, 910 00:44:24,890 --> 00:44:25,430 näiteks. 911 00:44:25,430 --> 00:44:29,120 912 00:44:29,120 --> 00:44:31,800 >> Sest INSERT, saame sisestada teatud väärtused tabeli. 913 00:44:31,800 --> 00:44:35,150 Nii INSERT INTO tabel, ja seejärel väärtusi, 914 00:44:35,150 --> 00:44:39,080 ja siis sulgudes, me täpsustada mis väärtustab soovite sisestada. 915 00:44:39,080 --> 00:44:43,220 Nii INSERT INTO tabel, col1 ja col2, väärtus on VAL1 ja VAL2. 916 00:44:43,220 --> 00:44:48,930 Nii et see lisab põhimõtteliselt uue rea sisse tabel, mis sisaldab väärtusi 1 ja 2 917 00:44:48,930 --> 00:44:50,850 Veerus 1 ja 2. 918 00:44:50,850 --> 00:44:54,760 >> Ja siis me läheme üle kiire näide sellest, kuidas näeb välja 919 00:44:54,760 --> 00:44:56,310 nagu meie andmebaasis natuke. 920 00:44:56,310 --> 00:44:58,685 Aga see viimane päringu, et ma arvan, et me läheme üle, 921 00:44:58,685 --> 00:45:01,450 VALI, see lihtsalt võimaldab meil Valige andmed tabelist 922 00:45:01,450 --> 00:45:03,080 et võib-olla kasutada seda hiljem. 923 00:45:03,080 --> 00:45:05,830 Ja kuidas me seda on meil lihtsalt hoidke seda mõned muutuja. 924 00:45:05,830 --> 00:45:07,780 Ja siis me saame võib-olla seda uuesti kasutada. 925 00:45:07,780 --> 00:45:10,260 >> Nii SELECT star tähendab vali kõik. 926 00:45:10,260 --> 00:45:13,280 See on lihtsalt stenografist valimiseks kõik. 927 00:45:13,280 --> 00:45:19,760 FROM tabel, kus me otsime mõned konkreetsed tingimused, 928 00:45:19,760 --> 00:45:22,290 seda siis, kui kolonn võrdub midagi, näiteks. 929 00:45:22,290 --> 00:45:24,410 Kui me lihtsalt tahtsin vali kõik tabelist, 930 00:45:24,410 --> 00:45:28,400 see lihtsalt valib kõik veerud ja kõik read tabelist. 931 00:45:28,400 --> 00:45:32,040 >> Ja siis kustutada tabelis KUS col võrdub midagi, 932 00:45:32,040 --> 00:45:36,440 see lihtsalt kustutab mõned rida meie tabelis 933 00:45:36,440 --> 00:45:38,860 kus meil on mõned konkreetsed tingimused. 934 00:45:38,860 --> 00:45:41,870 Sel juhul tingimused on veerus võrdub midagi. 935 00:45:41,870 --> 00:45:43,460 Nii lihtsalt kiire näide sellest. 936 00:45:43,460 --> 00:45:49,100 Kui meil on see tabel siin ja me pistke see tabel, need väärtused, 937 00:45:49,100 --> 00:45:50,400 mis lisab uue rea. 938 00:45:50,400 --> 00:45:56,380 Ja kui meil oli auto-juurdekasvu, see oleks lihtsalt juurdekasvu meie ID 0-1 to 2. 939 00:45:56,380 --> 00:46:00,010 >> Kui me valisime kõik üliõpilased, see lihtsalt tagastab kõik väljad ja kõik read. 940 00:46:00,010 --> 00:46:02,430 Kus aastal on suurem kui või võrdne 2016 941 00:46:02,430 --> 00:46:04,390 et oleks lihtsalt tagasi Hannah ja mina. 942 00:46:04,390 --> 00:46:08,360 Ja siis, kui me lihtsalt valitud aastal id ja aasta õpilased 943 00:46:08,360 --> 00:46:11,710 kus maja on Cabot House, et oleks jälle tagasi Hannah ja mina. 944 00:46:11,710 --> 00:46:14,430 >> Siis, kui me kustutatakse õpilaste kus nimi on võrdne Rob, 945 00:46:14,430 --> 00:46:16,760 mis kustutab kogu rida. 946 00:46:16,760 --> 00:46:19,696 Ja siis, kui me seame nimi, UPDATE õpilased 947 00:46:19,696 --> 00:46:21,570 Määra nimi võrdub Daven KUS maja on võrdne 948 00:46:21,570 --> 00:46:27,010 Cabot House, et läheb minema need read ja seejärel ajakohastada nime. 949 00:46:27,010 --> 00:46:31,470 >> Ja siis paar SQL andmete tüüpe CHAR, varchar, INT, ja sularahaga. 950 00:46:31,470 --> 00:46:32,760 Need on aus mäng. 951 00:46:32,760 --> 00:46:36,740 Ma tahaks minna jälle ja veenduge, sa tead 952 00:46:36,740 --> 00:46:40,930 ja on neid oma petma lehte, mida kõik need tegelased 953 00:46:40,930 --> 00:46:44,140 on kasutatud, milliseid sa kasutada neid oma psets, 954 00:46:44,140 --> 00:46:48,050 ja veenduge, et olete tuttav ja rahul võttes valida 955 00:46:48,050 --> 00:46:51,450 Eri tüüpi andmeid oma pset. 956 00:46:51,450 --> 00:46:51,950 Jah. 957 00:46:51,950 --> 00:46:54,300 >> Sihtrühm: Mis oli, et tabelis salvestatud? 958 00:46:54,300 --> 00:46:57,119 Jah, kus on selles tabelis hoitakse? 959 00:46:57,119 --> 00:46:59,160 MARIA ZLATKOVA: Noh, kohe, et see ei ole salvestatud. 960 00:46:59,160 --> 00:47:00,700 Igatahes, kus on selles tabelis hoitakse? 961 00:47:00,700 --> 00:47:04,503 Kuid see ei saa olla säilitatud SQL andmebaasi kantud. 962 00:47:04,503 --> 00:47:07,330 >> Sihtrühm: Ja kus on SQL andmebaasi? 963 00:47:07,330 --> 00:47:11,200 Kui arvuti online kuskil serveris? 964 00:47:11,200 --> 00:47:15,000 >> MARIA ZLATKOVA: See võib olla mitmeid erinevaid asju. 965 00:47:15,000 --> 00:47:19,690 >> HANNAH Blumberg: oleme liidestatud SQL tabelid enamasti phpMyAdmin. 966 00:47:19,690 --> 00:47:22,060 Nii võiksime küsida server salvestada neid meile. 967 00:47:22,060 --> 00:47:23,830 Võiksime talletamiseks oma arvutisse. 968 00:47:23,830 --> 00:47:27,950 >> MARIA ZLATKOVA: See lihtsalt sõltub kuidas sa tahad teha seda ise. 969 00:47:27,950 --> 00:47:30,075 Aga meil on talletamiseks nende peale, nagu Hannah mainitud, 970 00:47:30,075 --> 00:47:31,755 kohta phpMyAdmin, mis on võrgus. 971 00:47:31,755 --> 00:47:36,550 972 00:47:36,550 --> 00:47:39,280 Ja siis kuidas me kasutame PHP ja SQL, me salvestada see 973 00:47:39,280 --> 00:47:43,450 mõningaid muutuja mida oleme päringu eest. 974 00:47:43,450 --> 00:47:48,370 >> Nii et kui valime kõikide ajaloost kus user_id võrdub Session ID, 975 00:47:48,370 --> 00:47:53,900 mis valib kõik read konkreetse isiku 976 00:47:53,900 --> 00:47:58,327 on sisse logitud ajaloost laua ja sorteeri need read. 977 00:47:58,327 --> 00:48:00,410 Lahe asi on teada et CS50 päringu funktsiooni 978 00:48:00,410 --> 00:48:02,180 kaitseb SQL süst sildid. 979 00:48:02,180 --> 00:48:07,420 See tähendab lihtsalt, et see tagab sisend, mis on sisestatud õige 980 00:48:07,420 --> 00:48:09,920 ja et isik, kes siseneb sisend 981 00:48:09,920 --> 00:48:15,100 ei püüa sisend mõned pahatahtlik kood kas tilk meie toidulaual 982 00:48:15,100 --> 00:48:17,305 või kustutada kõik sees meie andmebaasi. 983 00:48:17,305 --> 00:48:20,060 984 00:48:20,060 --> 00:48:23,400 >> Kiire ülevaade Mudel Vaata Controller mudeli 985 00:48:23,400 --> 00:48:27,360 see on lihtsalt viis, kuidas korraldada ja mõelda koodi. 986 00:48:27,360 --> 00:48:29,100 See on jällegi disaini paradigmaga. 987 00:48:29,100 --> 00:48:33,380 Mida see tähendab, et me can-- ja see on hea tava 988 00:48:33,380 --> 00:48:37,790 eraldada erinevad osad Meie koodi ja mida nad 989 00:48:37,790 --> 00:48:40,530 kontrollida neisse kolme paradigmad. 990 00:48:40,530 --> 00:48:46,700 >> Nii et meie arvates on kõige sagedamini meie malle, meie paigutus, kuidas 991 00:48:46,700 --> 00:48:48,260 et me seame kuidas meie kood tundub. 992 00:48:48,260 --> 00:48:55,190 See on peamiselt meie CSS faile ja kuidas et meil määratletud disain meie koodi 993 00:48:55,190 --> 00:48:55,710 põhimõtteliselt. 994 00:48:55,710 --> 00:48:59,280 Meie kontroller on enamasti see, mida oleme teinud PHP faile. 995 00:48:59,280 --> 00:49:03,030 Nii jälle koostööd teavet, mis meil on 996 00:49:03,030 --> 00:49:06,700 ning määratleda, kuidas see andmeid kasutatakse, 997 00:49:06,700 --> 00:49:10,660 ja siis möödaminnes, et teave kas peale vaadata või mudeli. 998 00:49:10,660 --> 00:49:13,880 Ja mudel, nii, et me oleme on kasutan on olnud meie andmebaasi 999 00:49:13,880 --> 00:49:17,510 seda siis, kui meie andmed on salvestatud nii see on kuskil 1000 00:49:17,510 --> 00:49:21,490 elada, ja mõni kood, mis on seotud sellega, kuidas 1001 00:49:21,490 --> 00:49:25,410 et me saame seda teavet või nii, et me ajakohastab seda teavet. 1002 00:49:25,410 --> 00:49:28,940 1003 00:49:28,940 --> 00:49:33,200 >> Nii et MVC mudel, HTTP taotlused saata veebiserverisse. 1004 00:49:33,200 --> 00:49:36,220 Siis, kontroller tõlgendab taotluse kasutajale 1005 00:49:36,220 --> 00:49:38,260 ja siis kinnitab kasutaja sisend. 1006 00:49:38,260 --> 00:49:41,580 See on vabatahtlik, et meil on kontroller suhelda 1007 00:49:41,580 --> 00:49:44,000 koos mudeliga, nii et midagi nagu meie andmebaasi 1008 00:49:44,000 --> 00:49:47,500 või mõne muu funktsiooni mis edastab teavet. 1009 00:49:47,500 --> 00:49:50,340 Ja siis lõpuks, kontroller läbib info peale vaade 1010 00:49:50,340 --> 00:49:52,090 nii, et see võib olla sulatatud ja et seda saab 1011 00:49:52,090 --> 00:49:55,860 muutuvad nähtavaks ühelegi isikule juurdepääsu veebilehele. 1012 00:49:55,860 --> 00:49:58,440 1013 00:49:58,440 --> 00:50:01,340 >> Kas küsimusi on? 1014 00:50:01,340 --> 00:50:01,840 Fantastiline. 1015 00:50:01,840 --> 00:50:04,530 1016 00:50:04,530 --> 00:50:08,469 Nii jälle, mudeli, selle funktsiooni jällegi 1017 00:50:08,469 --> 00:50:11,260 Püsiva teabe talletamises, haldamise ja korraldamise andmeid. 1018 00:50:11,260 --> 00:50:13,890 Ja mida me oleme näinud nii palju on MySQL andmebaasi 1019 00:50:13,890 --> 00:50:16,200 ja mis tahes andmefaile, et võib kasutada. 1020 00:50:16,200 --> 00:50:20,580 >> Vaata, informatsiooni esitamise kasutaja, UI, või kasutajaliidese. 1021 00:50:20,580 --> 00:50:22,350 Ja näide selle kohta on HTML. 1022 00:50:22,350 --> 00:50:23,950 Ja siis me võib-olla minimaalne PHP. 1023 00:50:23,950 --> 00:50:28,360 Nii jaoks silmus, mis itereerib üle andmed, mis on välja prinditud 1024 00:50:28,360 --> 00:50:30,720 kuulub seisukohal, nagu Erinevalt kontroller. 1025 00:50:30,720 --> 00:50:35,660 Ja siis palju meie PHP faile jagunevad kontroller kategooriasse. 1026 00:50:35,660 --> 00:50:38,410 See lihtsalt tegeleb kasutajate soovide ja saab teavet mudel. 1027 00:50:38,410 --> 00:50:42,880 1028 00:50:42,880 --> 00:50:45,590 >> Hüpates Dokumendi Object Model, see lihtsalt 1029 00:50:45,590 --> 00:50:47,700 viitab sellele, kuidas HTML dokumendid on korraldatud. 1030 00:50:47,700 --> 00:50:51,600 Ja nad organiseeritud puuks struktuur, mis on hierarhia. 1031 00:50:51,600 --> 00:50:56,720 Nii et kui meil on juurdepääs [kuuldamatu] esitus dokumendi, 1032 00:50:56,720 --> 00:51:02,750 saame töötada koos dokumendiga, nagu me manipuleerida objekte põhimõtteliselt. 1033 00:51:02,750 --> 00:51:06,630 >> Ja teha seda natuke selgem, kui 1034 00:51:06,630 --> 00:51:10,540 meil on palju meie erinevad sildid vastata 1035 00:51:10,540 --> 00:51:12,590 to teistmoodi meie puu. 1036 00:51:12,590 --> 00:51:17,070 Ja siis selle näite me on alates dokumendi sõlme. 1037 00:51:17,070 --> 00:51:20,010 Meil on siis meie HTML sõlme mis jaguneb pea ja keha. 1038 00:51:20,010 --> 00:51:22,810 Head on pealkiri ja seejärel Pealkiri sisaldab hello, world. 1039 00:51:22,810 --> 00:51:24,860 Ja meie keha lihtsalt sisaldab tere, ka maailma. 1040 00:51:24,860 --> 00:51:28,700 1041 00:51:28,700 --> 00:51:31,900 >> Seega igasugused küsimustele tahes asju, mida me katta nii palju? 1042 00:51:31,900 --> 00:51:35,891 Ja kui ei, Hannah hakkab üle võtta JavaScript. 1043 00:51:35,891 --> 00:51:36,390 Fantastiline. 1044 00:51:36,390 --> 00:51:37,473 >> HANNAH Blumberg: OK, lahe. 1045 00:51:37,473 --> 00:51:40,980 Kui midagi kerkib PHP või HTML, või kraami Maria kaetud, 1046 00:51:40,980 --> 00:51:42,700 saame alati pausi. 1047 00:51:42,700 --> 00:51:46,430 Me teeme paremini jälle, nii lahe. 1048 00:51:46,430 --> 00:51:48,770 Ja just minna tagasi tõesti kiiresti sellele, 1049 00:51:48,770 --> 00:51:51,010 kui te vaatate iga viimase aasta eksami, see 1050 00:51:51,010 --> 00:51:54,120 kerkib either-- siin mõned HTML, teha seda skeemi. 1051 00:51:54,120 --> 00:51:58,380 Või siin on see skeem, teha mõned HTML, nii et kindlasti harjutada seda. 1052 00:51:58,380 --> 00:52:01,500 Ja siis see on ühe garanteeritud Küsimus, et saad õige. 1053 00:52:01,500 --> 00:52:02,000 Cool. 1054 00:52:02,000 --> 00:52:04,510 Nii räägime JavaScript ja kuidas see on natuke 1055 00:52:04,510 --> 00:52:09,130 erinevad keeled nagu PHP ja C, kahe keele nägime ette. 1056 00:52:09,130 --> 00:52:10,780 Nii number üks, see on lõdvalt kirjutatud. 1057 00:52:10,780 --> 00:52:14,630 See on nagu PHP, kuid erinevalt C. 1058 00:52:14,630 --> 00:52:15,890 >> See on tõlgendatud keeles. 1059 00:52:15,890 --> 00:52:19,870 Jällegi, see on nagu PHP, erinevalt C. Ja see 1060 00:52:19,870 --> 00:52:24,630 läheb võimaldab meil use-- see toimib tõesti kenasti veebilehti. 1061 00:52:24,630 --> 00:52:28,350 See saab meile võimaluse manipuleerida sisu ja kuidas see välja 1062 00:52:28,350 --> 00:52:30,300 ja mida ta teeb. 1063 00:52:30,300 --> 00:52:32,330 >> Me näeme natuke Ajax. 1064 00:52:32,330 --> 00:52:36,140 See võimaldab meil suhelda asünkroonselt erinevate serverite 1065 00:52:36,140 --> 00:52:37,950 ja saada teavet. 1066 00:52:37,950 --> 00:52:42,820 Ja see on asi, mis tõesti eraldab JavaScript PHP ja C 1067 00:52:42,820 --> 00:52:45,590 on, et see on kliendipoolse. 1068 00:52:45,590 --> 00:52:49,860 Mõlemad PHP ja C on tavaliselt server-side. 1069 00:52:49,860 --> 00:52:51,960 >> Enamasti ja peaaegu täielikult, mida 1070 00:52:51,960 --> 00:52:53,900 oleme näinud, vähemalt Selle klassi JavaScript 1071 00:52:53,900 --> 00:52:57,040 tegutseb kliendipoolse, mis tähendab, et brauser on tegelikult 1072 00:52:57,040 --> 00:52:58,597 vastutab töötab ta. 1073 00:52:58,597 --> 00:53:01,180 Ja see tähendab, et meil ei ole vaja suhelda server. 1074 00:53:01,180 --> 00:53:04,380 Seega tähendab see võib olla palju kiiremini sest see on tegelikult lihtsalt see Chrome, 1075 00:53:04,380 --> 00:53:10,420 see on Safari, see on Firefox, mida iganes sa kasuta tegelikult töötab teie JavaScript. 1076 00:53:10,420 --> 00:53:12,290 >> Sihtrühm: Mida asünkroonne tähendab? 1077 00:53:12,290 --> 00:53:13,620 >> HANNAH Blumberg: Ah, mida ei asünkroonselt tähendab? 1078 00:53:13,620 --> 00:53:14,250 Hea küsimus. 1079 00:53:14,250 --> 00:53:17,890 Asünkroonselt means-- noh, sisu, kus 1080 00:53:17,890 --> 00:53:22,140 Me kasutame seda on OK, me loote veebilehe 1081 00:53:22,140 --> 00:53:23,860 ja me peame teatud informatsiooni. 1082 00:53:23,860 --> 00:53:28,250 Nii et näiteks Mashup, mõningaid andmeid, et me tahta 1083 00:53:28,250 --> 00:53:30,580 on artikli pealkirju. 1084 00:53:30,580 --> 00:53:33,330 Nüüd could-- üks võimalus on teha seda sünkroonselt 1085 00:53:33,330 --> 00:53:37,940 ja see tähendab, olgem lõpetada, mine saada artikkel, 1086 00:53:37,940 --> 00:53:41,275 saada article tagasi ja seejärel muuta, kuid see oleks väga aeglane. 1087 00:53:41,275 --> 00:53:44,150 See oleks halb kasutaja kogemus sest sa oleks lihtsalt istub 1088 00:53:44,150 --> 00:53:46,630 seal ootab midagi vastata. 1089 00:53:46,630 --> 00:53:50,020 >> Asünkroonselt tähendab me jätkata läheb meie äri 1090 00:53:50,020 --> 00:53:52,529 muudab lehe ja Saadame off taotluse 1091 00:53:52,529 --> 00:53:54,570 see on selline läheb juhtub taustal. 1092 00:53:54,570 --> 00:53:57,610 Ma arvan, et me kasutame näiteks Loeng kutsuda Rob ja öelda, 1093 00:53:57,610 --> 00:53:59,980 Hei, kas sa vaatad seda üles mina ja saada tagasi mulle, 1094 00:53:59,980 --> 00:54:02,870 mitte ainult mulle ootab telefoni. 1095 00:54:02,870 --> 00:54:07,020 Nii asünkroonselt tähendab see juhtub taustal meilt 1096 00:54:07,020 --> 00:54:08,676 paralleelselt. 1097 00:54:08,676 --> 00:54:10,400 >> Hea küsimus. 1098 00:54:10,400 --> 00:54:11,830 Midagi veel? 1099 00:54:11,830 --> 00:54:12,330 Hea. 1100 00:54:12,330 --> 00:54:15,020 Me hüpata palju rohkem arvesse asünkroonne taotlusi Ajax. 1101 00:54:15,020 --> 00:54:18,287 >> Sihtrühm: Kas JavaScript-- kus ei see langema Model-View-controller? 1102 00:54:18,287 --> 00:54:19,620 HANNAH Blumberg: Hea küsimus. 1103 00:54:19,620 --> 00:54:23,320 Kust JavaScript sügisel koos Model-View-controller? 1104 00:54:23,320 --> 00:54:23,930 Hm. 1105 00:54:23,930 --> 00:54:28,350 Ma arvan, et see võib fall-- nii et me ei ole tavaliselt 1106 00:54:28,350 --> 00:54:31,340 meeldib lirts see, et paradigma, kuid ma arvan, et ma ütleksin, 1107 00:54:31,340 --> 00:54:34,280 OK, nii et JavaScript tegelikult läheb lubada 1108 00:54:34,280 --> 00:54:37,587 Meie andmete kogumiseks, tõlgendada, tegelikult teevad 1109 00:54:37,587 --> 00:54:38,920 mõtestatud asju andmetega. 1110 00:54:38,920 --> 00:54:41,100 Sellisel juhul, see on väga kontrolli jms. 1111 00:54:41,100 --> 00:54:43,900 >> Aga see ka läheb, et saaksime näidata asju ja print asju. 1112 00:54:43,900 --> 00:54:47,021 Sellisel juhul, see on väga arvates moodi. 1113 00:54:47,021 --> 00:54:47,520 Jah. 1114 00:54:47,520 --> 00:54:51,710 Nii et see on selline nagu PHP Kui see võib selline olla nii. 1115 00:54:51,710 --> 00:54:53,330 Hea küsimus. 1116 00:54:53,330 --> 00:54:55,209 Midagi veel? 1117 00:54:55,209 --> 00:54:56,000 Olgu, awesome. 1118 00:54:56,000 --> 00:54:57,120 Liikumine paremale mööda. 1119 00:54:57,120 --> 00:54:59,110 >> Vaatame näiteks kuidas saame kasutada 1120 00:54:59,110 --> 00:55:02,250 JavaScript ühes meie veebi programmidele. 1121 00:55:02,250 --> 00:55:05,680 Nii et ma pean seda index.html hunnik HTML. 1122 00:55:05,680 --> 00:55:08,800 Ja asi, mida ma tahan, et sa keskenduda on see script tag. 1123 00:55:08,800 --> 00:55:13,280 Ja seda ütleb, OK, ma jooksen mõned JavaScript ja siin on koht, kus ta elab. 1124 00:55:13,280 --> 00:55:15,400 See elab hello.js. 1125 00:55:15,400 --> 00:55:21,120 >> Ja väga palju nagu CSS, võiksime pane JavaScript jooksul HTML. 1126 00:55:21,120 --> 00:55:24,000 Miks võib tahame eraldi välja? 1127 00:55:24,000 --> 00:55:24,500 Jah. 1128 00:55:24,500 --> 00:55:25,486 >> Sihtrühm: Lihtsam kirjutada? 1129 00:55:25,486 --> 00:55:26,402 >> HANNAH Blumberg: Jah. 1130 00:55:26,402 --> 00:55:28,450 See on lihtsam kasutada üle erinevaid veebilehti. 1131 00:55:28,450 --> 00:55:29,980 See hoiab asju puhtamaks. 1132 00:55:29,980 --> 00:55:32,090 See on lihtsalt hea tava. 1133 00:55:32,090 --> 00:55:32,590 Fantastiline. 1134 00:55:32,590 --> 00:55:33,930 Hea vastus. 1135 00:55:33,930 --> 00:55:36,690 Nii hea, nii et see läheb olla meie index.html. 1136 00:55:36,690 --> 00:55:39,430 Ja siis siin on meie tilluke JavaScript faili. 1137 00:55:39,430 --> 00:55:42,410 >> Ja kõik see ütleb, on hoiatus Tere, maailm. 1138 00:55:42,410 --> 00:55:46,040 Mis juhtub on see, kui see leht renders-- 1139 00:55:46,040 --> 00:55:49,680 nii et kui te lähete ükskõik kodulehel see on-- kõik, mis juhtub 1140 00:55:49,680 --> 00:55:53,330 on see läheb öelda, OK, ma olen läheb käivitada JavaScripti koodi. 1141 00:55:53,330 --> 00:55:56,370 Ja see JavaScripti koodi lihtsalt ütleb alert Hello, world. 1142 00:55:56,370 --> 00:55:59,090 Nii et ma lähen seda sõbralik väike pop-up. 1143 00:55:59,090 --> 00:56:00,360 >> Cool? 1144 00:56:00,360 --> 00:56:04,746 See on selline nagu meie kõige esimene JavaScript programm, meie Hello, world. 1145 00:56:04,746 --> 00:56:07,690 1146 00:56:07,690 --> 00:56:12,190 Vaatame natuke rohkem sellest, mida süntaks JavaScript välja näeb. 1147 00:56:12,190 --> 00:56:16,330 Ja just, olgem võrrelda seda C ja PHP, mida me oleme näinud. 1148 00:56:16,330 --> 00:56:20,610 >> In JavaScript, me ei kavatse olla var nimi muutuja ja seejärel 1149 00:56:20,610 --> 00:56:21,690 selle tegelikku väärtust. 1150 00:56:21,690 --> 00:56:26,170 Ja me ei täpsusta tüüp, lihtsalt nagu PHP, kuid väga erinevalt C. 1151 00:56:26,170 --> 00:56:28,850 Nii näiteks, kui sooviksime Väärtuse salvestamiseks 50, 1152 00:56:28,850 --> 00:56:32,490 C, me oleks võinud öelda, hey, C, tahan täisarv, 1153 00:56:32,490 --> 00:56:35,076 Ma kutsun seda i ja selle väärtus on 50. 1154 00:56:35,076 --> 00:56:36,450 PHP, see on natuke lihtsam. 1155 00:56:36,450 --> 00:56:41,880 Me ütleme, hei, ma tahan muutuja nimetatakse i ja selle väärtus on 50. 1156 00:56:41,880 --> 00:56:45,890 Väga Samamoodi JavaScript, me ütlevad hei, ma tahan muutuja nimega i, 1157 00:56:45,890 --> 00:56:47,080 selle väärtus on 50. 1158 00:56:47,080 --> 00:56:52,140 Iga järgnev aeg, et ma kasutan i, ma ei vaja kirjutada var. 1159 00:56:52,140 --> 00:56:53,810 See on lihtsalt i sealt edasi. 1160 00:56:53,810 --> 00:56:58,660 Samamoodi, C, kus kui me ütleme, int i, me lihtsalt kasutada i. 1161 00:56:58,660 --> 00:57:00,340 Cool? 1162 00:57:00,340 --> 00:57:01,800 Hästi. 1163 00:57:01,800 --> 00:57:03,710 >> Liikumine on silmad, Õnneks need peaaegu 1164 00:57:03,710 --> 00:57:06,720 otsida exactly-- Ma arvan, et nad täpselt sama suur, nagu 1165 00:57:06,720 --> 00:57:09,799 silmad hakkavad nägema midagi C, kus teie jaoks silmus 1166 00:57:09,799 --> 00:57:11,840 läheb on kolm osa- käivituse 1167 00:57:11,840 --> 00:57:13,640 seisund ja ajakohastatud. 1168 00:57:13,640 --> 00:57:15,340 Aega loop, tundub täpselt sama. 1169 00:57:15,340 --> 00:57:16,390 Me lihtsalt anda talle seisukorras. 1170 00:57:16,390 --> 00:57:18,264 >> Ja teha, kui silmus, jälle täpselt sama. 1171 00:57:18,264 --> 00:57:20,190 Anname see tingimus. 1172 00:57:20,190 --> 00:57:24,510 Oletame, et ma tahtsin korrata over-- Tahtsin teha midagi viis korda. 1173 00:57:24,510 --> 00:57:27,840 In C, võiksime kirjutada init'it i võrdub 0. 1174 00:57:27,840 --> 00:57:30,480 i on väiksem kui 5, i ++. 1175 00:57:30,480 --> 00:57:34,240 Ainus erinevus, JavaScript, selle asemel, et öelda int i võrdub 0, 1176 00:57:34,240 --> 00:57:36,820 ütleme var i võrdub 0. 1177 00:57:36,820 --> 00:57:38,370 Ilus. 1178 00:57:38,370 --> 00:57:41,320 See on ainus erinevus. 1179 00:57:41,320 --> 00:57:43,200 Kõik küsimused mis tahes selle? 1180 00:57:43,200 --> 00:57:44,160 Jah. 1181 00:57:44,160 --> 00:57:48,480 >> Sihtrühm: Nii PHP, see on sama asi, välja arvatud, kuid nagu muutuja? 1182 00:57:48,480 --> 00:57:49,564 Või oli see, et var näiteks? 1183 00:57:49,564 --> 00:57:50,480 HANNAH Blumberg: Jah. 1184 00:57:50,480 --> 00:57:52,310 Nii PHP, see läheb olla dollari märk. 1185 00:57:52,310 --> 00:57:59,450 Nii see läheb $ i võrdsete 0, $ i on väiksem kui 5, $ i ++. 1186 00:57:59,450 --> 00:58:02,490 Hea küsimus. 1187 00:58:02,490 --> 00:58:04,570 >> Nüüd räägime funktsiooni deklaratsioonid. 1188 00:58:04,570 --> 00:58:07,010 In C, kui me kuulutatud funktsioon, andsime talle nime 1189 00:58:07,010 --> 00:58:08,490 ja andsime mõned parameetrid. 1190 00:58:08,490 --> 00:58:10,670 Ja alguses, me kirjutasime tüübist. 1191 00:58:10,670 --> 00:58:12,440 In JavaScript, kõik me pead tegema, on kirjutada 1192 00:58:12,440 --> 00:58:15,080 märksõna funktsioon, mis ütleb, hei, JavaScript, 1193 00:58:15,080 --> 00:58:16,570 Ma olen umbes määratleda funktsiooni. 1194 00:58:16,570 --> 00:58:18,520 >> Sel juhul on nimi summa. 1195 00:58:18,520 --> 00:58:20,820 Ja see võtab kaks argumenti, x ja y. 1196 00:58:20,820 --> 00:58:23,280 Pange tähele, et me ei hooli tüüpide kohta x ja y. 1197 00:58:23,280 --> 00:58:26,280 Ja nagu C, meil Selle märksõna tagastamise, 1198 00:58:26,280 --> 00:58:29,140 nii et me saame teha midagi nagu tagasipöördumine x ja y. 1199 00:58:29,140 --> 00:58:32,540 >> Ja nüüd, kui me oleme kirjutanud selle esimese funktsiooni, saame kasutada summa kuskil. 1200 00:58:32,540 --> 00:58:34,740 Ja see on täiesti korras. 1201 00:58:34,740 --> 00:58:37,530 Üks väga lahe asi JavaScript et on väga erinevalt C 1202 00:58:37,530 --> 00:58:40,770 on see, et funktsioone saab kohelda nagu väärtusi. 1203 00:58:40,770 --> 00:58:43,895 Nii saame teha midagi siin kus ma arvan, et ma katta see up-- 1204 00:58:43,895 --> 00:58:46,400 Ma kaetud var summa part-- ja me lihtsalt ütles 1205 00:58:46,400 --> 00:58:49,850 funktsiooni xy võrdub tagastamise x pluss y. 1206 00:58:49,850 --> 00:58:52,140 >> See on see, mida oleks nn anonüümne funktsioon. 1207 00:58:52,140 --> 00:58:53,920 See funktsioon ilma nimeta. 1208 00:58:53,920 --> 00:58:56,290 Käesolev ütleb funktsiooni summa, blah, blah, blah, 1209 00:58:56,290 --> 00:58:59,340 see oleks lihtsalt öelda funktsioon. 1210 00:58:59,340 --> 00:59:02,020 Aga nüüd, kuigi mul on see anonüümne funktsioon, 1211 00:59:02,020 --> 00:59:03,630 et funktsioon on tõesti ainult raha. 1212 00:59:03,630 --> 00:59:05,160 Me võime ravida nagu väärtus. 1213 00:59:05,160 --> 00:59:10,180 >> Nii saame salvestada see muutuja sama kuidas me võiksime hoida 50 muutujana. 1214 00:59:10,180 --> 00:59:13,870 Nii võime öelda, OK, ma tahan varieeruv, seda nimetatakse summa, 1215 00:59:13,870 --> 00:59:16,011 ja see on see funktsioon. 1216 00:59:16,011 --> 00:59:18,760 Nii et need kaks asja on tegelikult kavatseb teha täpselt sama asi, 1217 00:59:18,760 --> 00:59:21,576 aga süntaks on veidi erinev ja omamoodi lõbus märkus. 1218 00:59:21,576 --> 00:59:22,076 Jah. 1219 00:59:22,076 --> 00:59:25,548 >> Sihtrühm: Nii võid helistada funktsiooni, mis oli anonüümne, öeldes, 1220 00:59:25,548 --> 00:59:28,244 summa sulgudes 2, 5? 1221 00:59:28,244 --> 00:59:29,160 HANNAH Blumberg: Jah. 1222 00:59:29,160 --> 00:59:32,280 Teil on võimalik helistada anonüümseid funktsiooni samamoodi. 1223 00:59:32,280 --> 00:59:33,350 Sa peaks summa (2, 5) ;. 1224 00:59:33,350 --> 00:59:36,180 1225 00:59:36,180 --> 00:59:38,200 See oleks täiesti korras. 1226 00:59:38,200 --> 00:59:41,575 >> Kui ma ei teinud var summa võrdub funktsiooni, kui ma lihtsalt kustutatakse 1227 00:59:41,575 --> 00:59:45,480 see-- Ma tean, et see minu poolt kuid teeselda ma välja see-- siis 1228 00:59:45,480 --> 00:59:46,964 et funktsioon on selline lihtsalt läinud. 1229 00:59:46,964 --> 00:59:49,630 Sa ei saa kunagi seda uuesti kasutada, sest Te ei ole nimi. 1230 00:59:49,630 --> 00:59:53,497 On raske viitab millelegi sa ei tea, mida nimetame. 1231 00:59:53,497 --> 00:59:54,080 Hea küsimus. 1232 00:59:54,080 --> 00:59:54,580 Jah. 1233 00:59:54,580 --> 00:59:59,580 >> Sihtrühm: Kas te viite summa mujal väärtusega x pluss y? 1234 00:59:59,580 --> 01:00:01,940 >> HANNAH Blumberg: Kas sa viide summa mujal 1235 01:00:01,940 --> 01:00:03,360 väärtusega x pluss y? 1236 01:00:03,360 --> 01:00:05,130 Ma pole päris kindel, mida sa mõtled. 1237 01:00:05,130 --> 01:00:10,582 >> Sihtrühm: Nii oma mineviku semi-anonüümsed funktsioon on summa on võrdne selle 1238 01:00:10,582 --> 01:00:14,452 anonüümne funktsioon, nii et summa on Nüüd muutuja, mis sa can-- 1239 01:00:14,452 --> 01:00:15,410 HANNAH Blumberg: Right. 1240 01:00:15,410 --> 01:00:18,980 Nii summa on varieeruv, aga see on actually-- 1241 01:00:18,980 --> 01:00:23,770 nii summa on muutuva kelle väärtus on funktsioon. 1242 01:00:23,770 --> 01:00:27,030 Seega on funktsioon, mis on selline imelik asi wrap pea ümber 1243 01:00:27,030 --> 01:00:29,880 sest me oleme mänginud C ja sa ei saa seda teha, et C. 1244 01:00:29,880 --> 01:00:32,679 Aga nüüd me nimetame lööme kokku Samamoodi võiks nimetada summa siin. 1245 01:00:32,679 --> 01:00:33,220 Sihtrühm: OK. 1246 01:00:33,220 --> 01:00:33,970 HANNAH Blumberg: Jah. 1247 01:00:33,970 --> 01:00:34,553 Hea küsimus. 1248 01:00:34,553 --> 01:00:35,438 Jah. 1249 01:00:35,438 --> 01:00:39,862 >> Sihtrühm: Nii et me ei kasuta prototüübid PHP või JavaScripti? 1250 01:00:39,862 --> 01:00:42,070 HANNAH Blumberg: Ei, me ei pea kasutama prototüüpe, 1251 01:00:42,070 --> 01:00:43,880 eriti JavaScript. 1252 01:00:43,880 --> 01:00:49,380 Nii et üks halb tava asi, mis ma olen ütled, et sa ei peaks tegema 1253 01:00:49,380 --> 01:00:52,620 on sa ei pea kirjutama var i = 50. 1254 01:00:52,620 --> 01:00:54,840 Sa võid lihtsalt hakkan i = 50. 1255 01:00:54,840 --> 01:00:57,490 Ja oleks lihtsalt i globaalne muutuja. 1256 01:00:57,490 --> 01:01:00,550 >> See on väga halb tava kunagi öelda selgesõnaliselt var i, 1257 01:01:00,550 --> 01:01:01,800 kuid see on midagi, mida saate teha. 1258 01:01:01,800 --> 01:01:03,591 Tõlk ei ole läheb kisa teile. 1259 01:01:03,591 --> 01:01:05,920 JavaScript on päris sarnased sa võid teha, mida tahad. 1260 01:01:05,920 --> 01:01:09,301 1261 01:01:09,301 --> 01:01:09,800 Oi vabandust. 1262 01:01:09,800 --> 01:01:10,300 Seal on kaks. 1263 01:01:10,300 --> 01:01:12,150 Oranžiga püksid. 1264 01:01:12,150 --> 01:01:13,190 Lase käia. 1265 01:01:13,190 --> 01:01:14,390 >> Sihtrühm: Ei, sa lähed esimest. 1266 01:01:14,390 --> 01:01:16,765 >> Sihtrühm: Ei, ma lihtsalt ütlen Mul ei olnud mu kätt üles. 1267 01:01:16,765 --> 01:01:20,248 1268 01:01:20,248 --> 01:01:20,748 OKEI. 1269 01:01:20,748 --> 01:01:26,604 Nii et kui sa olid kõne Esimesel korral nüüd Kokkuvõttes, 1270 01:01:26,604 --> 01:01:29,864 Me nimetame seda samamoodi, x, y, nagu iga kord? 1271 01:01:29,864 --> 01:01:30,780 HANNAH Blumberg: Jah. 1272 01:01:30,780 --> 01:01:32,572 Nii et need kaks sisuliselt teha sama asja. 1273 01:01:32,572 --> 01:01:35,113 Sihtrühm: Ja mis see eelis kasutades üht või teist? 1274 01:01:35,113 --> 01:01:37,500 HANNAH Blumberg: No ära kasutades üht või teist. 1275 01:01:37,500 --> 01:01:40,080 Ma lihtsalt tahtsin näidata teile kaks erinevaid tükke süntaks. 1276 01:01:40,080 --> 01:01:42,770 Palju kordi, kus anonüümne funktsioonid on küll eesmärk 1277 01:01:42,770 --> 01:01:48,220 on, kui argument teise funktsiooni peaks olema funktsioon. 1278 01:01:48,220 --> 01:01:50,600 Ja me näeme, et lihtsalt teise Ajax. 1279 01:01:50,600 --> 01:01:53,577 >> Nii et kui see ei ole mingit mõtet, pange see tagasi oma peaga. 1280 01:01:53,577 --> 01:01:55,660 See, kui anonüümne funktsioon võib olla kasulik 1281 01:01:55,660 --> 01:01:58,284 sest see ei ole tõesti väärt andes talle nime, sest me oleme lihtsalt 1282 01:01:58,284 --> 01:01:59,443 kavatsete kasutada seda üks kord. 1283 01:01:59,443 --> 01:02:00,370 Jah. 1284 01:02:00,370 --> 01:02:03,635 >> Sihtrühm: Kui x ja y muutus hiljem kohta, mis kokkuvõttes muuta ka? 1285 01:02:03,635 --> 01:02:06,510 HANNAH Blumberg: Kui x ja y muutus hiljem, siis Kokkuvõttes muuta ka? 1286 01:02:06,510 --> 01:02:08,840 Nii et see on tegelikult olen arvan, midagi, mis on, 1287 01:02:08,840 --> 01:02:12,260 Jällegi, see lihtsalt tundub väga erinev C. See ei ole väärtust. 1288 01:02:12,260 --> 01:02:13,620 See ei ole 5. 1289 01:02:13,620 --> 01:02:15,550 See on lihtsalt funktsioon ise. 1290 01:02:15,550 --> 01:02:19,110 Nii kiiresti kui sa annad selle parameetrid siis sa tegelikult arvutada väärtus. 1291 01:02:19,110 --> 01:02:21,193 >> MARIA ZLATKOVA: Ja siis võite helistada funktsiooni 1292 01:02:21,193 --> 01:02:23,272 ja seda kasutada, et saada mingi väärtus. 1293 01:02:23,272 --> 01:02:24,230 HANNAH Blumberg: Right. 1294 01:02:24,230 --> 01:02:25,250 Täpselt. 1295 01:02:25,250 --> 01:02:25,863 Jah. 1296 01:02:25,863 --> 01:02:27,946 >> Sihtrühm: Nii et kui sa lihtsalt pange see muutuja, 1297 01:02:27,946 --> 01:02:31,430 nagu var x võrdub summaga kaks values-- 1298 01:02:31,430 --> 01:02:32,420 >> HANNAH Blumberg: Jah. 1299 01:02:32,420 --> 01:02:35,320 Nii et sa võiksid lihtsalt teha var summa võrdub summa kaks väärtust. 1300 01:02:35,320 --> 01:02:37,670 Jah. 1301 01:02:37,670 --> 01:02:38,680 Muid küsimusi? 1302 01:02:38,680 --> 01:02:39,642 Jah. 1303 01:02:39,642 --> 01:02:42,047 >> Sihtrühm: Aga kas see segadusse summa ja summa? 1304 01:02:42,047 --> 01:02:45,062 Nagu siis, kui te helistate oma muutuva summaga, te helistate funktsiooni summa? 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 Kui sa tegid midagi nagu, summa võrdub summa 2, 5? 1308 01:02:51,253 --> 01:02:53,170 >> Sihtrühm: Jah. 1309 01:02:53,170 --> 01:02:56,465 >> HANNAH Blumberg: Ma arvan, et oleks kirjutada väärtus summa. 1310 01:02:56,465 --> 01:02:59,290 Nii veel üks huvitav asi JavaScript 1311 01:02:59,290 --> 01:03:02,950 on see, et ühe muutuja võib võtta kamp erinevat tüüpi. 1312 01:03:02,950 --> 01:03:03,790 Bad praktikas. 1313 01:03:03,790 --> 01:03:06,280 Sa ei tohiks midagi teha nagu mida sa just ütlesid. 1314 01:03:06,280 --> 01:03:10,240 >> Aga C, kui i on seatud võrdne täisarv, 1315 01:03:10,240 --> 01:03:13,570 me teame, et see on kunagi hakkab muutuma string. 1316 01:03:13,570 --> 01:03:15,670 See ei ole juhtum JavaScript. 1317 01:03:15,670 --> 01:03:17,770 Jah, hea küsimus. 1318 01:03:17,770 --> 01:03:20,151 Midagi veel? 1319 01:03:20,151 --> 01:03:20,650 Hästi. 1320 01:03:20,650 --> 01:03:21,850 Teeme kõik õigel ajal. 1321 01:03:21,850 --> 01:03:23,050 Hoiame läheb. 1322 01:03:23,050 --> 01:03:25,200 Hästi. 1323 01:03:25,200 --> 01:03:27,780 >> Kui me vaatame massiivi JavaScript, siin 1324 01:03:27,780 --> 01:03:30,250 Kiire näiteks massiivi stringe. 1325 01:03:30,250 --> 01:03:31,967 Ja massiivid võib kasvada dünaamiliselt. 1326 01:03:31,967 --> 01:03:33,675 Nad ei ole fikseeritud suurus samamoodi 1327 01:03:33,675 --> 01:03:37,990 et nad teevad C. Me ei pääse elemente vaid nurksulgudes. 1328 01:03:37,990 --> 01:03:41,720 >> See näeb välja palju nagu PHP ja palju nagu C, kus me saame öelda, sel juhul, 1329 01:03:41,720 --> 01:03:48,360 kui ma tahtsin sõna JavaScript, oleksin ei Arr nurksulgudes oleva 0, 1, 2. 1330 01:03:48,360 --> 01:03:51,450 1331 01:03:51,450 --> 01:03:55,390 Ja siis, kui sa mäletad C, kui me tahtsin saada pikkus array, 1332 01:03:55,390 --> 01:03:56,820 see oli tõesti tüütu. 1333 01:03:56,820 --> 01:03:58,460 Aga JavaScript, super lihtne. 1334 01:03:58,460 --> 01:03:59,910 Kõik me teeme, LENGTH. 1335 01:03:59,910 --> 01:04:01,120 Annab see pikkused. 1336 01:04:01,120 --> 01:04:01,892 Nii see on. 1337 01:04:01,892 --> 01:04:03,140 >> Sihtrühm: See on lihtne. 1338 01:04:03,140 --> 01:04:05,306 >> HANNAH Blumberg: Jah, teeb su elu palju lihtsamaks. 1339 01:04:05,306 --> 01:04:08,950 1340 01:04:08,950 --> 01:04:11,560 OK, object-- ole olemas. 1341 01:04:11,560 --> 01:04:15,480 Objektid JavaScript tunne palju nagu struktuurideks C 1342 01:04:15,480 --> 01:04:18,280 ja assotsiatiivne massiivid PHP. 1343 01:04:18,280 --> 01:04:20,270 Mida me oleme näinud Palju on JSON, mis 1344 01:04:20,270 --> 01:04:23,150 tähistab JavaScript Object Märge. 1345 01:04:23,150 --> 01:04:25,550 Ja see on põhimõtteliselt nii, struktureerimise meie andmeid. 1346 01:04:25,550 --> 01:04:27,880 >> Vaatame näiteks, ilmselt kõige lihtsam. 1347 01:04:27,880 --> 01:04:32,540 Nii et siin on näide objekti mis talletab klassi, CS50. 1348 01:04:32,540 --> 01:04:37,790 Ja kui ma ütlen klassi, ma mõtlen muidugi ei like-- jaa, muidugi, CS50. 1349 01:04:37,790 --> 01:04:40,730 Ja te näete, et kõik objekti 1350 01:04:40,730 --> 01:04:43,526 läheb sisalduva lokkis traksid. 1351 01:04:43,526 --> 01:04:48,260 >> Ja hakkame siduda väljanimede või võtmed koos erinevaid väärtusi. 1352 01:04:48,260 --> 01:04:52,920 Nii saab alustada näha, kuidas selline tundub assotsiatiivne massiiv PHP. 1353 01:04:52,920 --> 01:04:57,450 Nii et me läheme siduda valdkonnas või võti nimi, muidugi, nööri, 1354 01:04:57,450 --> 01:04:58,510 CS50. 1355 01:04:58,510 --> 01:04:59,940 >> Me läheme on õpetaja. 1356 01:04:59,940 --> 01:05:00,940 Me läheme on TF. 1357 01:05:00,940 --> 01:05:05,240 Me läheme on mitmeid psets ja me ei kavatse on salvestatud. 1358 01:05:05,240 --> 01:05:10,720 Ja üks lahe asi on tähele panna kõiki need asjad on erinevad, 1359 01:05:10,720 --> 01:05:12,020 ja see on täiesti korras. 1360 01:05:12,020 --> 01:05:15,330 >> See on hea objektile, tegelikult see on ilmselt oodata objekti 1361 01:05:15,330 --> 01:05:19,620 on kombinatsioon stringid ja numbrite tõeväärtused ja massiivid 1362 01:05:19,620 --> 01:05:23,420 ja mis iganes sa võiksid tahad olla sees oma objekti. 1363 01:05:23,420 --> 01:05:28,570 Ja pange tähele, et need hakkavad olema nimed või võtmed, ja siis me lihtsalt 1364 01:05:28,570 --> 01:05:30,300 seadke see võrdne veidi jämesooles. 1365 01:05:30,300 --> 01:05:32,015 >> Sihtrühm: Mida täpselt JSON tähendab? 1366 01:05:32,015 --> 01:05:33,890 HANNAH Blumberg: Mis täpselt ei JSON tähendab? 1367 01:05:33,890 --> 01:05:36,470 JSON lihtsalt seisab JavaScript Object Märge. 1368 01:05:36,470 --> 01:05:38,430 See on lihtsalt viis formaati. 1369 01:05:38,430 --> 01:05:40,040 Jah. 1370 01:05:40,040 --> 01:05:41,800 See viis vormingu meie andmeid. 1371 01:05:41,800 --> 01:05:43,620 >> In C, see on struktuurideks. 1372 01:05:43,620 --> 01:05:45,800 PHP, see on assotsiatiivne massiivid. 1373 01:05:45,800 --> 01:05:47,120 In JavaScript, meil objekte. 1374 01:05:47,120 --> 01:05:48,969 >> Sihtrühm: Nii CS50 on objekt? 1375 01:05:48,969 --> 01:05:51,010 HANNAH Blumberg: CS50 on objekti sel juhul. 1376 01:05:51,010 --> 01:05:54,830 1377 01:05:54,830 --> 01:05:57,880 Nüüd, kuidas me tegelikult juurdepääs neis valdkondades või muuta neis valdkondades. 1378 01:05:57,880 --> 01:06:03,920 Oletame näiteks, et me otsustasime, et sa tahtsid ühe vähem pset see semester. 1379 01:06:03,920 --> 01:06:06,300 Selle asemel üheksa, me oleme lihtsalt läheb aega kaheksa. 1380 01:06:06,300 --> 01:06:08,240 Kuidas me seda muuta? 1381 01:06:08,240 --> 01:06:09,436 >> Oh, valesti. 1382 01:06:09,436 --> 01:06:11,060 On kaks võimalust, et me saame seda teha. 1383 01:06:11,060 --> 01:06:13,490 Number üks on koos dot märke ja number kaks 1384 01:06:13,490 --> 01:06:15,750 on koos nurksulg märke. 1385 01:06:15,750 --> 01:06:19,720 Nii näiteks, kui ma tahtis muuta või juurdepääsu 1386 01:06:19,720 --> 01:06:26,820 psets valdkonnas meie CS50 objekti, mida ma teeksin on CS50.psets, 1387 01:06:26,820 --> 01:06:30,770 nii objekti nimetuse dot nimi valdkonnas või võti. 1388 01:06:30,770 --> 01:06:37,120 >> Väga sarnaselt, see on täpselt samaväärne teha CS50 ja seejärel 1389 01:06:37,120 --> 01:06:42,050 kandiliste sulgudega, psets. 1390 01:06:42,050 --> 01:06:42,837 Cool? 1391 01:06:42,837 --> 01:06:44,298 Jah. 1392 01:06:44,298 --> 01:06:47,707 >> Sihtrühm: Nii on JSON tehniliselt JavaScript ikka, 1393 01:06:47,707 --> 01:06:51,814 kuigi on psets me eraldi välja [kuuldamatu]? 1394 01:06:51,814 --> 01:06:52,730 HANNAH Blumberg: Muidugi. 1395 01:06:52,730 --> 01:06:56,290 Seega on küsimus selles, kas JavaScript ja JSON samaväärne? 1396 01:06:56,290 --> 01:07:00,750 Nii JSON on märke, põhiliselt nii, et me kirjutame välja 1397 01:07:00,750 --> 01:07:02,700 Objekti JavaScript. 1398 01:07:02,700 --> 01:07:05,190 Nii nad ei ole täpselt sama. 1399 01:07:05,190 --> 01:07:08,950 >> Ütleksin JavaScript ei on objekte JavaScript. 1400 01:07:08,950 --> 01:07:12,590 JSON võtab neid objekte ja prindib ja kuvab need 1401 01:07:12,590 --> 01:07:15,160 või salvestab need kena viis. 1402 01:07:15,160 --> 01:07:18,110 Nii JSON ei ole programmeerimine keelt nii, et JavaScript on. 1403 01:07:18,110 --> 01:07:20,900 See on lihtsalt märke Meie objektid JavaScript. 1404 01:07:20,900 --> 01:07:21,400 Jah. 1405 01:07:21,400 --> 01:07:24,144 >> Sihtrühm: Nii, mida täpselt [Kuuldamatu] lõpetada? 1406 01:07:24,144 --> 01:07:25,060 HANNAH Blumberg: Muidugi. 1407 01:07:25,060 --> 01:07:27,727 Nii see tegelikult ei tee midagi. 1408 01:07:27,727 --> 01:07:28,935 See on lihtsalt viis pääseda. 1409 01:07:28,935 --> 01:07:31,393 Ütleme, et me tahame muuta arvu probleem komplekti 1410 01:07:31,393 --> 01:07:32,450 üheksalt kaheksale. 1411 01:07:32,450 --> 01:07:34,383 Mida me teeme, on midagi nagu CS50.psets = 8 ;. 1412 01:07:34,383 --> 01:07:38,500 1413 01:07:38,500 --> 01:07:39,400 >> Jah, suur küsimus. 1414 01:07:39,400 --> 01:07:40,733 See on lihtsalt, et näidata teile süntaks. 1415 01:07:40,733 --> 01:07:43,620 Tegelikult ei tee midagi kasulikku. 1416 01:07:43,620 --> 01:07:46,085 Kas küsimusi on? 1417 01:07:46,085 --> 01:07:48,210 Liikumine paremale mööda. 1418 01:07:48,210 --> 01:07:51,960 >> Nii vaatame kiire näide sellest, kuidas JavaScript töötab, sest ma ütlesin, et see 1419 01:07:51,960 --> 01:07:55,170 teeb kõiki neid asju, cool ja võimaldab meil muuta veebilehti. 1420 01:07:55,170 --> 01:07:56,970 Olgem tegelikult näen seda tegevust. 1421 01:07:56,970 --> 01:07:59,850 Nii, et võta näiteks see HTML faili. 1422 01:07:59,850 --> 01:08:04,350 >> Ja asi, mida ma tahan, et sa keskenduda on see silt on, mis on nupp, 1423 01:08:04,350 --> 01:08:06,182 id search_button. 1424 01:08:06,182 --> 01:08:08,670 See on lihtsalt lehel. 1425 01:08:08,670 --> 01:08:10,690 Nüüd vaatame, mis saame tegelikult teha. 1426 01:08:10,690 --> 01:08:12,560 >> Noh, oletame, kui klõpsate seda nuppu, 1427 01:08:12,560 --> 01:08:16,010 tahame teha alert-- klõpsasite nuppu. 1428 01:08:16,010 --> 01:08:17,840 Vaatame, kuidas me saame seda teha. 1429 01:08:17,840 --> 01:08:23,869 Nii window.onload-- see ei ole midagi et oled näinud klassis, seega 1430 01:08:23,869 --> 01:08:26,180 ei vaja seda teada viktoriini. 1431 01:08:26,180 --> 01:08:33,660 Aga see põhimõtteliselt ütleb, OK, kõne seda funktsiooni, kui aken koormusi. 1432 01:08:33,660 --> 01:08:35,080 >> Nii et see lihtsalt selline setup koodi. 1433 01:08:35,080 --> 01:08:36,390 Ära muretse nii palju, et. 1434 01:08:36,390 --> 01:08:39,170 Mida ma tahan, et sa keskenduda on siin. 1435 01:08:39,170 --> 01:08:44,020 Me ütleme var searchButton võrdub document.getElementById search_button. 1436 01:08:44,020 --> 01:08:46,450 >> Nii nagu te võite arvata, Mis see on öeldud, 1437 01:08:46,450 --> 01:08:50,920 OK, mine leia element ID search_button. 1438 01:08:50,920 --> 01:08:52,790 Ja nüüd on meil see tegelik element ja ma olen 1439 01:08:52,790 --> 01:08:56,279 läheb seda säilitada muutuja searchButton. 1440 01:08:56,279 --> 01:09:00,651 Ja nüüd me saame tegelikult kasutada, et element ja seda muuta, või juurdepääsu oma väärtusi, 1441 01:09:00,651 --> 01:09:01,359 asjad niimoodi. 1442 01:09:01,359 --> 01:09:04,649 Me võime tegelikult hakata suhelda veebilehele. 1443 01:09:04,649 --> 01:09:10,330 >> Nii et siin ma ütlen, OK, nüüd, et mul on et nupp, kui see on klõpsatud, 1444 01:09:10,330 --> 01:09:12,859 nimetame seda anonüümne funktsioon. 1445 01:09:12,859 --> 01:09:16,811 Nii et see on koht, kus anonüümne funktsioonid osutuda kasulikuks. 1446 01:09:16,811 --> 01:09:18,060 Ja mida see funktsioon teeb? 1447 01:09:18,060 --> 01:09:20,529 Noh, see lihtsalt nõuab seda alarmi ja ta ütleb, 1448 01:09:20,529 --> 01:09:22,910 klõpsasite nuppu Otsi. 1449 01:09:22,910 --> 01:09:29,670 >> Mis juhtub, kui ma lähen sinna, kus Selle HTML elab ja ma vajutan nuppu, 1450 01:09:29,670 --> 01:09:33,729 Ma saan väljamõeldud vähe alert mis ütleb, et sa klõpsad nupule. 1451 01:09:33,729 --> 01:09:40,710 Nii asjad keskenduda siin-- document.getElementById 1452 01:09:40,710 --> 01:09:44,960 saab konkreetse HTML element ID-ga. 1453 01:09:44,960 --> 01:09:48,529 Ja nüüd saame Mis juhtub, kui 1454 01:09:48,529 --> 01:09:50,702 et konkreetne element on klõpsatud. 1455 01:09:50,702 --> 01:09:52,670 >> Sihtrühm: Meil ​​on panna kõik, et? 1456 01:09:52,670 --> 01:09:53,162 >> HANNAH Blumberg: Vabandust? 1457 01:09:53,162 --> 01:09:55,130 >> Sihtrühm: Kas me peame füüsiliselt koodi kõike seda? 1458 01:09:55,130 --> 01:09:56,340 >> HANNAH Blumberg: Kas me peame füüsiliselt koodi kõike seda? 1459 01:09:56,340 --> 01:09:56,839 Jah. 1460 01:09:56,839 --> 01:09:58,120 Kas see ei ole mingi tüütu? 1461 01:09:58,120 --> 01:10:00,032 See on palju koodi. 1462 01:10:00,032 --> 01:10:01,574 >> Sihtrühm: Sa võiksid importida midagi. 1463 01:10:01,574 --> 01:10:02,532 HANNAH Blumberg: Right. 1464 01:10:02,532 --> 01:10:03,610 Me võiksime kasutada midagi. 1465 01:10:03,610 --> 01:10:08,140 Ja particular-- oh, see on mulle öelda, ma pean õpetama osa. 1466 01:10:08,140 --> 01:10:11,061 Eelkõige olgem kasutada raamatukogu jQuery, 1467 01:10:11,061 --> 01:10:13,060 sest see oli tõesti pikk ja väga tüütu 1468 01:10:13,060 --> 01:10:16,860 ja ma tahan, et oleks võimalik seda lihtsustada ja teha seda lühem ja lihtsam kirjutada. 1469 01:10:16,860 --> 01:10:19,810 >> Nii jQuery on JavaScript raamatukogu. 1470 01:10:19,810 --> 01:10:24,930 Nii JavaScript on programmeerimine keelt; jQuery on raamatukogu. 1471 01:10:24,930 --> 01:10:27,190 Ja see teeb hunnik asju lihtsamaks. 1472 01:10:27,190 --> 01:10:33,230 See muudab muutuv ja läheb üle HTML dokumendi palju lihtsam. 1473 01:10:33,230 --> 01:10:35,030 >> See muudab käsitsemise sündmuste lihtsam. 1474 01:10:35,030 --> 01:10:37,580 See muudab animatsiooni lihtsamaks ja see teeb Ajax lihtsam. 1475 01:10:37,580 --> 01:10:40,140 Nii saab hüpata kaks need asjad kohe. 1476 01:10:40,140 --> 01:10:40,900 Vabandage. 1477 01:10:40,900 --> 01:10:42,620 Enne teeme, mõned põhilised süntaks. 1478 01:10:42,620 --> 01:10:46,870 >> See on see, mida enamik kõnesid jQuery raamatukogu nägema. 1479 01:10:46,870 --> 01:10:50,520 Me kasutame seda dollari sign-- mingit seost märk PHP, 1480 01:10:50,520 --> 01:10:56,030 lihtsalt inconvenient-- nime valija, dot, ja seejärel hagi. 1481 01:10:56,030 --> 01:10:58,860 Vaatame mõned konkreetseid näiteid sellest. 1482 01:10:58,860 --> 01:11:02,980 >> Nii on see tegelikult sama kood ürituse slide. 1483 01:11:02,980 --> 01:11:08,740 Nii et see pikk, kole asi muutub see palju ilusam, väiksem asi. 1484 01:11:08,740 --> 01:11:10,370 Nii proovime jaotada see. 1485 01:11:10,370 --> 01:11:17,090 See ütleb, OK, jQuery-- selle dollar sign-- jQuery, leia mind aknast. 1486 01:11:17,090 --> 01:11:18,480 Nii see on valija. 1487 01:11:18,480 --> 01:11:21,800 >> Kui see laeb, nimetame seda funktsiooni. 1488 01:11:21,800 --> 01:11:23,880 Nii et see kõik sees. 1489 01:11:23,880 --> 01:11:24,380 OKEI. 1490 01:11:24,380 --> 01:11:25,740 Siiamaani on kõik korras? 1491 01:11:25,740 --> 01:11:26,750 Hästi. 1492 01:11:26,750 --> 01:11:32,970 >> Nüüd, jQuery, leida mulle Asi ID search_button. 1493 01:11:32,970 --> 01:11:36,090 Ja mis see on klõpsatud, nimetame seda funktsiooni. 1494 01:11:36,090 --> 01:11:37,900 Ja siis see funktsioon on täpselt sama. 1495 01:11:37,900 --> 01:11:41,052 Lihtsalt teha natuke tähelepanelik, klõpsasite nuppu Otsi. 1496 01:11:41,052 --> 01:11:42,650 >> Nii et see on väga tore. 1497 01:11:42,650 --> 01:11:46,260 On tõesti kondenseerub ja lihtsustab meie koodi. 1498 01:11:46,260 --> 01:11:49,030 Kuidas ma tean, et see on ID search_button 1499 01:11:49,030 --> 01:11:50,960 ja ei meeldi klassi search_button? 1500 01:11:50,960 --> 01:11:52,024 >> Sihtrühm: Hashtag? 1501 01:11:52,024 --> 01:11:52,940 HANNAH Blumberg: Jah. 1502 01:11:52,940 --> 01:11:56,450 See hash sümbol, see on nagu CSS. 1503 01:11:56,450 --> 01:12:00,080 Seega pidage meeles, CSS, kui me tahtsin valida midagi, mida ID, 1504 01:12:00,080 --> 01:12:01,590 me kasutasime naelamärk. 1505 01:12:01,590 --> 01:12:05,400 Ja kui me tahame, et valida midagi klassi, me kasutame dot. 1506 01:12:05,400 --> 01:12:06,870 Hea. 1507 01:12:06,870 --> 01:12:08,230 On loogiline? 1508 01:12:08,230 --> 01:12:11,500 Nii jQuery peaks lihtsalt meie elu lihtsamaks. 1509 01:12:11,500 --> 01:12:12,000 Jah. 1510 01:12:12,000 --> 01:12:15,660 >> Sihtrühm: Nii et ma olen natuke segaduses kuidas anonüümne funktsioon töötab. 1511 01:12:15,660 --> 01:12:19,027 Kas oskad nimetada seda anonymouse funktsioon, toimida? 1512 01:12:19,027 --> 01:12:20,594 Kuidas seda nimetatakse? 1513 01:12:20,594 --> 01:12:21,510 HANNAH Blumberg: Muidugi. 1514 01:12:21,510 --> 01:12:25,812 Nii funktsioon on lihtsalt märksõna, et ütleb, ma olen umbes määratleda funktsiooni. 1515 01:12:25,812 --> 01:12:26,520 Sihtrühm: Oh, OK. 1516 01:12:26,520 --> 01:12:27,353 HANNAH Blumberg: OK? 1517 01:12:27,353 --> 01:12:32,120 Ja siis võtame seda kui argument mina-- võtame 1518 01:12:32,120 --> 01:12:37,040 selle sisemise one-- et click funktsiooni. 1519 01:12:37,040 --> 01:12:39,420 Nii et jah, nii et funktsiooni, see anonüümne funktsioon, 1520 01:12:39,420 --> 01:12:40,910 muutub tegelik argument. 1521 01:12:40,910 --> 01:12:43,632 Seega pidage meeles JavaScript, me ravib toimib väärtusi. 1522 01:12:43,632 --> 01:12:44,340 Sihtrühm: Oh, OK. 1523 01:12:44,340 --> 01:12:45,256 HANNAH Blumberg: Jah. 1524 01:12:45,256 --> 01:12:46,035 Mulle meeldib, et "oh." 1525 01:12:46,035 --> 01:12:47,490 Nice. 1526 01:12:47,490 --> 01:12:49,915 Muud küsimused? 1527 01:12:49,915 --> 01:12:50,505 Time? 1528 01:12:50,505 --> 01:12:51,380 MARIA ZLATKOVA: Hea. 1529 01:12:51,380 --> 01:12:52,760 Väga hea. 1530 01:12:52,760 --> 01:12:54,210 >> HANNAH Blumberg: Awesome. 1531 01:12:54,210 --> 01:12:55,720 Natuke kiiret kasulik jQuery. 1532 01:12:55,720 --> 01:12:57,559 Ma ei lähe kaudu kõiki neid. 1533 01:12:57,559 --> 01:12:59,350 Need slaidid on up online natuke 1534 01:12:59,350 --> 01:13:02,040 hiljem, siis võite vaadata see natuke hiljem. 1535 01:13:02,040 --> 01:13:07,120 Aga põhimõtteliselt, üldine muster hoiab, kus me ütleme, 1536 01:13:07,120 --> 01:13:11,510 OK, hei, jQuery, siin on minu valija ja siis siin on hagi. 1537 01:13:11,510 --> 01:13:15,940 Ja seda saab teha asju Juurdepääs väärtus vorm, juurdepääsu teatud HTML, 1538 01:13:15,940 --> 01:13:19,195 kontrolli, mis juhtub siis, kui kasutaja esitab vormi, asjad niimoodi. 1539 01:13:19,195 --> 01:13:20,106 Jah. 1540 01:13:20,106 --> 01:13:22,090 >> Sihtrühm: Nii et eksam, me ei kavatse vaja 1541 01:13:22,090 --> 01:13:25,066 teada üsna palju alates jQuery dokumentatsiooni. 1542 01:13:25,066 --> 01:13:31,018 Nii, arvestades, et me kopeeri / kleebi jQuery dokumentatsiooni meie petma lehte, 1543 01:13:31,018 --> 01:13:32,506 Kus joont? 1544 01:13:32,506 --> 01:13:33,957 Nagu mitu me vaja teada? 1545 01:13:33,957 --> 01:13:35,290 HANNAH Blumberg: Hea küsimus. 1546 01:13:35,290 --> 01:13:37,765 Küsimus on selles, sisuliselt, arvestades, et sa 1547 01:13:37,765 --> 01:13:41,330 ei pääse jQuery dokumentatsioon katse ajal, kui palju tuleb teil 1548 01:13:41,330 --> 01:13:41,830 tean? 1549 01:13:41,830 --> 01:13:45,540 Me ei oota, et sa tuleksid koos mõne juhusliku funktsiooni 1550 01:13:45,540 --> 01:13:47,240 et ootame teid Google. 1551 01:13:47,240 --> 01:13:52,930 >> Asjad, mis on aus mäng on Oleksin öelda lihtsalt selline üldine süntaks, 1552 01:13:52,930 --> 01:13:58,310 peab saama valida, mida ID ja poolt class-- nii nagu CSS. 1553 01:13:58,310 --> 01:14:01,876 Ja siis tegelik funktsioonid iseenda, me tõenäoliselt öelda. 1554 01:14:01,876 --> 01:14:02,376 Jah. 1555 01:14:02,376 --> 01:14:05,591 >> Sihtrühm: Nii et kui valite klassi tähendaks dot. 1556 01:14:05,591 --> 01:14:06,840 HANNAH Blumberg: Jah, täpselt. 1557 01:14:06,840 --> 01:14:07,340 Väga hea. 1558 01:14:07,340 --> 01:14:10,461 Kui valite klassi, see saab tuleb dot asemel naelamärk. 1559 01:14:10,461 --> 01:14:10,960 Jah. 1560 01:14:10,960 --> 01:14:12,710 >> Sihtrühm: Kas sa minna üle erinevust 1561 01:14:12,710 --> 01:14:14,310 vahel valides ID ja klass? 1562 01:14:14,310 --> 01:14:14,560 >> HANNAH Blumberg: Muidugi. 1563 01:14:14,560 --> 01:14:17,510 Erinevus valimine ID ja valides klassi. 1564 01:14:17,510 --> 01:14:20,685 Nii nagu Maria ütles natuke varem, siis 1565 01:14:20,685 --> 01:14:26,280 saab olla vaid üks HTML element etteantud ID, samas klassis, 1566 01:14:26,280 --> 01:14:29,740 see võimaldab meil grupp kamp erinevate elementide kokku 1567 01:14:29,740 --> 01:14:34,300 nii et asjad, mis on seotud, kuid mitte täpselt sama. 1568 01:14:34,300 --> 01:14:35,685 Kas see vastus küsimusele? 1569 01:14:35,685 --> 01:14:36,200 Fantastiline. 1570 01:14:36,200 --> 01:14:37,194 Jah. 1571 01:14:37,194 --> 01:14:40,680 >> Sihtrühm: Mida teha, kui sul on mitu asju, mis on samas klassis? 1572 01:14:40,680 --> 01:14:42,150 >> HANNAH Blumberg: Mis juhtub Kui teil on mitu asja, 1573 01:14:42,150 --> 01:14:43,280 on samas klassis? 1574 01:14:43,280 --> 01:14:45,829 Nii näiteks, kui me oleme lihtsalt puhta JavaScript, 1575 01:14:45,829 --> 01:14:48,120 me teeks midagi document.getElementsByClass. 1576 01:14:48,120 --> 01:14:52,280 1577 01:14:52,280 --> 01:14:56,320 Ja mis siis, et tegelikult teeb on tagastab massiivi elemente. 1578 01:14:56,320 --> 01:14:59,517 >> Ja sa pead kas Käi neid või leida, mida soovid. 1579 01:14:59,517 --> 01:15:01,350 Ta ei kavatse anda Teile ühe elemendi. 1580 01:15:01,350 --> 01:15:03,450 See läheb teile massiivi elemente. 1581 01:15:03,450 --> 01:15:05,280 Hea küsimus. 1582 01:15:05,280 --> 01:15:07,700 Midagi veel? 1583 01:15:07,700 --> 01:15:09,520 Fantastiline. 1584 01:15:09,520 --> 01:15:12,860 >> Nii et ma arvan, et kui te olete juba tuttav mis tahes jQuery nägime pset, 1585 01:15:12,860 --> 01:15:15,600 siis peaks olema hea minna. 1586 01:15:15,600 --> 01:15:16,325 Küsimus? 1587 01:15:16,325 --> 01:15:17,610 Oh ei. 1588 01:15:17,610 --> 01:15:18,859 Ma tõesti õpetada. 1589 01:15:18,859 --> 01:15:19,358 Lõdvestuge. 1590 01:15:19,358 --> 01:15:20,035 Seda saad trahvi. 1591 01:15:20,035 --> 01:15:20,660 Ma saan seal. 1592 01:15:20,660 --> 01:15:24,670 1593 01:15:24,670 --> 01:15:26,870 >> Räägime Ajax. 1594 01:15:26,870 --> 01:15:31,350 Nii Ajax läheb a-- hästi, Alustame mida see tähendab. 1595 01:15:31,350 --> 01:15:32,350 See on akronüüm. 1596 01:15:32,350 --> 01:15:35,855 Ta seisab Asynchronous JavaScript ja XML. 1597 01:15:35,855 --> 01:15:39,800 Ja XML on põhimõtteliselt saab olema [Kuuldamatu] reageerimisel tüübi meie andmed. 1598 01:15:39,800 --> 01:15:42,100 Aga me ei ole tegelikult kasutatakse XML. 1599 01:15:42,100 --> 01:15:43,430 Selle asemel, me lihtsalt kasutada JSON. 1600 01:15:43,430 --> 01:15:48,350 >> Ühesõnaga, see on mingi data-- asünkroonne JavaScript ja andmeid, 1601 01:15:48,350 --> 01:15:50,040 sel juhul, JSON. 1602 01:15:50,040 --> 01:15:52,820 Ja meie eesmärk, kui me rääkisime natuke varem, 1603 01:15:52,820 --> 01:15:56,880 on, et oleks võimalik teha taotluse, on see taotlus teha 1604 01:15:56,880 --> 01:16:00,700 Oma asi tausta, kuid jätkata 1605 01:16:00,700 --> 01:16:02,550 mida iganes me kavatsevad teha. 1606 01:16:02,550 --> 01:16:06,650 Ja siis, kui see teave on valmis, siis me lisada see. 1607 01:16:06,650 --> 01:16:08,470 >> Vaatame, mida see tegelikult välja näeb. 1608 01:16:08,470 --> 01:16:11,210 Ja see, siis peaks olema natuke tuttav 1609 01:16:11,210 --> 01:16:13,680 alates pset8, üks just lahkus. 1610 01:16:13,680 --> 01:16:16,200 Nii et siin on kehtiv jQuery funktsiooni, et me võiksime 1611 01:16:16,200 --> 01:16:18,250 tahad teada about-- see dollari märk. 1612 01:16:18,250 --> 01:16:21,500 Nii et see ütleb jQuery funktsiooni, .getJson. 1613 01:16:21,500 --> 01:16:25,020 >> Ja mida see funktsioon ei ole see võtab URL ja mõned parameters-- 1614 01:16:25,020 --> 01:16:28,000 nii et ma arvan, et juhul, of pset8, see oli nagu, 1615 01:16:28,000 --> 01:16:33,520 URL oli articles.php ja parameetrid ei lähe = mõned sihtnumber. 1616 01:16:33,520 --> 01:16:41,580 Ja ta ütleb, OK, teeb taotluse Selle URL antud parameetrite järgi. 1617 01:16:41,580 --> 01:16:43,480 Ja see lihtsalt juhtub. 1618 01:16:43,480 --> 01:16:47,730 >> Kui ta lõpetab, on kas läheb edukalt 1619 01:16:47,730 --> 01:16:49,370 või siis läheb suuda. 1620 01:16:49,370 --> 01:16:53,480 Nii et see on samaväärne kõne Rob ja küsida temalt midagi. 1621 01:16:53,480 --> 01:17:00,260 Ja siis, kui ta helistab, et ta on kas ütlen ma olen teinud või ma ei suutnud. 1622 01:17:00,260 --> 01:17:04,030 >> Nii juhul, kui sa oled teinud, sa ütled, OK, ma olen teinud. 1623 01:17:04,030 --> 01:17:05,980 Ja siis nimetame seda funktsiooni. 1624 01:17:05,980 --> 01:17:08,915 Sel juhul on see saab olema funktsioon, mis võtab teatud informatsiooni. 1625 01:17:08,915 --> 01:17:12,890 Üks me tavaliselt hoolivad on andmeid, andmeid, et me tegelikult tagasi 1626 01:17:12,890 --> 01:17:15,900 tõttu helistades .getJSON. 1627 01:17:15,900 --> 01:17:17,470 >> Ja saab sellega midagi teha. 1628 01:17:17,470 --> 01:17:23,670 Nii puhul pset8, Kuvasime seda nimekirjakeskkonnaks. 1629 01:17:23,670 --> 01:17:29,050 Fail saab olema funktsioon mida nimetatakse kui taotlus ei 1630 01:17:29,050 --> 01:17:30,450 mingil põhjusel. 1631 01:17:30,450 --> 01:17:35,104 Ja kui tegemist on pset8, me lihtsalt console.log ta. 1632 01:17:35,104 --> 01:17:36,020 Küsimusi on? 1633 01:17:36,020 --> 01:17:36,300 Jah. 1634 01:17:36,300 --> 01:17:39,633 >> Sihtrühm: Kas me lihtsalt kasutada funktsiooni teeta asemel funktsiooni, textStatus, jqHXR. 1635 01:17:39,633 --> 01:17:43,464 1636 01:17:43,464 --> 01:17:44,380 HANNAH Blumberg: Muidugi. 1637 01:17:44,380 --> 01:17:46,713 Nii et jah, ma arvan, et pset, me just nägin funktsiooni andmeid. 1638 01:17:46,713 --> 01:17:48,700 Nii et see on lihtsalt the-- jah, OK. 1639 01:17:48,700 --> 01:17:50,510 See, mida me nägime pset. 1640 01:17:50,510 --> 01:17:51,480 See on täiesti korras. 1641 01:17:51,480 --> 01:17:54,210 >> Need on vaid siis, kui sa tahtsid tõmmake Lisainformatsiooni 1642 01:17:54,210 --> 01:17:57,190 Need on asjad, mis võid saada alates .getJSON. 1643 01:17:57,190 --> 01:17:59,040 Hea küsimus. 1644 01:17:59,040 --> 01:17:59,706 Midagi veel? 1645 01:17:59,706 --> 01:18:00,206 Jah. 1646 01:18:00,206 --> 01:18:01,787 >> Sihtrühm: Nii .getJSON on Ajax? 1647 01:18:01,787 --> 01:18:02,620 HANNAH Blumberg: OK. 1648 01:18:02,620 --> 01:18:05,700 Nii et see on selline keeruline osa. 1649 01:18:05,700 --> 01:18:12,390 See on jQuery funktsiooni, mis võimaldab et sa asünkroonne kõned. 1650 01:18:12,390 --> 01:18:16,080 Ja need, asünkroonne kõned, mis on mida me oleme viidates nii Ajax. 1651 01:18:16,080 --> 01:18:16,850 Jah. 1652 01:18:16,850 --> 01:18:20,185 See võttis mul väga palju aega tõmba peale, kui olin üliõpilane. 1653 01:18:20,185 --> 01:18:21,560 Sihtrühm: Kas oskate öelda, et jälle? 1654 01:18:21,560 --> 01:18:22,476 HANNAH Blumberg: Jah. 1655 01:18:22,476 --> 01:18:23,630 Kas ma saan öelda, et jälle? 1656 01:18:23,630 --> 01:18:29,010 See .getJSON funktsiooni, see on jQuery funktsiooni. 1657 01:18:29,010 --> 01:18:31,970 Ja see läheb teha asünkroonne kõne. 1658 01:18:31,970 --> 01:18:35,700 Ja need asünkroonne kõned oleme on silmas neid nagu Ajax. 1659 01:18:35,700 --> 01:18:39,610 1660 01:18:39,610 --> 01:18:41,872 >> Muid küsimusi? 1661 01:18:41,872 --> 01:18:43,330 Meil on vaid paar minutit aega. 1662 01:18:43,330 --> 01:18:45,080 Ja Maria läheb pakkima turvalisuse 1663 01:18:45,080 --> 01:18:47,464 ja siis me läheme tuleb lihtsalt teha. 1664 01:18:47,464 --> 01:18:48,630 MARIA ZLATKOVA: Awesome, OK. 1665 01:18:48,630 --> 01:18:54,030 Nii et see on-- lihtsalt võtta paar sekundit vaadata üle selle. 1666 01:18:54,030 --> 01:18:56,750 Ja see ei ole midagi tõesti suur. 1667 01:18:56,750 --> 01:18:59,430 Ja kas keegi mulle öelda, miks? 1668 01:18:59,430 --> 01:19:05,650 Mis toimub suva ja võib võiksid potentsiaalselt põhjustada midagi halba, 1669 01:19:05,650 --> 01:19:06,770 ja mida seda nimetatakse? 1670 01:19:06,770 --> 01:19:07,270 Jah. 1671 01:19:07,270 --> 01:19:10,391 Sihtrühm: Kui argument, mis on möödunud aastal rohkem kui 12 tähemärki, 1672 01:19:10,391 --> 01:19:11,454 see võiks voolata. 1673 01:19:11,454 --> 01:19:12,370 MARIA ZLATKOVA: Right. 1674 01:19:12,370 --> 01:19:14,180 Perfect. 1675 01:19:14,180 --> 01:19:15,384 Mis on selle nimi? 1676 01:19:15,384 --> 01:19:16,300 Sa lihtsalt mainisin seda. 1677 01:19:16,300 --> 01:19:16,840 >> Sihtrühm: buffer overflow. 1678 01:19:16,840 --> 01:19:18,381 >> MARIA ZLATKOVA: Jah, buffer overflow. 1679 01:19:18,381 --> 01:19:21,230 Nii et see on midagi, mida me vaadake kui buffer overflow. 1680 01:19:21,230 --> 01:19:25,500 Ja me näeme, et sees suva, oleme määratud meie puhver, c, 1681 01:19:25,500 --> 01:19:27,240 mõõtmetega 12. 1682 01:19:27,240 --> 01:19:32,680 Kuid peamine, meil ei ole vaadake kuidagi üldse 1683 01:19:32,680 --> 01:19:36,480 kas argv1-- et oli teine ​​argument. 1684 01:19:36,480 --> 01:19:39,630 Me ei kontrolli, kas suurus on asjakohane. 1685 01:19:39,630 --> 01:19:43,380 >> Nii et kui meil oli eriti pahatahtlik kasutaja 1686 01:19:43,380 --> 01:19:47,170 kes panna mõned argument, et oli enam kui 12 ja seejärel potentsiaalselt 1687 01:19:47,170 --> 01:19:50,850 piiridest, mis argument, olid mõned käivitatava koodi 1688 01:19:50,850 --> 01:19:55,570 et ta üritas teha midagi halba sellega; siis see, mis juhtub, 1689 01:19:55,570 --> 01:19:59,310 oleks alistada tagastamise aadress suva funktsiooni, 1690 01:19:59,310 --> 01:20:04,370 põhjustades funktsiooni millal tagasi täita selle koodi. 1691 01:20:04,370 --> 01:20:07,540 Ja siis halbu asju võib juhtuda. 1692 01:20:07,540 --> 01:20:09,850 Kas see mõtet kõigile? 1693 01:20:09,850 --> 01:20:12,424 >> Ja kuidas me saame kaitsta seda? 1694 01:20:12,424 --> 01:20:13,090 Kõik soovitused? 1695 01:20:13,090 --> 01:20:16,480 1696 01:20:16,480 --> 01:20:21,890 Põhimõtteliselt sees potentsiaalselt suva, kuidas 1697 01:20:21,890 --> 01:20:28,294 saame veenduge et see ei saa juhtuda? 1698 01:20:28,294 --> 01:20:33,879 >> Sihtrühm: Kui suurus 12 on ületatud, siis oleks eraldada täiendavaid mälu? 1699 01:20:33,879 --> 01:20:37,170 MARIA ZLATKOVA: Soovituslikud on eraldada lisamälu suuruse ületanud. 1700 01:20:37,170 --> 01:20:39,800 Tegelikult me ​​saame teha midagi Palju lihtsam kui hästi. 1701 01:20:39,800 --> 01:20:44,870 Me võime lihtsalt saada string pikkusega argument, mis on sisestatud, 1702 01:20:44,870 --> 01:20:48,590 kontrollida, kas see on vähem kui või võrdne 12-- 1703 01:20:48,590 --> 01:20:50,790 mis on see, mida me tahame seda olla, sest me ei taha 1704 01:20:50,790 --> 01:20:52,373 see ületanud meie puhvri. 1705 01:20:52,373 --> 01:20:55,690 Ja siis, kui seda ei ole, me saab tööd argument. 1706 01:20:55,690 --> 01:21:00,296 Ja siis, kui see on olemas, me tegelikult tahame to Yello potentsiaalselt kasutaja. 1707 01:21:00,296 --> 01:21:01,670 Aga see, kuidas me seda teha. 1708 01:21:01,670 --> 01:21:02,443 Jah. 1709 01:21:02,443 --> 01:21:04,360 >> Sihtrühm: Kas te saaksite selgitada memcpy reaalne kiire? 1710 01:21:04,360 --> 01:21:05,443 MARIA ZLATKOVA: Oh, vabandust. 1711 01:21:05,443 --> 01:21:06,040 Jah. 1712 01:21:06,040 --> 01:21:11,290 Memcpy võtab iganes on-- vabandust, OK. 1713 01:21:11,290 --> 01:21:15,850 Memcpy võtab iganes on baarides, mis iganes on möödas 1714 01:21:15,850 --> 01:21:18,050 peale suva kui käsurea argument. 1715 01:21:18,050 --> 01:21:19,440 Nii see läheb võtma argv1. 1716 01:21:19,440 --> 01:21:21,420 Argv1 nimetatakse baar siin. 1717 01:21:21,420 --> 01:21:24,453 Nii see läheb võtma bar ja see läheb kopeerige see c. 1718 01:21:24,453 --> 01:21:25,402 >> Sihtrühm: OK. 1719 01:21:25,402 --> 01:21:28,360 MARIA ZLATKOVA: Ja see läheb copy-- kolmas argument lihtsalt viitab 1720 01:21:28,360 --> 01:21:30,601 kui palju see läheb kopeerida c. 1721 01:21:30,601 --> 01:21:31,142 Sihtrühm: Ah. 1722 01:21:31,142 --> 01:21:33,030 Nii et see kellegi kopeerimine see kõik siis. 1723 01:21:33,030 --> 01:21:34,310 >> MARIA ZLATKOVA: Jah, see kopeerides kõik. 1724 01:21:34,310 --> 01:21:34,810 Yep. 1725 01:21:34,810 --> 01:21:38,400 1726 01:21:38,400 --> 01:21:41,910 Esiteks, me veenduge, baar ei ole võrdne null, sest see on osuti. 1727 01:21:41,910 --> 01:21:44,680 Siis saame stringi pikkus baar. 1728 01:21:44,680 --> 01:21:47,530 Oleme veendunud, et see on väiksem või võrdne 12. 1729 01:21:47,530 --> 01:21:50,070 Ja siis, kuna me oleme kindlaks teinud, saame tegelikult 1730 01:21:50,070 --> 01:21:53,122 memcpy ja olla kindel, et see on OK. 1731 01:21:53,122 --> 01:21:53,705 Kas küsimusi on? 1732 01:21:53,705 --> 01:21:56,280 1733 01:21:56,280 --> 01:21:58,690 Hea. 1734 01:21:58,690 --> 01:22:00,400 Mul on kaks õige või vale küsimusi. 1735 01:22:00,400 --> 01:22:05,470 Kas keegi mulle öelda kohe kui need on õiged või valed? 1736 01:22:05,470 --> 01:22:07,460 Jah, see on vale. 1737 01:22:07,460 --> 01:22:07,960 Täpselt. 1738 01:22:07,960 --> 01:22:09,330 Mõlemad on vale. 1739 01:22:09,330 --> 01:22:12,682 Nii kasutades ühte parooli ei ole kunagi tõesti hea mõte 1740 01:22:12,682 --> 01:22:14,890 sest kui keegi teab Parooli nad saavad lihtsalt 1741 01:22:14,890 --> 01:22:16,260 kasutada kõiki oma teisi kontosid. 1742 01:22:16,260 --> 01:22:19,260 Ja siis ikoonid ei tee midagi turvalisuse tagamiseks. 1743 01:22:19,260 --> 01:22:24,900 Peaksime tavaliselt otsida HTTPS asemel HTTP ja URL. 1744 01:22:24,900 --> 01:22:28,560 >> Ja mõned muud tüüpi rünnakuid, et oleme mainitud, 1745 01:22:28,560 --> 01:22:31,390 et David on mainitud Loeng, SQL süst rünnakud. 1746 01:22:31,390 --> 01:22:37,310 Me juba nägime, et kui me don't-- CS50 päringu funktsiooni tagab, et SQL 1747 01:22:37,310 --> 01:22:39,530 süst rünnakud ei saaks tekkida. 1748 01:22:39,530 --> 01:22:42,640 Aga kui me ei kasuta CS50, tsitaat, lõppeb "päringu," 1749 01:22:42,640 --> 01:22:46,830 oleks meil veenduda, et kasutaja sisend ei ole tegelikult mõned SQL 1750 01:22:46,830 --> 01:22:49,670 päring, mis paneb kõik meie toidulaual olema langenud 1751 01:22:49,670 --> 01:22:54,070 või midagi halba juhtub meie andmebaasi. 1752 01:22:54,070 --> 01:22:56,790 >> Seansiärandamise on Teist tüüpi rünnak 1753 01:22:56,790 --> 01:23:05,940 mis juhtub, kui halbu inimene kasutab mõne ohvri istungil 1754 01:23:05,940 --> 01:23:08,740 ID pääseda sisselogimise andmeid. 1755 01:23:08,740 --> 01:23:13,620 Nii väga triviaalne näide, mis on nagu siis, kui meil on avalikku arvutit, 1756 01:23:13,620 --> 01:23:21,120 siis halb inimene logib ja siis neil küpsised, mis on salvestatud. 1757 01:23:21,120 --> 01:23:23,380 Ja küpsiseid ei muutu istungil. 1758 01:23:23,380 --> 01:23:27,620 >> Siis oleme ohvri minna ja siis logige kodulehel. 1759 01:23:27,620 --> 01:23:30,290 Küpsised ei muutu teatud istungil. 1760 01:23:30,290 --> 01:23:33,060 Ja siis ohver logib veebilehel ning seejärel lahkub. 1761 01:23:33,060 --> 01:23:36,190 Ja siis isik, kes läheb tagasi Seejärel saab endiselt kasutada oma sessiooni ID 1762 01:23:36,190 --> 01:23:37,430 juurdepääsu oma andmed. 1763 01:23:37,430 --> 01:23:40,050 Nii et üks näide kuidas see võiks juhtuda. 1764 01:23:40,050 --> 01:23:45,570 >> Ja siis ma ei muretse liiga palju konkreetsete koodi või midagi 1765 01:23:45,570 --> 01:23:49,270 niimoodi, mis võiks põhjustada seda, kuid võttes mingi idee, mida 1766 01:23:49,270 --> 01:23:51,400 muutujate kaasatud sellesse on. 1767 01:23:51,400 --> 01:23:53,897 Ja siis manipuleerides päise kaudu andmed on teist tüüpi rünnak 1768 01:23:53,897 --> 01:23:55,230 mis on David on rääkinud. 1769 01:23:55,230 --> 01:23:59,730 Ja see lihtsalt viitab Mis võib juhtuda, kui 1770 01:23:59,730 --> 01:24:04,300 vastus, HTTP Vastuseks sees meie päise kaudu 1771 01:24:04,300 --> 01:24:05,720 ei desinfitseeritakse korralikult. 1772 01:24:05,720 --> 01:24:14,340 >> Ja ükskõik fields-- näiteks kui keegi kirjutab üks päise kaudu 1773 01:24:14,340 --> 01:24:18,860 väärtused sisaldama midagi enamat kui mida nad peaksid contain-- ja tegelikult 1774 01:24:18,860 --> 01:24:22,720 sisaldada näiteks 200 OK staatus koodi, siis nad 1775 01:24:22,720 --> 01:24:26,890 võiks teha pahatahtliku asju, kui nad ei peaks. 1776 01:24:26,890 --> 01:24:30,815 Aga ma ei muretse liiga palju konkreetse koodi 1777 01:24:30,815 --> 01:24:34,110 mis võivad põhjustada seda, justkui mõista 1778 01:24:34,110 --> 01:24:37,290 kõrgetasemelise asju. 1779 01:24:37,290 --> 01:24:39,570 >> Ma arvan, et see on kõik et meil katta. 1780 01:24:39,570 --> 01:24:40,090 Amazing. 1781 01:24:40,090 --> 01:24:43,310 Igaüks on mingeid küsimusi igal asju, mida me katta? 1782 01:24:43,310 --> 01:24:44,213 Jah. 1783 01:24:44,213 --> 01:24:48,077 >> Sihtrühm: Nii et üks omamoodi rohkem logistilist küsimus. 1784 01:24:48,077 --> 01:24:53,400 Kas sisu keskendunud peamiselt asju pärast viktoriini 1? 1785 01:24:53,400 --> 01:24:55,730 >> MARIA ZLATKOVA: Nii Küsimus on, kas sisu 1786 01:24:55,730 --> 01:24:59,720 keskenduti peamiselt asju pärast viktoriini 1? 1787 01:24:59,720 --> 01:25:06,070 Nii keskendutakse pärast Viktoriin 1, välja arvatud 1788 01:25:06,070 --> 01:25:10,914 et me peame keskenduma asju pset5 ja palju andmestruktuuride 1789 01:25:10,914 --> 01:25:11,580 et meil kaetud. 1790 01:25:11,580 --> 01:25:14,300 Ja me ei saa öelda, et me ei saa eirata midagi enne 1791 01:25:14,300 --> 01:25:17,120 et kuna see põhineb ka seda. 1792 01:25:17,120 --> 01:25:21,845 >> Nii keskenduda, et pluss pset5 materjal nagu ka ahelloendid, korstnad, 1793 01:25:21,845 --> 01:25:23,720 järjekorrad, ja kõike et Hannah läks üle. 1794 01:25:23,720 --> 01:25:24,050 >> HANNAH Blumberg: Right. 1795 01:25:24,050 --> 01:25:27,450 Jah, me läksime üle kogu C kraami Alguses väga kiiresti. 1796 01:25:27,450 --> 01:25:29,090 Aga veenduge, et vaadata seda. 1797 01:25:29,090 --> 01:25:32,700 Mine tagasi ja vaadata viktoriini 0 vaadata. 1798 01:25:32,700 --> 01:25:36,110 >> Paar rohkem logistilist märkmeid, lihtsalt samas on meil oma tähelepanu. 1799 01:25:36,110 --> 01:25:39,100 Me ei kavatse on tööaega nii esmaspäeval ja teisipäeva õhtul. 1800 01:25:39,100 --> 01:25:41,540 Nad lähed olema MD 119. 1801 01:25:41,540 --> 01:25:44,220 See on kõik veebilehel, et kui te ei kuule seda, ei muretse. 1802 01:25:44,220 --> 01:25:45,266 >> MARIA ZLATKOVA: 8:30-11:00. 1803 01:25:45,266 --> 01:25:46,260 >> HANNAH Blumberg: Jah, 8:30-11:00. 1804 01:25:46,260 --> 01:25:46,910 Me oleme seal. 1805 01:25:46,910 --> 01:25:48,368 Me oleme seal, et vastata küsimustele. 1806 01:25:48,368 --> 01:25:49,480 See on päris chill ja lõbus. 1807 01:25:49,480 --> 01:25:53,240 Te saate esitada küsimusi et teil on viktoriini 1. 1808 01:25:53,240 --> 01:25:55,740 Ja viktoriini 1 on Kolmapäev, et õnne. 1809 01:25:55,740 --> 01:25:59,770 Kui teil on küsimusi, võibolla Tule räägi meile siin üks-ühele. 1810 01:25:59,770 --> 01:26:00,880 Cool. 1811 01:26:00,880 --> 01:26:01,630 Suur tänu. 1812 01:26:01,630 --> 01:26:02,880 >> MARIA ZLATKOVA: Tänu nii palju, poisid. 1813 01:26:02,880 --> 01:26:03,480 >> Sihtrühm: Jee. 1814 01:26:03,480 --> 01:26:05,930 >> [APPLAUSE] 1815 01:26:05,930 --> 01:26:07,530