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