1 00:00:00,000 --> 00:00:02,862 >> [Bermain muzik] 2 00:00:02,862 --> 00:00:10,030 3 00:00:10,030 --> 00:00:11,580 >> DAVID MALAN: Ini adalah CS50. 4 00:00:11,580 --> 00:00:12,880 Ini adalah permulaan minggu sembilan. 5 00:00:12,880 --> 00:00:15,797 Dan ini adalah apa yang akan mempunyai menjadi ulang tahun ke-200 Encik Boole. 6 00:00:15,797 --> 00:00:17,630 Jadi ini adalah felo kepada siapa kami telah menyebut 7 00:00:17,630 --> 00:00:21,800 sekian kali mengenai menggunakan Pembolehubah Boolean benar dan palsu, 8 00:00:21,800 --> 00:00:22,910 1 dan 0 dan sebagainya. 9 00:00:22,910 --> 00:00:25,270 Dan ini adalah Google penghormatan kepada beliau hari ini. 10 00:00:25,270 --> 00:00:26,489 Beliau akan bertukar 200. 11 00:00:26,489 --> 00:00:28,280 Jadi, jika anda ingin menyertai kami untuk CS50 makan tengah hari 12 00:00:28,280 --> 00:00:30,279 kita lihat pada link di laman web kursus ini. 13 00:00:30,279 --> 00:00:33,580 Dan muka dan rakan-rakan seperti ini menanti anda di sini di Cambridge. 14 00:00:33,580 --> 00:00:35,360 Wajah seperti ini menanti anda di New Haven. 15 00:00:35,360 --> 00:00:37,800 Dan, sebenarnya, Ken dalam New Haven sila dibuat 16 00:00:37,800 --> 00:00:41,594 apa yang dipanggil GIF animasi Eli di sini baru-baru ini lunch-- GIF yang belum 17 00:00:41,594 --> 00:00:44,260 lain format fail grafik, yang anda berada familiar-- yang 18 00:00:44,260 --> 00:00:46,300 kelihatan sesuatu yang kecil seperti ini. 19 00:00:46,300 --> 00:00:48,179 Jadi hanya urutan yang daripada- OK. 20 00:00:48,179 --> 00:00:49,720 Tiada siapa di sini di Cambridge ketawa. 21 00:00:49,720 --> 00:00:51,720 Tetapi di New Haven, ini adalah benar-benar lucu, bukan? 22 00:00:51,720 --> 00:00:52,350 Baiklah. 23 00:00:52,350 --> 00:00:53,940 >> Jadi jangan menyertai kami di sana. 24 00:00:53,940 --> 00:00:55,900 Di sini, di Harvard, secara khusus, Rabu ini, 25 00:00:55,900 --> 00:00:59,480 jika anda mahasiswa tingkat kedua atau bayat even-- atau pemikiran junior-- pembuatan 26 00:00:59,480 --> 00:01:01,563 suis ke dalam komputer sains, tahu bahawa ada akan mempunyai 27 00:01:01,563 --> 00:01:04,440 dapat CS menasihati ini adil Rabu, tidak lama selepas kelas 28 00:01:04,440 --> 00:01:08,040 pada 4:00 PM dalam komputer bangunan sains Maxwell Dworkin. 29 00:01:08,040 --> 00:01:11,890 Kami akan meletakkan ini di padang golf ini laman web dengan esok, juga. 30 00:01:11,890 --> 00:01:14,430 Donuts, Saya diberitahu, akan dihidangkan. 31 00:01:14,430 --> 00:01:15,180 >> Baiklah. 32 00:01:15,180 --> 00:01:18,790 Story-- kelakar saya poking sekitar di internet, 33 00:01:18,790 --> 00:01:23,575 dan saya dapati beberapa arkib lama laman web bekas saya. 34 00:01:23,575 --> 00:01:25,950 Dan ternyata out-- sekitar ini masa, ia kelihatan sangat tepat pada masanya 35 00:01:25,950 --> 00:01:28,910 sejak saya berkumpul bahawa pilihan raya UC akan memperlengkapkan lagi. 36 00:01:28,910 --> 00:01:32,230 Jadi saya berlari untuk UC, hilang teruk. 37 00:01:32,230 --> 00:01:34,770 Dan mungkin ini adalah sebahagian mengapa. 38 00:01:34,770 --> 00:01:37,600 Jadi ini adalah laman web saya pada masa itu. 39 00:01:37,600 --> 00:01:40,477 Untuk sebab-sebab tertentu, saya fikir ia adalah idea yang baik, sebelum memberitahu orang 40 00:01:40,477 --> 00:01:43,310 apa platform saya dan mengapa mereka perlu mengundi untuk saya, bahawa mereka mempunyai 41 00:01:43,310 --> 00:01:47,770 klik untuk memasuki untuk mengetahui bahawa maklumat, yang jika ditinjau kembali adalah 42 00:01:47,770 --> 00:01:48,660 jenis menyeramkan. 43 00:01:48,660 --> 00:01:50,910 Saya tidak benar-benar tahu apa yang. 44 00:01:50,910 --> 00:01:53,140 >> Tetapi ia pasti tidak membantu kempen saya. 45 00:01:53,140 --> 00:01:56,874 Saya juga mendapati bahawa dengan kanan year-- saya mempunyai kalendar Muppet ini. 46 00:01:56,874 --> 00:01:58,540 Muppets baik hati daripada menjadi tren ketika itu. 47 00:01:58,540 --> 00:01:59,456 Atau mungkin mereka tidak. 48 00:01:59,456 --> 00:02:01,790 Saya mempunyai kalendar Muppet ketika itu. 49 00:02:01,790 --> 00:02:04,860 Dan saya fikir ia akan menjadi sejuk untuk nama komputer saya pada rangkaian Harvard 50 00:02:04,860 --> 00:02:07,460 frogman.student.harvard.edu. 51 00:02:07,460 --> 00:02:10,370 Pada masa itu, kita semua mempunyai unik nama host yang boleh dikenal pasti. 52 00:02:10,370 --> 00:02:13,150 Dan anda boleh memilih beberapa sia-sia menamakan dan bukannya nama anda sendiri. 53 00:02:13,150 --> 00:02:15,580 Dan saya pergi dengan manusia katak atas sebab tertentu. 54 00:02:15,580 --> 00:02:19,040 >> Dan kemudian saya started-- saya menghabiskan banyak masa mengklik melalui pautan berikut 55 00:02:19,040 --> 00:02:20,280 pagi ini. 56 00:02:20,280 --> 00:02:24,690 Dan ini adalah halaman tentang saya, yang kini sejenis kelihatan comel. 57 00:02:24,690 --> 00:02:28,210 Tetapi ia juga membuktikan kepada hanya bagaimana teknologi ini sudah tiba. 58 00:02:28,210 --> 00:02:30,310 Maksud saya, pada zaman dahulu, 486 adalah sesuatu. 59 00:02:30,310 --> 00:02:34,090 Hari-hari ini, ia adalah super, super, super perlahan dan juga kurang 60 00:02:34,090 --> 00:02:36,216 daripada yang anda mempunyai dalam anda poket sendiri hari ini. 61 00:02:36,216 --> 00:02:38,465 Ada lagi di sana yang adalah lebih memalukan. 62 00:02:38,465 --> 00:02:39,770 Jadi saya akan serahkan pada itu. 63 00:02:39,770 --> 00:02:42,640 Tetapi itu adalah pertama saya kemasukan ke web-- oh, tidak. 64 00:02:42,640 --> 00:02:43,180 Yang tidak. 65 00:02:43,180 --> 00:02:47,000 Kemasukan sebenar pertama saya ke dalam pengaturcaraan web adalah laman web ini, yang saya hanya terlupa. 66 00:02:47,000 --> 00:02:50,620 Pada satu ketika, saya belajar bagaimana untuk membuat imej latar belakang berulang-ulang. 67 00:02:50,620 --> 00:02:55,260 Oleh itu, saya mendapati jubin ini berkesan, seperti pemain hoki, bola sepak, dan golf 68 00:02:55,260 --> 00:02:58,040 bola, atau apa sahaja yang untuk laman web Frosh IM. 69 00:02:58,040 --> 00:03:01,390 Dan ini adalah benar-benar, benar-benar yang projek berasaskan web pertama saya mengambil pada-- 70 00:03:01,390 --> 00:03:03,880 Saya fikir mungkin mahasiswa tahun, year-- junior 71 00:03:03,880 --> 00:03:07,622 selepas mengambil CS50 dan CS51, satu kelas susulan biasa. 72 00:03:07,622 --> 00:03:09,330 Saya perhatikan dalam mencari melalui arkib 73 00:03:09,330 --> 00:03:12,150 bahawa salah satu pengganti saya dan rakan-rakan, Lee, sejenis berubah 74 00:03:12,150 --> 00:03:13,480 hak cipta kepada dirinya sendiri. 75 00:03:13,480 --> 00:03:17,520 Tetapi ini sememangnya sesuatu yang Saya hendaklah memiliki rasa malu untuk. 76 00:03:17,520 --> 00:03:19,370 Tetapi pada masa itu, ini adalah laman web pertama, 77 00:03:19,370 --> 00:03:22,220 seperti yang saya katakan beberapa minggu yang lalu, yang mana boleh bayat 78 00:03:22,220 --> 00:03:24,350 mendaftar untuk sukan antara dinding di sini. 79 00:03:24,350 --> 00:03:27,950 Dan oleh itu ternyata bahawa imej latar belakang 80 00:03:27,950 --> 00:03:29,530 seperti itu tidak apa-apa idea yang baik. 81 00:03:29,530 --> 00:03:31,840 Tetapi web itu adalah baru, dan kami semua mencuba. 82 00:03:31,840 --> 00:03:34,310 Dan ini adalah apa yang saya nampaknya lakukan pada masa itu. 83 00:03:34,310 --> 00:03:34,810 Baiklah. 84 00:03:34,810 --> 00:03:38,020 Jadi tanpa berlengah-lengah lagi, kita beralih gear hari ini untuk memberi anda, benar-benar, 85 00:03:38,020 --> 00:03:42,250 bahagian terakhir yang anda mungkin dapati amat berguna untuk projek akhir 86 00:03:42,250 --> 00:03:44,780 tetapi juga akan mula membuat web seluruh seluruh dunia 87 00:03:44,780 --> 00:03:46,680 berasa sedikit lebih mudah difahami. 88 00:03:46,680 --> 00:03:49,460 Malah, kita akan memperkenalkan satu bahasa pengaturcaraan yang lebih 89 00:03:49,460 --> 00:03:52,474 dipanggil JavaScript yang serupa dan berbeza dengan cara yang berbeza 90 00:03:52,474 --> 00:03:54,140 dari bahasa kita telah melihat setakat ini. 91 00:03:54,140 --> 00:03:55,807 >> Jadi C, ingat, adalah bahasa ini disusun. 92 00:03:55,807 --> 00:03:57,473 Anda perlu berjalan melalui pengkompil. 93 00:03:57,473 --> 00:03:59,810 Anda mendapatkan kod sumber untuk membantah kod, atau sifar dan satu. 94 00:03:59,810 --> 00:04:03,000 Dan mereka adalah sifar dan orang-orang yang CPU anda, Unit Pemprosesan Pusat, 95 00:04:03,000 --> 00:04:04,360 sebenarnya faham. 96 00:04:04,360 --> 00:04:06,610 PHP, sebaliknya, tidak bahasa yang disusun. 97 00:04:06,610 --> 00:04:08,772 Ia adalah apa? 98 00:04:08,772 --> 00:04:09,980 Ia adalah bahasa yang ditafsirkan. 99 00:04:09,980 --> 00:04:11,750 Jadi ada beberapa program dipanggil seorang jurubahasa yang 100 00:04:11,750 --> 00:04:13,708 mempunyai untuk membaca bahagian kitab itu kepada bawah, kiri ke right-- 101 00:04:13,708 --> 00:04:16,519 dan memikirkan apa yang semua sintaks anda tidak dan bermakna, 102 00:04:16,519 --> 00:04:20,200 sama ada ia adalah satu gelung atau keadaan atau mana-mana nombor lain pengaturcaraan 103 00:04:20,200 --> 00:04:20,740 membina. 104 00:04:20,740 --> 00:04:22,210 Jadi itulah bahasa yang ditafsirkan. 105 00:04:22,210 --> 00:04:23,910 >> Kemudian kami diperkenalkan HTML. 106 00:04:23,910 --> 00:04:26,440 Dan HTML tidak walaupun satu bahasa pengaturcaraan. 107 00:04:26,440 --> 00:04:28,110 Kita akan memanggilnya apa? 108 00:04:28,110 --> 00:04:31,650 Sebuah bahasa markup, yang hanya sejenis cara mewah untuk mengatakan ia 109 00:04:31,650 --> 00:04:35,820 tidak mempunyai pengaturcaraan konstruk seperti kita lihat walaupun kembali pada hari Scratch. 110 00:04:35,820 --> 00:04:36,720 Tiada gelung. 111 00:04:36,720 --> 00:04:37,920 Tiada syarat-syarat. 112 00:04:37,920 --> 00:04:40,820 Ia benar-benar adalah bahasa yang tentang menandakan data anda 113 00:04:40,820 --> 00:04:43,620 dan format atau menstrukturkan dalam beberapa cara. 114 00:04:43,620 --> 00:04:46,147 >> CSS, sementara itu, begitu juga bukan bahasa pengaturcaraan. 115 00:04:46,147 --> 00:04:47,730 Ia lebih estetika berorientasikan. 116 00:04:47,730 --> 00:04:50,470 Dan ia membolehkan anda untuk menyusun menala halus perkara seperti saiz fon dan warna 117 00:04:50,470 --> 00:04:51,850 dan penempatan dan semua itu. 118 00:04:51,850 --> 00:04:52,370 Selepas itu kami 119 00:04:52,370 --> 00:04:53,160 >> SQL. 120 00:04:53,160 --> 00:04:56,010 Jadi SQL memang pengaturcaraan bahasa dalam erti kata lain, 121 00:04:56,010 --> 00:04:59,330 walaupun disesuaikan khusus kepada pangkalan data. 122 00:04:59,330 --> 00:05:03,347 Tetapi walaupun kita hanya memperkenalkan anda kepada memilih dan memasukkan dan memadam dan mengemaskini 123 00:05:03,347 --> 00:05:05,430 dan beberapa orang lain, ternyata anda boleh sebenarnya 124 00:05:05,430 --> 00:05:07,380 menulis fungsi atau prosedur, kerana mereka 125 00:05:07,380 --> 00:05:11,270 dipanggil, dalam SQL yang kelihatan dan bertindak agak seperti PHP dan C fungsi. 126 00:05:11,270 --> 00:05:12,390 Maka ketahuilah bahawa mereka wujud. 127 00:05:12,390 --> 00:05:15,348 Tetapi kita tidak peduli dengan mereka seperti yang kita hanya menggaru permukaan di sini. 128 00:05:15,348 --> 00:05:18,600 Dan kemudian JavaScript, terakhir bahasa kami secara rasmi diperkenalkan. 129 00:05:18,600 --> 00:05:21,029 Jadi JavaScript, juga, adalah bahasa ditafsirkan. 130 00:05:21,029 --> 00:05:23,070 Dan orang-orang biasa, adakah anda mahu untuk membezakannya 131 00:05:23,070 --> 00:05:26,960 dengan beberapa ciri-ciri dari kedua-dua C dan PHP? 132 00:05:26,960 --> 00:05:28,300 Apa yang membuatkan ia berbeza? 133 00:05:28,300 --> 00:05:29,650 >> PENONTON: Ia tidak disusun. 134 00:05:29,650 --> 00:05:29,930 >> DAVID MALAN: Katakanlah lagi? 135 00:05:29,930 --> 00:05:31,200 >> PENONTON: Ia tidak disusun. 136 00:05:31,200 --> 00:05:31,930 >> DAVID MALAN: Ia tidak disusun. 137 00:05:31,930 --> 00:05:33,450 Oleh itu, ia juga ditafsirkan. 138 00:05:33,450 --> 00:05:34,760 Jadi ia tidak disusun. 139 00:05:34,760 --> 00:05:37,210 Tetapi yang menjadikan ia sedikit seperti PHP. 140 00:05:37,210 --> 00:05:39,545 Tetapi ia masih berbeza daripada PHP dalam beberapa cara yang menarik, 141 00:05:39,545 --> 00:05:40,920 sekurang-kurangnya dalam cara kita akan menggunakannya. 142 00:05:40,920 --> 00:05:41,205 Ya? 143 00:05:41,205 --> 00:05:41,940 >> PENONTON: Ia berjalan-klien. 144 00:05:41,940 --> 00:05:44,000 >> DAVID MALAN: Ia berjalan pihak pelanggan, biasanya. 145 00:05:44,000 --> 00:05:47,190 Itulah sesungguhnya membezakan yang ciri bagi kami sekarang. 146 00:05:47,190 --> 00:05:51,170 C adalah pelayan-sampingan dalam erti kata yang kita lakukan segala-galanya dalam CS50 IDE. 147 00:05:51,170 --> 00:05:53,630 PHP setakat ini telah pelayan-sampingan setakat 148 00:05:53,630 --> 00:05:56,550 kerana ia juga mendapat interpreted-- tidak disusun, tetapi interpreted-- 149 00:05:56,550 --> 00:06:00,690 dalam CS50 IDE, yang sudah tentu hanya pelayan atau pelayan dalam awan. 150 00:06:00,690 --> 00:06:03,070 >> Tetapi JavaScript, walaupun walaupun anda anda akan 151 00:06:03,070 --> 00:06:07,000 untuk mula menulis untuk, katakan, pset lapan dan mungkin akhir projects-- anda 152 00:06:07,000 --> 00:06:09,620 pergi ke kanan dalam CS50 IDE dan simpan 153 00:06:09,620 --> 00:06:14,760 dalam fail dalam IDE CS50, CS50 IDE dan, seterusnya, pelayan awan 154 00:06:14,760 --> 00:06:19,160 di mana ia menjadi tuan rumah, tidak akan mentafsir atau melaksanakan kod anda. 155 00:06:19,160 --> 00:06:23,880 Sebaliknya, ia akan dihantar dalam borang tidak diubah turun ke pelayar. 156 00:06:23,880 --> 00:06:26,990 Dan ia kemudian akan menjadi IE atau Chrome atau Firefox atau Safari 157 00:06:26,990 --> 00:06:30,697 atau apa sahaja yang benar-benar menafsirkan ia, atas ke bawah, kiri ke kanan. 158 00:06:30,697 --> 00:06:32,780 Jadi utama yang membezakan ciri-ciri untuk hari ini 159 00:06:32,780 --> 00:06:36,110 ialah JavaScript pihak pelanggan dan PHP, misalnya, 160 00:06:36,110 --> 00:06:37,690 mempunyai menjadi pelayan-sampingan. 161 00:06:37,690 --> 00:06:40,920 Sekarang, ini mempunyai implikasi menarik untuk, seperti, harta intelek 162 00:06:40,920 --> 00:06:42,660 dan yang sebenarnya boleh melihat kod anda. 163 00:06:42,660 --> 00:06:44,860 Dan sesungguhnya, anda boleh pergi di web dan melihat kebanyakan 164 00:06:44,860 --> 00:06:47,530 apa-apa kod yang seseorang mempunyai ditulis dalam JavaScript. 165 00:06:47,530 --> 00:06:50,230 Kadang-kadang ia boleh dibaca, kadang-kadang ia dikelirukan. 166 00:06:50,230 --> 00:06:52,550 Tetapi lebih kepada yang dalam masa terdekat. 167 00:06:52,550 --> 00:06:57,530 >> Jadi JavaScript, baik yang cukup, adalah super sama, sintaksis, untuk C. 168 00:06:57,530 --> 00:06:59,364 Dan banyak seperti PHP, tidak ada fungsi utama. 169 00:06:59,364 --> 00:07:02,113 Jika anda ingin mula menulis Kod JavaScript, seperti yang anda akan lihat hari ini, 170 00:07:02,113 --> 00:07:03,270 anda hanya mula menulis. 171 00:07:03,270 --> 00:07:06,910 Tetapi ia adalah, anda akan lihat, terutamanya berguna dalam konteks pelayar web. 172 00:07:06,910 --> 00:07:09,820 Walau bagaimanapun, sedikit saya disclaimer-- biasanya earlier-- 173 00:07:09,820 --> 00:07:13,790 adalah untuk mengatakan bahawa anda boleh semakin digunakan hari JavaScript pelayan-sampingan 174 00:07:13,790 --> 00:07:17,655 menggunakan rangka kerja mewah dipanggil Node.js bahawa beberapa aplikasi CS50 sendiri 175 00:07:17,655 --> 00:07:18,280 ditulis dalam. 176 00:07:18,280 --> 00:07:20,640 Semak 50 sebenarnya menggunakan Node.js. 177 00:07:20,640 --> 00:07:24,140 Tetapi kita akan memberi tumpuan kepada JavaScript klien sini pada keluar. 178 00:07:24,140 --> 00:07:26,750 >> Jadi di sini adalah beberapa syarat dalam PHP. 179 00:07:26,750 --> 00:07:29,350 Maaf, dalam- sebenarnya, yang kenyataan ini, juga adalah betul. 180 00:07:29,350 --> 00:07:32,200 Berikut adalah juga satu set keadaan di JavaScript. 181 00:07:32,200 --> 00:07:35,560 Sintaksis, ia adalah sama dengan C dan PHP. 182 00:07:35,560 --> 00:07:39,040 Ungkapan Encik Boole adalah, begitu juga, sintaksis 183 00:07:39,040 --> 00:07:41,190 sama dengan kedua-dua C dan PHP. 184 00:07:41,190 --> 00:07:44,100 Kami juga mempunyai suis dalam JavaScript yang kelihatan sama. 185 00:07:44,100 --> 00:07:46,350 Kami ada untuk gelung yang berstruktur sepercaman, 186 00:07:46,350 --> 00:07:48,140 manakala gelung, lakukan semasa gelung. 187 00:07:48,140 --> 00:07:49,980 >> Yang ini sedikit berbeza. 188 00:07:49,980 --> 00:07:53,120 PHP mempunyai bagi setiap konstruk yang anda mungkin menggunakan 189 00:07:53,120 --> 00:07:55,320 atau akan digunakan dalam pset tujuh, mungkin. 190 00:07:55,320 --> 00:07:59,460 JavaScript mempunyai versi ini khas untuk di mana anda benar-benar mengatakan sesuatu 191 00:07:59,460 --> 00:08:03,864 seperti untuk kekunci berubah-ubah dalam objek, yang adalah cara yang sangat ringkas untuk mengatakan, 192 00:08:03,864 --> 00:08:06,780 jika saya telah mendapat object-- dan kita akan bercakap tentang ini sekali lagi dalam moment-- yang 193 00:08:06,780 --> 00:08:10,370 dan saya mahu untuk melelar semua pasangan nilai utama di dalam, 194 00:08:10,370 --> 00:08:13,620 Saya tidak perlu memikirkan bagaimana untuk indeks berangka mereka dengan sifar, satu, 195 00:08:13,620 --> 00:08:14,580 dua, tiga. 196 00:08:14,580 --> 00:08:15,900 >> Saya benar-benar boleh mengatakan ini. 197 00:08:15,900 --> 00:08:20,740 Dan pada setiap lelaran, JavaScript bagi saya akan mengemas kini kunci pembolehubah 198 00:08:20,740 --> 00:08:24,810 menjadi kunci yang pertama, kemudian tekan kekunci yang akan datang, kemudian tekan kekunci yang akan datang, kemudian tekan kekunci yang akan datang, 199 00:08:24,810 --> 00:08:25,510 dan sebagainya. 200 00:08:25,510 --> 00:08:30,000 Dan saya boleh mendapatkan di nilai dengan merawat objek dalam JavaScript, seperti yang kita akan lihat, 201 00:08:30,000 --> 00:08:32,584 seolah-olah ia adalah satu pelbagai bersekutu dalam PHP. 202 00:08:32,584 --> 00:08:35,750 Malah, jika anda akhirnya dibalut anda keberatan sekitar apa yang pelbagai bersekutu adalah 203 00:08:35,750 --> 00:08:40,140 dalam PHP, anda boleh memikirkan ia buat masa ini sama dengan objek dalam JavaScript. 204 00:08:40,140 --> 00:08:42,030 Tetapi itu sedikit melampaui batas. 205 00:08:42,030 --> 00:08:47,230 >> Perlengkapan melihat, baik yang cukup, sama untuk PHP kecuali satu watak. 206 00:08:47,230 --> 00:08:51,425 Ada satu perkara yang hilang di sini yang kita telah melihat minggu lepas dengan PHP. 207 00:08:51,425 --> 00:08:52,050 Apa yang ditinggalkan? 208 00:08:52,050 --> 00:08:53,310 Ya? 209 00:08:53,310 --> 00:08:54,090 Tiada tanda dolar. 210 00:08:54,090 --> 00:08:56,240 Jadi kita kembali kepada lebih biasa di mana dunia 211 00:08:56,240 --> 00:08:58,050 pembolehubah tidak mempunyai tanda-tanda dolar. 212 00:08:58,050 --> 00:09:00,810 Tetapi anda awalan mereka dengan var, biasanya. 213 00:09:00,810 --> 00:09:02,230 Dan var bermaksud berubah-ubah. 214 00:09:02,230 --> 00:09:06,440 Dan sama seperti PHP adalah longgar typed-- mana terdapat pelbagai jenis, 215 00:09:06,440 --> 00:09:10,120 terdapat nombor dan tali dan terapung dan sebagainya forth-- 216 00:09:10,120 --> 00:09:11,570 JavaScript sama mempunyai jenis. 217 00:09:11,570 --> 00:09:15,470 Tetapi ia longgar ditaip dalam kita yang pengaturcara tidak perlu menentukan mereka. 218 00:09:15,470 --> 00:09:18,980 Kita hanya perlu sedar yang jenis wujud. 219 00:09:18,980 --> 00:09:21,690 >> Pembolehubah, meanwhile-- di sini adalah cara kita mungkin mengisytiharkan "hello, dunia" 220 00:09:21,690 --> 00:09:22,230 sebagai rentetan. 221 00:09:22,230 --> 00:09:24,890 Perhatikan ia serupa dengan PHP tetapi tiada tanda dolar. 222 00:09:24,890 --> 00:09:27,120 Dan ini adalah sesuatu yang kita akan mula melihat lebih hari ini, 223 00:09:27,120 --> 00:09:30,990 di mana anda mempunyai objek dengan kunci dan nilai-nilai. 224 00:09:30,990 --> 00:09:32,990 Dan jika anda ingin mencuba untuk membuat kesimpulan dari week-- lalu 225 00:09:32,990 --> 00:09:34,730 sintaks adalah sedikit berbeza. 226 00:09:34,730 --> 00:09:39,740 Tetapi kewarasan sedikit check-- berapa kunci adakah objek ini seolah-olah mempunyai? 227 00:09:39,740 --> 00:09:40,850 Jadi ada empat. 228 00:09:40,850 --> 00:09:43,560 Saya melihat dua. 229 00:09:43,560 --> 00:09:44,680 >> Jadi ia sebenarnya dua. 230 00:09:44,680 --> 00:09:47,260 Jadi ini adalah koleksi yang dua pasangan kunci-nilai. 231 00:09:47,260 --> 00:09:49,820 Kuncinya adalah simbol yang nilainya FB. 232 00:09:49,820 --> 00:09:52,620 Yang penting adalah harga yang nilainya 101,53. 233 00:09:52,620 --> 00:09:54,230 Jadi mereka adalah dua pasangan kunci-nilai. 234 00:09:54,230 --> 00:09:58,120 Dan ingat, PHP-- dan ini sekali lagi hanya jenis perbezaan sintaksis. 235 00:09:58,120 --> 00:10:00,170 Ia bukan semua yang intelektual yang menarik. 236 00:10:00,170 --> 00:10:04,610 PHP mungkin telah menulis yang sama Perkara seperti quote follows--, sama. 237 00:10:04,610 --> 00:10:06,730 Dan saya menukar ini untuk kurungan persegi. 238 00:10:06,730 --> 00:10:11,240 Dan kemudian saya menukar ini kepada satu perkataan yang disebut harga, "harga." 239 00:10:11,240 --> 00:10:12,500 Dan kemudian saya tidak menggunakan noktah bertindih. 240 00:10:12,500 --> 00:10:15,060 Apa yang saya gunakan minggu lepas? 241 00:10:15,060 --> 00:10:18,290 Ya, itu tanda sama dengan arrow notasi funky. 242 00:10:18,290 --> 00:10:21,470 >> Dan kemudian saya melakukan perkara yang sama di sini. 243 00:10:21,470 --> 00:10:23,580 Perkara yang sama di sini. 244 00:10:23,580 --> 00:10:24,240 Dan itu sahaja. 245 00:10:24,240 --> 00:10:27,752 Jadi ia adalah baik jika ini tidak mempunyai benar-benar tenggelam dalam ke memori hanya 246 00:10:27,752 --> 00:10:29,960 lagi kerana ia benar-benar intelektual tidak menarik. 247 00:10:29,960 --> 00:10:31,660 Ia adalah perbezaan hanya sintaksis. 248 00:10:31,660 --> 00:10:33,230 Tetapi idea-idea yang sama. 249 00:10:33,230 --> 00:10:35,910 Dalam pembolehubah ini quote dalam JavaScript 250 00:10:35,910 --> 00:10:39,020 adalah koleksi pasangan kunci-nilai, satu daripadanya adalah simbol, satu daripadanya 251 00:10:39,020 --> 00:10:39,690 adalah harga. 252 00:10:39,690 --> 00:10:42,340 Dan saya boleh mendapatkan sekurang-nilai-nilai dengan sintaks berikut. 253 00:10:42,340 --> 00:10:46,280 Sama seperti dalam PHP, saya boleh melakukan sesuatu like-- biarlah 254 00:10:46,280 --> 00:10:48,590 saya membuat kotak ini sedikit lebih besar. 255 00:10:48,590 --> 00:10:52,750 Sama seperti dalam PHP, saya boleh membuat this-- oh, celaka. 256 00:10:52,750 --> 00:10:53,250 Datang pada. 257 00:10:53,250 --> 00:10:56,350 258 00:10:56,350 --> 00:11:00,800 >> Sama seperti dalam PHP-- OK, kita akan hanya menggunakan nota penyampai. 259 00:11:00,800 --> 00:11:06,010 Sama seperti dalam PHP, saya boleh melakukan $ $ quote quote ["simbol"], 260 00:11:06,010 --> 00:11:08,860 dan ini akan mendapatkan saya nilai "simbol." 261 00:11:08,860 --> 00:11:12,800 Dalam JavaScript, ia akan menjadi yang serupa, di mana saya hanya boleh melakukan ini. 262 00:11:12,800 --> 00:11:14,850 Satu-satunya perkara itu hilang adalah tanda dolar. 263 00:11:14,850 --> 00:11:17,470 >> Begitu baik cukup, maka, ada tidak semua yang banyak sintaks baru. 264 00:11:17,470 --> 00:11:21,025 Jadi apa yang hari ini kita memberi tumpuan kepada, benar-benar, beberapa idea dan aplikasi. 265 00:11:21,025 --> 00:11:22,900 Dan yang pertama itu aplikasi yang anda mungkin 266 00:11:22,900 --> 00:11:26,090 lihat jika anda menyelam ke dalam pset tujuh sudah adalah sintaks ini. 267 00:11:26,090 --> 00:11:28,980 Jadi dalam pset tujuh, jika anda telah dilihat atau tidak dapat dilihat lagi, 268 00:11:28,980 --> 00:11:33,570 tahu bahawa ada fail yang kita berikan anda dipanggil config.json-- JavaScript 269 00:11:33,570 --> 00:11:34,661 Objek Notasi. 270 00:11:34,661 --> 00:11:35,160 Mengapa? 271 00:11:35,160 --> 00:11:39,540 Kami mahu menjadi mampu untuk menyediakan anda dengan template dengan beberapa pasangan key-nilai. 272 00:11:39,540 --> 00:11:44,290 Kami mahu menjadi mampu untuk memberikan anda senarai tuan rumah, nama pelayan. 273 00:11:44,290 --> 00:11:46,710 Kami mahu memberikan anda satu pemegang tempat untuk nama pengguna anda 274 00:11:46,710 --> 00:11:48,210 dan pemegang tempat bagi kata laluan anda. 275 00:11:48,210 --> 00:11:49,410 Jika anda tidak melihat ini lagi, tidak perlu bimbang. 276 00:11:49,410 --> 00:11:51,340 Lanjut mengenai ini dalam pset tujuh [? spec. ?] Dan kemudian, 277 00:11:51,340 --> 00:11:53,173 jelas, kami mahu anda mengisi tugasan 278 00:11:53,173 --> 00:11:55,310 kerana apabila anda log masuk ke dalam CS50 IDE, kamu masing-masing 279 00:11:55,310 --> 00:11:57,630 mempunyai nama pengguna anda sendiri dan kata laluan. 280 00:11:57,630 --> 00:12:00,910 >> Jadi kita boleh telah menggunakan setengah dozen atau lebih format fail yang berbeza. 281 00:12:00,910 --> 00:12:02,940 Kita boleh menggunakan fail .txt. 282 00:12:02,940 --> 00:12:04,570 Kita boleh menggunakan fail CSV. 283 00:12:04,570 --> 00:12:06,745 Kita boleh telah menggunakan Fail INI, fail XML, 284 00:12:06,745 --> 00:12:09,370 sejumlah lebih akronim yang anda mungkin tidak pernah mendengar. 285 00:12:09,370 --> 00:12:11,244 Ia adalah jenis sewenang-wenangnya pada akhir hari. 286 00:12:11,244 --> 00:12:16,030 Tetapi super popular hari ini adalah teks format dipanggil JSON-- JavaScript Objek 287 00:12:16,030 --> 00:12:18,460 Notation-- yang kelihatan seperti ini. 288 00:12:18,460 --> 00:12:20,890 Ia sedikit samar, tetapi notis corak. 289 00:12:20,890 --> 00:12:24,180 Anda bermula dengan kerinting terbuka menyokong, dan anda berakhir dengan yang sama. 290 00:12:24,180 --> 00:12:26,550 Di dalam itu adalah sesuatu. 291 00:12:26,550 --> 00:12:27,920 Ia adalah satu pasangan kunci-nilai. 292 00:12:27,920 --> 00:12:30,580 Jadi ini adalah satu objek yang saya melihat pada skrin di sini 293 00:12:30,580 --> 00:12:33,690 yang mempunyai satu utama, yang mempunyai satu nilai. 294 00:12:33,690 --> 00:12:37,610 Dan hanya membuat kesimpulan berdasarkan corak sebelumnya, apa yang penting di sini? 295 00:12:37,610 --> 00:12:39,790 Pangkalan data, perkara yang perlu sebelah kiri kolon. 296 00:12:39,790 --> 00:12:43,500 >> Sekarang, nilai berlaku untuk menjadi yang banyak baris masa ini. 297 00:12:43,500 --> 00:12:46,760 Tetapi nilai bermula dengan kerinting yang memberanikan dan berakhir dengan dua gol kerinting. 298 00:12:46,760 --> 00:12:49,480 Jadi apa yang anda akan mencadangkan adalah jenis nilai pangkalan data? 299 00:12:49,480 --> 00:12:52,160 300 00:12:52,160 --> 00:12:54,670 A kamus atau, hanya lebih ringkas, objek. 301 00:12:54,670 --> 00:12:55,170 Betul? 302 00:12:55,170 --> 00:13:00,010 Ini adalah jenis struktur data yang boleh menggunakan struktur lain dalam dirinya sendiri. 303 00:13:00,010 --> 00:13:02,750 Jadi, jika semua ini kita memanggil yang object-- dan objek 304 00:13:02,750 --> 00:13:07,101 adalah hanya sekumpulan nilai utama pairs-- yang nilai pangkalan data itu sendiri adalah objek. 305 00:13:07,101 --> 00:13:10,350 Nilai pangkalan data mempunyai sejumlah pasangan nilai utama, di mana yang pertama 306 00:13:10,350 --> 00:13:13,130 adalah tuan rumah, maka nama, kemudian nama pengguna, maka kata laluan, 307 00:13:13,130 --> 00:13:17,550 setiap yang nilainya, sementara itu, ia hanya rentetan membosankan dalam tanda petik. 308 00:13:17,550 --> 00:13:19,770 >> Jadi, walaupun itu bukan super jelas sahaja lagi, 309 00:13:19,770 --> 00:13:22,740 tahu bahawa ini adalah hanya satu standard, cara yang agak membosankan 310 00:13:22,740 --> 00:13:25,190 menyimpan data dalam format yang standard. 311 00:13:25,190 --> 00:13:27,700 Tetapi kesilapan yang biasa anda mungkin membuat, walaupun dalam pset tujuh, 312 00:13:27,700 --> 00:13:32,120 adalah sedikit perkara-perkara bodoh, seperti jika anda sengaja meninggalkan koma di sana. 313 00:13:32,120 --> 00:13:34,900 Itu akan menyebabkan fail tidak semestinya yang dibaca. 314 00:13:34,900 --> 00:13:38,191 Jika anda secara tidak sengaja meninggalkan perkara-perkara seperti sebut harga, ia tidak akan menjadi mudah dibaca. 315 00:13:38,191 --> 00:13:41,654 Jadi ia adalah satu format fail cantik nitpicky, tetapi ia satu yang super biasa. 316 00:13:41,654 --> 00:13:44,820 Dan kita berlaku untuk menggunakannya, walaupun anda tidak menggunakan apa-apa JavaScript sebaliknya, 317 00:13:44,820 --> 00:13:46,330 dalam Serangga tujuh. 318 00:13:46,330 --> 00:13:46,860 >> Baiklah. 319 00:13:46,860 --> 00:13:48,110 Jadi ingat gambar ini. 320 00:13:48,110 --> 00:13:51,657 Kami bercakap tentang, dalam HTML, yang kod mungkin kelihatan seperti ini. 321 00:13:51,657 --> 00:13:54,740 Ini adalah HyperText Markup Language [Didengar] untuk hanya "hello, dunia." 322 00:13:54,740 --> 00:13:57,570 Tetapi kemudian kami mencadangkan satu manakala belakang jika ia membantu, 323 00:13:57,570 --> 00:14:00,210 anda mungkin mahu mula berfikir mengenai ini sudah sebagai pokok. 324 00:14:00,210 --> 00:14:03,730 Malah, lekukan yang kita menggunakan hanya demi pembacaan ini 325 00:14:03,730 --> 00:14:05,610 atau demi gaya pada kiri jenis tin 326 00:14:05,610 --> 00:14:10,040 diterjemahkan ke dalam pokok ini, di mana anda mempunyai beberapa nod akar khas yang kita akan 327 00:14:10,040 --> 00:14:16,860 secara umum dipanggil dokumen, di bawah yang adalah akar elemen HTML atau tag, HTML, 328 00:14:16,860 --> 00:14:19,980 yang kemudiannya mempunyai dua kanak-kanak, kepala dan badan. 329 00:14:19,980 --> 00:14:21,750 >> Kemudian seterusnya, kepala mempunyai tajuk. 330 00:14:21,750 --> 00:14:23,440 Dan tajuk mempunyai nilai teks. 331 00:14:23,440 --> 00:14:26,130 Dan badan yang sama mempunyai nilai teks. 332 00:14:26,130 --> 00:14:29,220 Jadi, jika anda kata selesa bahawa ya, anda boleh mengambil HTML ini 333 00:14:29,220 --> 00:14:32,080 dan melukis gambar seperti ini, sebelah kanan 334 00:14:32,080 --> 00:14:35,910 adalah model mental yang bagus kerana sekarang yang kita ada JavaScript, pengaturcaraan 335 00:14:35,910 --> 00:14:39,960 bahasa yang pelayar boleh melaksanakan dan mentafsir untuk anda, 336 00:14:39,960 --> 00:14:42,690 ternyata bahawa apa yang kami hendak dilakukan-kod 337 00:14:42,690 --> 00:14:45,320 yang mula memanipulasi ini struktur pokok dalam ingatan. 338 00:14:45,320 --> 00:14:47,070 Kami tidak perlu membina pokok dalam ingatan. 339 00:14:47,070 --> 00:14:49,880 Kami tidak perlu berbuat semacam struktur data-lima gaya Serangga 340 00:14:49,880 --> 00:14:50,650 kerumitan. 341 00:14:50,650 --> 00:14:54,610 Pelayar, baik cukup, atas mentafsirkan HTML atas ke bawah, 342 00:14:54,610 --> 00:14:58,600 kiri atau kanan, secara literal akan tangan kami sama dengan penunjuk 343 00:14:58,600 --> 00:15:00,840 itu keseluruhan pokok secara percuma. 344 00:15:00,840 --> 00:15:02,150 Ia melakukan semua kerja keras. 345 00:15:02,150 --> 00:15:05,520 Itulah yang Mozilla dan Apple dan lain-lain telah lakukan untuk kita. 346 00:15:05,520 --> 00:15:09,400 >> Dan dengan JavaScript yang kita akan dapat mengawal dan mengubah dan melakukan 347 00:15:09,400 --> 00:15:12,910 perkara yang menarik untuk pokok itu, jika tidak diketahui 348 00:15:12,910 --> 00:15:15,880 sebagai DOM atau Document Object Model. 349 00:15:15,880 --> 00:15:17,110 Apakah jenis perkara? 350 00:15:17,110 --> 00:15:19,030 Nah, ternyata bahawa dalam JavaScript, ada 351 00:15:19,030 --> 00:15:22,800 senarai pakaian ini peristiwa-peristiwa yang boleh berlaku. 352 00:15:22,800 --> 00:15:26,330 Dan kita belum benar-benar digunakan yang perkataan sejak minggu sifar dan Serangga 353 00:15:26,330 --> 00:15:28,240 sifar apabila kita bercakap tentang Scratch. 354 00:15:28,240 --> 00:15:31,390 Kebanyakan anda mungkin tidak menggunakan acara di projek Scratch anda. 355 00:15:31,390 --> 00:15:33,850 Tetapi anda mungkin ingat mudah Marco Polo 356 00:15:33,850 --> 00:15:36,760 Sebagai contoh, di mana kita mempunyai dua sprites, seorang daripada mereka berkata, Marco. 357 00:15:36,760 --> 00:15:40,180 Yang lain daripada mereka itu, setelah mendengar dan mendengar peristiwa itu, berkata, Polo. 358 00:15:40,180 --> 00:15:42,080 Jika tidak, jangan ragu untuk melihat kembali yang jauh ke belakang. 359 00:15:42,080 --> 00:15:44,450 >> Tetapi ini adalah hanya untuk berkata, dan anda boleh jenis 360 00:15:44,450 --> 00:15:47,730 membuat kesimpulan dari nama-nama perkara, JavaScript, ternyata, 361 00:15:47,730 --> 00:15:53,200 akan memberi kita satu cara untuk mendengar untuk tetikus akan turun atau tetikus naik 362 00:15:53,200 --> 00:15:57,920 atau kekunci akan turun atau kekunci naik atau onselect onsubmit 363 00:15:57,920 --> 00:15:59,740 atau onresizing sesuatu. 364 00:15:59,740 --> 00:16:03,060 Dengan kata lain, apa-apa tindakan fizikal bahawa manusia boleh mengambil dengan pelayar 365 00:16:03,060 --> 00:16:08,210 yang anda lakukan setiap hari, anda boleh menulis kod untuk mendengarkannya peristiwa 366 00:16:08,210 --> 00:16:10,220 dan kemudian melakukan sesuatu yang sesuai. 367 00:16:10,220 --> 00:16:14,130 >> Sebagai contoh, jika anda menggunakan Peta Google, apa yang berlaku jika anda klik dan langkah 368 00:16:14,130 --> 00:16:16,250 tetikus, biasanya? 369 00:16:16,250 --> 00:16:17,758 Jika anda klik dan tarik? 370 00:16:17,758 --> 00:16:18,258 Ya? 371 00:16:18,258 --> 00:16:21,701 372 00:16:21,701 --> 00:16:22,200 Tepat sekali. 373 00:16:22,200 --> 00:16:23,159 Peta ini mula bergerak. 374 00:16:23,159 --> 00:16:25,616 Jadi, anda boleh menyusun daripada melihat apa yang di sini, apa yang di sana. 375 00:16:25,616 --> 00:16:27,130 Dan bagaimana Google melaksanakan itu? 376 00:16:27,130 --> 00:16:29,421 Well, mungkin, mereka menggunakan beberapa acara ini 377 00:16:29,421 --> 00:16:31,720 pendengar, salah satu yang kata, mendengar untuk pada tetikus 378 00:16:31,720 --> 00:16:35,410 down-- supaya apabila pengguna secara fizikal menolak atau pad jejak atau beliau tetikus dia 379 00:16:35,410 --> 00:16:36,010 ke bawah. 380 00:16:36,010 --> 00:16:38,350 Dan kemudian kita cari sesuatu seperti pergerakan 381 00:16:38,350 --> 00:16:41,145 atau beberapa peristiwa lain yang membolehkan kita untuk menangkap drag. 382 00:16:41,145 --> 00:16:45,910 Dan sebenarnya, drag adalah sama dalam hal ini dot dot dot senarai pilihan mungkin. 383 00:16:45,910 --> 00:16:49,140 >> Jadi ini akan menjadi yang kuat cara untuk memulakan bertindak balas kepada pengguna 384 00:16:49,140 --> 00:16:52,824 walaupun sebelum dia benar-benar klik sesuatu yang jelas seperti hantar. 385 00:16:52,824 --> 00:16:55,240 Tetapi kita akan memperkenalkan beberapa topik untuk sampai ke sana. 386 00:16:55,240 --> 00:16:58,570 Tetapi pertama, mari kita peralihan untuk beberapa kod yang sebenar. 387 00:16:58,570 --> 00:17:01,450 Oleh itu, saya akan pergi ke hadapan dan membuka dom-0, 388 00:17:01,450 --> 00:17:05,869 yang merupakan satu contoh yang mudah di sini bahawa jika saya zum masuk hanya 389 00:17:05,869 --> 00:17:08,500 mempunyai input ini di sini untuk saya. 390 00:17:08,500 --> 00:17:12,410 Dan saya akan pergi ke hadapan dan taip "David" bagi nama-Ku dan klik Hantar. 391 00:17:12,410 --> 00:17:17,940 >> Dan kemudian, walaupun jenis murah, saya mempunyai segera ini yang timbul yang mengatakan, 392 00:17:17,940 --> 00:17:19,244 "hello, Daud!" 393 00:17:19,244 --> 00:17:21,740 Jadi ini adalah jenis seperti kami "hello, dunia" 394 00:17:21,740 --> 00:17:25,150 yang kita lakukan seketika kembali dalam C dan walaupun dalam PHP kerana saya telah secara dinamik 395 00:17:25,150 --> 00:17:26,310 outputted nama saya. 396 00:17:26,310 --> 00:17:28,230 Yang boleh saya lakukan nama orang lain di sini. 397 00:17:28,230 --> 00:17:31,240 Saya hanya boleh menukar ini kepada, seperti, Hana, klik Hantar. 398 00:17:31,240 --> 00:17:33,780 Dan sesungguhnya, perubahan pop timbul sedikit. 399 00:17:33,780 --> 00:17:36,650 >> Sekarang, pop-up adalah salah satu daripada ciri yang paling didera web. 400 00:17:36,650 --> 00:17:38,520 Dan sebenarnya, kembali pada penghalang pop-up hari 401 00:17:38,520 --> 00:17:40,820 datang ke dalam tren kerana anda akan pergi ke beberapa website-- 402 00:17:40,820 --> 00:17:43,604 mungkin place-- dipersoalkan yang akan kemudian tiba-tiba 403 00:17:43,604 --> 00:17:46,020 mula bertubi skrin anda dengan sejumlah besar pop-up. 404 00:17:46,020 --> 00:17:49,700 Dan supaya keupayaan ini untuk menimbulkan tingkap di hadapan pengguna 405 00:17:49,700 --> 00:17:52,372 telah tidak begitu diterima baik oleh umat manusia. 406 00:17:52,372 --> 00:17:54,080 Jadi itulah sebabnya anda lihat ini mengelakkan perkara, 407 00:17:54,080 --> 00:17:55,706 yang hanya menjadikan isu ini hodoh. 408 00:17:55,706 --> 00:17:57,996 Jadi, kita akan memerlukan cara yang lebih baik untuk meminta pengguna. 409 00:17:57,996 --> 00:17:59,350 Tetapi untuk sekarang, yang seolah-olah untuk bekerja. 410 00:17:59,350 --> 00:18:03,320 Jadi hanya intuitif, apa seolah-olah akan berlaku di sini? 411 00:18:03,320 --> 00:18:07,870 Saya pergi ke hadapan dan Klik Hantar dan maka sesuatu yang berlaku, dengan jelas. 412 00:18:07,870 --> 00:18:12,870 Tetapi apa yang tidak berlaku yang telah berlaku minggu lepas bila-bila masa saya klik Submit? 413 00:18:12,870 --> 00:18:15,940 Apa yang tidak berlaku pada skrin? 414 00:18:15,940 --> 00:18:17,170 Maaf? 415 00:18:17,170 --> 00:18:18,010 Muat semula. 416 00:18:18,010 --> 00:18:19,720 URL tidak berubah sama sekali. 417 00:18:19,720 --> 00:18:22,250 Saya berkata ini dom-0, dan saya masih di dom-0. 418 00:18:22,250 --> 00:18:26,890 Biasanya, kita akan mendapat berubah kepada beberapa lain URL, seperti register.php atau sebagainya. 419 00:18:26,890 --> 00:18:29,560 >> Tetapi apabila saya menolak perkara ini dengan mengklik OK, 420 00:18:29,560 --> 00:18:32,310 melihat bahawa URL yang kekal benar-benar meletakkan. 421 00:18:32,310 --> 00:18:35,350 Dan, sebenarnya, jika saya sedikit ragu-ragu, saya membuka Chrome. 422 00:18:35,350 --> 00:18:36,860 Biar saya membuka tab Rangkaian. 423 00:18:36,860 --> 00:18:38,360 Dan notis itu kosong pada masa ini. 424 00:18:38,360 --> 00:18:40,700 Biar saya pergi ke hadapan dan mengemukakan semula Maria. 425 00:18:40,700 --> 00:18:42,810 Tidak ada trafik rangkaian sekalipun. 426 00:18:42,810 --> 00:18:44,320 Jadi tidak ada HTTP. 427 00:18:44,320 --> 00:18:47,620 >> Maka sesungguhnya, jika saya melihat kod sumber untuk this-- biarlah saya tutup tetingkap ini 428 00:18:47,620 --> 00:18:49,480 dan pergi ke Lihat Source. 429 00:18:49,480 --> 00:18:50,400 Menarik. 430 00:18:50,400 --> 00:18:53,520 Ia kelihatan seperti ada beberapa tag baru, antaranya skrip. 431 00:18:53,520 --> 00:18:57,490 Jadi mari kita lihat dalam CS50 IDE apa yang saya dihantar kepada pengguna. 432 00:18:57,490 --> 00:19:00,690 >> Jadi di sini is-- mari memberi tumpuan kepada HTML sahaja. 433 00:19:00,690 --> 00:19:03,500 Berikut adalah separuh bahagian bawah dom-0.html. 434 00:19:03,500 --> 00:19:07,830 Dan perhatikan bahawa ia mendapat tajuk, tag kepala, tag badan, tag bentuk. 435 00:19:07,830 --> 00:19:11,257 Tetapi apa yang melompat keluar kepada anda sebagai yang berbeza, terutamanya jika anda tidak pernah 436 00:19:11,257 --> 00:19:12,590 ditulis apa-apa JavaScript diri sendiri. 437 00:19:12,590 --> 00:19:14,920 Biar saya tatal sedikit ke sini yang betul. 438 00:19:14,920 --> 00:19:18,330 Saya telah mendapat input, input lain untuk klik. 439 00:19:18,330 --> 00:19:21,410 Saya telah mendapat satu ID, yang merupakan jenis baru. 440 00:19:21,410 --> 00:19:22,790 Tetapi kita melihat ini dengan CSS. 441 00:19:22,790 --> 00:19:24,480 Apa lagi yang pasti baru? 442 00:19:24,480 --> 00:19:24,980 Ya? 443 00:19:24,980 --> 00:19:30,580 444 00:19:30,580 --> 00:19:32,140 Nice. 445 00:19:32,140 --> 00:19:32,760 >> Baiklah. 446 00:19:32,760 --> 00:19:35,630 Jadi di mana ia berkata onsubmit, melihat apa yang seolah-olah mengikuti. 447 00:19:35,630 --> 00:19:38,740 Ini adalah atribut dalam HTML tatanama. 448 00:19:38,740 --> 00:19:40,944 Nilainya adalah rentetan ini dipetik di sini. 449 00:19:40,944 --> 00:19:42,860 Dan ini kelihatan sedikit pelik pada pandangan pertama. 450 00:19:42,860 --> 00:19:44,050 Ia bukan HTML. 451 00:19:44,050 --> 00:19:45,240 Ia bukan CSS. 452 00:19:45,240 --> 00:19:47,580 Ini adalah, seperti yang anda sangka, JavaScript. 453 00:19:47,580 --> 00:19:51,850 Oleh itu, ia seolah-olah bahawa dibina ke dalam ini Laman web ini adalah fungsi yang dipanggil memberi salam. 454 00:19:51,850 --> 00:19:54,250 Dan saya membuat kesimpulan bahawa hanya kerana ia adalah satu perkataan, memberi salam. 455 00:19:54,250 --> 00:19:55,880 Ia mendapat paren terbuka, paren dekat, koma bertitik. 456 00:19:55,880 --> 00:19:58,095 Nampaknya fungsi C, kelihatan seperti fungsi PHP. 457 00:19:58,095 --> 00:20:00,370 >> Dan sesungguhnya, ia akan menjadi fungsi JavaScript. 458 00:20:00,370 --> 00:20:01,440 Kemudian saya kembali palsu. 459 00:20:01,440 --> 00:20:03,440 Kami akan kembali kepada bahawa dalam hanya seketika. 460 00:20:03,440 --> 00:20:05,320 Tetapi di mana fungsi ini ditakrifkan? 461 00:20:05,320 --> 00:20:07,950 Nah biar saya tatal ke atas ke atas fail. 462 00:20:07,950 --> 00:20:11,710 Dan walaupun ia adalah garis yang panjang, ia adalah agak mudah. 463 00:20:11,710 --> 00:20:15,000 Biar saya zum keluar di sini dan memberi tumpuan kepada empat baris. 464 00:20:15,000 --> 00:20:17,137 >> Jadi dalam JavaScript, hanya seperti PHP, anda hanya 465 00:20:17,137 --> 00:20:19,720 berkata, secara literal, perkataan "fungsi" nama majlis itu, 466 00:20:19,720 --> 00:20:22,700 dan kemudian kurungan dengan mana-mana arguments-- ada hujah dalam kes ini. 467 00:20:22,700 --> 00:20:25,290 Dan tidak ada jenis pulangan dalam JavaScript, sama seperti PHP. 468 00:20:25,290 --> 00:20:29,470 Jadi ia sedikit lebih longgar daripada C. Kerinting terbuka, kerinting rapat. 469 00:20:29,470 --> 00:20:33,270 Dibina ke dalam JavaScript function-- yang bukan function-- disyorkan 470 00:20:33,270 --> 00:20:35,730 tetapi fungsi yang dipanggil amaran tujuan yang tunggal dalam kehidupan 471 00:20:35,730 --> 00:20:38,620 adalah untuk menarik yang cukup hodoh segera yang kita lihat sebentar tadi. 472 00:20:38,620 --> 00:20:40,950 >> Sekarang ini adalah jenis hal yg penting. 473 00:20:40,950 --> 00:20:42,560 Apa yang berlaku di sini? 474 00:20:42,560 --> 00:20:45,840 Jadi mari kita mulakan untuk menyerlahkan segala-galanya di sini. 475 00:20:45,840 --> 00:20:48,540 Itulah hujah yang sama untuk memberi amaran. 476 00:20:48,540 --> 00:20:49,530 Dan apa yang berlaku? 477 00:20:49,530 --> 00:20:51,200 Ini hanya kelihatan seperti tali. 478 00:20:51,200 --> 00:20:59,180 Dan ternyata, tidak seperti PHP dan tidak seperti C, ia tidak kira dalam JavaScript 479 00:20:59,180 --> 00:21:01,090 jika anda petikan tunggal atau petikan berganda. 480 00:21:01,090 --> 00:21:02,060 Mereka akan menjadi setara. 481 00:21:02,060 --> 00:21:03,769 Dan terus-terang, ia hanya popular pada hari ini 482 00:21:03,769 --> 00:21:06,726 untuk pengaturcara JavaScript untuk sentiasa menggunakan tanda petikan tunggal untuk sebab-sebab tertentu. 483 00:21:06,726 --> 00:21:07,840 Ia hanya perkara yang perlu dilakukan. 484 00:21:07,840 --> 00:21:09,710 Tetapi kita boleh menggunakan tanda petik, juga. 485 00:21:09,710 --> 00:21:11,540 >> Jadi plus adalah watak baru. 486 00:21:11,540 --> 00:21:14,512 Tetapi orang-orang di antara kamu yang telah dilakukan ini sebelum ini, apakah ditambah maksudkan? 487 00:21:14,512 --> 00:21:16,440 Yeah. 488 00:21:16,440 --> 00:21:17,120 Menyatukan. 489 00:21:17,120 --> 00:21:18,570 Oleh itu, kita melihat ini dalam PHP. 490 00:21:18,570 --> 00:21:20,315 Terdapat hanya titik pengendali dalam PHP yang 491 00:21:20,315 --> 00:21:22,000 akan menyatukan dua tali bersama-sama. 492 00:21:22,000 --> 00:21:24,000 C adalah sakit di leher untuk melakukan ini. 493 00:21:24,000 --> 00:21:27,310 Ingat dari pset enam, yang yang sakit secara khusus di leher, 494 00:21:27,310 --> 00:21:29,470 anda perlu menggunakan sesuatu seperti strcat 495 00:21:29,470 --> 00:21:31,660 selepas memperuntukkan memori pada timbunan atau timbunan itu. 496 00:21:31,660 --> 00:21:34,243 Anda mempunyai untuk melompat melalui gelung hanya untuk menyatukan dua tali. 497 00:21:34,243 --> 00:21:36,040 Dalam JavaScript, ia sangat mudah. 498 00:21:36,040 --> 00:21:38,030 Hanya menggunakan operator campur di antara mereka. 499 00:21:38,030 --> 00:21:41,420 >> Jadi kompleks yang berpandangan Perkara yang seolah-olah ini 500 00:21:41,420 --> 00:21:43,490 kerana pada akhir rentetan ini keseluruhan, saya hanya 501 00:21:43,490 --> 00:21:45,797 concatenate pada tanda seru. 502 00:21:45,797 --> 00:21:48,380 Jadi, jika apa yang muncul telah "hello, Daud:" "hello, Hannah," 503 00:21:48,380 --> 00:21:52,740 "hello, Maria," dan sebagainya, jelas bahawa perkara pertengahan di antara kedua-dua 504 00:21:52,740 --> 00:21:55,215 plus harus memberikan akses kepada apa? 505 00:21:55,215 --> 00:21:58,855 506 00:21:58,855 --> 00:22:01,991 Apa yang ada di sana untuk memastikan? 507 00:22:01,991 --> 00:22:02,490 Yeah. 508 00:22:02,490 --> 00:22:05,090 Jadi saya akan berpura-pura di sini menjawab nama mereka, bukan? 509 00:22:05,090 --> 00:22:10,380 Jadi nama mereka muncul pada perlawanan akhir hasil. Jadi apa maknanya? 510 00:22:10,380 --> 00:22:15,080 Well, saya mencadangkan awal yang gambar yang kononnya DOM 511 00:22:15,080 --> 00:22:18,580 mempunyai unsur akar ini khas cara sehingga atas dipanggil dokumen. 512 00:22:18,580 --> 00:22:21,660 Dan kini, ternyata, yang akan sebagai pembolehubah global khas 513 00:22:21,660 --> 00:22:25,250 dalam JavaScript, dibina ke dalam yang merupakan sejumlah besar fungsi yang berguna. 514 00:22:25,250 --> 00:22:31,770 Antara fungsi yang berguna adalah keupayaan untuk mendapatkan di mana-mana nod keturunan. 515 00:22:31,770 --> 00:22:37,760 Mereka dataran atau segi empat tepat atau elips hanya nod di pokok, jadi untuk bercakap. 516 00:22:37,760 --> 00:22:41,850 >> Jadi ia ternyata bahawa yang dibina ke dalam Objek dokumen JavaScript ini 517 00:22:41,850 --> 00:22:47,300 adalah fungsi, atau dikenali sebagai kaedah, yang dinamakan getElementById. 518 00:22:47,300 --> 00:22:50,410 Syntax untuk memanggil fungsi dalam JavaScript 519 00:22:50,410 --> 00:22:55,220 yang berada di dalam sesuatu objek atau berubah hanya dengan notasi titik. 520 00:22:55,220 --> 00:22:57,950 Dan kita melihat ini dalam C apa sintaks struct. 521 00:22:57,950 --> 00:23:03,530 Anda lihat ini dalam pset tujuh, jenis, jenis, apabila anda melihat CS50 :: pertanyaan. 522 00:23:03,530 --> 00:23:08,070 Kolon kolon dalam PHP adalah satu lagi cara memanggil fungsi itu 523 00:23:08,070 --> 00:23:09,260 dalam beberapa objek. 524 00:23:09,260 --> 00:23:11,960 >> Tetapi buat masa ini dalam JavaScript, ia hanya titik. 525 00:23:11,960 --> 00:23:14,170 Dan supaya fungsi ini, baik cukup, jenis 526 00:23:14,170 --> 00:23:16,810 mengatakan apa yang ia does-- mendapatkan unsur oleh ID. 527 00:23:16,810 --> 00:23:20,280 Satu elemen hanyalah nama lain untuk tag atau nod dalam DOM. 528 00:23:20,280 --> 00:23:26,900 Dan oleh itu elemen dengan ID "nama" bermakna this-- inilah HTML saya. 529 00:23:26,900 --> 00:23:31,910 Dan berdasarkan HTML ini, apa yang nod atau apa HTML tag aku 530 00:23:31,910 --> 00:23:35,097 akan pengaturcaraan menjadi tangan dengan memanggil document.getElementByID? 531 00:23:35,097 --> 00:23:37,650 532 00:23:37,650 --> 00:23:38,500 >> Ya, betul-betul. 533 00:23:38,500 --> 00:23:42,670 Saya akan mendapatkan input unsur terdapat yang ID adalah "nama." 534 00:23:42,670 --> 00:23:45,140 Jadi secara khusus, anda boleh memikirkan fungsi ini, 535 00:23:45,140 --> 00:23:49,560 getElementById, sebagai satu cara untuk memberi menyokong penunjuk kepada nod tertentu 536 00:23:49,560 --> 00:23:50,060 di pokok itu. 537 00:23:50,060 --> 00:23:51,980 Kami tidak disediakan ini pokok, tetapi ia adalah cara yang 538 00:23:51,980 --> 00:23:54,900 untuk mendapat akses kepada yang segi empat tepat atau segi empat tepat yang 539 00:23:54,900 --> 00:23:58,090 dengan secara unik mengenal pasti melalui ID itu. 540 00:23:58,090 --> 00:23:59,760 >> Sekarang, mengapa ini berguna kepada anda? 541 00:23:59,760 --> 00:24:01,510 Nah, ternyata bahawa apabila anda telah mendapat 542 00:24:01,510 --> 00:24:07,220 nod, yang segi empat tepat daripada picture, nod yang di dalamnya, 543 00:24:07,220 --> 00:24:10,660 seterusnya, mempunyai sejumlah besar properties-- pasangan kunci nilai 544 00:24:10,660 --> 00:24:13,480 atau data, salah satu yang dipanggil nilai. 545 00:24:13,480 --> 00:24:16,500 Jadi secara literal, ia adalah jenis yang hal yg menjelaskan segala-galanya. 546 00:24:16,500 --> 00:24:19,370 Tetapi pada akhir hari, semua ini tidak adalah memberikan anda 547 00:24:19,370 --> 00:24:23,070 rentetan yang pengguna ditaip dalam fesyen hierarki ini. 548 00:24:23,070 --> 00:24:24,820 Tetapi saya tidak suka beberapa perkara-perkara ini. 549 00:24:24,820 --> 00:24:27,590 Atau sebaliknya, ada beberapa rasa ingin tahu masih. 550 00:24:27,590 --> 00:24:28,870 Semua itu seolah-olah bekerja. 551 00:24:28,870 --> 00:24:33,420 Mengapa anda berfikir saya kembali palsu selepas memanggil menyambut? 552 00:24:33,420 --> 00:24:35,910 Ini kelihatan sedikit hodoh, yang Saya mempunyai dua kenyataan terdapat 553 00:24:35,910 --> 00:24:38,730 dipisahkan oleh koma bertitik. 554 00:24:38,730 --> 00:24:39,310 Cuba teka. 555 00:24:39,310 --> 00:24:44,390 Jika saya dikeluarkan kembali palsu, apa yang mungkin berlaku, hanya naluri? 556 00:24:44,390 --> 00:24:46,990 557 00:24:46,990 --> 00:24:49,460 Maaf, katakan lagi? 558 00:24:49,460 --> 00:24:50,530 >> Buka sekumpulan Windows. 559 00:24:50,530 --> 00:24:52,780 Jadi berpotensi mungkin sesuatu seperti itu akan berlaku. 560 00:24:52,780 --> 00:24:54,422 Apa lagi? 561 00:24:54,422 --> 00:24:55,630 Mungkin mengemukakan permintaan di mana? 562 00:24:55,630 --> 00:24:59,109 563 00:24:59,109 --> 00:25:00,510 Untuk halaman yang sama. 564 00:25:00,510 --> 00:25:03,110 Jadi, sebenarnya, itu yang lebih dekat menjawab di sini, 565 00:25:03,110 --> 00:25:05,890 walaupun, tidak seperti pada masa lalu, saya tidak ada 566 00:25:05,890 --> 00:25:09,300 dinyatakan sifat tindakan itu, yang biasanya kita perlu lakukan. 567 00:25:09,300 --> 00:25:11,780 Ternyata ada lalai. Jika anda tidak menentukan tindakan, 568 00:25:11,780 --> 00:25:15,370 ia seperti mengatakan quote, unquote atau nama fail itu sendiri, 569 00:25:15,370 --> 00:25:17,850 yang dalam kes ini akan menjadi seperti dom-0.html. 570 00:25:17,850 --> 00:25:20,420 Ia hanya jenis disimpulkan, atau sebaliknya tersirat. 571 00:25:20,420 --> 00:25:22,420 >> Dan jadi jika saya tidak melakukan ini, mari kita perhatikan. 572 00:25:22,420 --> 00:25:23,230 Biar saya simpan ini. 573 00:25:23,230 --> 00:25:25,270 Dan saya telah dikeluarkan penyata palsu. 574 00:25:25,270 --> 00:25:27,759 Biar saya kembali ke ini contoh dan daya masukkannya semula. 575 00:25:27,759 --> 00:25:30,800 Dan anda mungkin telah melihat saya mencadangkan ini di CS50 Bincangkan sekumpulan kali. 576 00:25:30,800 --> 00:25:34,560 Jika apa-apa yang pernah bertindak funky dan pelayar tidak berkelakuan seperti yang anda harapkan, 577 00:25:34,560 --> 00:25:37,410 sering kali anda akan mahu untuk memegang Beralih dan kemudian klik Reload. 578 00:25:37,410 --> 00:25:41,480 Yang akan memaksa setiap fail untuk memuat semula dan tidak menggunakan cache tempatan penyemak imbas anda 579 00:25:41,480 --> 00:25:47,032 atau salinan supaya sekarang, biarlah saya pergi ke hadapan dan membuka Inspektor saya, tab Rangkaian. 580 00:25:47,032 --> 00:25:48,740 Saya akan klik Memelihara Log kerana saya 581 00:25:48,740 --> 00:25:51,660 tidak mahu ia untuk memadam baris sekali saya akan dibawa pergi tempat lain. 582 00:25:51,660 --> 00:25:54,650 >> Biar saya pergi ke hadapan di sini dan taip Andi, klik Submit. 583 00:25:54,650 --> 00:25:55,150 Baiklah. 584 00:25:55,150 --> 00:25:56,480 Yang seolah-olah seperti yang diharapkan. 585 00:25:56,480 --> 00:25:57,440 Ia berkata "hello, Andi." 586 00:25:57,440 --> 00:25:59,420 Biar saya klik OK. 587 00:25:59,420 --> 00:26:00,610 Menarik. 588 00:26:00,610 --> 00:26:05,100 Perhatikan bahawa halaman yang berubah, walaupun ke halaman asal. 589 00:26:05,100 --> 00:26:06,770 Perhatikan jenis URL yang berubah. 590 00:26:06,770 --> 00:26:09,430 Ia menambah tanda tanya, yang biasanya petunjuk 591 00:26:09,430 --> 00:26:11,260 yang kita cuba untuk mengemukakan sesuatu. 592 00:26:11,260 --> 00:26:13,570 Dan kemudian di bahagian bawah, lebih jelas, 593 00:26:13,570 --> 00:26:17,570 di sini adalah permintaan HTTP sebenar, yang mendapat sambutan 200 yang 594 00:26:17,570 --> 00:26:18,490 membawa saya ke sini. 595 00:26:18,490 --> 00:26:20,250 >> Jadi ini bukan apa yang kita mahu lakukan, bukan? 596 00:26:20,250 --> 00:26:22,166 Kerana saya tidak mahu menambah nilai keseluruhan halaman. 597 00:26:22,166 --> 00:26:24,970 Saya bukannya mahu kembali palsu bagi litar pintas 598 00:26:24,970 --> 00:26:28,840 kelakuan lalai pelayar, yang adalah, sudah tentu, untuk mengemukakan halaman. 599 00:26:28,840 --> 00:26:31,700 >> Jadi mari kita lihat pada contoh yang lebih baik sedikit. 600 00:26:31,700 --> 00:26:33,920 Ini adalah dom versi satu. 601 00:26:33,920 --> 00:26:36,680 Dan perhatikan yang berikut. 602 00:26:36,680 --> 00:26:39,150 Tidak mengapa jika anda tidak grok semua baris kod. 603 00:26:39,150 --> 00:26:41,750 Tetapi apa yang adalah berbeza tentang pelaksanaan ini? 604 00:26:41,750 --> 00:26:44,690 Saya akan menetapkan ia berkelakuan sama, melakukan perkara yang sama. 605 00:26:44,690 --> 00:26:49,320 606 00:26:49,320 --> 00:26:51,570 Apa yang telah saya jelas dilakukan berbeza? 607 00:26:51,570 --> 00:26:52,266 Ya? 608 00:26:52,266 --> 00:26:53,182 >> PENONTON: [didengar]. 609 00:26:53,182 --> 00:27:03,421 610 00:27:03,421 --> 00:27:04,170 DAVID MALAN: Ya. 611 00:27:04,170 --> 00:27:08,620 Jadi fungsi yang ditakrifkan differently-- dengan kata lain, tidak ada di bentuk, 612 00:27:08,620 --> 00:27:13,180 di sana pada baris 7-- atau sebaliknya, garis 8-- tidak lagi 613 00:27:13,180 --> 00:27:15,070 adakah saya perlu sifat yang onsubmit. 614 00:27:15,070 --> 00:27:16,750 Dalam contoh sebelum ini, saya mempunyai ini. 615 00:27:16,750 --> 00:27:18,530 Dan kemudian saya benar-benar menulis kod saya di sini. 616 00:27:18,530 --> 00:27:20,210 Dan kemudian saya berkata kembali palsu. 617 00:27:20,210 --> 00:27:22,180 Dan jika ia tidak gosok anda dengan cara yang salah lagi, 618 00:27:22,180 --> 00:27:26,140 ia harus bermula untuk setakat kerana, seperti dalam HTML, 619 00:27:26,140 --> 00:27:29,530 apabila kita mula bersama bergaul ia dengan CSS dalam sifat-sifat gaya, 620 00:27:29,530 --> 00:27:32,890 ia hanya mula mendapat sedikit tidak kemas atau merasa salah sedikit. 621 00:27:32,890 --> 00:27:35,020 >> Begitu juga di sini, jika anda mula mengambil HTML, 622 00:27:35,020 --> 00:27:37,419 dan kemudian anda secara automatik mencebur beberapa kod JavaScript 623 00:27:37,419 --> 00:27:40,460 di tengah-tengah tali dipetik, ia tidak akan menjadi sangat dipertahankan. 624 00:27:40,460 --> 00:27:40,630 Betul? 625 00:27:40,630 --> 00:27:43,690 Ia bukan juga jelas pada mulanya tempat di mana kod JavaScript itu. 626 00:27:43,690 --> 00:27:46,590 Jadi ia akan menjadi benar-benar baik sebagai prinsip reka bentuk yang lebih baik, 627 00:27:46,590 --> 00:27:50,500 mari kita menyimpan HTML kami benar-benar berasingan daripada JavaScript kami. 628 00:27:50,500 --> 00:27:53,150 >> Untuk berbuat demikian itu, apa yang kita ada dilakukan di sini adalah following-- yang 629 00:27:53,150 --> 00:27:56,790 kita hanya menggunakan HTML untuk markup sahaja. 630 00:27:56,790 --> 00:28:00,730 Dan sebagainya dalam versi salah satu daripada ini, semua Saya mempunyai satu bentuk ID yang unik. 631 00:28:00,730 --> 00:28:04,630 Dan kemudian turun di sini, saya mengambil kesempatan daripada ciri khas JavaScript 632 00:28:04,630 --> 00:28:08,480 di mana saya boleh mempunyai apa yang dipanggil fungsi tanpa nama. 633 00:28:08,480 --> 00:28:14,150 Jadi ternyata bahawa jika saya memanggil document.getElementByID dari 'demo' 634 00:28:14,150 --> 00:28:18,890 itu seperti memberi saya penunjuk kepada nod ini dalam pokok saya, unsur bentuk, 635 00:28:18,890 --> 00:28:20,100 boleh dikatakan. 636 00:28:20,100 --> 00:28:22,220 >> Sekarang, saya hanya tahu dari mengetahui sedikit HTML 637 00:28:22,220 --> 00:28:26,330 sekarang kita telah membaca beberapa talian rujukan, yang unsur bentuk menyokong 638 00:28:26,330 --> 00:28:29,950 sejumlah besar listeners-- acara di erti kata lain, senarai pakaian acara 639 00:28:29,950 --> 00:28:31,700 pendengar yang kita lihat sebentar tadi. 640 00:28:31,700 --> 00:28:35,950 Aku mengetahui dari membaca dokumentasi onsubmit yang merupakan acara yang sah 641 00:28:35,950 --> 00:28:38,520 pendengar untuk elemen bentuk. 642 00:28:38,520 --> 00:28:41,480 >> Jadi apabila saya tahu bahawa, ia adalah selamat bagi saya untuk melakukan 643 00:28:41,480 --> 00:28:45,390 yang following-- mendapatkan nod yang dari pokok itu, unsur bentuk, 644 00:28:45,390 --> 00:28:48,070 dan aksesnya dipanggil harta onsubmit. 645 00:28:48,070 --> 00:28:49,880 Jadi titik hanya bermakna ini adalah harta, 646 00:28:49,880 --> 00:28:52,180 seperti nilai istimewa di dalamnya. 647 00:28:52,180 --> 00:28:55,590 Dan apa jenis data aku menyerahhakkan, nampaknya, 648 00:28:55,590 --> 00:28:58,900 untuk onsubmit, yang berkesan pembolehubah dalam 649 00:28:58,900 --> 00:29:01,010 itu nod dalam pokok itu? 650 00:29:01,010 --> 00:29:04,100 Ia adalah satu bidang dalam struct itu. 651 00:29:04,100 --> 00:29:05,810 Apakah jenis data? 652 00:29:05,810 --> 00:29:07,030 >> Fungsi A, yeah. 653 00:29:07,030 --> 00:29:08,607 Jadi ia ternyata bahawa PHP mempunyai ini. 654 00:29:08,607 --> 00:29:10,440 Dan walaupun kita tidak memberitahu anda tentang hal itu, 655 00:29:10,440 --> 00:29:16,240 C juga mempunyai fungsi petunjuk, yang keupayaan untuk lulus dan memberi fungsi 656 00:29:16,240 --> 00:29:18,330 sebagai nilai-nilai pembolehubah 'diri mereka sendiri. 657 00:29:18,330 --> 00:29:20,280 Dan kita tidak akan mundur kembali ke C. 658 00:29:20,280 --> 00:29:23,250 Tetapi untuk sekarang, ternyata bahawa di sebelah kanan di sini, 659 00:29:23,250 --> 00:29:26,260 walaupun ia kelihatan sedikit funky, cara ini, hey pelayar, 660 00:29:26,260 --> 00:29:27,550 memberi saya fungsi. 661 00:29:27,550 --> 00:29:30,560 Saya tidak akan peduli memberi nama yang kerana saya benar-benar 662 00:29:30,560 --> 00:29:34,450 akan memberikan mari kita memanggilnya alamat fungsi ini 663 00:29:34,450 --> 00:29:35,994 segera kepada onsubmit. 664 00:29:35,994 --> 00:29:39,160 Dalam erti kata lain, pelayar, anda tidak perlu untuk mengetahui apa yang dipanggil fungsi ini. 665 00:29:39,160 --> 00:29:41,890 Anda hanya perlu tahu di mana ia adalah dalam ingatan. 666 00:29:41,890 --> 00:29:44,210 Dan supaya ia mencukupi hanya untuk mempunyai tanda sama ada 667 00:29:44,210 --> 00:29:48,240 dan tidak mengganggu menamakan ini, seperti foo atau menyambut atau mana-mana perkataan lain. 668 00:29:48,240 --> 00:29:50,150 Dan sekarang ini adalah hanya satu perkara yang gaya. 669 00:29:50,150 --> 00:29:53,100 Saya boleh bergerak kerinting ini ke the-- talian berikut sorry-- 670 00:29:53,100 --> 00:29:54,750 seperti biasanya kita lakukan CS50. 671 00:29:54,750 --> 00:29:57,550 Tetapi dalam JavaScript, ia sebenarnya segi gaya biasa 672 00:29:57,550 --> 00:30:00,450 untuk hanya menyimpan pendakap kerinting, yang Yang pertama, pada garis pertama. 673 00:30:00,450 --> 00:30:02,620 >> Tetapi selepas ini, ada apa yang menarik. 674 00:30:02,620 --> 00:30:05,830 Yang kerinting terbuka hanya demarcates permulaan fungsi saya. 675 00:30:05,830 --> 00:30:09,320 Majlis tersebut kini sama, kecuali saya telah 676 00:30:09,320 --> 00:30:11,452 termasuk palsu pulangan dalam fungsi ini. 677 00:30:11,452 --> 00:30:13,160 Kerana ia ternyata out-- dan anda hanya akan 678 00:30:13,160 --> 00:30:14,980 tahu ini daripada membaca documentation-- yang 679 00:30:14,980 --> 00:30:19,740 bahawa jika fungsi yang anda menetapkan untuk pengendali yang onsubmit pulangan palsu, 680 00:30:19,740 --> 00:30:23,420 pelayar hanya tahu dan bersetuju tidak mengemukakan borang untuk pelayan. 681 00:30:23,420 --> 00:30:27,210 Jika ia kembali benar, ia akan mengemukakan kepada pelayan atas sebab-sebab kita akan melihat 682 00:30:27,210 --> 00:30:28,700 berguna dalam hanya seketika. 683 00:30:28,700 --> 00:30:31,000 >> Dan kemudian selepas koma bernoktah pendakap kerinting sana hanya 684 00:30:31,000 --> 00:30:32,541 bermakna saya selesai menentukan fungsi. 685 00:30:32,541 --> 00:30:36,600 Anda tahu apa yang memanggil sebaik kerana anda mendengar penyerahan. 686 00:30:36,600 --> 00:30:37,100 Baiklah. 687 00:30:37,100 --> 00:30:40,650 Ini masih boleh dikatakan jenis hodoh. 688 00:30:40,650 --> 00:30:42,190 Jadi apa lagi yang boleh kita lakukan? 689 00:30:42,190 --> 00:30:45,000 >> Nah, ternyata kemudian dalam versi dua, yang merupakan last-- 690 00:30:45,000 --> 00:30:46,780 dan kami akan hanya renungan ini. 691 00:30:46,780 --> 00:30:49,850 Pada risiko membuat ia bertambah gawat, ternyata 692 00:30:49,850 --> 00:30:52,160 bahawa ada perpustakaan di dunia yang dipanggil jQuery. 693 00:30:52,160 --> 00:30:54,900 Dan jQuery adalah super yang JavaScript perpustakaan popular 694 00:30:54,900 --> 00:30:57,930 yang begitu popular bahawa kebanyakan sebarang JavaScript-- ia bukan 695 00:30:57,930 --> 00:31:00,540 sesuatu yang luar biasa bagi orang-orang untuk mengelirukan jQuery dengan JavaScript. 696 00:31:00,540 --> 00:31:01,070 Mengapa? 697 00:31:01,070 --> 00:31:04,990 JavaScript sendiri mempunyai sangat cara lantung menjalankan things-- 698 00:31:04,990 --> 00:31:07,820 document.getElementByID, dadadadadada. 699 00:31:07,820 --> 00:31:10,510 Anda akhirnya mempunyai sangat barisan panjang kod. 700 00:31:10,510 --> 00:31:15,550 >> Jadi rakan-rakan yang bernama John Resid, yang benar-benar bekerja untuk permulaan yang 701 00:31:15,550 --> 00:31:18,630 sehingga hari ini, keluar dengan perpustakaan ini tahun 702 00:31:18,630 --> 00:31:22,070 lalu bahawa ramai orang telah menyumbang untuk dipanggil jQuery yang berubah 703 00:31:22,070 --> 00:31:23,449 sintaks dengan cara yang berikut. 704 00:31:23,449 --> 00:31:25,740 Dan hanya jadi anda lihat ini, kerana anda akan sentiasa 705 00:31:25,740 --> 00:31:28,140 melihat ini jika melakukan projek akhir berasaskan web, 706 00:31:28,140 --> 00:31:33,270 ini akan menjadi cara yang sama dengan melaksanakan fungsi yang sama dengan menggunakan 707 00:31:33,270 --> 00:31:34,630 perpustakaan istimewa ini. 708 00:31:34,630 --> 00:31:36,680 >> Sekarang, daripada menggoda ia selain secara keseluruhan, 709 00:31:36,680 --> 00:31:38,520 mari kita lihat beberapa corak. 710 00:31:38,520 --> 00:31:44,850 Sintaks ini nampaknya mempunyai berapa banyak fungsi tanpa nama 711 00:31:44,850 --> 00:31:49,584 atau fungsi bernama atau fungsi lambda AKA? 712 00:31:49,584 --> 00:31:50,190 Dua, bukan? 713 00:31:50,190 --> 00:31:52,690 Dan anda tahu bahawa, walaupun anda tidak super selesa dengan ini, 714 00:31:52,690 --> 00:31:55,780 hanya dengan fakta bahawa ia kata () fungsi dua kali. 715 00:31:55,780 --> 00:31:58,172 >> Dan ternyata bahawa apa kod ini adalah doing-- 716 00:31:58,172 --> 00:32:01,255 dan kami akan merujuk kepada rujukan dalam talian, akhirnya, mencari bantuan dengan ini. 717 00:32:01,255 --> 00:32:04,480 Ini hanya bermakna bahawa apabila dokumen itu siap, 718 00:32:04,480 --> 00:32:07,490 pergi ke depan dan mendaftar fungsi berikut 719 00:32:07,490 --> 00:32:12,064 sebagai pengendali yang mengemukakan bagi HTML elemen yang unik idea adalah demo. 720 00:32:12,064 --> 00:32:14,480 Dan kemudian, apabila itu berlaku, memanggil kedua-dua baris kod. 721 00:32:14,480 --> 00:32:18,677 Dan ini adalah, tragedi, yang lebih cara berjela-jela untuk mengatakan kembali palsu. 722 00:32:18,677 --> 00:32:21,510 Dan yang telah dinyatakan ini hanya kerana anda akan melihat kod seperti dalam talian ini. 723 00:32:21,510 --> 00:32:23,140 Dan ia adalah apa-apa yang gentar dengan. 724 00:32:23,140 --> 00:32:26,057 Tetapi sebaliknya, perlu diingat bahawa apa yang akan menjadi biasa dalam JavaScript 725 00:32:26,057 --> 00:32:26,765 adalah paradigma ini. 726 00:32:26,765 --> 00:32:29,510 Dan itulah sebabnya mengapa kita menunjukkan ia buat masa ini. 727 00:32:29,510 --> 00:32:30,010 Baiklah. 728 00:32:30,010 --> 00:32:32,730 Jadi tanpa kediaman terlalu banyak pada sintaks itu, 729 00:32:32,730 --> 00:32:37,800 adalah terdapat sebarang soalan mengenai contoh-contoh atau idea setakat ini? 730 00:32:37,800 --> 00:32:38,300 Baiklah. 731 00:32:38,300 --> 00:32:40,220 Jadi mari kita menggunakan ini untuk sesuatu yang berguna. 732 00:32:40,220 --> 00:32:47,070 Membuat sebuah laman web yang hanya berkata hello, Fulan tidak semua yang menarik, 733 00:32:47,070 --> 00:32:47,830 tidak underwhelm. 734 00:32:47,830 --> 00:32:51,038 Yang ini tidak akan menjadi cantik, tetapi ia akan melakukan sesuatu yang berguna. 735 00:32:51,038 --> 00:32:56,350 Biar saya kembali ke direktori saya di sini dan membuka, berkata, bentuk-0.html. 736 00:32:56,350 --> 00:32:59,320 >> Jadi andaikan ini adalah mahasiswa laman pendaftaran sukan antara dinding 737 00:32:59,320 --> 00:33:01,780 tanpa apa-apa CSS atau apa-apa rasa reka bentuk. 738 00:33:01,780 --> 00:33:05,404 Dan saya mahu pergi ke depan dan mendaftar di sini dengan kata laluan. 739 00:33:05,404 --> 00:33:08,320 Dan saya akan bersetuju dengan terma dan syarat-syarat dan klik Daftar. 740 00:33:08,320 --> 00:33:11,700 Dan kini laman web itu berkata, "Anda di berdaftar! (Well, tidak benar-benar.) " 741 00:33:11,700 --> 00:33:15,070 Yang seolah-olah seperti ia bekerja, tetapi biarlah saya pergi ke hadapan dan memaksa tambah nilai. 742 00:33:15,070 --> 00:33:18,720 >> Dan saya katakan, tidak, anda tidak memerlukan alamat e-mel saya yang sebenar. 743 00:33:18,720 --> 00:33:21,820 Atau mungkin kita hanya akan mengatakan mel dalam sana. 744 00:33:21,820 --> 00:33:25,080 Kata laluan akan, seperti, 12345. 745 00:33:25,080 --> 00:33:28,810 Dan kemudian, hanya kerana saya bodoh, kini ia adalah 123456789. 746 00:33:28,810 --> 00:33:31,150 Dan saya tidak akan semak kotak anda. 747 00:33:31,150 --> 00:33:31,850 >> Hmm. 748 00:33:31,850 --> 00:33:32,350 Baiklah. 749 00:33:32,350 --> 00:33:34,920 Jadi ada beberapa peluang untuk penambahbaikan di sini. 750 00:33:34,920 --> 00:33:39,070 Dan anda tahu, atau akan melihat dalam pset tujuh, yang anda boleh menulis code-- 751 00:33:39,070 --> 00:33:41,890 dan anda akan mempunyai untuk menulis kod dalam PHP-- untuk mempertahankan 752 00:33:41,890 --> 00:33:45,780 terhadap jenis-jenis pengguna kesilapan kerana pengguna dengan jelas 753 00:33:45,780 --> 00:33:46,790 tidak bekerjasama. 754 00:33:46,790 --> 00:33:49,680 Dan dia tidak memberikan anda semua nilai-nilai yang anda mahu atau dalam format yang 755 00:33:49,680 --> 00:33:50,630 yang anda mahu mereka. 756 00:33:50,630 --> 00:33:53,250 Jadi, anda akan melihat dalam pset tujuh yang kita pasti boleh mempunyai beberapa 757 00:33:53,250 --> 00:33:55,680 jika keadaan yang mengatakan jika alamat e-mel 758 00:33:55,680 --> 00:33:59,450 tidak username@something.edu yang, kita boleh hanya 759 00:33:59,450 --> 00:34:02,575 memohon maaf dan meminta maaf kepada pengguna banyak, seperti yang anda mungkin berada di dalam pset tujuh. 760 00:34:02,575 --> 00:34:05,700 Atau jika mereka telah tidak diperiksa kotak itu, ternyata dalam PHP, anda boleh mengesan itu, 761 00:34:05,700 --> 00:34:06,200 juga. 762 00:34:06,200 --> 00:34:09,389 Dan demi sesungguhnya, jika kata laluan tidak sama seperti dalam register.php 763 00:34:09,389 --> 00:34:11,521 untuk pset tujuh, anda boleh mengesan itu. 764 00:34:11,521 --> 00:34:13,770 Tetapi itu sakit di leher yang kini mereka meminta 765 00:34:13,770 --> 00:34:15,510 kita untuk pergi sepanjang jalan ke pelayan. 766 00:34:15,510 --> 00:34:17,053 Pengguna ini dimaklumkan mengenai kesilapan itu. 767 00:34:17,053 --> 00:34:19,219 Dan sekurang-kurangnya melainkan jika anda menggunakan beberapa teknik penjaga, 768 00:34:19,219 --> 00:34:20,929 kini mereka perlu klik anak panah ke belakang. 769 00:34:20,929 --> 00:34:23,300 Bukankah lebih baik, seperti banyak laman web hari ini, 770 00:34:23,300 --> 00:34:26,190 jika anda mempunyai lebih segera maklum balas, serta-merta? 771 00:34:26,190 --> 00:34:31,389 >> Dalam erti kata lain, saya pergi kepada versi satu, yang akan menjadi tidak cantik. 772 00:34:31,389 --> 00:34:33,469 Tetapi ia mempunyai ciri-ciri ini. 773 00:34:33,469 --> 00:34:39,590 Malan, 12345, 123456789, tidak akan menyemak kotak, Daftar. 774 00:34:39,590 --> 00:34:41,330 Kata laluan tidak sepadan. 775 00:34:41,330 --> 00:34:44,459 Jadi, walaupun ini Pop-up adalah ugly-- kita boleh menggantikan ini akhirnya 776 00:34:44,459 --> 00:34:47,000 dengan sesuatu seperti Bootstrap, yang anda akan lihat dalam pset tujuh 777 00:34:47,000 --> 00:34:50,239 adalah library-- sangat popular yang saya lakukan mengesan bahawa kata laluan tidak sepadan. 778 00:34:50,239 --> 00:34:50,739 Baiklah. 779 00:34:50,739 --> 00:34:52,530 Baiklah, biar saya menetapkan bahawa sebagai pengguna. 780 00:34:52,530 --> 00:34:55,460 Biar saya pergi ke hadapan dan berkata 12345, 12345. 781 00:34:55,460 --> 00:34:57,780 Masih tidak menyemak perjanjian. 782 00:34:57,780 --> 00:35:00,210 Anda mesti bersetuju dengan terma dan syarat. 783 00:35:00,210 --> 00:35:01,760 Jadi mengapa? 784 00:35:01,760 --> 00:35:04,100 >> Jika kita sudah dikemukakan bahawa ada cara yang, 785 00:35:04,100 --> 00:35:07,260 dan kami telah dikehendaki anda Serangga tujuh untuk mengesan ralat 786 00:35:07,260 --> 00:35:09,780 keadaan seperti ini pelayan, apa guna aku 787 00:35:09,780 --> 00:35:13,940 mengganggu juga melakukan ini dalam JavaScript? 788 00:35:13,940 --> 00:35:15,850 Apakah hujah dalam memihak kepada menambah apa 789 00:35:15,850 --> 00:35:18,760 anda kira-kira untuk melihat sebagai some-- ada kerumitan tambahan. 790 00:35:18,760 --> 00:35:23,610 791 00:35:23,610 --> 00:35:25,930 >> Mungkin tidak ada terbalik. 792 00:35:25,930 --> 00:35:26,924 Apa yang boleh? 793 00:35:26,924 --> 00:35:27,840 PENONTON: [didengar]. 794 00:35:27,840 --> 00:35:31,132 795 00:35:31,132 --> 00:35:32,340 DAVID MALAN: Oh, menarik. 796 00:35:32,340 --> 00:35:33,530 Eksploitasi berpotensi. 797 00:35:33,530 --> 00:35:37,540 Begitu yakin, jika anda tidak mengendalikan input pengguna salah yang besar, 798 00:35:37,540 --> 00:35:40,170 mungkin ia semua lebih baik jika ia tidak pun mencapai pelayan anda. 799 00:35:40,170 --> 00:35:42,160 Saya akan menolak kembali ke sana dan katakan, anda harus mungkin 800 00:35:42,160 --> 00:35:43,284 menetapkan kedua-dua masalah tersebut. 801 00:35:43,284 --> 00:35:44,140 Tetapi itu adil. 802 00:35:44,140 --> 00:35:44,710 Apa lagi? 803 00:35:44,710 --> 00:35:45,626 >> PENONTON: [didengar]. 804 00:35:45,626 --> 00:35:47,970 805 00:35:47,970 --> 00:35:49,014 >> DAVID MALAN: Ya. 806 00:35:49,014 --> 00:35:51,680 Kod ini, seperti yang kita katakan sebelum ini, adalah ditafsirkan pada pihak pelanggan. 807 00:35:51,680 --> 00:35:53,846 Ia tidak mengganggu pelayan, yang bermakna ia tidak 808 00:35:53,846 --> 00:35:55,930 kesan beban pelayan atau keupayaan. 809 00:35:55,930 --> 00:35:59,840 Dan kini, bagi saya tua sedikit, ini mempunyai kesan yang bermakna 810 00:35:59,840 --> 00:36:01,970 kerana saya mempunyai seorang pengguna sekarang. 811 00:36:01,970 --> 00:36:04,010 >> Tetapi jika anda apa-apa laman web saiz yang baik, 812 00:36:04,010 --> 00:36:07,400 terutamanya yang terbesar, seperti Facebook, lebih banyak anda boleh menyimpan orang luar 813 00:36:07,400 --> 00:36:09,927 pelayan anda yang lebih baik kerana pelayan, sudah tentu, 814 00:36:09,927 --> 00:36:12,510 hanya mempunyai jumlah terhad RAM, beberapa terhingga gigahertz, 815 00:36:12,510 --> 00:36:16,340 beberapa terhingga perkara ia boleh lakukan per unit masa. 816 00:36:16,340 --> 00:36:19,170 Jadi, jika terdapat lebih ramai orang di dunia memukul pelayan anda, 817 00:36:19,170 --> 00:36:21,750 sengaja pembalakan tidak betul, sama dengan baik jika anda 818 00:36:21,750 --> 00:36:23,254 boleh menyimpan beban yang luar pelayan anda. 819 00:36:23,254 --> 00:36:25,420 Plus, terutama di mudah alih device-- jika anda telah pernah 820 00:36:25,420 --> 00:36:29,190 log masuk ke my.harvard atau Netid Yale atau sebagainya, 821 00:36:29,190 --> 00:36:32,330 ada ini kependaman dengan banyak laman web seperti itu di mana yang diperlukan, 822 00:36:32,330 --> 00:36:34,110 seperti, sialan kedua atau dua kadang-kadang. 823 00:36:34,110 --> 00:36:37,979 Dan kemudian, Allahku, jika anda tersilap menaip, maka anda perlu bangkit dan buat semula. 824 00:36:37,979 --> 00:36:40,520 Jadi ada kependaman, terutamanya pada sambungan rangkaian perlahan. 825 00:36:40,520 --> 00:36:43,030 Tetapi JavaScript, kerana ia berjalan di atas pelanggan 826 00:36:43,030 --> 00:36:46,720 dan tidak perlu berulang-alik di internet yang berpotensi perlahan 827 00:36:46,720 --> 00:36:49,780 sambungan, anda boleh mendapatkan maklum balas hampir serta-merta. 828 00:36:49,780 --> 00:36:50,760 >> Jadi mari kita lihat ini. 829 00:36:50,760 --> 00:36:54,280 Biar saya membuka borang-0 dan melihat HTML di sini. 830 00:36:54,280 --> 00:36:56,040 Dan mari kita hanya melihat apa yang sedang berlaku. 831 00:36:56,040 --> 00:36:59,460 Ini adalah satu bentuk yang tindakan register.php. 832 00:36:59,460 --> 00:37:01,530 Saya hanya menggunakan mendapatkan begitu bahawa saya dapat melihat URL. 833 00:37:01,530 --> 00:37:05,030 Tetapi untuk kata laluan, kita pasti akan mahu untuk menukar ini untuk hantar dalam realiti. 834 00:37:05,030 --> 00:37:06,910 Berikut adalah medan input jenis teks. 835 00:37:06,910 --> 00:37:09,050 Berikut adalah input lain bidang kata laluan jenis. 836 00:37:09,050 --> 00:37:13,150 Di sini ialah, jika anda tidak pernah dilihat, input jenis kotak semak. 837 00:37:13,150 --> 00:37:15,250 >> Tetapi tidak ada JavaScript di sini sekalipun. 838 00:37:15,250 --> 00:37:18,170 Ini hanyalah HTML yang pergi ke register.php. 839 00:37:18,170 --> 00:37:21,020 Tetapi dalam versi satu, di mana saya mula mendapatkan orang-orang pop-up, 840 00:37:21,020 --> 00:37:23,010 mari kita lihat apa yang sebenarnya berlaku di sini. 841 00:37:23,010 --> 00:37:26,757 Dalam versi satu, apa Saya akan see-- Saya 842 00:37:26,757 --> 00:37:29,340 fikir saya boleh gerai cukup dengan kata-kata yang cukup, tetapi saya berlari keluar. 843 00:37:29,340 --> 00:37:35,180 844 00:37:35,180 --> 00:37:38,590 >> Dalam versi one-- ada kita pergi. 845 00:37:38,590 --> 00:37:43,180 Dalam versi satu, perasan following-- dan tidak melaksanakan yang terbaik, 846 00:37:43,180 --> 00:37:44,420 tetapi ia pertama saya. 847 00:37:44,420 --> 00:37:47,680 Perhatikan bahawa di bawah bentuk, saya mempunyai tag skrip. 848 00:37:47,680 --> 00:37:49,430 Dan tag skrip bermaksud, hey, pelayar, di sini 849 00:37:49,430 --> 00:37:52,340 datang beberapa kod di, biasanya, JavaScript. 850 00:37:52,340 --> 00:37:54,420 Dan kini, melihat apa yang saya lakukan. 851 00:37:54,420 --> 00:37:59,070 Pada garis ini-- saya boleh hampir tidak membaca kitab itu beratur 32, ia berkata, 852 00:37:59,070 --> 00:38:01,420 var supaya form-- memberi saya pembolehubah yang dipanggil bentuk. 853 00:38:01,420 --> 00:38:05,049 Dan kemudian mendapatkan document.getElementId "pendaftaran." 854 00:38:05,049 --> 00:38:05,590 Apakah ini? 855 00:38:05,590 --> 00:38:07,290 Baiklah, biar saya putar balik di sini. 856 00:38:07,290 --> 00:38:11,510 Dan notis, ah, saya memberikan bentuk elemen idea sewenang-wenangnya tetapi deskriptif 857 00:38:11,510 --> 00:38:13,050 pendaftaran. 858 00:38:13,050 --> 00:38:16,820 Jadi ini memberikan saya pembolehubah yang membolehkan saya untuk merebut nod itu, 859 00:38:16,820 --> 00:38:19,580 yang segi empat tepat di pokok yang dipanggil bentuk. 860 00:38:19,580 --> 00:38:24,460 cara form.onsubmit, hey pelayar, mendaftar pendengar acara 861 00:38:24,460 --> 00:38:25,470 dalam borang ini. 862 00:38:25,470 --> 00:38:28,890 Dalam erti kata lain, apabila borang ini adalah dikemukakan, melaksanakan kod berikut. 863 00:38:28,890 --> 00:38:30,810 Ia tidak memerlukan nama kerana mengapa anda perlu tahu nama? 864 00:38:30,810 --> 00:38:32,880 Anda hanya perlu tahu apa yang perlu melaksanakan, ergo 865 00:38:32,880 --> 00:38:35,610 ia adalah satu fungsi tanpa nama atau lambda. 866 00:38:35,610 --> 00:38:37,632 Dan fungsi yang semua ayat-ayat ini di sini. 867 00:38:37,632 --> 00:38:40,840 Oleh sebab itu, untuk menjadi jujur, walaupun anda mungkin belum pernah ditulis JavaScript 868 00:38:40,840 --> 00:38:44,200 sebelum ini, ia hanya C dan PHP logik. 869 00:38:44,200 --> 00:38:51,720 Jadi, jika form.email.value == "" - jadi jika bidang e-mel yang kosong, 870 00:38:51,720 --> 00:38:54,980 menjerit pada pengguna dengan "Anda mesti Alamat e-mel anda. " 871 00:38:54,980 --> 00:38:58,980 Lain jika form.password.value adalah menjerit kosong pada pengguna, 872 00:38:58,980 --> 00:39:00,400 "Anda perlu menyediakan kata laluan anda." 873 00:39:00,400 --> 00:39:04,240 >> Lebih menarik secara logik, jika form.password.value tidak 874 00:39:04,240 --> 00:39:08,630 form.confirmation.value-- sama di mana yang pengesahan datang? 875 00:39:08,630 --> 00:39:09,470 Biar saya putar balik. 876 00:39:09,470 --> 00:39:12,870 Well, saya dipanggil input ini bidang di sini kata laluan. 877 00:39:12,870 --> 00:39:15,180 Dan saya memanggil salah ini di sini pengesahan. 878 00:39:15,180 --> 00:39:17,850 Saya boleh memanggilnya kata dua atau apa-apa lagi. 879 00:39:17,850 --> 00:39:20,560 Saya hanya logik memeriksa bahawa kedua-dua adalah sama. 880 00:39:20,560 --> 00:39:25,760 Else-- ternyata ini adalah Encik Boole again-- nilai Boolean, kotak semak. 881 00:39:25,760 --> 00:39:29,810 Jadi, jika saya katakan, seru point-- jika tidak form.agreement.checked, 882 00:39:29,810 --> 00:39:31,820 menjerit pada pengguna juga. 883 00:39:31,820 --> 00:39:34,470 >> Jadi sintaks ini, anda akan lihat adalah perkara biasa dalam JavaScript, 884 00:39:34,470 --> 00:39:35,970 di mana anda perlu notasi putus-putus ini. 885 00:39:35,970 --> 00:39:37,460 Anda bermula dengan objek di sini. 886 00:39:37,460 --> 00:39:41,430 Anda menyelam lebih dalam untuk ke harta seperti kata laluan. 887 00:39:41,430 --> 00:39:43,280 Dan kemudian anda dapat di nilai sebenar. 888 00:39:43,280 --> 00:39:45,830 Dan sekali lagi, di sini adalah input. 889 00:39:45,830 --> 00:39:47,310 Berikut adalah kata nama. 890 00:39:47,310 --> 00:39:50,860 Dan nilai adalah apa sahaja manusia sebenarnya telah ditaip. 891 00:39:50,860 --> 00:39:53,610 >> Jadi, dalam semua ini kes, saya pulang palsu. 892 00:39:53,610 --> 00:39:55,800 Tetapi jika tidak, saya kembali benar. 893 00:39:55,800 --> 00:39:58,030 Dan sekarang kita melihat penggunaan menarik apabila 894 00:39:58,030 --> 00:40:00,620 anda akan kembali palsu kepada menghentikan apa pengguna yang melakukan 895 00:40:00,620 --> 00:40:03,200 dan membuat dia atau dia memilih lagi atau menaip lagi. 896 00:40:03,200 --> 00:40:05,870 Jika tidak, kita kembali benar. 897 00:40:05,870 --> 00:40:08,585 >> Dan biarlah saya memperkenalkan satu varian lain ini hanya 898 00:40:08,585 --> 00:40:13,140 benih sedikit pemahaman daripadanya. 899 00:40:13,140 --> 00:40:16,850 Nah, dalam versi 2 ini, bentuk-2-- Saya akan melakukannya dengan gelombang tangan. 900 00:40:16,850 --> 00:40:19,920 Ini, bagi mereka yang ingin tahu, versi jQuery, 901 00:40:19,920 --> 00:40:23,330 Persekitaran yang mungkin mahu melibatkan diri dalam perpustakaan tersebut. 902 00:40:23,330 --> 00:40:25,145 Tetapi mari kita start-- dan apa-apa soalan? 903 00:40:25,145 --> 00:40:29,230 Biar saya fikir seketika kerana yang pantas dan banyak. 904 00:40:29,230 --> 00:40:32,610 >> Tetapi perkara yang baik di sini ialah semua kod ini cukup banyak yang sama. 905 00:40:32,610 --> 00:40:33,985 The barangan baru adalah apa yang dom ini? 906 00:40:33,985 --> 00:40:35,115 Apakah segi empat tepat ini? 907 00:40:35,115 --> 00:40:35,990 Apakah nod ini? 908 00:40:35,990 --> 00:40:37,540 Apakah fungsi tanpa nama? 909 00:40:37,540 --> 00:40:38,830 Apakah yang dimaksudkan dengan pengendali peristiwa? 910 00:40:38,830 --> 00:40:43,480 Tetapi bersyukur kerana, kebanyakan yang hanya bulatan penuh daripada, katakan, minggu sifar. 911 00:40:43,480 --> 00:40:43,980 Baiklah. 912 00:40:43,980 --> 00:40:46,070 Jadi sesuatu yang sedikit lebih menarik? 913 00:40:46,070 --> 00:40:49,340 Well, pertama sekali, saya pergi hadapan dan membuka Peta Google. 914 00:40:49,340 --> 00:40:53,360 Dan anda akan melihat bahawa untuk masa, pada kedua perpecahan, 915 00:40:53,360 --> 00:40:55,930 melihat apa yang berlaku apabila Saya klik cukup pantas. 916 00:40:55,930 --> 00:40:59,720 Dan hal ini di Harvard begitu cepat bahawa anda tidak benar-benar menyedarinya. 917 00:40:59,720 --> 00:41:04,469 Tetapi apa yang anda jenis jenis melihat jika saya klik dan seret dengan pantas? 918 00:41:04,469 --> 00:41:07,010 Orang-orang menonton dalam talian, jika anda memperlahankan ini kepada kelajuan 0.5x, 919 00:41:07,010 --> 00:41:09,640 anda boleh melihat ini lebih baik. 920 00:41:09,640 --> 00:41:13,550 >> Apa yang berlaku hanya sebelum saya klik dan mengheret? 921 00:41:13,550 --> 00:41:15,900 Biar saya cuba sini-- biar saya sesuatu yang lain, seperti 90210. 922 00:41:15,900 --> 00:41:17,550 Mari kita pergi jauh. 923 00:41:17,550 --> 00:41:19,000 Itu adalah benar-benar cepat juga. 924 00:41:19,000 --> 00:41:22,460 Bagaimana pula dengan Disney World? 925 00:41:22,460 --> 00:41:23,190 Di sana kami pergi. 926 00:41:23,190 --> 00:41:23,690 OKAY. 927 00:41:23,690 --> 00:41:26,030 Apa yang anda lihat untuk kedua perpecahan? 928 00:41:26,030 --> 00:41:27,200 Hanya, seperti, kuasa dua, bukan? 929 00:41:27,200 --> 00:41:28,930 Pemegang tempat untuk jubin? 930 00:41:28,930 --> 00:41:30,270 >> Nah, apa yang berlaku di sini? 931 00:41:30,270 --> 00:41:35,410 Peta Google adalah contoh yang bagus teknologi ini yang dinamakan AJAX. 932 00:41:35,410 --> 00:41:38,510 Dan di sinilah kita akan mula menggunakan JavaScript dalam terutamanya 933 00:41:38,510 --> 00:41:39,277 cara memikat. 934 00:41:39,277 --> 00:41:41,610 Kembali pada hari, terdapat Laman web ini dipanggil MapQuest. 935 00:41:41,610 --> 00:41:44,120 Dan dapat pula aku mengambil screenshot ini dari tahun 1990-an, 936 00:41:44,120 --> 00:41:45,820 di mana jika anda mahu kelihatan di sini pada peta, 937 00:41:45,820 --> 00:41:48,590 anda benar-benar akan klik anak panah sehingga di bahagian atas yang menunjukkan anda 938 00:41:48,590 --> 00:41:49,870 persegi yang berlainan peta. 939 00:41:49,870 --> 00:41:51,790 Jika anda mahu untuk bergerak ke kiri, anda klik anak panah yang menunjukkan anda 940 00:41:51,790 --> 00:41:53,210 persegi yang berlainan peta. 941 00:41:53,210 --> 00:41:54,840 Dan beberapa laman web yang masih lakukan hari ini. 942 00:41:54,840 --> 00:41:57,820 Tetapi MapQuest telah mendapat yang lebih baik, seperti Peta Google. 943 00:41:57,820 --> 00:42:01,880 >> Sebaliknya, apa yang lebih baik ini hari adalah laman web yang menggunakan AJAX. 944 00:42:01,880 --> 00:42:04,510 AJAX-- atau dikenali sebagai Asynchronous JavaScript dan XML, 945 00:42:04,510 --> 00:42:08,370 yang hanya satu cara mewah untuk mengatakan teknologi atau teknik yang 946 00:42:08,370 --> 00:42:14,200 membolehkan pelayar menggunakan JavaScript untuk membuat permintaan HTTP tambahan 947 00:42:14,200 --> 00:42:16,390 selepas halaman telah dimuatkan. 948 00:42:16,390 --> 00:42:17,479 Jadi apa maknanya? 949 00:42:17,479 --> 00:42:19,270 Nah, ia akan berbuat baik menjengkelkan dalam Gmail 950 00:42:19,270 --> 00:42:21,103 jika setiap kali anda mahu untuk memeriksa mel anda, 951 00:42:21,103 --> 00:42:24,940 anda telah benar-benar memukul Kawalan-R atau Perintah-R atau klik butang Muat semula yang 952 00:42:24,940 --> 00:42:26,580 dan halaman darn keseluruhan akan menambah nilai. 953 00:42:26,580 --> 00:42:26,800 Betul? 954 00:42:26,800 --> 00:42:28,460 Ia akan berkelip putih mungkin untuk kali kedua. 955 00:42:28,460 --> 00:42:30,043 Anda akan melihat bar kemajuan bodoh. 956 00:42:30,043 --> 00:42:33,170 Dan hanya untuk melihat jika anda mempunyai baru mel, laman web keseluruhan dan URL 957 00:42:33,170 --> 00:42:34,580 anda berada di perlu untuk menambah nilai. 958 00:42:34,580 --> 00:42:35,960 >> Tetapi itu bukan apa yang berlaku dalam Gmail. 959 00:42:35,960 --> 00:42:36,459 Betul? 960 00:42:36,459 --> 00:42:40,300 Apabila anda mendapat e-mel baru dalam Gmail, apa yang berlaku pada skrin? 961 00:42:40,300 --> 00:42:41,480 Ia hanya muncul, bukan? 962 00:42:41,480 --> 00:42:44,280 Ia hanya ajaib muncul sebagai baris baru dalam jadual. 963 00:42:44,280 --> 00:42:47,030 Yang benar-benar melibatkan jumlah yang layak kerumitan. 964 00:42:47,030 --> 00:42:51,892 Malah, jika anda berfikir tentang pokok ini, yang walaupun adalah satu yang mudah di sini, 965 00:42:51,892 --> 00:42:54,100 Gmail-- dan saya perlu melihat pada kod menjadi sure-- 966 00:42:54,100 --> 00:42:58,710 mungkin mempunyai jadual HTML atau mungkin senarai tidak tertib bahawa ia menyebabkan 967 00:42:58,710 --> 00:43:01,060 setiap peti masuk e-mel anda sebagai. 968 00:43:01,060 --> 00:43:04,050 >> Dan jadi jika anda bayangkan ini terdapat adalah pokok dalam ingatan apabila anda berada 969 00:43:04,050 --> 00:43:09,050 menggunakan Gmail yang kelihatan jenis jenis seperti ini, apabila Google menyedari, aduh, 970 00:43:09,050 --> 00:43:12,770 anda mempunyai e-mel baru, ia tidak mahu untuk membina semula keseluruhan pokok. 971 00:43:12,770 --> 00:43:16,430 Sebaliknya, ia mahu mencari nod dalam pokok yang mewakili peti masuk anda 972 00:43:16,430 --> 00:43:18,580 dan hanya memasukkan nod baru. 973 00:43:18,580 --> 00:43:24,640 >> Jadi hampir sama dengan Serangga lima, di mana anda terpaksa memasukkan nod ke dalam jadual hash, 974 00:43:24,640 --> 00:43:28,410 begitu juga tidak Google, melalui Kod JavaScript yang ia telah menulis, 975 00:43:28,410 --> 00:43:31,890 traverse pokok ini, memikirkan di mana adalah bahawa peti masuk sebahagian daripada tingkap, 976 00:43:31,890 --> 00:43:33,440 dan kemudian memasukkan baris baru. 977 00:43:33,440 --> 00:43:37,460 Dan baris baru hanya bermakna satu atau lebih nod baru di pokok. 978 00:43:37,460 --> 00:43:41,340 >> Dan sebagainya AJAX adalah teknik ini yang membolehkan perkara tersebut. 979 00:43:41,340 --> 00:43:44,440 Sebaik sahaja anda telah lawati URL, bagaimanapun gila lama ia adalah, 980 00:43:44,440 --> 00:43:46,472 dan apabila halaman yang mempunyai telah dimuatkan, anda masih boleh 981 00:43:46,472 --> 00:43:48,430 merebut lebih banyak data daripada internet-- sama ada 982 00:43:48,430 --> 00:43:52,460 e-mel atau jubin map-- yang merebut belakang tabir 983 00:43:52,460 --> 00:43:55,290 dan kemudian masukkannya ke dalam halaman supaya manusia tidak benar-benar 984 00:43:55,290 --> 00:43:56,910 perlu menunggu untuk itu. 985 00:43:56,910 --> 00:43:58,980 >> Facebook Messenger berfungsi dengan cara yang sama. 986 00:43:58,980 --> 00:44:01,562 Apa-apa bilangan websites-- lain oh, sebenarnya, walaupun ini. 987 00:44:01,562 --> 00:44:04,270 Maksud saya, ini adalah, terus-terang, jenis yang menjengkelkan menampilkan hari ini. 988 00:44:04,270 --> 00:44:07,500 Jika saya mula mencari cats-- ini adalah jenis pengalaman pengguna yang dahsyat. 989 00:44:07,500 --> 00:44:08,990 Ia hanya mula mencari untuk saya. 990 00:44:08,990 --> 00:44:10,050 Juga apa yang ia buat? 991 00:44:10,050 --> 00:44:12,920 URL tidak benar-benar berubah sejak saya mula menaip. 992 00:44:12,920 --> 00:44:17,330 Tetapi apa yang berlaku di seluruh wire-- OK, hmm menarik. 993 00:44:17,330 --> 00:44:20,470 Apa yang berlaku di seluruh wayar di sini hanya mendapat aneh. 994 00:44:20,470 --> 00:44:21,090 >> OKAY. 995 00:44:21,090 --> 00:44:24,670 Jadi biarlah saya pergi ke hadapan dan memeriksa elemen dan pergi ke tab Rangkaian 996 00:44:24,670 --> 00:44:27,040 dan cuba untuk membuat ini teknikal dan kurang tentang kucing. 997 00:44:27,040 --> 00:44:32,595 Kerana saya menaip, secara literal, kucing dan- apa yang berlaku 998 00:44:32,595 --> 00:44:37,710 per-- Saya tidak akan klik itu. 999 00:44:37,710 --> 00:44:38,210 Baiklah. 1000 00:44:38,210 --> 00:44:44,280 Jadi turun di sini, apa yang berlaku setiap masa saya menaip watak, nampaknya? 1001 00:44:44,280 --> 00:44:45,000 Seperti, tahap rendah? 1002 00:44:45,000 --> 00:44:47,860 Apa yang berlaku dengan setiap orang-orang Watak saya menaip di papan kekunci saya? 1003 00:44:47,860 --> 00:44:48,359 Ya? 1004 00:44:48,359 --> 00:44:50,950 PENONTON: [didengar]. 1005 00:44:50,950 --> 00:44:52,340 >> DAVID MALAN: Tepat sekali. 1006 00:44:52,340 --> 00:44:55,600 Setiap satu daripada watak-watak adalah pergi ke Google, satu demi satu. 1007 00:44:55,600 --> 00:44:58,490 Mereka membina rentetan pada pelayan mereka yang mewakili 1008 00:44:58,490 --> 00:44:59,936 semua yang saya telah ditaip setakat ini. 1009 00:44:59,936 --> 00:45:01,810 Dan setiap kali saya menaip watak lain, mereka 1010 00:45:01,810 --> 00:45:04,530 menggunakan sos rahsia mereka daripada mencari algoritma dan memikirkan, 1011 00:45:04,530 --> 00:45:07,370 ia tidak bermakna halaman kucing ini atau ini halaman kucing atau sebagainya? 1012 00:45:07,370 --> 00:45:10,620 Jadi dalam erti kata lain, ia menyediakan saya dengan pengalaman yang lebih baik dalam bahawa saya tidak melakukan lebih 1013 00:45:10,620 --> 00:45:11,860 perlu melengkapkan pemikiran saya. 1014 00:45:11,860 --> 00:45:14,440 Dan sesungguhnya, ia adalah berguna perkara, auto-lengkap secara umum. 1015 00:45:14,440 --> 00:45:17,690 Jika algoritma mereka cukup baik dan jika carian saya cukup jelas, 1016 00:45:17,690 --> 00:45:19,300 Saya tidak perlu menaip perkataan penuh. 1017 00:45:19,300 --> 00:45:22,110 Mereka akan beritahu saya apa yang ia adalah saya sebenarnya mencari. 1018 00:45:22,110 --> 00:45:25,940 Jadi apa yang Google panggilan segera carian hanya menggunakan AJAX, 1019 00:45:25,940 --> 00:45:30,820 menggunakan kod yang membolehkan mereka untuk meminta kandungan tambahan melalui pelayar web 1020 00:45:30,820 --> 00:45:34,026 di belakang tabir menggunakan ini bahasa baru, JavaScript. 1021 00:45:34,026 --> 00:45:35,400 Oleh itu, kita mempunyai beberapa minit. 1022 00:45:35,400 --> 00:45:37,710 Dan biarlah saya memanggil rakan saya Colton naik ke atas pentas, 1023 00:45:37,710 --> 00:45:40,090 kerana ia seolah-olah terutamanya menyeronokkan masa lalu 1024 00:45:40,090 --> 00:45:42,290 untuk memperkenalkan teknologi sebahagian dari anda 1025 00:45:42,290 --> 00:45:44,769 telah menunjukkan minat yang dalam untuk projek akhir. 1026 00:45:44,769 --> 00:45:47,310 Kami fikir ia akan menjadi seronok untuk membawa sehingga sukarelawan, walaupun, hari ini 1027 00:45:47,310 --> 00:45:50,074 menunjukkan tambahan kepada ini yang membolehkan atasmu, ya, 1028 00:45:50,074 --> 00:45:50,990 Saya melihat tangan ini pertama. 1029 00:45:50,990 --> 00:45:52,900 Naiklah. 1030 00:45:52,900 --> 00:45:53,560 Sangat baik dilakukan. 1031 00:45:53,560 --> 00:45:55,035 Kerja yang baik. 1032 00:45:55,035 --> 00:45:57,410 Saya akan projek ini di skrin dalam hanya seketika. 1033 00:45:57,410 --> 00:45:58,150 Apa nama anda untuk semua orang? 1034 00:45:58,150 --> 00:45:59,180 >> EFA: Saya Efa. 1035 00:45:59,180 --> 00:45:59,410 >> DAVID MALAN: Etha? 1036 00:45:59,410 --> 00:45:59,785 >> EFA: Efa. 1037 00:45:59,785 --> 00:46:00,160 >> DAVID MALAN: Efa? 1038 00:46:00,160 --> 00:46:00,730 >> EFA: Ya. 1039 00:46:00,730 --> 00:46:01,250 >> DAVID MALAN: Nice melihat anda. 1040 00:46:01,250 --> 00:46:01,600 Baiklah. 1041 00:46:01,600 --> 00:46:02,590 Biar saya mendapatkan ini bersedia. 1042 00:46:02,590 --> 00:46:04,423 Datang pada lebih kepada pertengahan dengan Colton sini. 1043 00:46:04,423 --> 00:46:07,050 Apa Colton mempunyai di tangannya hari ini adalah satu kawalan jauh. 1044 00:46:07,050 --> 00:46:10,440 Jadi, daripada hanya berdiri di sana dalam dunia tiga dimensi melihat- 1045 00:46:10,440 --> 00:46:14,080 sebagai Colton lakukan, kini Efa boleh sebenarnya berjalan dengan pergi ke atas, 1046 00:46:14,080 --> 00:46:16,689 bawah, kiri dan kanan seperti Nintendo atau Xbox pengawal. 1047 00:46:16,689 --> 00:46:18,230 EFA: Saya akan jatuh pentas. 1048 00:46:18,230 --> 00:46:20,500 DAVID MALAN: Aku kehendaki berdiri secara kasar di sini. 1049 00:46:20,500 --> 00:46:21,991 Tetapi itu adalah risiko. 1050 00:46:21,991 --> 00:46:22,490 OKAY. 1051 00:46:22,490 --> 00:46:25,690 Jadi teruskan dan meletakkan mereka pada. 1052 00:46:25,690 --> 00:46:29,315 Biar saya pergi ke hadapan dan beralih kepada skrin di sini. 1053 00:46:29,315 --> 00:46:30,670 Biar saya meredupkan. 1054 00:46:30,670 --> 00:46:32,780 Dan Colton, biarlah saya datang berdiri di sebelah anda. 1055 00:46:32,780 --> 00:46:35,520 >> Adakah anda ingin jelaskan di sini dengan mikrofon apa yang kita lakukan? 1056 00:46:35,520 --> 00:46:36,380 Di sini anda pergi. 1057 00:46:36,380 --> 00:46:37,280 >> COLTON: Pasti. 1058 00:46:37,280 --> 00:46:39,980 Jadi sekarang kita memuatkan Oculus, 1059 00:46:39,980 --> 00:46:43,070 Saya rasa operating-- tidak beroperasi sistem, tetapi program utama, di mana 1060 00:46:43,070 --> 00:46:46,630 anda boleh mengakses semua permainan dan aplikasi yang berada di dalam perpustakaan anda. 1061 00:46:46,630 --> 00:46:50,060 Jadi sekarang, ada yang berkata ketuk pad sentuh untuk bermula. 1062 00:46:50,060 --> 00:46:53,430 Touchpad akan berada di kanan alat dengar. 1063 00:46:53,430 --> 00:46:54,569 Jadi teruskan dan tap-- 1064 00:46:54,569 --> 00:46:55,110 EFA: Oh, manusia. 1065 00:46:55,110 --> 00:46:56,443 DAVID MALAN: Ya, ada anda pergi. 1066 00:46:56,443 --> 00:47:00,340 1067 00:47:00,340 --> 00:47:02,460 Kualiti Efa adalah melihat adalah kualiti yang lebih tinggi. 1068 00:47:02,460 --> 00:47:03,831 Ini hanyalah Wi-Fi di sini. 1069 00:47:03,831 --> 00:47:05,580 COLTON: Jadi apa yang anda akan mahu lakukan 1070 00:47:05,580 --> 00:47:08,350 adalah melihat ke arah bahagian atas kanan skrin. 1071 00:47:08,350 --> 00:47:10,420 Yep, bahawa permainan di sebelah kanan paling atas. 1072 00:47:10,420 --> 00:47:14,780 Dan kemudian apabila anda memilih , ketik pad sentuh lagi. 1073 00:47:14,780 --> 00:47:17,010 Saya rasa Dreadhalls itu. 1074 00:47:17,010 --> 00:47:20,820 Dan kemudian di sini adalah a-- sini, mari saya memegang cermin mata anda untuk anda. 1075 00:47:20,820 --> 00:47:24,420 1076 00:47:24,420 --> 00:47:25,790 >> Jadi saya hanya memberinya pengawal. 1077 00:47:25,790 --> 00:47:28,886 Oleh sebab itu dia boleh mengawal permainan. 1078 00:47:28,886 --> 00:47:30,510 Dia boleh bergerak dan barangan seperti itu. 1079 00:47:30,510 --> 00:47:31,968 Jadi teruskan dan memandang ke atas. 1080 00:47:31,968 --> 00:47:33,640 Anda akan dapat melihat Permainan Baru. 1081 00:47:33,640 --> 00:47:36,310 Jadi teruskan dan anda boleh berbuat demikian. 1082 00:47:36,310 --> 00:47:39,320 Sekarang, anda akan dapat untuk mengawal diri anda dengan pengawal, 1083 00:47:39,320 --> 00:47:43,860 juga, dengan seberapa segera yang permainan memuatkan di sini. 1084 00:47:43,860 --> 00:47:46,356 Ini mungkin menjadi sedikit menakutkan. 1085 00:47:46,356 --> 00:47:47,300 >> EFA: Sekarang anda beritahu saya. 1086 00:47:47,300 --> 00:47:50,132 OKAY. 1087 00:47:50,132 --> 00:47:51,080 >> COLTON: Baiklah. 1088 00:47:51,080 --> 00:47:52,650 Jadi mengesahkan bahawa anda boleh bergerak. 1089 00:47:52,650 --> 00:47:52,750 OKAY. 1090 00:47:52,750 --> 00:47:53,583 Anda boleh bergerak di sekitar. 1091 00:47:53,583 --> 00:47:54,300 Perfect. 1092 00:47:54,300 --> 00:47:56,470 Jadi, jika anda melihat ke bawah, anda perlu peta. 1093 00:47:56,470 --> 00:47:58,170 Peta menunjukkan kepada anda di mana anda berada. 1094 00:47:58,170 --> 00:47:59,720 Anda boleh melihat sekitar bilik. 1095 00:47:59,720 --> 00:48:01,440 Anda benar-benar boleh pulih. 1096 00:48:01,440 --> 00:48:02,128 Ya, betul-betul. 1097 00:48:02,128 --> 00:48:02,627 Pusing. 1098 00:48:02,627 --> 00:48:05,370 1099 00:48:05,370 --> 00:48:07,125 >> Jadi melihat ke kiri anda. 1100 00:48:07,125 --> 00:48:09,875 Saya fikir ada sesuatu yang anda boleh mengambil di atas tong di dalam bilik. 1101 00:48:09,875 --> 00:48:11,709 >> EFA: Bagaimana untuk saya mendapatkan map keluar dari jalan? 1102 00:48:11,709 --> 00:48:12,375 COLTON: Lihatlah ke atas. 1103 00:48:12,375 --> 00:48:12,980 Lihat sahaja naik. 1104 00:48:12,980 --> 00:48:13,480 Baiklah. 1105 00:48:13,480 --> 00:48:13,765 Itupun dia. 1106 00:48:13,765 --> 00:48:15,181 Sekarang pergi ke depan dan hanya pulih. 1107 00:48:15,181 --> 00:48:21,460 1108 00:48:21,460 --> 00:48:24,620 Oleh itu, mencari lebih jauh ke kiri anda. 1109 00:48:24,620 --> 00:48:25,530 Terus bergerak meninggalkan. 1110 00:48:25,530 --> 00:48:26,960 Teruskan mencari tinggal. 1111 00:48:26,960 --> 00:48:27,541 Teruskan. 1112 00:48:27,541 --> 00:48:28,040 Yeah. 1113 00:48:28,040 --> 00:48:28,720 >> EFA: Oh, begitu. 1114 00:48:28,720 --> 00:48:29,261 >> COLTON: Ya. 1115 00:48:29,261 --> 00:48:30,999 Berjalan ke arah itu dengan pengawal. 1116 00:48:30,999 --> 00:48:31,540 Itupun dia. 1117 00:48:31,540 --> 00:48:32,790 Sekarang ada yang berkata mengambilnya. 1118 00:48:32,790 --> 00:48:33,360 Itupun dia. 1119 00:48:33,360 --> 00:48:34,290 Kutip. 1120 00:48:34,290 --> 00:48:35,550 Baiklah. 1121 00:48:35,550 --> 00:48:38,286 Sekarang, mari kita keluar dari bilik ini. 1122 00:48:38,286 --> 00:48:42,209 Teruskan dan berjalan kaki ke pintu itu. 1123 00:48:42,209 --> 00:48:45,000 Jadi, anda akan hold-- ia berkata tahan butang untuk memaksanya terbuka. 1124 00:48:45,000 --> 00:48:46,333 Jadi teruskan dan tahan butang. 1125 00:48:46,333 --> 00:48:48,250 Yep, memaksanya dibuka. 1126 00:48:48,250 --> 00:48:48,750 Baiklah. 1127 00:48:48,750 --> 00:48:49,410 Kerja yang baik. 1128 00:48:49,410 --> 00:48:50,826 Sekarang kami sedang berjalan keluar dari bilik. 1129 00:48:50,826 --> 00:48:56,970 1130 00:48:56,970 --> 00:49:01,366 Jadi saya akan meninggalkan yang lain sehingga kepada anda dan melihat apa yang anda ketahui. 1131 00:49:01,366 --> 00:49:02,865 EFA: Saya tidak akan di dalam bilik gelap. 1132 00:49:02,865 --> 00:49:07,315 1133 00:49:07,315 --> 00:49:07,815 Oh, tunggu. 1134 00:49:07,815 --> 00:49:09,314 Sekarang saya perlu pergi ke dewan gelap? 1135 00:49:09,314 --> 00:49:10,785 OK, saya akan kembali [didengar]. 1136 00:49:10,785 --> 00:49:15,520 1137 00:49:15,520 --> 00:49:16,270 COLTON: Baiklah. 1138 00:49:16,270 --> 00:49:17,560 Beberapa barangan yang lebih meningkat. 1139 00:49:17,560 --> 00:49:19,370 Nampaknya beberapa syiling. 1140 00:49:19,370 --> 00:49:22,242 Itulah satu kawasan yang paling kunci. 1141 00:49:22,242 --> 00:49:24,200 Jadi, jika anda mencari dikunci pintu, anda boleh menggunakan itu. 1142 00:49:24,200 --> 00:49:27,755 1143 00:49:27,755 --> 00:49:28,380 Adakah anda takut? 1144 00:49:28,380 --> 00:49:29,371 >> EFA: Belum lagi. 1145 00:49:29,371 --> 00:49:29,871 COLTON: OK. 1146 00:49:29,871 --> 00:49:34,850 1147 00:49:34,850 --> 00:49:35,497 >> Pretend-- yeah. 1148 00:49:35,497 --> 00:49:37,330 Hanya berpura-pura anda sebenarnya berdiri di sana. 1149 00:49:37,330 --> 00:49:39,580 Dan jika kamu berpaling around-- anda perlu membiasakan diri dengannya. 1150 00:49:39,580 --> 00:49:40,752 Tetapi ia masuk akal. 1151 00:49:40,752 --> 00:49:43,960 DAVID MALAN: Dan ketika Efa terus bermain, kerana kita boleh melakukan ini sepanjang hari, 1152 00:49:43,960 --> 00:49:45,381 kita semua tip-kaki di sini. 1153 00:49:45,381 --> 00:49:48,130 Tetapi kita mempunyai dua pasang lain, jika anda ingin untuk datang dan bermain. 1154 00:49:48,130 --> 00:49:49,980 Jika tidak, kita akan dapat melihat anda yang akan datang pada hari Rabu. 1155 00:49:49,980 --> 00:49:51,354 Terima kasih kepada sukarelawan kita hari ini. 1156 00:49:51,354 --> 00:49:52,101 [Tepuk tangan] 1157 00:49:52,101 --> 00:49:54,506 1158 00:49:54,506 --> 00:49:57,392 >> [MUZIK - "Seinfeld TEMA"] 1159 00:49:57,392 --> 00:49:58,222 1160 00:49:58,222 --> 00:50:00,180 SPEAKER 1: Baik, saya meletakkan PL baru dipasang pada. 1161 00:50:00,180 --> 00:50:01,800 Saya hanya mengubah OLPF-- 1162 00:50:01,800 --> 00:50:03,980 >> SPEAKER 2: Jadi apa sebenarnya yang anda lakukan? 1163 00:50:03,980 --> 00:50:07,063 >> SPEAKER 1: Sebenarnya, setiap seorang daripada these-- di sini, saya akan menunjukkan kepada anda satu ini di sini. 1164 00:50:07,063 --> 00:50:08,690 Anda boleh melihatnya di sini. 1165 00:50:08,690 --> 00:50:09,510 >> SPEAKER 3: Saya rasa saya baik dengan ini. 1166 00:50:09,510 --> 00:50:09,933 Anda mahu lagi? 1167 00:50:09,933 --> 00:50:11,325 >> SPEAKER 4: Tidak, saya baik. [Didengar]. 1168 00:50:11,325 --> 00:50:12,200 >> SPEAKER 3: Tiada [didengar]. 1169 00:50:12,200 --> 00:50:12,700 Mempunyai beberapa. 1170 00:50:12,700 --> 00:50:21,165 1171 00:50:21,165 --> 00:50:22,290 SPEAKER 1: warna yang berbeza. 1172 00:50:22,290 --> 00:50:22,890 SPEAKER 2: OK. 1173 00:50:22,890 --> 00:50:26,690 SPEAKER 1: Jadi akhirnya apa yang ia tidak adalah ia menyesuaikan warna daripada-