[เล่นเพลง] DAVID ลัน: นี่คือ CS50 นี่คือจุดเริ่มต้นของสัปดาห์ที่เก้า และนี่คือสิ่งที่จะต้อง รับวันเกิด 200 ปีของนายบูล ดังนั้นนี่คือเพื่อน ซึ่งเราได้พูดพาดพิง ครั้งค่อนข้างบางเกี่ยวกับการใช้ ตัวแปรบูลีนความจริงและเท็จ 1 คนและ 0 และเช่น และนี่คือของ Google ส่วยให้เขาในวันนี้ เขาจะได้หัน 200 ดังนั้นหากคุณต้องการที่จะ เข้าร่วมกับเราสำหรับมื้อกลางวัน CS50, ดูที่การเชื่อมโยง บนเว็บไซต์ของหลักสูตร และใบหน้าดังกล่าวและเพื่อน ๆ เหล่านี้รอคุณอยู่ที่นี่ในเคมบริดจ์ ใบหน้าเช่นนี้รอคุณอยู่ในนิวเฮเวน และในความเป็นจริงในเคน นิวเฮเวนกรุณาทำ สิ่งที่เรียกว่า GIF เคลื่อนไหวของเอลี ที่นี่ที่ล่าสุด lunch-- แฟ้ม GIF ยัง รูปแบบไฟล์กราฟิกอื่น กับที่คุณ familiar-- ว่า มีลักษณะบางสิ่งบางอย่างเล็ก ๆ น้อย ๆ เช่นนี้ ดังนั้นเพียงแค่ลำดับ of-- ตกลง ไม่มีใครที่นี่ในเคมบริดจ์หัวเราะ แต่ในนิวเฮเวนนี้ เป็นตลกจริงๆใช่มั้ย? ทั้งหมดขวา จึงเข้าร่วมกับเรามี ที่นี่ที่ฮาร์วาร์ โดยเฉพาะวันพุธนี้ ถ้าคุณเป็นปีหรือน้อง even-- หรือแม้กระทั่งความคิดของการทำ junior-- สวิทช์ลงในเครื่องคอมพิวเตอร์ วิทยาศาสตร์รู้ว่ามีจะ จะเป็นลูกค้าให้คำปรึกษางานนี้ วันพุธที่ในไม่ช้าหลังเลิกเรียน ที่ 04:00 ในคอมพิวเตอร์ วิทยาศาสตร์อาคารแมกซ์เวลดวอร์คิ เราจะใส่นี้ในหลักสูตรของ เว็บไซต์โดยในวันพรุ่งนี้เช่นกัน โดนัทผมบอกว่าจะทำหน้าที่ ทั้งหมดขวา story-- ตลกดังนั้นฉันถูกจิ้ม รอบบนอินเทอร์เน็ต และผมพบว่าบางส่วนที่เก็บเก่า ของเว็บไซต์ในอดีตของฉัน และมันจะเปิด out-- รอบนี้ เวลาที่ดูเหมือนว่าเวลาที่เหมาะสมมาก ตั้งแต่ผมรวบรวมว่าการเลือกตั้ง UC กำลังจะเปลี่ยนเกียร์ขึ้นมาอีกครั้ง ดังนั้นผมจึงวิ่งไปหา UC หายไปอย่างน่าสังเวช และอาจจะเป็นส่วนหนึ่งของเหตุผล ดังนั้นนี่คือเว็บไซต์ของฉันในเวลา ด้วยเหตุผลบางอย่างที่ฉันคิดว่ามันเป็น ความคิดที่ดีก่อนที่จะบอกคน สิ่งที่ฉันเป็นแพลตฟอร์มและทำไมพวกเขา ควรลงมติสำหรับฉันว่าพวกเขามี คลิกเพื่อเข้าสู่ที่พบว่า ข้อมูลซึ่งในการหวนกลับเป็น ชนิดของที่น่าขนลุก ผมไม่ทราบจริงๆสิ่งที่เป็น แต่แน่นอนไม่ได้ ช่วยให้แคมเปญของฉัน ฉันยังพบว่าโดยการอาวุโส year-- นี้ผมมีคนโง่ปฏิทิน Muppets เป็นชนิดของในสมัย​​กลับมาแล้ว หรือบางทีพวกเขาไม่ได้ ผมมีปฏิทินโง่กลับมาแล้ว และฉันคิดว่ามันจะเย็นจะชื่อ คอมพิวเตอร์ในเครือข่ายของฮาร์วาร์ frogman.student.harvard.edu ในขณะที่เราทุกคนมีที่ไม่ซ้ำกัน ชื่อโฮสต์ที่สามารถระบุตัว และคุณสามารถเลือกโต๊ะเครื่องแป้งบาง ชื่อแทนชื่อของคุณเอง และฉันไปกับมนุษย์กบด้วยเหตุผลบางอย่าง แล้วฉัน started-- ผมใช้เวลามาก เวลาการคลิกผ่านการเชื่อมโยงเหล่านี้ เช้านี้. และนี่คือหน้าเกี่ยวกับฉัน ซึ่งตอนนี้ดูเหมือนว่าชนิดของที่น่ารัก แต่มันก็ยังเป็นพยานเพียง เทคโนโลยีวิธีการห่างไกลได้มา ผมหมายถึงกลับในวันที่ 486 เป็นสิ่งที่ วันนี้มันสุดสุด ช้าสุดและดีน้อย กว่าที่คุณอาจมีในของคุณ กระเป๋าของตัวเองวันนี้ มีมากขึ้นในการมีที่ ก็ยิ่งน่าอายมากขึ้น ดังนั้นฉันจะปล่อยให้มันเป็นแบบนั้น แต่นั่นก็เป็นครั้งแรกของฉัน จู่โจมเข้า web-- โอ้ไม่มี นั่นคือไม่ได้ การโจมตีจริงของฉันครั้งแรกในการเขียนโปรแกรมเว็บ เป็นที่นี้ซึ่งฉันก็ลืม ในบางจุดที่ผมได้เรียนรู้วิธีการ ทำให้ภาพพื้นหลังซ้ำ และเพื่อให้ฉันพบนี้ปูกระเบื้องที่มีประสิทธิภาพ เหมือนนักกีฬาฮอกกี้, ฟุตบอลและกอล์ฟ ลูกหรืออะไรก็ตามที่เป็น สำหรับเว็บไซต์ Frosh สนทนา และนี่ก็เป็นจริงอย่างแท้จริง โครงการบนเว็บแรกที่ผมเอา on-- ผมคิดว่าอาจจะเป็นปี ปี year-- จูเนียร์ หลังจากการ CS50 และ CS51 หนึ่ง ที่พบตามมาเรียน ผมสังเกตเห็นในการมอง ผ่านข้อมูลที่เก็บไว้ ว่าเป็นหนึ่งในผู้สืบทอดของฉันและ เพื่อนลีชนิดของการเปลี่ยนแปลง ลิขสิทธิ์ให้กับตัวเอง แต่นี้คือสิ่งที่แน่นอน ฉันควรจะเป็นเจ้าของความลำบากใจให้กับ แต่ในเวลานี้ เป็นเว็บไซต์แรก ที่ผมกล่าวว่าไม่กี่สัปดาห์ที่ผ่านมา โดยที่น้องจะทำได้ ลงทะเบียนสำหรับกีฬาที่นี่ และดังนั้นจึงจะเปิดออก ว่าภาพพื้นหลัง เช่นเดียวกับที่ไม่ได้เช่นความคิดที่ดี แต่เว็บใหม่และ เราทุกคนทดลอง และนี่คือสิ่งที่ฉัน เห็นได้ชัดว่าในเวลา ทั้งหมดขวา ดังนั้นไม่ต้องกังวลใจต่อไปเราสลับ เกียร์ในวันนี้เพื่อให้คุณจริงๆ ชิ้นสุดท้ายที่คุณอาจพบ ประโยชน์อย่างยิ่งสำหรับโครงการสุดท้าย แต่ยังว่าจะเริ่ม ทำให้ทั้งเว็บทั่วโลก รู้สึกนิด ๆ หน่อย ๆ ที่เข้าใจมากขึ้น อันที่จริงเรากำลังจะแนะนำ หนึ่งในการเขียนโปรแกรมภาษาอื่น ๆ อีกมากมาย เรียก JavaScript ที่คล้ายกัน และที่แตกต่างกันในรูปแบบที่แตกต่างกัน จากภาษาที่เราได้มองไปที่ป่านนี้ ดังนั้น C จำภาษารวบรวมนี้ คุณได้มีการเรียกใช้ผ่านคอมไพเลอร์ คุณจะได้รับรหัสที่มาคัดค้าน รหัสหรือเลขศูนย์และคน และผู้ที่มีเลขศูนย์และคนที่ ซีพียูของหน่วยประมวลผลกลาง, จริงเข้าใจ PHP โดยคมชัดไม่ได้ ภาษาที่รวบรวม มันเป็นสิ่งที่? มันเป็นภาษาที่ตีความ จึงมีบางโปรแกรม ล่ามเรียกว่า มีการอ่านบน it-- ไป ล่างซ้ายไป right-- และคิดออกว่าทั้งหมดของ ไวยากรณ์ของคุณไม่และหมายความว่า ไม่ว่าจะเป็นห่วงหรือเงื่อนไข หรือหมายเลขอื่น ๆ ของการเขียนโปรแกรม โครงสร้าง เพื่อให้เป็นภาษาตีความ จากนั้นเราก็นำมาใช้ HTML และ HTML เป็นไม่ได้ การเขียนโปรแกรมภาษา เราต้องการเรียกมันว่าอะไร? ภาษามาร์กอัปซึ่งเป็นเพียง การเรียงลำดับของวิธีที่จินตนาการของบอกว่ามัน ไม่ได้มีโครงสร้างเช่นการเขียนโปรแกรม เราเห็นแม้กระทั่งกลับมาในวันที่มีการเริ่มต้น มีลูปไม่มี มีเงื่อนไขไม่มี จริงๆมันเป็นภาษา เกี่ยวกับการทำเครื่องหมายข้อมูลของคุณ และการจัดรูปแบบหรือ โครงสร้างในทางใดทางหนึ่ง CSS ในขณะเดียวกันในทำนองเดียวกัน ไม่ใช่ภาษาการเขียนโปรแกรม มันมากยิ่งขึ้นที่มุ่งเน้นความสุนทรีย์ และจะช่วยให้คุณสามารถเรียงลำดับของการปรับแต่ง สิ่งที่ต้องการขนาดตัวอักษรและสี และการจัดวางและทุกที่ จากนั้นเราก็ SQL ดังนั้น SQL เป็นจริงการเขียนโปรแกรม ภาษาในความรู้สึกบางอย่าง แม้จะเหมาะ โดยเฉพาะกับฐานข้อมูล แต่ถึงแม้เราจะแนะนำให้ท่านรู้จัก เลือกและแทรกและลบและปรับปรุง และคู่ของคนอื่น ๆ เปิดออกคุณสามารถจริง เขียนฟังก์ชั่นหรือ ขั้นตอนที่พวกเขากำลัง เรียกว่าใน SQL ที่มีลักษณะและการกระทำ มากเช่น PHP และฟังก์ชั่น C ดังนั้นรู้ไหมว่าคนที่มีอยู่ แต่เราไม่ได้รำคาญกับพวกเขา ในขณะที่เราเพียงแค่รอยขีดข่วนบนพื้นผิวที่นี่ และแล้ว JavaScript สุดท้าย ภาษาของเราแนะนำอย่างเป็นทางการ ดังนั้น JavaScript ก็เป็น แปลภาษา และมีความคุ้นเคยเหล่านั้นทำ คุณต้องการที่จะเห็นความแตกต่าง ที่มีลักษณะบางอย่าง จากทั้ง C และ PHP? สิ่งที่ทำให้มันแตกต่างกันอย่างไร ผู้ชม: มันไม่ได้รวบรวม DAVID ลัน: Say อีกครั้งหรือไม่ ผู้ชม: มันไม่ได้รวบรวม DAVID ลัน: มันไม่ได้รวบรวม ดังนั้นมันเกินไปถูกตีความ ดังนั้นจึงไม่ได้รวบรวม แต่ที่ทำให้มันเป็นเช่น PHP เล็ก ๆ น้อย ๆ แต่ก็ยังคงแตกต่างจาก PHP ในบางวิธีที่โดดเด่น อย่างน้อยในวิธีที่เราจะใช้ ใช่? ผู้ชม: มันวิ่งฝั่งไคลเอ็นต์ DAVID ลัน: มันทำงาน ฝั่งไคลเอ็นต์มักจะ นั่นคือแน่นอนแยกความแตกต่าง ลักษณะเราตอนนี้ C เป็นด้านเซิร์ฟเวอร์ในความรู้สึก ที่เราทำทุกอย่างใน CS50 IDE PHP จึงห่างไกลได้รับ ฝั่งเซิร์ฟเวอร์ตราบเท่า ในขณะที่มันมากเกินไปได้รับ interpreted-- ไม่ได้รวบรวม แต่ interpreted-- ภายใน CS50 IDE ซึ่งแน่นอนคือ เพียงเซิร์ฟเวอร์หรือเซิร์ฟเวอร์ในเมฆ แต่ JavaScript แม้ แม้ว่าคุณคุณจะ ที่จะเริ่มต้นการเขียนมันพูด pset แปดและอาจจะเป็นครั้งสุดท้าย projects-- คุณ ไปทางขวาใน IDE CS50 และบันทึกไว้ ในแฟ้มที่ภายใน IDE CS50, CS50 IDE และในทางกลับกันเซิร์ฟเวอร์เมฆ ที่เป็นเจ้าภาพก็จะไม่ได้ไป ในการตีความหรือรันรหัสของคุณ แต่ก็จะถูกส่งไปใน รูปแบบที่เปลี่ยนแปลงลงไปที่เบราว์เซอร์ และมันแล้วจะเป็น IE หรือ Chrome หรือ Firefox หรือ Safari หรืออะไรก็ตามที่จริงตีความ มันบนลงล่างซ้ายไปขวา ดังนั้นความแตกต่างที่สำคัญ ลักษณะสำหรับวันนี้ คือว่า JavaScript เป็นฝั่งไคลเอ็นต์ และ PHP ตัวอย่างเช่น ได้รับการด้านเซิร์ฟเวอร์ ตอนนี้มีความหมายที่น่าสนใจ สำหรับเช่นทรัพย์สินทางปัญญา และผู้ที่สามารถมองเห็นรหัสของคุณ และแน่นอนคุณสามารถไปที่ บนเว็บและดูมากที่สุด รหัสใด ๆ ที่มีคน เขียนใน JavaScript บางครั้งก็สามารถอ่านได้ บางครั้งมัน obfuscated แต่เพิ่มเติมว่าในเวลาที่กำหนด ดังนั้น JavaScript, อย่างเพียงพอคือ คล้ายซุปเปอร์ syntactically เพื่อซี และอีกเช่น PHP, ไม่มีฟังก์ชั่นหลัก ถ้าคุณต้องการที่จะเริ่มต้นการเขียน รหัส JavaScript, ในขณะที่คุณจะเห็นในวันนี้ คุณเพียงแค่เริ่มต้นการเขียนมัน แต่มันก็เป็นคุณจะเห็นโดยเฉพาะอย่างยิ่ง ที่มีประโยชน์ในบริบทของเว็บเบราเซอร์ แต่น้อยของฉัน disclaimer-- มัก earlier-- ก็จะบอกว่าคุณสามารถเพิ่มมากขึ้น วันนี้การใช้งานด้านเซิร์ฟเวอร์ JavaScript ใช้กรอบแฟนซีเรียก Node.js ว่าบางส่วนของการใช้งานของตัวเองของ CS50 มีบันทึกไว้ใน ตรวจสอบ 50 จริงใช้ Node.js. แต่เรากำลังจะมุ่งเน้นไปที่ ฝั่งไคลเอ็นต์ JavaScript ที่นี่ที่ออก ดังนั้นนี่คือชุดของเงื่อนไขในของ PHP ขออภัย in-- จริงว่า คำสั่งที่ถูกต้องมากเกินไป ที่นี่ยังเป็นชุดของ เงื่อนไขใน JavaScript syntactically มันเป็น เหมือนกันกับ C และ PHP การแสดงออกของนายบูลมี ในทำนองเดียวกัน syntactically เหมือนกันทั้ง C และ PHP เรายังมีสวิทช์ใน JavaScript ที่มีลักษณะเหมือนกัน เรามีสำหรับลูปที่มี โครงสร้างเหมือนกัน ในขณะที่ลูปทำในขณะที่ลูป อันนี้เป็นความแตกต่างกันเล็กน้อย PHP มีสำหรับการสร้างแต่ละ ที่คุณอาจจะใช้ หรือจะใช้ใน pset เจ็ดบางที จาวาสคริปต์นี้มีรุ่นพิเศษ สำหรับที่คุณอย่างแท้จริงพูดอะไรบางอย่าง เช่นตัวแปรที่สำคัญในวัตถุที่ เป็นวิธีที่สั้นมากว่า ถ้าฉันมี object-- และเราจะ พูดคุยเกี่ยวกับเหล่านี้อีกครั้งใน moment-- และผมอยากจะย้ำไปทั้งหมด ของคู่ค่าคีย์ภายใน ฉันไม่ได้ที่จะคิดออกว่าจะ ดัชนีตัวเลขให้กับศูนย์หนึ่ง สองสาม. แท้จริงฉันสามารถพูดนี้ และในแต่ละซ้ำ, JavaScript สำหรับผมที่จะปรับปรุงตัวแปรที่สำคัญ จะเป็นกุญแจดอกแรกแล้วที่สำคัญต่อไป แล้วที่สำคัญต่อไปแล้วที่สำคัญต่อไป เป็นต้น และผมก็จะได้รับความคุ้มค่าจากการรักษา วัตถุใน JavaScript ที่เราจะเห็น, ราวกับว่ามันเป็น อาเรย์ใน PHP อันที่จริงถ้าคุณห่อที่สุดของคุณ คิดไปรอบ ๆ สิ่งที่เป็นอาเรย์ ใน PHP คุณสามารถคิดว่ามันเป็นตอนนี้ เหมือนกันกับวัตถุใน JavaScript แต่ที่บิตของ เปลือก อาร์เรย์มองอย่างเพียงพอเหมือนกัน เพื่อ PHP ยกเว้นสำหรับตัวละครตัวหนึ่ง มีสิ่งหนึ่งที่หายไปที่นี่ ที่เราไม่เห็นสัปดาห์ที่ผ่านมากับ PHP สิ่งที่มองข้าม? ใช่? ไม่มีเครื่องหมายดอลลาร์ ดังนั้นเรากลับไปที่ โลกที่มากกว่าปกติ ตัวแปรที่ไม่ได้มีสัญญาณดอลลาร์ แต่คุณจะนำหน้าพวกเขา กับ var โดยทั่วไป และ var หมายความว่าตัวแปร และอีกเช่น PHP เป็นอย่างหลวม ๆ typed-- โดยมีประเภท มีตัวเลขและสตริง และลอยและอื่น forth-- JavaScript ในทำนองเดียวกันมีชนิด แต่ก็พิมพ์อย่างอิสระในการที่พวกเราทุกคน โปรแกรมเมอร์ไม่ต้องระบุพวกเขา เราก็จะต้องตระหนักถึง ชนิดที่แตกต่างที่มีอยู่ ตัวแปร meanwhile-- นี่เป็นวิธีที่ เราอาจจะประกาศ "สวัสดีโลก" เป็นสตริง ขอให้สังเกตว่ามันเหมือนกันกับ PHP แต่ไม่มีเครื่องหมายดอลลาร์ และนี่คือสิ่งที่เราจะได้ เริ่มเห็นมากขึ้นในวันนี้ โดยคุณมีวัตถุ กับคีย์และค่า และถ้าคุณต้องการที่จะลอง เพื่อสรุปจาก week-- ที่ผ่านมา ไวยากรณ์เป็นเพียงเล็กน้อยที่แตกต่างกัน แต่สติน้อย check-- หลายวิธี คีย์ไม่วัตถุนี้ดูเหมือนจะมี? ดังนั้นผมจึงเห็นสี่ ผมเห็นสอง ดังนั้นจึงเป็นจริงสอง ดังนั้นนี้เป็นคอลเลกชัน ของทั้งสองคู่ค่าคีย์ ที่สำคัญคือสัญลักษณ์ที่มีค่า FB ที่สำคัญคือราคาที่มีค่า 101.53 ดังนั้นผู้ที่มีสองคู่ค่าคีย์ และจำไว้ว่า PHP-- และนี่เป็นอีกครั้งที่ เพียงแค่การจัดเรียงของความแตกต่างประโยค มันไม่ได้ทั้งหมดที่ ที่น่าสนใจทางสติปัญญา PHP อาจจะเขียนเดียวกันนี้ สิ่งที่เป็นคำพูด follows-- เท่ากับ และผมเปลี่ยนเหล่านี้เพื่อวงเล็บ แล้วฉันเปลี่ยนไปนี้ คำที่ยกมา "ราคา". แล้วผมไม่ได้ใช้ลำไส้ใหญ่ อะไรที่ผมใช้สัปดาห์สุดท้าย? ใช่เครื่องหมายเท่ากับ ลูกศรสัญกรณ์ขี้ขลาด แล้วฉันทำสิ่งเดียวกันที่นี่ สิ่งเดียวกันที่นี่ และนั่นคือทั้งหมด ดังนั้นจึงเป็นที่ดีถ้ามีไม่ได้ จมจริงๆในหน่วยความจำเพียง ยังเพราะมันจริงๆ น่าทึ่งปัญญา มันเป็นเพียงความแตกต่างของประโยค แต่ความคิดจะตรงเดียวกัน ภายในของตัวแปรนี้ อ้างใน JavaScript คือชุดของคู่ค่าคีย์ที่ ซึ่งหนึ่งในนั้นเป็นสัญลักษณ์หนึ่งซึ่ง คือราคา และผมก็จะได้รับค่าเหล่านั้น กับไวยากรณ์ต่อไปนี้ เช่นเดียวกับใน PHP ที่จะทำได้ ทำอะไรบางอย่างให้ like-- ฉันให้ช่องนี้มีขนาดใหญ่กว่าเล็กน้อย เช่นเดียวกับใน PHP ที่จะทำได้ ทำให้ this-- โอ้บ้า เข้ามา. เช่นเดียวกับใน PHP-- ตกลงเราจะ เพียงแค่ใช้บันทึกพรีเซนเตอร์ เช่นเดียวกับใน PHP, ฉันสามารถ ทำใบเสนอราคา $ $ อ้าง ["สัญลักษณ์"] และจะได้รับฉัน ค่าของ "สัญลักษณ์". ใน JavaScript ก็เป็นไปได้ เหมือนกันด้วยเหตุนี้ฉันสามารถทำเช่นนี้ สิ่งเดียวที่เป็น ที่ขาดหายไปคือเครื่องหมายดอลลาร์ ดังนั้นอย่างเพียงพอแล้วมี ไม่ได้ทั้งหมดที่ไวยากรณ์ใหม่มาก ดังนั้นสิ่งที่วันนี้เรามุ่งเน้นจริงๆคือ บางส่วนของความคิดและการใช้งานที่ และเป็นครั้งแรกดังกล่าว โปรแกรมที่คุณอาจจะ ได้เห็นถ้าคุณดำดิ่งลงไป pset เจ็ดแล้วเป็นรูปแบบนี้ ดังนั้นใน pset เจ็ดถ้าคุณได้ เห็นหรือไม่เห็นว่ามันยัง รู้ว่ามีไฟล์ที่เราให้ คุณเรียกว่า config.json-- JavaScript Object สัญลักษณ์ ทำไม? เราต้องการที่จะสามารถที่จะช่วยให้คุณมี แม่แบบที่มีคู่ค่าคีย์บาง เราต้องการที่จะสามารถที่จะให้คุณรายการ ของโฮสต์ชื่อของเซิร์ฟเวอร์ เราต้องการที่จะให้คุณ ตัวยึดสำหรับชื่อผู้ใช้ของคุณ และตัวยึดสำหรับรหัสผ่านของคุณ หากคุณไม่ได้เห็น นี้ยังไม่ต้องกังวล เพิ่มเติมเกี่ยวกับเรื่องนี้ใน pset เจ็ด [? ข้อมูลจำเพาะ ?] แล้ว เห็นได้ชัดว่าเราต้องการให้คุณ เพื่อเติมเต็มในสิ่งที่ต้องทำ เพราะเมื่อคุณเข้าสู่ระบบ CS50 IDE แต่ละท่าน มีชื่อผู้ใช้และรหัสผ่านของคุณเอง ดังนั้นเราจะได้ใช้ครึ่งโหล หรือมากกว่ารูปแบบไฟล์ที่แตกต่างกัน เราจะได้ใช้ไฟล์ .txt เราสามารถใช้ไฟล์ CSV เราจะได้ใช้ ไฟล์ INI, ไฟล์ XML, ย่อทั้งกลุ่มอื่น ๆ ที่ คุณอาจจะไม่เคยได้ยิน เป็นชนิดของพล ในตอนท้ายของวัน. แต่ที่นิยมสุดวันนี้เป็นข้อความ รูปแบบที่เรียกว่าวัตถุ JSON-- JavaScript Notation-- ที่มีลักษณะเช่นนี้ มันเป็นเพียงเล็กน้อยคลุมเครือ แต่แจ้งให้ทราบรูปแบบ คุณเริ่มต้นด้วยการเปิดหยิก รั้งและคุณจบลงด้วยเหมือนกัน ภายในที่เป็นสิ่งที่ มันเป็นคู่ค่าคีย์ ดังนั้นนี่คือวัตถุที่ฉันเป็น กำลังมองหาที่อยู่บนหน้าจอที่นี่ ที่มีหนึ่งที่สำคัญซึ่งมีค่าหนึ่ง และเพียงแค่การอนุมานขึ้นอยู่กับ รูปแบบก่อนหน้านี้สิ่งที่สำคัญที่นี่? ฐานข้อมูลสิ่งที่จะ ด้านซ้ายของลำไส้ใหญ่ ตอนนี้ค่าที่จะเกิดขึ้น บรรทัดนี้หลายครั้ง แต่ค่าเริ่มต้นด้วยการหยิก รั้งและจบลงด้วยการรั้งหยิก ดังนั้นสิ่งที่คุณจะนำเสนอคือ ประเภทของมูลค่าของฐานข้อมูลหรือไม่ พจนานุกรมหรือเพียงมากขึ้น ชัดถ้อยชัดคำ, วัตถุ ใช่มั้ย? นี้เป็นชนิดของโครงสร้างข้อมูลที่ สามารถใช้โครงสร้างอื่น ๆ ภายในตัวเอง ดังนั้นหากเรื่องทั้งหมดนี้เรา เรียก object-- และวัตถุ เป็นเพียงพวงของค่าคีย์ pairs-- ที่ มูลค่าของฐานข้อมูลตัวเองเป็นวัตถุ มูลค่าของฐานข้อมูลที่มีทั้งกลุ่ม ของคู่ค่าคีย์เป็นครั้งแรกที่ เป็นเจ้าภาพแล้วชื่อแล้ว ชื่อผู้ใช้แล้วรหัสผ่าน แต่ละที่มีค่าในขณะเดียวกันก็ เพียงสตริงที่น่าเบื่อในราคาคู่ ดังนั้นแม้ว่าที่ไม่ ซุปเปอร์ชัดเจนเพียง แต่ รู้ว่านี้เป็นเพียง มาตรฐานวิธีการที่น่าเบื่ออย่างเป็นธรรม ของการจัดเก็บข้อมูลในรูปแบบมาตรฐาน แต่ข้อผิดพลาดทั่วไปที่คุณ อาจจะทำให้แม้ใน pset เจ็ด เป็นสิ่งที่โง่เล็ก ๆ น้อย ๆ เช่นถ้าคุณ ตั้งใจละเว้นจุลภาคมี ที่เกิดขึ้นจะส่งผลให้ในไฟล์ ไม่จำเป็นต้องเป็นที่สามารถอ่านได้ ถ้าคุณตั้งใจละเว้นสิ่งที่ต้องการ คำพูดก็จะไม่สามารถอ่านได้ ดังนั้นจึงเป็นรูปแบบไฟล์ nitpicky สวย แต่มันเป็นเรื่องหนึ่งที่พบบ่อยสุด เกิดขึ้นและเราจะใช้มันแม้ว่า คุณไม่ได้ใช้งาน JavaScript ใด ๆ เป็นอย่างอื่น ใน pset เจ็ด ทั้งหมดขวา ดังนั้นจำภาพนี้ เราได้พูดคุยเกี่ยวกับใน HTML ที่ รหัสอาจมีลักษณะเช่นนี้ นี่คือ Hypertext Markup Language [ไม่ได้ยิน] เพียง "สวัสดีโลก." แต่เราก็เสนอ ในขณะที่กลับว่าถ้ามันจะช่วยให้ คุณอาจต้องการที่จะเริ่มคิด เกี่ยวกับเรื่องนี้อยู่แล้วเป็นต้นไม้ ในความเป็นจริงการเยื้องที่เรา ใช้เพียงเพื่อประโยชน์ของการอ่าน หรือเพื่อประโยชน์ของสไตล์ ซ้ายสามารถชนิดของ ได้รับการแปลเป็​​นต้นไม้ที่คุณนี้ มีบางโหนดรากพิเศษที่เราจะ เรียกโดยทั่วไปเอกสารด้านล่างซึ่ง เป็นองค์ประกอบ HTML รากหรือแท็ก, HTML, ซึ่งมีสอง เด็กหัวและลำตัว และแล้วในที่สุดก็มีหัวชื่อเรื่อง และชื่อมีค่าข้อความ และร่างกายในทำนองเดียวกันมีค่าข้อความ ดังนั้นถ้าคุณพอใจคำกล่าวที่ว่า ว่าใช่คุณสามารถใช้ HTML นี้ และวาดภาพเหมือน นี้ด้านขวามือ เป็นรูปแบบจิตที่ดีเพราะตอนนี้ ที่เรามี JavaScript, การเขียนโปรแกรม ภาษาที่เบราว์เซอร์สามารถ ดำเนินการและการแปลความหมายสำหรับคุณ ปรากฎว่าสิ่งที่ เรากำลังจะทำในรหัส คือการเริ่มต้นที่จะจัดการกับเรื่องนี้ โครงสร้างในหน่วยความจำ เราไม่ได้มีการสร้าง ต้นไม้ในหน่วยความจำ เราไม่ต้องทำเรียงลำดับของ pset ห้าสไตล์โครงสร้างข้อมูล ความซับซ้อน เบราว์เซอร์, อย่างเพียงพอเมื่อ การตีความด้านบน HTML ลงล่าง ทางซ้ายหรือขวาเป็นอักษรไป มือเราเทียบเท่าของตัวชี้ที่ ที่ต้นไม้ทั้งฟรี มันไม่ทั้งหมดของการทำงานอย่างหนัก นั่นคือสิ่งที่ Mozilla และแอปเปิ้ล และอื่น ๆ ได้ทำเพื่อเรา และด้วยจาวาสคริปต์ที่เราจะไป จะสามารถควบคุมและเปลี่ยนแปลงและทำ สิ่งที่น่าสนใจที่จะ ว่าต้นไม้ที่รู้จักกันเป็นอย่างอื่น เป็น DOM หรือเอกสารวัตถุแบบจำลอง สิ่งที่ชนิดของสิ่ง? ดีก็ปรากฎว่า ใน JavaScript มี รายการซักผ้านี้ เหตุการณ์ที่สามารถเกิดขึ้นได้ และเราไม่ได้ใช้จริงๆที่ คำตั้งแต่สัปดาห์ที่ศูนย์และ pset ศูนย์เมื่อเราได้พูดคุยเกี่ยวกับรอยขีดข่วน ส่วนใหญ่ของคุณอาจจะไม่ได้ใช้ เหตุการณ์ในโครงการรอยขีดข่วนของคุณ แต่คุณอาจจำ ง่ายมาร์โคโปโล เช่นที่เรามีสอง สไปรต์คนหนึ่งกล่าวว่ามาร์โก อีกคนแล้วเมื่อฟัง และได้ยินเหตุการณ์ที่กล่าวว่าโปโล ถ้าไม่ได้รู้สึกอิสระที่จะ มองย้อนกลับไปที่ไกลกลับ แต่นี้เป็นเพียงการ พูดและคุณสามารถชนิดของ สรุปจากชื่อของเหล่านี้ สิ่ง, JavaScript, มันจะเปิดออก เป็นไปเพื่อให้เรามีวิธีที่จะฟัง เมาส์จะลงหรือเมาส์จะขึ้น หรือคีย์จะลงหรือคีย์ จะขึ้นหรือ onsubmit onselect หรือบางสิ่งบางอย่าง onresizing ในคำอื่น ๆ ดำเนินการใด ๆ ทางกายภาพ ที่มนุษย์สามารถใช้เวลากับเบราว์เซอร์ ที่คุณทำทุกวันคุณสามารถเขียน สำหรับที่ฟังสำหรับเหตุการณ์เหล่านั้น และแล้วสิ่งที่ไม่เหมาะสม ตัวอย่างเช่นถ้าคุณใช้ Google Maps, สิ่งที่เกิดขึ้นถ้าคุณคลิกและย้าย เมาส์โดยทั่วไป? หากคุณคลิกและลาก? ใช่? ที่แน่นอน แผนที่จะเริ่มต้นที่จะย้าย ดังนั้นคุณสามารถเรียงลำดับของการดูว่ามีอะไร ที่นี่มีอะไรที่นั่น และวิธีการที่ไม่ใช้ Google ที่? ดีสันนิษฐานว่าพวกเขากำลัง โดยใช้คู่ของเหตุการณ์เหล่านี้ ผู้ฟังคนหนึ่งที่ กล่าวว่าฟังบนเมาส์ down-- ดังนั้นเมื่อผู้ใช้ทางร่างกาย ผลักดัน trackpad หรือเมาส์ของเขาของเขาหรือเธอ ลง และจากนั้นเรากำลังมองหา สิ่งที่ต้องการการเคลื่อนไหว หรือเหตุการณ์อื่น ๆ ที่ ช่วยให้เราสามารถจับลาก และในความเป็นจริงคือการลากในทำนองเดียวกันในนี้ รายการ dot dot dot ตัวเลือกที่เป็นไปได้ของ ดังนั้นเป็นไปได้ที่มีประสิทธิภาพ วิธีการเริ่มต้นการตอบสนองให้กับผู้ใช้ แม้กระทั่งก่อนที่เขาหรือเธอคลิกจริง บางสิ่งบางอย่างที่ชัดเจนเช่นส่ง แต่เรากำลังจะแนะนำ หัวข้อคู่ที่จะได้รับมี แต่ก่อนการเปลี่ยนแปลงขอ กับบางรหัสจริง ดังนั้นฉันจะไป ไปข้างหน้าและเปิดพระ-0, ซึ่งเป็นตัวอย่างที่ง่ายมาก ที่นี่ว่าถ้าผมซูมเข้าเพียง มีการป้อนข้อมูลที่นี่สำหรับผม และฉันจะไปข้างหน้าและพิมพ์ใน "เดวิด" สำหรับชื่อของฉันและคลิกส่ง และจากนั้นแม้จะถูกจัดเรียงของผม มีพรอมต์ที่ปรากฏขึ้นว่านี้ "สวัสดีเดวิด!" ดังนั้นนี้เป็นชนิดของ เช่น "สวัสดีโลกของเรา" ที่เราไม่ได้เดี๋ยวกลับใน C และ แม้กระทั่งใน PHP เพราะผมได้แบบไดนามิก ออกมาชื่อของฉัน ที่ฉันสามารถทำได้ชื่อของคนอื่นที่นี่ ฉันก็จะเปลี่ยนไป เช่นเดียวกับฮันนาห์คลิกส่ง และแน่นอนการเปลี่ยนแปลงป๊อปอัพเล็ก ๆ น้อย ๆ ตอนนี้ป๊อปอัพเป็นส่วนหนึ่งของ คุณสมบัติที่ถูกทารุณกรรมมากที่สุดของเว็บ และในความเป็นจริงกลับมาอยู่ใน วันที่อัพป๊อปอัพ เข้ามาในสมัย​​เพราะคุณ จะไป website-- บาง บางทีอาจจะเป็นกิจกรรมดังนั้นเล็กน้อยที่น่าสงสัย ว่าแล้วก็จะ เริ่ม peppering หน้าจอของคุณ มีทั้งกลุ่มของป๊อปอัพ และเพื่อให้ความสามารถนี้จะปรากฏขึ้น หน้าต่างในหน้าของผู้ใช้ ยังไม่ได้รับโดยเฉพาะอย่างยิ่ง ดีโดยได้รับความเป็นมนุษย์ เพื่อที่ว่าทำไมคุณเห็น สิ่งป้องกัน ซึ่งเพียงแค่นี้จะทำให้สิ่งที่ทั้งน่าเกลียด ดังนั้นเราจะต้องมี วิธีที่ดีกว่าที่จะแจ้งให้ผู้ใช้ แต่ตอนนี้ที่ดูเหมือนว่าจะทำงาน ดังนั้นเพียงแค่สังหรณ์ใจอะไร ดูเหมือนว่าจะเกิดขึ้นที่นี่? ฉันไปข้างหน้าและคลิกส่งและ แล้วสิ่งที่เกิดขึ้นอย่างเห็นได้ชัด แต่สิ่งที่ไม่ได้เกิดขึ้นที่ไม่เกิดขึ้น สัปดาห์ที่ผ่านมาทุกครั้งที่ผมคลิกส่งหรือไม่? สิ่งที่ไม่ได้เกิดขึ้นบนหน้าจอ? ขออภัย? โหลด URL ไม่ได้เปลี่ยนเลย ผมบอกว่านี่เป็นพระ-0, และฉันยังคงอยู่ที่พระ-0 โดยปกติแล้วเราจะได้รับการเปลี่ยนแปลงอื่น ๆ บางส่วน URL เช่น register.php หรือชอบ แต่แม้เมื่อฉันยกเลิก สิ่งด้วยการคลิกตกลงนี้ สังเกตเห็นว่า URL วางอยู่อย่างสมบูรณ์ และในความเป็นจริงถ้าฉันเล็ก ๆ น้อย ๆ สงสัยให้ฉันเปิดโครเมี่ยม ผมขอเปิดแท็บเครือข่าย และแจ้งให้ทราบว่ามันว่างเปล่าในขณะนี้ ให้ฉันไปข้างหน้าและส่งมาเรีย มีเครือข่ายการจราจร แต่อย่างใดไม่ ดังนั้นจึงมี HTTP ไม่มี ดังนั้นแน่นอนถ้าฉันมองไปที่รหัสแหล่งที่มา สำหรับ this-- ให้ฉันปิดหน้าต่างนี้ และไปดูแหล่งที่มา ที่น่าสนใจ ดูเหมือนว่ามีบาง แท็กใหม่ในหมู่พวกเขาสคริปต์ ดังนั้นลองมาดูภายใน CS50 IDE สิ่งที่ผมส่งไปให้กับผู้ใช้ ดังนั้นที่นี่ is-- ขอ มุ่งเน้นไปที่ HTML เท่านั้น นี่คือครึ่งล่างของพระ-0.html และสังเกตเห็นว่ามันมีชื่อเรื่อง แท็กหัวแท็กร่างกายแท็กรูปแบบ แต่สิ่งที่กระโดดออกมาให้คุณเป็น ที่แตกต่างกันโดยเฉพาะอย่างยิ่งถ้าคุณไม่เคย เขียน JavaScript ใด ๆ ด้วยตัวคุณเอง ผมขอเลื่อนเล็ก ๆ น้อย ๆ ไปที่นี่ ฉันมีการป้อนข้อมูล การป้อนข้อมูลสำหรับส่งอีก ฉันเป็น ID ซึ่งเป็นชนิดใหม่ แต่เราไม่เห็นด้วย CSS อะไรที่เป็นของใหม่แน่นอน? ใช่? นีซ ทั้งหมดขวา ดังนั้นที่มันว่า onsubmit, สังเกตเห็นสิ่งที่ดูเหมือนว่าจะทำตาม นี่คือแอตทริบิวต์ ในศัพท์ HTML ค่าที่เป็นสายนี้ยกมาที่นี่ และนี้ดูเล็ก ๆ น้อย ๆ แปลกอย่างรวดเร็วก่อน มันไม่ได้ HTML มันไม่ได้ CSS นี่คือในขณะที่คุณอาจคาดเดา, JavaScript ดังนั้นจึงดูเหมือนว่าสร้างขึ้นในครั้งนี้ หน้าเว็บเป็นฟังก์ชั่นที่เรียกว่าทักทาย และฉันอนุมานว่าเพียงแค่ เพราะมันเป็นคำทักทาย มันมีวงเล็บเปิด ใกล้วงเล็บ, อัฒภาค ดูเหมือนว่าฟังก์ชั่นซี ดูเหมือนจะเป็นฟังก์ชั่น PHP และแน่นอนว่ามันจะ เป็นฟังก์ชัน JavaScript แล้วฉันจะกลับเท็จ เราจะกลับมา ที่เพียงสักครู่ แต่ที่เป็นฟังก์ชั่นที่กำหนดไว้นี้? ดีให้ฉันเลื่อนขึ้น ไปด้านบนของไฟล์ และแม้ว่าจะเป็นสายยาว มันค่อนข้างตรงไปตรงมา ผมขอซูมออกที่นี่และ มุ่งเน้นไปที่ทั้งสี่เส้น ดังนั้นใน JavaScript เพียง เช่น PHP, คุณเพียงแค่ พูดตัวอักษรคำว่า "ฟังก์ชั่น" ชื่อของฟังก์ชั่นที่ แล้ววงเล็บใด ๆ arguments-- ขัดแย้งใดในกรณีนี้ และมีชนิดกลับไม่มี ใน JavaScript เช่นเดียวกับ PHP ดังนั้นจึงเป็นน้อยกว่าโยกซี เปิดรั้งหยิกวงเล็บปีกกาใกล้ ที่สร้างขึ้นใน JavaScript เป็น function-- ไม่ได้เป็น function-- แนะนำ แต่ฟังก์ชั่นที่เรียกว่าการแจ้งเตือน ที่มีวัตถุประสงค์ในชีวิต คือการดึงขึ้นที่สวยน่าเกลียด แจ้งให้ที่เราเห็นช่วงเวลาที่ผ่านมา ตอนนี้เป็นชนิดของคำหนึ่ง เกิดอะไรขึ้นที่นี่? เพื่อขอเริ่มต้นที่จะ เน้นทุกอย่างที่นี่ นั่นเป็นเหตุผลเดียวที่จะแจ้งเตือน และสิ่งที่เกิดขึ้น? เพียงแค่นี้ก็ดูเหมือนว่าสตริง และปรากฎซึ่งแตกต่างจาก PHP และแตกต่างจาก ซีมันไม่สำคัญใน JavaScript ถ้าคุณราคาเดียวหรือคำพูดสอง พวกเขาจะเทียบเท่า และตรงไปตรงก็เพียง นิยมวันนี้ สำหรับการเขียนโปรแกรมจาวาสคริปต์เสมอ ใช้ราคาเดียวด้วยเหตุผลบางอย่าง มันเป็นเพียงสิ่งที่ต้องทำ แต่เราสามารถใช้คำพูดสองเช่นเดียวกับ ดังนั้นบวกเป็นตัวละครใหม่ แต่บรรดาผู้ที่ได้ทำ นี้มาก่อนสิ่งที่ไม่บวกหมายความว่าอย่างไร ใช่ Concatenate ดังนั้นเราจึงเห็นนี้ใน PHP มีเพียงจุด ผู้ประกอบการใน PHP ที่ จะเชื่อมสองสายด้วยกัน C เป็นอาการปวดคอที่จะทำเช่นนี้ การเรียกคืนจาก pset หกซึ่งเป็น โดยเฉพาะอาการปวดคอ, คุณจะต้องใช้ สิ่งที่ต้องการ strcat หลังจากจัดสรรหน่วยความจำ ในกองหรือกอง คุณจะต้องกระโดดผ่านห่วง เพียงเพื่อเชื่อมสองสาย ใน JavaScript ก็ง่ายสุด เพียงแค่ใช้ประกอบการบวกระหว่างพวกเขา ดังนั้นซับซ้อนมอง สิ่งที่ดูเหมือนว่าจะเป็นแบบนี้ เพราะในตอนท้ายของ นี้สตริงทั้งฉันเพียงแค่ concatenate ในเครื่องหมายอัศเจรีย์ ดังนั้นหากสิ่งที่โผล่ขึ้นมาได้ "สวัสดีเดวิด" "สวัสดีฮันนาห์" "สวัสดีมาเรีย" และอื่น ๆ อย่างเห็นได้ชัด สิ่งที่อยู่ตรงกลางระหว่างคนทั้งสอง pluses ต้องให้ฉันเข้าถึงสิ่งที่? มีอะไรอยู่ในนั้นแน่นอน? ใช่ ดังนั้นฉันจะทำท่าที่นี่ ตอบชื่อของพวกเขาใช่มั้ย? ดังนั้นชื่อของพวกเขาโผล่ขึ้นมาในขั้นสุดท้าย ผล ดังนั้นสิ่งนี้หมายความว่าอย่างไร? ดีฉันนำเสนอก่อนหน้านี้ในการที่ ภาพที่เรียกว่า DOM มีองค์ประกอบรากพิเศษนี้ ทางขึ้นด้านบนเอกสารที่เรียกว่า และตอนนี้มันจะเปิดออกที่จะ จะเป็นตัวแปรทั่วโลกพิเศษ ใน JavaScript, สร้างขึ้นในซึ่งเป็น ทั้งกลุ่มของการทำงานที่มีประโยชน์ ท่ามกลางการทำงานที่มีประโยชน์คือ ความสามารถในการที่จะได้รับลูกหลานโหนดใด ๆ สี่เหลี่ยมเหล่านั้นหรือสี่เหลี่ยมหรือวงรี เป็นเพียงโหนดในต้นไม้เพื่อที่จะพูด ดังนั้นจึงปรากฎว่าสร้างขึ้นใน วัตถุเอกสารของ JavaScript ฟังก์ชั่นที่เรียกว่าเป็น วิธีการที่เรียกว่า getElementById ไวยากรณ์สำหรับการโทร ฟังก์ชั่นใน JavaScript ที่อยู่ภายในของวัตถุหรือ ตัวแปรเป็นเพียงสัญกรณ์จุด และเราเห็นนี้ใน C สิ่งไวยากรณ์ที่ struct คุณจะเห็นใน pset เจ็ดชนิดของ การเรียงลำดับของเมื่อคุณเห็น CS50 :: แบบสอบถาม ลำไส้ใหญ่ลำไส้ใหญ่ใน PHP เป็นอีกหนึ่ง วิธีการเรียกฟังก์ชั่นที่เป็น ภายในของวัตถุบางอย่าง แต่ตอนนี้ใน JavaScript, มันเป็นเพียงแค่จุด และเพื่อให้ฟังก์ชั่นนี้ อย่างพอชน​​ิดของ กล่าวว่าสิ่งที่ได้รับมัน does-- องค์ประกอบตามรหัส องค์ประกอบที่เป็นเพียงชื่ออื่น สำหรับแท็กหรือโหนดในดอม และเพื่อให้ได้รับองค์ประกอบตามรหัส "ชื่อ" หมายความว่านี่คือ this-- HTML ของฉัน และอยู่บนพื้นฐาน HTML นี้สิ่งที่ โหนดหรือสิ่งที่แท็กฉัน จะเป็นโปรแกรมมือ โดยการเรียก document.getElementById? ใช่ว่า ฉันจะได้รับการป้อนข้อมูล มีองค์ประกอบที่มี ID เป็น "ชื่อ". ดังนั้นโดยเฉพาะคุณสามารถ คิดว่าฟังก์ชั่นนี้ getElementById เป็นวิธีของการให้ กลับชี้ไปยังโหนดเฉพาะที่ ในต้นไม้ เรายังไม่ได้วาดนี้ ต้นไม้ แต่ก็ทาง ในการได้รับการเข้าถึงที่ สี่เหลี่ยมผืนผ้าหรือสี่เหลี่ยมที่ โดยไม่ซ้ำกันระบุรหัสผ่านของ ตอนนี้ว่าทำไมถึงเป็นประโยชน์หรือไม่ ดีก็จะเปิดออก ว่าเมื่อคุณได้อากาศ ที่โหนดที่สี่เหลี่ยมผืนผ้าจาก ภาพโหนดภายในของมันนั้น ในที่สุดก็มีทั้งกลุ่ม คู่ค่าคีย์ properties-- หรือข้อมูลใดอย่างหนึ่งซึ่งเรียกว่าคุ้มค่า ดังนั้นแท้จริงมันเป็นชนิดของ คำหนึ่งที่จะอธิบายสิ่งที่ทั้ง แต่ในตอนท้ายของวัน ทั้งหมดนี้จะทำให้คุณ สตริงที่ผู้ใช้พิมพ์ลงใน ลำดับชั้นในแฟชั่นนี้ แต่ผมไม่ชอบ คู่ของสิ่งเหล่านี้ หรือค่อนข้างมีความอยากรู้อยากเห็นบางส่วนยังคง จากข้อมูลทั้งหมดที่ลำบากในการทำงาน ทำไมคุณคิดว่าฉันกลับ เท็จหลังจากเรียกทักทาย? นี้มีลักษณะน่าเกลียดเล็ก ๆ น้อย ๆ ที่ ฉันมีสองมีงบ คั่นด้วยเครื่องหมายอัฒภาค ลองเดา ถ้าฉันออกกลับเท็จสิ่งที่ ที่อาจเกิดขึ้นเพียงสัญชาตญาณ? ขออภัยพูดอีกครั้ง? เปิดพวงของวินโดวส์ ดังนั้นบางสิ่งบางอย่างที่อาจเกิดขึ้นอาจ เช่นเดียวกับที่จะเกิดขึ้น สิ่งอื่นใด อาจส่งคำขอที่? ไปยังหน้าเดียวกัน ดังนั้นในความเป็นจริงที่ว่า ใกล้คำตอบที่นี่ แม้ว่าจะไม่เหมือน ในอดีตที่ผ่านมาผมไม่ได้ ระบุแอตทริบิวต์การดำเนินการ ซึ่งปกติท​​ี่เราต้องทำ ปรากฎว่ามีการเริ่มต้น หากคุณไม่ได้ระบุการกระทำ มันชอบพูดว่าอ้างได้นำมาอ้าง หรือชื่อของไฟล์ตัวเอง ซึ่งในกรณีนี้จะ จะเป็นเหมือนพระ-0.html มันเป็นเพียงแค่ชนิดสรุปของ หรือมากกว่าโดยนัย ดังนั้นถ้าผมไม่ทำเช่นนี้ให้แจ้งให้ทราบล่วงหน้า ผมขอบันทึกนี้ และผมได้ลบผลตอบแทนที่เป็นเท็จ ผมขอกลับไปนี้ ตัวอย่างและแรงโหลดได้ และคุณอาจจะได้เห็นเราขอแนะนำ นี้ CS50 พูดคุยพวงครั้ง หากมีสิ่งใดเคยทำหน้าที่ขี้ขลาดและ เบราว์เซอร์ไม่ได้พฤติกรรมตามที่คุณคาดหวัง บ่อยครั้งที่คุณจะต้องการที่จะถือ เปลี่ยนแล้วคลิกโหลด ที่จะบังคับให้ทุกไฟล์ที่จะโหลด และไม่ใช้แคชของเบราเซอร์ หรือคัดลอกเพื่อให้ตอนนี้ให้ฉันไปข้างหน้าและ เปิดตรวจสอบของฉันแท็บเครือข่าย ฉันจะคลิก เข้าสู่ระบบรักษาเพราะผม ไม่ต้องการที่จะลบแถว เมื่อฉันได้รับพาไปที่อื่น ผมขอไปข้างหน้านี่ พิมพ์ Andi คลิกส่ง ทั้งหมดขวา ที่ดูเหมือนว่าเป็นไปตามคาด มันบอกว่า "สวัสดี Andi." ผมขอคลิกตกลง ที่น่าสนใจ ขอให้สังเกตว่าหน้าเปลี่ยน แม้ว่าที่หน้าเดิม ขอให้สังเกตชนิดของการเปลี่ยนแปลงของ URL มันเพิ่มเครื่องหมายคำถาม ซึ่งมักจะเป็นตัวบ่งชี้ ที่เราพยายามที่จะส่งบางสิ่งบางอย่าง และจากนั้นที่ด้านล่าง มากยิ่งขึ้นอย่างชัดเจน ที่นี่คือการร้องขอ HTTP ที่เกิดขึ้นจริง ซึ่งได้รับการตอบสนองของ 200 ที่ นำฉันกลับมาที่นี่ ดังนั้นนี่คือสิ่งที่ไม่ได้ เราต้องการที่จะทำใช่มั้ย? เพราะผมไม่ต้องการที่จะ โหลดหน้าทั้งหมด ฉันแทนอยากจะกลับ เท็จเพื่อให้เป็นไปลัดวงจร การทำงานเริ่มต้นเบราว์เซอร์ที่ ได้แน่นอนที่จะส่งหน้า ดังนั้นลองมาดูที่หนึ่ง ตัวอย่างที่ดีเล็กน้อย นี้เป็นรุ่นที่พระหนึ่ง และแจ้งให้ทราบดังต่อไปนี้ มันตกลงถ้าคุณไม่ grok ทุกสายของรหัส แต่สิ่งที่เป็นพื้นฐานที่แตกต่าง เกี่ยวกับการดำเนินการนี​​้หรือไม่? ฉันจะกำหนดมันจะทำงาน เดียวกันจะเป็นสิ่งเดียวกัน ฉันมีอะไรที่เห็นได้ชัดทำแตกต่างกัน? ใช่? ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: ใช่ ดังนั้นฟังก์ชั่นที่มีการกำหนด differently-- ในคำอื่น ๆ ที่หายไปจากรูปแบบ มีขึ้นในบรรทัด 7-- หรือ ค่อนข้างสาย 8-- ไม่ ฉันจะมีแอตทริบิวต์ onsubmit ในตัวอย่างก่อนหน้านี้ผมก็มีนี้ แล้วฉันอักษรเขียนรหัสของฉันที่นี่ และจากนั้นผมบอกว่ากลับเท็จ และถ้ามันไม่ได้ถู คุณทางที่ผิด ๆ มันควรจะเริ่มต้นที่จะตราบเท่า เป็นเช่นเดียวกับใน HTML, เมื่อเราเริ่มที่จะร่วมคลาคล่ำมัน ด้วย CSS ในคุณลักษณะสไตล์ มันเริ่มต้นเพียงเพื่อให้ได้เล็ก ๆ น้อย ๆ ยุ่งหรือรู้สึกผิดเล็ก ๆ น้อย ๆ ในทำนองเดียวกันที่นี่ถ้า ที่คุณจะเริ่มการ HTML, แล้วคุณโดยอัตโนมัติ ป๋อมบางโค้ด JavaScript ในช่วงกลางของสตริงที่ยกมาก็ ไม่ได้ไปจะบำรุงรักษามาก ใช่มั้ย? ก็ไม่ได้ที่เห็นได้ชัดในตอนแรก ที่วางรหัส JavaScript เป็น ดังนั้นมันจะเป็นสิ่งที่ดีจริงๆ หลักการของการออกแบบที่ดีขึ้น ขอให้ HTML ของเราอย่างสมบูรณ์ แยกออกจาก JavaScript ของเรา เพื่อที่จะทำอย่างนั้นสิ่งที่เราได้ ทำที่นี่เป็น following-- เราก็ใช้ HTML สำหรับมาร์กอัปเท่านั้น และอื่น ๆ ในรุ่นหนึ่งในนี้ทั้งหมด ฉันมีเป็นรูปแบบที่มีรหัสเฉพาะ และจากนั้นก็ลงที่นี่ผมได้รับผลประโยชน์ ของคุณสมบัติพิเศษของ JavaScript โดยที่ฉันสามารถมีสิ่งที่เป็น เรียกว่าฟังก์ชั่นที่ไม่ระบุชื่อ ดังนั้นจึงปรากฎว่าถ้าผมเรียก document.getElementById ของ 'สาธิต' ที่ชอบให้ฉันชี้ไปยัง โหนดนี้ในต้นไม้ของฉันองค์ประกอบรูปแบบ เพื่อที่จะพูด ตอนนี้ผมเพิ่งรู้จาก รู้บิตของที่ HTML ตอนนี้เรากำลังมีการอ่านออนไลน์บาง อ้างอิงว่าองค์ประกอบรูปแบบที่สนับสนุน ทั้งกลุ่มของ listeners-- เหตุการณ์ คำอื่น ๆ รายการซักผ้าของเหตุการณ์ ผู้ฟังที่เราเห็นช่วงเวลาที่ผ่านมา ฉันรู้จากการอ่านเอกสาร onsubmit ว่าเป็นเหตุการณ์ที่ถูกต้อง ฟังองค์ประกอบรูปแบบ ดังนั้นเมื่อผมรู้ว่า มันปลอดภัยสำหรับผมที่จะทำ following-- โหนดที่ได้รับ จากต้นไม้องค์ประกอบรูปแบบ และดูของสิ่งที่เรียกว่า สถานที่ให้บริการ onsubmit ดังนั้นจุดก็หมายความว่า นี้เป็นสถานที่ให้บริการ เช่นค่าพิเศษภายในของมัน และสิ่งที่ชนิดของข้อมูลที่ฉัน กำหนดเห็นได้ชัด เพื่อ onsubmit ซึ่งเป็น ได้อย่างมีประสิทธิภาพตัวแปรภายใน ของโหนดในต้นไม้ที่? มันเป็นสนามที่อยู่ภายในโครงสร้างที่ ชนิดข้อมูลคืออะไร? ฟังก์ชั่นใช่ ดังนั้นจึงปรากฎว่า PHP มีนี้ และแม้ว่าเรา ไม่ได้บอกคุณเกี่ยวกับเรื่องนี้ ซีนอกจากนี้ยังมีคำแนะนำการทำงานที่ ความสามารถในการส่งผ่านและกำหนดฟังก์ชั่น เป็นค่าตัวแปร 'ตัวเอง และเราจะไม่ ที่จะถอยหลังกลับไปซี แต่ตอนนี้มันกลับกลายเป็นว่า อยู่ทางด้านขวามือที่นี่ แม้ว่ามันจะดูเล็ก ๆ น้อย ๆ ขี้ขลาดที่นี้หมายถึงเฮ้เบราว์เซอร์ ให้ฉันฟังก์ชั่น ฉันจะไม่ได้รำคาญให้ มันชื่อเพราะฉันอย่างแท้จริง จะกำหนดขอเรียกว่า ที่อยู่ของฟังก์ชั่นนี้ ทันทีที่ onsubmit ในคำอื่น ๆ เบราว์เซอร์ที่คุณไม่จำเป็น รู้ว่าสิ่งที่ฟังก์ชั่นนี้เรียกว่า คุณเพียงแค่ต้องรู้ว่า ที่มันเป็นในหน่วยความจำ และดังนั้นจึงพอเพียงเพียงเพื่อ มีเครื่องหมายเท่ากับมี และไม่รำคาญการตั้งชื่อนี้เช่น foo หรือทักทายหรือคำอื่น ๆ และตอนนี้เป็นเพียงสิ่งโวหาร ฉันจะย้ายวงเล็บปีกกานี้ บนบรรทัดถัดไป the-- sorry-- เหมือนอย่างที่เรามักจะทำ CS50 แต่ใน JavaScript ก็ จริง stylistically ที่พบบ่อย เพียงแค่ให้วงเล็บปีกกาที่ คนแรกว่าบรรทัดแรก แต่ต่อจากนี้มี ไม่มีอะไรน่าสนใจ. วงเล็บปีกกาเปิดได้เพียงแค่ demarcates จุดเริ่มต้นของการทำงานของฉัน ฟังก์ชั่นอยู่ในขณะนี้ เหมือนกันยกเว้นฉัน รวมถึงผลตอบแทนที่เป็นเท็จ ภายในของฟังก์ชั่นนี้ เพราะมันจะเปิด out-- และคุณจะมีเพียง รู้เรื่องนี้จากการอ่าน documentation-- ว่าถ้าฟังก์ชั่นที่คุณกำหนด การจัดการ onsubmit ผลตอบแทนที่เป็นเท็จ เบราว์เซอร์เพียงรู้และตกลง ไม่ได้ส่งแบบฟอร์มไปยังเซิร์ฟเวอร์ ถ้ามันกลับเป็นจริงก็จะส่ง ไปยังเซิร์ฟเวอร์สำหรับเหตุผลที่เราจะเห็น มีประโยชน์ในการรอสักครู่ และแล้วหลังจากอัฒภาค รั้งหยิกมีเพียงแค่ หมายความว่าฉันทำกำหนดฟังก์ชั่น คุณรู้ว่าสิ่งที่จะเรียกทันที ในขณะที่คุณได้ยินส่ง ทั้งหมดขวา นี้ยังคงเป็นชนิดของเนื้อหาที่น่าเกลียด ดังนั้นสิ่งที่เราจะต้องทำอย่างไร ดีก็จะเปิดออกแล้ว รุ่นที่สองซึ่งเป็น last-- และเราจะได้อย่างรวดเร็วเพียงแค่นี้ ที่มีความเสี่ยงในการทำ มันไม่สวยงามเท่าก็จะเปิดออก ว่ามีในห้องสมุด โลกที่เรียกว่า jQuery และ jQuery เป็นซุปเปอร์ ห้องสมุด JavaScript ที่นิยม ที่ทำให้เป็นที่นิยมมากที่สุด JavaScript-- ใด ๆ ก็ไม่ได้ เรื่องแปลกสำหรับคนที่จะสร้างความสับสน jQuery กับ JavaScript ทำไม? จาวาสคริปต์ตัวเองมีมาก วิธีการทำอย่างละเอียด things-- document.getElementById, dadadadadada คุณท้ายมีมาก สายยาวของรหัส ดังนั้นเพื่อนชื่อจอห์น Resid, ที่ใช้งานได้จริงสำหรับการเริ่มต้น ถึงวันนี้ออกมา กับปีที่ผ่านมาห้องสมุดนี้ ที่ผ่านมาที่หลาย ๆ คนมีส่วนร่วม จะเรียกว่า jQuery ที่มีการเปลี่ยนแปลง ไวยากรณ์ในทางต่อไป เพียงเพื่อให้คุณได้เห็นนี้ เพราะคุณจะได้อย่างสม่ำเสมอ ถ้าเห็นนี้ทำ Web-based โครงการสุดท้าย นี้จะเป็นวิธีที่เทียบเท่า การดำเนินการที่ฟังก์ชั่นเดียวกันโดยใช้ ห้องสมุดพิเศษนี้ ตอนนี้มากกว่าที่จะหยอกล้อ มันออกจากกันอย่างครบถ้วน ขอเพียงแค่มองไปที่รูปแบบบาง รูปแบบนี้ดูเหมือนจะมี วิธีการหลายฟังก์ชั่นที่ไม่ระบุชื่อ หรือฟังก์ชั่นนิรนาม ฟังก์ชั่นหรืออาคาแลมบ์ดา? สองใช่มั้ย? และคุณรู้ว่าแม้ว่า คุณไม่ได้สุดแสนสบายกับเรื่องนี้ เพียงแค่ความจริงที่ว่ามัน กล่าวว่าฟังก์ชั่น () สองครั้ง และปรากฎว่า สิ่งที่รหัสนี้ doing-- และเราจะอ้างถึงการอ้างอิงออนไลน์ ในที่สุดความช่วยเหลือเกี่ยวกับเรื่องนี้บางส่วน เพียงแค่นี้ก็หมายความว่าเมื่อ เอกสารพร้อม ไปข้างหน้าและลงทะเบียน ฟังก์ชันต่อไปนี้ เป็นส่งจัดการสำหรับ HTML องค์ประกอบที่มีความคิดที่ไม่ซ้ำกันคือการสาธิต และแล้วเมื่อที่เกิดขึ้น เรียกทั้งสองบรรทัดของรหัส และนี่คืออนาถมากขึ้น วิธีการอย่างละเอียดในการพูดเท็จการกลับมา และเรากล่าวถึงนี้เพียงเพราะ คุณจะเห็นรหัสเช่นออนไลน์นี้ และมันก็เป็นอะไรที่จะ daunted โดย แต่เก็บไว้ในใจว่าสิ่งที่เป็น จะเป็นเรื่องธรรมดาใน JavaScript เป็นกระบวนทัศน์นี้ และนั่นเป็นเหตุผลที่เราจะแสดงมันตอนนี้ ทั้งหมดขวา โดยไม่ต้องอาศัยอยู่มากเกินไป มากในไวยากรณ์ที่ จะมีคำถามใด ๆ เกี่ยวกับ ตัวอย่างเหล่านี้หรือความคิดป่านนี้? ทั้งหมดขวา ดังนั้นขอให้ใช้นี้สำหรับสิ่งที่มีประโยชน์ ทำหน้าเว็บที่เพียงแค่พูดว่าสวัสดี ดังนั้นจึงไม่ได้ทั้งหมดที่น่าสนใจว่า ไม่ underwhelm หนึ่งนี้ไม่ได้ไปจะสวยงาม แต่มันจะไปทำสิ่งที่มีประโยชน์ ให้ฉันกลับไปที่ไดเรคทอของฉัน ที่นี่และเปิดการพูดแบบ 0.html ดังนั้นคิดว่านี้เป็นน้อง กีฬาภายในการลงทะเบียนหน้า โดยไม่ต้องมี CSS หรือความรู้สึกของการออกแบบใด ๆ และผมต้องการที่จะไปข้างหน้าและ ลงทะเบียนที่นี่ด้วยรหัสผ่าน และฉันจะยอมรับข้อตกลง และเงื่อนไขและคลิกที่สมัครสมาชิก และตอนนี้เว็บไซต์กล่าวว่า "คุณเป็น การลงทะเบียน! (ดีไม่จริง.) " ที่ดูเหมือนว่ามันทำงาน แต่ ให้ฉันไปข้างหน้าและบังคับให้โหลด และให้ฉันบอกว่าไม่มีคุณทำไม่ได้ ต้องการที่อยู่อีเมลของฉันที่เกิดขึ้นจริง หรือบางทีเราก็จะบอกว่าจดหมายในการมี รหัสผ่านจะเป็นเช่น 12345 และจากนั้นเพียงเพราะฉัน งี่เง่าตอนนี้ก็ 123456789 และฉันไม่ได้จะไปตรวจสอบกล่องของคุณ อืม ทั้งหมดขวา ดังนั้นจึงมีหลายโอกาส สำหรับการปรับปรุงที่นี่ และคุณรู้หรือจะเห็นใน pset เจ็ดที่คุณสามารถเขียน code-- และคุณจะต้องเขียน รหัส PHP-- ที่จะปกป้อง กับชนิดเหล่านี้ของผู้ใช้ ข้อผิดพลาดเนื่องจากผู้ใช้อย่างชัดเจน ยังไม่ได้ให้ความร่วมมือ และเขาหรือเธอไม่ได้ให้คุณทุก ค่าที่คุณต้องการหรือแม้กระทั่งในรูปแบบ ที่คุณอยากให้พวกเขา ดังนั้นคุณจะเห็นใน pset ที่เจ็ด แน่นอนเราอาจจะมีบางส่วน ถ้าเงื่อนไขที่บอกว่า ถ้าที่อยู่อีเมล ไม่ username@something.edu ที่ ที่เราสามารถทำได้เพียงแค่ พูดขอโทษและแสดงความเสียใจกับผู้ใช้ มากเช่นคุณอาจจะอยู่ใน pset เจ็ด หรือถ้าพวกเขายังไม่ได้ตรวจสอบกล่องว่า จะเปิดออกใน PHP คุณสามารถตรวจสอบว่า เกินไป และแน่นอนถ้ารหัสผ่าน ไม่ตรงกับใน register.php สำหรับ pset เจ็ดคุณสามารถตรวจสอบว่า แต่นั่นเป็นความเจ็บปวดในการ คอในตอนนี้พวกเขาขอ เราไปตลอดทางไปยังเซิร์ฟเวอร์ ผู้ใช้จะได้แจ้งให้ทราบถึงข้อผิดพลาด และอย่างน้อยถ้าคุณใช้ เทคนิคบางคนชอบเล่น ตอนนี้พวกเขาจะต้องคลิกลูกศรด้านหลัง มันจะไม่ดีเช่น เว็บไซต์จำนวนมากในวันนี้ ถ้าคุณมีมากขึ้นทันที ข้อเสนอแนะได้ทันที? ในคำอื่น ๆ ให้ฉันไปกับรุ่น อย่างใดอย่างหนึ่งที่เป็นไปได้ไม่สวย แต่มันจะมีคุณลักษณะนี้ ลัน, 12345, 123456789 ไม่ จะไปตรวจสอบกล่อง, สมัครสมาชิก รหัสผ่านไม่ตรงกัน. ดังนั้นแม้ว่าป๊อปอัพนี้ ugly-- เราสามารถเปลี่ยนนี้ในที่สุด กับสิ่งที่ต้องการเงินทุน, ซึ่งคุณจะเห็นใน pset เจ็ด เป็นที่นิยมมาก library-- ฉันไม่ ตรวจสอบว่ารหัสผ่านไม่ตรงกับ ทั้งหมดขวา ดีให้ฉันแก้ไขปัญหาที่เป็นผู้ใช้ ให้ฉันไปข้างหน้าและบอกว่า 12345, 12345 ยังไม่ตรวจสอบข้อตกลง คุณต้องยอมรับ ข้อกำหนดและเงื่อนไข ดังนั้นทำไม? ถ้าเราได้ posited แล้ว ว่ามีวิธีการ และเราได้คุณจำเป็นต้องใช้ pset เจ็ดในการตรวจสอบข้อผิดพลาด สภาพเช่นนี้ ฝั่งเซิร์ฟเวอร์ฉันควรจะทำไม รำคาญยังทำเช่นนี้ใน JavaScript? มีอะไรในการโต้แย้ง ความโปรดปรานของการเพิ่มสิ่งที่ คุณกำลังจะเห็นเป็น some-- มีความซับซ้อนเพิ่มเติม อาจจะมีอัพไซด์ไม่ มันจะเป็นอะไร? ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: โอ้น่าสนใจ การหาประโยชน์ที่อาจเกิดขึ้น ดังนั้นแน่ใจว่าถ้าคุณไม่ได้จัดการ ผู้ใช้ป้อนข้อมูลที่ผิดพลาดที่ยิ่งใหญ่ บางทีมันอาจจะทั้งหมดดีกว่าถ้ามัน ไม่ได้เข้าถึงเซิร์ฟเวอร์ของคุณ ฉันจะผลักดันกลับไปที่นั่นและ พูดคุณควรอาจจะ แก้ไขทั้งสองปัญหาเหล​​่านั้น แต่ที่เป็นธรรม สิ่งอื่นใด ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: ใช่ รหัสนี้ในขณะที่เรากล่าวว่าก่อนที่จะเป็น ตีความในฝั่งไคลเอ็นต์ มันไม่รำคาญเซิร์ฟเวอร์ ซึ่งหมายความว่ามันไม่ได้ ส่งผลกระทบต่อภาระของเซิร์ฟเวอร์หรือกำลังการผลิต และตอนนี้สำหรับผมเก่าเล็ก ๆ น้อย ๆ นี้จะไม่มีผลที่มีความหมาย เพราะผมมีผู้ใช้คนหนึ่งในขณะนี้ แต่ถ้าคุณใด ๆ เว็บไซต์ที่มีขนาดที่เหมาะสม โดยเฉพาะอย่างยิ่งที่ใหญ่ที่สุดเช่น Facebook, มากกว่าที่คุณสามารถให้คนออก ของเซิร์ฟเวอร์ของคุณดีขึ้น เพราะเซิร์ฟเวอร์ของหลักสูตร มีเพียงจำนวน จำกัด แรม จำนวน จำกัด ของกิกะเฮิรตซ์, จำนวน จำกัด ของสิ่งที่ มันสามารถทำต่อหน่วยของเวลา ดังนั้นหากมีคนมากขึ้นใน โลกตีเซิร์ฟเวอร์ของคุณ ตั้งใจเข้าสู่ระบบ ไม่ถูกต้องก็เช่นกันถ้าคุณ สามารถให้โหลดที่ปิดเซิร์ฟเวอร์ของคุณ พลัสโดยเฉพาะอย่างยิ่งบนมือถือ device-- ถ้าคุณเคย เข้าสู่ my.harvard หรือ netid เยลหรือเหมือน มีความล่าช้านี้ที่มีจำนวนมากของ เว็บไซต์เช่นนั้นโดยจะใช้เวลา เหมือนสองแช่งหรือสองบางครั้ง และแล้วพระเจ้าของฉันถ้าคุณพิมพ์ผิด, แล้วคุณจะต้องตีกลับและทำซ้ำได้ ดังนั้นจึงมีความล่าช้าโดยเฉพาะอย่างยิ่ง ในการเชื่อมต่อเครือข่ายที่ช้าลง แต่ JavaScript เพราะ มันจะทำงานบนไคลเอนต์ และไม่จำเป็นที่จะต้องกลับไปมา ข้ามอินเทอร์เน็ตช้าที่อาจเกิดขึ้น การเชื่อมต่อคุณจะได้รับ ความคิดเห็นทันทีเกือบ ดังนั้นเรามาดูที่นี้ ผมขอเปิดรูปแบบ 0 ดู HTML ที่นี่ และขอเพียงแค่เห็นสิ่งที่เกิดขึ้น นี่คือรูปแบบที่มี การดำเนินการคือ register.php ฉันเพียงแค่ใช้เพื่อให้ได้รับ ที่ฉันจะได้เห็นของ URL แต่สำหรับรหัสผ่านที่เราก็ต้องการ การเปลี่ยนแปลงนี้จะโพสต์ในความเป็นจริง นี่คือช่องใส่ของข้อความประเภท นี่คือการป้อนข้อมูลอื่น ด้านการพิมพ์รหัสผ่าน นี่คือถ้าคุณไม่เคยเห็น การป้อนข้อมูลของช่องประเภท แต่ไม่มี JavaScript ที่นี่ แต่อย่างใด นี่เป็นเพียง HTM​​L ที่ ไป register.php แต่ในรุ่นหนึ่งที่ฉัน เริ่มต้นที่จะได้รับผู้ที่ป๊อปอัพ เรามาดูสิ่งที่เกิดขึ้นจริงที่นี่ ในรุ่นหนึ่งในสิ่งที่ ฉันจะ see-- ฉัน คิดว่าฉันสามารถแผงลอยพอ ด้วยคำพูดที่พอ แต่ฉันวิ่งออก ในรุ่น one-- มีที่เราจะไป ในรุ่นหนึ่งสังเกตเห็น following-- และไม่ได้การดำเนินงานที่ดีที่สุด แต่มันก็เป็นครั้งแรกของฉัน ขอให้สังเกตว่าด้านล่าง รูปแบบที่ผมมีแท็กสคริปต์ และแท็กสคริปต์หมายความว่า เดี๋ยวก่อนเบราว์เซอร์ที่นี่ มาพร้อมรหัสในบาง โดยทั่วไป, JavaScript และตอนนี้สังเกตเห็นสิ่งที่ฉันทำ ใน line-- ฉันสามารถแทบจะไม่ อ่าน it-- สาย 32 ก็กล่าวว่า var form-- เพื่อให้ฉัน ตัวแปรที่เรียกว่ารูปแบบ แล้วได้รับ document.getElementId ของ "การลงทะเบียน." นี้คืออะไร? ดีให้ฉันย้อนกลับขึ้นมาที่นี่ และแจ้งให้ทราบล่วงหน้า ah, ฉันให้องค์ประกอบรูปแบบ ความคิดโดยพลการ แต่พรรณนา ของการลงทะเบียน ดังนั้นนี้จะช่วยให้ฉันตัวแปรที่ ช่วยให้ผมที่จะคว้าโหนดนั้น สี่เหลี่ยมผืนผ้าที่เรียกว่าในรูปแบบต้นไม้ form.onsubmit หมายถึงเฮ้เบราว์เซอร์ ลงทะเบียนฟังเหตุการณ์ ในแบบฟอร์มนี้ ในคำอื่น ๆ เมื่อฟอร์มนี้ ส่งรันโค้ดต่อไปนี้ มันไม่จำเป็นต้องชื่อเพราะ ทำไมคุณจำเป็นต้องรู้ชื่อหรือไม่ คุณเพียงแค่ต้องรู้ว่า สิ่งที่ต้องดำเนินการเพราะฉะนั้น มันเป็นฟังก์ชั่นที่ไม่ระบุชื่อหรือแลมบ์ดา และฟังก์ชั่นที่เป็น ทุกสายเหล่านี้ที่นี่ และตอนนี้จะซื่อสัตย์แม้ว่าคุณ อาจจะไม่ได้เคยเขียน JavaScript ก่อนที่จะเป็นเพียง C และ PHP ตรรกะ ดังนั้นหาก form.email.value == "" - ดังนั้นหากสนามอีเมลที่ว่างเปล่า เสียงโห่ร้องที่ผู้ใช้ที่มี "คุณต้อง ให้ที่อยู่อีเมลของคุณ. " อื่นถ้า form.password.value เป็นตะโกนว่างเปล่าที่ผู้ใช้ "คุณจะต้องให้รหัสผ่านของคุณ." อื่น ๆ ที่น่าสนใจมีเหตุผล ถ้า form.password.value ไม่ form.confirmation.value-- เท่ากับ ยืนยันไม่ที่มาจากไหน? ผมขอย้อนกลับ ดีฉันเรียกว่าการป้อนข้อมูลนี้ ช่องรหัสผ่านที่นี่ และฉันเรียกว่าคนนี้ยืนยันที่นี่ ฉันจะได้เรียกมันว่า รหัสผ่านสองหรือสิ่งอื่นใด ฉันแค่เหตุผลการตรวจสอบ ว่าทั้งสองจะเหมือนกัน Else-- ก็จะเปิดออกนี้นาย Boole again-- ค่าบูลีน, กล่องกาเครื่องหมาย ดังนั้นถ้าผมบอกว่าตกใจ point-- หากไม่ได้ form.agreement.checked, เสียงโห่ร้องที่ผู้ใช้เป็นอย่างดี ดังนั้นไวยากรณ์คุณจะเห็นนี้ ที่พบบ่อยมากใน JavaScript, ที่คุณต้องสัญกรณ์นี้ประ คุณเริ่มต้นด้วยวัตถุที่นี่ คุณดำน้ำในลึกเพื่อที่จะ สถานที่ให้บริการเช่นรหัสผ่าน แล้วคุณจะได้รับมูลค่าที่แท้จริงของมัน และอีกครั้งที่นี่คือการป้อนข้อมูล นี่คือรหัสผ่านชื่อเป็น และค่าที่เป็นอะไรก็ตาม มนุษย์ได้จริงในการพิมพ์ ดังนั้นในสิ่งเหล่านี้ กรณีผมกลับเท็จ แต่ถ้าไม่ผมกลับจริง และดังนั้นตอนนี้เราเห็น การใช้งานที่น่าสนใจเมื่อ คุณจะกลับเท็จ หยุดสิ่งที่ผู้ใช้ทำ และทำให้เขาหรือเธอเลือก อีกครั้งหรือพิมพ์อีกครั้ง มิฉะนั้นเรากลับจริง และแจ้งให้เราแนะนำหนึ่ง ตัวแปรอื่น ๆ เพียงแค่นี้ เมล็ดพันธุ์ความเข้าใจดังกล่าว ทั้งในรุ่นที่ 2 นี้ฟอร์ม 2-- ฉันจะทำมันด้วยคลื่นของมือที่ นี้คือสำหรับผู้ที่อยากรู้อยากเห็น, รุ่น jQuery, บรรดาผู้ที่อาจต้องการที่จะ ตะลุยในห้องสมุดเฉพาะที่ แต่ขอ start-- และคำถามใด ๆ ? ผมขอหยุดสักครู่เพราะ ที่เป็นไปอย่างรวดเร็วและเป็นจำนวนมาก แต่สิ่งที่ดีที่นี่เป็นที่ทั้งหมด ของรหัสคือสวยมากเหมือนกัน สิ่งที่ใหม่คือสิ่งที่เป็นพระหรือไม่ สิ่งเหล่านี้เป็นรูปสี่เหลี่ยม? อะไรคือโหนดเหล่านี้หรือไม่ มีอะไรที่ฟังก์ชั่นที่ไม่ระบุชื่อ? มีอะไรจัดการเหตุการณ์? แต่โชคดีที่ส่วนใหญ่ที่เป็นเพียง วงกลมเต็มรูปแบบจากการพูด, สัปดาห์ที่ศูนย์ ทั้งหมดขวา ดังนั้นสิ่งที่น่าสนใจมากขึ้นเล็กน้อย? ดีแรกของทั้งหมดให้ฉันไป ไปข้างหน้าและเปิด Google Maps และคุณจะสังเกตเห็นว่าเป็น ขณะที่ในวันที่สองแยก สังเกตเห็นสิ่งที่เกิดขึ้นเมื่อ ฉันคลิกเร็วพอ และการเชื่อมต่อที่ฮาร์วาร์เป็นเช่นนี้ ได้อย่างรวดเร็วว่าคุณไม่ได้แจ้งให้ทราบจริงๆ แต่สิ่งที่คุณชนิดของการเรียงลำดับของการมองเห็น ถ้าฉันคลิกและลากไปอย่างรวดเร็ว? บรรดาของคุณดูออนไลน์ ถ้าคุณช้านี้เพื่อความเร็ว 0.5 เท่า, คุณสามารถมองเห็นที่ดีกว่านี้ สิ่งที่เกิดขึ้นเพียง ก่อนที่ผมจะคลิกและลาก? ผมขอลอง here-- ให้ฉันทำ อย่างอื่นเช่น 90210 ขอไปอยู่ห่างไกล นั่นคือได้อย่างรวดเร็วจริงๆเกินไป วิธีการเกี่ยวกับดิสนีย์เวิลด์? เราจะไปที่นั่น. ตกลง. คุณเห็นอะไรสำหรับแยกที่สองหรือไม่? เพียงเช่นสี่เหลี่ยมใช่มั้ย? ตัวยึดสำหรับกระเบื้อง? ดีสิ่งที่เกิดขึ้นที่นี่? Google แผนที่เป็นตัวอย่างที่ดีของ เทคโนโลยีที่เรียกว่าอาแจ็กซ์ และนี่คือที่เราจะเริ่มต้นที่จะ ใช้งาน JavaScript ในโดยเฉพาะอย่างยิ่ง วิธีที่มีเสน่ห์ ย้อนกลับไปในวันที่มี เว็บไซต์นี้เรียกว่า MapQuest และฉันควรจะมีการดำเนินการ หน้าจอนี้จากปี 1990, ซึ่งถ้าคุณต้องการที่จะ มองขึ้นไปที่นี่บนแผนที่ คุณอย่างแท้จริงจะคลิกลูกศร ขึ้นที่ด้านบนแสดงให้เห็นว่าคุณ ตารางที่แตกต่างกันของแผนที่ หากคุณต้องการที่จะเลื่อนไปทางซ้ายคุณ คลิกลูกศรที่แสดงให้เห็นคุณ ตารางที่แตกต่างกันของแผนที่ และเว็บไซต์บางส่วนยังคงทำเช่นนี้ในวันนี้ แต่ถึงแม้จะมีอากาศ MapQuest ที่ดีกว่าเช่น Google Maps แต่สิ่งที่ดีเหล่านี้ วันที่เป็นเว็บไซต์ที่ใช้ AJAX AJAX-- หรือที่เรียกว่า Asynchronous JavaScript และ XML, ซึ่งเป็นเพียงวิธีแฟนซีบอกว่า เทคโนโลยีหรือเทคนิคที่ ช่วยให้เบราว์เซอร์โดยใช้ JavaScript ที่จะทำให้การร้องขอ HTTP เพิ่มเติม หลังจากหน้าได้รับการโหลด ดังนั้นสิ่งนี้หมายความว่าอย่างไร? ดีก็จะเป็นชนิด น่ารำคาญใน Gmail ถ้าเวลาที่คุณต้องการทุก ที่จะตรวจสอบอีเมลของคุณ คุณได้ตีตัวอักษรควบคุม R หรือ คำสั่ง R หรือคลิกปุ่มโหลด และหน้ายี้ทั้งจะโหลด ใช่มั้ย? มันจะกระพริบสีขาว อาจจะเป็นครั้งที่สอง คุณจะเห็นแถบความคืบหน้าโง่ และเพียงเพื่อดูว่าคุณมีใหม่ อีเมล, หน้าเว็บทั้งหมดและ URL ของ คุณกำลังที่จะต้องโหลด แต่นั่นไม่ใช่สิ่งที่เกิดขึ้นใน Gmail ใช่มั้ย? เมื่อคุณได้รับอีเมลใหม่ใน Gmail สิ่งที่เกิดขึ้นบนหน้าจอ? มันก็จะแสดงขึ้นใช่มั้ย? มันก็น่าอัศจรรย์ปรากฏ เป็นแถวใหม่ในตาราง ที่จริงที่เกี่ยวข้องกับการ จำนวนเงินที่ดีของความซับซ้อน ในความเป็นจริงถ้าคุณคิดเกี่ยวกับต้นไม้นี้ ซึ่งแม้ว่าจะเป็นหนึ่งที่ง่ายที่นี่ Gmail-- และฉันต้องมอง รหัสที่จะ sure-- อาจจะมีตาราง HTM​​L หรืออาจจะ รายการเรียงลำดับที่จะแสดงผล แต่ละกล่องจดหมายของคุณอีเมลเป็น ดังนั้นถ้าคุณคิดนี้มี เป็นต้นไม้ในหน่วยความจำเมื่อคุณเป็น ใช้ Gmail ที่มีลักษณะชนิดของการจัดเรียงของ เช่นนี้เมื่อ Google ตระหนักโอ คุณมีอีเมลใหม่ก็ไม่ได้ ต้องการที่จะสร้างทั้งต้นไม้ แต่ก็ต้องการที่จะหาโหนดใน ต้นไม้ที่แสดงถึงกล่องจดหมายของคุณ และเพียงแค่แทรกโหนดใหม่ ดังนั้นคล้ายกับ pset ห้าที่คุณ มีการแทรกโหนดลงในตารางแฮช ในทำนองเดียวกันไม่ Google ผ่าน รหัส JavaScript ที่จะได้เขียน สำรวจต้นไม้นี้คิดออกว่า เป็นส่วนหนึ่งที่กล่องจดหมายของหน้าต่าง แล้วแทรกแถวใหม่ และแถวใหม่เพียงอย่างใดอย่างหนึ่ง หรือมากกว่าโหนดใหม่ในต้นไม้ และเพื่อให้เป็น AJAX เทคนิคนี้ ที่ช่วยให้การตรงนั้น เมื่อคุณได้เข้าเยี่ยมชม URL ที่ บ้านานมันเป็นอย่างไรก็ตาม และเมื่อหน้ามี รับการโหลดคุณยังสามารถ คว้าข้อมูลเพิ่มเติมจาก internet-- ไม่ว่าจะเป็น อีเมลหรือกระเบื้อง map-- ได้ คว้ามันอยู่เบื้องหลัง แล้วใส่ลงในหน้าเว็บ เพื่อให้มนุษย์ไม่ได้จริงๆ ต้องรอให้มัน Facebook Messenger ที่ทำงานในลักษณะเดียวกัน หมายเลขใด ๆ ของ websites-- อื่น ๆ โอ้จริงแม้นี้ ผมหมายถึงนี้ตรงไปตรงมาชนิดของ คุณลักษณะที่น่ารำคาญวันนี้ ถ้าฉันเริ่มค้นหา cats-- นี้ เป็นชนิดของประสบการณ์การใช้งานที่น่ากลัว มันก็เริ่มหาฉัน ดีสิ่งที่ทำ? URL ที่ไม่ได้เปลี่ยนแปลงจริงๆ ตั้งแต่ผมเริ่มพิมพ์ แต่สิ่งที่เกิดขึ้นทั่ว wire-- ตกลงอืมที่น่าสนใจ สิ่งที่เกิดขึ้นทั่ว ลวดที่นี่เพิ่งได้รับประหลาด ตกลง. เพื่อให้ฉันไปข้างหน้าและตรวจสอบ องค์ประกอบและไปที่แท็บเครือข่าย และพยายามที่จะทำให้เรื่องนี้ ทางเทคนิคและไม่เกี่ยวกับแมว ขณะที่ผมพิมพ์ตัวอักษรแมว and-- สิ่งที่เกิดขึ้น per-- ฉันไม่ได้ไปคลิกที่ ทั้งหมดขวา ดังนั้นลงที่นี่สิ่งที่เกิดขึ้นทุก ทุกครั้งที่ผมพิมพ์ตัวอักษรที่เห็นได้ชัด? เช่นเดียวกับระดับต่ำ สิ่งที่เกิดขึ้นกับแต่ละคน ตัวละครที่ฉันพิมพ์ที่แป้นพิมพ์ของฉันได้อย่างไร ใช่? ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: แน่นอน แต่ละตัวละครเหล่านั้น ไปของ Google ในช่วงเวลาหนึ่ง พวกเขาจะสร้างสตริง บนเซิร์ฟเวอร์ของตนที่แสดงถึง ทุกอย่างที่ผมเคยพิมพ์ในป่านนี้ และทุกครั้งที่ผมพิมพ์ ตัวละครอื่นที่พวกเขา ใช้ซอสลับของพวกเขาของ ขั้นตอนวิธีการค้นหาและคิดออก เขาไม่ได้หมายความว่าแมวหน้านี้ หรือแมวหน้านี้หรือชอบ? ดังนั้นในความรู้สึกบางอย่างก็ให้ฉันด้วย ประสบการณ์ที่ดีในการที่ฉันทำไม่ได้ ต้องดำเนินการความคิดของฉัน และแน่นอนว่ามันเป็นประโยชน์ สิ่งเติมข้อความอัตโนมัติทั่วไป หากขั้นตอนวิธีการของพวกเขามีดีพอ และหากการค้นหาของฉันที่ชัดเจนพอ ฉันจะได้ไม่ต้องพิมพ์คำทั้ง พวกเขากำลังจะบอกฉันว่ามัน เป็นฉันจริงค้นหา ดังนั้นสิ่งที่ Google เรียกทันที ค้นหาเพียงแค่ใช้ AJAX, ใช้รหัสที่ช่วยให้พวกเขาที่จะขอ เนื้อหาเพิ่มเติมผ่านทางเว็บเบราเซอร์ อยู่เบื้องหลังการใช้นี้ ภาษาใหม่, JavaScript ดังนั้นเราจึงมีสองสามนาทีที่เหลือ และแจ้งให้เราเรียกเพื่อนของฉัน โคลตันขึ้นไปบนเวที เพราะมันดูเหมือน ครั้งสุดท้ายที่สนุกสนานโดยเฉพาะอย่างยิ่ง ที่จะแนะนำเทคโนโลยี ที่บางส่วนของคุณ ได้แสดงความสนใจ สำหรับโครงการในขั้นสุดท้าย เราคิดว่ามันจะเป็นเรื่องสนุกที่จะนำ อาสาสมัครถึงแม้ว่าในวันนี้ แสดงนอกจากสระ ที่ช่วยให้ you-- ใช่ ผมเห็นมือแรก มาขึ้น ทำได้ดีมาก งานที่ดี ฉันจะไปโครงการนี​​้ หน้าจอในเวลาเพียงสักครู่ ชื่ออะไรของคุณสำหรับทุกคนหรือไม่ EFA: ฉัน Efa DAVID ลัน: Etha? EFA: Efa DAVID ลัน: Efa? EFA: ใช่ DAVID ลัน: ยินดีที่ได้พบคุณ ทั้งหมดขวา ให้ฉันได้รับการพร้อมนี้ มาไปที่ กลางที่มีการตัดสินใจที่นี่ สิ่งที่มีการตัดสินใจในมือของเขา ในวันนี้คือการควบคุมระยะไกล ดังนั้นแทนที่จะเพียงแค่ยืนใน โลกสามมิติที่มองไปรอบ ๆ ขณะที่การตัดสินใจได้ในขณะนี้สามารถ Efa จริงเดินไปรอบ ๆ โดยจะขึ้น ลงซ้ายและขวาเหมือน นินเทนหรือตัวควบคุม Xbox EFA: ฉันจะตกจากเวที DAVID ลัน: ฉันจะ ยืนประมาณกว่าที่นี่ แต่นั่นคือความเสี่ยง ตกลง. เพื่อไปข้างหน้าและทำให้ผู้ที่อยู่ใน ให้ฉันไปข้างหน้าและ สลับไปยังหน้าจอที่นี่ ผมขอหรี่ไฟ และการตัดสินใจที่ให้ฉัน มายืนข้างคุณ คุณต้องการที่จะอธิบายที่นี่ กับไมค์สิ่งที่เรากำลังทำอะไรอยู่? นี่คุณไป COLTON: Sure ดังนั้นตอนนี้เรา โหลดขึ้นกลมที่ ผมคิดว่า operating-- ไม่ทำงาน ระบบ แต่โปรแกรมหลักที่ คุณสามารถเข้าถึงเกมทั้งหมดและ ปพลิเคชันที่อยู่ในห้องสมุดของคุณ ดังนั้นตอนนี้มันควรจะพูดว่า แตะทัชแพดที่จะเริ่มต้น ทัชแพดจะเป็นใน ด้านขวาของหูฟัง ดังนั้นไปข้างหน้าและ tap-- EFA: โอ้คน DAVID ลัน: ใช่มีคุณไป คุณภาพ Efa จะเห็น ที่มีคุณภาพสูงมาก นี่เป็นเพียง Wi-Fi ที่นี่ COLTON: ดังนั้นสิ่งที่คุณกำลัง จะต้องการที่จะทำ คือมองไปทางด้านบน ขวาของหน้าจอ อ๋อเกมที่ด้านบนขวามาก และจากนั้นเมื่อคุณเลือก มันแตะทัชแพดอีกครั้ง ผมคิดว่ามัน Dreadhalls และแล้วที่นี่จะ a-- นี่ให้ ฉันถือแก้วของคุณสำหรับคุณ ดังนั้นผมจึงเพียงแค่ให้เขาควบคุม ดังนั้นตอนนี้เขาสามารถควบคุมเกม เขาสามารถย้ายไปรอบ ๆ และสิ่งที่ชอบ ดังนั้นไปข้างหน้าและมองขึ้นไปด้านบน คุณควรจะเห็นเกมใหม่ เพื่อไปข้างหน้าและคุณสามารถทำเช่นนั้น ตอนนี้คุณควรจะสามารถที่จะควบคุม ตัวเองด้วยการควบคุม เช่นกันโดยเร็ว เกมโหลดได้ที่นี่ นี้อาจจะมีนิด ๆ หน่อย ๆ ที่น่ากลัว EFA: ตอนนี้คุณบอกฉัน ตกลง. COLTON สิทธิทั้งหมด ดังนั้นยืนยันว่าคุณสามารถย้ายไปรอบ ๆ ตกลง. คุณสามารถย้ายไปรอบ ๆ ที่สมบูรณ์แบบ ดังนั้นถ้าคุณมองลงมาคุณมีแผนที่ แผนที่แสดงให้คุณเห็นว่าคุณอยู่ที่ไหน คุณสามารถดูรอบ ๆ ห้อง คุณสมบูรณ์สามารถหันไปรอบ ๆ ใช่ว่า หันไปรอบ ๆ ดังนั้นมองไปทางซ้ายมือ ผมคิดว่ามีบางสิ่งบางอย่างที่คุณสามารถ รับกับบาร์เรลในห้องพัก EFA: ฉันจะได้รับได้อย่างไร แผนที่ออกจากทาง? COLTON: เงยหน้าขึ้นมอง เพียงแค่มองขึ้น ทั้งหมดขวา มีคุณไป ตอนนี้ไปข้างหน้าและเพียงแค่หันไปรอบ ๆ เพื่อให้มองไกลออกไปทางด้านซ้ายมือ ให้ย้ายไปทางซ้าย ให้มองไปทางซ้าย ทำต่อไป. ใช่ EFA: โอ้วิธีการที่ COLTON: ใช่ เดินไปทางมันกับตัวควบคุม มีคุณไป ตอนนี้มันควรจะพูดว่าหยิบมันขึ้นมา มีคุณไป หยิบมันขึ้นมา. ทั้งหมดขวา ตอนนี้ขอได้รับออกไปจากห้องนี้ ไปข้างหน้าและเดินไปที่ประตูว่า ดังนั้นคุณจะ hold-- มันบอกว่า ปุ่มค้างไว้เพื่อบังคับให้เปิด ดังนั้นไปข้างหน้าและปุ่มค้างไว้ อ๋อบังคับให้มันเปิด ทั้งหมดขวา งานที่ดี ตอนนี้เรากำลังเดินออกไปจากห้อง ดังนั้นฉันจะออกจากส่วนที่เหลือขึ้น ให้คุณและดูสิ่งที่คุณหา EFA: ฉันจะไม่อยู่ในห้องมืด โอ้รอ ตอนนี้ผมต้องไปลงห้องโถงที่มืด? ตกลงฉันจะกลับมา [ไม่ได้ยิน] COLTON สิทธิทั้งหมด บางรายการอื่น ๆ อีกมากมายที่จะรับ ดูเหมือนว่าเหรียญบาง นั่นคือเลือกล็อค ดังนั้นถ้าคุณพบว่ามีล็อค ประตูคุณสามารถใช้ที่ คุณกลัวไหม? EFA: ยังไม่ได้ COLTON: OK Pretend-- ใช่ เพียงแค่หลอกคุณ จริงยืนอยู่ที่นั่น และถ้าคุณเปิด around-- คุณได้มีการรับใช้มัน แต่มันก็ทำให้รู้สึก DAVID ลัน: Efa และในขณะที่ยังคง เล่นเนื่องจากเราสามารถทำเช่นนี้ทุกวัน เราทุกคนสามารถปลายเท้าออกจากที่นี่ แต่เราจะมีสองคู่อื่น ๆ ถ้าคุณต้องการที่จะเกิดขึ้นและเล่น มิฉะนั้นเราจะเห็น คุณต่อไปในวันพุธที่ ขอขอบคุณอาสาสมัครของเราวันนี้ [APPLAUSE] [ดนตรี - "รูปแบบไฟล์"] ลำโพง 1: ดีฉัน วางใหม่ PL ยึดกับ ฉันเพิ่งเปลี่ยน OLPF-- ลำโพง 2: ดังนั้นสิ่งที่ ว่าคุณกำลังทำอะไรอยู่? ลำโพง 1: ดีแต่ละคน these-- ที่นี่ฉันจะแสดงให้คุณเป็นหนึ่งในที่นี่ คุณสามารถดูได้ที่นี่ ลำโพงที่ 3: ฉันคิดว่าฉันดีกับเหล่านี้ คุณต้องการบางมากขึ้น? ลำโพงที่ 4: ไม่มีฉันดี [ไม่ได้ยิน] ลำโพงที่ 3: ไม่มี [ไม่ได้ยิน] มีบางส่วน ลำโพง 1: สีที่แตกต่างกัน ลำโพง 2: ตกลง ลำโพง 1: ดังนั้นในท้ายที่สุดสิ่งที่มัน ไม่มันปรับสี of--