1 00:00:00,000 --> 00:00:05,616 2 00:00:05,616 --> 00:00:07,030 >> HANNAH Blumberg: สวัสดีทุกคน 3 00:00:07,030 --> 00:00:09,530 เรากำลังจะเริ่มต้น เพียงไม่กี่นาทีในช่วงต้น 4 00:00:09,530 --> 00:00:11,738 เนื่องจากเรามีเป็นจำนวนมากทั้ง ของวัสดุที่จะได้รับผ่าน 5 00:00:11,738 --> 00:00:12,790 ฉันฮันนาห์ 6 00:00:12,790 --> 00:00:13,865 ฉัน TF 7 00:00:13,865 --> 00:00:16,239 มาเรียเป็นไปได้ร่วมงานกับ เราในเวลาเพียงไม่กี่นาที 8 00:00:16,239 --> 00:00:17,560 เธอสอนที่เหมาะสมส่วนก่อน 9 00:00:17,560 --> 00:00:19,351 ผมสอนที่เหมาะสมส่วน หลังจากนั้นดังนั้นเราจะ 10 00:00:19,351 --> 00:00:21,200 ที่จะให้มันไปชั่วโมงครึ่ง 11 00:00:21,200 --> 00:00:25,490 >> เพื่อที่คุณจะเห็นได้ที่นี่เรามีค่อนข้าง หัวข้อไม่กี่ที่เราจำเป็นต้องได้รับผ่าน 12 00:00:25,490 --> 00:00:27,200 ดังนั้นเราจะไปนิด ๆ หน่อย ๆ ได้อย่างรวดเร็ว 13 00:00:27,200 --> 00:00:31,140 แต่ถ้าที่จุดใด ๆ ที่เราพูดอะไรบางอย่าง เร็วเกินไปหรือคุณไม่เข้าใจ 14 00:00:31,140 --> 00:00:33,170 อย่าลังเลที่จะขัดขวางการที่มีคำถาม 15 00:00:33,170 --> 00:00:36,610 เราต้องการที่จะสามารถที่จะทำให้เรื่องนี้ ทบทวนเซสชั่นประโยชน์กับทุกท่าน 16 00:00:36,610 --> 00:00:37,973 เป็นไปได้. 17 00:00:37,973 --> 00:00:38,920 ที่น่ากลัว 18 00:00:38,920 --> 00:00:41,650 >> ดังนั้นขอกระโดดด้วย หัวข้อบางอย่างที่เราจริง 19 00:00:41,650 --> 00:00:46,980 มากในเวลาสั้น ๆ ปกคลุมมากสำหรับ 0 ตอบคำถามในการตอบคำถามเซสชั่นรีวิว 0 20 00:00:46,980 --> 00:00:48,840 ดังนั้นเริ่มต้นด้วยรายการที่เชื่อมโยง 21 00:00:48,840 --> 00:00:52,090 ดังนั้นเพียงแค่ให้แน่ใจว่าคุณมีบาง ความรู้พื้นฐานเกี่ยวกับรายการที่เชื่อมโยง 22 00:00:52,090 --> 00:00:55,110 และมีความสะดวกสบายทำ บางส่วนของการดำเนินงานขั้นพื้นฐาน 23 00:00:55,110 --> 00:00:58,560 >> ดังนั้นเพียงแค่เพื่อตรวจสอบการเชื่อมโยง รายการดีกว่าอาร์เรย์ 24 00:00:58,560 --> 00:01:01,020 เพราะพวกเขาสามารถเติบโตแบบไดนามิก 25 00:01:01,020 --> 00:01:03,300 ดังนั้นเราจึงมีประโยชน์มากว่า 26 00:01:03,300 --> 00:01:06,031 เราเคยเห็นพวกเขาใช้ ในตารางแฮชเมื่อเรา 27 00:01:06,031 --> 00:01:08,280 ไม่ทราบว่ากี่ สิ่งที่เราจะต้องการ 28 00:01:08,280 --> 00:01:10,900 เพื่อแทรกลงในโครงสร้างข้อมูลของเรา 29 00:01:10,900 --> 00:01:15,700 แต่น่าเสียดายที่เรามีชิ้นส่วนของ รายการที่เชื่อมโยงทั่วหน่วยความจำ 30 00:01:15,700 --> 00:01:20,820 ดังนั้นเราจะไม่จำเป็นต้องเป็น สามารถที่จะทำเวลาคงเข้าถึง 31 00:01:20,820 --> 00:01:22,502 องค์ประกอบในรายการที่เชื่อมโยงใด ๆ 32 00:01:22,502 --> 00:01:24,210 เพื่อที่จะได้พบกับ องค์ประกอบเฉพาะอย่างยิ่งเรา 33 00:01:24,210 --> 00:01:26,510 ต้องย้ำทั้งหมด ทางจากจุดเริ่มต้น 34 00:01:26,510 --> 00:01:30,610 ดังนั้นเก็บไว้ในใจว่าส่วนใหญ่ของ การดำเนินงานขั้นพื้นฐานมีโอเมก้า 1 35 00:01:30,610 --> 00:01:32,130 ดังนั้นแทรกเป็นเพียงการไปใช้เวลา 1 36 00:01:32,130 --> 00:01:37,520 ลบจะใช้ n ตั้งแต่เรา ต้องไปหาจากรายการ 37 00:01:37,520 --> 00:01:39,260 และการค้นหาอาจจะใช้เวลาที่เลวร้ายที่สุด n 38 00:01:39,260 --> 00:01:42,330 เราไม่สามารถทำสิ่งที่ชอบ การค้นหาแบบไบนารีในรายการที่เชื่อมโยง 39 00:01:42,330 --> 00:01:45,101 เนื่องจากเราไม่สามารถเพียงแค่ สุ่มข้ามไปที่ตรงกลาง 40 00:01:45,101 --> 00:01:45,600 เย็น. 41 00:01:45,600 --> 00:01:48,160 42 00:01:48,160 --> 00:01:48,960 ที่น่ากลัว 43 00:01:48,960 --> 00:01:50,270 >> นิด ๆ หน่อย ๆ ของกอง 44 00:01:50,270 --> 00:01:53,980 นี้อีกครั้งขึ้นมาในการตอบคำถาม 0 เพื่อให้คุณ ควรจะเป็นซุปเปอร์พอใจกับมัน 45 00:01:53,980 --> 00:01:57,210 แต่สำหรับกองเราขอให้คุณ จะจำสแต็คของถาด 46 00:01:57,210 --> 00:01:59,940 และมันก็เป็นไปได้ในครั้งแรกที่มีอายุการใช้งานออก 47 00:01:59,940 --> 00:02:02,272 ดังนั้นเราจึงสแต็คสิ่งขึ้น ในกองแล้ว 48 00:02:02,272 --> 00:02:04,980 ถ้าเรากำลังพยายามที่จะใช้บางสิ่งบางอย่าง off-- ที่เราเรียก popping ออก 49 00:02:04,980 --> 00:02:06,581 stack-- ที่เราออกมาด้านบน 50 00:02:06,581 --> 00:02:09,289 และถ้าเราต้องการที่จะนำบางสิ่งบางอย่าง ในกองเราเรียกว่าการผลักดัน 51 00:02:09,289 --> 00:02:13,170 ดังนั้นจึงมักจะได้รับการเติบโตขึ้น จากด้านล่างเช่นสแต็คของถาดที่ 52 00:02:13,170 --> 00:02:14,540 ที่น่ากลัว 53 00:02:14,540 --> 00:02:17,607 >> เราได้เห็นกองดำเนินการ ที่มีทั้งรายการที่เชื่อมโยงและอาร์เรย์ 54 00:02:17,607 --> 00:02:19,440 หากคุณกำลังดำเนินการ กับอาร์เรย์ที่คุณต้องการ 55 00:02:19,440 --> 00:02:22,350 เพื่อให้แน่ใจว่าในการติดตาม ทั้งขนาดและความจุ 56 00:02:22,350 --> 00:02:27,540 ดังนั้นขนาดเป็นไปได้ในปัจจุบัน จำนวนของสิ่งที่ในกองของคุณ 57 00:02:27,540 --> 00:02:32,900 ในขณะที่กำลังการผลิตเป็นจำนวนรวม สิ่งที่คุณสามารถเก็บไว้ในสแต็คของคุณ 58 00:02:32,900 --> 00:02:34,220 เย็น. 59 00:02:34,220 --> 00:02:35,767 >> มากในทำนองเดียวกันเรามีคิว 60 00:02:35,767 --> 00:02:38,850 ในกรณีนี้แทนการคิดเกี่ยวกับ สแต็คของถาดคิดของบรรทัด 61 00:02:38,850 --> 00:02:40,697 นี้จะเป็นครั้งแรกในครั้งแรกออกมา 62 00:02:40,697 --> 00:02:42,780 ดังนั้นหากคุณกำลังแถวสำหรับ บางสิ่งบางอย่างที่ร้าน 63 00:02:42,780 --> 00:02:46,920 เราหวังว่าคนเป็นครั้งแรกใน สายเป็นไปได้ช่วยครั้งแรก 64 00:02:46,920 --> 00:02:49,350 >> แทนที่จะพูดว่าการผลักดันและ ปรากฏเหมือนที่เราทำสำหรับกอง 65 00:02:49,350 --> 00:02:52,000 เราก็บอกว่า Enqueue และ dequeue 66 00:02:52,000 --> 00:02:54,970 และอีกครั้งถ้าคุณเป็น การดำเนินการนี​​้กับอาร์เรย์ 67 00:02:54,970 --> 00:02:56,720 เราต้องติดตาม ไม่เพียง แต่ขนาด 68 00:02:56,720 --> 00:03:02,390 และความสามารถ แต่ยังหัวซึ่ง เป็นไปได้ที่ด้านหน้าของคิวของเรา 69 00:03:02,390 --> 00:03:03,010 เย็น. 70 00:03:03,010 --> 00:03:05,770 คำถามใด ๆ เกี่ยวกับการใด ๆ ที่? 71 00:03:05,770 --> 00:03:06,320 ที่น่ากลัว 72 00:03:06,320 --> 00:03:07,640 ย้ายขวาพร้อม 73 00:03:07,640 --> 00:03:08,564 >> ตกลงตารางแฮช 74 00:03:08,564 --> 00:03:10,605 นี่คือสิ่งที่มันเริ่มที่จะ ได้รับที่น่าสนใจจริงๆ 75 00:03:10,605 --> 00:03:14,150 ดังนั้นตารางแฮชเป็นหนึ่งในการดำเนินงาน ของอาเรย์ 76 00:03:14,150 --> 00:03:16,700 ดังนั้นโดยทั่วไปสิ่งที่เกิดขึ้น คือเรามีการป้อนข้อมูลทั้งหมดนี้ 77 00:03:16,700 --> 00:03:18,750 และเราจะให้มันกัญชา ฟังก์ชั่นที่ว่า 78 00:03:18,750 --> 00:03:21,840 ตกลงนี้เป็นที่ใน ตารางแฮชมันเป็น 79 00:03:21,840 --> 00:03:24,860 >> ดังนั้นฟังก์ชันแฮชที่ง่ายที่สุด ที่เราได้เห็นเป็นเพียงการพูด 80 00:03:24,860 --> 00:03:28,170 ตกลงสมมติว่าเราต้องการที่จะนำ สตริงในตารางแฮชของเรา 81 00:03:28,170 --> 00:03:30,870 และเป็นความคิดที่ง่ายจริงๆ อาจจะมีการพูดว่าตกลง 82 00:03:30,870 --> 00:03:34,350 ขอเพียงแค่เรียงลำดับโดย ตัวอักษรตัวแรกของคำว่า 83 00:03:34,350 --> 00:03:37,570 ดังนั้นคุณจะเห็นที่นี่เราใช้กล้วย เราใส่มันผ่านฟังก์ชั่นแฮช 84 00:03:37,570 --> 00:03:40,190 และกล่าวว่าเดี๋ยวก่อนว่า ควรจะไปที่ดัชนี 1 85 00:03:40,190 --> 00:03:45,120 >> ดังนั้นเราจึงสามารถคิดหลักของกัญชา ตารางเป็นพวงของถังที่แตกต่างกัน 86 00:03:45,120 --> 00:03:49,880 และแต่ละถังเหล่านั้นเป็นไป จะถือหัวของรายการที่เชื่อมโยง 87 00:03:49,880 --> 00:03:55,030 และในรายการที่เชื่อมโยงว่าเป็นที่ที่เราสามารถ จริงนำชิ้นส่วนที่แตกต่างกันของข้อมูล 88 00:03:55,030 --> 00:03:57,820 >> ดำน้ำเพื่อให้นิด ๆ หน่อย ๆ ในการทำงานกัญชาที่นี่ 89 00:03:57,820 --> 00:03:59,870 ตัวอย่างเช่นฉันเพียงแค่ อธิบายที่เราก็พูดว่า 90 00:03:59,870 --> 00:04:02,460 ตกลงใช้ตัวอักษรตัวแรก ของคำและเรา 91 00:04:02,460 --> 00:04:03,990 จะเรียงลงในถัง 92 00:04:03,990 --> 00:04:08,490 ดังนั้นน่าจะมี 26 ถัง หนึ่งสำหรับแต่ละตัวอักษร 93 00:04:08,490 --> 00:04:10,090 ทำไมไม่ได้นี้ฟังก์ชันแฮชที่ดี? 94 00:04:10,090 --> 00:04:13,461 สิ่งที่ทำให้นี้ไม่เหมาะ? 95 00:04:13,461 --> 00:04:13,960 ใช่. 96 00:04:13,960 --> 00:04:15,790 >> ผู้ชม: คุณจะ ที่จะมีการชนกัน 97 00:04:15,790 --> 00:04:16,390 >> HANNAH Blumberg: ใช่ว่า 98 00:04:16,390 --> 00:04:18,000 คุณกำลังจะมีการชนกัน 99 00:04:18,000 --> 00:04:18,954 เพื่อให้เป็นสิ่งหนึ่ง 100 00:04:18,954 --> 00:04:21,620 และเราจะพูดคุยเกี่ยวกับวิธีการที่เราสามารถทำได้ แก้ไขการชนกันในเวลาเพียงสอง 101 00:04:21,620 --> 00:04:23,980 ปัญหาอีกประการหนึ่งที่มีนี้ ฟังก์ชันแฮชโดยเฉพาะอย่างยิ่ง 102 00:04:23,980 --> 00:04:25,980 คือการที่เราแตกต่างกัน ถังจะไปได้ 103 00:04:25,980 --> 00:04:28,960 ของสวยอย่างเห็นได้ชัดขนาดแตกต่างกัน 104 00:04:28,960 --> 00:04:33,840 >> เรารู้ว่ามีเป็นจำนวนมากทั้ง คำที่ขึ้นต้นด้วยกว่าเอ็กซ์ 105 00:04:33,840 --> 00:04:38,980 ดังนั้นเรากำลังจะมีมาก ถังไม่สมดุลในตารางแฮชของเรา 106 00:04:38,980 --> 00:04:40,050 เย็น. 107 00:04:40,050 --> 00:04:41,340 เพื่อใช่ให้ของได้รับกลับไป จุดของการชน 108 00:04:41,340 --> 00:04:42,900 เราจะทำอย่างไรหากมีการปะทะกันหรือไม่? 109 00:04:42,900 --> 00:04:44,490 >> เรามีตัวเลือกที่แตกต่างกันทั้งคู่ 110 00:04:44,490 --> 00:04:47,600 ดังนั้นหนึ่งจึงคิดว่าเรากำลังพยายาม ที่จะนำผลไม้เล็กลงในตารางแฮชของเรา 111 00:04:47,600 --> 00:04:50,370 และเราจะเห็นโอ้ที่เราต้องการ ที่จะนำมันในดัชนีที่ 1, 112 00:04:50,370 --> 00:04:52,070 แต่กล้วยแล้วอาศัยอยู่ที่นั่น 113 00:04:52,070 --> 00:04:53,110 ที่เรากำลังจะทำอะไร? 114 00:04:53,110 --> 00:04:54,560 เรามีสองตัวเลือกหลัก 115 00:04:54,560 --> 00:04:58,050 >> จำนวนหนึ่งที่เราสามารถพูดได้, OK, มีห้องพักไม่มีในดัชนีที่ 1, 116 00:04:58,050 --> 00:05:03,210 แต่ขอเพียงแค่ให้มองผ่าน จนกว่าเราจะสามารถหาจุดเปิดอีก 117 00:05:03,210 --> 00:05:08,490 ดังนั้นเราจะพูดว่าตกลง ขอวางไว้ในจุดที่ 3 118 00:05:08,490 --> 00:05:09,240 นั่นเป็นหนึ่งในตัวเลือก 119 00:05:09,240 --> 00:05:11,470 ที่เรียกว่าละเอียดเชิงเส้น 120 00:05:11,470 --> 00:05:15,500 >> และเป็นตัวเลือกที่สองคือว่าตกลงกัน ขอเพียงให้แต่ละถังเหล่านี้ 121 00:05:15,500 --> 00:05:17,470 เป็นประมุขของรายการที่เชื่อมโยง 122 00:05:17,470 --> 00:05:21,910 และมันก็ตกลงถ้ามีมากขึ้น มากกว่าหนึ่งสิ่งในถัง 123 00:05:21,910 --> 00:05:23,820 เรากำลังจะไป ผนวกมันลงบนหน้า 124 00:05:23,820 --> 00:05:26,032 ดังนั้นที่นี่คุณสามารถดูตกลง เมื่อเราใส่เบอร์รี่เรา 125 00:05:26,032 --> 00:05:28,240 เพียงแค่เอากล้วยชนิดของ ผลักดันให้มันไปนิด ๆ หน่อย ๆ 126 00:05:28,240 --> 00:05:29,842 และโยนผลไม้เล็ก ๆ อยู่ในนั้น 127 00:05:29,842 --> 00:05:31,050 และนั่นก็ยังดีโดยสิ้นเชิง 128 00:05:31,050 --> 00:05:32,830 นี้เรียกว่าการผูกมัดแยกต่างหาก 129 00:05:32,830 --> 00:05:38,100 คุณสามารถคิดว่านี้เป็นชนิดเช่น อาร์เรย์ของหัวเชื่อมโยงไปยังรายการ 130 00:05:38,100 --> 00:05:41,950 คำถามใด ๆ เกี่ยวกับกัญชา ตารางการทำงานที่กัญชา? 131 00:05:41,950 --> 00:05:44,290 ที่น่ากลัว 132 00:05:44,290 --> 00:05:45,470 >> ต้นไม้และพยายาม 133 00:05:45,470 --> 00:05:47,287 ดังนั้นต้นไม้เป็นประเภทใด ของโครงสร้างข้อมูล 134 00:05:47,287 --> 00:05:49,453 ที่มีการจัดเรียงบาง ของลำดับชั้นหรือบางประเภท 135 00:05:49,453 --> 00:05:51,247 ของการจัดอันดับกับวัตถุที่แตกต่างกันของคุณ 136 00:05:51,247 --> 00:05:53,580 และนี้จะกลายเป็นซูเปอร์ ชัดเจนเมื่อเราเห็นตัวอย่าง 137 00:05:53,580 --> 00:05:56,960 และเราพยายามที่เห็นพร้อม กับตารางแฮชใน pset5-- 138 00:05:56,960 --> 00:06:00,700 ซึ่งอีกเกมที่ยุติธรรมโดยสิ้นเชิง สำหรับ quiz-- นี้เป็นข้อมูลอีก 139 00:06:00,700 --> 00:06:03,110 โครงสร้างที่เราสามารถทำได้ เก็บสิ่งที่แตกต่าง 140 00:06:03,110 --> 00:06:06,782 ในกรณีที่พจนานุกรม เราเก็บไว้พวงของคำ 141 00:06:06,782 --> 00:06:08,240 ดังนั้นลองมาดูที่ต้นไม้บาง 142 00:06:08,240 --> 00:06:10,190 ดังนั้นนี่คือตัวอย่างของต้นไม้หนึ่ง 143 00:06:10,190 --> 00:06:13,105 มันมีชนิดของโครงสร้าง ว่าโครงสร้างลำดับชั้น 144 00:06:13,105 --> 00:06:15,920 ที่คุณสามารถเห็นได้ว่า โหนด 1 นี้ที่ด้านบน 145 00:06:15,920 --> 00:06:20,750 มีการเรียงลำดับของการจัดอันดับดังกล่าวข้างต้นที่ 2 และ 3 บาง ซึ่งอยู่เหนือ 4, 5 และ 6 และ 7 146 00:06:20,750 --> 00:06:22,860 ซึ่งอยู่เหนือ 8 และ 9 147 00:06:22,860 --> 00:06:25,210 ดังนั้นนั่นคือทั้งหมดที่เราหมายถึงโดย ต้นไม้เพื่อให้คุณสามารถเพียงแค่ชนิด 148 00:06:25,210 --> 00:06:26,660 ของภาพนี้ในหัวของคุณ 149 00:06:26,660 --> 00:06:29,050 >> ขณะนี้เรามีคู่ของ ต้นไม้ที่เฉพาะมากขึ้น 150 00:06:29,050 --> 00:06:31,070 ดังนั้นหนึ่งตัวอย่างคือต้นไม้ไบนารี 151 00:06:31,070 --> 00:06:33,290 และต้นไม้ไบนารีคือ อีกครั้งเพียงไปได้ 152 00:06:33,290 --> 00:06:37,040 โครงสร้างข้อมูลที่มีการจัดเรียงของบางส่วน ลำดับชั้น แต่แต่ละโหนด 153 00:06:37,040 --> 00:06:38,650 สามารถมีลูกสองคนที่มากที่สุด 154 00:06:38,650 --> 00:06:41,530 นั่นคือสิ่งที่ไบนารีคำที่มาจาก 155 00:06:41,530 --> 00:06:43,410 ดังนั้นนี่คือตัวอย่างของต้นไม้ไบนารี 156 00:06:43,410 --> 00:06:45,720 เพื่อให้เป็นหมวดหมู่ของต้นไม้ที่มีขนาดเล็ก 157 00:06:45,720 --> 00:06:48,960 >> ตอนนี้ขอได้เฉพาะเจาะจงมากขึ้นและ พูดคุยเกี่ยวกับการค้นหาแบบไบนารีไบนารี trees-- 158 00:06:48,960 --> 00:06:51,310 ต้นไม้ค่อนข้าง 159 00:06:51,310 --> 00:06:56,430 ดังนั้นนี่คือความคิดที่จะไม่เพียง แต่ ทุกโหนดมีลูกสองคนมากที่สุด 160 00:06:56,430 --> 00:07:00,300 แต่ทั้งหมดของเด็กไป ด้านซ้ายจะมีขนาดเล็ก 161 00:07:00,300 --> 00:07:03,450 และทั้งหมดของเด็กไป สิทธิที่จะมีขนาดใหญ่ 162 00:07:03,450 --> 00:07:05,890 ดังนั้นเพียงแค่แจ้งให้ทราบในของเรา ต้นไม้ไบนารีมี 163 00:07:05,890 --> 00:07:08,650 ความสัมพันธ์ระหว่างตัวเลขไม่ 164 00:07:08,650 --> 00:07:12,990 แต่ในการค้นหาแบบไบนารีของเรา ต้นไม้ที่เราเห็นตกลงนี่คือ 44 165 00:07:12,990 --> 00:07:17,080 และจำนวนทางด้านซ้ายของ 44 ทุกคน ที่มีขนาดเล็กและทุกอย่างไปทางขวา 166 00:07:17,080 --> 00:07:17,920 ที่มีขนาดใหญ่ 167 00:07:17,920 --> 00:07:20,130 >> และที่ถือในทุก ระดับของต้นไม้ 168 00:07:20,130 --> 00:07:24,810 ดังนั้นที่นี่นี้มีขนาดเล็กกว่า 22 และมีขนาดใหญ่กว่า 22 169 00:07:24,810 --> 00:07:26,390 และที่ว่าต้นไม้ค้นหาแบบทวิภาค 170 00:07:26,390 --> 00:07:28,900 ทำไมเราคิดว่ามันเรียกว่า ต้นไม้ค้นหาแบบทวิภาค? 171 00:07:28,900 --> 00:07:30,651 ขั้นตอนวิธีการสิ่งที่ไม่ได้เตือนคุณ? 172 00:07:30,651 --> 00:07:31,650 ผู้ชม: การค้นหาแบบไบนารี 173 00:07:31,650 --> 00:07:32,480 HANNAH Blumberg: การค้นหาแบบไบนารี 174 00:07:32,480 --> 00:07:35,150 เพราะถ้าคุณกำลังมองหา หมายเลขเฉพาะในต้นไม้นี้ 175 00:07:35,150 --> 00:07:38,800 ที่จุดทุกท่านก็สามารถเคาะ ปิดครึ่งหนึ่งของต้นไม้ซึ่งเป็นที่ดี 176 00:07:38,800 --> 00:07:43,800 และเพื่อที่จะให้เราบางสิ่งบางอย่าง ที่มีลักษณะเป็นจำนวนมากเช่นการค้นหาไบนารี 177 00:07:43,800 --> 00:07:45,870 มีคำถามอะไรไหม? 178 00:07:45,870 --> 00:07:47,570 สิทธิทั้งหมดเย็น 179 00:07:47,570 --> 00:07:48,560 >> สิทธิทั้งหมดพยายาม 180 00:07:48,560 --> 00:07:49,657 ทุกคนที่ชื่นชอบ 181 00:07:49,657 --> 00:07:51,990 ดังนั้นนี่คือตัวอย่างที่ เราได้เห็นพวงในชั้นเรียน 182 00:07:51,990 --> 00:07:54,710 และครั้งนี้เป็นเพียงอีกหนึ่ง วิธีการที่เราสามารถเก็บข้อมูล 183 00:07:54,710 --> 00:07:57,530 ในกรณีที่พจนานุกรมอีกครั้ง นี้เป็นเพียงจะเป็นสตริง 184 00:07:57,530 --> 00:08:00,870 ดังนั้นเรามาดูสิ่งนี้จริง ดูเหมือนว่าอยู่ในระดับที่ต่ำกว่าเล็กน้อย 185 00:08:00,870 --> 00:08:03,690 >> ดังนั้นลองมาดู ที่หนึ่งโหนดใน Trie 186 00:08:03,690 --> 00:08:07,532 และเราจะเห็น, OK, มีจะ จะเป็นบูลีนและโหนด 187 00:08:07,532 --> 00:08:09,170 ตัวชี้ไปยังโหนด 188 00:08:09,170 --> 00:08:11,400 และเราเห็นว่า บูลีนที่เรียกว่า is_word 189 00:08:11,400 --> 00:08:13,490 เพื่อเป็นหลักที่ ไปเพื่อให้สอดคล้อง 190 00:08:13,490 --> 00:08:16,750 ไปสามเหลี่ยมเล็ก ๆ น้อย ๆ เหล่านี้ที่ กล่าวว่าถ้าคุณเคยอยู่ที่นี่ 191 00:08:16,750 --> 00:08:19,100 คุณได้พบคำที่สมบูรณ์ 192 00:08:19,100 --> 00:08:23,670 >> เรารู้ว่า "ทัวริง" มากกว่า นี่เป็นคำที่สมบูรณ์ 193 00:08:23,670 --> 00:08:28,030 ในขณะที่เพียงแค่ T-U-R คือไม่ได้คำ เพราะเราไม่เห็นว่าเดลต้าเล็ก ๆ น้อย ๆ 194 00:08:28,030 --> 00:08:31,440 และที่สามเหลี่ยมเล็ก ๆ น้อย ๆ อีกครั้ง สอดคล้องกับ is_word นี้ 195 00:08:31,440 --> 00:08:34,480 นี้ is_word บูลีน 196 00:08:34,480 --> 00:08:36,320 และแล้วเรามีอาร์เรย์ของเด็ก 197 00:08:36,320 --> 00:08:39,860 ดังนั้นในแต่ละระดับคุณ มีโหนดโดยเฉพาะอย่างยิ่ง 198 00:08:39,860 --> 00:08:42,470 และที่จุดโหนดไปยัง อาร์เรย์ของตัวอักษรทั้งหมด 199 00:08:42,470 --> 00:08:44,346 >> ดังนั้นคุณจะเห็นอีกครั้ง ใน picture-- นี้ฉัน 200 00:08:44,346 --> 00:08:48,170 จะให้กระโดดไป forth-- ที่อาร์เรย์ที่ที่ด้านบน 201 00:08:48,170 --> 00:08:51,640 มีพวงของการที่แตกต่างกัน โหนดออกมาจากมัน 202 00:08:51,640 --> 00:08:57,140 มันมี 26 หรือ 27 ถ้าคุณต้องการ ที่จะรวมตัวเป็นพิเศษ 203 00:08:57,140 --> 00:09:01,320 และสิ่งนี้จะช่วยให้เรา วิธีการจัดเก็บข้อมูลของเรา 204 00:09:01,320 --> 00:09:04,450 ในทางที่สามารถมองบน ที่คุณสามารถมองขึ้นเร็วสุด 205 00:09:04,450 --> 00:09:06,650 เวลาการค้นหาสำหรับ Trie คืออะไร? 206 00:09:06,650 --> 00:09:07,970 >> ผู้ชม: [ไม่ได้ยิน] 207 00:09:07,970 --> 00:09:08,300 >> HANNAH Blumberg: ใช่ 208 00:09:08,300 --> 00:09:09,550 ในทางทฤษฎีแล้วก็ถึงเวลาที่คงที่ 209 00:09:09,550 --> 00:09:13,230 มันเพียง แต่จะเป็นขนาดของ คำที่คุณต้องการค้นหา 210 00:09:13,230 --> 00:09:15,950 แม้ว่าเราจะเพิ่ม zillion คำพูดมากขึ้นในการ Trie ของเรา 211 00:09:15,950 --> 00:09:18,160 ก็ไม่ได้ไปที่จะพาเรา ได้อีกต่อไปเพื่อตรวจสอบ 212 00:09:18,160 --> 00:09:19,690 ถ้าคำที่กำหนดอยู่ในของ Trie 213 00:09:19,690 --> 00:09:21,412 เพื่อให้เป็นที่ดีจริงๆ 214 00:09:21,412 --> 00:09:23,697 >> ผู้ชม: คุณไม่เพียง เริ่มต้นอาร์เรย์ที่? 215 00:09:23,697 --> 00:09:24,780 คุณพลาดจุดหรือสอง 216 00:09:24,780 --> 00:09:26,130 คุณก็สามารถพูดคุยเกี่ยวกับ ที่เป็นครั้งที่สอง? 217 00:09:26,130 --> 00:09:26,680 >> HANNAH Blumberg: แน่นอนว่าอย่าง 218 00:09:26,680 --> 00:09:27,590 คำถามที่ดี. 219 00:09:27,590 --> 00:09:31,140 คำถามคือเรา มีอาร์เรย์ที่เป็น 220 00:09:31,140 --> 00:09:34,180 จะมีดาวเป็นโหนด เมื่อเทียบกับโหนดเพียงใช่มั้ย? 221 00:09:34,180 --> 00:09:35,180 เย็น. 222 00:09:35,180 --> 00:09:37,990 ดังนั้นนี่คือสิ่งที่เรากำลังจะบอกว่า เป็นอาเรย์ของเราเป็นเพียง 223 00:09:37,990 --> 00:09:40,035 จะเป็นตัวชี้ไปยังอาร์เรย์อื่น ๆ 224 00:09:40,035 --> 00:09:42,910 ดังนั้นจึง essentially-- ชนิดของมัน รู้สึกเหมือนรายการที่เชื่อมโยงในลักษณะนี้ 225 00:09:42,910 --> 00:09:46,620 ที่แต่ละของเด็กเหล่านี้ เพียงแค่ชี้ไปยังโหนดถั​​ดไป 226 00:09:46,620 --> 00:09:49,030 >> และวิธีการที่เรา จริงตรวจสอบเดี๋ยวก่อนตกลง 227 00:09:49,030 --> 00:09:52,320 เราได้ผ่านซ้ำทั้ง คำนี้เป็นคำในพจนานุกรม 228 00:09:52,320 --> 00:09:54,476 เราเพียงแค่ตรวจสอบ is_word นี้ 229 00:09:54,476 --> 00:09:55,100 คำถามที่ดี 230 00:09:55,100 --> 00:09:55,675 ใช่. 231 00:09:55,675 --> 00:09:56,216 ผู้ชม: ตกลง 232 00:09:56,216 --> 00:09:57,470 ดังนั้นสิ่งที่เป็นรันไทม์สำหรับ Trie หรือไม่ 233 00:09:57,470 --> 00:09:58,386 >> HANNAH Blumberg: Sure 234 00:09:58,386 --> 00:10:01,852 ดังนั้นรันไทม์สำหรับ Trie สำหรับที่ การค้นหาเป็นไปได้เวลาคง 235 00:10:01,852 --> 00:10:04,310 ดังนั้นมันจึงเป็นเพียงการไปได้ จำนวนของตัวอักษรในคำว่า 236 00:10:04,310 --> 00:10:06,310 มันไม่ได้ขึ้นอยู่กับ ขนาดของพจนานุกรม 237 00:10:06,310 --> 00:10:09,510 หรือขนาดของโครงสร้างข้อมูล 238 00:10:09,510 --> 00:10:12,170 ดังนั้นนี่คือตัวอย่างที่ง่ายขึ้นเล็กน้อย 239 00:10:12,170 --> 00:10:15,430 >> ในกรณีนี้คุณจะเห็นว่า ค้างคาวเป็นคำในพจนานุกรม 240 00:10:15,430 --> 00:10:18,900 และคุณมีซูม แต่คุณ ไม่ได้มีบางสิ่งบางอย่างเช่นสวนสัตว์ 241 00:10:18,900 --> 00:10:20,050 วิธีการที่เราจะทำให้สวนสัตว์? 242 00:10:20,050 --> 00:10:24,276 ทำอย่างไรเราจะเพิ่มสวนสัตว์ของเรา พจนานุกรมเพื่อ Trie ของเราหรือไม่ 243 00:10:24,276 --> 00:10:24,776 ใช่. 244 00:10:24,776 --> 00:10:27,014 >> ผู้ชม: ตรวจ is_word จริงสำหรับ [ไม่ได้ยิน] 245 00:10:27,014 --> 00:10:27,930 HANNAH Blumberg: ดี 246 00:10:27,930 --> 00:10:31,731 ดังนั้นเราจะบอกว่า Z-O-O และจากนั้นเราต้องการ ต้องการที่จะตรวจสอบการปิดกล่องด้วยเช่นกันว่า 247 00:10:31,731 --> 00:10:32,230 ที่ดี 248 00:10:32,230 --> 00:10:35,160 249 00:10:35,160 --> 00:10:37,930 ลองเปรียบเทียบสั้นมาก พยายามที่เมื่อเทียบกับตารางแฮช 250 00:10:37,930 --> 00:10:39,770 พยายามที่ดีจริงๆ เพราะในขณะที่เรากล่าวว่า 251 00:10:39,770 --> 00:10:41,610 พวกเขาให้การค้นหาอย่างต่อเนื่องเวลา 252 00:10:41,610 --> 00:10:44,285 แต่ข้อเสียใหญ่ คือพวกเขากำลัง humongous 253 00:10:44,285 --> 00:10:46,160 คุณจะได้รับความรู้สึกที่ แม้โดยมองไปที่มัน 254 00:10:46,160 --> 00:10:48,454 ว่ามันจะใช้เวลา เป็นจำนวนมากของหน่วยความจำ 255 00:10:48,454 --> 00:10:50,620 ดังนั้นพวกเขากำลังไปได้มาก มีขนาดใหญ่กว่าตารางแฮช 256 00:10:50,620 --> 00:10:52,270 แต่พวกเขากำลังจะให้ เราได้เร็วขึ้นมากครั้งการค้นหา 257 00:10:52,270 --> 00:10:54,478 เพื่อให้เป็นชนิดของคุณ แลกเปลี่ยนสิ่งที่คุณดูแลเกี่ยวกับ 258 00:10:54,478 --> 00:10:57,350 ไม่ว่าจะเป็นความเร็วของมันหรือหน่วยความจำ 259 00:10:57,350 --> 00:11:02,251 คำถามใด ๆ เกี่ยวกับการใด ๆ ที่ ทั้งหมดของโครงสร้างข้อมูล C 260 00:11:02,251 --> 00:11:02,750 สวย. 261 00:11:02,750 --> 00:11:03,250 ตกลง. 262 00:11:03,250 --> 00:11:07,322 เรากำลังจะย้ายไปเล็ก ๆ น้อย ๆ บิตของการพัฒนาเว็บกับมาเรีย 263 00:11:07,322 --> 00:11:08,280 MARIA ZLATKOVA: น่ารัก 264 00:11:08,280 --> 00:11:09,036 ตกลง. 265 00:11:09,036 --> 00:11:10,380 >> HANNAH Blumberg: คุณสามารถใช้แล็ปท็อปของฉัน 266 00:11:10,380 --> 00:11:11,255 >> MARIA ZLATKOVA: ดี 267 00:11:11,255 --> 00:11:13,320 268 00:11:13,320 --> 00:11:14,912 ตกลงเย็น 269 00:11:14,912 --> 00:11:17,120 ขณะที่เราย้ายในขณะนี้ไปยังเว็บ การพัฒนาเราได้พูดคุยเล็ก ๆ น้อย ๆ 270 00:11:17,120 --> 00:11:20,680 เกี่ยวกับการเปลี่ยนแปลงการอนุญาต ของไฟล์และไดเรกทอรี 271 00:11:20,680 --> 00:11:24,190 เพื่อให้พวกเขาสามารถเข้าถึงได้ ผู้ใช้คนอื่นไปทั่วโลก 272 00:11:24,190 --> 00:11:28,640 และเพื่อที่เราจะได้เห็นว่า โดยทั่วไปเราสามารถนำพวกเขา 273 00:11:28,640 --> 00:11:32,600 เมื่อเราพัฒนาสิ่งที่ต้องการเว็บไซต์ ที่เราได้รับส่วนใหญ่ทำ 274 00:11:32,600 --> 00:11:36,400 >> ดังนั้นเราจึงเห็นคำสั่ง chmod ที่ ซึ่งเป็นโหมดการเปลี่ยนแปลงโดยทั่วไป 275 00:11:36,400 --> 00:11:39,300 นั่นเป็นคำสั่ง Linux และ จะเปลี่ยนสิทธิ์การเข้าถึง 276 00:11:39,300 --> 00:11:40,410 ของวัตถุระบบแฟ้ม 277 00:11:40,410 --> 00:11:43,370 และวัตถุระบบแฟ้มเป็น เพียงไดเรกทอรีไฟล์ 278 00:11:43,370 --> 00:11:46,810 สิ่งที่คุณสามารถทำได้ เปลี่ยนแปลงสิทธิ์ของ 279 00:11:46,810 --> 00:11:53,750 >> ดังนั้นจะเห็นสิทธิ์ของแฟ้ม เราพิมพ์คำสั่ง ls รายการ, -l 280 00:11:53,750 --> 00:11:56,500 และเมื่อเราพิมพ์ที่เรา มักจะเห็นการอนุญาตบางอย่าง 281 00:11:56,500 --> 00:11:59,660 ที่มีลักษณะการจัดเรียงของเช่นนี้ ในด้านหน้าของชื่อไดเรกทอรี 282 00:11:59,660 --> 00:12:01,260 ดังนั้น d หมายถึงไดเรกทอรี 283 00:12:01,260 --> 00:12:05,930 แล้วเรามีสาม triads ที่พื้น 284 00:12:05,930 --> 00:12:11,675 อ้างสิทธิ์ของทั้ง ผู้ใช้กลุ่มหรือโลก 285 00:12:11,675 --> 00:12:16,490 >> ประเภทของสิทธิ์ที่เราสามารถทำได้ มีทั้งสามกลุ่มคน 286 00:12:16,490 --> 00:12:20,830 มีทั้งอาร์สำหรับการอ่าน w, สำหรับ เขียนและ x สำหรับการดำเนินการ 287 00:12:20,830 --> 00:12:23,650 และเราจะได้มีที่สำหรับ กลุ่มและทั่วโลกเช่นกัน 288 00:12:23,650 --> 00:12:26,940 สิ่งที่ยุ่งยากคือบางครั้ง เมื่อเราพิมพ์คำสั่ง chmod ที่ 289 00:12:26,940 --> 00:12:32,960 เราจะพิมพ์ตัวเลขบางอย่าง ที่ประกอบด้วยสามบิต 290 00:12:32,960 --> 00:12:36,990 เพื่อให้เราสามารถทำเช่นเดียวกับ 777 และที่พื้น 291 00:12:36,990 --> 00:12:40,450 หมายถึงมูลค่าเพิ่ม ของแต่ละ triads เหล่านี้ 292 00:12:40,450 --> 00:12:45,060 เพราะอาจะอ้างถึง 4 w, จะ อ้างถึง 2 และ x จะอ้างถึง 1, 293 00:12:45,060 --> 00:12:50,020 ดังนั้นเมื่อเพิ่มขึ้นในแต่ละของตัวเลข จะลงมาเป็นจำนวนที่สะสม 294 00:12:50,020 --> 00:12:52,750 เป็นค่าที่สะสมระหว่าง 0 และ 7 295 00:12:52,750 --> 00:12:55,150 ดังนั้นเรายังสามารถมี 0 สิทธิ์ที่ทุกคน 296 00:12:55,150 --> 00:12:58,200 และที่พื้นจะให้เรา สิทธิ์สำหรับทั้งผู้ใช้ 297 00:12:58,200 --> 00:13:00,450 กลุ่มหรือโลก 298 00:13:00,450 --> 00:13:02,620 คำถามใด ๆ เกี่ยวกับเรื่องนี้เพื่อให้ห่างไกล? 299 00:13:02,620 --> 00:13:05,331 >> ผู้ชม: คุณบอกว่าอ่าน 4? 300 00:13:05,331 --> 00:13:06,164 MARIA ZLATKOVA: ใช่ 301 00:13:06,164 --> 00:13:07,568 ผู้ชม: [ไม่ได้ยิน] 302 00:13:07,568 --> 00:13:08,504 HANNAH Blumberg: Yup 303 00:13:08,504 --> 00:13:11,790 ผู้ชม: และแล้วโดยการเพิ่มทุกคน คนอื่น ๆ จะแสดงหมายเลขของคุณ 304 00:13:11,790 --> 00:13:12,665 MARIA ZLATKOVA: ใช่ 305 00:13:12,665 --> 00:13:14,970 ใช่. 306 00:13:14,970 --> 00:13:17,810 เหล่านี้เป็นคำถามที่ดี 307 00:13:17,810 --> 00:13:20,490 น่ารัก 308 00:13:20,490 --> 00:13:25,340 ต่อไปเราจะกระโดดลงไปใน HTML และ อีกเล็กน้อยเกี่ยวกับการพัฒนาเว็บ 309 00:13:25,340 --> 00:13:27,990 ดังนั้น HTML ก็หมายความว่า Hypertext Markup Language 310 00:13:27,990 --> 00:13:30,460 และนั่นคือมาร์กอัป ภาษาที่เป็นมาตรฐาน 311 00:13:30,460 --> 00:13:32,720 ว่าจะใช้ในการสร้างหน้าเว็บ 312 00:13:32,720 --> 00:13:35,750 >> มันเรียกว่าภาษามาร์กอัป เพราะไม่ได้รวบรวมจริง 313 00:13:35,750 --> 00:13:40,310 แต่ไม่ได้บอกว่ารหัสควร จะดำเนินการหรืออะไรอย่างนั้น 314 00:13:40,310 --> 00:13:44,800 มันก็ให้สัตยาบันและ อธิบายวิธีเว็บ 315 00:13:44,800 --> 00:13:46,840 หน้าควรจะตั้งค่า กับแต่ละองค์ประกอบ 316 00:13:46,840 --> 00:13:48,460 และวิธีการที่พวกเขาควรจะมองไปที่ผู้ใช้ 317 00:13:48,460 --> 00:13:53,090 318 00:13:53,090 --> 00:13:57,110 >> บางส่วนของแท็กที่เรา เดินไปดังต่อไปนี้ 319 00:13:57,110 --> 00:14:00,500 ทั้งหมดของเอกสาร HTML ของเรา เริ่มต้นด้วยการ DOCTYPE html ที่ 320 00:14:00,500 --> 00:14:02,550 จากนั้นเราก็มักจะมีแท็ก 321 00:14:02,550 --> 00:14:03,930 เรามีหัวและลำตัวได้ 322 00:14:03,930 --> 00:14:07,890 และมันเป็นสิ่งสำคัญที่มี HTML การเรียงลำดับของโครงสร้างที่ซ้อนกันนี้ 323 00:14:07,890 --> 00:14:09,280 เพราะมันเป็นที่ชัดเจนมาก 324 00:14:09,280 --> 00:14:13,200 และจากนั้นก็กลายเป็นที่ชัดเจนมากเมื่อเรา จำเป็นต้องเปิดและแท็กปิดจริง 325 00:14:13,200 --> 00:14:18,400 และเรามักจะต้องปิด แท็กที่เราได้เปิด 326 00:14:18,400 --> 00:14:23,170 >> และที่นี่เรามีบางส่วนของประเภท ข้างหน้าสิ่งที่เราต้องการที่จะมี 327 00:14:23,170 --> 00:14:26,580 ดังนั้นเราจึงมีตัวอย่างเช่น ชื่อของ CS50 328 00:14:26,580 --> 00:14:31,980 และจากนั้นเราจริง สามารถเชื่อมโยงสไตล์ชีต 329 00:14:31,980 --> 00:14:34,030 ที่กำหนดวิธีการที่เรารูปแบบเว็บไซต์ของเรา 330 00:14:34,030 --> 00:14:35,650 นั่นคือ CSS 331 00:14:35,650 --> 00:14:39,320 เรากำลังจะไปกว่านั้นใน คู่ต่อไปของภาพนิ่งได้เป็นอย่างดี 332 00:14:39,320 --> 00:14:42,580 >> ภายในร่างกายเราตั้ง บางชั้นเรียนและรหัส 333 00:14:42,580 --> 00:14:45,860 และเป็นตัวเตือนอีกครั้ง รหัสจะไม่ซ้ำกันและชั้นเรียน 334 00:14:45,860 --> 00:14:47,390 สามารถกำหนดให้กับหลายรายการ 335 00:14:47,390 --> 00:14:52,110 และนั่นก็หมายความว่า เราสามารถใช้การเรียนและรหัส 336 00:14:52,110 --> 00:14:55,860 ภายใน structures-- อื่น ๆ เพื่อให้สำหรับ ตัวอย่างเช่นภายในไฟล์ CSS หรือสไตล์ 337 00:14:55,860 --> 00:15:00,940 sheets-- ในการอ้างถึงองค์ประกอบที่เฉพาะเจาะจง และโดยทั่วไปบอกว่าเราต้องการที่จะสไตล์ 338 00:15:00,940 --> 00:15:03,280 หรือการออกแบบองค์ประกอบบางอย่าง ในบางวิธีการเฉพาะ 339 00:15:03,280 --> 00:15:06,440 และเราจะเรียกพวกเขาโดย รหัสของพวกเขาและการเรียน 340 00:15:06,440 --> 00:15:09,870 และเรายังสามารถดูได้ที่ สิ่งที่แตกต่างจากแท็กเช่นกัน 341 00:15:09,870 --> 00:15:13,830 แต่รหัสและการเรียนเพียงแค่ให้เรามี ความเก่งกาจและสิ่งที่เราโดยเฉพาะ 342 00:15:13,830 --> 00:15:15,850 ต้องการที่จะอ้างถึง 343 00:15:15,850 --> 00:15:19,620 >> ดังนั้นเพียงแค่ตัวอย่าง 344 00:15:19,620 --> 00:15:22,730 เราสามารถอีกครั้งภายใน ไฟล์ CSS ที่เรา 345 00:15:22,730 --> 00:15:25,770 ต้องการกำหนดบาง style-- เพื่อให้สีแบบอักษร 346 00:15:25,770 --> 00:15:30,340 และสิ่งที่ชอบ that-- ที่เราสามารถทำได้ กำหนดรูปแบบสำหรับร่างกาย 347 00:15:30,340 --> 00:15:32,640 เพื่อที่จะกำหนดมัน สำหรับแท็กร่างกาย 348 00:15:32,640 --> 00:15:36,160 แต่เราก็ยังสามารถกำหนด สไตล์สำหรับ #title 349 00:15:36,160 --> 00:15:40,390 และอีกครั้ง hashtag หมายถึงเรา ประชาชนและจุดหมายถึงชั้นเรียนของเรา 350 00:15:40,390 --> 00:15:44,760 >> และแล้วสำหรับ .info เรา นอกจากนี้ยังสามารถตั้งค่าคุณสมบัติบางอย่าง 351 00:15:44,760 --> 00:15:49,750 และอีกครั้งเมื่อเรากลับไปเรามีของเรา ระดับที่เรียกว่าข้อมูลและชื่อ ID ของเรา 352 00:15:49,750 --> 00:15:53,422 และเราจะเห็นว่าเราดู ให้พวกเขาโดย #title และ .info 353 00:15:53,422 --> 00:15:55,380 ผู้ชม: คุณจะพูดว่า hashtag [? นำฉัน? ?] 354 00:15:55,380 --> 00:15:55,725 MARIA ZLATKOVA: ขออภัย? 355 00:15:55,725 --> 00:15:58,120 ผู้ชม: คุณจะพูดว่า hashtag [? นำฉัน? ?] 356 00:15:58,120 --> 00:16:01,400 MARIA ZLATKOVA: แฮชแท็ก หมายถึงรหัสเพื่อ #title 357 00:16:01,400 --> 00:16:07,890 หมายถึงสิ่งที่องค์ประกอบ มีบัตรประจำตัวที่เรียกว่าชื่อ 358 00:16:07,890 --> 00:16:10,735 และแล้วจุดหมายถึงการเรียน 359 00:16:10,735 --> 00:16:14,590 ดังนั้น .info หมายถึงองค์ประกอบนี้ เพราะมีข้อมูลในชั้นเรียน 360 00:16:14,590 --> 00:16:15,090 ได้. 361 00:16:15,090 --> 00:16:17,905 >> ผู้ชม: ทำไมคุณ ความแตกต่างในรูปแบบ HTML หรือไม่ 362 00:16:17,905 --> 00:16:20,985 ทำไมคุณพูดสิ่งบางอย่าง รหัสและสิ่งบางอย่างที่เป็นชั้น? 363 00:16:20,985 --> 00:16:22,610 MARIA ZLATKOVA: นั่นเป็นเพียงถึง you-- 364 00:16:22,610 --> 00:16:24,151 HANNAH Blumberg: ทำซ้ำคำถาม 365 00:16:24,151 --> 00:16:25,370 MARIA ZLATKOVA: โอ้ขอโทษ 366 00:16:25,370 --> 00:16:29,480 ทำไมเราแยกแยะองค์ประกอบบางอย่าง เป็นรหัสและองค์ประกอบอื่น ๆ เช่นการเรียน? 367 00:16:29,480 --> 00:16:34,760 นั่นเป็นเพียงเพราะมันเป็น จริงๆมักจะเลือกที่การออกแบบ 368 00:16:34,760 --> 00:16:38,520 มันทำให้คุณมีจำนวนมาก ความคล่องตัวในการเป็น 369 00:16:38,520 --> 00:16:43,250 สามารถที่จะบอกว่าผมต้องการให้รายการนี​​้โดยเฉพาะ จะมีรหัสนี้เพราะพวกเขาต้องการ 370 00:16:43,250 --> 00:16:45,300 ที่จะทำสิ่งต่างๆมากมาย กับมันและฉันเท่านั้น 371 00:16:45,300 --> 00:16:50,010 ต้องการกำหนดรูปแบบรูปแบบบางอย่าง หรือสีอะไรก็ตามสำหรับรายการนั้น 372 00:16:50,010 --> 00:16:52,630 และวิธีที่จะทำอย่างนั้น เป็นเพียงการให้มัน ID 373 00:16:52,630 --> 00:16:55,060 >> และแล้วถ้าผมต้องการที่จะมี คู่ของรายการที่แตกต่าง 374 00:16:55,060 --> 00:16:58,940 มีที่แทน และการตั้งค่าจะ their-- 375 00:16:58,940 --> 00:17:03,840 แทนการทำมันด้วย เพราะแท็กแท็กจะ 376 00:17:03,840 --> 00:17:07,369 การตั้งค่ามือถือสำหรับแท็กทั้งหมด สำหรับทุกครั้งที่แท็กที่ถูกนำมาใช้ 377 00:17:07,369 --> 00:17:09,740 คุณสามารถตั้งค่าระดับรายการหลาย 378 00:17:09,740 --> 00:17:15,109 แล้วก็เข้าชั้นเรียนที่และพูดว่า ฉันต้องการที่จะสไตล์ชั้นนี้วิธีการที่ 379 00:17:15,109 --> 00:17:17,579 >> และอีกครั้งที่ชั้นสามารถ เป็นรายการที่แตกต่างกันหลาย 380 00:17:17,579 --> 00:17:21,150 และประชาชนจะต้องมีเอกลักษณ์ 381 00:17:21,150 --> 00:17:21,849 คำถามที่ดี 382 00:17:21,849 --> 00:17:25,339 คำถามใด ๆ อื่น ๆ ? 383 00:17:25,339 --> 00:17:26,220 ตกลงที่น่ากลัว 384 00:17:26,220 --> 00:17:30,680 385 00:17:30,680 --> 00:17:35,330 อีกครั้งนี้เป็นวิธีการที่ตัวเลือกเหล่านี้ มีการอ้างอิงใน CSS กับ hashtag, 386 00:17:35,330 --> 00:17:40,031 มีจุดหรือไม่มีอะไร การกำหนดรูปแบบของแท็กบาง 387 00:17:40,031 --> 00:17:40,530 เหมือนร่างกาย 388 00:17:40,530 --> 00:17:43,500 389 00:17:43,500 --> 00:17:47,860 และที่นี่เรามีทั่วไป ไวยากรณ์ของว​​ิธีการนี​​้จะทำ 390 00:17:47,860 --> 00:17:52,830 391 00:17:52,830 --> 00:17:55,680 >> ที่จะทำซ้ำบางส่วนที่ดีที่สุด การปฏิบัติสำหรับ HTML และ CSS, 392 00:17:55,680 --> 00:17:59,170 เราต้องอีกครั้งปิดทั้งหมด แท็ก HTML ที่เราเปิด 393 00:17:59,170 --> 00:18:03,950 และสิ่งที่เราขอแนะนำให้คุณ ทำโครงการสุดท้ายของคุณ 394 00:18:03,950 --> 00:18:10,560 เช่นเดียวกับ CS50 การเงินที่จะทำให้ ตรวจสอบให้แน่ใจว่าทั้งหมดของ HTM​​L ของคุณตรวจสอบ 395 00:18:10,560 --> 00:18:12,920 และที่ทำกับ Validator W3 396 00:18:12,920 --> 00:18:16,940 >> และแล้วสิ่งที่เราทำและ สิ่งที่เราแนะนำให้ทำ 397 00:18:16,940 --> 00:18:19,790 มีการแยกรูปแบบเพื่อ CSS จากมาร์กอัป HTML 398 00:18:19,790 --> 00:18:24,210 ดังนั้นอะไรที่เกี่ยวข้องกับวิธีการ หน้าของคุณเป็นไปสายตามอง 399 00:18:24,210 --> 00:18:27,330 และวิธีการที่จะได้รับการแก้ไข ควรจะไปลงในเอกสาร CSS 400 00:18:27,330 --> 00:18:33,880 และจากนั้นมาร์กอัปของคุณบอกว่าสิ่งที่ อยู่ในความสัมพันธ์กับแต่ละอื่น ๆ ที่เป็น HTML, 401 00:18:33,880 --> 00:18:37,550 และที่ควรไปภายใน ของเอกสาร HTML ของคุณ 402 00:18:37,550 --> 00:18:38,590 มีคำถามอะไรไหม? 403 00:18:38,590 --> 00:18:39,226 Mhm 404 00:18:39,226 --> 00:18:42,628 >> ผู้ชม: สิ่งที่เป็นไป ในการตรวจสอบกับหน้า 405 00:18:42,628 --> 00:18:47,945 เมื่อเรากำลังตรวจสอบความถูก HTML ที่ [ไม่ได้ยิน] สร้างขึ้น? 406 00:18:47,945 --> 00:18:49,850 >> MARIA ZLATKOVA: ดังนั้น what-- คิดว่าคุณ 407 00:18:49,850 --> 00:18:53,020 ดังนั้นสิ่งที่เป็นไป ในการตรวจสอบหน้าด้วย 408 00:18:53,020 --> 00:18:55,570 และทำไมเราจะต้องทำเช่นนั้น? 409 00:18:55,570 --> 00:18:59,180 โดยทั่วไปเราต้องทำ เพราะหลายครั้งที่เบราว์เซอร์ของคุณ 410 00:18:59,180 --> 00:19:01,390 ถ้าคุณไม่ปิดแท็ก หรือสิ่งที่ต้องการที่ 411 00:19:01,390 --> 00:19:05,680 เบราว์เซอร์ของคุณจะยังคงไป ทำให้หน้าและยังคงทำงาน 412 00:19:05,680 --> 00:19:10,840 แต่ก็เป็นวิธีที่ดีที่สุดเพื่อให้แน่ใจว่า คุณได้อีกครั้งปิดแท็กทั้งหมดของคุณ 413 00:19:10,840 --> 00:19:13,190 ว่าองค์ประกอบของคุณทั้งหมดที่มี วิธีการที่พวกเขาควรจะเป็น 414 00:19:13,190 --> 00:19:18,470 และโดยทั่วไปว่ามันเป็นโดย การประชุมที่มีการกำหนดไว้ล่วงหน้า 415 00:19:18,470 --> 00:19:21,970 >> มันเป็นอีกครั้งเพียง สิ่งที่คุณควร 416 00:19:21,970 --> 00:19:24,040 ได้เรียนรู้ที่จะทำ เมื่อเทียบกับการมี 417 00:19:24,040 --> 00:19:25,696 รหัส sloppier และสิ่งที่ชอบ 418 00:19:25,696 --> 00:19:26,688 ใช่. 419 00:19:26,688 --> 00:19:27,680 โอ้ขอโทษ. 420 00:19:27,680 --> 00:19:29,221 ฉันคิดว่าคุณได้รับการยกมือของคุณ 421 00:19:29,221 --> 00:19:31,240 ผู้ชม: ไม่ฉันเป็นเพียง [ไม่ได้ยิน] 422 00:19:31,240 --> 00:19:33,800 >> MARIA ZLATKOVA: OK 423 00:19:33,800 --> 00:19:34,640 >> ผู้ชม: ขอบคุณ 424 00:19:34,640 --> 00:19:36,181 >> MARIA ZLATKOVA: แน่นอนขอขอบคุณ 425 00:19:36,181 --> 00:19:41,680 ดังนั้นอีกครั้งที่เกิดขึ้นเป็นวิธีการ ข้อมูลจะถูกโอน 426 00:19:41,680 --> 00:19:44,630 และรูปแบบการสื่อสาร ในการถ่ายโอนข้อมูล 427 00:19:44,630 --> 00:19:45,730 TCP / IP 428 00:19:45,730 --> 00:19:48,600 TCP ก็หมายความว่าการส่ง พิธีสารควบคุมและ IP 429 00:19:48,600 --> 00:19:51,260 หมายถึงอินเทอร์เน็ตโปรโตคอล 430 00:19:51,260 --> 00:19:54,275 และนั่นหมายถึงเพียงแค่ ข้อมูลวิธีการจัดส่ง 431 00:19:54,275 --> 00:19:59,470 432 00:19:59,470 --> 00:20:02,710 >> ถ้าเรามีข้อมูลบางอย่างที่ ความต้องการที่จะส่งมอบให้กับ you-- ดังนั้น 433 00:20:02,710 --> 00:20:06,770 คุณทำตามคำขอสำหรับเซิร์ฟเวอร์บางอย่าง 434 00:20:06,770 --> 00:20:09,800 ตัวอย่างเช่นเมื่อเรา พยายามเข้าถึง cs50.net, 435 00:20:09,800 --> 00:20:12,420 เราขอไป เซิร์ฟเวอร์ CS50 และเรา 436 00:20:12,420 --> 00:20:14,720 เห็นว่าเราต้องการที่จะได้รับ การเรียงลำดับของข้อมูลเหล่านี้ 437 00:20:14,720 --> 00:20:19,294 และจากนั้นก็จะขึ้นอยู่กับโปรโตคอลนี้ สำหรับวิธีการที่ข้อมูลนี้จะถูกส่งมอบ 438 00:20:19,294 --> 00:20:21,460 เซิร์ฟเวอร์ให้ข้อมูล กลับมาให้เราลูกค้า 439 00:20:21,460 --> 00:20:25,590 และจากนั้นเราก็สามารถที่จะดู ข้อมูลสำหรับหน้า 440 00:20:25,590 --> 00:20:26,390 แล้วใช้ 441 00:20:26,390 --> 00:20:29,300 442 00:20:29,300 --> 00:20:33,050 >> ดังนั้นแล้วแบบ Hypertext Transfer Protocol เป็นเพียงโปรโตคอลอื่นหรือตั้ง 443 00:20:33,050 --> 00:20:37,470 การประชุมที่กำหนดวิธี เว็บเบราเซอร์และเว็บเซิร์ฟเวอร์ 444 00:20:37,470 --> 00:20:38,890 ควรสื่อสาร 445 00:20:38,890 --> 00:20:43,730 และวางทั้งหมดนี้ ร่วมกัน, HTTP, อีกครั้ง 446 00:20:43,730 --> 00:20:50,960 เพียงแค่กำหนดวิธีการที่กำหนดไว้นี้ไฮเปอร์ โดย HTML ที่เราได้รับการทำงานนั้น 447 00:20:50,960 --> 00:20:59,500 วิธีการที่ควรจะส่งมอบให้กับคุณและ ว่าข้อมูลที่ถูกส่งมอบให้กับคุณ 448 00:20:59,500 --> 00:21:00,540 ที่คุณได้รับ 449 00:21:00,540 --> 00:21:05,990 >> และที่ว่าทำไมถ้าพวกคุณจำได้ จากชั้นที่เรามีจำนวนมากของการร้องขอ 450 00:21:05,990 --> 00:21:08,970 และเรามีจำนวนมากของไวยากรณ์ สำหรับการร้องขอเหล่านี้ที่เรากำลัง 451 00:21:08,970 --> 00:21:10,250 จะไปกว่าตอนนี้ 452 00:21:10,250 --> 00:21:13,270 ดังนั้นอีกครั้งเมื่อเราส่ง ร้องขอไปยังเซิร์ฟเวอร์หนึ่ง 453 00:21:13,270 --> 00:21:15,920 เราต้องกำหนดสองสิ่ง 454 00:21:15,920 --> 00:21:18,520 ดังนั้นเราจึงจำเป็นที่จะหาชนิด ของการร้องขอที่เรากำลังตั้ง 455 00:21:18,520 --> 00:21:22,180 และอีกครั้งที่เรามีเช่น แถมเป็นหนึ่งในประเภทของวิธีการ 456 00:21:22,180 --> 00:21:25,290 ที่เรามีในคำขอของเรา 457 00:21:25,290 --> 00:21:31,710 >> และแล้ว HTTP / 1.1 เป็นเพียง โปรโตคอลที่เรากำลังใช้อยู่ในปัจจุบัน 458 00:21:31,710 --> 00:21:34,224 459 00:21:34,224 --> 00:21:36,890 ส่วนใหญ่เวลาที่จะ โปรโตคอลที่เรากำลังใช้ 460 00:21:36,890 --> 00:21:40,290 ดังนั้นถ้าคุณมีคำถาม เช่นเดียวกับที่ในการตอบคำถามของคุณ 461 00:21:40,290 --> 00:21:43,120 นั่นคือการประชุม ที่เรามีเพื่อให้ห่างไกล 462 00:21:43,120 --> 00:21:46,580 >> เครื่องหมายหมายถึงสิ่งที่จัดเรียง สิ่งที่เรากำลังร้องขอ 463 00:21:46,580 --> 00:21:52,810 จากนั้นพิธีกรของเราคือการยกตัวอย่างเช่นในเรื่องนี้ กรณีที่เรากำลังพยายามที่จะไปที่ google.com 464 00:21:52,810 --> 00:21:57,070 ดังนั้นนี้เป็นค่าสำหรับโฮสต์ที่ 465 00:21:57,070 --> 00:21:59,330 นี่คือประเภทของการร้องขอ ที่อาจจะส่ง 466 00:21:59,330 --> 00:22:02,890 >> และจากนั้นประเภทของการตอบสนองที่อาจ ถูกส่งไปอีกครั้งขึ้นอยู่กับโปรโตคอลนี้ 467 00:22:02,890 --> 00:22:05,190 เป็นอีกครั้ง HTTP / 1.1 468 00:22:05,190 --> 00:22:07,150 เพื่อให้เป็นรุ่น HTTP อีกครั้ง 469 00:22:07,150 --> 00:22:09,730 200 ตกลงเป็นเพียงรหัสสถานะ 470 00:22:09,730 --> 00:22:12,860 และที่ตกลงเป็นเพียงวลี ขึ้นอยู่กับรหัสสถานะที่ 471 00:22:12,860 --> 00:22:15,520 >> แล้วเนื้อหาชนิด หมายถึงชนิด 472 00:22:15,520 --> 00:22:20,295 ที่ถูกส่งกลับไปยังคุณที่ สำหรับหน้าเว็บที่ที่คุณได้รับ 473 00:22:20,295 --> 00:22:22,570 และเบราว์เซอร์ของคุณ สามารถทำให้หลังจากนั้น 474 00:22:22,570 --> 00:22:24,401 และที่เป็น text / html 475 00:22:24,401 --> 00:22:26,660 >> ผู้ชม: อะไร 1.1 หมายความว่าอย่างไร 476 00:22:26,660 --> 00:22:29,910 >> MARIA ZLATKOVA: นั่นเป็นเพียง รุ่น of-- โอ้สิ่งที่ไม่ 1.1 หมายความว่าอย่างไร 477 00:22:29,910 --> 00:22:37,075 นั่นเป็นเพียงรุ่นของ HTTP รุ่นของโปรโตคอลที่เรากำลังใช้ 478 00:22:37,075 --> 00:22:37,700 คำถามที่ดี 479 00:22:37,700 --> 00:22:38,366 คำถามอื่น ๆ ? 480 00:22:38,366 --> 00:22:41,222 481 00:22:41,222 --> 00:22:45,080 >> ผู้ชม: คุณสามารถสรุป เนื้อหาชนิดจริงอย่างรวดเร็ว? 482 00:22:45,080 --> 00:22:48,150 >> MARIA ZLATKOVA: เพื่อให้ คือสิ่งที่เซิร์ฟเวอร์ 483 00:22:48,150 --> 00:22:51,020 ประเภทของ information-- สิ่งที่เป็น ชนิดของเนื้อหาเป็นคำถาม 484 00:22:51,020 --> 00:22:53,400 เพื่อให้เป็นประเภทของ ข้อมูลที่คุณได้รับกลับมา 485 00:22:53,400 --> 00:22:58,200 จากเซิร์ฟเวอร์ชนิดของ ข้อมูลที่เบราว์เซอร์สามารถแล้ว 486 00:22:58,200 --> 00:23:00,604 ทำให้ว่าคุณกำลังใช้ 487 00:23:00,604 --> 00:23:03,020 ผู้ชม: คือสิ่งนี้ โปรโตคอลที่จะบอกคุณจะทำอย่างไร? 488 00:23:03,020 --> 00:23:03,390 MARIA ZLATKOVA: ขออภัย? 489 00:23:03,390 --> 00:23:05,380 ผู้ชม: คือสิ่งที่โปรโตคอลพูด? 490 00:23:05,380 --> 00:23:05,915 MARIA ZLATKOVA: protocol-- 491 00:23:05,915 --> 00:23:07,940 ผู้ชม: --what เนื้อหาชนิดหรือ what-- 492 00:23:07,940 --> 00:23:12,040 MARIA ZLATKOVA: โปรโตคอลจะขึ้นอยู่ on-- สิ่งที่เป็นโปรโตคอลบอกคุณหรือไม่ 493 00:23:12,040 --> 00:23:16,070 นั่นเป็นเพียงวิธีการที่ ว่าข้อมูลนี้ 494 00:23:16,070 --> 00:23:18,610 ได้รับการส่งมอบให้กับคุณตาม เกี่ยวกับสิ่งที่จัดเรียงของโปรโตคอล 495 00:23:18,610 --> 00:23:21,830 ได้รับข้อมูลเหล่านี้ได้ ส่งกลับมาให้คุณ 496 00:23:21,830 --> 00:23:23,500 ไม่ว่าทำให้การจัดเรียงของความรู้สึก? 497 00:23:23,500 --> 00:23:28,320 498 00:23:28,320 --> 00:23:30,070 HANNAH Blumberg: คุณ สามารถคิดโปรโตคอล 499 00:23:30,070 --> 00:23:33,300 เป็น a-- ผมคิดว่าศาสตราจารย์ ลันเล่าว่า 500 00:23:33,300 --> 00:23:36,910 ในชั้นเรียนเป็นชนิดเช่น a-- ที่มันต้องการ เทียบเท่าของการจับมือกันของมนุษย์ 501 00:23:36,910 --> 00:23:44,930 พูดเหมือนเดี๋ยวก่อนฉันขอและฉัน รู้วิธีจัดการกับ HTTP ของรุ่น 1.1 502 00:23:44,930 --> 00:23:48,770 และจากนั้นเซิร์ฟเวอร์จะกล่าวว่า โอ้ตกลง I-- และทั้งสองอยู่ 503 00:23:48,770 --> 00:23:51,337 ฉันยังรู้วิธีการจัดการกับ HTTP / 1.1 504 00:23:51,337 --> 00:23:53,170 และฉันจะให้ คุณสำรองเนื้อหาบางส่วน 505 00:23:53,170 --> 00:23:56,230 ในกรณีนี้ก็จะ จะเป็นประเภทของข้อความ / html 506 00:23:56,230 --> 00:23:58,480 ดังนั้นจึงเป็นชนิดของเพียงวิธีการ ของพวกเขาสำหรับการ communicating-- 507 00:23:58,480 --> 00:24:00,480 >> MARIA ZLATKOVA: มันเป็นเพียง ยืนยันว่าคุณ 508 00:24:00,480 --> 00:24:03,290 ทั้งสองต่อไปนี้เช่นเดียวกัน โปรโตคอลและการที่ทั้งสอง 509 00:24:03,290 --> 00:24:06,620 ลูกค้าและ server-- เพื่อ เบราว์เซอร์ของคุณและ server-- 510 00:24:06,620 --> 00:24:09,280 การเรียงลำดับของรู้ว่าสิ่งที่คุณ พูดถึงและมี 511 00:24:09,280 --> 00:24:12,557 การประชุมสำหรับการส่งผ่านข้อมูล 512 00:24:12,557 --> 00:24:17,022 >> ผู้ชม: ดังนั้นเนื้อหาชนิด part-- ข้อความเนื้อหาชนิด / html-- ที่ 513 00:24:17,022 --> 00:24:18,521 ส่วนที่แยกต่างหากจากข้อความเดียวกันได้หรือไม่ 514 00:24:18,521 --> 00:24:20,509 หรือมันเป็นส่วนหนึ่งของสมมติว่า 200? 515 00:24:20,509 --> 00:24:22,010 200 ไม่บอกพวกเขาว่าหรือ is-- 516 00:24:22,010 --> 00:24:23,770 >> MARIA ZLATKOVA: 200 บอกว่ามันทั้งหมดไปตกลง 517 00:24:23,770 --> 00:24:27,900 และจากนั้นชนิดของเนื้อหาคือการจัดเรียงของ ส่วนที่แยกต่างหากจากข้อความเดียวกัน 518 00:24:27,900 --> 00:24:34,274 และพูดว่าสิ่งที่ฉัน กลับมีประเภทของข้อความนี้ / html 519 00:24:34,274 --> 00:24:35,690 มันเป็นเพียงแค่การให้ข้อมูลเพิ่มเติม 520 00:24:35,690 --> 00:24:38,700 521 00:24:38,700 --> 00:24:39,995 มีอะไรที่จะเพิ่ม? 522 00:24:39,995 --> 00:24:40,495 ตกลง. 523 00:24:40,495 --> 00:24:43,590 524 00:24:43,590 --> 00:24:46,530 >> คำถามอื่น ๆ เกี่ยวกับเรื่องนี้? 525 00:24:46,530 --> 00:24:48,370 ที่น่ากลัว 526 00:24:48,370 --> 00:24:54,070 ดังนั้นบางสถานะ HTTP อื่น ๆ ที่ เราจะได้รับนอกเหนือไปจาก 200 ตกลง 527 00:24:54,070 --> 00:24:59,500 คนที่เราเคยเห็นอาจจะ อาจจะมากเป็น 403 และ 404 528 00:24:59,500 --> 00:25:05,190 ดังนั้น 404 ถ้าคุณกำลังพยายามที่จะ บางสิ่งบางอย่างที่ไม่สามารถเข้าถึงได้อยู่ 529 00:25:05,190 --> 00:25:10,460 ดังนั้นสำหรับตัวอย่างเช่นในของคุณ CS50 การเงิน psets, 530 00:25:10,460 --> 00:25:15,640 ถ้าคุณได้รับการแสดงผล quote.html และคุณไม่ได้มีไฟล์ที่ 531 00:25:15,640 --> 00:25:19,740 แต่คุณมี quote.php ที่ จะส่งผลให้ 404 ไม่พบ 532 00:25:19,740 --> 00:25:21,600 เพราะไฟล์ไม่ได้อาจจะมีอยู่ 533 00:25:21,600 --> 00:25:25,690 >> สำหรับ 403 สิ่งต้องห้ามที่ หมายถึงการอนุญาต 534 00:25:25,690 --> 00:25:31,150 ดังนั้นถ้าไฟล์บางอย่างจะไม่สามารถอ่านได้จาก โลก, คุณอาจได้รับ 403 กลับ 535 00:25:31,150 --> 00:25:34,510 536 00:25:34,510 --> 00:25:37,810 คนอื่น ๆ บางอย่างที่คุณอาจ get-- 301 ย้ายถาวร; 537 00:25:37,810 --> 00:25:41,300 302 พบ; 304 ดัดแปลง; 400, ร้องขอไม่ถูกต้อง; 538 00:25:41,300 --> 00:25:47,330 แล้วข้อผิดพลาดภายในเซิร์ฟเวอร์สำหรับ 500 และ 503 บริการไม่พร้อมใช้งาน 539 00:25:47,330 --> 00:25:48,140 ใช่. 540 00:25:48,140 --> 00:25:51,490 >> ผู้ชม: Will เราคาดว่าจะ จดจำสถานะทั้งหมดเหล่านั้นหรือไม่ 541 00:25:51,490 --> 00:25:53,739 MARIA ZLATKOVA: ผมจะต้อง พวกเขาบนแผ่นโกงของคุณ 542 00:25:53,739 --> 00:25:55,146 [LAUGHTER] 543 00:25:55,146 --> 00:25:59,954 ผู้ชม: เราคาดว่าจะ รู้ว่าสิ่งที่เป็นต้นเหตุของแต่ละคน? 544 00:25:59,954 --> 00:26:00,995 MARIA ZLATKOVA: พวกเขา? 545 00:26:00,995 --> 00:26:03,870 HANNAH Blumberg: สำหรับคนที่เราได้ เรียก into-- ดังนั้นคำถาม was-- 546 00:26:03,870 --> 00:26:08,010 MARIA ZLATKOVA: พวกเขาคาดว่าจะ รู้ว่าสิ่งที่แต่ละคนสถานะเหล่านี้ 547 00:26:08,010 --> 00:26:09,330 รหัสอาจถูกเรียกโดย? 548 00:26:09,330 --> 00:26:13,240 ดังนั้นสำหรับคนที่เราเคยใช้ และวิ่งเข้าไปในผมจะบอกว่าใช่ 549 00:26:13,240 --> 00:26:16,610 ดังนั้นเราจึงได้เห็นแน่นอน 200 OK และสอนใน psets 550 00:26:16,610 --> 00:26:19,071 เราได้เห็น 403, 404 551 00:26:19,071 --> 00:26:20,550 สำหรับคนอื่น ๆ ? 552 00:26:20,550 --> 00:26:22,690 >> HANNAH Blumberg: ฉันจะ 500 บอกว่าดูเหมือนว่าเกมที่ยุติธรรม 553 00:26:22,690 --> 00:26:23,330 >> MARIA ZLATKOVA: 500 ใช่ 554 00:26:23,330 --> 00:26:24,246 >> HANNAH Blumberg: ใช่ 555 00:26:24,246 --> 00:26:27,006 เพียงแค่มีความหมายทั่วไป ของสิ่งที่ทำให้พวกเขา 556 00:26:27,006 --> 00:26:28,880 และยังเป็นเพียงแค่เหล่านี้ ชื่อคุณสามารถชนิดของ 557 00:26:28,880 --> 00:26:32,890 เช่นทำให้เดาการศึกษาเป็น สิ่งที่ทำให้พวกเขาจริง 558 00:26:32,890 --> 00:26:36,919 ยกตัวอย่างเช่นย้ายอย่างถาวรอาจจะ แฟ้มถูกย้ายอย่างถาวร 559 00:26:36,919 --> 00:26:39,328 >> ผู้ชม: แต่ก่อนหน้านี้ การสอบมีการเพื่อให้ 560 00:26:39,328 --> 00:26:41,050 วิธีที่คุณคาดหวังว่าเราจะตอบว่า? 561 00:26:41,050 --> 00:26:42,883 >> HANNAH Blumberg: นั่น เป็นมูลค่าจุดศูนย์ 562 00:26:42,883 --> 00:26:45,870 คำถามเกี่ยวกับ 418 ในกาน้ำชา เป็นเทคนิคที่สถานะ HTTP ที่ 563 00:26:45,870 --> 00:26:47,090 แต่มันก็คุ้มค่าจุดศูนย์ 564 00:26:47,090 --> 00:26:48,320 เห็นได้ชัดว่าคุณไม่ได้ คาดว่าจะรู้ว่าพวกเขา 565 00:26:48,320 --> 00:26:49,670 >> ผู้ชม: มันเป็นความจริง? 566 00:26:49,670 --> 00:26:51,970 >> HANNAH Blumberg: มันเป็นจริง หนึ่ง แต่มันไม่ได้หมายความว่าอะไร 567 00:26:51,970 --> 00:26:52,700 มันแค่เรื่องตลก. 568 00:26:52,700 --> 00:26:55,480 569 00:26:55,480 --> 00:26:57,010 คนอินเทอร์เน็ตเป็นตลก 570 00:26:57,010 --> 00:26:59,680 >> MARIA ZLATKOVA: คำถามที่ดีครับ 571 00:26:59,680 --> 00:27:01,452 คำถามใด ๆ อื่น ๆ ? 572 00:27:01,452 --> 00:27:04,891 >> ผู้ชม: ข้อผิดพลาดภายในเซิร์ฟเวอร์คืออะไร? 573 00:27:04,891 --> 00:27:06,640 MARIA ZLATKOVA: ภายใน ผิดพลาดของเซิร์ฟเวอร์เพียง 574 00:27:06,640 --> 00:27:10,050 หมายความว่าคุณได้รับ ไม่สามารถที่จะสื่อสาร 575 00:27:10,050 --> 00:27:13,400 กับเซิร์ฟเวอร์ด้วยเหตุผลบางอย่าง 576 00:27:13,400 --> 00:27:15,400 ดังนั้นจึงไม่จำเป็นต้อง บางสิ่งบางอย่างที่จะทำอย่างไร 577 00:27:15,400 --> 00:27:19,170 กับลูกค้าหรือสิ่งที่ต้องการว่า 578 00:27:19,170 --> 00:27:22,170 ผมไม่ทราบว่าตัวอย่างที่เฉพาะเจาะจง ที่เราได้ไปมากกว่าที่จะอธิบาย 579 00:27:22,170 --> 00:27:23,000 แต่ใช่ 580 00:27:23,000 --> 00:27:23,250 >> HANNAH Blumberg: Sure 581 00:27:23,250 --> 00:27:25,625 ดังนั้นสำหรับตัวอย่างเช่นลอง ว่าคุณกำลังทำงานอยู่ตอบโต้กับผู้ใช้ได้ 582 00:27:25,625 --> 00:27:30,440 และเซิร์ฟเวอร์ของ Google ลงไปสำหรับบางคน เหตุผลไฟฟ้าดับสมมติว่า 583 00:27:30,440 --> 00:27:33,400 นั่นจะเป็นเซิร์ฟเวอร์ภายใน ผิดพลาดหรือการจัดเรียงบาง of-- ชอบคุณ 584 00:27:33,400 --> 00:27:34,630 จะไม่ได้รับการตอบกลับ 585 00:27:34,630 --> 00:27:35,260 >> MARIA ZLATKOVA: ใช่ 586 00:27:35,260 --> 00:27:37,050 มันเป็นเพียงเมื่อคุณอยู่ ไม่สามารถที่จะสื่อสาร 587 00:27:37,050 --> 00:27:40,299 กับเซิร์ฟเวอร์ด้วยเหตุผลเพราะบาง มันจะลงหรือมีเหตุผลอื่น ๆ 588 00:27:40,299 --> 00:27:44,430 589 00:27:44,430 --> 00:27:47,690 ดังนั้นกระโดดลงไปใน PHP 590 00:27:47,690 --> 00:27:49,930 PHP, HTML แตกต่างเป็น การเขียนโปรแกรมภาษา 591 00:27:49,930 --> 00:27:54,820 และเราเริ่มใช้มันเพราะมันเป็น มีประโยชน์มากสำหรับการพัฒนาเว็บ 592 00:27:54,820 --> 00:27:56,940 >> ครั้งแรกที่เราใช้ใน CS50 การเงิน 593 00:27:56,940 --> 00:28:02,240 และโดยทั่วไปจะช่วยให้เรานำ ร่วมกันมาร์กอัปนี้การออกแบบ 594 00:28:02,240 --> 00:28:07,460 และวิธีที่เราใช้ข้อมูลจริง สิ่งที่จะแสดงบนหน้าเว็บ 595 00:28:07,460 --> 00:28:11,870 ดังนั้น PHP ตัวเองหมายความว่า PHP Hypertext Preprocessor, 596 00:28:11,870 --> 00:28:15,360 ดังนั้นจึงเป็น backnorym recursive ด้วยตัวเอง 597 00:28:15,360 --> 00:28:22,330 และการเปิดแท็กสำหรับ PHP เราซ้าย และลูกศรขวาด้วยเครื่องหมายคำถาม 598 00:28:22,330 --> 00:28:23,060 และ php 599 00:28:23,060 --> 00:28:25,890 >> ดังนั้นเราจึงได้เห็นแล้วพวงของมัน 600 00:28:25,890 --> 00:28:29,150 ตอนนี้เรากำลังจะไปมากกว่า บางส่วนของสิ่งพื้นฐานที่เกี่ยวกับเรื่องนี้ 601 00:28:29,150 --> 00:28:32,280 ดังนั้นด้วย PHP, ตัวแปร ชื่อขึ้นต้นด้วยเครื่องหมายดอลลาร์ 602 00:28:32,280 --> 00:28:35,660 เราไม่ได้ระบุอีกครั้ง ประเภทตัวแปรอีกต่อไป 603 00:28:35,660 --> 00:28:38,450 เช่นเดียวกับที่เราทำกับซี เราไม่จำเป็นต้องทำอย่างนั้น 604 00:28:38,450 --> 00:28:41,670 605 00:28:41,670 --> 00:28:44,490 >> เราสามารถทำพวงของการที่แตกต่างกัน สิ่งที่มีตัวแปร 606 00:28:44,490 --> 00:28:47,750 เราสามารถเอามารวมกัน โดยเชื่อมโยงพวกเขา 607 00:28:47,750 --> 00:28:52,900 ที่มีเครื่องหมายจุดซึ่ง เราไม่สามารถทำใน C อีกครั้ง 608 00:28:52,900 --> 00:28:57,490 อีกครั้งที่เรามีความคล่องตัวมากขึ้นอีกนิด กับ PHP ในแง่ของตัวแปร 609 00:28:57,490 --> 00:29:00,080 อีกครั้งที่เราไม่ได้มีหน้าที่หลัก 610 00:29:00,080 --> 00:29:03,370 >> และ PHP ถูกตีความ เมื่อเทียบกับการรวบรวม 611 00:29:03,370 --> 00:29:09,970 ดังนั้นเพียงแค่วิธีการที่เราไม่ทำให้ไฟล์ซี เราไม่ได้มีการทำที่สำหรับ PHP 612 00:29:09,970 --> 00:29:15,440 แต่วิธีการที่ภาษา จะดำเนินการโดยตัวเองก็คือการตีความ 613 00:29:15,440 --> 00:29:18,550 และจากนั้นพิมพ์อย่างอิสระ ก็หมายความว่าเรา 614 00:29:18,550 --> 00:29:22,490 ไม่ได้มีการระบุตัวแปร ประเภทและชนิดของตัวแปร 615 00:29:22,490 --> 00:29:25,415 มีความเข้าใจที่รันไทม์ 616 00:29:25,415 --> 00:29:29,185 >> ผู้ชม: แต่สิ่งที่คุณทำ หมายถึงกำหนดการจุด? 617 00:29:29,185 --> 00:29:30,060 MARIA ZLATKOVA: Sure 618 00:29:30,060 --> 00:29:37,660 เมื่อเราต้องการที่จะนำสิ่ง together-- ดังนั้นหากเรามีตัวแปรบางอย่างที่ 619 00:29:37,660 --> 00:29:41,500 มีค่าของ 3 และเรามีอีก ตัวแปรที่มีค่าของสตริง 620 00:29:41,500 --> 00:29:45,920 เราสามารถใส่ตัวแปรที่ร่วมกัน โดยการวางจุดในระหว่างพวกเขา 621 00:29:45,920 --> 00:29:46,970 และเชื่อมโยงพวกเขา 622 00:29:46,970 --> 00:29:52,670 หรือเราสามารถสร้าง ชื่อเรียกว่าตัวแปร 623 00:29:52,670 --> 00:29:56,900 และวางไว้ด้วยกัน เชื่อมโยงสองสาย 624 00:29:56,900 --> 00:30:00,680 >> ดังนั้นถ้าเรามีสตริงในคู่ และคำพูดที่เราใส่จุดหลังจากที่มัน 625 00:30:00,680 --> 00:30:03,660 แล้วเรามีสตริงอีกว่า จะสร้างสตริงโดยสิ้นเชิง 626 00:30:03,660 --> 00:30:05,242 >> ผู้ชม: ตกลง 627 00:30:05,242 --> 00:30:06,450 มาเรียลัตเวีย: คือการที่ชัดเจน? 628 00:30:06,450 --> 00:30:07,099 ผู้ชม: ใช่ 629 00:30:07,099 --> 00:30:07,890 MARIA ZLATKOVA: OK 630 00:30:07,890 --> 00:30:08,766 ใช่. 631 00:30:08,766 --> 00:30:11,146 >> ผู้ชม: เมื่อคุณพูด ตีความมากกว่ารวบรวม 632 00:30:11,146 --> 00:30:14,160 คุณกำลังพูดถึงคุณทำไม่ได้ จะต้องเป็นเฉพาะเมื่อ 633 00:30:14,160 --> 00:30:15,906 มันมาถึงเมื่อเทียบกับ PHP C? 634 00:30:15,906 --> 00:30:18,085 635 00:30:18,085 --> 00:30:20,710 MARIA ZLATKOVA: เมื่อเราพูด ตีความว่าเป็นตรงข้ามกับการรวบรวม 636 00:30:20,710 --> 00:30:21,850 สิ่งที่เราหมายถึงอะไร? 637 00:30:21,850 --> 00:30:26,220 ดังนั้นหมายความว่าเราไม่จำเป็นต้อง ไฟล์ปฏิบัติการที่จะใช้ PHP 638 00:30:26,220 --> 00:30:29,870 ก็หมายความว่ามันจะทำงานเป็นมันไป 639 00:30:29,870 --> 00:30:31,650 ที่ทำให้รู้สึก? 640 00:30:31,650 --> 00:30:32,495 บิตมากขึ้น 641 00:30:32,495 --> 00:30:34,620 HANNAH Blumberg: คุณ สามารถคิดล่า​​ม 642 00:30:34,620 --> 00:30:38,980 เป็นโปรแกรมที่มีหน้าที่รับผิดชอบอื่น สำหรับการไปทีละบรรทัดผ่าน PHP 643 00:30:38,980 --> 00:30:42,745 และที่จริงรันมันเป็นตรงข้าม ที่จะรวบรวมทั้งหมดลงไปไบนารี 644 00:30:42,745 --> 00:30:46,050 มันไม่จริงหมายถึงอะไร เกี่ยวกับวิธีการที่เฉพาะเจาะจงเราจะต้อง 645 00:30:46,050 --> 00:30:49,470 เรายังคงต้องแม่นยำและทำไม่ได้ ลืมอัฒภาคของคุณและให้แน่ใจว่า 646 00:30:49,470 --> 00:30:51,470 คุณมีเครื่องหมายดอลลาร์ของคุณ และสิ่งที่ต้องการ 647 00:30:51,470 --> 00:30:52,240 คำถามที่ดี. 648 00:30:52,240 --> 00:30:53,115 >> MARIA ZLATKOVA: ใช่ 649 00:30:53,115 --> 00:30:55,590 ดังนั้นทีละบรรทัดเช่น เมื่อเทียบกับกับไฟล์ซี 650 00:30:55,590 --> 00:30:59,100 เราจะต้องทำให้สุดท้ายทั้ง ก่อนที่เราจะสามารถเรียกใช้งาน 651 00:30:59,100 --> 00:31:00,360 นั่นคือความแตกต่างหลัก 652 00:31:00,360 --> 00:31:02,655 แต่อีกครั้งเราไม่สามารถ จริงๆจะเฉพาะเจาะจงน้อย 653 00:31:02,655 --> 00:31:08,760 654 00:31:08,760 --> 00:31:13,950 ดังนั้นอาร์เรย์ใน PHP เป็นตัวแทน จริงแผนที่ได้รับคำสั่ง 655 00:31:13,950 --> 00:31:17,550 >> ดังนั้นค่าอาร์เรย์ร่วมกับคีย์ 656 00:31:17,550 --> 00:31:23,350 ทั้งสองวิธีที่จะประกาศ อาร์เรย์ขึ้นอยู่กับรูปแบบนี้, 657 00:31:23,350 --> 00:31:26,380 เราสามารถจะชัดเจนมากขึ้น ในการบอกเรามีอาร์เรย์ 658 00:31:26,380 --> 00:31:31,010 และเรามี key1 นี้ที่แมปไป value1 นี้ key2 value2 ที่แผนที่ 659 00:31:31,010 --> 00:31:34,660 หรือเราก็สามารถสร้างอาร์เรย์ ที่มีค่าของตัวเอง 660 00:31:34,660 --> 00:31:38,360 แล้วคีย์มี เข้าใจในทาง 661 00:31:38,360 --> 00:31:40,000 คำถามใด ๆ เกี่ยวกับเรื่องนี้? 662 00:31:40,000 --> 00:31:42,500 >> ผู้ชม: สิ่งที่คีย์จะ จะอยู่ในตัวอย่างที่สองหรือไม่ 663 00:31:42,500 --> 00:31:47,100 664 00:31:47,100 --> 00:31:47,920 0, 1, 2, 3 หรือไม่? 665 00:31:47,920 --> 00:31:50,650 666 00:31:50,650 --> 00:31:55,780 >> MARIA ZLATKOVA: ยกตัวอย่างเช่นมันเป็นเพียง กุญแจในเรื่องนี้ไม่จำเป็นต้อง 667 00:31:55,780 --> 00:31:56,550 สร้างความแตกต่าง. 668 00:31:56,550 --> 00:32:01,720 พวกเขาเพียงแค่กำหนดวิธีการที่คุณสามารถ ใช้ค่าภายในของมัน 669 00:32:01,720 --> 00:32:08,660 ดังนั้นถ้าเรามี foreach วงใน PHP ที่จะ 670 00:32:08,660 --> 00:32:14,760 ช่วยให้เราสามารถไปถึงค่าทั้งหมด เราสามารถไปถึงค่าทั้งหมด 671 00:32:14,760 --> 00:32:19,570 แม้ว่าเราจะมีหรือไม่ก็ไม่ได้กำหนดไว้ คีย์เฉพาะภายในเว็บไซต์ 672 00:32:19,570 --> 00:32:20,820 ไวยากรณ์ก่อนหน้า 673 00:32:20,820 --> 00:32:23,460 >> ดังนั้นแม้จะมีการจัดเรียงนี้ ของอาร์เรย์เรายังคงสามารถ 674 00:32:23,460 --> 00:32:26,260 มีห่วง foreach ที่จะไปผ่านแต่ละ 675 00:32:26,260 --> 00:32:31,240 ของค่าในอาร์เรย์ที่สำคัญในการที่ 676 00:32:31,240 --> 00:32:36,180 ดังนั้นไวยากรณ์ของ foreach ที่ ห่วงเราเริ่มต้นด้วยอาร์เรย์ 677 00:32:36,180 --> 00:32:38,720 678 00:32:38,720 --> 00:32:43,900 ตัวแปร $ ARR นี้เป็นอาเรย์ที่แท้จริงของเรา ที่เรากำหนดไว้ในสไลด์ก่อนหน้านี้ 679 00:32:43,900 --> 00:32:47,550 เป็นค่าที่แท้จริงไป ผ่านแต่ละค่า 680 00:32:47,550 --> 00:32:50,122 โดยไม่คำนึงว่า เรามีที่สำคัญหรือไม่ 681 00:32:50,122 --> 00:32:53,080 และจากนั้นเราสามารถทำอะไรกับ ค่าที่อยู่ภายในวง foreach 682 00:32:53,080 --> 00:32:57,730 ดังนั้นอีกครั้งถ้าเรามีอาร์เรย์ เช่นนี้ที่นี่ created-- 683 00:32:57,730 --> 00:33:03,270 เพื่อให้เรามีที่สำคัญของ foo และความคุ้มค่าของ บาร์ที่สำคัญของ baz และมูลค่าของ qux-- 684 00:33:03,270 --> 00:33:09,730 เราสามารถมีความห่วง foreach ว่า จะต้องผ่านอาร์เรย์เป็นค่าที่สำคัญ 685 00:33:09,730 --> 00:33:11,900 แล้วทำอะไรบางอย่าง กับที่สำคัญและ / หรือค่า 686 00:33:11,900 --> 00:33:15,980 แต่เราไม่จำเป็นต้องเสมอ ต้องมีห่วง foreach ว่า 687 00:33:15,980 --> 00:33:19,410 ไปผ่านแถวแผนที่กุญแจสำคัญในการค่า 688 00:33:19,410 --> 00:33:26,060 เราสามารถไปถึง อาร์เรย์ห่วง foreach เป็นค่า 689 00:33:26,060 --> 00:33:28,990 >> HANNAH Blumberg: และผมคิดว่า to-- เป็นคำถามของคุณสิ่งที่ 690 00:33:28,990 --> 00:33:31,229 คือดัชนีโดยปริยายหรือไม่ 691 00:33:31,229 --> 00:33:31,895 ผู้ชม: Kinda 692 00:33:31,895 --> 00:33:32,240 MARIA ZLATKOVA: โอ้ 693 00:33:32,240 --> 00:33:33,406 HANNAH Blumberg: ใช่ใช่ 694 00:33:33,406 --> 00:33:36,150 ดังนั้นโดยทั่วไปถ้าคุณไม่ได้ระบุ ที่สำคัญมันเป็นไปได้ที่ 01 695 00:33:36,150 --> 00:33:37,140 >> MARIA ZLATKOVA: ใช่ 696 00:33:37,140 --> 00:33:41,718 เช่นเดียวกับซีก็เป็นศูนย์ จัดทำดัชนีถ้าคุณไม่ได้ระบุที่สำคัญ 697 00:33:41,718 --> 00:33:42,384 ผู้ชม: ขออภัย 698 00:33:42,384 --> 00:33:43,827 คุณพยายามที่จะพูด นิด ๆ หน่อย ๆ ดัง? 699 00:33:43,827 --> 00:33:45,270 ฉันมีนิด ๆ หน่อย ๆ ปัญหาทุกอย่างที่ได้ยิน 700 00:33:45,270 --> 00:33:46,478 >> MARIA ZLATKOVA: ฉันขอโทษ 701 00:33:46,478 --> 00:33:48,439 ใช่แน่นอน. 702 00:33:48,439 --> 00:33:50,230 ดังนั้นคุณต้องการให้ฉัน ไปกว่านี้อีกครั้งหรือไม่ 703 00:33:50,230 --> 00:33:51,680 หรือ this-- 704 00:33:51,680 --> 00:33:54,930 ผู้ชม: ดังนั้น slide-- ถ้าก่อนหน้านี้ คุณก็สามารถกลับไปหนึ่งวินาที 705 00:33:54,930 --> 00:33:57,313 MARIA ZLATKOVA: แน่นอนขอโทษ 706 00:33:57,313 --> 00:33:59,237 ผู้ชม: ดังนั้นที่สอง อาร์เรย์ที่นี่ไม่ได้ 707 00:33:59,237 --> 00:34:04,135 ดูเหมือนจะมีค่าให้กับคีย์, การเรียงลำดับของ [? สาเหตุ ?] 708 00:34:04,135 --> 00:34:05,343 MARIA ZLATKOVA: ขวาขวา 709 00:34:05,343 --> 00:34:07,608 ผู้ชม: ดังนั้นวิธีการทำงานว่า เมื่อคุณบอกว่ามันเป็นทั้งหมดหรือไม่มี 710 00:34:07,608 --> 00:34:08,969 ให้ฉันที่ดูเหมือนว่า a [? foo?] แล้ว 711 00:34:08,969 --> 00:34:10,093 >> MARIA ZLATKOVA: ใช่ใช่ 712 00:34:10,093 --> 00:34:12,969 ดังนั้นอีกครั้งนี้เป็น แผนที่สั่งซื้อในแง่นี้ 713 00:34:12,969 --> 00:34:15,639 ว่ามีความเข้าใจ ตัวอย่างเช่นดัชนี 714 00:34:15,639 --> 00:34:20,159 ที่นี่สามารถเข้าใจได้เป็น 0, 1, 2, 3 715 00:34:20,159 --> 00:34:25,929 อีกครั้งที่มีผู้ ดัชนีเท่ากับของเรา 716 00:34:25,929 --> 00:34:28,980 ของการมีคีย์แมปไปยังค่า 717 00:34:28,980 --> 00:34:34,710 ดังนั้นหากที่สำคัญของเราเป็น 0-- ขอโทษ 718 00:34:34,710 --> 00:34:36,524 >> HANNAH Blumberg: ไม่ มีชอล์กที่นี่ 719 00:34:36,524 --> 00:34:36,929 เป็นจริงที่ดีจริงๆ 720 00:34:36,929 --> 00:34:37,460 >> MARIA ZLATKOVA: ที่ดี 721 00:34:37,460 --> 00:34:38,260 ตกลง. 722 00:34:38,260 --> 00:34:49,489 ดังนั้นอีกครั้ง $ ARR 0 จะเป็น ที่สำคัญสำหรับค่า 1 723 00:34:49,489 --> 00:34:51,138 0 จะเป็นกุญแจสำคัญสำหรับค่า 1 724 00:34:51,138 --> 00:34:51,971 ผู้ชม: ฉันขอโทษ 725 00:34:51,971 --> 00:34:53,190 มันเป็นเรื่องที่มองไม่เห็น 726 00:34:53,190 --> 00:34:53,659 >> HANNAH Blumberg: สิทธิทั้งหมดไม่เป็นไร 727 00:34:53,659 --> 00:34:54,980 ชอล์กเป็นความคิดที่ดี 728 00:34:54,980 --> 00:34:58,030 ฉันจะเอามันกลับมา 729 00:34:58,030 --> 00:35:01,425 คุณสามารถคิดว่ากุญแจ เป็น 0 แผนที่เพื่อค่า 1 730 00:35:01,425 --> 00:35:02,300 MARIA ZLATKOVA: ใช่ 731 00:35:02,300 --> 00:35:04,630 ดังนั้นนี่คือ 0 นี่คือ 1, 2, 3 732 00:35:04,630 --> 00:35:05,760 เหล่านี้สามารถเป็นคีย์ของคุณ 733 00:35:05,760 --> 00:35:10,020 คุณสามารถคิดว่าพวกเขา as-- ใช่ 734 00:35:10,020 --> 00:35:12,740 ดังนั้นแทนที่จะต้อง กุญแจอย่างชัดเจนว่าพวกเขากำลัง 735 00:35:12,740 --> 00:35:17,180 การเรียงลำดับของความเข้าใจในฐานะที่เป็น ดัชนีเริ่มต้นที่ 0 736 00:35:17,180 --> 00:35:21,630 737 00:35:21,630 --> 00:35:24,820 ชอล์กไม่ได้ช่วย 738 00:35:24,820 --> 00:35:25,722 ใช่. 739 00:35:25,722 --> 00:35:30,914 >> ผู้ชม: สำหรับวง foreach, ถ้าเราต้องการที่จะดูเป็นความคุ้มค่า 740 00:35:30,914 --> 00:35:33,245 มันจะเป็นเพียงดัชนีโดยอัตโนมัติเพื่อ 0? 741 00:35:33,245 --> 00:35:34,120 MARIA ZLATKOVA: ใช่ 742 00:35:34,120 --> 00:35:35,745 มันจะผ่านไปแต่ละค่า 743 00:35:35,745 --> 00:35:39,130 ผู้ชม: [ไม่ได้ยิน] เช่น 0 หรือจะว่าเพียงแค่ทำ 0? 744 00:35:39,130 --> 00:35:43,710 >> MARIA ZLATKOVA: คุณจะต้อง ที่จะบอกว่าเป็นเครื่องหมายดอลลาร์แล้ว 745 00:35:43,710 --> 00:35:46,266 บางชื่อตัวแปรค่า 746 00:35:46,266 --> 00:35:47,182 ผู้ชม: [ไม่ได้ยิน] 747 00:35:47,182 --> 00:35:50,048 748 00:35:50,048 --> 00:35:50,964 MARIA ZLATKOVA: ขออภัย? 749 00:35:50,964 --> 00:35:52,839 ผู้ชม: ขออภัยฉัน เพียงแค่พยายามที่จะจำ 750 00:35:52,839 --> 00:35:57,190 วิธีที่คุณจะไม่ว่าถ้าคุณสามารถทำมันได้ การจัดทำดัชนีโดยอัตโนมัติเป็นเพียง 0 ของ? 751 00:35:57,190 --> 00:36:00,780 >> MARIA ZLATKOVA: ดังนั้นวิธีที่คุณจะทำอย่างนั้น ถ้าคุณไม่ได้มีชื่อคีย์ที่เฉพาะเจาะจง 752 00:36:00,780 --> 00:36:01,710 >> ผู้ชม: ใช่ 753 00:36:01,710 --> 00:36:07,820 >> MARIA ZLATKOVA: คุณจะเพียงแค่ define-- เพียงแค่พูดว่าตัวเองเป็นชื่อบางส่วน 754 00:36:07,820 --> 00:36:17,950 ดังนั้นใน psets ของพวกคุณอาจจะ จำ foreach แถว $ เป็น $ แถว 755 00:36:17,950 --> 00:36:24,610 เราสร้างขึ้นเองนี้แถว $ บอก เราต้องการที่จะผ่านไปแถวที่ $ แถว 756 00:36:24,610 --> 00:36:28,360 แม้ว่าเราจะไม่ได้มี แถวนี้ $ ชัดเจนกำหนด 757 00:36:28,360 --> 00:36:31,990 เราก็จะไป พูดแบบนี้สามารถเป็นกุญแจสำคัญของเรา 758 00:36:31,990 --> 00:36:33,615 และเพิ่งไปผ่านแต่ละค่า 759 00:36:33,615 --> 00:36:37,295 760 00:36:37,295 --> 00:36:41,660 >> ผู้ชม: ดังนั้นค่าตัวแปรใหม่ เรากำลังสร้างการจัดเก็บ [ไม่ได้ยิน] 761 00:36:41,660 --> 00:36:46,820 762 00:36:46,820 --> 00:36:49,990 >> MARIA ZLATKOVA: ดังนั้นจึงไม่ โดยเนื้อแท้ตัวแปรใหม่ 763 00:36:49,990 --> 00:37:00,310 มันเป็นตัวแปรที่หมายถึงการที่ ภายในของอาร์เรย์แต่ละของพวกเขา 764 00:37:00,310 --> 00:37:02,060 HANNAH Blumberg: มัน ชื่อตัวแปรใหม่ 765 00:37:02,060 --> 00:37:04,018 MARIA ZLATKOVA: ใช่ มันเป็นชื่อตัวแปรใหม่ 766 00:37:04,018 --> 00:37:06,680 แต่ไม่ inherently-- ใช่ 767 00:37:06,680 --> 00:37:08,950 มันเป็นเพียงตัวแปรใหม่ ที่คุณสามารถทำเช่นนั้น 768 00:37:08,950 --> 00:37:12,680 ดังนั้นเพียงแค่วิธีการที่เราทำไม่ได้ $ เป็น $ แถวแถวแถว 769 00:37:12,680 --> 00:37:17,980 เป็นชื่อตัวแปรใหม่ที่เรา สามารถสร้างในวง foreach ของเรา 770 00:37:17,980 --> 00:37:22,065 มันไม่ได้มีการ preexist ก่อนหน้านั้น 771 00:37:22,065 --> 00:37:25,777 >> ผู้ชม: คุณสามารถไปผ่าน ตรรกะสำหรับแต่ละโดยใช้ตัวอย่างมี? 772 00:37:25,777 --> 00:37:26,610 MARIA ZLATKOVA: Mhm 773 00:37:26,610 --> 00:37:31,240 774 00:37:31,240 --> 00:37:32,080 โอ้ขอโทษ. 775 00:37:32,080 --> 00:37:33,780 นี่คือตัวอย่างคือ 776 00:37:33,780 --> 00:37:34,280 ตรวจสอบว่า 777 00:37:34,280 --> 00:37:38,950 ดังนั้นสำหรับแต่ละ array-- ดังนั้น นั่นหมายความว่าไปอาร์เรย์นี้ 778 00:37:38,950 --> 00:37:43,930 เป็นกุญแจสำคัญ value-- ที่จะ ที่จะไปผ่านแถวนี้ 779 00:37:43,930 --> 00:37:49,480 และเป็นครั้งแรกไปและได้รับ foo ที่ ที่สำคัญ foo และบาร์ค่า 780 00:37:49,480 --> 00:37:51,570 และจากนั้นในครั้งที่สอง ย้ำสำหรับห่วง 781 00:37:51,570 --> 00:37:55,090 มันจะผ่านไปและใช้เวลา baz สำคัญและ qux ค่า 782 00:37:55,090 --> 00:38:00,512 และจากนั้นคุณสามารถทำอะไรกับ ทั้งของพวกเขาหรือพวกเขาทั้งสอง 783 00:38:00,512 --> 00:38:03,488 >> ผู้ชม: ดังนั้นความคิดที่อยู่เบื้องหลัง มีจุดสำคัญที่จะค่า 784 00:38:03,488 --> 00:38:07,470 สิ่งที่คุณจะจบลงด้วยการเข้าถึง? 785 00:38:07,470 --> 00:38:10,680 >> MARIA ZLATKOVA: ความคิดคืออะไร ของการมีกุญแจสำคัญในการชี้ค่า? 786 00:38:10,680 --> 00:38:16,400 มันเป็นเพียงการประชุมอื่นอีก วิธีการที่จะผ่านอาร์เรย์ 787 00:38:16,400 --> 00:38:22,600 และความสามารถในการเข้าถึงอย่างใดอย่างหนึ่ง คีย์หรือค่าหรือทั้งสองและใช้พวกเขา 788 00:38:22,600 --> 00:38:27,100 >> ผู้ชม: อะไรคือบทบาทที่ สั่ง foreach ทำงานมีอะไรบ้าง? 789 00:38:27,100 --> 00:38:29,250 ดังนั้นถ้าเราจะเพิ่ม องค์ประกอบไปยังอาร์เรย์ในภายหลัง 790 00:38:29,250 --> 00:38:32,140 ผู้ที่จะเป็นคนแรก เรียกว่าในอาร์เรย์ foreach, 791 00:38:32,140 --> 00:38:33,750 หรือมันจะเป็นในภายหลัง? 792 00:38:33,750 --> 00:38:37,770 >> MARIA ZLATKOVA: ดังนั้นสิ่งที่เป็น ลำดับที่ foreach 793 00:38:37,770 --> 00:38:39,210 ห่วงไปผ่านแถวใน? 794 00:38:39,210 --> 00:38:42,220 มันผ่านไปครั้งแรก องค์ประกอบองค์ประกอบที่ผ่านมา 795 00:38:42,220 --> 00:38:43,400 ไปยังองค์ประกอบเพิ่มล่าสุด 796 00:38:43,400 --> 00:38:48,020 ถ้าคุณเพิ่มองค์ประกอบในภายหลังที่พวกเขาจะ จะ accessed-- องค์ประกอบแรกที่จะ 797 00:38:48,020 --> 00:38:51,410 เข้าถึงได้เป็นครั้งแรก องค์ประกอบของอาร์เรย์ 798 00:38:51,410 --> 00:38:57,620 แล้วคุณจะไปผ่านแต่ละ องค์ประกอบเป็นจัดเรียงของ ordered-- 799 00:38:57,620 --> 00:39:02,930 ไม่ได้รับคำสั่ง แต่วิธีการที่ พวกเขาได้รับการใส่ลงในอาร์เรย์ 800 00:39:02,930 --> 00:39:06,855 >> ผู้ชม: ดังนั้นองค์ประกอบใหม่ มีการเพิ่มในภายหลัง? 801 00:39:06,855 --> 00:39:10,680 ดังนั้นพวกเขากำลัง added-- พวกเขาจะเป็น คนสุดท้ายใน [? การย้ำ ?] 802 00:39:10,680 --> 00:39:14,280 >> MARIA ZLATKOVA: องค์ประกอบใหม่ can-- โดยทั่วไปเมื่อองค์ประกอบใหม่ที่มีการเพิ่ม 803 00:39:14,280 --> 00:39:16,520 พวกเขาจะเพิ่มเข้ามาในปลายแถวหรือไม่ 804 00:39:16,520 --> 00:39:17,632 >> ผู้ชม: ใช่ 805 00:39:17,632 --> 00:39:18,840 MARIA ZLATKOVA: ผมเชื่อเช่นนั้น 806 00:39:18,840 --> 00:39:20,850 ใช่. 807 00:39:20,850 --> 00:39:24,330 และจากนั้นก็มีวงของคุณ foreach, หลังจากที่คุณได้เพิ่มองค์ประกอบใหม่ 808 00:39:24,330 --> 00:39:26,790 และคุณจะไปผ่านพวกเขา องค์ประกอบใหม่จะ 809 00:39:26,790 --> 00:39:30,930 จะ accessed-- องค์ประกอบใหม่ถ้ามัน เพิ่มที่แล้วมันจะได้รับการเข้าถึงที่ผ่านมา 810 00:39:30,930 --> 00:39:34,416 >> ผู้ชม: คุณสามารถเพียงแค่ให้ตัวอย่าง สิ่งที่จะ [ไม่ได้ยิน] 811 00:39:34,416 --> 00:39:37,404 กับสิ่งที่มีค่า เช่น [ไม่ได้ยิน] หรือค่า 812 00:39:37,404 --> 00:39:38,910 ชอบวิธีการที่คุณต้องการจัดรูปแบบที่? 813 00:39:38,910 --> 00:39:39,785 >> MARIA ZLATKOVA: Sure 814 00:39:39,785 --> 00:39:42,340 815 00:39:42,340 --> 00:39:46,410 ฉันสามารถให้ตัวอย่างของสิ่งที่ เราจะทำอย่างไรกับค่า? 816 00:39:46,410 --> 00:39:52,440 ดังนั้นสิ่งที่พวกคุณอาจจะคุ้นเคยกับ คือการที่เราได้ผ่านอาร์เรย์ 817 00:39:52,440 --> 00:39:55,380 และพิมพ์โดยทั่วไป แต่ละองค์ประกอบ 818 00:39:55,380 --> 00:40:00,910 เช่นเป็นส่วนหนึ่งของ รายการสั่งซื้อหรือสิ่งที่ 819 00:40:00,910 --> 00:40:02,674 ไม่ว่าทำให้ความรู้สึกหรือเราต้องการ to-- 820 00:40:02,674 --> 00:40:04,340 ผู้ชม: เราสามารถพิมพ์ค่าเหล่านี้ออกมา? 821 00:40:04,340 --> 00:40:13,220 MARIA ZLATKOVA: ใช่เราสามารถพิมพ์ โดยทั่วไปแล้ว $ ค่าเพราะใน 822 00:40:13,220 --> 00:40:16,570 ว่าค่าเฉพาะที่เราจะเป็น พิมพ์ค่าที่อยู่ภายในของมัน 823 00:40:16,570 --> 00:40:20,150 ดังนั้นถ้าเราอยู่ที่ซ้ำครั้งแรกของเรา ของมันและเราพิมพ์มูลค่า $, 824 00:40:20,150 --> 00:40:23,775 เราจะพิมพ์บาร์ 825 00:40:23,775 --> 00:40:27,020 >> ผู้ชม: มีนอกจากนี้ยังมี ลูปใน PHP หรือเพียงแค่ห่วง foreach? 826 00:40:27,020 --> 00:40:30,430 >> MARIA ZLATKOVA: มี ยังห่วงใน PHP 827 00:40:30,430 --> 00:40:33,399 และตรรกะของพวกเขาเป็นส่วนใหญ่ เช่นเดียวกับสิ่งที่คุณได้รับมาใช้ในการ 828 00:40:33,399 --> 00:40:34,690 ผู้ชม: ดังนั้นค่าของมันเป็นโมฆะ 829 00:40:34,690 --> 00:40:35,090 MARIA ZLATKOVA: มันเป็นเช่นเดียวกัน 830 00:40:35,090 --> 00:40:35,590 ใช่. 831 00:40:35,590 --> 00:40:37,747 ผู้ชม: ฉันแค่จะถาม 832 00:40:37,747 --> 00:40:39,695 ดังนั้นเมื่อคุณประกาศ อาร์เรย์คุณไม่จำเป็นต้อง 833 00:40:39,695 --> 00:40:42,617 ที่จะบอกว่าขนาดมันจะ จะเป็นซึ่งหมายความว่าคุณสามารถเพียง 834 00:40:42,617 --> 00:40:44,417 เพิ่มและนำมาใช้องค์ประกอบ [ไม่ได้ยิน] 835 00:40:44,417 --> 00:40:45,250 MARIA ZLATKOVA: Yup 836 00:40:45,250 --> 00:40:45,750 ได้. 837 00:40:45,750 --> 00:40:46,251 ที่แน่นอน 838 00:40:46,251 --> 00:40:48,875 เมื่อเราประกาศอาร์เรย์เรา ไม่จำเป็นต้องพูดในสิ่งที่ขนาดของมันคือ 839 00:40:48,875 --> 00:40:51,022 ดังนั้นเราก็สามารถเพิ่มองค์ประกอบ ลงได้ในภายหลังเช่นกัน 840 00:40:51,022 --> 00:40:55,075 841 00:40:55,075 --> 00:40:55,700 คำถามเพิ่มเติม? 842 00:40:55,700 --> 00:40:59,870 843 00:40:59,870 --> 00:41:05,950 ดังนั้นการนำ PHP และ HTML ด้วยกัน สิ่งที่เราได้ seen-- ดี 844 00:41:05,950 --> 00:41:15,130 ยกตัวอย่างเช่นในตัวอย่างนี้เรามี รูปแบบ HTML ที่มีเขตการป้อนข้อมูล 845 00:41:15,130 --> 00:41:18,830 >> และช่องใส่เป็นชื่อเพียง และจากนั้นก็มีปุ่ม Submit 846 00:41:18,830 --> 00:41:26,040 และเมื่อคุณกดส่ง ปุ่มในแฟ้ม hello.php ของเรา 847 00:41:26,040 --> 00:41:32,130 เพราะวิธีการรูปแบบที่เป็น ได้รับเราสามารถเข้าถึงสิ่งที่อยู่ในชื่อ 848 00:41:32,130 --> 00:41:40,360 นี้ได้รับตัวแปรทั่วโลกว่า is-- ไวยากรณ์ของมันคือ $ _GET 849 00:41:40,360 --> 00:41:44,520 และจากนั้นเราสามารถเข้าถึงใด ผู้ใช้ป้อนข้อมูลภายในของรูปแบบสำหรับชื่อที่ 850 00:41:44,520 --> 00:41:47,410 โดยระบุชื่อของเขตข้อมูลว่า 851 00:41:47,410 --> 00:41:51,480 852 00:41:51,480 --> 00:41:55,060 >> คำถามอื่น ๆ หรือ คำถามเกี่ยวกับตัวอย่างที่เฉพาะเจาะจงนี้หรือไม่? 853 00:41:55,060 --> 00:41:58,275 >> ผู้ชม: อยู่ที่ไหน PHP? 854 00:41:58,275 --> 00:41:59,150 MARIA ZLATKOVA: ที่นี่ 855 00:41:59,150 --> 00:42:01,150 ดังนั้นนี่คือแท็กเปิดของเราสำหรับภาษา PHP 856 00:42:01,150 --> 00:42:01,530 >> ผู้ชม: โอ้ขวา 857 00:42:01,530 --> 00:42:02,363 >> MARIA ZLATKOVA: ใช่ 858 00:42:02,363 --> 00:42:05,320 859 00:42:05,320 --> 00:42:09,609 >> HANNAH Blumberg: หรือไม่ = คือชวเลข สำหรับเรื่องนี้คือ PHP และเพียงแค่สะท้อน 860 00:42:09,609 --> 00:42:10,150 ผู้ชม: โอ้ 861 00:42:10,150 --> 00:42:10,720 MARIA ZLATKOVA: ใช่ขอโทษ 862 00:42:10,720 --> 00:42:12,040 ฉันควรจะทำที่ชัดเจน 863 00:42:12,040 --> 00:42:13,759 >> HANNAH Blumberg: พิมพ์ 864 00:42:13,759 --> 00:42:16,800 MARIA ZLATKOVA: มันเป็นเพียงแค่การทำงาน ที่ช่วยให้เราสามารถพิมพ์บางสิ่งบางอย่าง 865 00:42:16,800 --> 00:42:19,795 866 00:42:19,795 --> 00:42:20,420 คำถามที่ดี 867 00:42:20,420 --> 00:42:24,140 868 00:42:24,140 --> 00:42:25,495 ดังนั้น going-- ใช่ 869 00:42:25,495 --> 00:42:31,940 >> ผู้ชม: จะมีไปได้มากทีเดียว บิตของการเขียนโปรแกรมในมือของ PHP และ HTML 870 00:42:31,940 --> 00:42:33,450 ในการตอบคำถาม 1 871 00:42:33,450 --> 00:42:36,310 872 00:42:36,310 --> 00:42:38,810 MARIA ZLATKOVA: สามารถมีได้ จำนวนเงินที่ยุติธรรมของการตีความ 873 00:42:38,810 --> 00:42:43,330 ของ PHP และ HTML ไม่จำเป็นต้อง เหมือนเป็นจำนวนมากของการเข้ารหัส 874 00:42:43,330 --> 00:42:46,960 แม้ว่าคุณอาจจะต้องเขียน ห่วง foreach แต่สำหรับห่วง 875 00:42:46,960 --> 00:42:49,790 ใด ๆ ของลูปที่เรา ครอบคลุมที่นี่เป็นเกมที่ยุติธรรม 876 00:42:49,790 --> 00:42:51,889 และนั่นเป็นส่วนใหญ่ 877 00:42:51,889 --> 00:42:53,430 HANNAH Blumberg: ฉันจะต้องเตรียม 878 00:42:53,430 --> 00:42:57,010 ในลักษณะเดียวกับที่เราขอให้คุณ เขียนพวงของฟังก์ชัน C ในการตอบคำถาม 0, 879 00:42:57,010 --> 00:42:59,766 ผมจะมีความพร้อมที่จะทำ เดียวกันใน PHP และ JavaScript 880 00:42:59,766 --> 00:43:00,640 MARIA ZLATKOVA: ใช่ 881 00:43:00,640 --> 00:43:03,210 HANNAH Blumberg: ผมจะบอกว่า little-- เหมือนเราไม่ได้ 882 00:43:03,210 --> 00:43:06,251 จะทำให้คุณเขียน HTML ใหญ่ หน้าเพียงเพราะเห็นว่านิด ๆ หน่อย ๆ 883 00:43:06,251 --> 00:43:08,240 น่าเบื่อ แต่คุณอาจมีชิ้นส่วน 884 00:43:08,240 --> 00:43:09,310 นั่นเป็นเกมที่ยุติธรรมโดยสิ้นเชิง 885 00:43:09,310 --> 00:43:11,082 ชอบหน้า HTML เล็กน้อยเป็นธรรมทั้งหมด 886 00:43:11,082 --> 00:43:11,623 ผู้ชม: ตกลง 887 00:43:11,623 --> 00:43:13,814 วิธีการเกี่ยวกับใน JavaScript เช่นกัน? 888 00:43:13,814 --> 00:43:14,730 HANNAH Blumberg: ใช่ 889 00:43:14,730 --> 00:43:15,250 เกมที่ยุติธรรมของ JavaScript 890 00:43:15,250 --> 00:43:15,635 >> MARIA ZLATKOVA: ใช่ 891 00:43:15,635 --> 00:43:16,801 นั่นเป็นเกมที่ยุติธรรมอย่างสมบูรณ์ 892 00:43:16,801 --> 00:43:19,280 HANNAH Blumberg: เราจะได้รับ เพื่อว่าในเช่น 10 นาที 893 00:43:19,280 --> 00:43:23,750 >> MARIA ZLATKOVA: SQL อีกครั้ง ภาษาของแบบสอบถาม 894 00:43:23,750 --> 00:43:28,651 มันเป็นพื้นช่วยให้เราสามารถจัดการข้อมูล ในการจัดการฐานข้อมูลเชิงสัมพันธ์ 895 00:43:28,651 --> 00:43:29,150 ระบบ. 896 00:43:29,150 --> 00:43:31,149 ที่เพิ่งโดยทั่วไปหมายถึง ที่เรามีอยู่ที่ไหนสักแห่ง 897 00:43:31,149 --> 00:43:37,980 การจัดเก็บข้อมูลบางอย่างที่เราอาจต้องการที่จะ การใช้งานในเว็บไซต์หรือในบางรูปแบบอื่น 898 00:43:37,980 --> 00:43:42,190 และจากนั้นเรามีข้อสงสัยที่จะได้รับ ข้อมูลจากฐานข้อมูลของเรา 899 00:43:42,190 --> 00:43:44,320 หรือแทรกข้อมูลในพวกเขา 900 00:43:44,320 --> 00:43:47,560 จำนวนมากของการปรับปรุง ones-- ทั่วไป INSERT, เลือกและลบ 901 00:43:47,560 --> 00:43:50,790 >> ดังนั้นสำหรับการปรับปรุงนี้เป็นไวยากรณ์ สำหรับการปรับปรุงข้อมูลในฐานข้อมูล 902 00:43:50,790 --> 00:43:53,330 903 00:43:53,330 --> 00:43:57,340 อัพเดตตารางนี้เรียกว่า ตารางโดยกล่าวว่าตลาดหลักทรัพย์ฯ 904 00:43:57,340 --> 00:44:04,170 เราสามารถตั้งค่าบางอย่างในทุก แถวเพื่อสิ่งอื่นที่เท่าเทียมกัน 905 00:44:04,170 --> 00:44:09,410 ดังนั้นเราจึงยังสามารถระบุบาง รายการที่เราต้องการที่จะปรับเปลี่ยน 906 00:44:09,410 --> 00:44:11,240 และที่สามารถใช้สถานที่ 907 00:44:11,240 --> 00:44:16,380 และเราสามารถระบุว่าเราต้องการที่จะ ปรับเปลี่ยนบางแถวที่บ้านสำหรับ 908 00:44:16,380 --> 00:44:19,830 ถ้าเรามีตารางของนักเรียน และนักเรียนทุกคนมีบ้าน 909 00:44:19,830 --> 00:44:24,890 ดังนั้นเราจะปรับเปลี่ยนค่าบางอย่าง ที่บ้านเท่ากับคิวเรียร์, 910 00:44:24,890 --> 00:44:25,430 ตัวอย่างเช่น. 911 00:44:25,430 --> 00:44:29,120 912 00:44:29,120 --> 00:44:31,800 >> สำหรับ INSERT เราสามารถแทรก ค่าบางอย่างลงในตาราง 913 00:44:31,800 --> 00:44:35,150 ดังนั้น INSERT INTO ตาราง แล้วค่า 914 00:44:35,150 --> 00:44:39,080 และจากนั้นในวงเล็บเราระบุ ซึ่งค่าที่คุณต้องการแทรก 915 00:44:39,080 --> 00:44:43,220 ดังนั้น INSERT INTO ตาราง col1 และ col2 ค่าเป็น VAL1 และ val2 916 00:44:43,220 --> 00:44:48,930 ดังนั้นนี่แทรกพื้นแถวใหม่ใน ตารางที่มีค่าที่ 1 และ 2 917 00:44:48,930 --> 00:44:50,850 ภายใต้คอลัมน์ที่ 1 และ 2 918 00:44:50,850 --> 00:44:54,760 >> และจากนั้นเรากำลังจะไปมากกว่า ตัวอย่างรวดเร็วของวิธีนี้ดู 919 00:44:54,760 --> 00:44:56,310 เหมือนอยู่ในฐานข้อมูลของเรานิด ๆ หน่อย ๆ 920 00:44:56,310 --> 00:44:58,685 แต่คำนี้เป็นครั้งสุดท้ายที่ฉัน คิดว่าเรากำลังจะข้ามไป 921 00:44:58,685 --> 00:45:01,450 เลือกมันก็ช่วยให้เรา เพื่อเลือกข้อมูลจากตาราง 922 00:45:01,450 --> 00:45:03,080 อาจจะใช้งานได้หลังจากนั้น 923 00:45:03,080 --> 00:45:05,830 และวิธีที่เราทำเช่นนี้ก็คือเรา เพียงแค่เก็บไว้ในตัวแปรบาง 924 00:45:05,830 --> 00:45:07,780 และจากนั้นเราอาจจะสามารถใช้งานได้อีกครั้ง 925 00:45:07,780 --> 00:45:10,260 >> ดังนั้นเลือกดาวหมายถึงการเลือกทั้งหมด 926 00:45:10,260 --> 00:45:13,280 นั่นเป็นเพียงจดชวเลข สำหรับการเลือกทั้งหมด 927 00:45:13,280 --> 00:45:19,760 ตารางจากที่ไหนเรากำลังมองหา สำหรับเงื่อนไขที่เฉพาะเจาะจงบางอย่าง 928 00:45:19,760 --> 00:45:22,290 เพื่อที่คอลัมน์เท่ากับ บางสิ่งบางอย่างเช่น 929 00:45:22,290 --> 00:45:24,410 ถ้าเราอยากจะ เลือกทั้งหมดจากตาราง 930 00:45:24,410 --> 00:45:28,400 เพียงแค่นี้เลือกคอลัมน์ทั้งหมด และแถวทั้งหมดจากตาราง 931 00:45:28,400 --> 00:45:32,040 >> แล้วลบจากตาราง WHERE เทือกเขาเท่ากับบางสิ่งบางอย่าง 932 00:45:32,040 --> 00:45:36,440 เพียงแค่นี้ลบบาง แถวจากตารางของเรา 933 00:45:36,440 --> 00:45:38,860 ที่เรามีเงื่อนไขบางอย่าง 934 00:45:38,860 --> 00:45:41,870 ในกรณีนี้เงื่อนไข คอลัมน์เท่ากับบางสิ่งบางอย่าง 935 00:45:41,870 --> 00:45:43,460 ดังนั้นเพียงแค่ตัวอย่างรวดเร็วนี้ 936 00:45:43,460 --> 00:45:49,100 ถ้าเรามีตารางนี้ที่นี่และเรา ใส่ลงในตารางค่าเหล่านี้ 937 00:45:49,100 --> 00:45:50,400 ที่จะแทรกแถวใหม่ 938 00:45:50,400 --> 00:45:56,380 และถ้าเรามีรถยนต์ที่เพิ่มขึ้นนี้จะ เพียงแค่เพิ่ม ID ของเรา 0-1 ที่จะ 2 939 00:45:56,380 --> 00:46:00,010 >> ถ้าเราเลือกทั้งหมดจากนักเรียนก็ เพียงแค่ผลตอบแทนทุกสาขาและทุกแถว 940 00:46:00,010 --> 00:46:02,430 ในกรณีที่เป็นมากขึ้นในปี กว่าหรือเท่ากับปี 2016 941 00:46:02,430 --> 00:46:04,390 ที่เพิ่งจะกลับมา ฮันนาห์และตัวผมเอง 942 00:46:04,390 --> 00:46:08,360 และแล้วถ้าเราเลือกเพียง รหัสปีและในปีจากนักเรียน 943 00:46:08,360 --> 00:46:11,710 ที่บ้านเป็น Cabot บ้านว่า จะอีกครั้งกลับมาฮันนาห์และตัวผมเอง 944 00:46:11,710 --> 00:46:14,430 >> แล้วถ้าเราลบออกจากนักเรียน ชื่อที่มีค่าเท่ากับร็อบ 945 00:46:14,430 --> 00:46:16,760 ที่จะลบทั้งแถว 946 00:46:16,760 --> 00:46:19,696 และจากนั้นถ้าเราตั้งค่า ชื่อนักเรียน UPDATE 947 00:46:19,696 --> 00:46:21,570 ชื่อ SET เท่ากับ Daven สถานที่บ้านจะมีค่าเท่ากับ 948 00:46:21,570 --> 00:46:27,010 Cabot บ้านที่จะไป แถวเหล่านั้นและจากนั้นปรับปรุงชื่อ 949 00:46:27,010 --> 00:46:31,470 >> และจากนั้นไม่กี่ชนิดข้อมูล SQL เป็น CHAR, VARCHAR, INT และ FLOAT 950 00:46:31,470 --> 00:46:32,760 เหล่านี้เป็นเกมที่ยุติธรรม 951 00:46:32,760 --> 00:46:36,740 ฉันจะไปอีกครั้ง และให้แน่ใจว่าคุณรู้ว่า 952 00:46:36,740 --> 00:46:40,930 และมีพวกเขาอยู่บนแผ่นโกงของคุณ สิ่งที่แต่ละตัวอักษรเหล่านั้น 953 00:46:40,930 --> 00:46:44,140 ได้ถูกนำมาใช้สำหรับสิ่งที่ ที่คุณใช้พวกเขาใน psets ของคุณ 954 00:46:44,140 --> 00:46:48,050 และให้แน่ใจว่าคุณคุ้นเคยและ สะดวกสบายกับการต้องเลือก 955 00:46:48,050 --> 00:46:51,450 จากชนิดข้อมูลที่แตกต่างกันใน pset ของคุณ 956 00:46:51,450 --> 00:46:51,950 ใช่. 957 00:46:51,950 --> 00:46:54,300 >> ผู้ชม: อะไรคือสิ่งที่ตารางที่เก็บไว้? 958 00:46:54,300 --> 00:46:57,119 ใช่ที่เป็นตารางนี้เก็บไว้? 959 00:46:57,119 --> 00:46:59,160 MARIA ZLATKOVA: ดี ตอนนี้ก็ไม่ได้เก็บไว้ 960 00:46:59,160 --> 00:47:00,700 อย่างไรก็ตามที่เป็นตารางนี้เก็บไว้? 961 00:47:00,700 --> 00:47:04,503 แต่ก็สามารถเก็บไว้ในฐานข้อมูล SQL 962 00:47:04,503 --> 00:47:07,330 >> ผู้ชม: และสถานที่ที่เป็นฐานข้อมูล SQL? 963 00:47:07,330 --> 00:47:11,200 ในเครื่องคอมพิวเตอร์ออนไลน์ บางเซิร์ฟเวอร์หรือไม่ 964 00:47:11,200 --> 00:47:15,000 >> MARIA ZLATKOVA: มันอาจจะเป็น จำนวนสิ่งที่แตกต่าง 965 00:47:15,000 --> 00:47:19,690 >> HANNAH Blumberg: เราได้เชื่อมต่อกับ ตาราง SQL ส่วนใหญ่กับ phpMyAdmin 966 00:47:19,690 --> 00:47:22,060 ดังนั้นเราจึงสามารถขอเซิร์ฟเวอร์ เพื่อเก็บไว้สำหรับเรา 967 00:47:22,060 --> 00:47:23,830 เราสามารถเก็บไว้ในคอมพิวเตอร์ของเราเอง 968 00:47:23,830 --> 00:47:27,950 >> MARIA ZLATKOVA: มันก็ขึ้นอยู่กับ วิธีที่คุณต้องการที่จะทำมันด้วยตัวคุณเอง 969 00:47:27,950 --> 00:47:30,075 แต่เราได้รับการจัดเก็บ พวกเขาเป็นฮันนาห์กล่าว 970 00:47:30,075 --> 00:47:31,755 ใน phpMyAdmin ซึ่งเป็นออนไลน์ 971 00:47:31,755 --> 00:47:36,550 972 00:47:36,550 --> 00:47:39,280 และแล้ววิธีที่เราใช้ PHP และ SQL เราเก็บไว้ 973 00:47:39,280 --> 00:47:43,450 ลงในตัวแปรบาง สิ่งที่เราได้สอบถาม 974 00:47:43,450 --> 00:47:48,370 >> ดังนั้นหากเราเลือกทั้งหมดจากประวัติศาสตร์ ที่ user_id เท่ากับรหัสเซสชั่น 975 00:47:48,370 --> 00:47:53,900 ที่จะเลือกแถวทั้งหมด สำหรับคนที่เฉพาะเจาะจง 976 00:47:53,900 --> 00:47:58,327 ถูกบันทึกไว้ในประวัติศาสตร์จาก โต๊ะและจัดเรียงพวกเขาเข้าแถว 977 00:47:58,327 --> 00:48:00,410 สิ่งที่เย็นจะรู้ก็คือ ว่าการทำงานของแบบสอบถาม CS50 978 00:48:00,410 --> 00:48:02,180 ป้องกัน SQL แท็กการฉีด 979 00:48:02,180 --> 00:48:07,420 นั่นก็หมายความว่ามันจะทำให้แน่ใจว่า การป้อนข้อมูลที่ป้อนถูกต้อง 980 00:48:07,420 --> 00:48:09,920 และคนที่ จะเข้าสู่การป้อนข้อมูล 981 00:48:09,920 --> 00:48:15,100 ไม่พยายามที่จะเข้าบางที่เป็นอันตราย รหัสทั้งวางตารางของเรา 982 00:48:15,100 --> 00:48:17,305 หรือลบทุกอย่าง ด้านในของฐานข้อมูลของเรา 983 00:48:17,305 --> 00:48:20,060 984 00:48:20,060 --> 00:48:23,400 >> ภาพรวมอย่างรวดเร็วของ รุ่นดูรูปแบบการควบคุม 985 00:48:23,400 --> 00:48:27,360 มันเป็นเพียงวิธีการจัด และการคิดเกี่ยวกับรหัส 986 00:48:27,360 --> 00:48:29,100 มันเป็นอีกครั้งกระบวนทัศน์การออกแบบ 987 00:48:29,100 --> 00:48:33,380 สิ่งที่หมายถึงคือการที่เรา can-- และเป็นแนวปฏิบัติที่ดี 988 00:48:33,380 --> 00:48:37,790 ที่จะแยกชิ้นส่วนที่แตกต่างกัน รหัสและสิ่งที่พวกเรา 989 00:48:37,790 --> 00:48:40,530 เข้าควบคุมทั้งสามกระบวนทัศน์ 990 00:48:40,530 --> 00:48:46,700 >> ดังนั้นมุมมองของเราส่วนใหญ่มักจะเป็นของเรา แม่แบบรูปแบบของเราทาง 991 00:48:46,700 --> 00:48:48,260 ที่เราตั้งค่ารหัสของเราดู 992 00:48:48,260 --> 00:48:55,190 นั่นเป็นส่วนใหญ่ไฟล์ CSS ของเราและวิธีการที่ ที่เรากำหนดไว้การออกแบบของรหัสของเรา 993 00:48:55,190 --> 00:48:55,710 เป็นพื้น 994 00:48:55,710 --> 00:48:59,280 ควบคุมของเราส่วนใหญ่จะเป็นสิ่งที่ เราได้รับการทำกับไฟล์ PHP 995 00:48:59,280 --> 00:49:03,030 ดังนั้นอีกครั้งการทำงานร่วมกับ ข้อมูลที่เรามี 996 00:49:03,030 --> 00:49:06,700 และการกำหนดวิธีการที่ ข้อมูลจะถูกนำมาใช้ 997 00:49:06,700 --> 00:49:10,660 แล้วส่งผ่านข้อมูลนั้น อย่างใดอย่างหนึ่งลงบนมุมมองหรือรูปแบบ 998 00:49:10,660 --> 00:49:13,880 และรูปแบบวิธีการที่เราได้ ได้ใช้มีที่ได้รับฐานข้อมูลของเรา 999 00:49:13,880 --> 00:49:17,510 เพื่อที่ข้อมูลของเราคือ เก็บไว้ดังนั้นจึงมีที่ใดที่หนึ่ง 1000 00:49:17,510 --> 00:49:21,490 ที่จะอยู่ในและใด ๆ ของ รหัสที่เกี่ยวข้องกับวิธีการ 1001 00:49:21,490 --> 00:49:25,410 ที่เราได้รับว่าข้อมูลหรือ วิธีการที่เราปรับปรุงข้อมูลว่า 1002 00:49:25,410 --> 00:49:28,940 1003 00:49:28,940 --> 00:49:33,200 >> ดังนั้นในรูปแบบ MVC, HTTP การร้องขอจะถูกส่งไปยังเว็บเซิร์ฟเวอร์ 1004 00:49:33,200 --> 00:49:36,220 จากนั้นตีความควบคุม การร้องขอจากผู้ใช้ 1005 00:49:36,220 --> 00:49:38,260 และจากนั้นจะตรวจสอบผู้ใช้ป้อน 1006 00:49:38,260 --> 00:49:41,580 มันเป็นตัวเลือกที่เรามี ควบคุมการสื่อสาร 1007 00:49:41,580 --> 00:49:44,000 กับรูปแบบเพื่อให้บางสิ่งบางอย่าง เช่นฐานข้อมูลของเรา 1008 00:49:44,000 --> 00:49:47,500 หรือการทำงานอื่น ๆ ที่รีเลย์ข้อมูล 1009 00:49:47,500 --> 00:49:50,340 และแล้วในที่สุดตัวควบคุม ส่งผ่านข้อมูลไปยังมุมมอง 1010 00:49:50,340 --> 00:49:52,090 เพื่อที่จะสามารถ การแสดงผลและการที่จะสามารถ 1011 00:49:52,090 --> 00:49:55,860 กลายเป็นมองเห็นให้กับบุคคลใด ๆ การเข้าถึงหน้าเว็บที่ 1012 00:49:55,860 --> 00:49:58,440 1013 00:49:58,440 --> 00:50:01,340 >> มีคำถามอะไรไหม? 1014 00:50:01,340 --> 00:50:01,840 ที่น่ากลัว 1015 00:50:01,840 --> 00:50:04,530 1016 00:50:04,530 --> 00:50:08,469 ดังนั้นอีกครั้งรูปแบบ ฟังก์ชั่นของตนอีกครั้ง 1017 00:50:08,469 --> 00:50:11,260 การจัดเก็บถาวรของข้อมูล การจัดการและการจัดระเบียบข้อมูล 1018 00:50:11,260 --> 00:50:13,890 และสิ่งที่เราได้เห็น ห่างไกลเป็นฐานข้อมูล MySQL 1019 00:50:13,890 --> 00:50:16,200 และไฟล์ข้อมูลใด ๆ ที่อาจใช้ 1020 00:50:16,200 --> 00:50:20,580 >> มุมมองการนำเสนอข้อมูลให้กับ ผู้ใช้, UI หรือส่วนติดต่อผู้ใช้ 1021 00:50:20,580 --> 00:50:22,350 และตัวอย่างนี้เป็น HTML 1022 00:50:22,350 --> 00:50:23,950 และจากนั้นเราอาจจะมี PHP น้อยที่สุด 1023 00:50:23,950 --> 00:50:28,360 ดังนั้นสำหรับวงที่ iterates มากกว่าข้อมูลที่พิมพ์ออกมา 1024 00:50:28,360 --> 00:50:30,720 เป็นส่วนหนึ่งของมุมมองที่เป็น ตรงข้ามกับการควบคุม 1025 00:50:30,720 --> 00:50:35,660 และมากแล้วไฟล์ PHP ของเรา ตกอยู่ในประเภทการควบคุม 1026 00:50:35,660 --> 00:50:38,410 มันก็จัดการการร้องขอของผู้ใช้และ ได้รับข้อมูลจากแบบจำลอง 1027 00:50:38,410 --> 00:50:42,880 1028 00:50:42,880 --> 00:50:45,590 >> กระโดดลงไปในเอกสาร รูปแบบวัตถุเพียงแค่นี้ 1029 00:50:45,590 --> 00:50:47,700 หมายถึงวิธีการ html เอกสารที่มีการจัด 1030 00:50:47,700 --> 00:50:51,600 และพวกเขากำลังจัดเป็นต้นไม้ โครงสร้างที่มีลำดับชั้น 1031 00:50:51,600 --> 00:50:56,720 ดังนั้นหากเรามีการเข้าถึง [ไม่ได้ยิน] ตัวแทนของเอกสาร 1032 00:50:56,720 --> 00:51:02,750 เราสามารถทำงานกับเอกสารเช่น เราจัดการกับวัตถุพื้น 1033 00:51:02,750 --> 00:51:06,630 >> และเพื่อให้นี้ นิด ๆ หน่อย ๆ ที่ชัดเจนเมื่อ 1034 00:51:06,630 --> 00:51:10,540 เรามีจำนวนมากของเรา แท็กที่แตกต่างกันตอบสนอง 1035 00:51:10,540 --> 00:51:12,590 เส้นทางที่แตกต่างกันในต้นไม้ของเรา 1036 00:51:12,590 --> 00:51:17,070 และแล้วสำหรับตัวอย่างนี้เรา มีโหนดเอกสารเริ่มต้น 1037 00:51:17,070 --> 00:51:20,010 เรามีแล้วโหนด HTML ของเรา ที่แยกออกเป็นหัวและลำตัว 1038 00:51:20,010 --> 00:51:22,810 หัวมีชื่อแล้ว มีชื่อสวัสดีโลก 1039 00:51:22,810 --> 00:51:24,860 และร่างกายของเรามีเพียงแค่ สวัสดีโลกได้เป็นอย่างดี 1040 00:51:24,860 --> 00:51:28,700 1041 00:51:28,700 --> 00:51:31,900 >> ดังนั้นคำถามใด ๆ เกี่ยวกับการใด ๆ สิ่งที่เราได้รับการคุ้มครองเพื่อให้ห่างไกล? 1042 00:51:31,900 --> 00:51:35,891 และหากไม่ได้ฮันนาห์จะ ใช้เวลามากกว่าด้วย JavaScript 1043 00:51:35,891 --> 00:51:36,390 ที่น่ากลัว 1044 00:51:36,390 --> 00:51:37,473 >> HANNAH Blumberg: OK เย็น 1045 00:51:37,473 --> 00:51:40,980 หากมีสิ่งใดมากับ PHP หรือ HTML, หรือใด ๆ ของสิ่งที่มาเรียครอบคลุม, 1046 00:51:40,980 --> 00:51:42,700 เราสามารถหยุดการทำงานชั่วคราว 1047 00:51:42,700 --> 00:51:46,430 เรากำลังดำเนินการที่ดีขึ้นใน เวลาอีกครั้งเพื่อให้น่ากลัว 1048 00:51:46,430 --> 00:51:48,770 และเพียงแค่กลับไป ได้อย่างรวดเร็วจริงๆนี้ 1049 00:51:48,770 --> 00:51:51,010 ถ้าคุณมองไปที่ทุก การสอบปีที่ผ่านมานี้ 1050 00:51:51,010 --> 00:51:54,120 มาที่นี่เป็น either-- HTML บางทำให้แผนภาพนี้ 1051 00:51:54,120 --> 00:51:58,380 หรือนี่เป็นแผนภาพนี้ทำให้บาง HTML เพื่อให้การปฏิบัติที่แน่นอน 1052 00:51:58,380 --> 00:52:01,500 และแล้วที่หนึ่งรับประกัน คำถามที่คุณสามารถได้รับสิทธิ 1053 00:52:01,500 --> 00:52:02,000 เย็น. 1054 00:52:02,000 --> 00:52:04,510 ดังนั้นเรามาพูดคุยเกี่ยวกับ JavaScript และวิธีที่จะนิด ๆ หน่อย ๆ 1055 00:52:04,510 --> 00:52:09,130 ที่แตกต่างจากภาษาเช่น PHP และ C, สองภาษาที่เราเห็นก่อน 1056 00:52:09,130 --> 00:52:10,780 จำนวนหนึ่งดังนั้นจึงพิมพ์อย่างอิสระ 1057 00:52:10,780 --> 00:52:14,630 นั่นคือเช่น PHP แต่ไม่เหมือนซี 1058 00:52:14,630 --> 00:52:15,890 >> มันเป็นภาษาที่ตีความ 1059 00:52:15,890 --> 00:52:19,870 อีกครั้งที่ชอบ PHP ซึ่งแตกต่างจากซีและนี่ 1060 00:52:19,870 --> 00:52:24,630 เป็นไปเพื่อช่วยให้เราสามารถ use-- มัน ทำงานจริงๆอย่างกับหน้าเว็บ 1061 00:52:24,630 --> 00:52:28,350 มันจะช่วยให้เราสามารถจัดการกับ เนื้อหาและวิธีการที่จะดู 1062 00:52:28,350 --> 00:52:30,300 และสิ่งที่มันไม่ 1063 00:52:30,300 --> 00:52:32,330 >> เรากำลังจะไปดูนิด ๆ หน่อย ๆ ของอาแจ็กซ์ 1064 00:52:32,330 --> 00:52:36,140 จะช่วยให้เราสามารถสื่อสาร ถ่ายทอดสดกับเซิร์ฟเวอร์ที่แตกต่างกัน 1065 00:52:36,140 --> 00:52:37,950 และได้รับข้อมูล 1066 00:52:37,950 --> 00:52:42,820 และนี่คือสิ่งที่จริงๆ แยกจากจาวาสคริปต์ PHP และ C 1067 00:52:42,820 --> 00:52:45,590 คือว่ามันเป็นฝั่งไคลเอ็นต์ 1068 00:52:45,590 --> 00:52:49,860 ทั้ง PHP และ C เป็น โดยทั่วไปด้านเซิร์ฟเวอร์ 1069 00:52:49,860 --> 00:52:51,960 >> ส่วนใหญ่และ สิ่งที่เกือบทั้งหมด 1070 00:52:51,960 --> 00:52:53,900 เราได้เห็นอย่างน้อยใน ชั้นนี้ JavaScript 1071 00:52:53,900 --> 00:52:57,040 ทำหน้าที่ในฝั่งไคลเอ็นต์ซึ่งหมายความว่า เบราว์เซอร์ที่เป็นจริง 1072 00:52:57,040 --> 00:52:58,597 ความรับผิดชอบในการทำงาน 1073 00:52:58,597 --> 00:53:01,180 และนั่นหมายความว่าเราทำไม่ได้ จำเป็นที่จะต้องมีปฏิสัมพันธ์กับเซิร์ฟเวอร์ 1074 00:53:01,180 --> 00:53:04,380 ดังนั้นจึงหมายความว่ามันสามารถเป็นจำนวนมากได้เร็วขึ้น เพราะมันเป็นจริงเพียงมันเป็นโครเมี่ยม 1075 00:53:04,380 --> 00:53:10,420 มันซาฟารีก็ Firefox, สิ่งที่คุณ ใช้ทำงานจริง JavaScript ของคุณ 1076 00:53:10,420 --> 00:53:12,290 >> ผู้ชม: อะไรไม่ตรงกันหมายความว่าอย่างไร 1077 00:53:12,290 --> 00:53:13,620 >> HANNAH Blumberg: อ่าสิ่งที่ ไม่ถ่ายทอดสดหมายความว่าอย่างไร 1078 00:53:13,620 --> 00:53:14,250 คำถามที่ดี 1079 00:53:14,250 --> 00:53:17,890 Asynchronously means-- ดีเนื้อหาที่ 1080 00:53:17,890 --> 00:53:22,140 เราจะใช้มันเป็นตกลงเรา มีการสร้างหน้าเว็บ 1081 00:53:22,140 --> 00:53:23,860 และเราจำเป็นต้องได้รับข้อมูลบางอย่าง 1082 00:53:23,860 --> 00:53:28,250 ดังนั้นด้วยตัวอย่างของการตอบโต้กับผู้ใช้ได้ที่ ข้อมูลบางอย่างที่เราอาจต้องการ 1083 00:53:28,250 --> 00:53:30,580 เป็นชื่อบทความ 1084 00:53:30,580 --> 00:53:33,330 ตอนนี้เรา could-- ทางเลือกหนึ่ง จะทำพร้อมกัน 1085 00:53:33,330 --> 00:53:37,940 และนั่นหมายความว่าให้ของ หยุดไปได้รับบทความ 1086 00:53:37,940 --> 00:53:41,275 บทความได้รับกลับมาแล้ว ทำให้ แต่จะช้าจริงๆ 1087 00:53:41,275 --> 00:53:44,150 ที่จะเป็นประสบการณ์การใช้งานที่ไม่ดี เพราะคุณก็จะได้นั่ง 1088 00:53:44,150 --> 00:53:46,630 มีรออะไรบางอย่างที่จะตอบสนอง 1089 00:53:46,630 --> 00:53:50,020 >> Asynchronously หมายความว่าเราจะ ดำเนินการต่อไปจะเกี่ยวกับธุรกิจของเรา 1090 00:53:50,020 --> 00:53:52,529 การแสดงผลหน้าและ เราจะส่งออกร้องขอ 1091 00:53:52,529 --> 00:53:54,570 ที่ชนิดของการไป เกิดขึ้นในพื้นหลัง 1092 00:53:54,570 --> 00:53:57,610 ผมคิดว่าเราใช้ตัวอย่างใน การบรรยายของการเรียกร็อบและพูดว่า 1093 00:53:57,610 --> 00:53:59,980 เดี๋ยวก่อนคุณสามารถมองขึ้นนี้ สำหรับฉันและได้รับกลับมาให้ฉัน 1094 00:53:59,980 --> 00:54:02,870 เมื่อเทียบกับเพียงฉัน รอทางโทรศัพท์ 1095 00:54:02,870 --> 00:54:07,020 ดังนั้นถ่ายทอดสดหมายความว่ามันจะเกิดขึ้น ในพื้นหลังออกไปจากเรา 1096 00:54:07,020 --> 00:54:08,676 ในแบบคู่ขนาน. 1097 00:54:08,676 --> 00:54:10,400 >> คำถามที่ดี 1098 00:54:10,400 --> 00:54:11,830 อะไรอีกหรือไม่ 1099 00:54:11,830 --> 00:54:12,330 ที่ดี 1100 00:54:12,330 --> 00:54:15,020 เราจะกระโดดมากขึ้นเป็น ร้องขอไม่ตรงกันกับอาแจ็กซ์ 1101 00:54:15,020 --> 00:54:18,287 >> ผู้ชม: ไม่ JavaScript-- ที่ไม่ มันตกกับตัวควบคุมแบบมุมมอง? 1102 00:54:18,287 --> 00:54:19,620 HANNAH Blumberg: คำถามที่ดี 1103 00:54:19,620 --> 00:54:23,320 ฤดูใบไม้ร่วง JavaScript จะอยู่ที่ไหน กับตัวควบคุมแบบมุมมอง? 1104 00:54:23,320 --> 00:54:23,930 หืมมม 1105 00:54:23,930 --> 00:54:28,350 ผมคิดว่ามันสามารถ fall-- ดังนั้นเราจึงมักจะไม่ 1106 00:54:28,350 --> 00:54:31,340 ชอบที่จะ squish มันกลายเป็นว่า กระบวนทัศน์ แต่ผมคิดว่าผมจะพูดว่า 1107 00:54:31,340 --> 00:54:34,280 ตกลงดังนั้น JavaScript จริงเป็นไปเพื่อให้ 1108 00:54:34,280 --> 00:54:37,587 เราจะรวบรวมข้อมูล ตีความข้อมูลทำจริง 1109 00:54:37,587 --> 00:54:38,920 สิ่งที่มีความหมายกับข้อมูล 1110 00:54:38,920 --> 00:54:41,100 ในแบบที่มันเป็นเหมือนการควบคุมมาก 1111 00:54:41,100 --> 00:54:43,900 >> แต่ก็ยังจะช่วยให้เราสามารถ สิ่งที่แสดงและสิ่งที่พิมพ์ 1112 00:54:43,900 --> 00:54:47,021 ในแบบที่มันเป็นมุมมองที่เหมือนมาก 1113 00:54:47,021 --> 00:54:47,520 ใช่. 1114 00:54:47,520 --> 00:54:51,710 ดังนั้นมันจึงเป็นชนิดเช่น PHP ใน ที่จะสามารถชนิดของการเป็นได้ทั้ง 1115 00:54:51,710 --> 00:54:53,330 คำถามที่ดี. 1116 00:54:53,330 --> 00:54:55,209 อะไรอีกหรือไม่ 1117 00:54:55,209 --> 00:54:56,000 สิทธิทั้งหมดที่น่ากลัว 1118 00:54:56,000 --> 00:54:57,120 ย้ายขวาพร้อม 1119 00:54:57,120 --> 00:54:59,110 >> ดังนั้นเรามาดูตัวอย่าง วิธีการที่เราสามารถใช้ 1120 00:54:59,110 --> 00:55:02,250 JavaScript ในหนึ่งในโปรแกรมเว็บของเรา 1121 00:55:02,250 --> 00:55:05,680 ดังนั้นผมจึงจะพิจารณาเรื่องนี้ index.html กับพวงของที่ HTML 1122 00:55:05,680 --> 00:55:08,800 และสิ่งที่ผมต้องการให้คุณ มุ่งเน้นไปที่แท็กสคริปต์นี้ 1123 00:55:08,800 --> 00:55:13,280 และนี่กล่าวว่าตกลงฉันต้องการที่จะทำงานบางอย่าง JavaScript และที่นี่เป็นที่ที่มันอาศัยอยู่ 1124 00:55:13,280 --> 00:55:15,400 มันอาศัยอยู่ใน hello.js 1125 00:55:15,400 --> 00:55:21,120 >> และอย่างมากเช่น CSS, เราสามารถทำได้ ใส่จาวาสคริปต์ภายในของ HTM​​L 1126 00:55:21,120 --> 00:55:24,000 ทำไมเราอาจต้องการที่จะแยกออก? 1127 00:55:24,000 --> 00:55:24,500 ใช่. 1128 00:55:24,500 --> 00:55:25,486 >> ผู้ชม: ง่ายต่อการเขียน? 1129 00:55:25,486 --> 00:55:26,402 >> HANNAH Blumberg: ใช่ 1130 00:55:26,402 --> 00:55:28,450 มันง่ายที่จะใช้ข้าม หน้าเว็บที่แตกต่างกัน 1131 00:55:28,450 --> 00:55:29,980 มันทำให้สิ่งที่ทำความสะอาด 1132 00:55:29,980 --> 00:55:32,090 มันเป็นเพียงการปฏิบัติที่ดี 1133 00:55:32,090 --> 00:55:32,590 ที่น่ากลัว 1134 00:55:32,590 --> 00:55:33,930 คำตอบที่ดี. 1135 00:55:33,930 --> 00:55:36,690 ดังนั้นที่ดีเพื่อให้เป็นไป จะเป็น index.html ของเรา 1136 00:55:36,690 --> 00:55:39,430 และจากนั้นก็ลงที่นี่เป็นของเรา ไฟล์จาวาสคริปต์เล็ก ๆ เล็ก ๆ น้อย ๆ 1137 00:55:39,430 --> 00:55:42,410 >> และทั้งหมดก็บอกว่าเป็นแจ้งเตือนสวัสดีโลก 1138 00:55:42,410 --> 00:55:46,040 ดังนั้นสิ่งที่เกิดขึ้นคือเมื่อ renders-- หน้านี้ 1139 00:55:46,040 --> 00:55:49,680 ดังนั้นหากคุณไปที่สิ่งที่เว็บไซต์ นี้ is-- ทั้งหมดที่จะเกิดขึ้น 1140 00:55:49,680 --> 00:55:53,330 มันจะเป็นไปได้ที่จะพูดว่าตกลงฉัน จะไปทำงานนี้โค้ด JavaScript 1141 00:55:53,330 --> 00:55:56,370 และนี่โค้ด JavaScript เพียงกล่าวว่าการแจ้งเตือนสวัสดีโลก 1142 00:55:56,370 --> 00:55:59,090 ดังนั้นฉันจะได้รับนี้ เล็ก ๆ น้อย ๆ ที่เป็นมิตรป๊อปอัพ 1143 00:55:59,090 --> 00:56:00,360 >> เย็น? 1144 00:56:00,360 --> 00:56:04,746 นั่นคือชนิดเช่นครั้งแรกของเรามาก โปรแกรม JavaScript สวัสดีของเราทั่วโลก 1145 00:56:04,746 --> 00:56:07,690 1146 00:56:07,690 --> 00:56:12,190 ลองดูนิด ๆ หน่อย ๆ เกี่ยวกับสิ่งที่ ไวยากรณ์ของ JavaScript ดูเหมือน 1147 00:56:12,190 --> 00:56:16,330 และโดยเฉพาะขอเปรียบเทียบกับ C และ PHP ซึ่งเราเคยเห็นมาก่อน 1148 00:56:16,330 --> 00:56:20,610 >> ใน JavaScript เรากำลังจะมี var ชื่อของตัวแปรแล้ว 1149 00:56:20,610 --> 00:56:21,690 มูลค่าที่แท้จริงของมัน 1150 00:56:21,690 --> 00:56:26,170 และเราไม่ได้ระบุชนิดเพียง เช่นใน PHP แต่อย่างแตกต่างจากในซี 1151 00:56:26,170 --> 00:56:28,850 ดังนั้นตัวอย่างเช่นถ้าเราต้องการ ในการจัดเก็บ 50 ค่า 1152 00:56:28,850 --> 00:56:32,490 ใน C เราจะต้องบอกว่า เฮ้, C, ฉันต้องการจำนวนเต็ม 1153 00:56:32,490 --> 00:56:35,076 ฉันจะเรียกมันว่า i และค่าของมันคือ 50 1154 00:56:35,076 --> 00:56:36,450 ใน PHP ก็ง่ายขึ้นอีกนิด 1155 00:56:36,450 --> 00:56:41,880 เราบอกว่าเดี๋ยวก่อนฉันต้องการตัวแปร เรียกว่าฉันและความคุ้มค่าของมันคือ 50 1156 00:56:41,880 --> 00:56:45,890 มากในทำนองเดียวกันใน JavaScript เรา บอกว่าเดี๋ยวก่อนฉันต้องการตัวแปรที่เรียกว่า i, 1157 00:56:45,890 --> 00:56:47,080 ค่าของมันคือ 50 1158 00:56:47,080 --> 00:56:52,140 ทุกครั้งที่ผมใช้ในภายหลัง ฉันฉันไม่จำเป็นต้องเขียน var 1159 00:56:52,140 --> 00:56:53,810 มันเป็นเพียงฉันจากจุดนั้น 1160 00:56:53,810 --> 00:56:58,660 ในทำนองเดียวกับใน C ที่ เมื่อเราพูด int i, เราก็ใช้ฉัน 1161 00:56:58,660 --> 00:57:00,340 เย็น? 1162 00:57:00,340 --> 00:57:01,800 ทั้งหมดขวา 1163 00:57:01,800 --> 00:57:03,710 >> ย้ายไปยังลูป โชคดีที่เหล่านี้เกือบจะ 1164 00:57:03,710 --> 00:57:06,720 ดู exactly-- ผมคิดว่าพวกเขากำลัง เหมือนกับสิ่งที่ 1165 00:57:06,720 --> 00:57:09,799 ลูปจะมีลักษณะเหมือนใน บางสิ่งบางอย่างเช่น C ที่ของคุณสำหรับวง 1166 00:57:09,799 --> 00:57:11,840 เป็นไปได้ที่สาม parts-- เริ่มต้นที่ 1167 00:57:11,840 --> 00:57:13,640 สภาพและการปรับปรุง 1168 00:57:13,640 --> 00:57:15,340 ห่วงในขณะที่จะมีลักษณะเดียวกันแน่นอน 1169 00:57:15,340 --> 00:57:16,390 เราเพียงแค่ให้มันเงื่อนไข 1170 00:57:16,390 --> 00:57:18,264 >> และทำในขณะที่ห่วง อีกครั้งเหมือนกัน 1171 00:57:18,264 --> 00:57:20,190 เราจะให้มันเงื่อนไข 1172 00:57:20,190 --> 00:57:24,510 สมมติว่าผมอยากจะย้ำ over-- ฉันอยากจะทำบางสิ่งบางอย่างห้าครั้ง 1173 00:57:24,510 --> 00:57:27,840 ใน C เราอาจจะเขียน สำหรับ init ฉันเท่ากับ 0 1174 00:57:27,840 --> 00:57:30,480 ฉันมีค่าน้อยกว่า 5 ผม ++ 1175 00:57:30,480 --> 00:57:34,240 ความแตกต่างเพียงอย่างเดียวใน JavaScript, แทนที่จะพูดว่าฉัน int เท่ากับ 0, 1176 00:57:34,240 --> 00:57:36,820 เราบอกว่าฉัน var เท่ากับ 0 1177 00:57:36,820 --> 00:57:38,370 สวย. 1178 00:57:38,370 --> 00:57:41,320 นั่นคือความแตกต่างเพียง 1179 00:57:41,320 --> 00:57:43,200 คำถามใด ๆ เกี่ยวกับการใด ๆ ที่? 1180 00:57:43,200 --> 00:57:44,160 ใช่. 1181 00:57:44,160 --> 00:57:48,480 >> ผู้ชม: ดังนั้นใน PHP ก็เหมือนกัน สิ่งยกเว้น แต่เช่นเดียวกับตัวแปรหรือไม่? 1182 00:57:48,480 --> 00:57:49,564 หรือก็คือการที่ตัวอย่างเช่น var หรือไม่? 1183 00:57:49,564 --> 00:57:50,480 HANNAH Blumberg: ใช่ 1184 00:57:50,480 --> 00:57:52,310 ดังนั้นใน PHP ก็จะ จะเป็นเครื่องหมายดอลลาร์ 1185 00:57:52,310 --> 00:57:59,450 ดังนั้นมันจะเท่ากับ $ ฉัน 0, $ ฉันน้อยกว่า 5, $ ผม ++ 1186 00:57:59,450 --> 00:58:02,490 คำถามที่ดี 1187 00:58:02,490 --> 00:58:04,570 >> ตอนนี้ขอพูดคุยเกี่ยวกับ ฟังก์ชั่นการประกาศ 1188 00:58:04,570 --> 00:58:07,010 ใน C เมื่อเราประกาศให้เป็น ฟังก์ชั่นที่เราให้มันชื่อ 1189 00:58:07,010 --> 00:58:08,490 และเราให้มันพารามิเตอร์บางอย่าง 1190 00:58:08,490 --> 00:58:10,670 และที่จุดเริ่มต้นที่เราเขียนประเภท 1191 00:58:10,670 --> 00:58:12,440 ใน JavaScript เราทุกคน ต้องทำคือการเขียน 1192 00:58:12,440 --> 00:58:15,080 ฟังก์ชั่นคำหลักที่ กล่าวว่าเฮ้, JavaScript, 1193 00:58:15,080 --> 00:58:16,570 ฉันจะกำหนดฟังก์ชั่น 1194 00:58:16,570 --> 00:58:18,520 >> ในกรณีนี้จะมีผลรวมชื่อ 1195 00:58:18,520 --> 00:58:20,820 และจะใช้เวลาสองขัดแย้ง, x และ y 1196 00:58:20,820 --> 00:58:23,280 ขอให้สังเกตว่าเราไม่ดูแล เกี่ยวกับชนิดของ x และ y 1197 00:58:23,280 --> 00:58:26,280 และเช่นเดียวกับซีเรามี นี้การกลับมาของคำหลัก 1198 00:58:26,280 --> 00:58:29,140 เพื่อให้เราสามารถทำบางสิ่งบางอย่าง เช่นเดียวกับผลตอบแทนที่ x และ y 1199 00:58:29,140 --> 00:58:32,540 >> และตอนนี้เมื่อเราได้เขียนนี้เป็นครั้งแรก ฟังก์ชั่นที่เราสามารถใช้ผลรวมได้ทุกที่ 1200 00:58:32,540 --> 00:58:34,740 และที่ดีทั้งหมด 1201 00:58:34,740 --> 00:58:37,530 สิ่งหนึ่งที่เย็นจริงๆเกี่ยวกับ จาวาสคริปต์ที่มีความแตกต่างจาก C 1202 00:58:37,530 --> 00:58:40,770 เป็นฟังก์ชั่นที่สามารถ ได้รับการปฏิบัติเช่นค่า 1203 00:58:40,770 --> 00:58:43,895 เพื่อให้เราสามารถทำสิ่งที่ชอบที่นี่ ที่ฉันคิดว่าฉันนี้ครอบคลุม up-- 1204 00:58:43,895 --> 00:58:46,400 ฉันปกคลุมผลรวมวา part-- และเราก็กล่าวว่า 1205 00:58:46,400 --> 00:58:49,850 ฟังก์ชั่นเซ็กซี่เท่ากับ x y ที่กลับมาบวก 1206 00:58:49,850 --> 00:58:52,140 >> นั่นคือสิ่งที่จะถูกเรียกว่า ที่ไม่ระบุชื่อฟังก์ชั่น 1207 00:58:52,140 --> 00:58:53,920 มันเป็นฟังก์ชั่นที่ไม่มีชื่อ 1208 00:58:53,920 --> 00:58:56,290 ในขณะที่ฟังก์ชั่นนี้กล่าวว่า ผลรวม blah, blah, blah, 1209 00:58:56,290 --> 00:58:59,340 เพียงแค่นี้จะบอกว่าฟังก์ชั่น 1210 00:58:59,340 --> 00:59:02,020 แต่ตอนนี้แม้ว่าฉันมี ฟังก์ชั่นนี้ที่ไม่ระบุชื่อ 1211 00:59:02,020 --> 00:59:03,630 ฟังก์ชั่นที่เป็นจริงเพียงแค่ค่า 1212 00:59:03,630 --> 00:59:05,160 เราสามารถรักษามันเช่นค่า 1213 00:59:05,160 --> 00:59:10,180 >> ดังนั้นเราจึงสามารถบันทึกไว้ในตัวแปรเดียวกัน วิธีที่เราสามารถเก็บ 50 ในตัวแปร 1214 00:59:10,180 --> 00:59:13,870 ดังนั้นเราจึงสามารถพูดได้ว่าตกลงฉันต้องการ ตัวแปรก็เรียกว่าผลรวม 1215 00:59:13,870 --> 00:59:16,011 และมันก็เป็นฟังก์ชั่นนี้ 1216 00:59:16,011 --> 00:59:18,760 ดังนั้นทั้งสองสิ่งเป็นจริง จะทำสิ่งเดียวที่แน่นอน, 1217 00:59:18,760 --> 00:59:21,576 แต่ไวยากรณ์เล็ก ๆ น้อย ๆ แตกต่างกันและชนิดของการบันทึกความสนุกสนาน 1218 00:59:21,576 --> 00:59:22,076 ใช่. 1219 00:59:22,076 --> 00:59:25,548 >> ผู้ชม: เพ​​ื่อให้คุณสามารถเรียก ฟังก์ชั่นที่ถูกระบุชื่อโดยกล่าวว่า 1220 00:59:25,548 --> 00:59:28,244 วงเล็บผลรวม 2, 5? 1221 00:59:28,244 --> 00:59:29,160 HANNAH Blumberg: ใช่ 1222 00:59:29,160 --> 00:59:32,280 คุณสามารถเรียกที่ไม่ระบุชื่อนี้ ฟังก์ชั่นในทางเดียวกัน 1223 00:59:32,280 --> 00:59:33,350 คุณจะทำผลรวม (2, 5) ;. 1224 00:59:33,350 --> 00:59:36,180 1225 00:59:36,180 --> 00:59:38,200 ที่จะได้รับการปรับทั้งหมด 1226 00:59:38,200 --> 00:59:41,575 >> ถ้าฉันไม่ได้ทำผลรวม var เท่ากับ ฟังก์ชั่นถ้าผมเพิ่งลบ 1227 00:59:41,575 --> 00:59:45,480 this-- ฉันรู้ว่ามันอยู่ในมือของฉัน แต่หลอกฉันลบ this-- แล้ว 1228 00:59:45,480 --> 00:59:46,964 ฟังก์ชั่นที่มีชนิดของหายไปเพียง 1229 00:59:46,964 --> 00:59:49,630 คุณไม่สามารถใช้งานได้อีกครั้งเพราะ คุณไม่ได้มีชื่อของมัน 1230 00:59:49,630 --> 00:59:53,497 มันยากที่จะหมายถึงบางสิ่งบางอย่าง คุณไม่ทราบว่าจะเรียก 1231 00:59:53,497 --> 00:59:54,080 คำถามที่ดี. 1232 00:59:54,080 --> 00:59:54,580 ใช่. 1233 00:59:54,580 --> 00:59:59,580 >> ผู้ชม: คุณสามารถอ้างอิงในผลรวม สถานที่อื่น ๆ ที่มีค่าของ x บวก y ที่หรือไม่ 1234 00:59:59,580 --> 01:00:01,940 >> HANNAH Blumberg: คุณสามารถ ผลรวมการอ้างอิงในที่อื่น ๆ 1235 01:00:01,940 --> 01:00:03,360 ที่มีค่า x บวก y ที่หรือไม่ 1236 01:00:03,360 --> 01:00:05,130 ผมไม่แน่ใจว่าทั้งหมดสิ่งที่คุณหมาย 1237 01:00:05,130 --> 01:00:10,582 >> ผู้ชม: ดังนั้นคุณที่ผ่านมากึ่งที่ไม่ระบุชื่อ ฟังก์ชั่นคือผลรวมเท่ากับนี้ 1238 01:00:10,582 --> 01:00:14,452 ฟังก์ชั่นที่ไม่ระบุชื่อเพื่อรวมเป็น ตอนนี้ตัวแปรที่คุณ can-- 1239 01:00:14,452 --> 01:00:15,410 HANNAH Blumberg: ขวา 1240 01:00:15,410 --> 01:00:18,980 ผลรวมดังนั้นตัวแปร แต่ก็ actually-- 1241 01:00:18,980 --> 01:00:23,770 ผลรวมจึงเป็นตัวแปรที่มี ค่าฟังก์ชั่น 1242 01:00:23,770 --> 01:00:27,030 ดังนั้นจึงเป็นฟังก์ชั่นซึ่งเป็นชนิดของ เป็นสิ่งที่แปลกที่จะตัดหัวของรอบ 1243 01:00:27,030 --> 01:00:29,880 นับตั้งแต่ที่เราได้เล่นกับ C และคุณไม่สามารถทำเช่นนั้นใน C. 1244 01:00:29,880 --> 01:00:32,679 แต่ตอนนี้เราสามารถเรียกรวม แบบเดียวกับที่เราสามารถโทรผลรวมที่นี่ 1245 01:00:32,679 --> 01:00:33,220 ผู้ชม: ตกลง 1246 01:00:33,220 --> 01:00:33,970 HANNAH Blumberg: ใช่ 1247 01:00:33,970 --> 01:00:34,553 คำถามที่ดี. 1248 01:00:34,553 --> 01:00:35,438 ใช่. 1249 01:00:35,438 --> 01:00:39,862 >> ผู้ชม: ดังนั้นเราจึงไม่ได้ใช้ ต้นแบบใน PHP หรือ JavaScript? 1250 01:00:39,862 --> 01:00:42,070 HANNAH Blumberg: ไม่มีเรา ไม่จำเป็นต้องใช้ต้นแบบ 1251 01:00:42,070 --> 01:00:43,880 โดยเฉพาะอย่างยิ่งใน JavaScript 1252 01:00:43,880 --> 01:00:49,380 ดังนั้นสิ่งที่ปฏิบัติไม่ดีคนหนึ่งที่ฉัน จะบอกว่าคุณไม่ควรทำ 1253 01:00:49,380 --> 01:00:52,620 คือคุณจะได้ไม่ต้องเขียน var i = 50 1254 01:00:52,620 --> 01:00:54,840 คุณก็สามารถเริ่มต้นทำ i = 50 1255 01:00:54,840 --> 01:00:57,490 และเพียงแค่จะทำให้ฉันตัวแปรทั่วโลก 1256 01:00:57,490 --> 01:01:00,550 >> มันปฏิบัติไม่ดีมากที่จะ ไม่เคยพูดอย่างชัดเจน var i, 1257 01:01:00,550 --> 01:01:01,800 แต่มันเป็นสิ่งที่คุณสามารถทำได้ 1258 01:01:01,800 --> 01:01:03,591 ล่ามไม่ ไปตะโกนใส่คุณ 1259 01:01:03,591 --> 01:01:05,920 JavaScript เป็นเช่นสวย คุณสามารถทำสิ่งที่คุณต้องการ 1260 01:01:05,920 --> 01:01:09,301 1261 01:01:09,301 --> 01:01:09,800 โอ้ขอโทษ. 1262 01:01:09,800 --> 01:01:10,300 มีสองเรื่อง 1263 01:01:10,300 --> 01:01:12,150 กางเกงในสีส้ม 1264 01:01:12,150 --> 01:01:13,190 เอาเลย 1265 01:01:13,190 --> 01:01:14,390 >> ผู้ชม: ไม่มีคุณไปก่อน 1266 01:01:14,390 --> 01:01:16,765 >> ผู้ชม: ไม่มีผมก็แค่บอกว่า ฉันไม่ได้มีมือของฉันขึ้น 1267 01:01:16,765 --> 01:01:20,248 1268 01:01:20,248 --> 01:01:20,748 ตกลง. 1269 01:01:20,748 --> 01:01:26,604 ดังนั้นถ้าคุณมีการเรียก เป็นครั้งแรกที่ตอนนี้สรุป, 1270 01:01:26,604 --> 01:01:29,864 เราเรียกมันว่าทางเดียวกัน, x, y ที่เหมือนทุกครั้งเดียว? 1271 01:01:29,864 --> 01:01:30,780 HANNAH Blumberg: ใช่ 1272 01:01:30,780 --> 01:01:32,572 ดังนั้นทั้งสองเป็นหลัก ทำสิ่งเดียวกัน 1273 01:01:32,572 --> 01:01:35,113 ผู้ชม: และสิ่งที่ได้เปรียบ ของการใช้หนึ่งหรืออื่น ๆ ? 1274 01:01:35,113 --> 01:01:37,500 HANNAH Blumberg: ไม่มีประโยชน์ ของการใช้หนึ่งหรืออื่น ๆ 1275 01:01:37,500 --> 01:01:40,080 ฉันแค่อยากจะแสดงให้คุณทั้งสอง ชิ้นส่วนต่างๆของไวยากรณ์ 1276 01:01:40,080 --> 01:01:42,770 หลายครั้งที่ไม่ระบุชื่อ ฟังก์ชั่นจะมีวัตถุประสงค์ 1277 01:01:42,770 --> 01:01:48,220 คือถ้าอาร์กิวเมนต์ไปยังอีก ฟังก์ชั่นที่ควรจะเป็นฟังก์ชั่น 1278 01:01:48,220 --> 01:01:50,600 และเราจะเห็นว่าใน เพียงสองอาแจ็กซ์ด้วย 1279 01:01:50,600 --> 01:01:53,577 >> ดังนั้นหากที่ไม่ได้ทำให้ความรู้สึกใด ๆ เก็บไว้ในด้านหลังของหัวของคุณ 1280 01:01:53,577 --> 01:01:55,660 นั่นคือสิ่งที่ไม่ระบุชื่อ ฟังก์ชั่นอาจจะมีประโยชน์ 1281 01:01:55,660 --> 01:01:58,284 เพราะมันไม่คุ้มค่าจริงๆ ให้มันชื่อเนื่องจากเรากำลังเพียง 1282 01:01:58,284 --> 01:01:59,443 จะใช้เพียงครั้งเดียว 1283 01:01:59,443 --> 01:02:00,370 ใช่. 1284 01:02:00,370 --> 01:02:03,635 >> ผู้ชม: ถ้า x และ y การเปลี่ยนแปลงในภายหลัง ที่จะสรุปผลการเปลี่ยนแปลงเช่นกัน? 1285 01:02:03,635 --> 01:02:06,510 HANNAH Blumberg: ถ้า x และ y การเปลี่ยนแปลง ต่อมาจะสรุปการเปลี่ยนแปลงเช่นกัน? 1286 01:02:06,510 --> 01:02:08,840 ดังนั้นนี่คือที่จริงผม คิดว่าสิ่งที่, 1287 01:02:08,840 --> 01:02:12,260 อีกครั้งก็แค่รู้สึกแตกต่างกันมาก จากซีนี้ไม่ได้ค่า 1288 01:02:12,260 --> 01:02:13,620 มันไม่ได้ 5 1289 01:02:13,620 --> 01:02:15,550 มันเป็นเพียงฟังก์ชั่นของตัวเอง 1290 01:02:15,550 --> 01:02:19,110 ดังนั้นทันทีที่คุณให้มันพารามิเตอร์, แล้วคุณจริงจะคำนวณค่า 1291 01:02:19,110 --> 01:02:21,193 >> MARIA ZLATKOVA: และแล้ว คุณสามารถเรียกใช้ฟังก์ชัน 1292 01:02:21,193 --> 01:02:23,272 และใช้ในการได้รับค่าบางอย่าง 1293 01:02:23,272 --> 01:02:24,230 HANNAH Blumberg: ขวา 1294 01:02:24,230 --> 01:02:25,250 ที่แน่นอน 1295 01:02:25,250 --> 01:02:25,863 ใช่. 1296 01:02:25,863 --> 01:02:27,946 >> ผู้ชม: ดังนั้นถ้าคุณเพียง เก็บไว้ในตัวแปร 1297 01:02:27,946 --> 01:02:31,430 เช่น var x เท่ากับผลรวมของทั้งสอง values​​-- 1298 01:02:31,430 --> 01:02:32,420 >> HANNAH Blumberg: ใช่ 1299 01:02:32,420 --> 01:02:35,320 ดังนั้นคุณก็สามารถทำผลรวม var เท่ากับผลรวมของทั้งสองค่า 1300 01:02:35,320 --> 01:02:37,670 ใช่. 1301 01:02:37,670 --> 01:02:38,680 คำถามใด ๆ อื่น ๆ ? 1302 01:02:38,680 --> 01:02:39,642 ใช่. 1303 01:02:39,642 --> 01:02:42,047 >> ผู้ชม: แต่จะว่า เกิดความสับสนและผลรวมผลรวม? 1304 01:02:42,047 --> 01:02:45,062 เช่นถ้าคุณเรียกตัวแปรผลรวมของคุณ คุณจะเรียกผลรวมฟังก์ชั่นหรือไม่ 1305 01:02:45,062 --> 01:02:45,895 HANNAH Blumberg: mm 1306 01:02:45,895 --> 01:02:46,395 มิลลิเมตร 1307 01:02:46,395 --> 01:02:51,253 ถ้าคุณทำอะไรบางอย่าง เหมือนผลรวมเท่ากับผลรวม 2, 5? 1308 01:02:51,253 --> 01:02:53,170 >> ผู้ชม: ใช่ 1309 01:02:53,170 --> 01:02:56,465 >> HANNAH Blumberg: ผมเชื่อว่า จะเขียนทับค่าของทุน 1310 01:02:56,465 --> 01:02:59,290 ดังนั้นอื่นที่น่าสนใจ สิ่งที่เกี่ยวกับ JavaScript 1311 01:02:59,290 --> 01:03:02,950 คือตัวแปรเดียวสามารถใช้ บนพวงของชนิดที่แตกต่างกัน 1312 01:03:02,950 --> 01:03:03,790 ปฏิบัติไม่ดี 1313 01:03:03,790 --> 01:03:06,280 คุณไม่ควรจะทำบางสิ่งบางอย่าง เหมือนสิ่งที่คุณเพิ่งกล่าวว่า 1314 01:03:06,280 --> 01:03:10,240 >> แต่ใน C ถ้าฉันมีการตั้งค่า เท่ากับจำนวนเต็ม 1315 01:03:10,240 --> 01:03:13,570 เรารู้ว่ามันไม่เคย จะกลายเป็นสตริง 1316 01:03:13,570 --> 01:03:15,670 กรณีนี้ไม่ได้ใน JavaScript 1317 01:03:15,670 --> 01:03:17,770 ใช่คำถามที่ดี 1318 01:03:17,770 --> 01:03:20,151 อะไรอีกหรือไม่ 1319 01:03:20,151 --> 01:03:20,650 ทั้งหมดขวา 1320 01:03:20,650 --> 01:03:21,850 การทำสิ่งที่ถูกต้องในเวลา 1321 01:03:21,850 --> 01:03:23,050 การรักษาจะ 1322 01:03:23,050 --> 01:03:25,200 ทั้งหมดขวา 1323 01:03:25,200 --> 01:03:27,780 >> ถ้าเราดูที่อาร์เรย์ ใน JavaScript ที่นี่ 1324 01:03:27,780 --> 01:03:30,250 ตัวอย่างรวดเร็วของอาร์เรย์ของสาย 1325 01:03:30,250 --> 01:03:31,967 และอาร์เรย์สามารถเจริญเติบโตแบบไดนามิก 1326 01:03:31,967 --> 01:03:33,675 พวกเขาไม่ได้มี ขนาดคงที่เช่นเดียวกับ 1327 01:03:33,675 --> 01:03:37,990 ที่พวกเขาทำในซีเราสามารถเข้าถึง องค์ประกอบที่มีเพียงวงเล็บ 1328 01:03:37,990 --> 01:03:41,720 >> ที่มีลักษณะมากเช่น PHP และเป็นจำนวนมาก เช่น C ที่เราสามารถพูดได้ว่าในกรณีนี้ 1329 01:03:41,720 --> 01:03:48,360 ถ้าผมต้องการคำจาวาสคริปต์ที่ฉันจะ ไม่ arr วงเล็บกับ 0, 1, 2 1330 01:03:48,360 --> 01:03:51,450 1331 01:03:51,450 --> 01:03:55,390 และแล้วถ้าคุณจำใน C เมื่อเรา อยากจะได้รับความยาวของอาร์เรย์ 1332 01:03:55,390 --> 01:03:56,820 มันก็น่ารำคาญจริงๆ 1333 01:03:56,820 --> 01:03:58,460 แต่ใน JavaScript, ง่ายสุด 1334 01:03:58,460 --> 01:03:59,910 ทั้งหมดที่เราทำ .length 1335 01:03:59,910 --> 01:04:01,120 ให้มันยาว 1336 01:04:01,120 --> 01:04:01,892 แค่นั้นแหละ. 1337 01:04:01,892 --> 01:04:03,140 >> ผู้ชม: นั่นเป็นที่เรียบง่าย 1338 01:04:03,140 --> 01:04:05,306 >> HANNAH Blumberg: ใช่ทำให้ ชีวิตของคุณง่ายขึ้นมาก 1339 01:04:05,306 --> 01:04:08,950 1340 01:04:08,950 --> 01:04:11,560 ตกลง object-- ไม่ได้มี 1341 01:04:11,560 --> 01:04:15,480 วัตถุในความรู้สึก JavaScript มากเช่น structs ใน C 1342 01:04:15,480 --> 01:04:18,280 และเชื่อมโยงอาร์เรย์ใน PHP 1343 01:04:18,280 --> 01:04:20,270 ดังนั้นสิ่งที่เราได้เห็น จำนวนมากเป็น JSON ซึ่ง 1344 01:04:20,270 --> 01:04:23,150 ย่อมาจากโน้ตวัตถุ JavaScript 1345 01:04:23,150 --> 01:04:25,550 และมันเป็นพื้นทาง ของโครงสร้างข้อมูลของเรา 1346 01:04:25,550 --> 01:04:27,880 >> ดังนั้นเรามาดูตัวอย่าง อาจจะง่ายที่สุด 1347 01:04:27,880 --> 01:04:32,540 ดังนั้นนี่คือตัวอย่างของวัตถุ ที่เก็บชั้น CS50 1348 01:04:32,540 --> 01:04:37,790 และเมื่อฉันพูดระดับผมหมายถึงแน่นอน ไม่ like-- ใช่แน่นอน CS50 1349 01:04:37,790 --> 01:04:40,730 และคุณจะเห็นว่า ทุกอย่างในวัตถุ 1350 01:04:40,730 --> 01:04:43,526 เป็นไปได้ที่มีอยู่ ในวงเล็บปีกกา 1351 01:04:43,526 --> 01:04:48,260 >> และเราจะเริ่มต้นที่จะเชื่อมโยงชื่อเขต หรือปุ่มที่มีค่าที่แตกต่างกัน 1352 01:04:48,260 --> 01:04:52,920 เพื่อให้คุณสามารถเริ่มต้นที่จะดูว่าชนิดของนี้ รู้สึกเหมือนอาเรย์ใน PHP 1353 01:04:52,920 --> 01:04:57,450 ดังนั้นเราจะเชื่อมโยงสนามหรือ ชื่อคีย์, สนามกับสตริง 1354 01:04:57,450 --> 01:04:58,510 CS50 1355 01:04:58,510 --> 01:04:59,940 >> เรากำลังจะมีอาจารย์ผู้สอน 1356 01:04:59,940 --> 01:05:00,940 เรากำลังจะมี TFS 1357 01:05:00,940 --> 01:05:05,240 เรากำลังจะมีจำนวนของ psets และเรากำลังจะได้รับการบันทึก 1358 01:05:05,240 --> 01:05:10,720 และสิ่งหนึ่งที่เย็นจะทราบก็คือทั้งหมดของ สิ่งเหล่านี้มีชนิดที่แตกต่างกัน 1359 01:05:10,720 --> 01:05:12,020 และที่ดีทั้งหมด 1360 01:05:12,020 --> 01:05:15,330 >> มันเป็นเรื่องที่ดีสำหรับวัตถุในความเป็นจริง ก็คาดว่าอาจสำหรับวัตถุ 1361 01:05:15,330 --> 01:05:19,620 ที่จะมีการรวมกันของสตริง และตัวเลขและ Booleans และอาร์เรย์ 1362 01:05:19,620 --> 01:05:23,420 และสิ่งอื่นที่คุณอาจ ต้องการที่จะมีในวัตถุของคุณ 1363 01:05:23,420 --> 01:05:28,570 และทราบว่าสิ่งเหล่านี้เป็นไปได้ ชื่อหรือปุ่มแล้วเราก็ 1364 01:05:28,570 --> 01:05:30,300 ตั้งค่าเท่าเทียมกับลำไส้ใหญ่น้อย 1365 01:05:30,300 --> 01:05:32,015 >> ผู้ชม: สิ่งที่ไม่ JSON หมายความว่าอย่างไร 1366 01:05:32,015 --> 01:05:33,890 HANNAH Blumberg: อะไร ไม่ว่า JSON หมายความว่าอย่างไร 1367 01:05:33,890 --> 01:05:36,470 เพียง JSON ย่อมาจาก JavaScript Object สัญลักษณ์ 1368 01:05:36,470 --> 01:05:38,430 มันเป็นเพียงวิธีการจัดรูปแบบ 1369 01:05:38,430 --> 01:05:40,040 ใช่. 1370 01:05:40,040 --> 01:05:41,800 มันเป็นวิธีการจัดรูปแบบของข้อมูลของเรา 1371 01:05:41,800 --> 01:05:43,620 >> ใน C ก็ structs 1372 01:05:43,620 --> 01:05:45,800 ใน PHP ก็เชื่อมโยงอาร์เรย์ 1373 01:05:45,800 --> 01:05:47,120 ใน JavaScript เรามีวัตถุ 1374 01:05:47,120 --> 01:05:48,969 >> ผู้ชม: ดังนั้น CS50 เป็นวัตถุ? 1375 01:05:48,969 --> 01:05:51,010 HANNAH Blumberg: CS50 คือ วัตถุในกรณีนี้ 1376 01:05:51,010 --> 01:05:54,830 1377 01:05:54,830 --> 01:05:57,880 ตอนนี้ทำอย่างไรเราเข้าถึงจริง เขตข้อมูลเหล่านั้นหรือเปลี่ยนเขตข้อมูลเหล่านั้น 1378 01:05:57,880 --> 01:06:03,920 ตัวอย่างเช่นสมมติว่าเราตัดสินใจว่า คุณอยากหนึ่ง pset น้อยภาคการศึกษานี้ 1379 01:06:03,920 --> 01:06:06,300 แทนที่จะเก้าเรา เพียงแค่จะมีแปด 1380 01:06:06,300 --> 01:06:08,240 วิธีการที่เราจะเปลี่ยนที่? 1381 01:06:08,240 --> 01:06:09,436 >> โอ้ทางที่ผิด 1382 01:06:09,436 --> 01:06:11,060 มีสองวิธีที่เราสามารถทำเช่นนั้นอยู่ 1383 01:06:11,060 --> 01:06:13,490 จำนวนหนึ่งที่มีจุด สัญกรณ์และหมายเลขสอง 1384 01:06:13,490 --> 01:06:15,750 อยู่กับสัญกรณ์วงเล็บเหลี่ยม 1385 01:06:15,750 --> 01:06:19,720 ดังนั้นสำหรับตัวอย่างเช่นถ้าผม ต้องการที่จะเปลี่ยนแปลงหรือการเข้าถึง 1386 01:06:19,720 --> 01:06:26,820 สนาม psets ในวัตถุ CS50 ของเรา สิ่งที่ผมจะทำคือ CS50.psets, 1387 01:06:26,820 --> 01:06:30,770 ดังนั้นชื่อของจุดวัตถุ ชื่อของเขตข้อมูลหรือที่สำคัญ 1388 01:06:30,770 --> 01:06:37,120 >> มากเหมือนกันก็ตรง เทียบเท่ากับการทำ CS50 แล้ว 1389 01:06:37,120 --> 01:06:42,050 ในการจัดฟันตาราง psets 1390 01:06:42,050 --> 01:06:42,837 เย็น? 1391 01:06:42,837 --> 01:06:44,298 ใช่. 1392 01:06:44,298 --> 01:06:47,707 >> ผู้ชม: ดังนั้น JSON ในทางเทคนิคยังคง JavaScript, 1393 01:06:47,707 --> 01:06:51,814 แม้ว่าใน psets เรา แยกมันออกมา [ไม่ได้ยิน] 1394 01:06:51,814 --> 01:06:52,730 HANNAH Blumberg: Sure 1395 01:06:52,730 --> 01:06:56,290 ดังนั้นคำถามคือเป็น JavaScript และ JSON เทียบเท่า? 1396 01:06:56,290 --> 01:07:00,750 JSON เพื่อให้เป็นสัญกรณ์โดยทั่วไป วิธีการที่เราเขียนออกมา 1397 01:07:00,750 --> 01:07:02,700 วัตถุจาก JavaScript 1398 01:07:02,700 --> 01:07:05,190 ดังนั้นพวกเขาไม่ได้เหมือนกัน 1399 01:07:05,190 --> 01:07:08,950 >> ผมจะบอกว่า JavaScript มี เป็นวัตถุใน JavaScript 1400 01:07:08,950 --> 01:07:12,590 JSON ใช้วัตถุเหล่านั้นและ พิมพ์พวกเขาและพวกเขาแสดง 1401 01:07:12,590 --> 01:07:15,160 หรือเก็บไว้ในวิธีที่ดี 1402 01:07:15,160 --> 01:07:18,110 ดังนั้น JSON ไม่ได้เขียนโปรแกรม ภาษาจาวาสคริปต์วิธีการที่เป็น 1403 01:07:18,110 --> 01:07:20,900 มันเป็นเพียงสัญกรณ์สำหรับ วัตถุของเราใน JavaScript 1404 01:07:20,900 --> 01:07:21,400 ใช่. 1405 01:07:21,400 --> 01:07:24,144 >> ผู้ชม: ดังนั้นสิ่งที่ว่า [ไม่ได้ยิน] เสร็จสมบูรณ์? 1406 01:07:24,144 --> 01:07:25,060 HANNAH Blumberg: Sure 1407 01:07:25,060 --> 01:07:27,727 ดังนั้นนี้จริงไม่ทำอะไรเลย 1408 01:07:27,727 --> 01:07:28,935 นี่เป็นเพียงวิธีที่จะเข้าถึง 1409 01:07:28,935 --> 01:07:31,393 ดังนั้นสมมติว่าเราต้องการที่จะเปลี่ยน จำนวนชุดปัญหา 1410 01:07:31,393 --> 01:07:32,450 9-8 1411 01:07:32,450 --> 01:07:34,383 สิ่งที่เราทำคือการทำอะไรบางอย่าง เช่น CS50.psets = 8 ;. 1412 01:07:34,383 --> 01:07:38,500 1413 01:07:38,500 --> 01:07:39,400 >> ใช่คำถามที่ดี 1414 01:07:39,400 --> 01:07:40,733 นี่เป็นเพียงการแสดงไวยากรณ์ 1415 01:07:40,733 --> 01:07:43,620 ไม่จริงทำอะไรที่เป็นประโยชน์ 1416 01:07:43,620 --> 01:07:46,085 มีคำถามอะไรไหม? 1417 01:07:46,085 --> 01:07:48,210 ย้ายขวาพร้อม 1418 01:07:48,210 --> 01:07:51,960 >> ดังนั้นเรามาดูตัวอย่างรวดเร็วของวิธี จาวาสคริปต์ทำงานเพราะฉันบอกคุณมัน 1419 01:07:51,960 --> 01:07:55,170 ไม่ทั้งหมดสิ่งดีๆเหล่านี้และ ช่วยให้เราสามารถปรับเปลี่ยนหน้าเว็บ 1420 01:07:55,170 --> 01:07:56,970 ขอเห็นจริงในการกระทำ 1421 01:07:56,970 --> 01:07:59,850 เพื่อใช้ยกตัวอย่างเช่นไฟล์ HTML นี้ 1422 01:07:59,850 --> 01:08:04,350 >> และสิ่งที่ผมต้องการให้คุณมุ่งเน้นคือ แท็กนี้โดยเฉพาะซึ่งเป็นปุ่ม 1423 01:08:04,350 --> 01:08:06,182 มี id search_button 1424 01:08:06,182 --> 01:08:08,670 มันเป็นเพียงแค่บนหน้าเว็บ 1425 01:08:08,670 --> 01:08:10,690 ดังนั้นตอนนี้เรามาดูสิ่ง เราสามารถทำได้จริง 1426 01:08:10,690 --> 01:08:12,560 >> ดีสมมติว่าเมื่อ คุณคลิกที่ปุ่มนั้น 1427 01:08:12,560 --> 01:08:16,010 เราต้องการให้ alert-- คุณคลิกที่ปุ่ม 1428 01:08:16,010 --> 01:08:17,840 ลองมาดูวิธีการที่เราสามารถทำเช่นนั้น 1429 01:08:17,840 --> 01:08:23,869 ดังนั้น window.onload-- นี่ไม่ใช่สิ่งที่ ที่คุณเคยเห็นในชั้นเรียนจึง 1430 01:08:23,869 --> 01:08:26,180 จะไม่จำเป็นต้องรู้สำหรับการทดสอบ 1431 01:08:26,180 --> 01:08:33,660 แต่นี้โดยทั่วไปกล่าวว่าตกลงโทร ฟังก์ชั่นนี้เมื่อโหลดหน้าต่าง 1432 01:08:33,660 --> 01:08:35,080 >> เพื่อให้เป็นเพียงแค่ชนิดของรหัสการติดตั้ง 1433 01:08:35,080 --> 01:08:36,390 ไม่ต้องกังวลมากเกี่ยวกับว่า 1434 01:08:36,390 --> 01:08:39,170 สิ่งที่ฉันต้องการให้คุณมุ่งเน้นไปที่อยู่ในที่นี่ 1435 01:08:39,170 --> 01:08:44,020 เราพูดว่า var searchButton เท่ากับ document.getElementById search_button 1436 01:08:44,020 --> 01:08:46,450 >> ดังนั้นในขณะที่คุณอาจคาดเดา สิ่งนี้ไม่ได้เป็นกล่าวว่า 1437 01:08:46,450 --> 01:08:50,920 ตกลงไปหาองค์ประกอบ ที่มี ID search_button 1438 01:08:50,920 --> 01:08:52,790 และตอนนี้เรามีว่า องค์ประกอบที่เกิดขึ้นจริงและฉัน 1439 01:08:52,790 --> 01:08:56,279 ไปเก็บไว้ในที่ sea​​rchButton ตัวแปร 1440 01:08:56,279 --> 01:09:00,651 และตอนนี้เราสามารถใช้จริงในสภาพแวดล้อมที่ และเปลี่ยนหรือเข้าถึงค่าของมัน 1441 01:09:00,651 --> 01:09:01,359 สิ่งที่ต้องการที่ 1442 01:09:01,359 --> 01:09:04,649 เราจริงจะเริ่ม มีส่วนร่วมกับหน้าเว็บ 1443 01:09:04,649 --> 01:09:10,330 >> ดังนั้นที่นี่ฉันพูดว่าตกลงตอนนี้ที่ฉันมี ปุ่มที่เมื่อมีการคลิก 1444 01:09:10,330 --> 01:09:12,859 เรียกฟังก์ชั่นที่ไม่ระบุชื่อ 1445 01:09:12,859 --> 01:09:16,811 ดังนั้นนี่คือที่ที่ไม่ระบุชื่อ ฟังก์ชั่นเป็นประโยชน์ 1446 01:09:16,811 --> 01:09:18,060 และสิ่งที่ไม่ทำฟังก์ชั่น? 1447 01:09:18,060 --> 01:09:20,529 ดีก็เพียงแค่นี้เรียกว่า ฟังก์ชั่นการแจ้งเตือนและบอกว่า 1448 01:09:20,529 --> 01:09:22,910 คุณคลิกปุ่มค้นหา 1449 01:09:22,910 --> 01:09:29,670 >> ดังนั้นสิ่งที่จะเกิดขึ้นถ้าฉันไปทุกที่ อาศัย HTML นี้และฉันคลิกปุ่ม 1450 01:09:29,670 --> 01:09:33,729 ฉันจะได้รับการแจ้งเตือนเล็ก ๆ น้อย ๆ แฟนซี ที่บอกว่าคุณคลิกที่ปุ่ม 1451 01:09:33,729 --> 01:09:40,710 ดังนั้นสิ่งที่จะมุ่งเน้น here-- document.getElementById 1452 01:09:40,710 --> 01:09:44,960 โดยเฉพาะอย่างยิ่งได้รับ HTML องค์ประกอบที่มีรหัสที่กำหนด 1453 01:09:44,960 --> 01:09:48,529 และตอนนี้เราสามารถตั้งค่า สิ่งที่ควรจะเกิดขึ้นเมื่อ 1454 01:09:48,529 --> 01:09:50,702 โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมที่มีการคลิก 1455 01:09:50,702 --> 01:09:52,670 >> ผู้ชม: เราต้องใส่ทั้งหมดที่อยู่ใน? 1456 01:09:52,670 --> 01:09:53,162 >> HANNAH Blumberg: ขออภัย? 1457 01:09:53,162 --> 01:09:55,130 >> ผู้ชม: เราต้อง ร่างกายทั้งหมดของรหัสที่? 1458 01:09:55,130 --> 01:09:56,340 >> HANNAH Blumberg: เราต้อง ร่างกายทั้งหมดของรหัสที่? 1459 01:09:56,340 --> 01:09:56,839 ใช่. 1460 01:09:56,839 --> 01:09:58,120 ไม่ได้เป็นชนิดที่น่ารำคาญนี้หรือไม่? 1461 01:09:58,120 --> 01:10:00,032 นี้เป็นจำนวนมากของรหัส 1462 01:10:00,032 --> 01:10:01,574 >> ผู้ชม: คุณสามารถนำเข้าบางสิ่งบางอย่าง 1463 01:10:01,574 --> 01:10:02,532 HANNAH Blumberg: ขวา 1464 01:10:02,532 --> 01:10:03,610 เราสามารถใช้สิ่งที่ 1465 01:10:03,610 --> 01:10:08,140 และใน particular-- โอ้มัน บอกฉันฉันมีส่วนในการสอน 1466 01:10:08,140 --> 01:10:11,061 โดยเฉพาะอย่างยิ่งขอ ใช้ห้องสมุด jQuery, 1467 01:10:11,061 --> 01:10:13,060 เพราะเห็นว่าเป็นจริง ยาวและน่ารำคาญจริงๆ 1468 01:10:13,060 --> 01:10:16,860 และฉันต้องการที่จะสามารถลดความซับซ้อนของมันไป และทำให้มันสั้นและง่ายต่อการเขียน 1469 01:10:16,860 --> 01:10:19,810 >> jQuery ดังนั้นเป็นห้องสมุด JavaScript 1470 01:10:19,810 --> 01:10:24,930 ดังนั้น JavaScript เป็นการเขียนโปรแกรม ภาษา; jQuery เป็นห้องสมุด 1471 01:10:24,930 --> 01:10:27,190 และก็จะทำให้พวงของสิ่งที่ง่ายขึ้น 1472 01:10:27,190 --> 01:10:33,230 มันทำให้การเปลี่ยนแปลงและจะข้าม เอกสาร HTML ง่ายมาก 1473 01:10:33,230 --> 01:10:35,030 >> มันทำให้เหตุการณ์จัดการง่ายขึ้น 1474 01:10:35,030 --> 01:10:37,580 มันทำให้เคลื่อนไหวได้ง่าย และมันทำให้อาแจ็กซ์ได้ง่ายขึ้น 1475 01:10:37,580 --> 01:10:40,140 ดังนั้นขอกระโดดลงไปในสอง สิ่งเหล่านั้นในขณะนี้ 1476 01:10:40,140 --> 01:10:40,900 ขอโทษ. 1477 01:10:40,900 --> 01:10:42,620 ก่อนที่เราจะทำบางไวยากรณ์พื้นฐาน 1478 01:10:42,620 --> 01:10:46,870 >> นี่คือสิ่งที่ส่วนใหญ่เรียกร้องให้ ดูห้องสมุดเช่น jQuery 1479 01:10:46,870 --> 01:10:50,520 เราใช้เงินดอลลาร์ sign-- นี้ ไม่มีสัญญาณการเชื่อมต่อกับ PHP, 1480 01:10:50,520 --> 01:10:56,030 เพียง inconvenient-- ชื่อของที่ เลือกจุดและจากนั้นการดำเนินการ 1481 01:10:56,030 --> 01:10:58,860 ดังนั้นเรามาดูบาง ตัวอย่างที่เป็นรูปธรรมว่า 1482 01:10:58,860 --> 01:11:02,980 >> ดังนั้นนี้จริงจะเหมือนกัน รหัสสไลด์จากเหตุการณ์ที่เกิดขึ้น 1483 01:11:02,980 --> 01:11:08,740 ดังนั้นนี่นานจะกลายเป็นสิ่งที่น่าเกลียด นี้มาก nicer สิ่งที่มีขนาดเล็ก 1484 01:11:08,740 --> 01:11:10,370 ถ้าอย่างนั้นเราพยายามที่จะทำลายลง 1485 01:11:10,370 --> 01:11:17,090 นี้กล่าวว่าตกลง jQuery-- ดอลลาร์นี้ sign-- jQuery หาฉันหน้าต่าง 1486 01:11:17,090 --> 01:11:18,480 เพื่อให้เป็นตัวเลือก 1487 01:11:18,480 --> 01:11:21,800 >> เมื่อโหลดเรียกใช้ฟังก์ชันนี้ 1488 01:11:21,800 --> 01:11:23,880 เพื่อให้ทุกอย่างภายใน 1489 01:11:23,880 --> 01:11:24,380 ตกลง. 1490 01:11:24,380 --> 01:11:25,740 เพื่อให้ห่างไกลที่ดีเพื่อ? 1491 01:11:25,740 --> 01:11:26,750 ทั้งหมดขวา 1492 01:11:26,750 --> 01:11:32,970 >> ตอนนี้ jQuery หาฉัน สิ่งที่มี ID search_button 1493 01:11:32,970 --> 01:11:36,090 และสิ่งที่มีการคลิก เรียกใช้ฟังก์ชันนี้ 1494 01:11:36,090 --> 01:11:37,900 และจากนั้นฟังก์ชั่นนี้ เหมือนเดิมทุกประการ. 1495 01:11:37,900 --> 01:11:41,052 เพียงแค่ทำนิด ๆ หน่อย ๆ ของการแจ้งเตือน คุณคลิกปุ่มค้นหา 1496 01:11:41,052 --> 01:11:42,650 >> ดังนั้นมันเป็นเรื่องดีจริงๆ 1497 01:11:42,650 --> 01:11:46,260 จริงๆมันควบแน่นและ ช่วยลดความยุ่งยากรหัสของเรา 1498 01:11:46,260 --> 01:11:49,030 ฉันไม่ทราบว่า มันเป็น ID search_button 1499 01:11:49,030 --> 01:11:50,960 และไม่ชอบชั้น search_button? 1500 01:11:50,960 --> 01:11:52,024 >> ผู้ชม: แฮชแท็ก? 1501 01:11:52,024 --> 01:11:52,940 HANNAH Blumberg: ใช่ 1502 01:11:52,940 --> 01:11:56,450 สัญลักษณ์กัญชานี้ก็เช่นเดียวกับ CSS 1503 01:11:56,450 --> 01:12:00,080 ดังนั้นจำกับ CSS เมื่อเรา ต้องการที่จะเลือกบางสิ่งบางอย่างจากประชาชน 1504 01:12:00,080 --> 01:12:01,590 ที่เราใช้ในการเข้าสู่ระบบปอนด์ 1505 01:12:01,590 --> 01:12:05,400 และเมื่อเราต้องการที่จะเลือก บางสิ่งบางอย่างโดยชั้นเราจะใช้จุด 1506 01:12:05,400 --> 01:12:06,870 ที่ดี 1507 01:12:06,870 --> 01:12:08,230 ความรู้สึกให้? 1508 01:12:08,230 --> 01:12:11,500 ดังนั้น jQuery ควรจะ เพียงแค่ทำให้ชีวิตของเราง่ายขึ้น 1509 01:12:11,500 --> 01:12:12,000 ใช่. 1510 01:12:12,000 --> 01:12:15,660 >> ผู้ชม: ดังนั้นฉันสับสนเล็กน้อยเป็น วิธีการทำงานที่ไม่ระบุชื่อทำงาน 1511 01:12:15,660 --> 01:12:19,027 คุณชื่อ anonymouse นี้ ฟังก์ชั่นการทำงาน? 1512 01:12:19,027 --> 01:12:20,594 วิธีการที่จะเรียกว่า? 1513 01:12:20,594 --> 01:12:21,510 HANNAH Blumberg: Sure 1514 01:12:21,510 --> 01:12:25,812 ฟังก์ชั่นเพื่อให้เป็นเพียงแค่คำว่า กล่าวว่าฉันจะกำหนดฟังก์ชั่น 1515 01:12:25,812 --> 01:12:26,520 ผู้ชม: โอ้, OK 1516 01:12:26,520 --> 01:12:27,353 HANNAH Blumberg: OK? 1517 01:12:27,353 --> 01:12:32,120 และจากนั้นเราจะผ่านมันเป็น อาร์กิวเมนต์ to-- ลอง 1518 01:12:32,120 --> 01:12:37,040 one-- นี้ภายในฟังก์ชั่นการคลิก 1519 01:12:37,040 --> 01:12:39,420 เพื่อใช่ดังนั้นฟังก์ชั่นที่ ฟังก์ชั่นนี้ที่ไม่ระบุชื่อ 1520 01:12:39,420 --> 01:12:40,910 จะกลายเป็นจริงอาร์กิวเมนต์ 1521 01:12:40,910 --> 01:12:43,632 ดังนั้นจำใน JavaScript เรา สามารถรักษาหน้าที่เป็นค่า 1522 01:12:43,632 --> 01:12:44,340 ผู้ชม: โอ้, OK 1523 01:12:44,340 --> 01:12:45,256 HANNAH Blumberg: ใช่ 1524 01:12:45,256 --> 01:12:46,035 ฉันชอบที่ "โอ้." 1525 01:12:46,035 --> 01:12:47,490 นีซ 1526 01:12:47,490 --> 01:12:49,915 คำถามอื่น ๆ ? 1527 01:12:49,915 --> 01:12:50,505 เวลา? 1528 01:12:50,505 --> 01:12:51,380 MARIA ZLATKOVA: ดี 1529 01:12:51,380 --> 01:12:52,760 ดี. 1530 01:12:52,760 --> 01:12:54,210 >> HANNAH Blumberg: น่ากลัว 1531 01:12:54,210 --> 01:12:55,720 บาง jQuery ประโยชน์อย่างรวดเร็ว 1532 01:12:55,720 --> 01:12:57,559 ฉันจะไม่ไป ผ่านสิ่งเหล่านี้ 1533 01:12:57,559 --> 01:12:59,350 ภาพนิ่งเหล่านี้จะเป็น ออนไลน์นิด ๆ หน่อย ๆ 1534 01:12:59,350 --> 01:13:02,040 ต่อมาเพื่อให้คุณสามารถตรวจสอบ มันออกมานิด ๆ หน่อย ๆ ในภายหลัง 1535 01:13:02,040 --> 01:13:07,120 แต่โดยทั่วไปทั่วไป รูปแบบการถือที่เราพูดว่า 1536 01:13:07,120 --> 01:13:11,510 ตกลงเดี๋ยวก่อน jQuery ที่นี่เป็นของฉัน เลือกแล้วนี่คือการกระทำ 1537 01:13:11,510 --> 01:13:15,940 และคุณสามารถทำสิ่งที่ต้องการการเข้าถึง ค่าของรูปแบบที่เข้าถึง HTM​​L บาง 1538 01:13:15,940 --> 01:13:19,195 การควบคุมสิ่งที่เกิดขึ้นเมื่อผู้ใช้ ส่งแบบฟอร์มสิ่งที่ต้องการที่ 1539 01:13:19,195 --> 01:13:20,106 ใช่. 1540 01:13:20,106 --> 01:13:22,090 >> ผู้ชม: ดังนั้นใน การสอบเรากำลังจะต้อง 1541 01:13:22,090 --> 01:13:25,066 ที่จะรู้ค่อนข้างมากจาก เอกสาร jQuery 1542 01:13:25,066 --> 01:13:31,018 รับเพื่อที่เราคัดลอก / วาง jQuery เอกสารแผ่นโกงของเรา 1543 01:13:31,018 --> 01:13:32,506 ที่เป็นเส้นที่วาด? 1544 01:13:32,506 --> 01:13:33,957 เช่นเดียวกับหลายวิธีที่เราจะต้องรู้? 1545 01:13:33,957 --> 01:13:35,290 HANNAH Blumberg: คำถามที่ดี 1546 01:13:35,290 --> 01:13:37,765 คำถามคือ ได้รับเป็นหลักที่คุณ 1547 01:13:37,765 --> 01:13:41,330 ไม่สามารถเข้าถึงเอกสาร jQuery ในระหว่างการทดสอบเท่าไหร่คุณควร 1548 01:13:41,330 --> 01:13:41,830 ทราบ? 1549 01:13:41,830 --> 01:13:45,540 เราจะไม่คาดหวังให้คุณมา ขึ้นกับบางฟังก์ชั่นแบบสุ่ม 1550 01:13:45,540 --> 01:13:47,240 ที่เราจะคาดหวังให้คุณไปยัง Google 1551 01:13:47,240 --> 01:13:52,930 >> สิ่งที่เป็นเกมที่ยุติธรรมเป็นผมจะ บอกเพียงแค่ชนิดของไวยากรณ์ทั่วไป 1552 01:13:52,930 --> 01:13:58,310 ความสามารถในการเลือกโดยประชาชนและ โดย class-- ดังนั้นเพียงแค่เช่น CSS 1553 01:13:58,310 --> 01:14:01,876 แล้วฟังก์ชั่นที่เกิดขึ้นจริง ตัวเองเรามีแนวโน้มที่จะบอกคุณ 1554 01:14:01,876 --> 01:14:02,376 ใช่. 1555 01:14:02,376 --> 01:14:05,591 >> ผู้ชม: ดังนั้นเมื่อคุณเลือก โดยชั้นจะหมายถึงจุด 1556 01:14:05,591 --> 01:14:06,840 HANNAH Blumberg: ใช่ว่า 1557 01:14:06,840 --> 01:14:07,340 ดี. 1558 01:14:07,340 --> 01:14:10,461 เมื่อคุณเลือกโดยชั้นก็จะ จะได้รับการจุดแทนการเข้าสู่ระบบปอนด์ 1559 01:14:10,461 --> 01:14:10,960 ใช่. 1560 01:14:10,960 --> 01:14:12,710 >> ผู้ชม: คุณจะ ไปกว่าความแตกต่าง 1561 01:14:12,710 --> 01:14:14,310 ระหว่างการเลือกโดยประชาชนและโดยชั้น? 1562 01:14:14,310 --> 01:14:14,560 >> HANNAH Blumberg: Sure 1563 01:14:14,560 --> 01:14:17,510 ความแตกต่างระหว่างการเลือก ID และเลือกโดยชั้น 1564 01:14:17,510 --> 01:14:20,685 ดังนั้นในขณะที่มาเรียกล่าวว่า นิด ๆ หน่อย ๆ ก่อนหน้านี้มี 1565 01:14:20,685 --> 01:14:26,280 เพียง แต่สามารถเป็นหนึ่งในองค์ประกอบ HTML ที่มีรหัสที่ได้รับในขณะที่ระดับ 1566 01:14:26,280 --> 01:14:29,740 มันช่วยให้เราไปยังกลุ่มพวง ขององค์ประกอบที่แตกต่างกัน 1567 01:14:29,740 --> 01:14:34,300 ดังนั้นสิ่งที่เกี่ยวข้องกับ แต่ไม่เหมือนกัน 1568 01:14:34,300 --> 01:14:35,685 ไม่ว่าตอบคำถาม? 1569 01:14:35,685 --> 01:14:36,200 ที่น่ากลัว 1570 01:14:36,200 --> 01:14:37,194 ใช่. 1571 01:14:37,194 --> 01:14:40,680 >> ผู้ชม: เกิดอะไรขึ้นถ้าคุณมีหลาย สิ่งที่อยู่ในระดับเดียวกันได้หรือไม่ 1572 01:14:40,680 --> 01:14:42,150 >> HANNAH Blumberg: เกิดอะไรขึ้น ถ้าคุณมีหลายสิ่งที่ 1573 01:14:42,150 --> 01:14:43,280 เป็นระดับเดียวกันได้หรือไม่ 1574 01:14:43,280 --> 01:14:45,829 ดังนั้นสำหรับตัวอย่างเช่นถ้าเรากำลัง เพียงแค่ใช้บริสุทธิ์ JavaScript, 1575 01:14:45,829 --> 01:14:48,120 เราจะทำสิ่งที่ชอบ document.getElementsByClass 1576 01:14:48,120 --> 01:14:52,280 1577 01:14:52,280 --> 01:14:56,320 และแล้วสิ่งที่ไม่จริง มีที่ส่งกลับอาร์เรย์ขององค์ประกอบ 1578 01:14:56,320 --> 01:14:59,517 >> และคุณจะต้องทั้งย้ำกว่า พวกเขาหรือหาที่ที่คุณต้องการ 1579 01:14:59,517 --> 01:15:01,350 มันไม่ได้เป็นไปเพื่อให้ คุณเป็นองค์ประกอบเดียว 1580 01:15:01,350 --> 01:15:03,450 มันจะทำให้คุณ อาร์เรย์ขององค์ประกอบ 1581 01:15:03,450 --> 01:15:05,280 คำถามที่ดี 1582 01:15:05,280 --> 01:15:07,700 อะไรอีกหรือไม่ 1583 01:15:07,700 --> 01:15:09,520 ที่น่ากลัว 1584 01:15:09,520 --> 01:15:12,860 >> ดังนั้นผมจึงคิดว่าถ้าคุณคุ้นเคยกับ jQuery ใด ๆ ที่คุณเห็นใน pset ที่ 1585 01:15:12,860 --> 01:15:15,600 คุณควรจะดีไป 1586 01:15:15,600 --> 01:15:16,325 คำถาม? 1587 01:15:16,325 --> 01:15:17,610 ไม่นะ. 1588 01:15:17,610 --> 01:15:18,859 ผมต้องสอน 1589 01:15:18,859 --> 01:15:19,358 ผ่อนคลาย. 1590 01:15:19,358 --> 01:15:20,035 มันจะดี 1591 01:15:20,035 --> 01:15:20,660 ฉันจะได้รับมี 1592 01:15:20,660 --> 01:15:24,670 1593 01:15:24,670 --> 01:15:26,870 >> พูดคุยเกี่ยวกับอาแจ็กซ์ 1594 01:15:26,870 --> 01:15:31,350 อาแจ็กซ์จึงเป็นไปได้ a-- ดี ขอเริ่มต้นด้วยสิ่งที่มันหมายถึง 1595 01:15:31,350 --> 01:15:32,350 มันเป็นตัวย่อ 1596 01:15:32,350 --> 01:15:35,855 มันหมายถึงการไม่ตรงกัน JavaScript และ XML 1597 01:15:35,855 --> 01:15:39,800 และ XML เป็นพื้นเป็นไปได้ [ไม่ได้ยิน] กับชนิดของข้อมูลของเรา 1598 01:15:39,800 --> 01:15:42,100 แต่เรายังไม่ได้นำมาใช้จริง XML 1599 01:15:42,100 --> 01:15:43,430 แต่เราเพียงแค่ใช้ JSON 1600 01:15:43,430 --> 01:15:48,350 >> ดังนั้นโดยทั่วไปก็ data-- บาง ไม่ตรงกัน JavaScript และข้อมูล 1601 01:15:48,350 --> 01:15:50,040 ในกรณีนี้ JSON 1602 01:15:50,040 --> 01:15:52,820 และเป้าหมายของเราในขณะที่เรากล่าวถึง นิด ๆ หน่อย ๆ ก่อนหน้านี้ 1603 01:15:52,820 --> 01:15:56,880 คือการที่จะสามารถที่จะทำให้ ขอได้ขอให้ทำ 1604 01:15:56,880 --> 01:16:00,700 สิ่งที่อยู่ใน พื้นหลัง แต่ยังคง 1605 01:16:00,700 --> 01:16:02,550 ทำสิ่งที่เรากำลังตั้งใจที่จะทำ 1606 01:16:02,550 --> 01:16:06,650 และจากนั้นเมื่อข้อมูลที่ พร้อมแล้วเราจะรวมไว้ 1607 01:16:06,650 --> 01:16:08,470 >> ดังนั้นเรามาดูสิ่งนี้ จริงดูเหมือน 1608 01:16:08,470 --> 01:16:11,210 และนี้คุณควรจะ นิด ๆ หน่อย ๆ ที่คุ้นเคย 1609 01:16:11,210 --> 01:16:13,680 จาก pset8 หนึ่งที่คุณเพิ่งเปิดใน 1610 01:16:13,680 --> 01:16:16,200 ดังนั้นนี่คือ jQuery ที่ถูกต้อง ฟังก์ชั่นที่เราอาจจะ 1611 01:16:16,200 --> 01:16:18,250 ต้องการทราบ about-- เครื่องหมายดอลลาร์นี้ 1612 01:16:18,250 --> 01:16:21,500 ดังนั้นจึงกล่าวว่าฟังก์ชั่น jQuery, .getJson 1613 01:16:21,500 --> 01:16:25,020 >> และสิ่งที่ฟังก์ชั่นนี้ไม่ได้เป็น ใช้เวลา URL และ parameters-- บาง 1614 01:16:25,020 --> 01:16:28,000 ดังนั้นฉันคิดว่าในกรณีที่ ของ pset8 มันเป็นเหมือน 1615 01:16:28,000 --> 01:16:33,520 URL ที่เป็น articles.php และ พารามิเตอร์เป็นไป = บางรหัสไปรษณีย์ 1616 01:16:33,520 --> 01:16:41,580 และมันก็บอกว่าตกลงขอไป URL นี้มีพารามิเตอร์ที่กำหนด 1617 01:16:41,580 --> 01:16:43,480 และที่เพิ่งเกิดขึ้น 1618 01:16:43,480 --> 01:16:47,730 >> เมื่อเสร็จสิ้นก็อย่างใดอย่างหนึ่ง จะสำเร็จ 1619 01:16:47,730 --> 01:16:49,370 หรือมันจะล้มเหลว 1620 01:16:49,370 --> 01:16:53,480 ดังนั้นนี่คือเทียบเท่าของการโทร ร็อบและขอให้เขาทำอะไรบางอย่าง 1621 01:16:53,480 --> 01:17:00,260 และจากนั้นเมื่อเขาโทรกลับเขาเป็นอย่างใดอย่างหนึ่ง จะบอกว่าฉันทำหรือฉันล้มเหลว 1622 01:17:00,260 --> 01:17:04,030 >> ดังนั้นในกรณีที่คุณเป็น ทำคุณพูดว่าตกลงฉันทำ 1623 01:17:04,030 --> 01:17:05,980 และจากนั้นคุณเรียกใช้ฟังก์ชันนี้ 1624 01:17:05,980 --> 01:17:08,915 ในกรณีนี้ก็จะเป็น ฟังก์ชั่นที่ต้องใช้ข้อมูลบางส่วน 1625 01:17:08,915 --> 01:17:12,890 หนึ่งที่เรามักจะดูแลเกี่ยวกับข้อมูล ข้อมูลที่เราได้กลับมาจริง 1626 01:17:12,890 --> 01:17:15,900 เป็นผลมาจากการเรียก .getJSON 1627 01:17:15,900 --> 01:17:17,470 >> และคุณสามารถทำอะไรกับมัน 1628 01:17:17,470 --> 01:17:23,670 ดังนั้นในกรณีของ pset8 ที่ เราแสดงมันเป็นรายการ 1629 01:17:23,670 --> 01:17:29,050 ล้มเหลวจะเป็นฟังก์ชั่น ที่เรียกว่าถ้าขอล้มเหลว 1630 01:17:29,050 --> 01:17:30,450 ด้วยเหตุผลใด 1631 01:17:30,450 --> 01:17:35,104 และในกรณีของ pset8 ที่ เราเพียงแค่ console.log มัน 1632 01:17:35,104 --> 01:17:36,020 คำถามใด ๆ เกี่ยวกับที่? 1633 01:17:36,020 --> 01:17:36,300 ใช่. 1634 01:17:36,300 --> 01:17:39,633 >> ผู้ชม: เราสามารถเพียงแค่ใช้ฟังก์ชั่นที แทนการใช้ฟังก์ชั่น textStatus, jqHXR 1635 01:17:39,633 --> 01:17:43,464 1636 01:17:43,464 --> 01:17:44,380 HANNAH Blumberg: Sure 1637 01:17:44,380 --> 01:17:46,713 เพื่อใช่ผมคิดว่าใน pset ที่ เราก็เห็นข้อมูลที่ฟังก์ชั่น 1638 01:17:46,713 --> 01:17:48,700 ดังนั้นมันจึงเป็นเพียงแค่ the-- ใช่ตกลง 1639 01:17:48,700 --> 01:17:50,510 นั่นคือสิ่งที่เราเห็นใน pset 1640 01:17:50,510 --> 01:17:51,480 ที่ดีทั้งหมด 1641 01:17:51,480 --> 01:17:54,210 >> เหล่านี้เป็นเพียงหากคุณต้องการ ที่จะดึงออกข้อมูลเพิ่มเติม 1642 01:17:54,210 --> 01:17:57,190 เหล่านี้เป็นสิ่งที่ คุณจะได้รับจาก .getJSON 1643 01:17:57,190 --> 01:17:59,040 คำถามที่ดี. 1644 01:17:59,040 --> 01:17:59,706 อะไรอีกหรือไม่ 1645 01:17:59,706 --> 01:18:00,206 ใช่. 1646 01:18:00,206 --> 01:18:01,787 >> ผู้ชม: ดังนั้น .getJSON คืออาแจ็กซ์? 1647 01:18:01,787 --> 01:18:02,620 HANNAH Blumberg: OK 1648 01:18:02,620 --> 01:18:05,700 ดังนั้นนี้เป็นชนิดของส่วนหากิน 1649 01:18:05,700 --> 01:18:12,390 มันเป็นฟังก์ชั่นที่ช่วยให้ jQuery คุณจะทำอย่างไรโทรไม่ตรงกัน 1650 01:18:12,390 --> 01:18:16,080 และโทรไม่ตรงกันเหล่านั้นว่าเป็น สิ่งที่เราได้รับการอ้างถึงเป็นอาแจ็กซ์ 1651 01:18:16,080 --> 01:18:16,850 ใช่. 1652 01:18:16,850 --> 01:18:20,185 ที่เอาฉันเป็นเวลานานมากที่จะ ดึงออกจากกันเมื่อฉันเป็นนักเรียน 1653 01:18:20,185 --> 01:18:21,560 ผู้ชม: คุณสามารถพูดได้ว่าอีกครั้งหรือไม่ 1654 01:18:21,560 --> 01:18:22,476 HANNAH Blumberg: ใช่ 1655 01:18:22,476 --> 01:18:23,630 ฉันจะบอกว่าอีกครั้งหรือไม่ 1656 01:18:23,630 --> 01:18:29,010 ฟังก์ชั่น .getJSON, มันเป็นฟังก์ชั่น jQuery 1657 01:18:29,010 --> 01:18:31,970 และมันจะทำให้ การโทรไม่ตรงกัน 1658 01:18:31,970 --> 01:18:35,700 และโทรไม่ตรงกันเหล่านี้เราได้ หมายถึงการที่เป็นอาแจ็กซ์ 1659 01:18:35,700 --> 01:18:39,610 1660 01:18:39,610 --> 01:18:41,872 >> คำถามใด ๆ อื่น ๆ ? 1661 01:18:41,872 --> 01:18:43,330 เราได้เพียงไม่กี่นาทีที่เหลือ 1662 01:18:43,330 --> 01:18:45,080 และมาเรียไป ตัดขึ้นกับการรักษาความปลอดภัย 1663 01:18:45,080 --> 01:18:47,464 และจากนั้นเราจะ จะเป็นเพียงดำเนินการเกี่ยวกับ 1664 01:18:47,464 --> 01:18:48,630 MARIA ZLATKOVA: น่ากลัวตกลง 1665 01:18:48,630 --> 01:18:54,030 ดังนั้นนี่ is-- ใช้เวลาเพียงแค่ไม่กี่ วินาทีเพื่อดูมากกว่านี้ 1666 01:18:54,030 --> 01:18:56,750 และนี่คือสิ่งที่ไม่ดีจริงๆ 1667 01:18:56,750 --> 01:18:59,430 และคนที่สามารถบอกได้ว่าทำไม? 1668 01:18:59,430 --> 01:19:05,650 สิ่งที่เกิดขึ้นใน foo และอาจจะทำได้ อาจส่งผลให้บางสิ่งบางอย่างที่ไม่ดี 1669 01:19:05,650 --> 01:19:06,770 และสิ่งที่เรียกว่า? 1670 01:19:06,770 --> 01:19:07,270 ใช่. 1671 01:19:07,270 --> 01:19:10,391 ผู้ชม: ถ้าอาร์กิวเมนต์ที่ ผ่านในมากกว่า 12 ตัวอักษร 1672 01:19:10,391 --> 01:19:11,454 มันอาจจะล้น 1673 01:19:11,454 --> 01:19:12,370 MARIA ZLATKOVA: ขวา 1674 01:19:12,370 --> 01:19:14,180 ที่สมบูรณ์แบบ 1675 01:19:14,180 --> 01:19:15,384 มันเรียกว่าอะไร? 1676 01:19:15,384 --> 01:19:16,300 คุณเพียงแค่พูดถึงเรื่องนี้ 1677 01:19:16,300 --> 01:19:16,840 >> ผู้ชม: หน่วยความจำล้น 1678 01:19:16,840 --> 01:19:18,381 >> MARIA ZLATKOVA: Yup, หน่วยความจำล้น 1679 01:19:18,381 --> 01:19:21,230 ดังนั้นนี่คือสิ่งที่เรา เรียกว่าหน่วยความจำล้น 1680 01:19:21,230 --> 01:19:25,500 และเราจะเห็นภายในของ foo ว่า เราได้กำหนดบัฟเฟอร์ของเรา C, 1681 01:19:25,500 --> 01:19:27,240 มีขนาด 12 1682 01:19:27,240 --> 01:19:32,680 อย่างไรก็ตามในหลักที่เราทำไม่ได้ การตรวจสอบในทางใด ๆ เลย 1683 01:19:32,680 --> 01:19:36,480 ไม่ว่าจะเป็น argv1-- เพื่อให้ เป็นอาร์กิวเมนต์ที่สอง 1684 01:19:36,480 --> 01:19:39,630 เราไม่ได้ตรวจสอบว่า ขนาดของมันมีความเหมาะสม 1685 01:19:39,630 --> 01:19:43,380 >> ดังนั้นหากเรามี โดยเฉพาะอย่างยิ่งใช้ที่เป็นอันตราย 1686 01:19:43,380 --> 01:19:47,170 ที่ใส่ในข้อโต้แย้งว่าเป็นบางส่วน นานกว่า 12 แล้วที่อาจเกิดขึ้น 1687 01:19:47,170 --> 01:19:50,850 เกินขอบเขตของที่ ข้อโต้แย้งที่มีบางรหัสปฏิบัติการ 1688 01:19:50,850 --> 01:19:55,570 ว่าเขากำลังพยายามที่จะทำสิ่งที่ไม่ดี กับมัน แล้วนี้สิ่งที่จะเกิดขึ้น 1689 01:19:55,570 --> 01:19:59,310 จะกลับมาแทนที่ ที่อยู่ของฟังก์ชั่นฟู 1690 01:19:59,310 --> 01:20:04,370 ก่อให้เกิดการทำงานเมื่อ กลับไปรันโค้ดที่ 1691 01:20:04,370 --> 01:20:07,540 และสิ่งที่ไม่ดีนั้นจะเกิดขึ้น 1692 01:20:07,540 --> 01:20:09,850 นี้ไม่ได้ทำให้ความรู้สึกที่ทุกคนหรือไม่ 1693 01:20:09,850 --> 01:20:12,424 >> และวิธีที่เราสามารถป้องกันการนี​​้หรือไม่? 1694 01:20:12,424 --> 01:20:13,090 ข้อเสนอแนะใด? 1695 01:20:13,090 --> 01:20:16,480 1696 01:20:16,480 --> 01:20:21,890 โดยทั่วไปภายใน ที่อาจเกิดขึ้น foo วิธี 1697 01:20:21,890 --> 01:20:28,294 เราสามารถตรวจสอบเพื่อให้แน่ใจว่า ที่ไม่สามารถเกิดขึ้นได้อย่างไร 1698 01:20:28,294 --> 01:20:33,879 >> ผู้ชม: ถ้าขนาด 12 เกิน ที่คุณจะจัดสรรหน่วยความจำเพิ่มเติม? 1699 01:20:33,879 --> 01:20:37,170 MARIA ZLATKOVA: ข้อเสนอแนะคือการจัดสรร หน่วยความจำเพิ่มเติมที่มีขนาดเกิน 1700 01:20:37,170 --> 01:20:39,800 ที่จริงแล้วเราสามารถทำบางสิ่งบางอย่าง ง่ายมากไปกว่านั้นเช่นกัน 1701 01:20:39,800 --> 01:20:44,870 เราก็จะได้รับความยาวของสตริง ของการโต้แย้งที่ป้อนให้ 1702 01:20:44,870 --> 01:20:48,590 ตรวจสอบว่าที่น้อย กว่าหรือเท่ากับ 12-- 1703 01:20:48,590 --> 01:20:50,790 ซึ่งเป็นสิ่งที่เราต้องการ จะเป็นเพราะเราไม่ต้องการ 1704 01:20:50,790 --> 01:20:52,373 มันจะเกินขอบเขตของบัฟเฟอร์ของเรา 1705 01:20:52,373 --> 01:20:55,690 และแล้วถ้ามันไม่ได้เรา สามารถทำงานร่วมกับการโต้แย้ง 1706 01:20:55,690 --> 01:21:00,296 และแล้วถ้ามันไม่ที่เราต้องการจริง เพื่อเยลโลที่อาจเกิดขึ้นในการใช้ 1707 01:21:00,296 --> 01:21:01,670 แต่นี้เป็นวิธีการที่เราจะทำอย่างนั้น 1708 01:21:01,670 --> 01:21:02,443 ใช่. 1709 01:21:02,443 --> 01:21:04,360 >> ผู้ชม: คุณสามารถ อธิบายอย่างรวดเร็ว memcpy จริง? 1710 01:21:04,360 --> 01:21:05,443 MARIA ZLATKOVA: โอ้ขอโทษ 1711 01:21:05,443 --> 01:21:06,040 ใช่. 1712 01:21:06,040 --> 01:21:11,290 memcpy ใช้สิ่งที่ is-- ขออภัยตกลง 1713 01:21:11,290 --> 01:21:15,850 memcpy ใช้สิ่งที่อยู่ ในแถบสิ่งที่ผ่านไปมา 1714 01:21:15,850 --> 01:21:18,050 บน foo เป็นอาร์กิวเมนต์บรรทัดคำสั่ง 1715 01:21:18,050 --> 01:21:19,440 ดังนั้นมันจะใช้เวลา argv1 1716 01:21:19,440 --> 01:21:21,420 Argv1 เรียกว่าบาร์นี่ 1717 01:21:21,420 --> 01:21:24,453 ดังนั้นมันจะใช้เวลาและบาร์ ก็จะคัดลอกลงในค 1718 01:21:24,453 --> 01:21:25,402 >> ผู้ชม: ตกลง 1719 01:21:25,402 --> 01:21:28,360 MARIA ZLATKOVA: และมันเป็นไป copy-- อาร์กิวเมนต์ที่สามเพียงหมาย 1720 01:21:28,360 --> 01:21:30,601 เท่าใดก็จะคัดลอกลงในค 1721 01:21:30,601 --> 01:21:31,142 ผู้ชม: อ่า 1722 01:21:31,142 --> 01:21:33,030 ดังนั้นการคัดลอกของคนนี้ทั้งหมดของมันแล้ว 1723 01:21:33,030 --> 01:21:34,310 >> MARIA ZLATKOVA: ใช่ ก็คัดลอกทั้งหมดของมัน 1724 01:21:34,310 --> 01:21:34,810 อือ 1725 01:21:34,810 --> 01:21:38,400 1726 01:21:38,400 --> 01:21:41,910 ครั้งแรกที่เราให้แน่ใจว่าบาร์ไม่ได้ เท่ากับ null เพราะมันเป็นตัวชี้ 1727 01:21:41,910 --> 01:21:44,680 จากนั้นเราก็จะได้รับความยาวสตริงของบาร์ 1728 01:21:44,680 --> 01:21:47,530 เราแน่ใจว่ามันเป็น น้อยกว่าหรือเท่ากับ 12 1729 01:21:47,530 --> 01:21:50,070 และจากนั้นก็เพราะเราได้ ทำให้แน่ใจว่าเราสามารถจริง 1730 01:21:50,070 --> 01:21:53,122 memcpy และให้แน่ใจว่าที่ตกลง 1731 01:21:53,122 --> 01:21:53,705 มีคำถามอะไรไหม? 1732 01:21:53,705 --> 01:21:56,280 1733 01:21:56,280 --> 01:21:58,690 ที่ดี 1734 01:21:58,690 --> 01:22:00,400 ฉันมีสองคำถามจริงหรือเท็จ 1735 01:22:00,400 --> 01:22:05,470 ทุกคนสามารถบอกได้ทันที ถ้าเหล่านี้เป็นจริงหรือเท็จ? 1736 01:22:05,470 --> 01:22:07,460 ใช่มันเป็นเท็จ 1737 01:22:07,460 --> 01:22:07,960 ที่แน่นอน 1738 01:22:07,960 --> 01:22:09,330 ทั้งของพวกเขาเป็นเท็จ 1739 01:22:09,330 --> 01:22:12,682 ดังนั้นการใช้รหัสผ่านเดียว ไม่เคยมีความคิดที่ดีจริงๆ 1740 01:22:12,682 --> 01:22:14,890 เพราะถ้ามีคนรู้ รหัสผ่านของคุณพวกเขาก็สามารถ 1741 01:22:14,890 --> 01:22:16,260 เข้าถึงบัญชีอื่น ๆ ของคุณทั้งหมด 1742 01:22:16,260 --> 01:22:19,260 และแล้วไอคอนที่ไม่ทำอะไรเลย เพื่อให้แน่ใจว่าการรักษาความปลอดภัย 1743 01:22:19,260 --> 01:22:24,900 เรามักจะควรมองหา HTTPS แทน HTTP และ URL ของ 1744 01:22:24,900 --> 01:22:28,560 >> และบางชนิดอื่น ๆ การโจมตีที่เราได้กล่าวถึง 1745 01:22:28,560 --> 01:22:31,390 ที่ดาวิดได้กล่าวถึงใน การบรรยายการโจมตีฉีด SQL 1746 01:22:31,390 --> 01:22:37,310 เราได้เห็นว่าถ้าเรา don't-- CS50 ฟังก์ชั่นการสอบถามทำให้แน่ใจว่า SQL 1747 01:22:37,310 --> 01:22:39,530 โจมตีฉีดไม่สามารถเกิดขึ้นได้ 1748 01:22:39,530 --> 01:22:42,640 แต่ถ้าเราไม่ได้ใช้ CS50, อ้างนำมาอ้าง "ในแบบสอบถาม" 1749 01:22:42,640 --> 01:22:46,830 เราจะต้องตรวจสอบให้แน่ใจว่า ผู้ใช้ป้อนไม่จริงบาง SQL 1750 01:22:46,830 --> 01:22:49,670 แบบสอบถามที่จะทำให้ทุกคน ตารางของเราจะลดลง 1751 01:22:49,670 --> 01:22:54,070 หรือสิ่งที่ไม่ดี เกิดขึ้นกับฐานข้อมูลของเรา 1752 01:22:54,070 --> 01:22:56,790 >> จี้เซสชั่นคือ ประเภทของการโจมตีอีก 1753 01:22:56,790 --> 01:23:05,940 ที่เกิดขึ้นเมื่อบางที่ไม่ดี คนใช้เซสชั่นของเหยื่อบาง 1754 01:23:05,940 --> 01:23:08,740 ID ในการเข้าถึงข้อมูลการเข้าสู่ระบบ 1755 01:23:08,740 --> 01:23:13,620 ดังนั้นตัวอย่างที่น่ารำคาญมากที่ เช่นถ้าเรามีคอมพิวเตอร์สาธารณะ 1756 01:23:13,620 --> 01:23:21,120 แล้วบันทึกคนที่ไม่ดีในแล้ว พวกเขามีคุกกี้ที่บันทึกไว้ 1757 01:23:21,120 --> 01:23:23,380 และคุกกี้ไม่เปลี่ยนสำหรับเซสชั่น 1758 01:23:23,380 --> 01:23:27,620 >> จากนั้นเราได้เหยื่อไป และจากนั้นเข้าสู่เว็บไซต์ 1759 01:23:27,620 --> 01:23:30,290 คุกกี้ไม่เปลี่ยน สำหรับเซสชั่นบางอย่าง 1760 01:23:30,290 --> 01:23:33,060 และจากนั้นเหยื่อบัน​​ทึกลงใน เว็บไซต์และใบแล้ว 1761 01:23:33,060 --> 01:23:36,190 และแล้วคนที่ไปกลับ จากนั้นยังคงใช้ ID เซสชั่นของพวกเขา 1762 01:23:36,190 --> 01:23:37,430 ในการเข้าถึงข้อมูลของพวกเขา 1763 01:23:37,430 --> 01:23:40,050 เพื่อให้เป็นตัวอย่างหนึ่งของ วิธีการที่อาจเกิดขึ้น 1764 01:23:40,050 --> 01:23:45,570 >> แล้วฉันจะไม่ต้องกังวลมากเกินไป เกี่ยวกับรหัสที่เฉพาะเจาะจงหรืออะไร 1765 01:23:45,570 --> 01:23:49,270 เช่นเดียวกับที่ที่อาจทำให้เกิดนี้ แต่มีการจัดเรียงของความคิดบางสิ่ง 1766 01:23:49,270 --> 01:23:51,400 ตัวแปรที่เกี่ยวข้องในการนี​​้ 1767 01:23:51,400 --> 01:23:53,897 และจากนั้นก็จัดการกับส่วนหัว ข้อมูลที่เป็นประเภทของการโจมตีอีกครั้ง 1768 01:23:53,897 --> 01:23:55,230 ที่ได้ดาวิดได้พูดคุยเกี่ยวกับ 1769 01:23:55,230 --> 01:23:59,730 และมันก็หมายถึง สิ่งที่สามารถเกิดขึ้นได้เมื่อ 1770 01:23:59,730 --> 01:24:04,300 การตอบสนอง, ของ HTTP การตอบสนองภายในของส่วนหัวของเรา 1771 01:24:04,300 --> 01:24:05,720 ไม่ได้ชัดเจนพอ 1772 01:24:05,720 --> 01:24:14,340 >> และใด ๆ ของ fields-- สำหรับตัวอย่างเช่น ถ้ามีคนเขียนทับหนึ่งในส่วนหัว 1773 01:24:14,340 --> 01:24:18,860 ค่าที่จะมีอะไรมากไปกว่า สิ่งที่พวกเขาควร contain-- และจริง 1774 01:24:18,860 --> 01:24:22,720 มีตัวอย่างเช่น 200 รหัสสถานะตกลงแล้วพวกเขา 1775 01:24:22,720 --> 01:24:26,890 อาจจะทำอันตราย สิ่งที่เมื่อพวกเขากำลังไม่ควรที่จะ 1776 01:24:26,890 --> 01:24:30,815 แต่ฉันจะไม่ต้องกังวลมากเกินไป มากเกี่ยวกับรหัสที่เฉพาะเจาะจง 1777 01:24:30,815 --> 01:24:34,110 ที่อาจทำให้เกิดนี้ เพียงแค่การจัดเรียงของความเข้าใจ 1778 01:24:34,110 --> 01:24:37,290 สิ่งที่ระดับสูงเช่นเดียวกับที่ 1779 01:24:37,290 --> 01:24:39,570 >> ผมคิดว่านี่เป็นสิ่งที่ ที่เรามีเพื่อให้ครอบคลุม 1780 01:24:39,570 --> 01:24:40,090 ที่น่าตื่นตาตื่นใจ 1781 01:24:40,090 --> 01:24:43,310 ใครมีคำถามใด ๆ เกี่ยวกับการใด ๆ ในสิ่งที่เราได้รับการคุ้มครอง? 1782 01:24:43,310 --> 01:24:44,213 ใช่. 1783 01:24:44,213 --> 01:24:48,077 >> ผู้ชม: ดังนั้นหนึ่งประเภทของ คำถามจิสติกส์มากขึ้น 1784 01:24:48,077 --> 01:24:53,400 เป็นเนื้อหาที่มุ่งเน้น ในสิ่งที่หลังจากตอบคำถาม 1 1785 01:24:53,400 --> 01:24:55,730 >> MARIA ZLATKOVA: ดังนั้น คำถามคือเป็นเนื้อหา 1786 01:24:55,730 --> 01:24:59,720 มุ่งเน้นในสิ่งที่หลังจากตอบคำถาม 1 1787 01:24:59,720 --> 01:25:06,070 ดังนั้นโฟกัสอยู่บนหลัง ตอบคำถามที่ 1 มีข้อยกเว้น 1788 01:25:06,070 --> 01:25:10,914 ที่เราต้องให้ความสำคัญกับสิ่งที่อยู่ใน pset5 และจำนวนมากของโครงสร้างข้อมูลที่ 1789 01:25:10,914 --> 01:25:11,580 ที่เราได้รับการคุ้มครอง 1790 01:25:11,580 --> 01:25:14,300 และเราไม่สามารถพูดได้ว่าเรา สามารถละเว้นอะไรก่อน 1791 01:25:14,300 --> 01:25:17,120 เพราะมันสร้างขึ้นเป็นอย่างดี 1792 01:25:17,120 --> 01:25:21,845 >> ดังนั้นมุ่งเน้นไปที่รวมทั้งวัสดุ pset5 เช่นรวมถึงรายชื่อที่เชื่อมโยงกอง 1793 01:25:21,845 --> 01:25:23,720 คิวและทุกอย่าง ฮันนาห์เดินไป 1794 01:25:23,720 --> 01:25:24,050 >> HANNAH Blumberg: ขวา 1795 01:25:24,050 --> 01:25:27,450 ใช่เราเดินไปทุกสิ่งที่ซี ที่จุดเริ่มต้นมากอย่างรวดเร็ว 1796 01:25:27,450 --> 01:25:29,090 แต่ให้แน่ใจว่าในการตรวจสอบว่า 1797 01:25:29,090 --> 01:25:32,700 ย้อนกลับไปและดูการตอบคำถาม 0 ความคิดเห็น 1798 01:25:32,700 --> 01:25:36,110 >> คู่บันทึกจิสติกส์มากขึ้น เพียงขณะที่เรามีความสนใจของคุณ 1799 01:25:36,110 --> 01:25:39,100 เราจะมีเวลาทำงาน ทั้งในวันจันทร์และวันอังคาร 1800 01:25:39,100 --> 01:25:41,540 พวกเขากำลังจะไปอยู่ใน MD 119 1801 01:25:41,540 --> 01:25:44,220 นี่คือทั้งหมดบนเว็บไซต์เพื่อให้ ถ้าคุณไม่ได้ยินมันไม่ต้องกังวล 1802 01:25:44,220 --> 01:25:45,266 >> MARIA ZLATKOVA: 8:30-11:00 1803 01:25:45,266 --> 01:25:46,260 >> HANNAH Blumberg: ใช่ 8:30-11:00 1804 01:25:46,260 --> 01:25:46,910 เราจะอยู่ที่นั่น 1805 01:25:46,910 --> 01:25:48,368 เราจะมีการตอบคำถาม 1806 01:25:48,368 --> 01:25:49,480 มันหนาวสวยและความสนุกสนาน 1807 01:25:49,480 --> 01:25:53,240 พวกคุณสามารถถามคำถามใด ๆ ที่คุณมีในการตอบคำถาม 1 1808 01:25:53,240 --> 01:25:55,740 และตอบคำถามที่ 1 บน วันพุธโชคดีดังนั้น 1809 01:25:55,740 --> 01:25:59,770 หากคุณมีคำถามใด ๆ ที่อาจจะ มาพูดคุยกับเราได้ที่นี่หนึ่งในหนึ่ง 1810 01:25:59,770 --> 01:26:00,880 เย็น. 1811 01:26:00,880 --> 01:26:01,630 ขอบคุณมาก. 1812 01:26:01,630 --> 01:26:02,880 >> MARIA ZLATKOVA: ขอบคุณมากครับ 1813 01:26:02,880 --> 01:26:03,480 >> ผู้ชม: ยาย 1814 01:26:03,480 --> 01:26:05,930 >> [APPLAUSE] 1815 01:26:05,930 --> 01:26:07,530