1 00:00:00,000 --> 00:00:02,862 >> [השמעת מוסיקה] 2 00:00:02,862 --> 00:00:10,030 3 00:00:10,030 --> 00:00:11,580 >> DAVID מלאן: זה CS50. 4 00:00:11,580 --> 00:00:12,880 זה הוא ההתחלה של שבוע תשע. 5 00:00:12,880 --> 00:00:15,797 וזה מה שהיה צריך היה יום הולדת ה -200 של מר בול. 6 00:00:15,797 --> 00:00:17,630 אז זה הבחורים למי אנחנו כבר רמזנו 7 00:00:17,630 --> 00:00:21,800 די הרבה פעמים על שימוש ב משתני וליאנית אמת ושקר, 8 00:00:21,800 --> 00:00:22,910 1 ו -0 וכאלה. 9 00:00:22,910 --> 00:00:25,270 וזה היה של גוגל מחווה לו היום. 10 00:00:25,270 --> 00:00:26,489 הוא היה הופך 200. 11 00:00:26,489 --> 00:00:28,280 אז אם אתה רוצה הצטרף אלינו לארוחת הצהריים CS50, 12 00:00:28,280 --> 00:00:30,279 תסתכל על הקישור באתר האינטרנט של הקורס. 13 00:00:30,279 --> 00:00:33,580 ופרצופים כאלה וחברים כ אלה מחכים לכם כאן בקיימברידג '. 14 00:00:33,580 --> 00:00:35,360 פרצופים כמו אלה מחכים לכם בניו הייבן. 15 00:00:35,360 --> 00:00:37,800 ואכן, קן ב ניו הייבן עשתה חביבה 16 00:00:37,800 --> 00:00:41,594 מה שנקרא GIF מונפש של אלי כאן בlunch-- האחרון GIF הוא עדיין 17 00:00:41,594 --> 00:00:44,260 עוד פורמט קובץ גרפי, עם שאתה familiar-- ש 18 00:00:44,260 --> 00:00:46,300 נראה קצת משהו כזה. 19 00:00:46,300 --> 00:00:48,179 אז פשוט רצף ל-- אישור. 20 00:00:48,179 --> 00:00:49,720 אף אחד כאן לא בקיימברידג 'צוחק. 21 00:00:49,720 --> 00:00:51,720 אבל בניו הייבן, זה הוא ממש מצחיק, נכון? 22 00:00:51,720 --> 00:00:52,350 בסדר. 23 00:00:52,350 --> 00:00:53,940 >> אז אל תצטרפו אלינו לשם. 24 00:00:53,940 --> 00:00:55,900 כאן בהרווארד, במיוחד, ביום רביעי, 25 00:00:55,900 --> 00:00:59,480 אם אתה בכיתה י 'או הלימודים הראשונה even-- או אפילו חשיבה junior-- של קבלת 26 00:00:59,480 --> 00:01:01,563 מתג למחשב מדע, יודע ששם יהיו 27 00:01:01,563 --> 00:01:04,440 להיות CS ייעוץ הוגן זה יום רביעי, זמן קצר לאחר כיתה 28 00:01:04,440 --> 00:01:08,040 בשעה 4:00 במחשב בניין המדעים מקסוול דבורקין. 29 00:01:08,040 --> 00:01:11,890 אנחנו נשים את זה על המסלול של אתר עד מחר, כמו גם. 30 00:01:11,890 --> 00:01:14,430 סופגניות, נאמר לי, יוגשו. 31 00:01:14,430 --> 00:01:15,180 >> בסדר. 32 00:01:15,180 --> 00:01:18,790 story-- כל כך מצחיק שאני תוקע סביב באינטרנט, 33 00:01:18,790 --> 00:01:23,575 ומצאתי כמה ארכיונים ישנים של האתר שלי לשעבר. 34 00:01:23,575 --> 00:01:25,950 ומתברר out-- סביב זה זמן, זה נראה מאוד זמן 35 00:01:25,950 --> 00:01:28,910 מאז שאני מבין שהבחירות UC עומד הילוך שוב. 36 00:01:28,910 --> 00:01:32,230 אז רצתי לUC, איבדתי חרוץ. 37 00:01:32,230 --> 00:01:34,770 ואולי זה היה בחלק מדוע. 38 00:01:34,770 --> 00:01:37,600 אז זה היה באתר שלי באותו הזמן. 39 00:01:37,600 --> 00:01:40,477 מסיבה כלשהי, חשבתי שזה היה רעיון טוב, לפני שאומר לאנשים 40 00:01:40,477 --> 00:01:43,310 מה המצע שלי היה ולמה שהם צריך להצביע לי, שיש להם 41 00:01:43,310 --> 00:01:47,770 ללחץ להיכנס כדי לגלות ש מידע, שבדיעבד הוא 42 00:01:47,770 --> 00:01:48,660 סוג של מפחיד. 43 00:01:48,660 --> 00:01:50,910 אני לא ממש יודע מה זה היה. 44 00:01:50,910 --> 00:01:53,140 >> אבל זה בהחלט לא לעזור מסע הפרסום שלי. 45 00:01:53,140 --> 00:01:56,874 אני גם מצאתי כי על ידי בכיר year-- היה לי לוח שנה החבובות זה. 46 00:01:56,874 --> 00:01:58,540 החבובות היו סוג של באופנה אז. 47 00:01:58,540 --> 00:01:59,456 או שאולי הם לא היו. 48 00:01:59,456 --> 00:02:01,790 היה לי לוח שנה החבובות אז. 49 00:02:01,790 --> 00:02:04,860 ואני חשבתי שזה יהיה מגניב לשם המחשב שלי ברשת של אוניברסיטת הרווארד 50 00:02:04,860 --> 00:02:07,460 frogman.student.harvard.edu. 51 00:02:07,460 --> 00:02:10,370 באותו הזמן, כולנו היה באופן ייחודי מארח שמות מזוהים. 52 00:02:10,370 --> 00:02:13,150 ואתה יכול לבחור כמה יוהרה שם במקום השם שלך. 53 00:02:13,150 --> 00:02:15,580 והלכתי עם צפרדע מסיבה כלשהי. 54 00:02:15,580 --> 00:02:19,040 >> ואז אני started-- ביליתי הרבה זמן לחיצה באמצעות קישורים אלה 55 00:02:19,040 --> 00:02:20,280 הבוקר. 56 00:02:20,280 --> 00:02:24,690 וזה היה בעמוד עליי, שעכשיו סוג של נראה מקסים. 57 00:02:24,690 --> 00:02:28,210 אבל זה גם מעיד על רק כמה רחוק טכנולוגיה הגיע. 58 00:02:28,210 --> 00:02:30,310 אני מתכוון, חזרה ביום, 486 היו משהו. 59 00:02:30,310 --> 00:02:34,090 בימים אלה, הוא סופר, סופר, סופר איטי וגם פחות 60 00:02:34,090 --> 00:02:36,216 ממה שיש לך ב כיסים של ימים אלה. 61 00:02:36,216 --> 00:02:38,465 יש עוד שם ש היה אפילו יותר מביך. 62 00:02:38,465 --> 00:02:39,770 אז אני אשאיר את זה ככה. 63 00:02:39,770 --> 00:02:42,640 אבל זה היה ראשון שלי פשיטה לתוך web-- הו, לא. 64 00:02:42,640 --> 00:02:43,180 זה לא היה. 65 00:02:43,180 --> 00:02:47,000 הפשיטה האמיתית הראשונה שלי לתכנות אינטרנט היה באתר זה, שבו אני פשוט שכחתי. 66 00:02:47,000 --> 00:02:50,620 בשלב מסוים, למדתי איך להפוך את תמונות רקע חוזר על עצמו. 67 00:02:50,620 --> 00:02:55,260 וכך מצאתי את ריצוף זה יעיל, כמו שחקן הוקי, כדורגל, וגולף 68 00:02:55,260 --> 00:02:58,040 כדור, או מה שזה לא לאתר האינטרנט של פרוש IMS. 69 00:02:58,040 --> 00:03:01,390 וזה היה ממש, ממש פרויקט מבוסס האינטרנט הראשון שלקחתי on-- 70 00:03:01,390 --> 00:03:03,880 אני חושב שאולי בכיתה י ' שנה, year-- הזוטר 71 00:03:03,880 --> 00:03:07,622 לאחר נטילת CS50 וCS51, אחד של כיתות המשך במשותף. 72 00:03:07,622 --> 00:03:09,330 שמתי לב במחפש בארכיונים 73 00:03:09,330 --> 00:03:12,150 שאחד היורשים שלי ו חברים, לי, סוג של השתנו 74 00:03:12,150 --> 00:03:13,480 זכויות היוצרים לעצמו. 75 00:03:13,480 --> 00:03:17,520 אבל זה אכן היה משהו ש אני צריך להחזיק את המבוכה ל. 76 00:03:17,520 --> 00:03:19,370 אבל באותו הזמן, זה היה באתר הראשון, 77 00:03:19,370 --> 00:03:22,220 כמו שאמרתי לפני כמה שבועות, על ידי שהשנה הראשונה יכלה 78 00:03:22,220 --> 00:03:24,350 להירשם לסוגי ספורט כאן. 79 00:03:24,350 --> 00:03:27,950 וכך מתברר שתמונות הרקע 80 00:03:27,950 --> 00:03:29,530 כמו שהם לא רעיון כל כך טוב. 81 00:03:29,530 --> 00:03:31,840 אבל האינטרנט היה חדש, ו כולנו להתנסות. 82 00:03:31,840 --> 00:03:34,310 וזה מה שאני כנראה עשה באותו הזמן. 83 00:03:34,310 --> 00:03:34,810 בסדר. 84 00:03:34,810 --> 00:03:38,020 אז בלי עיכובים נוספים, אנו לעבור הילוכים היום כדי לתת לך, באמת, 85 00:03:38,020 --> 00:03:42,250 החתיכה האחרונה שאתה עלול למצוא שימושי במיוחד עבור פרויקט גמר 86 00:03:42,250 --> 00:03:44,780 אבל גם שאתחיל להפוך את האינטרנט הרחב כל העולם 87 00:03:44,780 --> 00:03:46,680 מרגיש קצת יותר מובן. 88 00:03:46,680 --> 00:03:49,460 ואכן, אנחנו הולכים להציג את שפת תכנות יותר אחד 89 00:03:49,460 --> 00:03:52,474 JavaScript נקרא זה דומה ושונות בדרכים שונות 90 00:03:52,474 --> 00:03:54,140 משפות בדקנו עד כה. 91 00:03:54,140 --> 00:03:55,807 >> אז C, כזכור, היא שפת הידור זה. 92 00:03:55,807 --> 00:03:57,473 אתה חייב להפעיל אותו באמצעות מהדר. 93 00:03:57,473 --> 00:03:59,810 אתה מקבל את קוד המקור להתנגד קוד, או אפסים ואחדים. 94 00:03:59,810 --> 00:04:03,000 ואלה הם אפסים ואחדים ש המעבד שלך, יחידת עיבוד מרכזית, 95 00:04:03,000 --> 00:04:04,360 להבין בעצם. 96 00:04:04,360 --> 00:04:06,610 PHP, לעומת זאת, אינו שפת הידור. 97 00:04:06,610 --> 00:04:08,772 זה מה? 98 00:04:08,772 --> 00:04:09,980 זה שפה פירשה. 99 00:04:09,980 --> 00:04:11,750 אז יש כמה תכנית נקרא מתורגמן ש 100 00:04:11,750 --> 00:04:13,708 יש לקרוא עליון it-- ל למטה, משמאל לright-- 101 00:04:13,708 --> 00:04:16,519 ולהבין מה כל התחביר שלך עושה ואומר, 102 00:04:16,519 --> 00:04:20,200 בין אם זה לולאה או מצב או כל מספר אחר של תכנות 103 00:04:20,200 --> 00:04:20,740 בונה. 104 00:04:20,740 --> 00:04:22,210 אז זה שפה פירשה. 105 00:04:22,210 --> 00:04:23,910 >> אז הציג HTML. 106 00:04:23,910 --> 00:04:26,440 ו- HTML אפילו לא שפת תכנות. 107 00:04:26,440 --> 00:04:28,110 אנחנו היינו קוראים לזה מה? 108 00:04:28,110 --> 00:04:31,650 שפת סימון, שהוא רק סוג של דרך המפוארת של אומר את זה 109 00:04:31,650 --> 00:04:35,820 אין בונה תכנות כמו ראינו אפילו חזרה ביום של Scratch. 110 00:04:35,820 --> 00:04:36,720 אין לולאות. 111 00:04:36,720 --> 00:04:37,920 אין תנאים. 112 00:04:37,920 --> 00:04:40,820 זה באמת שפה על סימון הנתונים שלך 113 00:04:40,820 --> 00:04:43,620 ועיצובו או את מבנו בדרך כלשהי. 114 00:04:43,620 --> 00:04:46,147 >> CSS, בינתיים, באופן דומה לא שפת תכנות. 115 00:04:46,147 --> 00:04:47,730 זה אפילו יותר בכיוון אסתטי. 116 00:04:47,730 --> 00:04:50,470 וזה מאפשר לך למיין של לכוונן דברים כמו גודל גופן וצבעים 117 00:04:50,470 --> 00:04:51,850 ומיקום וכל זה. 118 00:04:51,850 --> 00:04:52,370 אז היו לנו 119 00:04:52,370 --> 00:04:53,160 >> SQL. 120 00:04:53,160 --> 00:04:56,010 אז SQL הוא אכן תכנות שפה במובן מסוים, 121 00:04:56,010 --> 00:04:59,330 גם אם מותאם במיוחד למאגרי מידע. 122 00:04:59,330 --> 00:05:03,347 אבל למרות שאנחנו מציגים לכם רק ל לבחור ולהוסיף ולמחוק ולעדכן 123 00:05:03,347 --> 00:05:05,430 וכמה אחרים, מתברר למעשה אתה יכול 124 00:05:05,430 --> 00:05:07,380 לכתוב פונקציות או נהלים, כפי שהם 125 00:05:07,380 --> 00:05:11,270 בשם, ב- SQL שנראה ומעשה ממש כמו פונקציות PHP ו- C. 126 00:05:11,270 --> 00:05:12,390 אז תדע שקיימים אלה. 127 00:05:12,390 --> 00:05:15,348 אבל אנחנו לא טורחים אפילו עם אותם כפי שאנו רק לגרד את פני השטח כאן. 128 00:05:15,348 --> 00:05:18,600 ולאחר מכן JavaScript, האחרון של השפות שלנו הציגו באופן רשמי. 129 00:05:18,600 --> 00:05:21,029 אז JavaScript, גם הוא שפה פירשה. 130 00:05:21,029 --> 00:05:23,070 ומוכר אלה, לעשות אתה רוצה להבדיל אותה 131 00:05:23,070 --> 00:05:26,960 עם כמה אופייני משני C ו- PHP? 132 00:05:26,960 --> 00:05:28,300 מה עושה את זה שונה? 133 00:05:28,300 --> 00:05:29,650 >> קהל: זה לא הידור. 134 00:05:29,650 --> 00:05:29,930 >> DAVID מלאן: תגיד שוב? 135 00:05:29,930 --> 00:05:31,200 >> קהל: זה לא הידור. 136 00:05:31,200 --> 00:05:31,930 >> DAVID מלאן: זה לא הידור. 137 00:05:31,930 --> 00:05:33,450 אז זה גם, מתפרש. 138 00:05:33,450 --> 00:05:34,760 אז זה לא הידור. 139 00:05:34,760 --> 00:05:37,210 אבל זה עושה את זה קצת כמו PHP. 140 00:05:37,210 --> 00:05:39,545 אבל זה עדיין שונה מ PHP בדרך בולטת, 141 00:05:39,545 --> 00:05:40,920 לפחות בדרך בה אנו נשתמש בו. 142 00:05:40,920 --> 00:05:41,205 כן? 143 00:05:41,205 --> 00:05:41,940 >> קהל: היא פועלת בצד הלקוח. 144 00:05:41,940 --> 00:05:44,000 >> DAVID מלאן: היא פועלת בצד הלקוח, בדרך כלל. 145 00:05:44,000 --> 00:05:47,190 זה אכן ההבחנה אופייני לנו עכשיו. 146 00:05:47,190 --> 00:05:51,170 C היה בצד שרת במובן שעשינו כל שבIDE CS50. 147 00:05:51,170 --> 00:05:53,630 PHP עד כה היה בצד שרת במידה 148 00:05:53,630 --> 00:05:56,550 כפי שגם מקבל interpreted-- לא נערך, אבל interpreted-- 149 00:05:56,550 --> 00:06:00,690 בתוך CS50 IDE, שכמובן הוא רק שרת או שרתים בענן. 150 00:06:00,690 --> 00:06:03,070 >> אבל JavaScript, אפילו למרות שאתה אתה הולך 151 00:06:03,070 --> 00:06:07,000 להתחיל לכתוב אותו, למשל, pset שמונה ואולי סופיים projects-- אתה 152 00:06:07,000 --> 00:06:09,620 הולך לתקן את זה ב וIDE CS50 לשמור אותו 153 00:06:09,620 --> 00:06:14,760 בקבצים בתוך IDE CS50, CS50 IDE ו, בתורו, שרתי הענן 154 00:06:14,760 --> 00:06:19,160 שבו הוא מתארח, לא הולך לפרש או לבצע הקוד שלך. 155 00:06:19,160 --> 00:06:23,880 במקום זאת, זה הולך לשליחה ב טופס ללא שינוי עד לדפדפן. 156 00:06:23,880 --> 00:06:26,990 ואז זה הולך להיות IE או כרום או פיירפוקס או ספארי 157 00:06:26,990 --> 00:06:30,697 או מה שזה לא מפרש למעשה זה, מלמעלה למטה, משמאל לימין. 158 00:06:30,697 --> 00:06:32,780 אז הבחנת מפתח אופייני להיום 159 00:06:32,780 --> 00:06:36,110 הוא כי JavaScript הוא בצד הלקוח ו- PHP, למשל, 160 00:06:36,110 --> 00:06:37,690 יש בצד שרת היה. 161 00:06:37,690 --> 00:06:40,920 עכשיו, יש לכך השלכות מעניינות ל, כמו, קניין רוחני 162 00:06:40,920 --> 00:06:42,660 ומי באמת יכול לראות את הקוד שלך. 163 00:06:42,660 --> 00:06:44,860 ואכן, אתה יכול ללכת באינטרנט ולראות את רוב 164 00:06:44,860 --> 00:06:47,530 כל קוד שיש מישהו נכתב ב- JavaScript. 165 00:06:47,530 --> 00:06:50,230 לפעמים זה קריא, לפעמים זה לטשטש. 166 00:06:50,230 --> 00:06:52,550 אבל עוד על כך בבוא הזמן. 167 00:06:52,550 --> 00:06:57,530 >> אז JavaScript, יפה מספיק, הוא סופר דומה, מבחינה תחבירית, לג 168 00:06:57,530 --> 00:06:59,364 והרבה כמו PHP, אין פונקציה העיקרית. 169 00:06:59,364 --> 00:07:02,113 אם אתה רוצה להתחיל לכתוב קוד JavaScript, כפי שתראה היום, 170 00:07:02,113 --> 00:07:03,270 אתה פשוט להתחיל לכתוב אותו. 171 00:07:03,270 --> 00:07:06,910 אבל זה, תראה, במיוחד שימושי בהקשר של דפדפני אינטרנט. 172 00:07:06,910 --> 00:07:09,820 עם זאת, קטן שלי disclaimer-- בדרך כלל earlier-- 173 00:07:09,820 --> 00:07:13,790 היה אומר שיותר ויותר שאתה יכול שימוש כיום בצד השרת JavaScript 174 00:07:13,790 --> 00:07:17,655 באמצעות מסגרת מפוארת נקראת Node.js כי חלק מיישומיה של CS50 175 00:07:17,655 --> 00:07:18,280 כתובים ב. 176 00:07:18,280 --> 00:07:20,640 בדוק 50 בעצם משתמש Node.js. 177 00:07:20,640 --> 00:07:24,140 אבל אנחנו הולכים להתמקד ב בצד הלקוח JavaScript כאן והלאה. 178 00:07:24,140 --> 00:07:26,750 >> אז הנה היא קבוצה של תנאים ב- PHP. 179 00:07:26,750 --> 00:07:29,350 מצטער, in-- למעשה, ש הצהרה, גם היא נכונה. 180 00:07:29,350 --> 00:07:32,200 הנה גם קבוצה של תנאים ב- JavaScript. 181 00:07:32,200 --> 00:07:35,560 מבחינה תחבירית, זה זהה ל- C ו- PHP. 182 00:07:35,560 --> 00:07:39,040 הביטויים של מר בול הם, באופן דומה, מבחינה תחבירית 183 00:07:39,040 --> 00:07:41,190 זהה לשניהם C ו- PHP. 184 00:07:41,190 --> 00:07:44,100 יש לנו גם מתגים ב JavaScript שנראה זהה. 185 00:07:44,100 --> 00:07:46,350 יש לנו ללולאות ש מובנה זהה, 186 00:07:46,350 --> 00:07:48,140 בעוד לולאות, לעשות בזמן לולאות. 187 00:07:48,140 --> 00:07:49,980 >> זה אחד זה קצת שונה. 188 00:07:49,980 --> 00:07:53,120 היה לי PHP עבור כל מבנה שאתה יכול להיות באמצעות 189 00:07:53,120 --> 00:07:55,320 או ישתמש בpset שבע, אולי. 190 00:07:55,320 --> 00:07:59,460 יש JavaScript גרסה מיוחדת זו של לשם, פשוטו כמשמעו, אתה אומר משהו 191 00:07:59,460 --> 00:08:03,864 כמו למפתח משתנה באובייקט, ש היא דרך תמציתית מאוד לומר, 192 00:08:03,864 --> 00:08:06,780 אם יש לי object-- ואנחנו לדבר על אלה שוב בmoment-- 193 00:08:06,780 --> 00:08:10,370 ואני רוצה לחזר על כל של זוגות ערך המפתח בפנים, 194 00:08:10,370 --> 00:08:13,620 אני לא צריך להבין איך מדד המספרי עם אפס, אחד, 195 00:08:13,620 --> 00:08:14,580 שניים שלושה. 196 00:08:14,580 --> 00:08:15,900 >> אני ממש יכול להגיד את זה. 197 00:08:15,900 --> 00:08:20,740 ועל כל איטרציה, JavaScript בשבילי יעדכנו את המפתח משתנה 198 00:08:20,740 --> 00:08:24,810 להיות המפתח הראשון, לאחר מכן על המקש הבא, לאחר מכן על המקש הבא, לאחר מכן על המקש הבא, 199 00:08:24,810 --> 00:08:25,510 וכן הלאה. 200 00:08:25,510 --> 00:08:30,000 ואני יכול לקבל בשווי שלה על ידי טיפול ב אובייקט ב- JavaScript, כפי שנראה, 201 00:08:30,000 --> 00:08:32,584 כאילו זה מערך אסוציאטיבי ב- PHP. 202 00:08:32,584 --> 00:08:35,750 ואכן, אם אתה סוף סוף העטוף אכפת סביב מה הוא מערך אסוציאטיבי 203 00:08:35,750 --> 00:08:40,140 ב- PHP, אתה יכול לחשוב על זה לעת עתה כ זהה לאובייקט ב- JavaScript. 204 00:08:40,140 --> 00:08:42,030 אבל זה קצת פשטנות. 205 00:08:42,030 --> 00:08:47,230 >> מערכים להסתכל, יפה מספיק, זהים ל- PHP, פרט לתו אחד. 206 00:08:47,230 --> 00:08:51,425 יש דבר אחד שהחסר כאן כי אנחנו לא רואים בשבוע שעבר עם PHP. 207 00:08:51,425 --> 00:08:52,050 מה הושמט? 208 00:08:52,050 --> 00:08:53,310 כן? 209 00:08:53,310 --> 00:08:54,090 אין סימן דולר. 210 00:08:54,090 --> 00:08:56,240 אז אנחנו חוזרים ל עולם נורמלי יותר שבי 211 00:08:56,240 --> 00:08:58,050 אין לי משתני סימני דולר. 212 00:08:58,050 --> 00:09:00,810 אבל אתה עושה קידומתם עם var, בדרך כלל. 213 00:09:00,810 --> 00:09:02,230 וvar המשמעות משתנה. 214 00:09:02,230 --> 00:09:06,440 והרבה כמו PHP הוא רופף typed-- לפי ישנם סוגים, 215 00:09:06,440 --> 00:09:10,120 יש מספרים ומחרוזות וצוף כך forth-- 216 00:09:10,120 --> 00:09:11,570 יש JavaScript דומה סוגים. 217 00:09:11,570 --> 00:09:15,470 אבל זה שהוקלד באופן רופף שאנחנו מתכנתים לא צריכים לציין אותם. 218 00:09:15,470 --> 00:09:18,980 אנחנו רק צריכים להיות מודעים ל כי סוגים שונים קיימים. 219 00:09:18,980 --> 00:09:21,690 >> משתנים, meanwhile-- הנה איך אנו עשויים להכריז "שלום, עולם" 220 00:09:21,690 --> 00:09:22,230 כמחרוזת. 221 00:09:22,230 --> 00:09:24,890 שים לב שזה זהה ל PHP אבל אין סימן דולר. 222 00:09:24,890 --> 00:09:27,120 וזה משהו שאנחנו תתחיל לראות יותר היום, 223 00:09:27,120 --> 00:09:30,990 לפי שיש לך אובייקט עם מפתחות וערכים. 224 00:09:30,990 --> 00:09:32,990 ואם אתה רוצה לנסות להסיק מweek-- האחרון 225 00:09:32,990 --> 00:09:34,730 התחביר הוא קצת שונה. 226 00:09:34,730 --> 00:09:39,740 אבל קצת שפיות check-- כמה נראה אובייקט זה מפתחות יש? 227 00:09:39,740 --> 00:09:40,850 אז אני רואה ארבעה. 228 00:09:40,850 --> 00:09:43,560 אני רואה שני. 229 00:09:43,560 --> 00:09:44,680 >> אז זה בעצם שניים. 230 00:09:44,680 --> 00:09:47,260 אז זה הוא אוסף של שני זוגות מפתח-ערך. 231 00:09:47,260 --> 00:09:49,820 המפתח הוא סמל שערך FB. 232 00:09:49,820 --> 00:09:52,620 המפתח הוא מחיר שערך 101.53. 233 00:09:52,620 --> 00:09:54,230 אז אלה הם שני זוגות מפתח-ערך. 234 00:09:54,230 --> 00:09:58,120 וזכור, PHP-- וזה שוב רק סוג של הבדל תחבירי. 235 00:09:58,120 --> 00:10:00,170 זה לא כל כך מעניין מבחינה אינטלקטואלית. 236 00:10:00,170 --> 00:10:04,610 PHP אולי כתב את זה באותו דבר ציטוט follows--, שווה. 237 00:10:04,610 --> 00:10:06,730 ואני משנה את אלה לסוגריים מרובעים. 238 00:10:06,730 --> 00:10:11,240 ואז אני משנה את זה ל מילה שצוטטה, "מחיר". 239 00:10:11,240 --> 00:10:12,500 ואז אני לא משתמש במעי גס. 240 00:10:12,500 --> 00:10:15,060 מה שאני לא משתמש בשבוע שעבר? 241 00:10:15,060 --> 00:10:18,290 כן, סימן השוויון חץ סימון פאנקי. 242 00:10:18,290 --> 00:10:21,470 >> ואז עשיתי את אותו הדבר כאן. 243 00:10:21,470 --> 00:10:23,580 אותו דבר כאן. 244 00:10:23,580 --> 00:10:24,240 וזה הכל. 245 00:10:24,240 --> 00:10:27,752 אז זה בסדר אם זה לא באמת שקוע בזיכרון רק 246 00:10:27,752 --> 00:10:29,960 עדיין, כי זה באמת מבחינה אינטלקטואלית לא מעניין. 247 00:10:29,960 --> 00:10:31,660 זה רק הבדלים תחביריים. 248 00:10:31,660 --> 00:10:33,230 אבל הרעיונות הם בדיוק אותו הדבר. 249 00:10:33,230 --> 00:10:35,910 בתוך של משתנה זה ציטוט בJavaScript 250 00:10:35,910 --> 00:10:39,020 הוא אוסף של זוגות מפתח-ערך, אחד מהם הוא סמל, שאחד מהם 251 00:10:39,020 --> 00:10:39,690 הוא מחיר. 252 00:10:39,690 --> 00:10:42,340 ואני יכול לקבל בערכים אלה עם התחביר הבא. 253 00:10:42,340 --> 00:10:46,280 בדיוק כמו ב- PHP, שיכולתי לעשות משהו like-- לתת 254 00:10:46,280 --> 00:10:48,590 לי לעשות תיבה זו קצת יותר גדולה. 255 00:10:48,590 --> 00:10:52,750 בדיוק כמו ב- PHP, שיכולתי להפוך את זה-- אוי, לעזאזל. 256 00:10:52,750 --> 00:10:53,250 בחייך. 257 00:10:53,250 --> 00:10:56,350 258 00:10:56,350 --> 00:11:00,800 >> בדיוק כמו בPHP-- אישור, אנחנו פשוט להשתמש בהערות המגיש. 259 00:11:00,800 --> 00:11:06,010 בדיוק כמו ב- PHP, אני יכול לעשות $ ["סמל"] ציטוט $, 260 00:11:06,010 --> 00:11:08,860 וזה יקבל אותי את הערך של "סמל". 261 00:11:08,860 --> 00:11:12,800 ב- JavaScript, זה הולך להיות זהה, לפיה אני יכול פשוט לעשות את זה. 262 00:11:12,800 --> 00:11:14,850 הדבר היחיד ש חסר הוא סימן הדולר. 263 00:11:14,850 --> 00:11:17,470 >> כל כך יפה מספיק, אז, יש לא כל כך הרבה תחביר חדש. 264 00:11:17,470 --> 00:11:21,025 אז מה היום אנו מתמקדים, באמת, הוא חלק מהרעיונות והיישומים. 265 00:11:21,025 --> 00:11:22,900 והראשון מסוגו יישום שאתה עשוי 266 00:11:22,900 --> 00:11:26,090 ראה אם ​​אתה צלל לתוך pset שבע כבר תחביר זה. 267 00:11:26,090 --> 00:11:28,980 אז בpset שבע, אם יש לך ראה או לא ראה את זה עדיין, 268 00:11:28,980 --> 00:11:33,570 יודע שיש קובץ שאנחנו נותנים לי אתה נקרא JavaScript config.json-- 269 00:11:33,570 --> 00:11:34,661 מתנגד סימון. 270 00:11:34,661 --> 00:11:35,160 למה? 271 00:11:35,160 --> 00:11:39,540 אנחנו רוצים להיות מסוגלים לספק לך תבנית עם כמה זוגות מפתח-ערך. 272 00:11:39,540 --> 00:11:44,290 אנחנו רוצים להיות מסוגלים לתת לך רשימה של המארח, את שמו של השרת. 273 00:11:44,290 --> 00:11:46,710 רצינו לתת לך מציין מיקום עבור שם המשתמש שלך 274 00:11:46,710 --> 00:11:48,210 ומציין מיקום עבור הסיסמה שלך. 275 00:11:48,210 --> 00:11:49,410 אם אתה לא רואה זה עדיין, לא לדאוג. 276 00:11:49,410 --> 00:11:51,340 עוד על כך בpset שבע [? מפרט. ?] ואז, 277 00:11:51,340 --> 00:11:53,173 ברור, אנחנו רוצים אותך כדי למלא את המטלות 278 00:11:53,173 --> 00:11:55,310 כי כשאתה נכנסת ל CS50 IDE, כל אחד מכם 279 00:11:55,310 --> 00:11:57,630 יש את שם המשתמש שלך וסיסמא. 280 00:11:57,630 --> 00:12:00,910 >> אז אנחנו יכולים כבר השתמשנו בחצי תריסר או יותר פורמטים של קבצים שונים. 281 00:12:00,910 --> 00:12:02,940 אנו יכולים להשתמש קובץ txt. 282 00:12:02,940 --> 00:12:04,570 אנו יכולים להשתמש בקובץ CSV. 283 00:12:04,570 --> 00:12:06,745 אנחנו יכולים השתמשנו קובץ INI, קובץ XML, 284 00:12:06,745 --> 00:12:09,370 כל חבורה יותר בראשי תיבות ש ייתכן שלא שמע אי פעם. 285 00:12:09,370 --> 00:12:11,244 זה סוג של שרירותי בסופו של היום. 286 00:12:11,244 --> 00:12:16,030 אבל סופר פופולרי בימים אלה הוא טקסט פורמט נקרא אובייקט JSON-- JavaScript 287 00:12:16,030 --> 00:12:18,460 Notation-- שנראה כך. 288 00:12:18,460 --> 00:12:20,890 זה קצת סתום, אבל שים לב לדפוסים. 289 00:12:20,890 --> 00:12:24,180 אתה מתחיל עם מתולתל פתוח סד, ואתה בסופו עם אותו. 290 00:12:24,180 --> 00:12:26,550 בתוך זה משהו. 291 00:12:26,550 --> 00:12:27,920 זה זוג מפתחות-ערך. 292 00:12:27,920 --> 00:12:30,580 אז זה אובייקט שאני מסתכל על על המסך כאן 293 00:12:30,580 --> 00:12:33,690 שיש מפתח אחד, שבו יש ערך אחד. 294 00:12:33,690 --> 00:12:37,610 ורק להסיק על סמך הדפוס קודם, מה המפתח כאן? 295 00:12:37,610 --> 00:12:39,790 מסד הנתונים, הדבר ל בצד השמאל של המעי הגס. 296 00:12:39,790 --> 00:12:43,500 >> עכשיו, הערך קורה להיות מספר שורות הפעם. 297 00:12:43,500 --> 00:12:46,760 אבל הערך מתחיל עם מתולתל סד ומסתיים בסד מתולתל. 298 00:12:46,760 --> 00:12:49,480 אז מה היית מציע הוא סוג של הערך של מסד הנתונים? 299 00:12:49,480 --> 00:12:52,160 300 00:12:52,160 --> 00:12:54,670 מילון או, פשוט יותר בתמציתיות, אובייקט. 301 00:12:54,670 --> 00:12:55,170 נכון? 302 00:12:55,170 --> 00:13:00,010 זהו סוג של מבנה נתונים ש יכול להשתמש במבנים אחרים בתוך עצמו. 303 00:13:00,010 --> 00:13:02,750 אז אם כל העניין הזה שאנחנו קורא object-- ואובייקט 304 00:13:02,750 --> 00:13:07,101 הוא פשוט חבורה של מפתח-ערך pairs-- ערך של מסד הנתונים עצמו הוא אובייקט. 305 00:13:07,101 --> 00:13:10,350 הערך של מסד הנתונים יש חבורה שלמה זוגות ערך מפתח, הראשון שבם 306 00:13:10,350 --> 00:13:13,130 הוא מארח, ולאחר מכן שם, אז שם משתמש, סיסמא ולאחר מכן, 307 00:13:13,130 --> 00:13:17,550 כל אחד מערכים ש, בינתיים, זה רק מחרוזת משעממת במרכאות כפולות. 308 00:13:17,550 --> 00:13:19,770 >> אז גם אם זה לא סופר ברור עדיין, 309 00:13:19,770 --> 00:13:22,740 יודע שזה רק סטנדרטי למדי דרך משעממת, 310 00:13:22,740 --> 00:13:25,190 של אחסון נתונים בפורמט סטנדרטי. 311 00:13:25,190 --> 00:13:27,700 אבל הטעויות הנפוצות ש עלול לגרום, אפילו בpset שבע, 312 00:13:27,700 --> 00:13:32,120 דברים קטנים ומטופשים, כמו אם להשמיט בטעות הפסיק שם. 313 00:13:32,120 --> 00:13:34,900 זה הולך לגרום לקובץ לא בהכרח להיות קריא. 314 00:13:34,900 --> 00:13:38,191 אם תשמיט דברים כמו בטעות ציטוטים, זה לא הולך להיות קריא. 315 00:13:38,191 --> 00:13:41,654 אז זה פורמט קובץ די קטנוני, אבל זה אחד שסופר נפוץ. 316 00:13:41,654 --> 00:13:44,820 ואנחנו לקרות כדי להשתמש בו, למרות ש אתה לא להשתמש בכל דרך אחרת JavaScript, 317 00:13:44,820 --> 00:13:46,330 בpset שבע. 318 00:13:46,330 --> 00:13:46,860 >> בסדר. 319 00:13:46,860 --> 00:13:48,110 אז לזכור את התמונה הזאת. 320 00:13:48,110 --> 00:13:51,657 דברנו על, ב- HTML, ש הקוד עשוי להיראות כך. 321 00:13:51,657 --> 00:13:54,740 זה HyperText Markup Language [לא ברור] רק "שלום, עולם". 322 00:13:54,740 --> 00:13:57,570 אבל אז הצעתי זמן חזרה כי אם זה עוזר, 323 00:13:57,570 --> 00:14:00,210 אולי כדאי לך להתחיל לחשוב זה כבר כעץ על. 324 00:14:00,210 --> 00:14:03,730 למעשה, הכניסה ש להשתמש רק למען הקריאות 325 00:14:03,730 --> 00:14:05,610 או למען בסגנון של השמאל יכול סוג של 326 00:14:05,610 --> 00:14:10,040 יתורגם לעץ, שבו אתה זה יש לי כמה צומת שורש מיוחדת שנוסיף ל 327 00:14:10,040 --> 00:14:16,860 הגנרי בשם מסמך, שמתחתיו הוא אלמנט השורש HTML או תג, HTML, 328 00:14:16,860 --> 00:14:19,980 אשר לאחר מכן יש לו שני ילדים, ראש וגוף. 329 00:14:19,980 --> 00:14:21,750 >> ואז בתורו, יש ראש כותרת. 330 00:14:21,750 --> 00:14:23,440 ויש לו תואר ערך טקסט. 331 00:14:23,440 --> 00:14:26,130 וגוף באופן דומה יש ערך טקסט. 332 00:14:26,130 --> 00:14:29,220 אז אם אתה אומר נוח שכן, אתה יכול לקחת את זה HTML 333 00:14:29,220 --> 00:14:32,080 ולצייר תמונה כמו , הצד הימני זה 334 00:14:32,080 --> 00:14:35,910 הוא מודל המנטלי נחמד כי עכשיו שיש לנו JavaScript, תכנות 335 00:14:35,910 --> 00:14:39,960 שפה שדפדפנים יכולים לבצע ולפרש לך, 336 00:14:39,960 --> 00:14:42,690 מתברר כי מה ש אנחנו עומדים לעשות בקוד 337 00:14:42,690 --> 00:14:45,320 הוא מתחיל לתפעל את זה מבנה עץ בזיכרון. 338 00:14:45,320 --> 00:14:47,070 אנחנו לא צריכים לבנות העץ בזיכרון. 339 00:14:47,070 --> 00:14:49,880 אנחנו לא צריכים לעשות סוג של מבנה נתונים בסגנון וחמש pset 340 00:14:49,880 --> 00:14:50,650 מורכבות. 341 00:14:50,650 --> 00:14:54,610 הדפדפן, יפה מספיק, על פרשנות העליונה HTML לתחתית, 342 00:14:54,610 --> 00:14:58,600 שמאלה או ימינה, הוא ממש הולך למסור לנו את המקבילה של מצביע 343 00:14:58,600 --> 00:15:00,840 שלכל עץ בחינם. 344 00:15:00,840 --> 00:15:02,150 זה עושה את כל העבודה הקשה. 345 00:15:02,150 --> 00:15:05,520 זה מה שמוזילה ואפל ואחרים עשו לנו. 346 00:15:05,520 --> 00:15:09,400 >> ועם JavaScript אנחנו הולכים תוכל לשלוט ולשנות ולעשות 347 00:15:09,400 --> 00:15:12,910 דברים מעניינים עץ ש, הידוע 348 00:15:12,910 --> 00:15:15,880 כDOM או מודל אובייקט מסמך. 349 00:15:15,880 --> 00:15:17,110 אילו סוגים של דברים? 350 00:15:17,110 --> 00:15:19,030 ובכן, מתברר ש ב- JavaScript, יש 351 00:15:19,030 --> 00:15:22,800 רשימת מכולת של אירועים שיכולים להתרחש. 352 00:15:22,800 --> 00:15:26,330 ויש לנו לא ממש בשימוש ש מילה מאז שבוע אפס וpset 353 00:15:26,330 --> 00:15:28,240 אפס כאשר דיברנו על גרד. 354 00:15:28,240 --> 00:15:31,390 רובכם כנראה לא השתמש ב אירוע בפרויקט Scratch שלך. 355 00:15:31,390 --> 00:15:33,850 אבל אולי אתה זוכר מרקו פולו הפשוט 356 00:15:33,850 --> 00:15:36,760 דוגמא, שבו היו לנו שני שדונים, שאחד מהם אמרו, מרקו. 357 00:15:36,760 --> 00:15:40,180 האחר מהם לאחר מכן, על ההקשבה ושמיעת אירוע ש, אמר, פולו. 358 00:15:40,180 --> 00:15:42,080 אם לא, אל תהסס להסתכל אחורה כל כך רחוק אחורה. 359 00:15:42,080 --> 00:15:44,450 >> אבל זה רק ל אומר, ואתה יכול סוג של 360 00:15:44,450 --> 00:15:47,730 להסיק מהשמות אלה דברים, JavaScript, מתברר, 361 00:15:47,730 --> 00:15:53,200 הוא הולך לתת לנו את דרך להקשיב לעכבר יורד או העכבר עולה 362 00:15:53,200 --> 00:15:57,920 או מפתח יורד או מפתח או onselect onSubmit עולה 363 00:15:57,920 --> 00:15:59,740 או onresizing משהו. 364 00:15:59,740 --> 00:16:03,060 במילים אחרות, כל פעולה פיזית כי אדם יכול לקחת עם דפדפן 365 00:16:03,060 --> 00:16:08,210 שאתה עושה כל יום, אתה יכול לכתוב קוד שלמקשיב לאירועים אלה 366 00:16:08,210 --> 00:16:10,220 ואז עושה משהו מתאים. 367 00:16:10,220 --> 00:16:14,130 >> לדוגמא, אם אתה משתמש ב- Google Maps, מה קורה אם אתה לוחץ ומהלך 368 00:16:14,130 --> 00:16:16,250 העכבר, בדרך כלל? 369 00:16:16,250 --> 00:16:17,758 אם תלחץ ולגרור? 370 00:16:17,758 --> 00:16:18,258 כן? 371 00:16:18,258 --> 00:16:21,701 372 00:16:21,701 --> 00:16:22,200 בדיוק. 373 00:16:22,200 --> 00:16:23,159 המפה מתחילה לנוע. 374 00:16:23,159 --> 00:16:25,616 אז אתה סוג של יכול לראות מה כאן, מה יש שם. 375 00:16:25,616 --> 00:16:27,130 ואיך גוגל ליישם את זה? 376 00:16:27,130 --> 00:16:29,421 ובכן, ככל הנראה, הם באמצעות כמה אירועים אלה 377 00:16:29,421 --> 00:16:31,720 מאזינים, אחד ש אומר, להקשיב בעכבר 378 00:16:31,720 --> 00:16:35,410 down-- כך כאשר המשתמש פיזי דוחף trackpad או או עכברה 379 00:16:35,410 --> 00:16:36,010 למטה. 380 00:16:36,010 --> 00:16:38,350 ואז אנחנו מחפשים משהו כמו תנועה 381 00:16:38,350 --> 00:16:41,145 או אירוע אחר ש מאפשר לנו ללכוד גרירה. 382 00:16:41,145 --> 00:16:45,910 ולמעשה, גרירה היא דומה בזה נקודת נקודת נקודת רשימה של אופציות אפשריות. 383 00:16:45,910 --> 00:16:49,140 >> אז זה הולך להיות חזק דרך להתחיל להגיב למשתמש 384 00:16:49,140 --> 00:16:52,824 עוד לפני שהוא או היא ממש לוחץ משהו מפורש כמו שליחה. 385 00:16:52,824 --> 00:16:55,240 אבל אנחנו הולכים להציג כמה נושאים כדי להגיע לשם. 386 00:16:55,240 --> 00:16:58,570 מעבר אבל קודם, בואו לחלק הקוד בפועל. 387 00:16:58,570 --> 00:17:01,450 אז אני הולך קדימה, לפתוח את Dom-0, 388 00:17:01,450 --> 00:17:05,869 אשר היא דוגמא פשוטה מאוד כאן שאם להתקרב פשוט 389 00:17:05,869 --> 00:17:08,500 יש קלט זה כאן בשבילי. 390 00:17:08,500 --> 00:17:12,410 ואני הולך קדימה ולהקליד "דוד" לשם שלי ולחץ על שלח. 391 00:17:12,410 --> 00:17:17,940 >> ולאחר מכן, אם כי סוג של בזול, אני יש הנחיה זו שצצה שאומרת, 392 00:17:17,940 --> 00:17:19,244 "שלום, דוד!" 393 00:17:19,244 --> 00:17:21,740 אז זה סוג של כמו "שלום, עולם" שלנו 394 00:17:21,740 --> 00:17:25,150 שעשינו מזמן ב- C ו אפילו ב- PHP, כי יש לי באופן דינמי 395 00:17:25,150 --> 00:17:26,310 outputted את השם שלי. 396 00:17:26,310 --> 00:17:28,230 אני יכול לעשות את שמו של מישהו אחר כאן. 397 00:17:28,230 --> 00:17:31,240 אני יכול פשוט לשנות את זה ל, כמו, חנה, לחץ על השלח. 398 00:17:31,240 --> 00:17:33,780 ואכן, השינויים המוקפצים הקטנים. 399 00:17:33,780 --> 00:17:36,650 >> עכשיו, חלונות קופצים אחד רוב התכונות שעברו התעללות של האינטרנט. 400 00:17:36,650 --> 00:17:38,520 ולמעשה, חזרה ב חוסמי החלונות קופצים היום 401 00:17:38,520 --> 00:17:40,820 נכנס לאופנה בגלל שאתה הייתי הולך לכמה website-- 402 00:17:40,820 --> 00:17:43,604 אולי place-- מפוקפק כי אז היית פתאום 403 00:17:43,604 --> 00:17:46,020 להתחיל מתבל המסך שלך עם חבורה של חלונות קופצים כולה. 404 00:17:46,020 --> 00:17:49,700 וכך יכולת זו לצוץ חלונות בחזית של המשתמש 405 00:17:49,700 --> 00:17:52,372 לא היה במיוחד התקבל יפה על ידי האנושות. 406 00:17:52,372 --> 00:17:54,080 אז זאת הסיבה שאתה רואה זה ימנע דבר, 407 00:17:54,080 --> 00:17:55,706 שרק הופך את כל הדבר הזה מכוער. 408 00:17:55,706 --> 00:17:57,996 אז אנחנו הולכים לצריכים דרך טובה יותר להציג למשתמש. 409 00:17:57,996 --> 00:17:59,350 אבל לעת עתה, שנראה שזה עובד. 410 00:17:59,350 --> 00:18:03,320 אז רק באופן אינטואיטיבי, מה ש נראה שקורה כאן? 411 00:18:03,320 --> 00:18:07,870 אני הולך קדימה ולוחץ על שלח, ו אז משהו קורה, באופן ברור. 412 00:18:07,870 --> 00:18:12,870 אבל מה שלא קורה זה קרה בשבוע שעבר כל פעם שאני לוחץ שלח? 413 00:18:12,870 --> 00:18:15,940 מה לא קרה על המסך? 414 00:18:15,940 --> 00:18:17,170 מצטער? 415 00:18:17,170 --> 00:18:18,010 רענן. 416 00:18:18,010 --> 00:18:19,720 כתובת האתר לא השתנה בכלל. 417 00:18:19,720 --> 00:18:22,250 אני אמרתי שזה היה Dom-0, ואני עדיין בדום-0. 418 00:18:22,250 --> 00:18:26,890 בדרך כלל, היינו מקבל השתנה לכמה אחר כתובת אתר, כמו register.php או משהו הדומה. 419 00:18:26,890 --> 00:18:29,560 >> אבל גם כשאני לפטר דבר זה על-ידי לחיצה על אישור, 420 00:18:29,560 --> 00:18:32,310 שם לב שכתובת האתר נשאר לשים לחלוטין. 421 00:18:32,310 --> 00:18:35,350 ואכן, אם אני קצת ספקן, תן לי לפתוח את Chrome. 422 00:18:35,350 --> 00:18:36,860 תן לי לפתוח את כרטיסיית הרשת. 423 00:18:36,860 --> 00:18:38,360 ושים לב שזה ריק כרגע. 424 00:18:38,360 --> 00:18:40,700 תן לי ללכת קדימה ושלח שוב מריה. 425 00:18:40,700 --> 00:18:42,810 אין תנועה ברשת כלשהי. 426 00:18:42,810 --> 00:18:44,320 כך שאין HTTP. 427 00:18:44,320 --> 00:18:47,620 >> אז אכן, אם אני מסתכל על קוד המקור לזה-- תן לי לסגור את החלון 428 00:18:47,620 --> 00:18:49,480 ולך לתצוגת מקור. 429 00:18:49,480 --> 00:18:50,400 מעניין. 430 00:18:50,400 --> 00:18:53,520 זה נראה כאילו יש כמה תגים חדשים, ביניהם תסריט. 431 00:18:53,520 --> 00:18:57,490 אז בואו נסתכל בתוך CS50 IDE בדיוק מה שנשלח למשתמש. 432 00:18:57,490 --> 00:19:00,690 >> אז הנה הוא-- בואו להתמקד בHTML בלבד. 433 00:19:00,690 --> 00:19:03,500 הנה את החצי התחתון של Dom-0.html. 434 00:19:03,500 --> 00:19:07,830 ושים לב שזה חייב כותרת, תג ראש, תג גוף, תג טופס. 435 00:19:07,830 --> 00:19:11,257 אבל מה קופץ לך כ שונה, במיוחד אם יש לך אף פעם לא 436 00:19:11,257 --> 00:19:12,590 נכתב כל JavaScript עצמך. 437 00:19:12,590 --> 00:19:14,920 תן לי לגלול מעט לכאן. 438 00:19:14,920 --> 00:19:18,330 יש לי קלט, קלט אחר לשליחה. 439 00:19:18,330 --> 00:19:21,410 יש לי תעודת זהות, שהיא סוג של חדש. 440 00:19:21,410 --> 00:19:22,790 אבל אנחנו לא רואים את זה עם CSS. 441 00:19:22,790 --> 00:19:24,480 מה עוד הוא בהחלט חדש? 442 00:19:24,480 --> 00:19:24,980 כן? 443 00:19:24,980 --> 00:19:30,580 444 00:19:30,580 --> 00:19:32,140 נחמד. 445 00:19:32,140 --> 00:19:32,760 >> בסדר. 446 00:19:32,760 --> 00:19:35,630 אז איפה זה אומר onSubmit, שם לב מה שנראה בהמשך. 447 00:19:35,630 --> 00:19:38,740 זה מאפיין במינוח HTML. 448 00:19:38,740 --> 00:19:40,944 הערך שלה הוא מחרוזת שצוטטה כאן. 449 00:19:40,944 --> 00:19:42,860 וזה נראה קצת מוזר במבט ראשון. 450 00:19:42,860 --> 00:19:44,050 זה לא HTML. 451 00:19:44,050 --> 00:19:45,240 זה לא CSS. 452 00:19:45,240 --> 00:19:47,580 זה, כפי שאפשר לנחש, JavaScript. 453 00:19:47,580 --> 00:19:51,850 לכן נראה כי נבנו לזה דף האינטרנט הוא פונקציה הנקראת לברך. 454 00:19:51,850 --> 00:19:54,250 ואני להסיק שרק כי זה מילה, לברך. 455 00:19:54,250 --> 00:19:55,880 זה חייב סוגריים פתוחים, קרובים סוגריים, פסיק. 456 00:19:55,880 --> 00:19:58,095 נראה כמו פונקצית C, נראה כמו פונקצית PHP. 457 00:19:58,095 --> 00:20:00,370 >> ואכן, זה הולך להיות פונקצית JavaScript. 458 00:20:00,370 --> 00:20:01,440 אז אני חוזר שווא. 459 00:20:01,440 --> 00:20:03,440 אנחנו נחזור ל כי ברגע. 460 00:20:03,440 --> 00:20:05,320 אבל איפה מוגדר פונקציה זו? 461 00:20:05,320 --> 00:20:07,950 ובכן תן לי לגלול מעלה לחלק העליון של הקובץ. 462 00:20:07,950 --> 00:20:11,710 ולמרות שזה קו ארוך, זה יחסית פשוט. 463 00:20:11,710 --> 00:20:15,000 תן לי להתמקד כאן ו תתמקד בארבע שורות אלה. 464 00:20:15,000 --> 00:20:17,137 >> אז ב- JavaScript, רק כמו PHP, אתה פשוט 465 00:20:17,137 --> 00:20:19,720 למשל, פשוטו כמשמעו, את המילה "פונקציה" שמו של הפונקציה, 466 00:20:19,720 --> 00:20:22,700 ואז סוגריים עם כל arguments-- אין טיעונים במקרה זה. 467 00:20:22,700 --> 00:20:25,290 ואין שום סוג תמורה ב- JavaScript, בדיוק כמו PHP. 468 00:20:25,290 --> 00:20:29,470 אז זה קצת רופף יותר מאשר ג סד פתוח מתולתל, מסולסל סד קרוב. 469 00:20:29,470 --> 00:20:33,270 מובנה בתוך JavaScript היא function-- לא function-- מומלץ 470 00:20:33,270 --> 00:20:35,730 אבל פונקציה שנקראת התראה המטרה היחידה שבחיים 471 00:20:35,730 --> 00:20:38,620 הוא למשוך את זה די מכוער תבקש שראינו לפני רגע. 472 00:20:38,620 --> 00:20:40,950 >> עכשיו זה סוג של בפה מלא. 473 00:20:40,950 --> 00:20:42,560 מה הולך פה? 474 00:20:42,560 --> 00:20:45,840 אז בואו נתחיל להדגיש הכל כאן. 475 00:20:45,840 --> 00:20:48,540 זה אותו הוויכוח להתריע. 476 00:20:48,540 --> 00:20:49,530 ומה קורה? 477 00:20:49,530 --> 00:20:51,200 זה פשוט נראה כמו מחרוזת. 478 00:20:51,200 --> 00:20:59,180 ומתברר, שלא כמו PHP ולא כמו C, זה לא משנה בJavaScript 479 00:20:59,180 --> 00:21:01,090 אם אתה ציטוטים בודדים או מרכאות כפולות. 480 00:21:01,090 --> 00:21:02,060 הם יהיו שווי ערך. 481 00:21:02,060 --> 00:21:03,769 ולמען אמת, זה רק פופולרי בימים אלה 482 00:21:03,769 --> 00:21:06,726 עבור מתכנתי JavaScript לתמיד השתמש בגרשיים בודדים מסיבה כלשהי. 483 00:21:06,726 --> 00:21:07,840 זה פשוט הדבר הנכון לעשות. 484 00:21:07,840 --> 00:21:09,710 אבל אנחנו יכולים להשתמש במרכאות כפולות, כמו גם. 485 00:21:09,710 --> 00:21:11,540 >> אז תוספת היא דמות חדשה. 486 00:21:11,540 --> 00:21:14,512 אבל אלו מכם שעשו זה לפני, מה התוספת מתכוון? 487 00:21:14,512 --> 00:21:16,440 כן. 488 00:21:16,440 --> 00:21:17,120 לשרשר. 489 00:21:17,120 --> 00:21:18,570 אז ראינו את זה ב- PHP. 490 00:21:18,570 --> 00:21:20,315 יש רק הנקודה מפעיל ב- PHP ש 491 00:21:20,315 --> 00:21:22,000 יהיה לשרשר שתי מחרוזות יחד. 492 00:21:22,000 --> 00:21:24,000 C היה כאב בצוואר כדי לעשות את זה. 493 00:21:24,000 --> 00:21:27,310 כזכור מpset שש, שהיה כאב מיוחד בצוואר, 494 00:21:27,310 --> 00:21:29,470 היית צריך להשתמש ב משהו כמו strcat 495 00:21:29,470 --> 00:21:31,660 לאחר הקצאת זיכרון על הערימה או הערימה. 496 00:21:31,660 --> 00:21:34,243 אתה הייתי צריך לקפוץ דרך חישוקים רק כדי לשרשר שתי מחרוזות. 497 00:21:34,243 --> 00:21:36,040 ב- JavaScript, זה פשוט סופר. 498 00:21:36,040 --> 00:21:38,030 פשוט להשתמש במפעיל בתוספת ביניהם. 499 00:21:38,030 --> 00:21:41,420 >> אז עתיד המורכב נראה דבר להיות זה 500 00:21:41,420 --> 00:21:43,490 כי בסופו של כל מחרוזת זה, אני רק 501 00:21:43,490 --> 00:21:45,797 לשרשר על סימן קריאה. 502 00:21:45,797 --> 00:21:48,380 אז אם מה שצץ היה "שלום, דוד," "שלום, חנה," 503 00:21:48,380 --> 00:21:52,740 "שלום, מריה," וכן הלאה, באופן ברור כי דבר אמצע בין שתיים 504 00:21:52,740 --> 00:21:55,215 פלוסים חייבים לתת לי גישה למה? 505 00:21:55,215 --> 00:21:58,855 506 00:21:58,855 --> 00:22:01,991 מה יש שם בודאות? 507 00:22:01,991 --> 00:22:02,490 כן. 508 00:22:02,490 --> 00:22:05,090 אז אני מעמיד פנים כאן לענות את שמם, נכון? 509 00:22:05,090 --> 00:22:10,380 אז השם שלהם צץ בגמר תוצאה. אז מה זה אומר? 510 00:22:10,380 --> 00:22:15,080 ובכן, שהצעתי קודם לכן שב תמונה שנקראה DOM 511 00:22:15,080 --> 00:22:18,580 יש אלמנט שורש מיוחד דרך נקרא עליון מסמך. 512 00:22:18,580 --> 00:22:21,660 ועכשיו, מתברר, שהולך להיות משתנה גלובלי מיוחד 513 00:22:21,660 --> 00:22:25,250 ב- JavaScript, שנבנה לתוכו הוא כל חבורה של פונקציונליות שימושית. 514 00:22:25,250 --> 00:22:31,770 בין פונקציונלי השימושיים הוא היכולת לקבל בכל צומת צאצא. 515 00:22:31,770 --> 00:22:37,760 ריבועים או מלבנים או אליפסות אלה רק צמתים בעץ, כביכול. 516 00:22:37,760 --> 00:22:41,850 >> אז מתברר שנבנה ל אובייקט המסמך של JavaScript 517 00:22:41,850 --> 00:22:47,300 היא פונקציה, הידוע גם ב שיטה, שנקראת getElementById. 518 00:22:47,300 --> 00:22:50,410 התחביר לקוראים פונקציה בJavaScript 519 00:22:50,410 --> 00:22:55,220 שנמצא בתוך אובייקט או משתנה הוא רק עם סימון הנקודה. 520 00:22:55,220 --> 00:22:57,950 וראינו את זה ב- C מה תחביר struct. 521 00:22:57,950 --> 00:23:03,530 אתה רואה את זה בpset שבע, סוג של, סוג של, כשאתה רואה את שאילתא CS50 ::. 522 00:23:03,530 --> 00:23:08,070 מעי גס המעי הגס ב- PHP הוא עוד דרך של קורא לפונקציה זה 523 00:23:08,070 --> 00:23:09,260 בתוך כמה אובייקט. 524 00:23:09,260 --> 00:23:11,960 >> אבל לעת עתה ב- JavaScript, זה רק נקודה. 525 00:23:11,960 --> 00:23:14,170 וכך בפונקציה זו, יפה מספיק, סוג של 526 00:23:14,170 --> 00:23:16,810 אומר מה זה does-- לקבל אלמנט לפי תעודת זהות. 527 00:23:16,810 --> 00:23:20,280 אלמנט הוא רק שם אחר לתג או צומת בDOM. 528 00:23:20,280 --> 00:23:26,900 וכך לקבל אלמנט ידי "שם" זיהוי פירוש זה-- הנה HTML שלי. 529 00:23:26,900 --> 00:23:31,910 ומבוסס על HTML זה, מה צומת או מה תג HTML אני 530 00:23:31,910 --> 00:23:35,097 הולך להיות תכנותי ידיים על ידי קורא document.getElementById? 531 00:23:35,097 --> 00:23:37,650 532 00:23:37,650 --> 00:23:38,500 >> כן, בדיוק. 533 00:23:38,500 --> 00:23:42,670 אני הולך לקבל את הקלט אלמנט יש זיהוי שלו הוא "שם". 534 00:23:42,670 --> 00:23:45,140 אז במיוחד, אתה יכול לחשוב על פונקציה זו, 535 00:23:45,140 --> 00:23:49,560 getElementById, כדרך של מתן לגבות מצביע שלצומת הספציפית 536 00:23:49,560 --> 00:23:50,060 בעץ. 537 00:23:50,060 --> 00:23:51,980 אנחנו לא נמשכים זה עץ, אבל זה דרך 538 00:23:51,980 --> 00:23:54,900 לקבל גישה של מלבן או מלבן ש 539 00:23:54,900 --> 00:23:58,090 על ידי זיהוי ייחודי זה באמצעות זיהוי שלה. 540 00:23:58,090 --> 00:23:59,760 >> עכשיו, למה זה שימושי? 541 00:23:59,760 --> 00:24:01,510 ובכן, מתברר כי ברגע שקבלת 542 00:24:01,510 --> 00:24:07,220 צומת ש, שמלבן מ תמונה, צומת שבתוכו, 543 00:24:07,220 --> 00:24:10,660 בתורו, יש לו חבורה של כל זוגות מפתח-ערך properties-- 544 00:24:10,660 --> 00:24:13,480 הנתונים, שאחד מהם נקרא ערך או. 545 00:24:13,480 --> 00:24:16,500 אז, פשוטו כמשמעו, זה סוג של נגיסה להסביר את כל העניין. 546 00:24:16,500 --> 00:24:19,370 אבל בסופו של היום, כל המשמעות של זה הוא לתת לך 547 00:24:19,370 --> 00:24:23,070 מחרוזת שהמשתמש הקליד ב באופן היררכי זה. 548 00:24:23,070 --> 00:24:24,820 אבל אני לא אוהב כמה מהדברים האלה. 549 00:24:24,820 --> 00:24:27,590 או לייתר דיוק, יש כמה סקרנות עדיין. 550 00:24:27,590 --> 00:24:28,870 כל זה נראה לעבוד. 551 00:24:28,870 --> 00:24:33,420 למה אתה חושב שחזרת אני שווא אחרי שקראתי לברך? 552 00:24:33,420 --> 00:24:35,910 זה נראה קצת מכוער, ש יש לי שני דברים יש 553 00:24:35,910 --> 00:24:38,730 מופרד על ידי נקודה-פסיק. 554 00:24:38,730 --> 00:24:39,310 לנחש. 555 00:24:39,310 --> 00:24:44,390 אם הסרתי לחזור שווא, מה ש עלולים לקרות, רק באופן אינסטינקטיבי? 556 00:24:44,390 --> 00:24:46,990 557 00:24:46,990 --> 00:24:49,460 מצטער, אומר שוב? 558 00:24:49,460 --> 00:24:50,530 >> פתח חבורה של Windows. 559 00:24:50,530 --> 00:24:52,780 אז אולי משהו שעלול להיות כמו שהיה קורה. 560 00:24:52,780 --> 00:24:54,422 מה עוד? 561 00:24:54,422 --> 00:24:55,630 אולי להגיש בקשה איפה? 562 00:24:55,630 --> 00:24:59,109 563 00:24:59,109 --> 00:25:00,510 לאותו הדף. 564 00:25:00,510 --> 00:25:03,110 כך, למעשה, זה ש הקרובים יותר לענות כאן, 565 00:25:03,110 --> 00:25:05,890 למרות, שלא כמו בעבר, יש לי לא 566 00:25:05,890 --> 00:25:09,300 צוינה תכונת הפעולה, אשר בדרך כלל שאנחנו צריכים לעשות. 567 00:25:09,300 --> 00:25:11,780 מסתבר שיש ברירת מחדל. אם לא תציין פעולה, 568 00:25:11,780 --> 00:25:15,370 זה כמו להגיד ציטוט, סוף ציטוט או את שמו של הקובץ עצמו, 569 00:25:15,370 --> 00:25:17,850 אשר במקרה זה היית להיות כמו Dom-0.html. 570 00:25:17,850 --> 00:25:20,420 זה פשוט סוג של להסיק, או לייתר דיוק משתמע. 571 00:25:20,420 --> 00:25:22,420 >> ולכן אם לא עושה לי את זה, בואו נבחין. 572 00:25:22,420 --> 00:25:23,230 תן לי לשמור את זה. 573 00:25:23,230 --> 00:25:25,270 ואני כבר הוסר תמורת שווא. 574 00:25:25,270 --> 00:25:27,759 תן לי לחזור לזה דוגמא וכוח לטעון אותו מחדש. 575 00:25:27,759 --> 00:25:30,800 ואתה יכול לראות לי להציע זה על CS50 דיון חבורה של פעמים. 576 00:25:30,800 --> 00:25:34,560 אם משהו אי פעם מתנהג פאנקי ו דפדפן לא מתנהג כמו שאתה מצפה, 577 00:25:34,560 --> 00:25:37,410 לעתים קרובות אתה רוצה להחזיק Shift ולאחר מכן לחץ על רענן. 578 00:25:37,410 --> 00:25:41,480 שיאלץ את כל קובץ כדי לטעון מחדש ולא להשתמש במטמון המקומי של הדפדפן שלך 579 00:25:41,480 --> 00:25:47,032 או עותק כך שעכשיו, תן לי ללכת קדימה ו לפתוח את המפקח שלי, על כרטיסיית הרשת. 580 00:25:47,032 --> 00:25:48,740 אני הולך ללחץ שמור יומן כי אני 581 00:25:48,740 --> 00:25:51,660 לא רוצה את זה כדי למחוק את השורות ברגע שאני מקבל לקחתי משם למקום אחר. 582 00:25:51,660 --> 00:25:54,650 >> תן לי ללכת קדימה כאן ו סוג באנדי, לחץ על השלח. 583 00:25:54,650 --> 00:25:55,150 בסדר. 584 00:25:55,150 --> 00:25:56,480 זה נראה כצפוי. 585 00:25:56,480 --> 00:25:57,440 זה אומר "שלום, אנדי." 586 00:25:57,440 --> 00:25:59,420 תן לי לחץ על אישור. 587 00:25:59,420 --> 00:26:00,610 מעניין. 588 00:26:00,610 --> 00:26:05,100 שים לב שהדף השתנה, אם כי לדף המקורי. 589 00:26:05,100 --> 00:26:06,770 שים לב לסוג URL של שינוי. 590 00:26:06,770 --> 00:26:09,430 הוא הוסיף סימן שאלה, שהיא בדרך כלל אינדיקציה 591 00:26:09,430 --> 00:26:11,260 שניסינו להגיש משהו. 592 00:26:11,260 --> 00:26:13,570 ואז בתחתית, אפילו יותר מפורש, 593 00:26:13,570 --> 00:26:17,570 כאן היא בקשת HTTP בפועל, שיש תגובה של 200 ש 594 00:26:17,570 --> 00:26:18,490 החזיר אותי לכאן. 595 00:26:18,490 --> 00:26:20,250 >> אז זה לא מה ש אנחנו רוצים לעשות, נכון? 596 00:26:20,250 --> 00:26:22,166 כי אני לא רוצה טען מחדש את הדף כולו. 597 00:26:22,166 --> 00:26:24,970 אני במקום רציתי לחזור שקר כדי לקצר ב 598 00:26:24,970 --> 00:26:28,840 התנהגות ברירת המחדל של הדפדפן, ש היה, כמובן, להגיש את הדף. 599 00:26:28,840 --> 00:26:31,700 >> אז בואו נסתכל דוגמא שולית טובה יותר. 600 00:26:31,700 --> 00:26:33,920 זה הוא גרסת Dom אחד. 601 00:26:33,920 --> 00:26:36,680 ושים לב הבא. 602 00:26:36,680 --> 00:26:39,150 זה בסדר אם אתה לא תגרוק כל השורות של קוד. 603 00:26:39,150 --> 00:26:41,750 אבל מה הוא שונה במהותו על יישום זה? 604 00:26:41,750 --> 00:26:44,690 אני קובע שהוא מתנהג אותו דבר, עושה את אותו הדבר. 605 00:26:44,690 --> 00:26:49,320 606 00:26:49,320 --> 00:26:51,570 מה ברור לי לעשות אחרת? 607 00:26:51,570 --> 00:26:52,266 כן? 608 00:26:52,266 --> 00:26:53,182 >> קהל: [לא ברור]. 609 00:26:53,182 --> 00:27:03,421 610 00:27:03,421 --> 00:27:04,170 DAVID מלאן: כן. 611 00:27:04,170 --> 00:27:08,620 אז הפונקציה מוגדרת differently-- במילים אחרות, נעדרו מהצורה, 612 00:27:08,620 --> 00:27:13,180 שם למעלה על קו 7-- או ולא, קו 8-- כבר לא 613 00:27:13,180 --> 00:27:15,070 יש לי תכונת onSubmit. 614 00:27:15,070 --> 00:27:16,750 בדוגמא הקודמת, היה לי את זה. 615 00:27:16,750 --> 00:27:18,530 ואז אני ממש כתבתי את הקוד שלי כאן. 616 00:27:18,530 --> 00:27:20,210 ואז אמרתי לחזור שווא. 617 00:27:20,210 --> 00:27:22,180 ואם זה לא לשפשף אתה בדרך הלא נכונה עדיין, 618 00:27:22,180 --> 00:27:26,140 זה צריך להתחיל למידה כ, בדיוק כמו ב- HTML, 619 00:27:26,140 --> 00:27:29,530 כשהתחלנו לשתף להתערבב זה עם CSS בתכונות סגנון, 620 00:27:29,530 --> 00:27:32,890 זה פשוט התחיל לקבל קצת מבולגן או מרגיש קצת לא בסדר. 621 00:27:32,890 --> 00:27:35,020 >> כמו כן כאן, אם אתה מתחיל לקחת HTML, 622 00:27:35,020 --> 00:27:37,419 ואז אתה באופן אוטומטי פלופ קוד JavaScript 623 00:27:37,419 --> 00:27:40,460 באמצע מחרוזת מצוטטת, זה לא הולך להיות מאוד לתחזוקה. 624 00:27:40,460 --> 00:27:40,630 נכון? 625 00:27:40,630 --> 00:27:43,690 זה אפילו לא ברור בהתחלה מקום שבו קוד JavaScript הוא. 626 00:27:43,690 --> 00:27:46,590 אז זה יהיה ממש נחמד כ עיקרון של עיצוב טוב יותר, 627 00:27:46,590 --> 00:27:50,500 בואו נשמור HTML לחלוטין נפרד מJavaScript שלנו. 628 00:27:50,500 --> 00:27:53,150 >> אז כדי לעשות את זה, מה יש לנו נעשה כאן הוא following-- 629 00:27:53,150 --> 00:27:56,790 אנחנו פשוט להשתמש ב- HTML לסימון בלבד. 630 00:27:56,790 --> 00:28:00,730 וכך, באחת גרסאות של זה כל, יש לי היא צורה עם מזהה ייחודי. 631 00:28:00,730 --> 00:28:04,630 ואז כאן, אני מנצל של תכונה מיוחדת של JavaScript 632 00:28:04,630 --> 00:28:08,480 לפי אני יכול לקבל את מה ש נקרא פונקציה אנונימית. 633 00:28:08,480 --> 00:28:14,150 אז מתברר שאם אני קורא document.getElementById של 'הדגמה' 634 00:28:14,150 --> 00:28:18,890 זה כמו לתת לי מצביע ל צומת זה בעץ שלי, אלמנט הטופס, 635 00:28:18,890 --> 00:28:20,100 כביכול. 636 00:28:20,100 --> 00:28:22,220 >> עכשיו, אני רק יודע מ לדעת קצת HTML 637 00:28:22,220 --> 00:28:26,330 עכשיו אנחנו שקראנו כמה מקוונים התייחסות, כי אלמנט צורה תומכת 638 00:28:26,330 --> 00:28:29,950 חבורה שלמה של listeners-- אירוע ב מילות אחרות, רשימת המכולת של אירוע 639 00:28:29,950 --> 00:28:31,700 מאזינים שראינו לפני רגע. 640 00:28:31,700 --> 00:28:35,950 אני יודע מקריאת התיעוד onSubmit שהוא אירוע בתוקף 641 00:28:35,950 --> 00:28:38,520 מאזין לאלמנט טופס. 642 00:28:38,520 --> 00:28:41,480 >> אז ברגע שאני יודע את זה, זה בטוח לי לעשות 643 00:28:41,480 --> 00:28:45,390 following-- לקבל צומת ש מהעץ, אלמנט הטופס, 644 00:28:45,390 --> 00:28:48,070 וגישה שלה שנקרא רכוש onSubmit. 645 00:28:48,070 --> 00:28:49,880 אז הנקודה רק אומרת זה רכוש, 646 00:28:49,880 --> 00:28:52,180 כמו ערך מיוחד בתוכו. 647 00:28:52,180 --> 00:28:55,590 ומה נתוני סוג אני הקצאה, ככל הנראה, 648 00:28:55,590 --> 00:28:58,900 לonSubmit, שהוא יעילות משתנה בתוך 649 00:28:58,900 --> 00:29:01,010 של הצומת בעץ? 650 00:29:01,010 --> 00:29:04,100 זה תחום בתוך struct ש. 651 00:29:04,100 --> 00:29:05,810 מה סוג הנתונים? 652 00:29:05,810 --> 00:29:07,030 >> פונקציה, כן. 653 00:29:07,030 --> 00:29:08,607 אז מתברר שיש זה PHP. 654 00:29:08,607 --> 00:29:10,440 ולמרות שאנחנו לא ספרתי לך על זה, 655 00:29:10,440 --> 00:29:16,240 C יש גם מצביעי פונקציה, היכולת להעביר ולהקצות פונקציות 656 00:29:16,240 --> 00:29:18,330 כערכי המשתנים עצמם. 657 00:29:18,330 --> 00:29:20,280 ואנחנו לא הולכים לסגת בחזרה לג 658 00:29:20,280 --> 00:29:23,250 אבל לעת עתה, מתברר ש בצד ימין כאן, 659 00:29:23,250 --> 00:29:26,260 למרות שזה נראה קצת פאנקי, אמצעי זה, היי דפדפן, 660 00:29:26,260 --> 00:29:27,550 לתת לי תפקיד. 661 00:29:27,550 --> 00:29:30,560 אני לא הולך אפילו לטרוח לתת זה שם כי אני ממש 662 00:29:30,560 --> 00:29:34,450 הולך להקצות בואו נקראים לזה הכתובת של פונקציה זו 663 00:29:34,450 --> 00:29:35,994 מייד onSubmit. 664 00:29:35,994 --> 00:29:39,160 במילים אחרות, דפדפן, אתה לא צריך לדעת מה פונקציה זו נקראת. 665 00:29:39,160 --> 00:29:41,890 אתה רק צריך לדעת שבו הוא נמצא בזיכרון. 666 00:29:41,890 --> 00:29:44,210 ואז זה די פשוט ל יש סימן שוויון יש 667 00:29:44,210 --> 00:29:48,240 ולא להטריד את שמות זה, כמו foo או לברך או כל מילה אחרת. 668 00:29:48,240 --> 00:29:50,150 ועכשיו זה רק דבר סגנונית. 669 00:29:50,150 --> 00:29:53,100 יכולתי לזוז סד מתולתל זה על כל-- השורה הבאה sorry-- 670 00:29:53,100 --> 00:29:54,750 כמו שאנחנו עושים בדרך כלל CS50. 671 00:29:54,750 --> 00:29:57,550 אבל בJavaScript, זה למעשה סגנונית משותפת 672 00:29:57,550 --> 00:30:00,450 רק כדי לשמור על הסד המתולתל, ראשון, שבשורה ראשונה. 673 00:30:00,450 --> 00:30:02,620 >> אבל להלן, יש שום דבר מעניין. 674 00:30:02,620 --> 00:30:05,830 שסד מתולתל פתוח רק תוחם את תחילת התפקוד שלי. 675 00:30:05,830 --> 00:30:09,320 הפונקציה היא עכשיו זהה, למעט לי 676 00:30:09,320 --> 00:30:11,452 כלול שווא התמורה בתוך פונקציה זו. 677 00:30:11,452 --> 00:30:13,160 כי זה הופך out-- ואתה רק היית 678 00:30:13,160 --> 00:30:14,980 יודע את זה מקריאה documentation-- 679 00:30:14,980 --> 00:30:19,740 כי אם הפונקציה שאתה מקצה למטפל onSubmit חוזר שווא, 680 00:30:19,740 --> 00:30:23,420 הדפדפן פשוט יודע ומסכים לא לשלוח את הטופס לשרת. 681 00:30:23,420 --> 00:30:27,210 אם הוא חוזר אמיתי, הוא יגיש זה לשרת מסיבות שנראה 682 00:30:27,210 --> 00:30:28,700 שימושיים ברגע. 683 00:30:28,700 --> 00:30:31,000 >> ולאחר מכן פסיק אחרי הסד המתולתל יש רק 684 00:30:31,000 --> 00:30:32,541 אומר שאני תסיים להגדיר את הפונקציה. 685 00:30:32,541 --> 00:30:36,600 אתה יודע איך לקרוא לרגע כפי שאתה שומע הגשה. 686 00:30:36,600 --> 00:30:37,100 בסדר. 687 00:30:37,100 --> 00:30:40,650 זה עדיין ניתן לטעון סוג של מכוער. 688 00:30:40,650 --> 00:30:42,190 אז מה אנחנו יכולים לעשות יותר? 689 00:30:42,190 --> 00:30:45,000 >> ובכן, מתברר לאחר מכן ב גרסה שתי, שהוא last-- 690 00:30:45,000 --> 00:30:46,780 ואנחנו רק מבט חטוף בשלב זה. 691 00:30:46,780 --> 00:30:49,850 בסיכון של קבלת זה, מתברר מכוער 692 00:30:49,850 --> 00:30:52,160 שיש ספרייה ב העולם שנקרא jQuery. 693 00:30:52,160 --> 00:30:54,900 וjQuery היא סופר ספריית JavaScript הפופולרית 694 00:30:54,900 --> 00:30:57,930 זה כל כך פופולרי שרוב כל JavaScript-- זה לא 695 00:30:57,930 --> 00:31:00,540 נדיר עבור אנשים לבלבל jQuery עם JavaScript. 696 00:31:00,540 --> 00:31:01,070 למה? 697 00:31:01,070 --> 00:31:04,990 JavaScript עצמו יש מאוד דרכים מפורט של עשיית things-- 698 00:31:04,990 --> 00:31:07,820 document.getElementById, dadadadadada. 699 00:31:07,820 --> 00:31:10,510 אתה בסופו של דבר שיש מאוד תורים ארוכים של קוד. 700 00:31:10,510 --> 00:31:15,550 >> אז בחור בשם ג'ון Resid, שבאמת עובד לסטארט-אפ 701 00:31:15,550 --> 00:31:18,630 בימים אלה, יצאו עם שנות ספרייה זו 702 00:31:18,630 --> 00:31:22,070 לפני שאנשים רבים תרמו לנקרא jQuery שמשנה 703 00:31:22,070 --> 00:31:23,449 התחביר באופן הבא. 704 00:31:23,449 --> 00:31:25,740 ורק כדי שראית את זה, כי תמיד תמצאו 705 00:31:25,740 --> 00:31:28,140 רואה את זה, אם עושה פרויקט גמר מבוסס אינטרנט, 706 00:31:28,140 --> 00:31:33,270 זה יהיה הדרך המקבילה של יישום שאותו תפקיד באמצעות 707 00:31:33,270 --> 00:31:34,630 ספרייה מיוחדת זה. 708 00:31:34,630 --> 00:31:36,680 >> עכשיו, במקום להקניט אותו לגזרים בשלמותו, 709 00:31:36,680 --> 00:31:38,520 בואו פשוט להסתכל על כמה דפוסים. 710 00:31:38,520 --> 00:31:44,850 תחביר זה נראה לי כמה פונקציות בעילום שם 711 00:31:44,850 --> 00:31:49,584 או פונקציות חסרות שם או פונקציות למבדה AKA? 712 00:31:49,584 --> 00:31:50,190 שני, נכון? 713 00:31:50,190 --> 00:31:52,690 ואתה יודע את זה, גם אם אתה לא סופר נוח עם זה, 714 00:31:52,690 --> 00:31:55,780 רק על ידי כך שהיא אומר פונקציה () פעמיים. 715 00:31:55,780 --> 00:31:58,172 >> ומתברר ש מה הקוד הזה הוא עשות-- 716 00:31:58,172 --> 00:32:01,255 ואנו מתייחסים לאזכור באינטרנט, סופו של דבר, לקצת עזרה עם זה. 717 00:32:01,255 --> 00:32:04,480 זה רק אומר שכש המסמך מוכן, 718 00:32:04,480 --> 00:32:07,490 קדימה, להירשם הפונקציה הבאה 719 00:32:07,490 --> 00:32:12,064 כמטפל להגיש ל- HTML אלמנט ייחודי שרעיון הוא הדגמה. 720 00:32:12,064 --> 00:32:14,480 ואז, כשזה קורה, קורא שתי שורות של קוד אלה. 721 00:32:14,480 --> 00:32:18,677 וזה, באופן טרגי, יותר דרך מפורט לומר לחזור שווא. 722 00:32:18,677 --> 00:32:21,510 ושהזכרנו זה רק בגלל ש תראה קוד כמו זה באינטרנט. 723 00:32:21,510 --> 00:32:23,140 וזה דבר שרתיעה. 724 00:32:23,140 --> 00:32:26,057 אלא, יש לזכור כי מה ש הולך להיות נפוצה בJavaScript 725 00:32:26,057 --> 00:32:26,765 היא פרדיגמה זו. 726 00:32:26,765 --> 00:32:29,510 ואז בגלל זה אנחנו מראים את זה לעת עתה. 727 00:32:29,510 --> 00:32:30,010 בסדר. 728 00:32:30,010 --> 00:32:32,730 אז בלי דירה מדי הרבה על תחביר ש, 729 00:32:32,730 --> 00:32:37,800 הם יש שאלות על דוגמאות או רעיונות אלה עד כה? 730 00:32:37,800 --> 00:32:38,300 בסדר. 731 00:32:38,300 --> 00:32:40,220 אז בואו להשתמש בזה למשהו מועיל. 732 00:32:40,220 --> 00:32:47,070 מה שהופך את דף אינטרנט שרק אומר שלום, כך וכך הוא לא כל כך מעניין, 733 00:32:47,070 --> 00:32:47,830 לא underwhelm. 734 00:32:47,830 --> 00:32:51,038 אחד זה לא הולך להיות יפה, אבל זה הולך לעשות משהו מועיל. 735 00:32:51,038 --> 00:32:56,350 תן לי לחזור לספרייה שלי כאן ולפתוח, אומר, צורה-0.html. 736 00:32:56,350 --> 00:32:59,320 >> אז מניח שזה השנה הראשונה דף רישום סוגי ספורט 737 00:32:59,320 --> 00:33:01,780 ללא כל CSS או כל תחושה של עיצוב. 738 00:33:01,780 --> 00:33:05,404 ואני רוצה ללכת קדימה ו הירשם כאן עם סיסמא. 739 00:33:05,404 --> 00:33:08,320 ואני הולך להסכים לתנאים ותנאים ולחצו על רישום. 740 00:33:08,320 --> 00:33:11,700 ועכשיו באתר אומר, "אתה רשום! (טוב, לא ממש.) " 741 00:33:11,700 --> 00:33:15,070 זה נראה כמו שזה עבד, אבל תן לי ללכת קדימה ולהכריח את רענן. 742 00:33:15,070 --> 00:33:18,720 >> והרשה לי לומר, לא, אתה לא צריך כתובת הדוא"ל שלי בפועל. 743 00:33:18,720 --> 00:33:21,820 או שאולי אנחנו פשוט אומרים דואר לשם. 744 00:33:21,820 --> 00:33:25,080 סיסמא תהיה, כמו, 12345. 745 00:33:25,080 --> 00:33:28,810 ואז, רק בגלל שאני אידיוט, עכשיו זה 123456789. 746 00:33:28,810 --> 00:33:31,150 ואני לא הולך לבדוק את התיבה שלך. 747 00:33:31,150 --> 00:33:31,850 >> הממ. 748 00:33:31,850 --> 00:33:32,350 בסדר. 749 00:33:32,350 --> 00:33:34,920 אז יש כמה הזדמנויות לשיפור כאן. 750 00:33:34,920 --> 00:33:39,070 ואתה יודע, או תראה בpset שבע, שאתה יכול לכתוב code-- 751 00:33:39,070 --> 00:33:41,890 ואתה צריך לכתוב קוד בPHP-- להגן 752 00:33:41,890 --> 00:33:45,780 נגד סוגים שונים של משתמשים אלה טעויות מפני המשתמש בבירור 753 00:33:45,780 --> 00:33:46,790 לא שתף ​​פעולה. 754 00:33:46,790 --> 00:33:49,680 והוא או היא לא נתנה לך את כל ערכים שאתה רוצה, או אפילו בפורמט 755 00:33:49,680 --> 00:33:50,630 שאתה רוצה אותם. 756 00:33:50,630 --> 00:33:53,250 אז תראה בpset שבע ש אנחנו יכולים בהחלט יש כמה 757 00:33:53,250 --> 00:33:55,680 אם תנאים שאומרים אם כתובת הדוא"ל 758 00:33:55,680 --> 00:33:59,450 לא username@something.edu, אנחנו רק יכולים 759 00:33:59,450 --> 00:34:02,575 אומר מצטער ומתנצל למשתמש הרבה, כמו שאתה יכול להיות בpset שבע. 760 00:34:02,575 --> 00:34:05,700 או אם הם לא בדקו תיבה ש, מתברר ב- PHP, אתה יכול לזהות את זה, 761 00:34:05,700 --> 00:34:06,200 מדי. 762 00:34:06,200 --> 00:34:09,389 ובוודאי אם סיסמאות אינו תואם כמו בregister.php 763 00:34:09,389 --> 00:34:11,521 לpset שבע, אתה יכול לזהות את זה. 764 00:34:11,521 --> 00:34:13,770 אבל זה כאב ב צוואר שבעכשיו הם מבקשים 765 00:34:13,770 --> 00:34:15,510 שלנו ללכת את כל הדרך לשרת. 766 00:34:15,510 --> 00:34:17,053 המשתמש מודע לשגיאה. 767 00:34:17,053 --> 00:34:19,219 ולפחות אלא אם אתה משתמש כמה טכניקות מהודרות, 768 00:34:19,219 --> 00:34:20,929 עכשיו הם צריכים ללחוץ על החץ בחזרה. 769 00:34:20,929 --> 00:34:23,300 האם לא יהיה זה נחמד, כמו הרבה אתרי אינטרנט היום, 770 00:34:23,300 --> 00:34:26,190 אם היה לך מיידי יותר משוב, באופן מיידי? 771 00:34:26,190 --> 00:34:31,389 >> במילים אחרות, תנו לי ללכת לגרסה אחד, שהוא הולך להיות לא יפה. 772 00:34:31,389 --> 00:34:33,469 אבל יש בתכונה זו. 773 00:34:33,469 --> 00:34:39,590 מלאן, 12345, 123456789, לא הולך לבדוק את התיבה, רישום. 774 00:34:39,590 --> 00:34:41,330 סיסמאות לא תואמות. 775 00:34:41,330 --> 00:34:44,459 אז למרות מוקפץ זה ugly-- אנחנו יכולים להחליף את זה סופו של דבר 776 00:34:44,459 --> 00:34:47,000 עם משהו כמו המגף, שתראה בpset שבע 777 00:34:47,000 --> 00:34:50,239 הוא library-- פופולרי מאוד שעשיתי לזהות שהסיסמות לא תואמות. 778 00:34:50,239 --> 00:34:50,739 בסדר. 779 00:34:50,739 --> 00:34:52,530 ובכן, הרשה לי לתקן את זה כמשתמש. 780 00:34:52,530 --> 00:34:55,460 תן לי ללכת קדימה ואומרים 12345, 12345. 781 00:34:55,460 --> 00:34:57,780 עדיין לא בדק את ההסכם. 782 00:34:57,780 --> 00:35:00,210 עליך להסכים ל תנאים. 783 00:35:00,210 --> 00:35:01,760 אז למה? 784 00:35:01,760 --> 00:35:04,100 >> אם אנחנו כבר הנחנו שיש דרך, 785 00:35:04,100 --> 00:35:07,260 ואנחנו כבר נדרשו לך ב pset שבע לזהות שגיאה 786 00:35:07,260 --> 00:35:09,780 תנאים כמו זה בצד שרת, למה אני 787 00:35:09,780 --> 00:35:13,940 גם לטרוח עושה את זה ב- JavaScript? 788 00:35:13,940 --> 00:35:15,850 מה טיעון ב לטובת הוספה מה 789 00:35:15,850 --> 00:35:18,760 אתה עומד לראות כsome-- יש מורכבות נוספות. 790 00:35:18,760 --> 00:35:23,610 791 00:35:23,610 --> 00:35:25,930 >> אולי אין הפוך. 792 00:35:25,930 --> 00:35:26,924 מה זה יכול להיות? 793 00:35:26,924 --> 00:35:27,840 קהל: [לא ברור]. 794 00:35:27,840 --> 00:35:31,132 795 00:35:31,132 --> 00:35:32,340 DAVID מלאן: אה, מעניין. 796 00:35:32,340 --> 00:35:33,530 מעלליו פוטנציאל. 797 00:35:33,530 --> 00:35:37,540 כל כך בטוח, שאם אתה לא מטפל קלט משתמש שגוי שגדול, 798 00:35:37,540 --> 00:35:40,170 אולי זה כל יותר טוב אם זה אפילו לא מגיע לשרת שלך. 799 00:35:40,170 --> 00:35:42,160 הייתי לדחוף לשם ו למשל, אתה כנראה צריך 800 00:35:42,160 --> 00:35:43,284 לתקן את שתי בעיות אלה. 801 00:35:43,284 --> 00:35:44,140 אבל זה הוגן. 802 00:35:44,140 --> 00:35:44,710 מה עוד? 803 00:35:44,710 --> 00:35:45,626 >> קהל: [לא ברור]. 804 00:35:45,626 --> 00:35:47,970 805 00:35:47,970 --> 00:35:49,014 >> DAVID מלאן: כן. 806 00:35:49,014 --> 00:35:51,680 קוד זה, כפי שאמרנו לפני, הוא פירש בצד הלקוח. 807 00:35:51,680 --> 00:35:53,846 זה לא מטריד את השרת, מה שאומר שזה לא 808 00:35:53,846 --> 00:35:55,930 להשפיע עומס של השרת או יכולת. 809 00:35:55,930 --> 00:35:59,840 ועכשיו, לי קצת ישן, זה אין כל השפעה משמעותית 810 00:35:59,840 --> 00:36:01,970 כי יש לי משתמש אחד עכשיו. 811 00:36:01,970 --> 00:36:04,010 >> אבל אם אתה כל אתר אינטרנט של גודל הגון, 812 00:36:04,010 --> 00:36:07,400 במיוחד הגדול, כמו פייסבוק, ככל שאתה יכול לשמור על אנשים מ 813 00:36:07,400 --> 00:36:09,927 של השרת שלך טוב יותר כי שרת, כמובן, 814 00:36:09,927 --> 00:36:12,510 רק יש כמות סופית של זיכרון RAM, מספר סופי של ג'יגה-רץ, 815 00:36:12,510 --> 00:36:16,340 מספר סופי של דברים הוא יכול לעשות ליחידת הזמן. 816 00:36:16,340 --> 00:36:19,170 אז אם יש יותר אנשים ב העולם להכות השרת שלך, 817 00:36:19,170 --> 00:36:21,750 כניסה בטעות באופן שגוי, בדיוק כפי שגם אם אתה 818 00:36:21,750 --> 00:36:23,254 יכול לשמור על עומס שאת השרת שלך. 819 00:36:23,254 --> 00:36:25,420 בנוסף, במיוחד בנייד device-- אם אי פעם 820 00:36:25,420 --> 00:36:29,190 להיכנס לmy.harvard או netid של ייל או כמו, 821 00:36:29,190 --> 00:36:32,330 יש זה חביון עם הרבה אתרים כמו שלפיה לוקח, 822 00:36:32,330 --> 00:36:34,110 כמו, לעזאזל שני או שתיים לפעמים. 823 00:36:34,110 --> 00:36:37,979 ואז, אלוהים שלי, אם אתה mistype, אז אתה צריך להכות בחזרה ולבצע שוב את זה. 824 00:36:37,979 --> 00:36:40,520 אז יש חביון, במיוחד על חיבורי רשת איטיים יותר. 825 00:36:40,520 --> 00:36:43,030 אבל JavaScript, כי הוא פועל על הלקוח 826 00:36:43,030 --> 00:36:46,720 ולא צריך ללכת הלוך ושוב פני אינטרנט פוטנציאלי איטי 827 00:36:46,720 --> 00:36:49,780 חיבור, אתה יכול לקבל משוב כמעט מיידי. 828 00:36:49,780 --> 00:36:50,760 >> אז בואו נסתכל על זה. 829 00:36:50,760 --> 00:36:54,280 תן לי להיפתח וצורה-0 מסתכל על HTML כאן. 830 00:36:54,280 --> 00:36:56,040 ובואו רק לראות מה קורה. 831 00:36:56,040 --> 00:36:59,460 זוהי צורה ש פעולה היא register.php. 832 00:36:59,460 --> 00:37:01,530 אני רק באמצעות כך שאני יכול לראות את כתובת האתר. 833 00:37:01,530 --> 00:37:05,030 אבל לסיסמאות, היינו בוודאי רוצה כדי לשנות את זה לכתוב במציאות. 834 00:37:05,030 --> 00:37:06,910 הנה שדה קלט של טקסט סוג. 835 00:37:06,910 --> 00:37:09,050 הנה קלט אחר שדה של סיסמא סוג. 836 00:37:09,050 --> 00:37:13,150 הנה, אם אתה אף פעם לא ראית, קלט של תיבת סימון סוג. 837 00:37:13,150 --> 00:37:15,250 >> אבל אין JavaScript כאן בכלל. 838 00:37:15,250 --> 00:37:18,170 זה רק HTML ש הולך לregister.php. 839 00:37:18,170 --> 00:37:21,020 אבל בגרסה אחת, שבו אני התחלתי לקבל אותם חלונות קופצים, 840 00:37:21,020 --> 00:37:23,010 בואו לראות מה באמת קורה כאן. 841 00:37:23,010 --> 00:37:26,757 בגרסה אחת, מה ש אני הולך see-- אני 842 00:37:26,757 --> 00:37:29,340 חשבתי שאני יכול לעכב מספיק עם מספיק מילות, אבל נגמר לי. 843 00:37:29,340 --> 00:37:35,180 844 00:37:35,180 --> 00:37:38,590 >> בגרסת one-- שם אנחנו הולכים. 845 00:37:38,590 --> 00:37:43,180 בגרסה אחת, שים לב following-- ולא היישום הטוב ביותר, 846 00:37:43,180 --> 00:37:44,420 אבל זה הראשון שלי. 847 00:37:44,420 --> 00:37:47,680 שים לב שמתחת ל טופס, יש לי תג סקריפט. 848 00:37:47,680 --> 00:37:49,430 ותג תסריט אומר, היי, דפדפן, כאן 849 00:37:49,430 --> 00:37:52,340 מגיע קצת קוד ב, בדרך כלל, JavaScript. 850 00:37:52,340 --> 00:37:54,420 ועכשיו, שים לב מה אני עושה. 851 00:37:54,420 --> 00:37:59,070 על line-- אני בקושי יכול לקרוא it-- קו 32, שזה אומר, 852 00:37:59,070 --> 00:38:01,420 var form-- אז תן לי משתנה בשם צורה. 853 00:38:01,420 --> 00:38:05,049 ולאחר מכן לקבל document.getElementId של "רישום". 854 00:38:05,049 --> 00:38:05,590 מה זה? 855 00:38:05,590 --> 00:38:07,290 ובכן, הרשה לי להריץ אחורה עד כאן. 856 00:38:07,290 --> 00:38:11,510 והודעה, אה, אני נתתי את אלמנט הטופס רעיון שרירותי אבל תיאורים 857 00:38:11,510 --> 00:38:13,050 רישום. 858 00:38:13,050 --> 00:38:16,820 אז זה נותן לי משתנה ש מאפשר לי לתפוס את הצומת ש, 859 00:38:16,820 --> 00:38:19,580 מלבן שבעץ נקרא טופס. 860 00:38:19,580 --> 00:38:24,460 אמצעי form.onsubmit, היי דפדפן, הירשם מאזין אירוע 861 00:38:24,460 --> 00:38:25,470 בטופס זה. 862 00:38:25,470 --> 00:38:28,890 במילים אחרות, כאשר בטופס זה הוא הוגש, לבצע את הקוד הבא. 863 00:38:28,890 --> 00:38:30,810 זה לא צריך שם כי למה אתה צריך לדעת את השם? 864 00:38:30,810 --> 00:38:32,880 אתה רק צריך לדעת מה לבצע, ergo 865 00:38:32,880 --> 00:38:35,610 זה פונקציה אנונימית או למבדה. 866 00:38:35,610 --> 00:38:37,632 והפונקציה שהיא כל שורות אלה כאן. 867 00:38:37,632 --> 00:38:40,840 ועכשיו, אם להיות כנה, גם אם אולי לא שנכתב אי פעם JavaScript 868 00:38:40,840 --> 00:38:44,200 לפני, זה רק היגיון C ו- PHP. 869 00:38:44,200 --> 00:38:51,720 אז אם form.email.value == "" - כך שאם את שדה הדואר האלקטרוני ריק, 870 00:38:51,720 --> 00:38:54,980 לצעוק על המשתמש עם "אתה חייב לספק את כתובת הדוא"ל שלך. " 871 00:38:54,980 --> 00:38:58,980 אחר אם form.password.value היא צעקה ריקה למשתמש, 872 00:38:58,980 --> 00:39:00,400 "עליך לספק את הסיסמה שלך." 873 00:39:00,400 --> 00:39:04,240 >> עוד מעניין באופן הגיוני, אם form.password.value לא 874 00:39:04,240 --> 00:39:08,630 form.confirmation.value-- שווה מאיפה האישור בא? 875 00:39:08,630 --> 00:39:09,470 תן לי אחורה. 876 00:39:09,470 --> 00:39:12,870 ובכן, אני נקרא קלט זה שדה סיסמא כאן. 877 00:39:12,870 --> 00:39:15,180 ואני קראתי את זה כאן אישור. 878 00:39:15,180 --> 00:39:17,850 יכולתי קראתי לזה סיסמא שתיים או כל דבר אחר. 879 00:39:17,850 --> 00:39:20,560 אני רק בודק באופן הגיוני כי שני אלה הם אותם. 880 00:39:20,560 --> 00:39:25,760 Else-- מתברר שזה מר בול again-- ערך בוליאני, תיבת הסימון. 881 00:39:25,760 --> 00:39:29,810 אז אם אני אומר, קריאת point-- אם לא form.agreement.checked, 882 00:39:29,810 --> 00:39:31,820 לצעוק על המשתמש גם כן. 883 00:39:31,820 --> 00:39:34,470 >> אז תחביר זה שתראה הוא נפוץ מאוד ב- JavaScript, 884 00:39:34,470 --> 00:39:35,970 שבו יש לך סימון מקווקו זה. 885 00:39:35,970 --> 00:39:37,460 אתה מתחיל עם אובייקט כאן. 886 00:39:37,460 --> 00:39:41,430 אתה לצלול עמוק יותר ל רכוש כמו סיסמא. 887 00:39:41,430 --> 00:39:43,280 ואז אתה מקבל בשווי האמיתי שלו. 888 00:39:43,280 --> 00:39:45,830 ושוב, כאן הוא הקלט. 889 00:39:45,830 --> 00:39:47,310 הנה היא שם הסיסמה. 890 00:39:47,310 --> 00:39:50,860 והערך שלה כל מה ש אדם בעצם יש הקליד. 891 00:39:50,860 --> 00:39:53,610 >> אז בכל אלה מקרים, חזרתי שווא. 892 00:39:53,610 --> 00:39:55,800 אבל אם לא, אני חוזר אמיתי. 893 00:39:55,800 --> 00:39:58,030 אז עכשיו אנחנו רואים שימוש משכנע של מתי 894 00:39:58,030 --> 00:40:00,620 אתה תחזור כוזב ל להפסיק את מה שהמשתמש של עושה 895 00:40:00,620 --> 00:40:03,200 ולגרום לו או לה לבחור שוב או להקליד שוב. 896 00:40:03,200 --> 00:40:05,870 אחרת, אנחנו חוזרים אמיתיים. 897 00:40:05,870 --> 00:40:08,585 >> והרשה לי להציג אחד גרסה אחרת של זה פשוט 898 00:40:08,585 --> 00:40:13,140 זרע הבנה מסוימת ממנו. 899 00:40:13,140 --> 00:40:16,850 ובכן, בגרסה 2 של זה, צורה-2-- אני אעשה את זה בהינף יד. 900 00:40:16,850 --> 00:40:19,920 זה, למי שסקרן, גרסת jQuery, 901 00:40:19,920 --> 00:40:23,330 אלו מכם שאולי כדאי לי להשתכשך בספרייה מסוימת. 902 00:40:23,330 --> 00:40:25,145 אבל בואו start-- וכל שאלות? 903 00:40:25,145 --> 00:40:29,230 תן לי לעצור לרגע, כי זה היה מהיר והרבה. 904 00:40:29,230 --> 00:40:32,610 >> אבל הדבר נחמד כאן הוא שכל של הקוד הוא פחות או יותר את אותו הדבר. 905 00:40:32,610 --> 00:40:33,985 הדברים החדשים הוא מה הוא Dom? 906 00:40:33,985 --> 00:40:35,115 מה הם המלבנים האלה? 907 00:40:35,115 --> 00:40:35,990 מה הן בלוטות אלה? 908 00:40:35,990 --> 00:40:37,540 מה פונקציה אנונימית? 909 00:40:37,540 --> 00:40:38,830 מה מטפל באירועים? 910 00:40:38,830 --> 00:40:43,480 אך לשמחתם, רוב כי הוא פשוט מעגל מ, למשל, בשבוע שאפס. 911 00:40:43,480 --> 00:40:43,980 בסדר. 912 00:40:43,980 --> 00:40:46,070 אז משהו קצת יותר מעניין? 913 00:40:46,070 --> 00:40:49,340 ובכן, קודם כל, תן לי ללכת קדימה, לפתוח את Google Maps. 914 00:40:49,340 --> 00:40:53,360 ותשים לב של רגע, על שבריר השני, 915 00:40:53,360 --> 00:40:55,930 שים לב מה קורה כאשר אני לוחץ מספיק מהר. 916 00:40:55,930 --> 00:40:59,720 והחיבור הזה בהרווארד הוא כל כך מהר שאתה לא באמת שמתי לב לזה. 917 00:40:59,720 --> 00:41:04,469 אבל מה אתה סוג של סוג של לראות אם אני לוחץ ולגרור ממש מהר? 918 00:41:04,469 --> 00:41:07,010 לאלו מכם צופים באינטרנט, אם אתה להאט זה למהירות 0.5x, 919 00:41:07,010 --> 00:41:09,640 אתה יכול לראות את זה טוב יותר. 920 00:41:09,640 --> 00:41:13,550 >> מה היה קורה רק לפני שאני לוחץ וגררתי? 921 00:41:13,550 --> 00:41:15,900 תן לי לנסות כאן-- תנו לי לעשות משהו אחר, כמו 90210. 922 00:41:15,900 --> 00:41:17,550 בואו נלך רחוק. 923 00:41:17,550 --> 00:41:19,000 זה היה ממש מהר, מדי. 924 00:41:19,000 --> 00:41:22,460 מה דעתך על דיסני וורלד? 925 00:41:22,460 --> 00:41:23,190 הנה. 926 00:41:23,190 --> 00:41:23,690 אוקיי. 927 00:41:23,690 --> 00:41:26,030 מה ראית לשבריר שני? 928 00:41:26,030 --> 00:41:27,200 רק, כמו, ריבועים, נכון? 929 00:41:27,200 --> 00:41:28,930 מצייני מיקום לאריחים? 930 00:41:28,930 --> 00:41:30,270 >> ובכן, מה קורה כאן? 931 00:41:30,270 --> 00:41:35,410 Google Maps הוא דוגמא יפה של טכנולוגיה זו שנקראת AJAX. 932 00:41:35,410 --> 00:41:38,510 וזה המקום שבו נתחיל ל להשתמש בJavaScript בבמיוחד 933 00:41:38,510 --> 00:41:39,277 דרך מפתה. 934 00:41:39,277 --> 00:41:41,610 חזרה היום, לא היה האתר הזה שנקרא MapQuest. 935 00:41:41,610 --> 00:41:44,120 והייתי צריך לקחת צילום מסך של זה משנת 1990, 936 00:41:44,120 --> 00:41:45,820 שבו אם אתה רוצה לחפש כאן על המפה, 937 00:41:45,820 --> 00:41:48,590 היית, פשוטו כמשמעו, לחץ על חץ למעלה בחלק העליון שהראה לך 938 00:41:48,590 --> 00:41:49,870 רבוע שונה של המפה. 939 00:41:49,870 --> 00:41:51,790 אם אתה רוצה לעבור עזב, אתה לחץ חץ שהראה לך 940 00:41:51,790 --> 00:41:53,210 רבוע שונה של המפה. 941 00:41:53,210 --> 00:41:54,840 וכמה אתרים עדיין לעשות את זה היום. 942 00:41:54,840 --> 00:41:57,820 אבל גם MapQuest קיבל טוב יותר, כמו ב- Google Maps. 943 00:41:57,820 --> 00:42:01,880 >> במקום זאת, מה טוב יותר אלה ימים הוא אתרים המשתמשים ב- AJAX. 944 00:42:01,880 --> 00:42:04,510 AJAX-- הידוע גם ב Asynchronous JavaScript and XML, 945 00:42:04,510 --> 00:42:08,370 וזה רק דרך מפוארת של אומר טכנולוגיה או טכניקה ש 946 00:42:08,370 --> 00:42:14,200 מאפשר דפדפן באמצעות JavaScript כדי להפוך את בקשות HTTP נוספות 947 00:42:14,200 --> 00:42:16,390 לאחר הדף נטען. 948 00:42:16,390 --> 00:42:17,479 אז מה זה אומר? 949 00:42:17,479 --> 00:42:19,270 ובכן, זה יהיה סוג של מעצבן ב- Gmail 950 00:42:19,270 --> 00:42:21,103 אם בכל פעם שאתה רוצה כדי לבדוק את הדואר שלך, 951 00:42:21,103 --> 00:42:24,940 אתה ממש פגע בקרה-R או פיקוד-R או לחץ על לחצן רענן 952 00:42:24,940 --> 00:42:26,580 ואת כל הדף לעזאזל היה לטעון מחדש. 953 00:42:26,580 --> 00:42:26,800 נכון? 954 00:42:26,800 --> 00:42:28,460 זה היה יהבהב לבן כנראה לשני. 955 00:42:28,460 --> 00:42:30,043 היית רואה את סרגל ההתקדמות הטיפש. 956 00:42:30,043 --> 00:42:33,170 ורק כדי לראות אם יש לך חדש דואר, כל דף האינטרנט ואת כתובת האתר 957 00:42:33,170 --> 00:42:34,580 אתה בתצטרך לטעון מחדש. 958 00:42:34,580 --> 00:42:35,960 >> אבל זה לא מה שקורה ב- Gmail. 959 00:42:35,960 --> 00:42:36,459 נכון? 960 00:42:36,459 --> 00:42:40,300 כאשר אתה מקבל הודעת דוא"ל חדשה ב Gmail, מה שקורה על המסך? 961 00:42:40,300 --> 00:42:41,480 זה רק מראה עד, נכון? 962 00:42:41,480 --> 00:42:44,280 זה פשוט קסם מופיע כשורה חדשה בטבלה. 963 00:42:44,280 --> 00:42:47,030 זה כרוך למעשה כמות הגונה של מורכבות. 964 00:42:47,030 --> 00:42:51,892 למעשה, אם אתה חושב על העץ הזה, שלמרות שהוא אחד פשוט כאן, 965 00:42:51,892 --> 00:42:54,100 Gmail-- והייתי צריך להסתכל בקוד להיות sure-- 966 00:42:54,100 --> 00:42:58,710 כנראה יש טבלת HTML או אולי רשימה לא מסודרת שזה הופך 967 00:42:58,710 --> 00:43:01,060 כל אחד ממייל תיבות הדואר הנכנס שלך כ. 968 00:43:01,060 --> 00:43:04,050 >> ולכן אם אתה יכול לדמיין את זה שם הוא עץ בזיכרון כשאתה 969 00:43:04,050 --> 00:43:09,050 משתמש ב- Gmail שנראית סוג של סוג של כמו זה, כאשר גוגל מבינה, אוו, 970 00:43:09,050 --> 00:43:12,770 יש לך דוא"ל חדש, זה לא רוצה לבנות מחדש את כל העץ. 971 00:43:12,770 --> 00:43:16,430 במקום זאת, היא רוצה למצוא את הצומת ב העץ שמייצג את תיבת הדואר הנכנס שלך 972 00:43:16,430 --> 00:43:18,580 ופשוט להכניס צומת חדשה. 973 00:43:18,580 --> 00:43:24,640 >> אז דומה מאוד לpset חמש, שבו אתה נאלץ להכניס בלוטות לשולחן חשיש, 974 00:43:24,640 --> 00:43:28,410 באופן דומה עושה גוגל, באמצעות קוד JavaScript שכתב, 975 00:43:28,410 --> 00:43:31,890 חוצה העץ הזה, להבין איפה הוא שחלק תיבת הדואר הנכנס של החלון, 976 00:43:31,890 --> 00:43:33,440 ולאחר מכן להכניס שורה חדשה. 977 00:43:33,440 --> 00:43:37,460 ושורה חדשה רק אומרת אחד או יותר צמתים חדשים בעץ. 978 00:43:37,460 --> 00:43:41,340 >> וכך AJAX הוא טכניקה זו המאפשר לבדיוק את זה. 979 00:43:41,340 --> 00:43:44,440 לאחר שבקרת בכתובת אתר, עם זאת מטורף זמן זה הוא, 980 00:43:44,440 --> 00:43:46,472 וברגע שיש הדף נטען, אתה עדיין יכול 981 00:43:46,472 --> 00:43:48,430 לתפוס יותר נתונים מ internet-- בין אם זה 982 00:43:48,430 --> 00:43:52,460 דוא"ל או אריחים של map-- לתפוס אותו מאחורי הקלעים 983 00:43:52,460 --> 00:43:55,290 ולאחר מכן להכניס אותו לתוך הדף כך שהאדם לא ממש 984 00:43:55,290 --> 00:43:56,910 צריך לחכות לזה. 985 00:43:56,910 --> 00:43:58,980 >> פייסבוק Messenger עובד באותה צורה. 986 00:43:58,980 --> 00:44:01,562 כל מספר של websites-- האחר אה, בעצם, גם זה. 987 00:44:01,562 --> 00:44:04,270 אני מתכוון, זה, בכנות, סוג של מעצבן כוללים בימים אלה. 988 00:44:04,270 --> 00:44:07,500 אם אני מתחיל בחיפוש אחר cats-- זה הוא סוג של חווית משתמש נוראה. 989 00:44:07,500 --> 00:44:08,990 זה פשוט מתחיל מחפש אותי. 990 00:44:08,990 --> 00:44:10,050 ובכן מה הוא עושה? 991 00:44:10,050 --> 00:44:12,920 כתובת האתר לא באמת השתנתה מאז שהתחלתי להקליד. 992 00:44:12,920 --> 00:44:17,330 אבל מה קורה מעבר ל wire-- אישור, הממ מעניין. 993 00:44:17,330 --> 00:44:20,470 מה קורה מעבר ל חוט כאן רק מקבל מוזר. 994 00:44:20,470 --> 00:44:21,090 >> אוקיי. 995 00:44:21,090 --> 00:44:24,670 אז תן לי ללכת קדימה ולבדוק אלמנט וללכת לכרטיסיית הרשת 996 00:44:24,670 --> 00:44:27,040 ולנסות לעשות את זה טכני ופחות על חתולים. 997 00:44:27,040 --> 00:44:32,595 כפי שאני מקליד, פשוטו כמשמעו, חתולים and-- מה קורה 998 00:44:32,595 --> 00:44:37,710 per-- אני לא הולך ללחוץ את זה. 999 00:44:37,710 --> 00:44:38,210 בסדר. 1000 00:44:38,210 --> 00:44:44,280 אז כאן למטה, מה שקורה בכל זמן שאני מקליד אופי, כנראה? 1001 00:44:44,280 --> 00:44:45,000 כמו, רמה נמוכה? 1002 00:44:45,000 --> 00:44:47,860 מה קורה עם כל אחד מאלה תווים אני מקליד במקלדת שלי? 1003 00:44:47,860 --> 00:44:48,359 כן? 1004 00:44:48,359 --> 00:44:50,950 קהל: [לא ברור]. 1005 00:44:50,950 --> 00:44:52,340 >> DAVID מלאן: בדיוק. 1006 00:44:52,340 --> 00:44:55,600 כל אחת מהדמויות אלה הוא הולך לגוגל, אחד בכל פעם. 1007 00:44:55,600 --> 00:44:58,490 הם בונים את מחרוזת על השרת שלהם שמייצג 1008 00:44:58,490 --> 00:44:59,936 כל מה שהקלדתי בעד כה. 1009 00:44:59,936 --> 00:45:01,810 וכל פעם שאני מקליד דמות אחרת, שהם 1010 00:45:01,810 --> 00:45:04,530 להשתמש הרוטב הסודי שלהם חיפוש אלגוריתם ולהבין, 1011 00:45:04,530 --> 00:45:07,370 הוא מתכוון בעמוד זה חתול או בדף זה חתול או כמו? 1012 00:45:07,370 --> 00:45:10,620 אז במובן מסוים, זה מספק לי חוויה טובה יותר שבאני אפילו לא 1013 00:45:10,620 --> 00:45:11,860 צריך להשלים המחשבה שלי. 1014 00:45:11,860 --> 00:45:14,440 ואכן, זה שימושי דבר, השלמה אוטומטית באופן כללי. 1015 00:45:14,440 --> 00:45:17,690 אם האלגוריתמים שלהם הם מספיק טובים ואם החיפושים שלי הם ברורים מספיק, 1016 00:45:17,690 --> 00:45:19,300 אני לא צריך להקליד את כל המילה. 1017 00:45:19,300 --> 00:45:22,110 הם הולכים להגיד לי מה זה הוא אני בעצם מחפש. 1018 00:45:22,110 --> 00:45:25,940 אז מה גוגל מכנה מיידית חיפוש פשוט באמצעות AJAX, 1019 00:45:25,940 --> 00:45:30,820 באמצעות קוד המאפשר להם לבקש תכנים נוספים באמצעות דפדפן אינטרנט 1020 00:45:30,820 --> 00:45:34,026 מאחורי הקלעים באמצעות זה שפה חדשה, JavaScript. 1021 00:45:34,026 --> 00:45:35,400 אז יש לנו זוג עזבו דקות. 1022 00:45:35,400 --> 00:45:37,710 ותן לי לקרוא את חבר שלי קולטון לבמה, 1023 00:45:37,710 --> 00:45:40,090 שכן הוא נראה הפעם האחרונה במיוחד כיף 1024 00:45:40,090 --> 00:45:42,290 להציג טכנולוגיה שכמה מכם 1025 00:45:42,290 --> 00:45:44,769 הביע עניין לפרויקטי גמר. 1026 00:45:44,769 --> 00:45:47,310 אנחנו חשבנו שזה יהיה כיף להביא עד מתנדב, אם כי, היום 1027 00:45:47,310 --> 00:45:50,074 כדי להראות לך בנוסף ל זה שמאפשר אתם-- כן, 1028 00:45:50,074 --> 00:45:50,990 ראיתי את זה מראשון. 1029 00:45:50,990 --> 00:45:52,900 בואו למעלה. 1030 00:45:52,900 --> 00:45:53,560 נעשה בצורה טובה מאוד. 1031 00:45:53,560 --> 00:45:55,035 עבודה טובה. 1032 00:45:55,035 --> 00:45:57,410 אני הולך לפרויקט זה ב המסך ברגע. 1033 00:45:57,410 --> 00:45:58,150 מה השם שלך לכולם? 1034 00:45:58,150 --> 00:45:59,180 >> EFA: אני EFA. 1035 00:45:59,180 --> 00:45:59,410 >> DAVID מלאן: Etha? 1036 00:45:59,410 --> 00:45:59,785 >> EFA: EFA. 1037 00:45:59,785 --> 00:46:00,160 >> DAVID מלאן: EFA? 1038 00:46:00,160 --> 00:46:00,730 >> EFA: כן. 1039 00:46:00,730 --> 00:46:01,250 >> DAVID מלאן: נחמד לראות אותך. 1040 00:46:01,250 --> 00:46:01,600 בסדר. 1041 00:46:01,600 --> 00:46:02,590 תן לי לקבל את זה מוכן. 1042 00:46:02,590 --> 00:46:04,423 בואו אל אמצע עם קולטון כאן. 1043 00:46:04,423 --> 00:46:07,050 מה יש קולטון בידיו היום הוא שלט רחוק. 1044 00:46:07,050 --> 00:46:10,440 אז לא רק לעמוד שם ב עולם תלת-ממדי מסתכל מסביב 1045 00:46:10,440 --> 00:46:14,080 כקולטון עשה, עכשיו EFA יכול למעשה מסתובבים על ידי עולה, 1046 00:46:14,080 --> 00:46:16,689 למטה, שמאלה וימינה כמו נינטנדו או ה- Xbox בקר. 1047 00:46:16,689 --> 00:46:18,230 EFA: אני הולך ליפול מהבמה. 1048 00:46:18,230 --> 00:46:20,500 DAVID מלאן: תעשה זאת לעמוד בערך כאן. 1049 00:46:20,500 --> 00:46:21,991 אבל זה סיכון. 1050 00:46:21,991 --> 00:46:22,490 אוקיי. 1051 00:46:22,490 --> 00:46:25,690 אז קדימה, לשים אותם על. 1052 00:46:25,690 --> 00:46:29,315 תן לי ללכת קדימה ו לעבור למסך כאן. 1053 00:46:29,315 --> 00:46:30,670 תן לי לעמעם את האורות. 1054 00:46:30,670 --> 00:46:32,780 וקולטון, תן לי הגיע לעמוד לידך. 1055 00:46:32,780 --> 00:46:35,520 >> האם אתה רוצה להסביר כאן עם המיקרופון מה שאנחנו עושים? 1056 00:46:35,520 --> 00:46:36,380 הנה לך. 1057 00:46:36,380 --> 00:46:37,280 >> COLTON: בטח. 1058 00:46:37,280 --> 00:46:39,980 אז עכשיו אנחנו טוען את הצוהר, 1059 00:46:39,980 --> 00:46:43,070 אני מניח שoperating-- לא פועל מערכת, אבל התכנית הראשית, שבו 1060 00:46:43,070 --> 00:46:46,630 אתה יכול לגשת לכל המשחקים ו יישומים שנמצאים בספרייה שלך. 1061 00:46:46,630 --> 00:46:50,060 אז עכשיו, זה צריך לומר הקש על משטח המגע כדי להתחיל. 1062 00:46:50,060 --> 00:46:53,430 משטח מגע הולך להיות ב צד ימני של האוזניות. 1063 00:46:53,430 --> 00:46:54,569 אז קדימה, tap-- 1064 00:46:54,569 --> 00:46:55,110 EFA: הו, גבר. 1065 00:46:55,110 --> 00:46:56,443 DAVID מלאן: כן, יש לך ללכת. 1066 00:46:56,443 --> 00:47:00,340 1067 00:47:00,340 --> 00:47:02,460 איכות EFA רואה היא באיכות הרבה יותר גבוהה. 1068 00:47:02,460 --> 00:47:03,831 זה רק גישה לאינטרנט אלחוטי כאן. 1069 00:47:03,831 --> 00:47:05,580 COLTON: אז מה אתה הולך רוצה לעשות 1070 00:47:05,580 --> 00:47:08,350 הוא מסתכל לכיוון החלק העליון שלו ימני של המסך. 1071 00:47:08,350 --> 00:47:10,420 כן, משחק שעל עצם הזכות העליונה. 1072 00:47:10,420 --> 00:47:14,780 ואז כשאתה בוחר זה, הקש על משטח המגע שוב. 1073 00:47:14,780 --> 00:47:17,010 אני חושב Dreadhalls. 1074 00:47:17,010 --> 00:47:20,820 ואז כאן הוא זה-- כאן, בואו לי להחזיק את המשקפיים שלך בשבילך. 1075 00:47:20,820 --> 00:47:24,420 1076 00:47:24,420 --> 00:47:25,790 >> אז אני פשוט נתתי לו בקר. 1077 00:47:25,790 --> 00:47:28,886 אז עכשיו הוא יכול לשלוט במשחק. 1078 00:47:28,886 --> 00:47:30,510 הוא יכול להסתובב ודברים כאלה. 1079 00:47:30,510 --> 00:47:31,968 אז קדימה ולהסתכל למעלה לפסגה. 1080 00:47:31,968 --> 00:47:33,640 אתה צריך לראות משחק חדש. 1081 00:47:33,640 --> 00:47:36,310 אז קדימה, אתה יכול לעשות את זה. 1082 00:47:36,310 --> 00:47:39,320 עכשיו, אתה אמור להיות מסוגל לשלוט ב את עצמך עם בקר, 1083 00:47:39,320 --> 00:47:43,860 כמו גם, ברגע ש המשחק טוען כאן. 1084 00:47:43,860 --> 00:47:46,356 זה עלול להיות קצת מפחיד. 1085 00:47:46,356 --> 00:47:47,300 >> EFA: עכשיו אתה אומר לי. 1086 00:47:47,300 --> 00:47:50,132 אוקיי. 1087 00:47:50,132 --> 00:47:51,080 >> COLTON: בסדר. 1088 00:47:51,080 --> 00:47:52,650 אז לוודא שאתה יכול להסתובב. 1089 00:47:52,650 --> 00:47:52,750 אוקיי. 1090 00:47:52,750 --> 00:47:53,583 אתה יכול להסתובב. 1091 00:47:53,583 --> 00:47:54,300 ללא רבב. 1092 00:47:54,300 --> 00:47:56,470 אז אם אתה מסתכל למטה, יש לך מפה. 1093 00:47:56,470 --> 00:47:58,170 מפה מראה לך איפה אתה נמצא. 1094 00:47:58,170 --> 00:47:59,720 אתה יכול להסתכל סביב החדר. 1095 00:47:59,720 --> 00:48:01,440 אתה יכול להסתובב לחלוטין. 1096 00:48:01,440 --> 00:48:02,128 כן, בדיוק. 1097 00:48:02,128 --> 00:48:02,627 תסתובב. 1098 00:48:02,627 --> 00:48:05,370 1099 00:48:05,370 --> 00:48:07,125 >> אז להסתכל לשמאלך. 1100 00:48:07,125 --> 00:48:09,875 אני חושב שיש משהו שאתה יכול להרים על חבית בחדר. 1101 00:48:09,875 --> 00:48:11,709 >> EFA: כיצד אוכל לקבל מפת מהדרך? 1102 00:48:11,709 --> 00:48:12,375 COLTON: חפש. 1103 00:48:12,375 --> 00:48:12,980 רק להסתכל למעלה. 1104 00:48:12,980 --> 00:48:13,480 בסדר. 1105 00:48:13,480 --> 00:48:13,765 הנה לך. 1106 00:48:13,765 --> 00:48:15,181 עכשיו קדימה ופשוט להסתובב. 1107 00:48:15,181 --> 00:48:21,460 1108 00:48:21,460 --> 00:48:24,620 אז להסתכל רחוק יותר לשמאלך. 1109 00:48:24,620 --> 00:48:25,530 להמשיך לנוע שמאלה. 1110 00:48:25,530 --> 00:48:26,960 תמשיך לחפש עזב. 1111 00:48:26,960 --> 00:48:27,541 תמשיך ללכת. 1112 00:48:27,541 --> 00:48:28,040 כן. 1113 00:48:28,040 --> 00:48:28,720 >> EFA: הו, דרך ש. 1114 00:48:28,720 --> 00:48:29,261 >> COLTON: כן. 1115 00:48:29,261 --> 00:48:30,999 ללכת לכיוון זה עם בקר. 1116 00:48:30,999 --> 00:48:31,540 הנה לך. 1117 00:48:31,540 --> 00:48:32,790 עכשיו זה צריך לומר להרים אותו. 1118 00:48:32,790 --> 00:48:33,360 הנה לך. 1119 00:48:33,360 --> 00:48:34,290 הרם את זה. 1120 00:48:34,290 --> 00:48:35,550 בסדר. 1121 00:48:35,550 --> 00:48:38,286 עכשיו, בואו נצא מהחדר הזה. 1122 00:48:38,286 --> 00:48:42,209 קדימה, ללכת לדלת ש. 1123 00:48:42,209 --> 00:48:45,000 אז אתה הולך hold-- זה אומר החזק את לחצן כדי לאלץ אותו פתוח. 1124 00:48:45,000 --> 00:48:46,333 אז קדימה והחזק את הכפתור. 1125 00:48:46,333 --> 00:48:48,250 כן, מה שאילץ אותו לפתוח. 1126 00:48:48,250 --> 00:48:48,750 בסדר. 1127 00:48:48,750 --> 00:48:49,410 עבודה טובה. 1128 00:48:49,410 --> 00:48:50,826 עכשיו אנחנו יוצאים מהחדר. 1129 00:48:50,826 --> 00:48:56,970 1130 00:48:56,970 --> 00:49:01,366 אז אני הולך לעזוב את שאר לך ולראות מה אתה מוצא החוצה. 1131 00:49:01,366 --> 00:49:02,865 EFA: אני לא הולך בחדר החשוך. 1132 00:49:02,865 --> 00:49:07,315 1133 00:49:07,315 --> 00:49:07,815 הו חכה. 1134 00:49:07,815 --> 00:49:09,314 עכשיו אני צריך ללכת במסדרון החשוך? 1135 00:49:09,314 --> 00:49:10,785 אישור, אני חוזר [לא ברור]. 1136 00:49:10,785 --> 00:49:15,520 1137 00:49:15,520 --> 00:49:16,270 COLTON: בסדר. 1138 00:49:16,270 --> 00:49:17,560 עוד קצת פריטים להרים. 1139 00:49:17,560 --> 00:49:19,370 נראה כמו כמה מטבעות. 1140 00:49:19,370 --> 00:49:22,242 זה בחירת מנעול. 1141 00:49:22,242 --> 00:49:24,200 אז אם אתה מוצא נעול דלת, אתה יכול להשתמש בזה. 1142 00:49:24,200 --> 00:49:27,755 1143 00:49:27,755 --> 00:49:28,380 אתה מפחד? 1144 00:49:28,380 --> 00:49:29,371 >> EFA: עדיין לא. 1145 00:49:29,371 --> 00:49:29,871 COLTON: אישור. 1146 00:49:29,871 --> 00:49:34,850 1147 00:49:34,850 --> 00:49:35,497 >> Pretend-- כן. 1148 00:49:35,497 --> 00:49:37,330 רק להעמיד פנים שאתה למעשה עומד שם. 1149 00:49:37,330 --> 00:49:39,580 ואם אתה פונה around-- אתה חייב להתרגל לזה. 1150 00:49:39,580 --> 00:49:40,752 אבל זה הגיוני. 1151 00:49:40,752 --> 00:49:43,960 DAVID מלאן: ובעוד EFA ממשיך לשחק, מאז שאנחנו יכולים לעשות את זה כל היום, 1152 00:49:43,960 --> 00:49:45,381 כולנו יכולים קצות האצבעות כאן. 1153 00:49:45,381 --> 00:49:48,130 אבל יש לנו שני זוגות אחרים, אם אתה רוצה לבוא ולשחק. 1154 00:49:48,130 --> 00:49:49,980 אחרת, אנו רואים אתה הבא ביום רביעי. 1155 00:49:49,980 --> 00:49:51,354 תודה למתנדבים שלנו היום. 1156 00:49:51,354 --> 00:49:52,101 [מחיאות כפות] 1157 00:49:52,101 --> 00:49:54,506 1158 00:49:54,506 --> 00:49:57,392 >> [MUSIC - "נושא סיינפלד"] 1159 00:49:57,392 --> 00:49:58,222 1160 00:49:58,222 --> 00:50:00,180 1 מרצה: ובכן, אני לשים PL חדש על הר. 1161 00:50:00,180 --> 00:50:01,800 אני רק שיניתי את OLPF-- 1162 00:50:01,800 --> 00:50:03,980 >> SPEAKER 2: אז מה בדיוק אתה עושה? 1163 00:50:03,980 --> 00:50:07,063 >> 1 מרצה: ובכן, כל אחד מthese-- כאן, אני אראה לך את זה כאן. 1164 00:50:07,063 --> 00:50:08,690 אתה יכול לראות את זה כאן. 1165 00:50:08,690 --> 00:50:09,510 >> SPEAKER 3: אני חושב שאני טוב עם אלה. 1166 00:50:09,510 --> 00:50:09,933 אתה רוצה עוד? 1167 00:50:09,933 --> 00:50:11,325 >> 4 SPEAKER: לא, אני טוב. [לא ברור]. 1168 00:50:11,325 --> 00:50:12,200 >> SPEAKER 3: לא, [לא ברור]. 1169 00:50:12,200 --> 00:50:12,700 יש לי כמה. 1170 00:50:12,700 --> 00:50:21,165 1171 00:50:21,165 --> 00:50:22,290 SPEAKER 1: צבע שונה. 1172 00:50:22,290 --> 00:50:22,890 SPEAKER 2: אישור. 1173 00:50:22,890 --> 00:50:26,690 SPEAKER 1: אז סופו של דבר מה ש עושה זה מתאים את הצבע של--