1 00:00:00,000 --> 00:00:08,070 2 00:00:08,070 --> 00:00:10,430 >> R.J. 키노 :의 단지 시작하자. 3 00:00:10,430 --> 00:00:12,310 그래서이 퀴즈 1. 4 00:00:12,310 --> 00:00:14,890 여기에 몇 가지 높은 수준의 정보입니다. 5 00:00:14,890 --> 00:00:19,915 퀴즈에 대한 소개 페이지는에있다 URL, 더 이상 CS50.net, 비록 없다는 것을 6 00:00:19,915 --> 00:00:21,080 여전히 작동합니다. 7 00:00:21,080 --> 00:00:26,920 그것은 CS50.harvard.edu/quizzes/2013/1입니다. 8 00:00:26,920 --> 00:00:31,070 그것은 당신을 말하고, 정보 페이지에 큰의 언제, 어디서, 즉 다음 주 수요일 9 00:00:31,070 --> 00:00:32,100 객실의 무리. 10 00:00:32,100 --> 00:00:36,120 그리고 다음 주 수요일로, 지금부터 이일 의미한다. 11 00:00:36,120 --> 00:00:37,890 이 모든 정보가 있습니다. 12 00:00:37,890 --> 00:00:39,110 그러나 누적됩니다. 13 00:00:39,110 --> 00:00:43,790 >> 상반기에서 그래서 모든 올해는 퀴즈에 잠재적으로 14 00:00:43,790 --> 00:00:50,780 당신은 정말 진보 할 수 없기 때문에, C에있는 물건이없는 상태 경우와 15 00:00:50,780 --> 00:00:51,920 루프와 같이하십시오. 16 00:00:51,920 --> 00:00:55,580 그러나에 중점을두고있을 것 퀴즈 0부터 적용 소재, 17 00:00:55,580 --> 00:00:59,570 구조체와 파일로 시작 나는 / O 그것은 일반적으로 더 많은 18 00:00:59,570 --> 00:01:01,620 퀴즈가 0보다 도전. 19 00:01:01,620 --> 00:01:03,870 평균 점수는 일반적으로 낮다. 20 00:01:03,870 --> 00:01:05,980 열심히 공부. 21 00:01:05,980 --> 00:01:09,340 >> 당신이 공부하는 동안, 사용하십시오 CS50/discuss 질문을 게시 22 00:01:09,340 --> 00:01:10,830 다른 사람의 질문을 읽어보십시오. 23 00:01:10,830 --> 00:01:13,550 그래서 당신은 질문이없는 경우, 로그인 읽기 24 00:01:13,550 --> 00:01:14,580 친구의 질문입니다. 25 00:01:14,580 --> 00:01:16,560 아마도 그들은 좋은 질문입니다. 26 00:01:16,560 --> 00:01:17,730 그리고 연습 퀴즈를. 27 00:01:17,730 --> 00:01:20,750 우리는 대한 퀴즈를주는 있었어요 지금은 7 ~ 8 년입니다. 28 00:01:20,750 --> 00:01:22,180 그들은 온라인으로 모든입니다. 29 00:01:22,180 --> 00:01:25,540 미래의 질문과 유사하다 오래된 질문에. 30 00:01:25,540 --> 00:01:26,550 즉, 우리가 그들을 만드는 방법입니다. 31 00:01:26,550 --> 00:01:27,740 >> 퀴즈는 아직 존재하지 않습니다. 32 00:01:27,740 --> 00:01:28,670 우리 중 아무도 그것을 볼 수 없다. 33 00:01:28,670 --> 00:01:32,496 그러나 모양을 이전 퀴즈. 34 00:01:32,496 --> 00:01:36,500 이 리뷰 세션의 경우, 이것은 아니다 주제의 완전한 목록. 35 00:01:36,500 --> 00:01:40,740 당신은 다음이 참석 할 수 없으며, 퀴즈 완벽하게 준비해야합니다. 36 00:01:40,740 --> 00:01:43,330 그렇지 않으면되지 않을 것 퀴즈의 많은. 37 00:01:43,330 --> 00:01:46,270 그리고 이것은 반드시도 당신이에 대해 알아야 할 모든 38 00:01:46,270 --> 00:01:46,970 화제가 없습니다. 39 00:01:46,970 --> 00:01:50,520 그것은 것들에 노출 의미하는 것 우리가 다룬, 당신을 생각 나게 우리 40 00:01:50,520 --> 00:01:53,070 적용 및 방법 이는 우리가 덮여있다. 41 00:01:53,070 --> 00:01:57,030 하지만 당신은 더 가야 할 것이다 깊은 당신은 다시 한 번 확인하고 공부를 할 때 42 00:01:57,030 --> 00:02:00,230 당신은 주어진에 대해 모든 걸 알고 당신이 기입 한 주제에 그 43 00:02:00,230 --> 00:02:03,320 있던 모든 코너 강의에 덮여. 44 00:02:03,320 --> 00:02:07,980 >> 퀴즈 노트로 이동하는 당신에게 필기 노트, 시계 강좌 동영상. 45 00:02:07,980 --> 00:02:10,155 즉, 당신이했습니다 만들 수있는 좋은 방법 모든 기지 덮여. 46 00:02:10,155 --> 00:02:12,670 47 00:02:12,670 --> 00:02:17,340 나는이 만든 때, 시작하기 슬라이드, 내가 찾은 곳 넣어 시도 48 00:02:17,340 --> 00:02:18,350 정보. 49 00:02:18,350 --> 00:02:22,890 그래서 파일에 대한 I / O, 예를 들어, 7 주, 월요일 강의 및 게시 50 00:02:22,890 --> 00:02:27,960 제 6과 문제 설정 모두가 파일에 대한 자세한 내용은 I / O 내가했던 51 00:02:27,960 --> 00:02:28,840 이 모든 주제에 대한. 52 00:02:28,840 --> 00:02:33,010 그래서 그 제목 슬라이드는 할 수있다 당신에게 도움이 될 수. 53 00:02:33,010 --> 00:02:38,950 >> 그래서 여기에 우리가 파일 I / O를 가지고 에 기억 문제는 5 세트, 우리는 fclose 함수, fopen을 사용 54 00:02:38,950 --> 00:02:41,210 fwrite는, FREAD 및 fseek는. 55 00:02:41,210 --> 00:02:48,090 의 30ish JPEG 파일을 복구 및 데 크기를 조정하고 엉망으로 한 56 00:02:48,090 --> 00:02:50,320 비트 맵, 당신은 꽤 잘 알고 있어야합니다 이러한 기능을 가진 57 00:02:50,320 --> 00:02:51,830 그들이 어떻게 작동합니다. 58 00:02:51,830 --> 00:02:54,420 당신은 더 이상 익숙하지 않으면 확실히를 검토합니다. 59 00:02:54,420 --> 00:02:56,860 그리고 당신이 이해 한 것을 다른 인수는, 60 00:02:56,860 --> 00:02:58,260 그들이 사용 할 때. 61 00:02:58,260 --> 00:03:03,620 >> 그러나 일반적인 파일 관련 버그 당신에 대해 질문 할 수있다 - 62 00:03:03,620 --> 00:03:07,270 글쎄, 당신은 잊어 버린 경우 확인하는 경우 당신이 가기 전에 fopen을 실제로 일 63 00:03:07,270 --> 00:03:08,350 파일을 수정합니다. 64 00:03:08,350 --> 00:03:09,760 즉, 나쁜 될 수 있습니다. 65 00:03:09,760 --> 00:03:13,560 당신은 파일을 FCLOSE하는 잊어 버린 경우 당신이 fopened으니, 그 비슷 66 00:03:13,560 --> 00:03:14,400 메모리 누수. 67 00:03:14,400 --> 00:03:15,980 그건 아주 나쁜입니다. 68 00:03:15,980 --> 00:03:18,670 그리고 당신이 나있는 경우에 확인 잊고 전에 파일의 끝에 도달 69 00:03:18,670 --> 00:03:19,790 에 쓰기 시작합니다. 70 00:03:19,790 --> 00:03:22,320 >> 당신이 말한다면,이 봐, 난에있어 파일의 끝에. 71 00:03:22,320 --> 00:03:23,750 나에게 더 많은 바이트를 제공합니다. 72 00:03:23,750 --> 00:03:27,370 글쎄, 그건 아마에 없을거야 당신이 기대하는 방법을 작동합니다. 73 00:03:27,370 --> 00:03:30,930 즉, 파일 I / O를 위해 정말이야 우리는 그것의 너무 많이했기 때문에 74 00:03:30,930 --> 00:03:32,300 문제는 설정으로. 75 00:03:32,300 --> 00:03:36,000 당신이 이해한다면 어떤 일이 벌어지고 문제 세트 5, bitmats 기억 76 00:03:36,000 --> 00:03:40,090 그리고 JPEG 파일은, 당신은 아마 야 I / O 파일에 설정 그 비트의 경우 77 00:03:40,090 --> 00:03:44,770 퍼지, 확실히 그 문제를 검토 세트와 연관​​된 재료. 78 00:03:44,770 --> 00:03:51,110 >> 구조체는에 있었다 주제 있었다 퀴즈 퀴즈 0과 1 사이의 라인. 79 00:03:51,110 --> 00:03:53,090 아주 퀴즈 0의 상처를하지 않았다. 80 00:03:53,090 --> 00:03:57,040 그래서 그들은 확실히에있을거야 퀴즈 1, 7 주 월요일. 81 00:03:57,040 --> 00:03:58,150 구조체는 무엇입니까? 82 00:03:58,150 --> 00:04:00,250 여기에서 우리는 구조체를 보여줍니다. 83 00:04:00,250 --> 00:04:03,140 그것은 새로운 유형처럼. 84 00:04:03,140 --> 00:04:07,940 그것은 용기처럼 여러 필드. 85 00:04:07,940 --> 00:04:12,970 >> 이 경우, 우리는 구조체를 선언했습니다 두 개의 필드가 학생 - 86 00:04:12,970 --> 00:04:17,750 우리가 호출하는 문자열 이름과 우리가 나이를 호출하고 INT. 87 00:04:17,750 --> 00:04:21,450 그래서 학생들이 주위에 전달하거나 I 때 학생들을 수정, 내가 할 수 있습니다 88 00:04:21,450 --> 00:04:24,430 자신의 이름과 자신의 나이에 액세스 할 수 있습니다. 89 00:04:24,430 --> 00:04:26,670 의 그 몇 가지 코드를 살펴 보자. 90 00:04:26,670 --> 00:04:29,090 여기에서 우리는 내가 선언 한 것을 볼 학생의, 단지 등 91 00:04:29,090 --> 00:04:30,300 어떤 변수를 선언 - 92 00:04:30,300 --> 00:04:32,430 INT의 X, INT의 Y, 등등. 93 00:04:32,430 --> 00:04:34,180 >> 여기에 학생들입니다. 94 00:04:34,180 --> 00:04:37,370 그는 자신의 분야에서 아무것도없이 시작합니다. 95 00:04:37,370 --> 00:04:38,240 그래서 그들을 설정할 수 있습니다. 96 00:04:38,240 --> 00:04:40,681 당신은 점이있는 구조체의 필드를 설정합니다. 97 00:04:40,681 --> 00:04:43,780 그래서 나는 여기에서 그 s.name = RJ 말했다했습니다. 98 00:04:43,780 --> 00:04:46,470 그리고 = 21 s.age. 99 00:04:46,470 --> 00:04:48,500 또한 필드를 업데이트 할 수 있습니다 당신은 업데이트 할 것 같은 방법으로 100 00:04:48,500 --> 00:04:49,550 변수의 값. 101 00:04:49,550 --> 00:04:53,270 그래서와 RJ에서 내 이름을 변경하려면 R.J.에 마침표가 없습니다 철자 102 00:04:53,270 --> 00:04:54,540 올바른 방법. 103 00:04:54,540 --> 00:04:58,890 그것은 = RJ, 동일 s.name 될 우리는 처음에 그 말대로. 104 00:04:58,890 --> 00:05:00,030 그리고 당신이 그들에 액세스 할 수 있습니다. 105 00:05:00,030 --> 00:05:00,930 >> 그래서 우리는 그들을 설정했습니다. 106 00:05:00,930 --> 00:05:01,840 우리는 그들을 업데이 트했습니다. 107 00:05:01,840 --> 00:05:03,890 또한 액세스 할 수 있습니다 아주 동일한 방법으로. 108 00:05:03,890 --> 00:05:09,330 그래서 여기에, 나는 밖으로 인쇄하고 있습니다 R.J. 21 세입니다. 109 00:05:09,330 --> 00:05:14,700 그리고 그 값에 액세스하고 있습니다 s.name 및 s.age와. 110 00:05:14,700 --> 00:05:17,040 그래서 구조체를 액세스하는 것 도트 표기법. 111 00:05:17,040 --> 00:05:17,850 네, 질문? 112 00:05:17,850 --> 00:05:21,176 >> 청중 :에 이유가 당신은 두지 않았다 이전 슬라이드 113 00:05:21,176 --> 00:05:24,848 타입 정의와 같은 외형에 학생 다음 구조체 학생 및 114 00:05:24,848 --> 00:05:25,840 마지막에 학생? 115 00:05:25,840 --> 00:05:29,040 >> R.J. 아키 : 그래서 질문에서였다 이 슬라이드, 우리는 일반적으로 봤어요 116 00:05:29,040 --> 00:05:32,400 다음 구조체 노드를 형식 정의 및 구조체의 필드와 117 00:05:32,400 --> 00:05:34,250 다음 단어 노드. 118 00:05:34,250 --> 00:05:37,790 그리고 여기에 와서 내가 어떻게, 형식 정의에게 말하지 않았다 다음 구조체 학생 및 119 00:05:37,790 --> 00:05:39,820 구조체 후 학생의 필드? 120 00:05:39,820 --> 00:05:44,310 이유는 내가 할 필요가 없다는 것입니다 구조체의 내부에 액세스 할 수 있습니다. 121 00:05:44,310 --> 00:05:46,270 그래서 이름없이 떠나 OK입니다. 122 00:05:46,270 --> 00:05:49,210 나는 단지로 남길 수 있습니다 익명 구조체. 123 00:05:49,210 --> 00:05:53,130 >> 우리가 링크 된 목록을 위해 그것을 할 및 이유 내부 당신이 필요하기 때문에 물건입니다 124 00:05:53,130 --> 00:05:55,360 구조체 노드 별을 참조하십시오. 125 00:05:55,360 --> 00:05:58,220 따라서 구조체는 이름을 가지고있다, 그래서 당신은 나중에 액세스 할 수 있습니다. 126 00:05:58,220 --> 00:05:59,540 그것은 사소한 세부 사항입니다. 127 00:05:59,540 --> 00:06:04,750 하지만 당신은 일반적으로 형식 정의 구조체를 볼 수 있습니다 중괄호가 필요하지 않은 경우 128 00:06:04,750 --> 00:06:08,720 이름과 형식 정의 구조체 일부 이름 중괄호 다음에 당신이 경우 129 00:06:08,720 --> 00:06:09,520 이름이 필요합니다. 130 00:06:09,520 --> 00:06:12,070 그래서 좋은 질문입니다. 131 00:06:12,070 --> 00:06:17,000 >> 그리고 그 시점에, 우리는 수정하는 경향이 구조체에 의해 구조체를 주위에 전달 132 00:06:17,000 --> 00:06:18,680 값이 아닌, 참조. 133 00:06:18,680 --> 00:06:21,940 그래서 우리는 단지에 대한 포인터를 주위에 전달합니다 구조체 대신 주위에 전달 134 00:06:21,940 --> 00:06:23,150 자신을 구조체. 135 00:06:23,150 --> 00:06:28,050 그래서 당신은 매우 자주있을거야 사용하여,이 경우, 학생 * 나 136 00:06:28,050 --> 00:06:34,150 구조체 노드 * 또는 노드 * 대신 학생 또는 노드 중. 137 00:06:34,150 --> 00:06:39,350 그래서 여기, 내가 말했듯이, OK, 변수의 PTR 의의 주소가 될 것입니다. 138 00:06:39,350 --> 00:06:45,570 그것은 포인터가 될 것 학생 R.J.에 139 00:06:45,570 --> 00:06:48,965 >> 그래서 우리는 이러한 필드에서 얻을 수 있습니다 우리가 무엇을 얻을 같은. 140 00:06:48,965 --> 00:06:51,460 첫째, ID 포인터를 참조 구조체를 얻을 수 있습니다. 141 00:06:51,460 --> 00:06:55,530 그 다음 * PTR 그리고 점 다음 세. 142 00:06:55,530 --> 00:06:58,790 그래서 필드에 액세스하고, 내가 업데이 트했습니다 그것은 지금 22, 때문에,하자 143 00:06:58,790 --> 00:07:00,860 말하자면, 제 생일이었다. 144 00:07:00,860 --> 00:07:03,990 바로 가기 구문이있다 여기에있는 화살표를 사용하여. 145 00:07:03,990 --> 00:07:07,060 그래서 PTR 화살표 연령은 단지입니다 *의 ptr.age과 동일. 146 00:07:07,060 --> 00:07:10,150 147 00:07:10,150 --> 00:07:11,550 자, 당신이해야합니다 뭔가 암기하고 기억합니다. 148 00:07:11,550 --> 00:07:15,010 >> 당신은 그것을 pset6에 많이 사용 철자의 PSET. 149 00:07:15,010 --> 00:07:18,350 하지만이 무슨 실제로 후드 아래에. 150 00:07:18,350 --> 00:07:20,500 그것은 포인터를 역 참조 있어요 후 액세스. 151 00:07:20,500 --> 00:07:21,432 질문? 152 00:07:21,432 --> 00:07:22,682 >> 청중 : [청취]. 153 00:07:22,682 --> 00:07:25,860 154 00:07:25,860 --> 00:07:28,060 >> R.J. 아키 : 그래서 왜 우리가 사용하는 대신의 구조체로 포인터 155 00:07:28,060 --> 00:07:29,500 자신을 구조체? 156 00:07:29,500 --> 00:07:33,740 당신이 전달하는 경우 그 이유는 것 함수에 구조체, 당신 아마 157 00:07:33,740 --> 00:07:36,900 다만 4 정도를 주변에 전달하려면 포인터를 나타내는 바이트로 158 00:07:36,900 --> 00:07:40,375 잠재적으로 30에 반대 구조체이다 40 바이트. 159 00:07:40,375 --> 00:07:44,410 그래서 함수에 뭔가를 전달 쉽게 때 일 160 00:07:44,410 --> 00:07:48,230 짧은 작다. 161 00:07:48,230 --> 00:07:49,074 질문? 162 00:07:49,074 --> 00:07:53,026 >> 청중 : 당신이 언급했을 수 있습니다 처음에,하지만이 있습니다 163 00:07:53,026 --> 00:07:56,000 [청취]에 다른 슬라이드 업? 164 00:07:56,000 --> 00:07:58,960 >> R.J. 키노 :이 슬라이드가 될 것입니다 리뷰 세션 후까지. 165 00:07:58,960 --> 00:08:00,210 우리는 웹 사이트에 그들을 게시 할 수 있습니다. 166 00:08:00,210 --> 00:08:02,450 167 00:08:02,450 --> 00:08:06,870 그래서 넘어 약간에 이동 빨리, 우리는 데이터에 대해 이야기 할 것입니다 168 00:08:06,870 --> 00:08:07,350 구조. 169 00:08:07,350 --> 00:08:08,040 이 많이 있습니다. 170 00:08:08,040 --> 00:08:10,080 우리는 그들의 무리에 덮여있다. 171 00:08:10,080 --> 00:08:12,500 여기에 당신이 이해해야 무엇 데이터 구조에 대한. 172 00:08:12,500 --> 00:08:15,590 >> 당신은 정말 높은에서 이해해야합니다 각각의 구조가 무엇인지 수준. 173 00:08:15,590 --> 00:08:21,190 당신은 영어로 설명 할 수 있습니다 CS50을 촬영하지 않은 친구 방법 174 00:08:21,190 --> 00:08:25,580 우리는 우리의 데이터를 구성하고, 왜 우리는 좋겠 이러한 방식으로 무언가를 사용? 175 00:08:25,580 --> 00:08:26,990 그 것은 하나입니다. 176 00:08:26,990 --> 00:08:29,650 일 두 사람은 이해 구현. 177 00:08:29,650 --> 00:08:34,270 그래서 이러한 것들을 사용하는 방법을 이해 C.에 그리고 우리는이를 통해 갈 수 있습니다. 178 00:08:34,270 --> 00:08:39,030 >> 그리고 그 일이 세 알 것 실행 시간과의 한계 179 00:08:39,030 --> 00:08:40,470 당신이 사용하는 다양한 구조. 180 00:08:40,470 --> 00:08:44,059 당신이 사용하는 것이 왜 그렇게 이해 대신 배열의 테이블을 해시. 181 00:08:44,059 --> 00:08:49,570 이해하는 속도, 평균, 해시 테이블에 액세스하는 것이다. 182 00:08:49,570 --> 00:08:54,010 작업이 빨리 내용을 이해하기 연결리스트 만 배열에 느리고 183 00:08:54,010 --> 00:08:56,080 그 반대의 경우도 마찬가지. 184 00:08:56,080 --> 00:08:59,780 그래서 이해하기 위해, 당신은해야합니다 그냥 알고 큰-O 표기법을 이해 185 00:08:59,780 --> 00:09:01,310 이들에 대해 이야기하는 방법 물건의 종류. 186 00:09:01,310 --> 00:09:02,700 그리고 우리는 그것에 대해 이야기 할 것입니다. 187 00:09:02,700 --> 00:09:06,040 >> 그래서 일단, 연결리스트. 188 00:09:06,040 --> 00:09:07,770 여기에서 하이 레벨 화상이다 연결리스트의. 189 00:09:07,770 --> 00:09:08,830 우리는 수업 시간에이 문제를 보여줍니다. 190 00:09:08,830 --> 00:09:11,670 우리는 일반적으로 10 명이 무대에 서. 191 00:09:11,670 --> 00:09:16,790 그러나 우리는 일련의 노드가 위치를 각 노드가 어떤 값과 포인터가 192 00:09:16,790 --> 00:09:18,610 그 다음 값. 193 00:09:18,610 --> 00:09:21,730 그래서, 다음에 하나의 노드에서 얻을 수 다만 저에게 다음 노드를주고 말한다. 194 00:09:21,730 --> 00:09:22,530 당신은 해당 노드가 있습니다. 195 00:09:22,530 --> 00:09:23,770 나에게 다음 노드를 제공합니다. 196 00:09:23,770 --> 00:09:24,400 당신은 해당 노드가 있습니다. 197 00:09:24,400 --> 00:09:28,790 그래서 나에게 다음 노드를 지정하고 어떤 노드의 왼쪽은 없습니다 때까지. 198 00:09:28,790 --> 00:09:31,850 >> 그래서 이야기를 계속 높은 수준에서. 199 00:09:31,850 --> 00:09:34,100 그것은 물건을 삽입하는 것은 매우 간단합니다 연결리스트로. 200 00:09:34,100 --> 00:09:36,010 당신은 순서에 대해 상관하지 않는 경우 당신은 그것을 제거 할 수 있습니다 201 00:09:36,010 --> 00:09:36,840 바로 처음에. 202 00:09:36,840 --> 00:09:38,520 즉, 일정 시간이다. 203 00:09:38,520 --> 00:09:39,900 그러나 값을 찾기 어렵다. 204 00:09:39,900 --> 00:09:43,060 당신이 물어하려는 경우, 내 목록에있는 일곱은? 205 00:09:43,060 --> 00:09:44,740 당신은 통과해야 모든 단일 값입니다. 206 00:09:44,740 --> 00:09:45,680 이 일곱인가? 207 00:09:45,680 --> 00:09:46,610 이 일곱인가? 208 00:09:46,610 --> 00:09:47,770 이 일곱인가? 209 00:09:47,770 --> 00:09:48,690 이 일곱인가? 210 00:09:48,690 --> 00:09:49,830 또 다시. 211 00:09:49,830 --> 00:09:51,520 그리고는 O (N)이다. 212 00:09:51,520 --> 00:09:53,800 그래서 퀴즈 공부를 할 때, 배열이 비교. 213 00:09:53,800 --> 00:09:57,010 214 00:09:57,010 --> 00:09:58,220 >> 즉, OK인가? 215 00:09:58,220 --> 00:09:59,220 빛은 희미했다. 216 00:09:59,220 --> 00:10:01,110 OK. 217 00:10:01,110 --> 00:10:02,400 때 연결리스트는 더 나은 무엇입니까? 218 00:10:02,400 --> 00:10:04,640 때 배열이 더 나은 무엇입니까? 219 00:10:04,640 --> 00:10:06,670 그럼 몇 가지 코드를 살펴 보자. 220 00:10:06,670 --> 00:10:08,960 여기에 잠재적 노드입니다. 221 00:10:08,960 --> 00:10:09,770 이 구조체이다. 222 00:10:09,770 --> 00:10:12,220 그것은 INT의 N이있는 우리의 값이됩니다. 223 00:10:12,220 --> 00:10:17,780 그리고, 다음 구조체 노드 *이있는 다음 노드로 우리의 포인터입니다. 224 00:10:17,780 --> 00:10:23,040 그래서 여기, 우리는 우리가 일어난 것을 볼 수 있습니다 우리의 노드에서 int를 넣어합니다. 225 00:10:23,040 --> 00:10:27,850 그러나 이것은 문자의 연결리스트 인 경우 별 또는 수레의 연결리스트, 우리 226 00:10:27,850 --> 00:10:28,820 마치도 그렇게 할 수 있습니다. 227 00:10:28,820 --> 00:10:33,110 >> pset6의 기억, 당신은 아마이 있었다 단지 문자 별 또는 연결리스트 228 00:10:33,110 --> 00:10:34,360 정적 문자 배열. 229 00:10:34,360 --> 00:10:37,370 230 00:10:37,370 --> 00:10:39,040 의는 작업에 여기에서 살펴 보자. 231 00:10:39,040 --> 00:10:43,570 그래서 우리는 새를 삽입 할 N 우리의 연결리스트에. 232 00:10:43,570 --> 00:10:48,940 우리는 헤드 포인터으로 시작 가이 노드에 대한 포인터 233 00:10:48,940 --> 00:10:53,460 N의 값과 포인터의 그 다음 이 노드 점의 값입니다 234 00:10:53,460 --> 00:10:57,760 n 및 널 (null)의 옆에 있기 때문에 그것은 마지막 노드이다. 235 00:10:57,760 --> 00:11:00,440 그래서 시간의 관심, 그럴 게요 화면에 모든 코드를 넣어. 236 00:11:00,440 --> 00:11:03,130 그리고 우리는 그것을 살펴 보겠습니다 한 번에 몇 줄. 237 00:11:03,130 --> 00:11:05,790 >> 그래서 여기에 코드입니다. 238 00:11:05,790 --> 00:11:07,560 나는 가독성 바랍니다. 239 00:11:07,560 --> 00:11:11,275 우리가 가장 먼저하는 일이있다 우리는 새로운 노드를 MALLOC. 240 00:11:11,275 --> 00:11:15,105 그래서 신규 노드에 대한 포인터를 만드는 확실히 아무것도 설정되지 않습니다 241 00:11:15,105 --> 00:11:16,450 아직 최대. 242 00:11:16,450 --> 00:11:19,580 우리는 있는지 확인하십시오 새로운 노드는 널 (null)이 아닙니다. 243 00:11:19,580 --> 00:11:22,220 그렇지 않으면, 우리는 포기해야합니다. 244 00:11:22,220 --> 00:11:27,680 그래서 체크하는 데, 우리는 지금 노드의 값을 설정합니다. 245 00:11:27,680 --> 00:11:31,520 그래서 우리는 우리의 N 필드에 새 N을 넣어. 246 00:11:31,520 --> 00:11:36,050 그리고 우리를 가리 키도록 다음 포인터를 설정 원래의 머리, 우리가 할 수 있도록 247 00:11:36,050 --> 00:11:38,900 지금이 삽입 우리의 목록에 노드. 248 00:11:38,900 --> 00:11:44,600 >> 마지막으로, 우리는 해외 헤드 점이 우리의 새로운 노드로, 그 그래서 우리는한다면 249 00:11:44,600 --> 00:11:50,300 머리에서 시작, 우리는이에있을 것입니다 새로운 첫 번째 노드 대신 250 00:11:50,300 --> 00:11:51,560 이전 첫 번째 노드. 251 00:11:51,560 --> 00:11:55,320 그리고이 기능을 종료 할 때, 변수에 새로운 노드가 더 이상 존재하지 않습니다 252 00:11:55,320 --> 00:11:57,130 그 함수에 국부적이므로. 253 00:11:57,130 --> 00:11:59,770 그래서이 세상의 상태입니다. 254 00:11:59,770 --> 00:12:03,570 우리의 글로벌 헤드는 우리의 새로운 가리키는 가리키는 첫 번째 노드, 우리의 255 00:12:03,570 --> 00:12:06,346 원래 첫 번째 노드, 어떤 점 그 후 노드. 256 00:12:06,346 --> 00:12:09,790 >> 즉, 삽입했다. 257 00:12:09,790 --> 00:12:12,150 그 비교적했다 희망 따라하기 간단합니다. 258 00:12:12,150 --> 00:12:14,300 의심, 그림을 그릴 때. 259 00:12:14,300 --> 00:12:17,820 그래서 내가 말하는 것을 발견 링크 된 목록과보고 260 00:12:17,820 --> 00:12:19,870 코드는 매우 도움이되지 않습니다. 261 00:12:19,870 --> 00:12:23,790 링크의 사진을보고 반해 목록 오, 나를 생각하게 할 수 있습니다, 그래서 262 00:12:23,790 --> 00:12:24,970 여기이 노드가있다. 263 00:12:24,970 --> 00:12:28,980 하지만 그 포인터를 업데이트 할 경우, 그 연결이 끊어을 끝납니다. 264 00:12:28,980 --> 00:12:34,340 그리고 잊어 버린 곳 노드 간다. 265 00:12:34,340 --> 00:12:35,390 그리고 코드는 종료됩니다. 266 00:12:35,390 --> 00:12:37,830 그리고 당신은 여러 개의 노드가 즉 연결이 끊어집니다. 267 00:12:37,830 --> 00:12:39,970 그리고 당신과 함께 끝나지 않는 당신이 원하는 목록. 268 00:12:39,970 --> 00:12:43,320 >> 그래서 당신은 그림을 그리고 그것을 할 경우 단계별로, 희망, 당신은 볼 것이다 269 00:12:43,320 --> 00:12:46,840 의 관점에서 사물의 올바른 순서 확인하기 위해 포인터를 업데이트 270 00:12:46,840 --> 00:12:48,830 목록이 함께 온다. 271 00:12:48,830 --> 00:12:51,240 삽입은 비교적 간단합니다. 272 00:12:51,240 --> 00:12:55,210 더 복잡 한 것 정렬 된 목록에 삽입. 273 00:12:55,210 --> 00:12:59,980 더 복잡한 기능을 삭제합니다 와, 찾을 수 있으므로에 목록을보고 274 00:12:59,980 --> 00:13:03,030 무언가가 있는지 확인합니다. 275 00:13:03,030 --> 00:13:07,220 아마도 당신은 pset6에 이런 짓을 할 때 당신의 해시 테이블에있어 당신은 말했다, 276 00:13:07,220 --> 00:13:10,460 또한, 단어의 사과입니다 내 연결리스트에? 277 00:13:10,460 --> 00:13:11,440 >> 그래서 당신은 이미이 작업을 수행 할 수 있습니다. 278 00:13:11,440 --> 00:13:15,530 하지만 확실히, 당신의 기억을 및 발견을 다시 구현하기 위해 노력하고 279 00:13:15,530 --> 00:13:19,150 링크 된 목록을 삭제 다시 구현. 280 00:13:19,150 --> 00:13:22,850 재미 보조 노트, 또한 이중 연결 당신이 목록, 281 00:13:22,850 --> 00:13:27,490 포워드와 포인트 포인터 당신이 갈 수 있도록, 이전 버전 282 00:13:27,490 --> 00:13:29,270 다음 노드와 이전 노드에. 283 00:13:29,270 --> 00:13:33,860 그리고 작년에 문제가 발생했습니다 해당 유형의 퀴즈, 이야기 284 00:13:33,860 --> 00:13:36,190 에 대한 목록을 이중 연결. 285 00:13:36,190 --> 00:13:40,070 >> 자, 당신이있어 구조의 비교적 잘 알고있는, 때문에 대부분의 286 00:13:40,070 --> 00:13:42,520 당신의 아마 pset6에 그들을 사용. 287 00:13:42,520 --> 00:13:45,680 여기에 조금 덜 익숙한 하나입니다. 288 00:13:45,680 --> 00:13:51,020 보조 노트로서, 나는 퀴즈 1이라고 생각합니다 주로 퀴즈 0보다 힘든 때문에 289 00:13:51,020 --> 00:13:54,600 당신은, 일을하고있는 물건 많이 수행하지 않았습니다. 290 00:13:54,600 --> 00:13:58,100 또 다른 방법을 넣으려면, 퀴즈 0에 대한, 당신은 C.를 많이 작성했다 우리 291 00:13:58,100 --> 00:13:58,880 C.에 대해 질문 292 00:13:58,880 --> 00:14:02,310 >> 퀴즈 1의 경우, 우리는에 대해 물어거야 PHP와 자바 스크립트, 어떤 당신 293 00:14:02,310 --> 00:14:03,490 많은으로 작성하지 않았습니다. 294 00:14:03,490 --> 00:14:07,590 우리는 C 코드에 대해 물어볼 것입니다 그 당신의 많은 부분을 작성하지 않았습니다 295 00:14:07,590 --> 00:14:09,130 이 고급 C 물건. 296 00:14:09,130 --> 00:14:11,520 그래서 확실히 물건을 우리가 실천 강의에 대해 이야기하는 당신 297 00:14:11,520 --> 00:14:15,260 필요하지 않았다 문제에 설정합니다. 298 00:14:15,260 --> 00:14:17,870 >> 말하자면, 당신은 작성하지 않았습니다 문제에 스택을 설정합니다. 299 00:14:17,870 --> 00:14:19,610 그러나 강의했다. 300 00:14:19,610 --> 00:14:22,530 여기에서의 높은 수준의 정보는 포토 우리는 매년 보여줄 것을 스택. 301 00:14:22,530 --> 00:14:26,180 그것은에있는 트레이 스택의 메이의 식당. 302 00:14:26,180 --> 00:14:30,570 높은 수준에서, 스택은 마지막이다 첫 번째 아웃 데이터 구조에. 303 00:14:30,570 --> 00:14:32,040 즉거야 의미 물건을 넣어 - 304 00:14:32,040 --> 00:14:36,400 1, 3, 7, 12, 14, 마이너스 0. 305 00:14:36,400 --> 00:14:39,180 내가 가진 수없는 한 가지 말 - 3, 0 음. 306 00:14:39,180 --> 00:14:40,250 당신은 안으로 모든 물건을 넣어 307 00:14:40,250 --> 00:14:42,940 그리고 당신은 넣어 마지막 하나는 처음이다 나올 것 하나. 308 00:14:42,940 --> 00:14:44,170 >> 그래서 당신은 두 가지 작업이 - 309 00:14:44,170 --> 00:14:45,260 push와 pop. 310 00:14:45,260 --> 00:14:49,180 나는 것을 퍼팅의 모든 이 같은 몸짓은 푸시합니다. 311 00:14:49,180 --> 00:14:52,020 그리고 제가 잡아에 도달했을 때 뭔가 나 잡아 정상에 도달 312 00:14:52,020 --> 00:14:53,940 뭔가, 그게 대중이다. 313 00:14:53,940 --> 00:14:55,540 그래서 우리는 스택을 구현하는 것입니다. 314 00:14:55,540 --> 00:14:57,870 그리고 우리는 강의를 보여 주었다 배열을 사용. 315 00:14:57,870 --> 00:14:59,550 그러나 당신은 그 (것)을 할 수 링크 된 목록을 사용하여. 316 00:14:59,550 --> 00:15:01,770 스택은 개념 데이터입니다 구조를 좋아하지 317 00:15:01,770 --> 00:15:03,760 구현 고유 한. 318 00:15:03,760 --> 00:15:06,420 >> 그래서 그것은 다음과 같을 것이다? 319 00:15:06,420 --> 00:15:07,970 그것은 종류의 다음과 같을 것입니다. 320 00:15:07,970 --> 00:15:10,840 당신은 정수의 크기를 것입니다. 321 00:15:10,840 --> 00:15:16,000 그리고 당신은 값의 배열이있을 것이다 그 그 때문에 우리는 트레이를 호출하고 322 00:15:16,000 --> 00:15:18,570 그림에 무슨 우리는 - 트레이 값 int - 323 00:15:18,570 --> 00:15:21,740 다음 몇 가지 최대 용량. 324 00:15:21,740 --> 00:15:27,100 그래서 같은 모습을 밀어 것? 325 00:15:27,100 --> 00:15:33,250 우리는 스택의이 있다면 글쎄, 다음 밀어 (S) 상 무엇인가, 우리는 얻을 것 326 00:15:33,250 --> 00:15:34,620 의 크기. 327 00:15:34,620 --> 00:15:42,270 그리고 그 다음이 될 것입니다 우리의 배열의 열린 자리. 328 00:15:42,270 --> 00:15:50,510 그래서 우리는 우리의 스택의 세 가지가 있다면, 다음 용지함 3은 다음이 될 것입니다 329 00:15:50,510 --> 00:15:54,290 열린 자리 때문에 0, 1, (2)는 이미 가득 차 있습니다. 330 00:15:54,290 --> 00:16:01,790 >> 그래서 우리는에 값을 입력 s.trays [s.size], 세 번째 자리. 331 00:16:01,790 --> 00:16:06,290 그리고 우리는 s.size 말을 증가 이봐, 우리는 이전에 세 가지가 있었다. 332 00:16:06,290 --> 00:16:07,400 이제, 우리는 네 가지가있다. 333 00:16:07,400 --> 00:16:10,180 그래서 당신이 밀어 다음에, 당신이있어 4에 뭔가를 넣어 것. 334 00:16:10,180 --> 00:16:15,560 아니면 팝업 다음에, 당신은거야 3 대신 4 또는 무엇이든 볼 수 있습니다. 335 00:16:15,560 --> 00:16:18,000 그리고 우리는 true로 돌아갑니다 말하자면, 헤이, 우리는 성공했다. 336 00:16:18,000 --> 00:16:19,160 이했다. 337 00:16:19,160 --> 00:16:22,060 엄지 손가락의 규칙으로, 경우의 함수 true를 반환 또는 가정 338 00:16:22,060 --> 00:16:26,370 거짓은 항상 당신이 할 수있다, true를 반환 뭔가 잘못을했다. 339 00:16:26,370 --> 00:16:28,350 그래서이 작품은 무엇입니까? 340 00:16:28,350 --> 00:16:32,400 >> 음, 1 잘 작동하고, 2, 3, 4, 5. 341 00:16:32,400 --> 00:16:34,640 하지만 그건 내 용량에 도달 해 봅시다. 342 00:16:34,640 --> 00:16:38,750 나는 그 문제로 실행하기 때문에 한 크기는 용량이 동일한 경우, 난 343 00:16:38,750 --> 00:16:43,340 지금에 뭔가를 넣어 시도 나는이 공간이없는 배열입니다. 344 00:16:43,340 --> 00:16:46,980 그래서 짧은 검사가이 문제를 해결하려면. 345 00:16:46,980 --> 00:16:51,630 s.size == 수용량 경우 false를 반환합니다. 346 00:16:51,630 --> 00:16:54,130 그렇지 않으면, 가서 우리가 무슨 짓을. 347 00:16:54,130 --> 00:16:55,660 그래서 우리는 다른 어떤 질문을 할 수 스택에 대해? 348 00:16:55,660 --> 00:16:56,460 당신은 다른 무엇을 공부해야 하는가? 349 00:16:56,460 --> 00:16:57,690 당신은 다른 무엇을 실천해야 하는가? 350 00:16:57,690 --> 00:17:01,030 >> 음, 팝을 구현. 351 00:17:01,030 --> 00:17:02,370 우리는 이미 푸시를했다. 352 00:17:02,370 --> 00:17:04,280 나는 그 문제를 해결합니다. 353 00:17:04,280 --> 00:17:08,180 배열이 아닌 구현, 여기서 당신은 아마, 연결리스트를 사용합니다. 354 00:17:08,180 --> 00:17:09,390 비 INT의 구현입니다. 355 00:17:09,390 --> 00:17:10,940 우리는 여기에 정수를했다. 356 00:17:10,940 --> 00:17:11,880 그러나 수레 수 있었다. 357 00:17:11,880 --> 00:17:13,010 나는 문자열 수 있었다. 358 00:17:13,010 --> 00:17:14,290 그것은 문자 별 수 있었다. 359 00:17:14,290 --> 00:17:17,960 종류의 과거의 퀴즈 봐 우리는 스택에 대해 질문 한 질문입니다. 360 00:17:17,960 --> 00:17:20,000 >> 나는 우리가 주위에 스택 덮여 있다고합니다 우리가 그들을 다루었 같은 361 00:17:20,000 --> 00:17:20,540 지난 몇 년 동안. 362 00:17:20,540 --> 00:17:24,400 그래서 퀴즈 질문해야 좋은 표시합니다. 363 00:17:24,400 --> 00:17:27,010 더 빨리 앞으로 이동, 큐. 364 00:17:27,010 --> 00:17:28,200 그들은 스택처럼입니다. 365 00:17:28,200 --> 00:17:29,960 그러나 그들은 먼저 알아, 먼저입니다. 366 00:17:29,960 --> 00:17:33,530 당신이 영국이라면, 단어는 큐 아마 당신에게 많은 의미했다. 367 00:17:33,530 --> 00:17:36,390 그렇지 않으면, 당신은 할 수 있습니다 라인으로 들어. 368 00:17:36,390 --> 00:17:38,120 그들은 라인처럼 작동 애플 스토어에서. 369 00:17:38,120 --> 00:17:40,740 3시에 표시하는 최초의 사람 아침에 첫 번째입니다 370 00:17:40,740 --> 00:17:42,880 자신의 아이 패드를 구입하는 사람. 371 00:17:42,880 --> 00:17:44,260 >> 그래서 우리는 두 가지 작업이 있습니다 - 372 00:17:44,260 --> 00:17:45,720 가 대기열. 373 00:17:45,720 --> 00:17:47,560 큐에 라인에 사람을 넣습니다. 374 00:17:47,560 --> 00:17:50,070 디큐는 첫 번째를 가져옵니다 오프라인 사람. 375 00:17:50,070 --> 00:17:52,640 다시 말하지만, 우리는 구현할 수 있습니다 배열이. 376 00:17:52,640 --> 00:17:54,880 그래서 구조체 우리는 무엇인가 강의에 보여? 377 00:17:54,880 --> 00:17:57,660 그것은이 하나였다. 378 00:17:57,660 --> 00:17:59,300 또, 숫자. 379 00:17:59,300 --> 00:18:02,020 또, 크기 및이 새로운 일 전면. 380 00:18:02,020 --> 00:18:04,880 왜 전면라는 무언가가있다? 381 00:18:04,880 --> 00:18:07,050 그것은 다음의 인덱스의 큐에서 제거 할 요소입니다. 382 00:18:07,050 --> 00:18:12,210 그것은 단지 내부 트랙을 유지하고있다 표시하는 최초의 사람, 그래서 우리 383 00:18:12,210 --> 00:18:15,005 우리가 필요로 할 때 꺼냅니다. 384 00:18:15,005 --> 00:18:19,322 >> 물론 강의 노트를보고 시도 가 대기열을 구현하는 385 00:18:19,322 --> 00:18:21,700 퀴즈 공부를 할 때. 386 00:18:21,700 --> 00:18:23,190 에 대해 생각하는 중요 사항. 387 00:18:23,190 --> 00:18:27,260 주위에 포장하는 경우 전면 플러스 크기는 용량보다 더 큰를 끝납니다. 388 00:18:27,260 --> 00:18:32,670 다시, 당신의 구조가 꽉 찬 경우, 당신은 문제가있는 것입니다. 389 00:18:32,670 --> 00:18:34,780 당신은 전에 본 적이 테이블을 해시. 390 00:18:34,780 --> 00:18:39,820 당신의 대부분은 아마 구현 이 pset6에. 391 00:18:39,820 --> 00:18:44,210 그것은 O을 목표 구조의 (1) 일정 시간 삽입 및 O (1) 392 00:18:44,210 --> 00:18:46,430 일정 시간 조회. 393 00:18:46,430 --> 00:18:49,760 >> CS50에서는, 우리는이 구현 연결리스트의 배열. 394 00:18:49,760 --> 00:18:53,690 해시 테이블에 대한 키 컴포넌트 해시 함수이다. 395 00:18:53,690 --> 00:18:58,350 따라서,의 말을하자, 입력을 변환 숫자로 사전에 나오는 단어,, 396 00:18:58,350 --> 00:18:59,560 색인이 될 것이다. 397 00:18:59,560 --> 00:19:01,410 그리고 우리는 그 인덱스를 사용합니다 우리의 배열에. 398 00:19:01,410 --> 00:19:05,374 그래서 여기에 귀여운 그림의 study.50.net에서. 399 00:19:05,374 --> 00:19:08,060 우리는 모든 단어에 던져 우리의 해시 함수. 400 00:19:08,060 --> 00:19:10,950 그리고 해쉬 함수는 우리에게 알려줍니다 여기서이 단어를 넣어. 401 00:19:10,950 --> 00:19:15,650 >> 이 땅의 모든 위대한입니다 모든 슬롯에 대해 하나의 단어가있다. 402 00:19:15,650 --> 00:19:20,480 하지만 pset6에서 기억, 거기 슬롯보다 더 많은 단어입니다. 403 00:19:20,480 --> 00:19:23,080 때 그래서 무슨 일이 충돌을 얻을? 404 00:19:23,080 --> 00:19:26,730 대신에 하나의 값을 저장하는, 의는, 해시 테이블 (3)을 가정 해 봅시다 405 00:19:26,730 --> 00:19:27,990 링크 된 목록을 저장합니다. 406 00:19:27,990 --> 00:19:32,900 그래서 대신 멜론을 갖는 여기, 당신은 연결 목록이있을 것입니다, 407 00:19:32,900 --> 00:19:34,190 첫 번째 노드는 멜론입니다. 408 00:19:34,190 --> 00:19:35,260 다음 노드는 고양이입니다. 409 00:19:35,260 --> 00:19:38,970 그리고 제 3 노드는하자, 충돌하다 이 모든 말씀을 시작하기 때문에, 말 410 00:19:38,970 --> 00:19:41,110 C.와 411 00:19:41,110 --> 00:19:42,700 >> 그래서 대부분의 pset6이했다. 412 00:19:42,700 --> 00:19:45,685 당신은 pset6에 해시 테이블을하지 않은 경우 당신이 뭔가를 시도 413 00:19:45,685 --> 00:19:47,720 트라이는 확실히 해시 테이블을 검토합니다. 414 00:19:47,720 --> 00:19:50,650 당신은 확실히, pset6에 그것을 않은 경우 해시 테이블을 검토합니다. 415 00:19:50,650 --> 00:19:53,610 그리고 당신은 pset6에 그것을 만들었는데, 그렇지 않다면 아주 오른쪽 당신을 일 416 00:19:53,610 --> 00:19:56,150 확실히, 그것으로 문제를 많이했다 해시 테이블을 검토합니다. 417 00:19:56,150 --> 00:20:01,610 그래서 수업은 정말 확실히 해시 테이블을 검토합니다. 418 00:20:01,610 --> 00:20:07,130 >> 시도 당신의 광대 한 소수 아웃 pset6에 시도합니다. 419 00:20:07,130 --> 00:20:08,570 높은 수준의 사진. 420 00:20:08,570 --> 00:20:15,150 그것은 다음과 같이, 어디 각 노드는 아이들의 집합을 갖는 경우 각 421 00:20:15,150 --> 00:20:17,100 아이가 문자에 해당합니다. 422 00:20:17,100 --> 00:20:20,520 모든 노드는 말한다 이봐, 나는 단어입니다. 423 00:20:20,520 --> 00:20:25,933 따라서이 경우, 단어 맥스웰, 당신은에에 M을 수행하는 경우 424 00:20:25,933 --> 00:20:28,530 다음 X-W-E-L-L과는 하나 이상을 수행합니다. 425 00:20:28,530 --> 00:20:32,800 그리고 당신은이 기호, 델타를 얻을 수있는 우리는이 단어 의미하는 의미. 426 00:20:32,800 --> 00:20:34,780 그래서 맥스웰은 단어입니다. 427 00:20:34,780 --> 00:20:38,430 이러한 델타 명시를 걸쳐 있습니다 가지 단어 이는 본 428 00:20:38,430 --> 00:20:40,360 일이 없습니다. 429 00:20:40,360 --> 00:20:46,400 >> 그래서 pset6에서, 데이터는 우리가 기억 우리의 모든 노드이었다 함께 "나는 어​​디로 430 00:20:46,400 --> 00:20:52,630 단어입니다. "그리고 시도에 대한 좋은 점 그들은 삽입을 설명하고있다 431 00:20:52,630 --> 00:20:55,080 O (단어의 길이)에서 조회. 432 00:20:55,080 --> 00:20:59,450 그러니 맥스웰 통해 얻을, 그건 M-A-X-W-E-L-L. 그래서 7 ~​​ 8 - 433 00:20:59,450 --> 00:21:00,360 나는 셀 수 없습니다 - 434 00:21:00,360 --> 00:21:03,920 끝으로 얻을 수있는 단계 물건를 확인하세요. 435 00:21:03,920 --> 00:21:06,800 여기에 너무 빨리 구현. 436 00:21:06,800 --> 00:21:10,230 롭 연결을 통해 갔다 그의 사후에 기재. 437 00:21:10,230 --> 00:21:11,600 그래서를 확인하세요. 438 00:21:11,600 --> 00:21:11,720 미안 해요. 439 00:21:11,720 --> 00:21:13,240 그의 사후에 트라이를 통해 갔다. 440 00:21:13,240 --> 00:21:14,260 그래서를 확인하세요. 441 00:21:14,260 --> 00:21:24,410 >> 그러나 당신은 기본적으로 각 노드가 27이이 다음 노드 하나에 대한 포인터 442 00:21:24,410 --> 00:21:27,050 한마디하니 부울입니다. 443 00:21:27,050 --> 00:21:31,530 방법은 롭의 사후 체크 아웃 이 실제로 구현됩니다. 444 00:21:31,530 --> 00:21:34,750 우리의 최종 구조, 우리의 나무 이진 검색 나무. 445 00:21:34,750 --> 00:21:41,530 따라서 이러한보고, 이러한 덮여 있었다 최근 8 주 월요일. 446 00:21:41,530 --> 00:21:46,960 나무는 제외하고, 트라이 유사하다 반드시 27 노드에서이없는 447 00:21:46,960 --> 00:21:47,500 각 점. 448 00:21:47,500 --> 00:21:52,820 그리고 당신은 각각이 데이터가없는 - 의미 여부를 단계 449 00:21:52,820 --> 00:21:54,030 경로는 중요하지 않습니다. 450 00:21:54,030 --> 00:22:00,870 트라이, 경로 위로부터에 반해 바닥, 맥스웰은 저희에게 중요했다. 451 00:22:00,870 --> 00:22:05,270 >> 하지만, 각 노드는 복수 마련되어 어린이, 아마. 452 00:22:05,270 --> 00:22:07,290 우리는 좀 더 많은 어휘가있다. 453 00:22:07,290 --> 00:22:09,530 트리의 루트 매우 상단에 있습니다. 454 00:22:09,530 --> 00:22:12,520 그리고 우리는 매우 맨 아래 말 아니이 노드 455 00:22:12,520 --> 00:22:14,530 아이들은 나뭇잎입니다. 456 00:22:14,530 --> 00:22:18,040 그래서 트라이처럼 나무입니다 노드의 구조. 457 00:22:18,040 --> 00:22:21,490 우리가 가고있는 나무의 일반적인 유형 에 대해 이야기하는 것은 이진 트리, 여기서 458 00:22:21,490 --> 00:22:26,040 각 노드는 자식이나이 없습니다 청소년 또는 두 아이. 459 00:22:26,040 --> 00:22:28,890 그래서 여기이 그림은 아니다 이진 트리 때문에 460 00:22:28,890 --> 00:22:32,890 노드 3 세 자녀가 있습니다. 461 00:22:32,890 --> 00:22:38,140 >> 그러나 우리는 그 나머지를 무시한다면 그것의 이진 트리입니다 그것 때문에 462 00:22:38,140 --> 00:22:43,200 속성 각 노드를 보여줍니다 0, 1, 또는 두 아이가 있습니다. 463 00:22:43,200 --> 00:22:46,400 그렇다면 우리는 코드에서이를 표현할 수? 464 00:22:46,400 --> 00:22:51,460 우리는 각 노드가있는 노드를 가질 수있다 그 안에 정수뿐만 아니라, 465 00:22:51,460 --> 00:22:55,590 좌측 트리 포인터 과의 트리에 대한 포인터 466 00:22:55,590 --> 00:22:59,510 오른쪽 두 아이 때문에. 467 00:22:59,510 --> 00:23:00,880 어떻게 이런 일이 유용 했습니까? 468 00:23:00,880 --> 00:23:05,740 음, 우리는에 대한 규칙을 만드는 경우에 우리는 어디 노드를 넣어, 우리는 검색을 빠르게 할 수 있습니다. 469 00:23:05,740 --> 00:23:10,630 >> 그래서 이진 검색의 개념이있다 나무, 여기서의 모든 노드 470 00:23:10,630 --> 00:23:14,420 좌측 서브 트리가 더 작은 값을 가질 노드보다 우리가 찾고 있습니다. 471 00:23:14,420 --> 00:23:17,880 그리고 오른쪽 하위 트리의 모든 노드 더 큰 값이 472 00:23:17,880 --> 00:23:18,660 루트 노드보다. 473 00:23:18,660 --> 00:23:20,670 자, 그 단어의 많은 것 같습니다. 474 00:23:20,670 --> 00:23:23,770 나는 두 배의 안쪽에 넣어 갈거야 따옴표 당신에게 사진을 보여줍니다. 475 00:23:23,770 --> 00:23:27,010 그래서 여기의 예입니다 이진 검색 트리. 476 00:23:27,010 --> 00:23:28,770 우리가 10로 시작하는 것을 볼 수 있습니다. 477 00:23:28,770 --> 00:23:31,780 왼쪽의 모든 것을 10는보다 작다. 478 00:23:31,780 --> 00:23:33,130 그리고 오른쪽에있는 모든 것을 그것보다 더 큰 것입니다. 479 00:23:33,130 --> 00:23:37,620 >> 하지만 더 그래서보다, 각 노드 나무는이 속성을 표현한다. 480 00:23:37,620 --> 00:23:42,110 그래서 노드 7에 3가 왼쪽에서 오른쪽으로 그리고 9. 481 00:23:42,110 --> 00:23:44,440 따라서 이들 모두는 10보다 작다. 482 00:23:44,440 --> 00:23:50,470 그러나 단지 그보고, 7가 3 오른쪽에 그것의 왼쪽과 9. 483 00:23:50,470 --> 00:23:56,100 마찬가지로 오른쪽에, 15는 14가 그 오른쪽의 왼쪽 50. 484 00:23:56,100 --> 00:24:03,770 그래서 거기에 세 개의 노드, 15, 14, 및 (50)는 또한 유효한 이진 트리 아르 485 00:24:03,770 --> 00:24:05,480 또는 유효한 이진 검색 트리입니다. 486 00:24:05,480 --> 00:24:07,250 그리고 그들은 모두 10보다 더 큰입니다. 487 00:24:07,250 --> 00:24:08,960 그래서 그들은 할 수있다 거기에 오른쪽에. 488 00:24:08,960 --> 00:24:09,940 질문이 있습니까? 489 00:24:09,940 --> 00:24:12,580 >> 청중 : 당신은 어떻게 대처 않는 경우 두 세븐이? 490 00:24:12,580 --> 00:24:12,850 >> R.J. 아키 : 그래. 491 00:24:12,850 --> 00:24:16,550 어떻게 두 개의 값을 처리합니까 즉, 동일? 492 00:24:16,550 --> 00:24:21,465 일부 이진 검색 나무가 말을하면 그 목표이기 때문에, 중복 무시 493 00:24:21,465 --> 00:24:24,280 그냥 말, 나는 본 적이 지금까지 이런 것들. 494 00:24:24,280 --> 00:24:28,120 당신이 말할 수있는 몇 가지 이진 검색 나무 노드의 내부 카운트가 있습니다. 495 00:24:28,120 --> 00:24:32,000 다른 사람은 말할 수 것과 모든 왼쪽보다 작거나 같다. 496 00:24:32,000 --> 00:24:33,470 그리고 오른쪽에있는 모든 것을 보다 크다. 497 00:24:33,470 --> 00:24:36,520 >> 그것은 단지에 따라 어떤 문제는 해결하고있다. 498 00:24:36,520 --> 00:24:40,840 만약, 예를 들어, 사전에 그 취지 중복 걱정하지 않을 것입니다. 499 00:24:40,840 --> 00:24:41,490 당신이 그들을 밖으로 던져 것입니다. 500 00:24:41,490 --> 00:24:44,719 그러나 다른 문제는 신경 수 있습니다. 501 00:24:44,719 --> 00:24:49,242 >> 청중 : 그것은있을 수 있습니까 (15)의 왼쪽에있는 하나 502 00:24:49,242 --> 00:24:50,590 10 이하? 503 00:24:50,590 --> 00:24:51,885 >> R.J. 키노 : 호 504 00:24:51,885 --> 00:24:56,570 여기에 (14)가 1 인 경우에,이 것 유효한 이진 검색 트리 수 없습니다, 505 00:24:56,570 --> 00:25:00,840 때문에 권리에 이르기까지 모든 (10)는 그것보다 더 큰 수 있습니다. 506 00:25:00,840 --> 00:25:02,300 그리고 우리는 왜 볼 수 있습니다. 507 00:25:02,300 --> 00:25:07,960 검색의 땅에서 나의 목표는 경우 (14)를 찾기 위해, 나는 루트에서 시작합니다. 508 00:25:07,960 --> 00:25:08,500 그래서 나는 본다. 509 00:25:08,500 --> 00:25:08,710 OK. 510 00:25:08,710 --> 00:25:10,670 우리는 루트에서 시작하는 것입니다. 511 00:25:10,670 --> 00:25:12,500 10보십시오. 512 00:25:12,500 --> 00:25:16,050 >> 음, 14, 목표, 10보다 크다. 513 00:25:16,050 --> 00:25:17,370 그래서 오른쪽에 있어야합니다. 514 00:25:17,370 --> 00:25:21,780 이것은 전체 전화와 매우 유사하다 책 것은 우리는 진했다 515 00:25:21,780 --> 00:25:23,720 이 검색 할 수 있습니다. 516 00:25:23,720 --> 00:25:26,430 대신 이진 검색의 배열에, 우리는 진이야 517 00:25:26,430 --> 00:25:28,490 이 나무에서 검색. 518 00:25:28,490 --> 00:25:31,260 그래서 우리는 여전히 14을 찾고 있습니다. 519 00:25:31,260 --> 00:25:32,480 음, (14)는 15보다 작다. 520 00:25:32,480 --> 00:25:36,430 우리의 트리에의 경우에, 그것은해야 여기에이 지역에서 수. 521 00:25:36,430 --> 00:25:39,680 그것은 오른쪽에 있어야합니다 (10) 및 (15)의 왼쪽. 522 00:25:39,680 --> 00:25:42,250 >> 그래서 우리는이 노드를 확인합니다. 523 00:25:42,250 --> 00:25:45,790 그리고 실로, 우리는 14를 발견했습니다. 524 00:25:45,790 --> 00:25:46,760 나는 그것을 통해 도보 않을거야. 525 00:25:46,760 --> 00:25:48,090 하지만, 여기에 코드입니다. 526 00:25:48,090 --> 00:25:49,690 비교적 사실의 간단, 527 00:25:49,690 --> 00:25:52,630 이 순환하기 때문이다. 528 00:25:52,630 --> 00:25:55,420 우리는 당신이 퀴즈에 무엇을 물어볼 수? 529 00:25:55,420 --> 00:25:57,000 우리는이 코드를 작성하도록 요청할 수 있습니다. 530 00:25:57,000 --> 00:25:59,170 우리는이 코드를 보면하도록 요청할 수 이 코드를 수정하고 무엇을 설명 531 00:25:59,170 --> 00:26:00,210 저 래요. 532 00:26:00,210 --> 00:26:00,390 그래. 533 00:26:00,390 --> 00:26:00,770 질문? 534 00:26:00,770 --> 00:26:04,240 >> 청중 :이 슬라이드가 될 수 있습니다 그들이 마지막 시간이었다로 사용할? 535 00:26:04,240 --> 00:26:04,740 >> R.J. 키노 : 예. 536 00:26:04,740 --> 00:26:06,460 그래서이 슬라이드은 확실히 게시. 537 00:26:06,460 --> 00:26:08,640 >> 독자 : 그들은 실제로 게시하고 지금의 웹 사이트에. 538 00:26:08,640 --> 00:26:10,020 다윗은 그냥했다. 539 00:26:10,020 --> 00:26:12,720 >> R.J. 키노 : 슬라이드는 지금의 웹 사이트에. 540 00:26:12,720 --> 00:26:16,420 아마 몇을 패치합니다 오타가 나는 지적하고 수정. 541 00:26:16,420 --> 00:26:19,940 그러나 현재이있다 사이트에 버전. 542 00:26:19,940 --> 00:26:21,820 기타 우리가하도록 요청할 수있는 것들 - 543 00:26:21,820 --> 00:26:23,790 삽입 쓰기. 544 00:26:23,790 --> 00:26:27,490 의 반복적 인 버전을 쓰기 재귀 함수는 우리가 당신에게 보여 주었다 545 00:26:27,490 --> 00:26:32,520 나처럼, 이러한 것들에 대해 이야기 단락, 즉, 문장. 546 00:26:32,520 --> 00:26:35,760 실행 시간을 비교 및​​ 설명 당신은 바이너리를 사용하고 싶은 것이 무엇 547 00:26:35,760 --> 00:26:39,200 대신의 검색 트리 예를 들어, 테이블을 해시. 548 00:26:39,200 --> 00:26:43,580 >> 따라서 이러한 구조를 이해 꽤 깊은 수준에서. 549 00:26:43,580 --> 00:26:47,440 을 작성하는 방법을 이해하는 방법을 그들에 대해 이야기하는 방법을 사용합니다. 550 00:26:47,440 --> 00:26:50,270 그리고 당신은 모든 설정해야합니다. 551 00:26:50,270 --> 00:26:50,630 질문? 552 00:26:50,630 --> 00:26:55,070 >> 청중 : 당신이 작성하는 경우 이진 검색 트리, 당신은 어떻게 할 553 00:26:55,070 --> 00:27:01,460 어떤 값을 결정 루트로 만들어? 554 00:27:01,460 --> 00:27:06,120 >> R.J. 아키 : 그래서 질문은 무엇인지 값은 루트로해야합니까? 555 00:27:06,120 --> 00:27:08,760 당신은 당신의 코드에 따라 글로벌 루트가있을 수 있습니다. 556 00:27:08,760 --> 00:27:14,290 그래서 당신은 가능성에 있었다 수 있습니다 pset6 전역 해시 테이블. 557 00:27:14,290 --> 00:27:18,640 아니면 루트를 통과 할 수 인수로. 558 00:27:18,640 --> 00:27:23,810 여기 그래서이 검색 기능 인수 노드 * 소요됩니다. 559 00:27:23,810 --> 00:27:27,420 그래서 당신이 될 일이 어떤 노드 보고하면 치료하고있는 하나입니다 560 00:27:27,420 --> 00:27:31,510 루트로 당신이 그것을 안으로 통과 할 때 561 00:27:31,510 --> 00:27:32,320 그리고 다 했어요. 562 00:27:32,320 --> 00:27:33,480 사람들은 내 슬라이드 수 있습니다. 563 00:27:33,480 --> 00:27:35,940 다음 사람은 스왑 올 수 노트북 및 마이크에. 564 00:27:35,940 --> 00:27:47,390 565 00:27:47,390 --> 00:27:49,760 >> ROB 보덴 : 나는 거 같아요 다른 그 질문을 해석했다. 566 00:27:49,760 --> 00:27:53,826 그러나 당신이 가지고있는 경우에 나는,로 해석 우리가 어떻게 숫자 1, 2, 3, 567 00:27:53,826 --> 00:27:56,720 2 루트를 만들기 위해 알아 1 또는 3에 반대? 568 00:27:56,720 --> 00:27:59,480 우리는 루트 2 할 경우, 그것은 잘의 도 1 및 3 좌우. 569 00:27:59,480 --> 00:28:04,610 1 루트의 경우 그러나, 그것은 1의 상단 오른쪽에 2 오른쪽, 3. 570 00:28:04,610 --> 00:28:10,880 그래서 기본적으로, 당신은 몰라 어떤 루트를 만들 수 있습니다. 571 00:28:10,880 --> 00:28:15,400 그리고 어떤 알고리즘을 위해 우리는 기다리고있어 그냥 먼저 당신을 당신을 줄 572 00:28:15,400 --> 00:28:16,680 삽입은 루트가 될 것입니다. 573 00:28:16,680 --> 00:28:19,890 또는 우리는 당신에게 이진 트리를 주겠다고 이미 뿌리를 가지고 존재합니다. 574 00:28:19,890 --> 00:28:24,760 그러나 다른 알고리즘 등이 존재 그래서 루트는 업데이트됩니다 만약에 당신 575 00:28:24,760 --> 00:28:28,370 그것은 1, 2의 상황에서 결국, 3, 자동으로 업데이트 할 것 576 00:28:28,370 --> 00:28:30,900 그래서, 새로운 루트 2 할 그것은 여전히​​ 잘 균형 있어요. 577 00:28:30,900 --> 00:28:33,750 578 00:28:33,750 --> 00:28:34,833 >> ANGELA LI : 차가운. 579 00:28:34,833 --> 00:28:36,170 안녕, 얘들 아. 580 00:28:36,170 --> 00:28:37,810 난 안젤라. 581 00:28:37,810 --> 00:28:42,490 그리고 우리의 C를 마무리하겠습니다 다음 우리의 웹의 일부에 들어가 582 00:28:42,490 --> 00:28:43,120 기술 - 583 00:28:43,120 --> 00:28:46,570 HTTP, HTML 및 CSS. 584 00:28:46,570 --> 00:28:49,610 그래서 먼저 버퍼이다 오버 플로우 공격. 585 00:28:49,610 --> 00:28:53,070 그래서이 코드를 살펴 보자. 586 00:28:53,070 --> 00:28:54,260 그것은 꽤 간단합니다. 587 00:28:54,260 --> 00:28:55,460 함수 foo가있다. 588 00:28:55,460 --> 00:28:56,990 그리고 그것은 아무것도 반환하지 않습니다. 589 00:28:56,990 --> 00:29:00,950 그러나 포인터를 취 바라는 문자열. 590 00:29:00,950 --> 00:29:04,920 >> 그리고이 선언 것 문자 버퍼 591 00:29:04,920 --> 00:29:07,690 12 슬롯이 배열입니다. 592 00:29:07,690 --> 00:29:11,730 그리고 그것은 단지입니다, 방어 적이기를 사용 기능이 하나의 주소를 복사합니다 593 00:29:11,730 --> 00:29:12,910 다른에. 594 00:29:12,910 --> 00:29:19,400 그래서이에 복사하려고 어떤에서 우리의 버퍼 595 00:29:19,400 --> 00:29:21,140 바 가리키는. 596 00:29:21,140 --> 00:29:24,640 그래서 어떤 생각이 무엇을 잘못 이 코드? 597 00:29:24,640 --> 00:29:27,568 598 00:29:27,568 --> 00:29:30,830 >> 청중 : 바보다 긴 경우 C, 그들은 덮어 쓰게됩니다. 599 00:29:30,830 --> 00:29:31,520 >> ANGELA LI : 네, 그렇습니다. 600 00:29:31,520 --> 00:29:34,200 우리는 보장이 없다는 것을 바 12 이하가 될 것입니다. 601 00:29:34,200 --> 00:29:36,080 우리는 단지 몇 가지 임의의 숫자 12을했다. 602 00:29:36,080 --> 00:29:38,380 그리고 우리의 희망하자, 같이했다 그 우리의 사용자 입력이보다 작은 603 00:29:38,380 --> 00:29:40,440 12 자. 604 00:29:40,440 --> 00:29:46,320 그래서 이상적인 세계에서, 경우에 우리의 입력은 예상 언제나처럼, 우리는거야 605 00:29:46,320 --> 00:29:47,550 안녕하세요, 같은. 606 00:29:47,550 --> 00:29:48,920 즉, 12 자 미만입니다. 607 00:29:48,920 --> 00:29:51,870 그것은 문자 C로 읽어옵니다. 608 00:29:51,870 --> 00:29:53,280 그리고 우리는 그것으로 작업을 수행합니다. 609 00:29:53,280 --> 00:29:54,800 정말 문제가되지 않습니다. 610 00:29:54,800 --> 00:29:59,740 >> 그러나 악의적 인 사람이 할 수있는 더 다음과 같이, 그들은 어디에 611 00:29:59,740 --> 00:30:04,760 바가 가리키는대로 우리에게 그것은이 거대한 배열을 가리려고 612 00:30:04,760 --> 00:30:06,280 단지의. 613 00:30:06,280 --> 00:30:10,680 그리고이 12보다 훨씬 더 길다. 614 00:30:10,680 --> 00:30:13,830 그래서 모든 길을 갈 것 여기 아래 위치로 돌아 가기 615 00:30:13,830 --> 00:30:15,420 주소로 사용됩니다. 616 00:30:15,420 --> 00:30:17,860 그래서이 기능을 가정 해 봅시다 foo는 호출됩니다. 617 00:30:17,860 --> 00:30:20,970 아마 foo는 일부 다른 호출 한 주에 의해 호출 된 함수. 618 00:30:20,970 --> 00:30:24,890 foo는이 실행되는 때, 그것은 필요 위치로 돌아갑니다 알고 있습니다. 619 00:30:24,890 --> 00:30:29,130 >> foo는의 이름은 어떤 함수가 호출 된 경우 바즈, 그것은 그것의 알고있다 620 00:30:29,130 --> 00:30:30,250 다시 바즈에 가야 해. 621 00:30:30,250 --> 00:30:34,040 그리고 어떤이 반환 주소에게의 여기까지 우리를 말하고있다. 622 00:30:34,040 --> 00:30:38,340 그러나 우리는 다른로 덮어 쓸 경우 어드레스는,이 경우, 이는 인 623 00:30:38,340 --> 00:30:42,650 에서 주소의 표현 아주 다음,이 버퍼의 시작 624 00:30:42,650 --> 00:30:45,240 무엇 실제로 일어날 것은 그 대신 다시 바즈에 반환, 625 00:30:45,240 --> 00:30:48,470 우리의 함수를 호출하는, 그것은 단지 이 코드의 전면에 갈 예정. 626 00:30:48,470 --> 00:30:53,930 >> 그리고 이것은이 있다면 때문에 악의적 인 해커 친구가 와서 627 00:30:53,930 --> 00:30:56,820 이 주입, 어쩌면이 금액 의의 실제의 수 없습니다. 628 00:30:56,820 --> 00:31:02,030 그리고 실제로 단지 코드 사용자들은 휴식 컴퓨터 또는 뭔가. 629 00:31:02,030 --> 00:31:05,930 그래서 이런 종류의에 대한 방어 할 수 일, 당신은 그렇게 생각하지 않습니다해야 630 00:31:05,930 --> 00:31:09,120 사용자 입력은 확실 문자의 양. 631 00:31:09,120 --> 00:31:13,310 예를 들어, 당신은 뭘하고 있었 철자, 당신은 단어가 있다고 들었다 632 00:31:13,310 --> 00:31:15,580 40 문자가 될 것 긴 최대. 633 00:31:15,580 --> 00:31:16,570 그리고 그게 좋았다. 634 00:31:16,570 --> 00:31:20,150 >> 하지만 경우에, 당신은에있을 것 반드시 45에서 읽을 수 있도록 635 00:31:20,150 --> 00:31:21,520 한 번에 문자. 636 00:31:21,520 --> 00:31:24,430 그렇지 않으면, 당신은 덮어 쓸 수 있습니다 당신의 버퍼. 637 00:31:24,430 --> 00:31:26,140 그에 대한 질문. 638 00:31:26,140 --> 00:31:26,733 그래. 639 00:31:26,733 --> 00:31:28,850 >> 청중 : 당신이 이야기 할 수 이들에 대한 좀 더? 640 00:31:28,850 --> 00:31:29,790 >> ANGELA LI : 죄송합니다. 641 00:31:29,790 --> 00:31:31,040 예. 642 00:31:31,040 --> 00:31:32,813 643 00:31:32,813 --> 00:31:35,870 >> 대상 : 마이크 그냥 비디오입니다. 644 00:31:35,870 --> 00:31:37,640 나는 시도하고 프로젝트 것입니다. 645 00:31:37,640 --> 00:31:39,900 안녕, 얘들 아. 646 00:31:39,900 --> 00:31:40,920 한모금? 647 00:31:40,920 --> 00:31:45,330 그럼에 몇 가지를 통해 가자 당신이 사용했던 CS50 라이브러리, 648 00:31:45,330 --> 00:31:49,072 모든 학기, 대부분 사용자의 입력을 얻을 수 있습니다. 649 00:31:49,072 --> 00:31:53,140 당신도 알다시피, 당신은 CS50 포함 다만 CS50.h을 수행하여 라이브러리하는 650 00:31:53,140 --> 00:31:55,660 모든 프로토 타입을 포함 같이 사용할 수있는 기능, 651 00:31:55,660 --> 00:31:58,640 하는 GetString 및 getInt를하고, GetFloat, 등등. 652 00:31:58,640 --> 00:32:02,870 이 한 줄은 CS50에있다 문자열을 정의 라이브러리, 어떤 653 00:32:02,870 --> 00:32:05,380 너희들은 모두 지금까지 알고 * 그냥 문자입니다. 654 00:32:05,380 --> 00:32:07,900 >> 하지만 그건에서 들여다 보자 하는 GetString가 어떻게 작동하는지. 655 00:32:07,900 --> 00:32:10,010 이것은 매우 축소 된 버전입니다. 656 00:32:10,010 --> 00:32:15,090 당신은 CS50 라이브러리 파일을 풀 수 있습니다 manuals.CS50.net, 내가 생각에서. 657 00:32:15,090 --> 00:32:16,750 그리고 당신은을 통해 읽을 수 있습니다 실제 기능. 658 00:32:16,750 --> 00:32:19,330 하지만이 중 일부를 커버 중요한 부분. 659 00:32:19,330 --> 00:32:23,870 그래서 우리는 몇 가지 버퍼를 만들었습니다 일부 용량. 660 00:32:23,870 --> 00:32:27,570 그리고 우리가 할 일은 우리가 하나의 문자를 얻을 수있다 표준 N에서 한 번에. 661 00:32:27,570 --> 00:32:30,910 즉, 여기서 사용자 입력의 콘솔의 텍스트. 662 00:32:30,910 --> 00:32:33,430 >> 그래서 우리는 읽을거야 그것은 새로운 아니다 정도로 긴 문자 663 00:32:33,430 --> 00:32:37,220 라인은, 파일의 끝으로 안되는 표준 입력을 종료한다. 664 00:32:37,220 --> 00:32:45,690 그리고 우리가 읽는 모든 문자에 대해, 그 캐릭터가 추가 끝 경우 665 00:32:45,690 --> 00:32:50,120 문자 수에 우리가 읽은 에서 그것은 우리의 능력보다 더 666 00:32:50,120 --> 00:32:53,490 그 다음 우리가 할 일은 우리가 크기를 조정은 우리의 버퍼가 두 배 길어 있도록. 667 00:32:53,490 --> 00:32:56,950 그래서 다시,이 버퍼에 대해 보호 오버 플로우 공격, 당신은 읽기 때문에 668 00:32:56,950 --> 00:32:58,315 한 번에 문자. 669 00:32:58,315 --> 00:33:02,290 그리고 어떤 시점에서 당신도 읽어 경우 많은, 당신은 당신의 버퍼를 확장합니다. 670 00:33:02,290 --> 00:33:03,330 당신은 두 가지로 곱합니다. 671 00:33:03,330 --> 00:33:05,510 그리고 당신은 더 많은 공간이있다. 672 00:33:05,510 --> 00:33:09,120 >> 그렇지 않으면, 당신은 추가 버퍼에 문자. 673 00:33:09,120 --> 00:33:15,080 그리고 당신은 모든 판독 한 후 자, 버퍼를 축소 할 것이다 674 00:33:15,080 --> 00:33:18,510 다시 정상 크기로, 추가 널 (NULL) 종료 후 반환합니다. 675 00:33:18,510 --> 00:33:21,880 676 00:33:21,880 --> 00:33:24,960 이제 getInt를 살펴 보자. 677 00:33:24,960 --> 00:33:27,700 너희들이이 글을 읽을 수 있습니까? 678 00:33:27,700 --> 00:33:30,710 나는 약간 확대 할 수 있습니다. 679 00:33:30,710 --> 00:33:33,410 680 00:33:33,410 --> 00:33:34,660 나는 컴퓨터가 작동하는 방법을 모르겠어요. 681 00:33:34,660 --> 00:33:40,840 682 00:33:40,840 --> 00:33:41,270 마음 마십시오. 683 00:33:41,270 --> 00:33:42,520 제대로 확대 할 수 없습니다. 684 00:33:42,520 --> 00:33:47,500 685 00:33:47,500 --> 00:33:48,770 >> 이건 정말 어렵다. 686 00:33:48,770 --> 00:33:49,180 미안 해요. 687 00:33:49,180 --> 00:33:51,490 그냥이 살펴 보자. 688 00:33:51,490 --> 00:33:57,140 그래서 getInt를하는 일은 처음 읽고 있습니다 하는 GetString에서 문자열에있는 689 00:33:57,140 --> 00:33:59,250 우리는 이전에 구현했습니다. 690 00:33:59,250 --> 00:34:02,945 그리고 중요한 부분은 여기에서주의해야 할 하는 경우는, 끝이 공유 691 00:34:02,945 --> 00:34:06,400 독서는 실제로 문자열처럼, 우리는 단지에 INT_MAX를 반환 692 00:34:06,400 --> 00:34:09,409 실패를 나타냅니다. 693 00:34:09,409 --> 00:34:12,645 왜 우리가 대신 INT_MAX를 반환 않습니다 음의 1 또는 1? 694 00:34:12,645 --> 00:34:13,895 어떤 아이디어? 695 00:34:13,895 --> 00:34:16,853 696 00:34:16,853 --> 00:34:19,350 >> 청중 : [청취] 음 하나에 1. 697 00:34:19,350 --> 00:34:20,070 >> ANGELA LI : 네, 그렇습니다. 698 00:34:20,070 --> 00:34:24,560 그래서 그냥하려는 방법이 더 가능성이있어 입력 1 또는 음의 1에 메시지가 표시 될 때 699 00:34:24,560 --> 00:34:27,469 n 번째와 n 번째 어떤 maxes하십시오. 700 00:34:27,469 --> 00:34:27,969 그것은 거대한입니다. 701 00:34:27,969 --> 00:34:29,690 당신은 아마 그것을 사용하지 않을거야. 702 00:34:29,690 --> 00:34:32,690 따라서이 문서의 정보는 다음의 제품에 디자인 결정처럼 반드시 할 실수 있는지 확인 703 00:34:32,690 --> 00:34:38,540 오류를 반환하거나 반환하지 않습니다 1, 어떤 구문 분석 할 수 있습니다 704 00:34:38,540 --> 00:34:41,199 정답으로. 705 00:34:41,199 --> 00:34:45,110 라인이 존재하지 않게되면 우리는 INT-MAX를 반환합니다. 706 00:34:45,110 --> 00:34:48,090 그렇지 않으면, 우리는, sscanf 또는을 사용하여 이는 scanf와 같습니다. 707 00:34:48,090 --> 00:34:49,449 그러나 문자열에서 읽습니다. 708 00:34:49,449 --> 00:34:54,310 >> 그리고 우리는이 포맷이 %의 i %의 C이며 문자열입니다. 709 00:34:54,310 --> 00:34:57,440 그리고 우리는 시도와 일치 사용자가 우리에게 준 무엇이든. 710 00:34:57,440 --> 00:35:01,420 우리는 일치 사물의 수를 원하는 1로, 그 말은 우리 만 711 00:35:01,420 --> 00:35:04,940 정말 정수를 일치시킬 어쩌면 흰색으로 둘러싸인 712 00:35:04,940 --> 00:35:06,840 공간, 아마. 713 00:35:06,840 --> 00:35:10,710 이 경우, 당신이 뭔가에 넣어 경우 바처럼, 바, 전혀 일치하지 않습니다 714 00:35:10,710 --> 00:35:14,400 있을 필요가 있기 때문 시작의 정수입니다. 715 00:35:14,400 --> 00:35:17,060 그래서 0을 설정하지 sscan을. 716 00:35:17,060 --> 00:35:19,640 그래서 당신은 반환하지 않습니다. 717 00:35:19,640 --> 00:35:23,850 >> 또는, 당신이 뭔가에 넣어 경우 같은 1, 2, 3, A, B, C, 즉 경기 718 00:35:23,850 --> 00:35:27,180 정수뿐만 아니라 두 그 후 문자. 719 00:35:27,180 --> 00:35:29,990 그래서 sscanf에서 2, 반환되는 이상적이지도 있습니다. 720 00:35:29,990 --> 00:35:34,620 당신이 원하지 않는 1, 2, 3, A, B, C 유효한 INT합니다. 721 00:35:34,620 --> 00:35:36,990 그래서도 작동하지 않습니다. 722 00:35:36,990 --> 00:35:38,530 그러나 당신이 50 뭔가에 넣어 말한다. 723 00:35:38,530 --> 00:35:42,460 그 의미 %에게 내가 일치합니다 그것은 N로 읽어 얻을 것이다. 724 00:35:42,460 --> 00:35:44,790 그리고 지금, n은 숫자 50를 포함합니다. 725 00:35:44,790 --> 00:35:46,110 그리고 당신은 그것을 반환 할 수 있습니다. 726 00:35:46,110 --> 00:35:49,270 >> 그렇지 않으면, 당신은 다시 시도를 누르십시오. 727 00:35:49,270 --> 00:35:55,790 그리고 그것은 단지까지 또 다시 간다 당신은 사용자로부터 적절한 입력을 얻을. 728 00:35:55,790 --> 00:35:56,891 질문 있는가? 729 00:35:56,891 --> 00:36:02,182 >> 청중 : 그래서 당신이 있다면 인쇄하기 [청취]에 대해 getInt의 값 730 00:36:02,182 --> 00:36:06,250 그냥 정수와 최대 것입니까? 731 00:36:06,250 --> 00:36:07,440 >> ANGELA LI : 네. 732 00:36:07,440 --> 00:36:11,780 당신의 getInt를 사용하는 경우에, 당신은 가정해야 당신은에 n 번째 최대 싶지 않아 733 00:36:11,780 --> 00:36:15,328 당신이려고하고 있기 때문에, 유효한 입력 할 수 즉 나쁜 것을 가정합니다. 734 00:36:15,328 --> 00:36:27,740 >> 청중 : 우리는 문자 C를 가지고하지 않은 경우 1, 2, 3, 샘 넣어 누군가, 그럴 735 00:36:27,740 --> 00:36:29,430 아직 1, 2, 3 일? 736 00:36:29,430 --> 00:36:29,750 >> ANGELA LI : 그것은 작동 할 것이라는 점을 생각한다. 737 00:36:29,750 --> 00:36:33,340 하지만 당신은에 123Sam을 원하지 않는 사용자가 값을 입력 할 수. 738 00:36:33,340 --> 00:36:34,670 정말 INT 아니다. 739 00:36:34,670 --> 00:36:36,840 그래서 그것은 공정하지 않는 것 int로서 구문 분석합니다. 740 00:36:36,840 --> 00:36:40,910 741 00:36:40,910 --> 00:36:42,160 OK. 742 00:36:42,160 --> 00:36:45,800 이 경우의 움직임을 보자 인터넷에에. 743 00:36:45,800 --> 00:36:49,120 그래서 HTTP는 언어가 아닙니다. 744 00:36:49,120 --> 00:36:56,060 HTTP는 표준의 단지 세트입니다 어떻게 클라이언트에서 물건을 보내, 745 00:36:56,060 --> 00:36:57,280 즉, 서버에, 당신의. 746 00:36:57,280 --> 00:36:59,730 즉, 웹에서 다른 사람의. 747 00:36:59,730 --> 00:37:02,900 >> 그래서 HTTP는 하이퍼 텍스트를 의미합니다 프로토콜을 전송합니다. 748 00:37:02,900 --> 00:37:04,610 그것은 마음과 영혼의 전체 웹의. 749 00:37:04,610 --> 00:37:07,050 하이퍼 부분 그냥 HTML을 의미한다. 750 00:37:07,050 --> 00:37:10,690 전송은 같은 클라이언트입니다 당신은에 요청을 보내드립니다 751 00:37:10,690 --> 00:37:13,060 응답을주는 서버. 752 00:37:13,060 --> 00:37:16,380 그리고 프로토콜은 어떻게, 그냥입니다 당신은 서버가 동작 할 것으로 예상? 753 00:37:16,380 --> 00:37:19,960 그리고 당신은 어떻게 행동 해야하는 이 작업을 간소화 할 수 있도록 754 00:37:19,960 --> 00:37:21,920 통신 프로세스? 755 00:37:21,920 --> 00:37:26,650 >> 그래서 HTTP 요청이 매우 비슷. 756 00:37:26,650 --> 00:37:28,070 GET 요청의 유형입니다. 757 00:37:28,070 --> 00:37:31,220 너희들은 GET 요청을 보았다 및 POST 요청. 758 00:37:31,220 --> 00:37:36,690 거기에 그 두 번째는, / 날, 그건 다만 URI 또는​​ 어디의 URL 759 00:37:36,690 --> 00:37:38,140 호스트에서 가고 싶어요. 760 00:37:38,140 --> 00:37:44,140 따라서이 요청은 요구하고있다 www.facebook.com / 나 같은 페이지. 761 00:37:44,140 --> 00:37:45,300 그리고 GET 요청입니다. 762 00:37:45,300 --> 00:37:51,020 그리고이 HTTP/1.1, 그건 단지 당신이 사용하는 HTTP의 버전. 763 00:37:51,020 --> 00:37:55,020 그것은 거의 항상 1.1입니다. 764 00:37:55,020 --> 00:37:56,880 >> 그리고 무리가있다 너무 다른 물건. 765 00:37:56,880 --> 00:38:02,510 당신이 경우에 당신은 실제로 다음을 볼 수 있습니다 당신이있을 때 콘솔을 열어 766 00:38:02,510 --> 00:38:03,770 웹을 검색. 767 00:38:03,770 --> 00:38:07,290 응답은 보일 미리보기 다음과 같습니다. 768 00:38:07,290 --> 00:38:09,620 상단 부분은, 다시 한 HTTP의 유형은 사용중인 769 00:38:09,620 --> 00:38:12,310 상태 코드 하였다. 770 00:38:12,310 --> 00:38:14,700 그래서 200 OK는 모든 것을 밖으로 일입니다. 771 00:38:14,700 --> 00:38:16,200 여기에 귀하의 콘텐츠입니다. 772 00:38:16,200 --> 00:38:17,390 귀하의 콘텐츠가 따를 것입니다. 773 00:38:17,390 --> 00:38:21,730 그리고 그것은 당신을 말할 것이다 어떤 종류의 너무 내용과 다른 물건. 774 00:38:21,730 --> 00:38:24,620 >> 상태 코드는 몇 가지가 있습니다 당신이 알아야 할 중요한 것들. 775 00:38:24,620 --> 00:38:26,460 200 OK는 모든 것이 황금과 같다. 776 00:38:26,460 --> 00:38:28,490 모든 작품. 777 00:38:28,490 --> 00:38:29,710 403. 778 00:38:29,710 --> 00:38:32,910 당신이 잊었 으면 당신은 아마 본 적이이 제대로 뭔가를 chmod를합니다. 779 00:38:32,910 --> 00:38:34,510 그것은 당신이하지 않는 것을 의미한다 오른쪽 권한 780 00:38:34,510 --> 00:38:36,210 서버가 액세스 할 수 있습니다. 781 00:38:36,210 --> 00:38:38,110 그것은 마치, 아니, 당신은 그것을 볼 수 없습니다. 782 00:38:38,110 --> 00:38:39,780 (404)는 그 일이 존재하지 않는 것을 의미한다. 783 00:38:39,780 --> 00:38:40,400 를 찾을 수 없습니다. 784 00:38:40,400 --> 00:38:41,640 당신은 아마 많은 것을 보았다. 785 00:38:41,640 --> 00:38:45,510 >> 500 내부 서버 오류는 일반적으로 어떤 측면에 잘못된처럼 786 00:38:45,510 --> 00:38:46,460 서버의. 787 00:38:46,460 --> 00:38:50,830 그래서 당신은 pset7을 구현했을 때, 당신이 PHP 오류가 있다면, 당신은 할 수 788 00:38:50,830 --> 00:38:53,890 실제로 페이지로 이동 참조 PHP 오류 물건의 전체 무리. 789 00:38:53,890 --> 00:38:56,900 그러나 일반적으로 발생하지 않습니다, 웹 사이트는 정말하고 싶지 않기 때문에 790 00:38:56,900 --> 00:38:58,830 자신의 사이트가 깨진 이유를 말해. 791 00:38:58,830 --> 00:39:03,370 그들은 아마 돌아갑니다 500 내부 서버 오류가 있습니다. 792 00:39:03,370 --> 00:39:06,120 >> 그리고 나는 주전자 해요 (418)이있다. 793 00:39:06,120 --> 00:39:07,910 에 대한 모든 이야기가있다 그 이유는 일입니다. 794 00:39:07,910 --> 00:39:09,860 하지만 당신은 그것에 대해 읽을 수 있습니다 자신의 시간에. 795 00:39:09,860 --> 00:39:11,450 전체 무리가있다 너무 다른 상태 코드. 796 00:39:11,450 --> 00:39:12,700 그러나 이러한 것들 당신은 알아야한다. 797 00:39:12,700 --> 00:39:15,660 798 00:39:15,660 --> 00:39:18,610 그럼 HTML에 대해 이야기하자. 799 00:39:18,610 --> 00:39:22,180 HTML, 기억은 없습니다 프로그래밍 언어입니다. 800 00:39:22,180 --> 00:39:23,510 그것은 마크 업 언어입니다. 801 00:39:23,510 --> 00:39:25,210 즉, 내용을 설명을 의미합니다. 802 00:39:25,210 --> 00:39:30,440 그것은 HTML 문서가 어떻게 생겼는지를 알려줍니다 어떻게 생겼는지 등 여부 803 00:39:30,440 --> 00:39:32,230 그러나 그것은 어떻게 구성 있어요. 804 00:39:32,230 --> 00:39:36,110 >> 그래서 구조를 정의하고 웹 페이지의 의미. 805 00:39:36,110 --> 00:39:37,830 이것이 문단처럼,. 806 00:39:37,830 --> 00:39:40,060 이 정렬 된 목록입니다. 807 00:39:40,060 --> 00:39:42,360 이 내 페이지의 섹션 같습니다. 808 00:39:42,360 --> 00:39:43,260 여기에 제목입니다. 809 00:39:43,260 --> 00:39:44,310 그것은 그 같은 물건을 수행합니다. 810 00:39:44,310 --> 00:39:48,770 그것은 그 어떤 스타일을하지 않기 때문에 즉, CSS에서 할거야. 811 00:39:48,770 --> 00:39:50,270 그리고 시리즈처럼 보인다 의 중첩 된 태그. 812 00:39:50,270 --> 00:39:54,720 그래서 정말 기본의 예를 사용하는 HTML 페이지, 당신은 DOCTYPE이 813 00:39:54,720 --> 00:39:56,720 거기 선언. 814 00:39:56,720 --> 00:40:00,940 >> 이 DOCTYPE 선언은 우리는 HTML5를 사용하는 말. 815 00:40:00,940 --> 00:40:03,370 그럼 당신은 큰 HTML 태그가 있습니다. 816 00:40:03,370 --> 00:40:05,230 그것은 머리와 몸이 포함되어 있습니다. 817 00:40:05,230 --> 00:40:06,970 머리 안쪽에, 당신은 제목이. 818 00:40:06,970 --> 00:40:12,950 즉, 제목에가는거야 브라우저의 바. 819 00:40:12,950 --> 00:40:15,810 우리는 연결하는 링크 태그가 외부 스타일 시트에. 820 00:40:15,810 --> 00:40:19,880 그리고 우리는 끌어 스크립트가 외부 자바 스크립트에서뿐만 아니라. 821 00:40:19,880 --> 00:40:23,750 >> 그리고 우리의 몸 안에 실제로 페이지에 표시되는 것을. 822 00:40:23,750 --> 00:40:28,210 우리는 단락을 가지고 다음했습니다 그 단락 내부 이미지입니다. 823 00:40:28,210 --> 00:40:32,000 이 하나는 고양이의 사진입니다. 824 00:40:32,000 --> 00:40:35,840 주의 그 이미지 태그 자체를 닫습니다. 825 00:40:35,840 --> 00:40:41,760 그래서 그 대신 이미지와 개방 그리고 당신은, 다른 / 이미지 일 826 00:40:41,760 --> 00:40:47,500 다만이 작은 슬래시가 여기에, 어느를 닫습니다. 827 00:40:47,500 --> 00:40:53,670 그리고 이미지 태그는이 키가 값 속성은 고도를했다. 828 00:40:53,670 --> 00:40:56,970 즉, 대체 텍스트의 그 마우스를 위로 이동하면 발생합니다. 829 00:40:56,970 --> 00:41:03,170 >> 대부분의 HTML 요소는 몇 가지 키 값이 당신이 다양한, 그것을 줄 수있는 것들 830 00:41:03,170 --> 00:41:04,420 정의. 831 00:41:04,420 --> 00:41:06,230 832 00:41:06,230 --> 00:41:08,705 그래. 833 00:41:08,705 --> 00:41:09,955 >> 청중 : [청취]. 834 00:41:09,955 --> 00:41:17,510 835 00:41:17,510 --> 00:41:19,680 >> ANGELA LI : 음, 그래서의 태그의 속성. 836 00:41:19,680 --> 00:41:25,320 당신이 jQuery를 사용하고 있다면, 당신은 할 수 선택 image.getAttribute을한다. 837 00:41:25,320 --> 00:41:27,930 그리고 당신은 검색 할 수 있습니다 alt 속​​성을 얻을. 838 00:41:27,930 --> 00:41:31,040 그리고 그것은 당신에게 새끼 고양이를 제공합니다. 839 00:41:31,040 --> 00:41:37,400 당신은 HTML, 입력의 형태를 기억한다면 요소 이름 특성을 갖습니다. 840 00:41:37,400 --> 00:41:41,870 그리고 그것은 PHP가 전송하는 데 사용하는 무엇 양식이 제출 요청. 841 00:41:41,870 --> 00:41:44,762 842 00:41:44,762 --> 00:41:50,064 >> 청중 : 당신이 뭔가를 언급 했 당신이이 Kittens.jpg를 사용하거나 경우에 방법에 대한 843 00:41:50,064 --> 00:41:54,410 누락이 뭔가 폴더 나 다른 파일을 파일? 844 00:41:54,410 --> 00:41:54,750 >> ANGELA LI : 예. 845 00:41:54,750 --> 00:41:57,010 그래서이 상대라는거야 경로, 난 포기하지 않을거야 때문에 846 00:41:57,010 --> 00:41:58,740 당신의 전체 경로. 847 00:41:58,740 --> 00:42:05,160 당신은 fopen을 할 경우이 때 C에서처럼 일부 파일, 당신 fopen을 hi.txt, 그 경우 848 00:42:05,160 --> 00:42:09,190 hi.txt은 동일 될 것으로 예상 디렉토리, 당신은 그것을 더 제공하지 않는 849 00:42:09,190 --> 00:42:11,530 복잡한 경로입니다. 850 00:42:11,530 --> 00:42:14,900 >> 청중 : 그래서 당신이 지정할 수 어떤 폴더를 [청취]? 851 00:42:14,900 --> 00:42:17,660 >> ANGELA LI : 네. 852 00:42:17,660 --> 00:42:19,370 그리고 당신은이 작업을 수행하는 방법을 찾아 볼 수 있습니다. 853 00:42:19,370 --> 00:42:23,480 하지만이 Kittens.jpg를 얻을하려는 경우 상위 디렉토리, 나는 할 것 854 00:42:23,480 --> 00:42:24,730 .. /이 Kittens.jpg. 855 00:42:24,730 --> 00:42:29,680 856 00:42:29,680 --> 00:42:30,930 그래. 857 00:42:30,930 --> 00:42:32,960 858 00:42:32,960 --> 00:42:33,760 미안 해요. 859 00:42:33,760 --> 00:42:34,045 그래. 860 00:42:34,045 --> 00:42:35,700 오, 이런, 내가 질문을 잊어 버렸습니다. 861 00:42:35,700 --> 00:42:36,460 질문은 무엇입니까? 862 00:42:36,460 --> 00:42:39,570 아, 문제는,이 Kittens.jpg했다 같은 디렉토리에있을 것으로 예상? 863 00:42:39,570 --> 00:42:40,630 그리고이 경우에,이다. 864 00:42:40,630 --> 00:42:44,030 하지만 당신은 그것을 어떤 경로를 제공 할 수 있습니다 그럴 필요하지 않도록. 865 00:42:44,030 --> 00:42:47,100 866 00:42:47,100 --> 00:42:48,350 좋은? 867 00:42:48,350 --> 00:42:50,190 868 00:42:50,190 --> 00:42:51,350 >> CSS. 869 00:42:51,350 --> 00:42:55,420 그래서 CSS는 HTML처럼되지 않습니다 프로그래밍 언어입니다. 870 00:42:55,420 --> 00:42:58,250 CSS 스타일링 규칙의 단지 시리즈입니다. 871 00:42:58,250 --> 00:43:00,130 그것은 캐스 케이 딩 스타일 시트를 의미합니다. 872 00:43:00,130 --> 00:43:03,910 그리고 당신은 함께 사용 스타일의 페이지에 HTML과 함께. 873 00:43:03,910 --> 00:43:08,140 그래서 세 가지 방법이 있습니다 당신은 그것을 포함 할 수 있습니다. 874 00:43:08,140 --> 00:43:11,950 당신이 그것을 할 수있는 방법 중 하나는 머리에 당신의 HTML의 부분은, 당신은 할 수 875 00:43:11,950 --> 00:43:15,410 스타일 태그를 열고 스틱 일부 CSS는 거기에 규칙. 876 00:43:15,410 --> 00:43:16,759 그것은 꽤 괜찮아요. 877 00:43:16,759 --> 00:43:17,228 그래. 878 00:43:17,228 --> 00:43:21,449 >> 청중 : 당신은 그 넣어 수 하자, 그 사이에 스타일 태그 879 00:43:21,449 --> 00:43:22,860 말, 몸과 / 바디. 880 00:43:22,860 --> 00:43:27,400 그리고 당신은 유행에 따라 디자인하는 것 본체 만합니다. 881 00:43:27,400 --> 00:43:28,840 >> ANGELA LI : 당신은 할 수 있습니다. 882 00:43:28,840 --> 00:43:29,590 그것은 작동합니다. 883 00:43:29,590 --> 00:43:33,990 스타일이기 때문에하지만,하지 말아야 에 가야 메타 데이터 종류 884 00:43:33,990 --> 00:43:35,890 문서의 머리. 885 00:43:35,890 --> 00:43:38,280 몸은 정말 만 포함해야 무엇 실제로 것 886 00:43:38,280 --> 00:43:39,420 페이지에 표시됩니다. 887 00:43:39,420 --> 00:43:42,155 >> 청중 : 그래서 당신은 스타일을 넣어 것 유행에 따라 당신의 머리에 888 00:43:42,155 --> 00:43:43,930 전체 웹 페이지, 오른쪽? 889 00:43:43,930 --> 00:43:44,300 >> ANGELA LI : 네. 890 00:43:44,300 --> 00:43:50,470 그래서 이러한 CSS 규칙은 여기에 스타일을 넣어 에 따라 전체 페이지에 적용됩니다 891 00:43:50,470 --> 00:43:52,100 자신의 선택기. 892 00:43:52,100 --> 00:43:57,090 그래서 그것을 할 수있는 더 좋은 방법이 아닌 것입니다 당신의 머리에 스타일 태그를 가지고, 893 00:43:57,090 --> 00:44:00,430 당신은 외부 스타일이 연결이 나는 당신을 보여 주었다 시트처럼 894 00:44:00,430 --> 00:44:01,980 앞의 예. 895 00:44:01,980 --> 00:44:05,920 어떤이가하는 것은 시도하고 발견입니다 style.css 파일 한 다음 끌어 896 00:44:05,920 --> 00:44:08,470 와 사용하는 등 페이지의 스타일. 897 00:44:08,470 --> 00:44:10,500 그리고 당신의 style.css 것 다만 다음과 같습니다. 898 00:44:10,500 --> 00:44:13,330 그냥 CSS의 무리 일 것입니다. 899 00:44:13,330 --> 00:44:16,210 >> 그리고 마지막으로, 또 다른 방법은 거기에 CSS를 포함 할 수있는 당신이 정말로 900 00:44:16,210 --> 00:44:17,480 이제까지는 안된다. 901 00:44:17,480 --> 00:44:18,950 그것은 호출 인라인 스타일입니다. 902 00:44:18,950 --> 00:44:22,650 그리고 모든 HTML 요소는 수 스타일 특성을. 903 00:44:22,650 --> 00:44:26,320 그리고 그 스타일 속성에, 당신은 그것을 CSS 규칙을 제공 할 수 있습니다. 904 00:44:26,320 --> 00:44:29,140 따라서이 경우에는, 어떤 DIV 난 여기 정의는 것 905 00:44:29,140 --> 00:44:32,580 검은 배경을 가지고 흰색 텍스트 색상. 906 00:44:32,580 --> 00:44:35,620 하지만 당신은이 작업을 수행해서는 안하기 때문에 어떤 이것은 당신의 스타일을두고 있습니다 않습니다 907 00:44:35,620 --> 00:44:36,850 당신의 HTML 내부. 908 00:44:36,850 --> 00:44:40,530 >> 그리고 나는 우리가 HTML에 대해 이야기 한 것을 알고 구조 및 CSS 스타일이다. 909 00:44:40,530 --> 00:44:42,790 이 작업을 수행 할 경우, 혼합 그들을 함께. 910 00:44:42,790 --> 00:44:44,550 그리고 그것은 아주 깨끗하지 않습니다. 911 00:44:44,550 --> 00:44:45,800 그래서하지 않습니다. 912 00:44:45,800 --> 00:44:47,690 913 00:44:47,690 --> 00:44:52,100 우리는 거기, CSS의 예를 사용하여 단지 HTML의 몸을 선택 914 00:44:52,100 --> 00:44:52,380 다큐멘터리. 915 00:44:52,380 --> 00:44:55,110 그리고 우리는 모든 것이, 같은거야 만화 산세 될 것이다. 916 00:44:55,110 --> 00:44:57,290 나는 또한 사용하지 않는 것이 좋습니다. 917 00:44:57,290 --> 00:44:59,940 하지만 당신은 그렇게 할 수 있습니다. 918 00:44:59,940 --> 00:45:03,140 >> 여기 두 번째 규칙은, 돼가 의 요소를 선택하는 방법 919 00:45:03,140 --> 00:45:04,880 ID 메인 페이지로. 920 00:45:04,880 --> 00:45:11,690 그래서 어떤 HTML 요소, 나는 ID가 말했다 = 주, 나는 그에게 줄거야 921 00:45:11,690 --> 00:45:16,020 20 픽셀의 여백 모든 것을 정렬, 센터의 모든 텍스트,. 922 00:45:16,020 --> 00:45:19,030 마지막 것은 CSS 클래스로 선택합니다. 923 00:45:19,030 --> 00:45:24,450 그래서 준 페이지의 모든 요소 부분 클래스는, 내가 만들려고 해요 924 00:45:24,450 --> 00:45:26,602 밝은 파란색의 배경 색상. 925 00:45:26,602 --> 00:45:29,380 926 00:45:29,380 --> 00:45:30,040 네. 927 00:45:30,040 --> 00:45:30,700 즉, 내가 가진 전부입니다. 928 00:45:30,700 --> 00:45:30,890 질문? 929 00:45:30,890 --> 00:45:34,020 >> 청중 : 무엇과 해시 주 전에합니까? 930 00:45:34,020 --> 00:45:36,310 >> ANGELA LI : 문제는 무엇이며, 메인하기 전에 해시? 931 00:45:36,310 --> 00:45:40,770 이 경우, 소재 해쉬 CSS는 ID에 의해 선택을 의미한다. 932 00:45:40,770 --> 00:45:47,490 내가 약간의 HTML 요소를 가지고이 경우, 같은 divID는 = 주,이 CSS 규칙의 선택 933 00:45:47,490 --> 00:45:49,260 ID의 주를 가진 것. 934 00:45:49,260 --> 00:45:53,940 마찬가지로, 앞의 기간 섹션 CSS 클래스로 선택하거나 선택입니다 935 00:45:53,940 --> 00:45:56,558 HTML 클래스를 선택합니다. 936 00:45:56,558 --> 00:46:00,940 >> 청중 : 왜 전에이가 배경 색상에서 6? 937 00:46:00,940 --> 00:46:01,270 >> ANGELA LI : 네. 938 00:46:01,270 --> 00:46:03,360 그래서 질문은, 왜이됩니다 6 전에 해시? 939 00:46:03,360 --> 00:46:05,320 이 해시 다릅니다. 940 00:46:05,320 --> 00:46:09,500 이것은 당신이 제공하는 것을 의미한다 16 진수 색상. 941 00:46:09,500 --> 00:46:14,260 그래서 진수 색상이 단지 색을 나타냅니다. 942 00:46:14,260 --> 00:46:17,860 그리고 당신은 RGB 트리플을 기억 할 때 당신은 법의학 PSET 했습니까? 943 00:46:17,860 --> 00:46:18,770 이 유사하다. 944 00:46:18,770 --> 00:46:21,590 처음 두 자리는 대표 얼마나 많은 빨강 색상입니다. 945 00:46:21,590 --> 00:46:23,260 두 번째 두 대표 얼마나 많은 녹색. 946 00:46:23,260 --> 00:46:25,450 그리고 세 번째는 대표 얼마나 많은 블루. 947 00:46:25,450 --> 00:46:30,060 해시이가는입니다 색을 나타냅니다. 948 00:46:30,060 --> 00:46:35,660 >> 따라서 0, 0, 0, 0, 0, 0에서 아무것도 F, F, F, F, F까지, F는 유효합니다. 949 00:46:35,660 --> 00:46:39,550 그것은 할 수있는 몇 가지 유효한 색깔의 브라우저에 표시 될 수있다. 950 00:46:39,550 --> 00:46:39,790 질문? 951 00:46:39,790 --> 00:46:43,590 >> 청중 : 차이 무엇입니까 ID에 의해 클래스에서 사용하고 계십니까? 952 00:46:43,590 --> 00:46:46,470 >> ANGELA LI : 문제는 무엇이며 차이점 953 00:46:46,470 --> 00:46:48,950 ID와 클래스에서 사용하고 계십니까? 954 00:46:48,950 --> 00:46:54,390 만에 하나의 요소를 가질 수 있습니다 주어진 ID가 HTML 문서. 955 00:46:54,390 --> 00:46:58,660 내 페이지에 따라서 단 한 가지 ID의 주를 가질 수있다. 956 00:46:58,660 --> 00:47:02,580 그래서 당신이 그것을 사용하는 헤더입니다. 957 00:47:02,580 --> 00:47:03,850 이는 내비게이션이다. 958 00:47:03,850 --> 00:47:05,230 이 바닥 글입니다. 959 00:47:05,230 --> 00:47:09,070 당신이 할 수 있기 때문에 클래스는, 다른 많은 HTML 요소에 클래스를 적용 960 00:47:09,070 --> 00:47:10,100 당신이 원하는대로. 961 00:47:10,100 --> 00:47:15,860 >> 그래서 예를 들어, I, 클래스 섹션을했다 이상은 아마이 때문에 962 00:47:15,860 --> 00:47:17,540 내 페이지의 섹션을 참조하십시오. 963 00:47:17,540 --> 00:47:20,200 당신은 단지 많은 사람을 가질 수있어 같은과 페이지의 요소 964 00:47:20,200 --> 00:47:23,190 클래스하지만 특정 ID를 가진 단 하나. 965 00:47:23,190 --> 00:47:25,600 >> 청중 : 그래서 점이 나타냅니다 클래스? 966 00:47:25,600 --> 00:47:26,090 >> ANGELA LI : 네. 967 00:47:26,090 --> 00:47:27,380 점은 클래스를 나타냅니다. 968 00:47:27,380 --> 00:47:29,990 969 00:47:29,990 --> 00:47:31,540 쿨. 970 00:47:31,540 --> 00:47:32,370 그게 다, 사람입니다. 971 00:47:32,370 --> 00:47:33,544 감사합니다. 972 00:47:33,544 --> 00:48:13,380 >> [박수] 973 00:48:13,380 --> 00:48:14,290 >> ZAMYLA CHAN : 안녕하세요, 여러분. 974 00:48:14,290 --> 00:48:14,880 나는 Zamyla 해요. 975 00:48:14,880 --> 00:48:18,830 PHP를 담당 할거야, MVC 및 SQL 오늘. 976 00:48:18,830 --> 00:48:22,350 977 00:48:22,350 --> 00:48:26,110 내가있을거야 재료의 많은 취재 꽤 많이 될 것입니다 978 00:48:26,110 --> 00:48:29,100 바로 pset7 중. 979 00:48:29,100 --> 00:48:29,700 괜찮아요. 980 00:48:29,700 --> 00:48:31,180 그래서 PHP는 무엇입니까? 981 00:48:31,180 --> 00:48:35,150 PHP는 PHP 하이퍼 텍스트를 의미합니다 처리기. 982 00:48:35,150 --> 00:48:38,740 그래서, 그 자체로, 재귀 정말 멋진 일이다, 이름을 지정합니다. 983 00:48:38,740 --> 00:48:42,220 PHP는 서버 측 스크립팅 언어, 그리고 백엔드를 제공 984 00:48:42,220 --> 00:48:44,610 그리고 논리적 토대 우리의 웹 사이트. 985 00:48:44,610 --> 00:48:48,520 >> 그래서 안젤라는 HTML에 대해 많은 이야기 과 CSS 구조를 만들 것 986 00:48:48,520 --> 00:48:49,530 웹 사이트의. 987 00:48:49,530 --> 00:48:53,210 하지만 당신은 그것을 변경하는 것을 원하는 경우 콘텐츠를 동적으로 또는 경우는 다릅니다 988 00:48:53,210 --> 00:48:55,240 사용자 또는에 근거 특정 조건? 989 00:48:55,240 --> 00:48:57,060 PHP이 필요한 이유는 바로 여기입니다 990 00:48:57,060 --> 00:49:02,610 이제 일반적으로, PHP는 몇 걸릴 수 있습니다 같은 일을 구현하는 작은 선 991 00:49:02,610 --> 00:49:07,380 PHP 메모리를 처리하기 때문에 C에서 그의 프로그래머를위한 관리, 992 00:49:07,380 --> 00:49:11,170 우리의 malloc에​​ 데 반대 무료, 그런 것. 993 00:49:11,170 --> 00:49:15,430 >> 하지만 PHP는 해석하기 때문에 언어, 일반적으로, 그것은 실행할 수도 994 00:49:15,430 --> 00:49:19,540 조금 더 천천히 C 이상, 어떤 컴파일 된 언어입니다. 995 00:49:19,540 --> 00:49:23,150 우리는 프로그램을 이동하고 있기 때문에 언어의가 살펴 보자 방법 996 00:49:23,150 --> 00:49:24,570 구문은 다릅니다. 997 00:49:24,570 --> 00:49:28,770 의하지에 매우 조심합시다 이것에 혼란스러워. 998 00:49:28,770 --> 00:49:33,750 당신이 있는지 여부, PHP 구문을 따라서 HTML의 내부에 PHP를 포함 999 00:49:33,750 --> 00:49:40,430 당신은 파일 자체 또는. PHP 파일 내에서 개방의 코드를 묶어야합니다 1000 00:49:40,430 --> 00:49:45,270 PHP와 같은 폐쇄 PHP 태그 화면처럼, 다음과 같습니다. 1001 00:49:45,270 --> 00:49:46,660 >> PHP의 변수. 1002 00:49:46,660 --> 00:49:51,490 하나 하나의 변수는 시작됩니다 의 이름 앞에 $ 기호 1003 00:49:51,490 --> 00:49:53,150 당신의 변수입니다. 1004 00:49:53,150 --> 00:49:56,530 이제, PHP에서 변수는 느슨하게 입력하는, 이는 필요하지 않은 것을 의미합니다 1005 00:49:56,530 --> 00:50:00,030 정보 데이터의 종류를 표시하기 위해 당신이 그것을 선언 할 때입니다. 1006 00:50:00,030 --> 00:50:03,505 그러나,이 말은하지 않는 사람들 전혀 타입이 없습니다. 1007 00:50:03,505 --> 00:50:09,370 나는 변수를 선언하고 단지 설정이 경우 그것은 1에 해당하고, 그 때 나는 선언 1008 00:50:09,370 --> 00:50:15,140 다른 변수, "1"에 해당 설정 다음 다른 한 1.0도, 1009 00:50:15,140 --> 00:50:19,410 평등의 유형에 따라 I 비교할 경우 운영자 내가 사용 1010 00:50:19,410 --> 00:50:21,830 모든 유형에서 다음 그들은 동일 할 것입니다. 1011 00:50:21,830 --> 00:50:25,570 하지만이 있는지 확인하려면 종류가 동일, PHP는 여전히 수행 할 수 있습니다 1012 00:50:25,570 --> 00:50:28,690 우리는 표시하지 않더라도, 그 때 우리는 어떤 유형 1013 00:50:28,690 --> 00:50:31,170 먼저 파일을 확인합니다. 1014 00:50:31,170 --> 00:50:33,990 >> 이제, PHP에서, 비록 우리는 프로그램에서 전환 한 1015 00:50:33,990 --> 00:50:39,360 C에서 언어는, 우리는 여전히이 우리의 다만이 같은 조건의 경우 신뢰할 수있는. 1016 00:50:39,360 --> 00:50:43,270 우리는 여전히 우리의 동안 루프가 이처럼, 당신은의 위치를​​ 넣어 당신의 1017 00:50:43,270 --> 00:50:47,300 다음 조건과 루프의 몸. 1018 00:50:47,300 --> 00:50:50,360 그리고 우리는 또한 루프를 위해 우리가 일반적으로 다음과 같다있다. 1019 00:50:50,360 --> 00:50:55,330 나는 모든 반복하고 싶었 그래서 경우 구 psets를하고 제출하고 전화 1020 00:50:55,330 --> 00:50:58,960 기능 submitPset, 그때 내가 할 수있는 여기있는 너희들 모든 1021 00:50:58,960 --> 00:50:59,830 이 점에 의해 수행. 1022 00:50:59,830 --> 00:51:01,080 그런데 축하합니다. 1023 00:51:01,080 --> 00:51:04,560 1024 00:51:04,560 --> 00:51:07,550 >> 카메라를 들어, 사람들이 말, 감사합니다. 1025 00:51:07,550 --> 00:51:11,220 지금, 당신은이를 사용하지 않은 경우 루프, 다음 PHP 사실도 1026 00:51:11,220 --> 00:51:13,580 가지 foreach는 루프를 촉구했다. 1027 00:51:13,580 --> 00:51:22,210 그래서 정수의 배열, 0이 있다면 내지 8, 배열하여 pset에 저장 1028 00:51:22,210 --> 00:51:27,290 그때 나는 foreach 루프를 수있는 psets를 모든 숫자를 반복. 1029 00:51:27,290 --> 00:51:30,640 그리고 나도 같은 부를 수 8 번 기능, 1030 00:51:30,640 --> 00:51:31,910 내가 전에 그랬던 것처럼. 1031 00:51:31,910 --> 00:51:36,480 따라서 각 루프에 대한이 좋은 때문에 당신은 필요가 없습니다 당신이 모르는 경우에 1032 00:51:36,480 --> 00:51:39,470 배열의 길이에 당신 ,이 foreach 루프를 사용했다 1033 00:51:39,470 --> 00:51:42,800 당신을 위해 처리됩니다. 1034 00:51:42,800 --> 00:51:45,410 >> 그래서 배열로 psets를했다. 1035 00:51:45,410 --> 00:51:46,700 의 그 살펴 보자. 1036 00:51:46,700 --> 00:51:51,290 PHP의 배열은 일반적으로 동일하다 우리가 C에 가지고 있던 사람 곳 1037 00:51:51,290 --> 00:51:52,960 당신은 배열을 선언 할 수 있습니다. 1038 00:51:52,960 --> 00:51:59,200 그리고 여기, 나는 빈 배열을 선언 할 수 있습니다 다음을 사용하여 동적으로 구축 1039 00:51:59,200 --> 00:52:00,850 정수로 인덱스. 1040 00:52:00,850 --> 00:52:04,140 인덱스 0 그래서, 저장하는거야 정수 1을 지명했다​​. 1041 00:52:04,140 --> 00:52:09,210 내 목록의 인덱스 1에서, 나는 갈거야 2 값을 저장합니다. 1042 00:52:09,210 --> 00:52:12,670 그리고 세 번째, 색인에 두 번째 숫자, 내가 갈거야 1043 00:52:12,670 --> 00:52:14,870 숫자 12을 저장합니다. 1044 00:52:14,870 --> 00:52:17,250 >> 자,이 점에서 괜찮습니다 잘 작동 작동합니다. 1045 00:52:17,250 --> 00:52:21,310 그러나 그것이 나에게 중요한 말 각 인덱스는 어떨지. 1046 00:52:21,310 --> 00:52:24,500 나를 위해, 인덱스 0을 의미하는 방법 많은 고양이는 내가있다. 1047 00:52:24,500 --> 00:52:27,400 그리고 인덱스 1 수단 방법 많은 올빼미 내가있다. 1048 00:52:27,400 --> 00:52:29,450 그리고 그 다음은 몇 개를 의미합니다. 1049 00:52:29,450 --> 00:52:34,140 그럼, 대신, 그 지정 0에 관한 기억해야하는 1050 00:52:34,140 --> 00:52:38,090 올빼미에 고양이 1, 내가 사용할 수 있습니다 것을 의미 연관 배열, 1051 00:52:38,090 --> 00:52:42,260 대신 내 인덱스로 정수, 실제로 문자열을 사용할 수 있습니다. 1052 00:52:42,260 --> 00:52:43,290 >> 그래서 이것은 매우 유용합니다. 1053 00:52:43,290 --> 00:52:47,130 그리고 당신은 기본적으로 그냥 교체했습니다 문자열 정수. 1054 00:52:47,130 --> 00:52:50,074 그리고 거기 당신에게이 연관 배열. 1055 00:52:50,074 --> 00:52:51,930 그래. 1056 00:52:51,930 --> 00:52:55,800 >> 청중 : 거기에 이유가 있나요 초 밑줄 1057 00:52:55,800 --> 00:52:58,750 부분, 내 목록에 배열을 가지고 있기 때문에. 1058 00:52:58,750 --> 00:53:01,330 >> ZAMYLA CHAN :이 질문은했다입니다 거기 거기의 이유 1059 00:53:01,330 --> 00:53:03,320 내 및 목록 사이에 밑줄? 1060 00:53:03,320 --> 00:53:03,610 아니오. 1061 00:53:03,610 --> 00:53:06,878 그게 내가 명명있어 단지 방법 내 변수입니다. 1062 00:53:06,878 --> 00:53:11,670 >> 대상 : 처음에 라인, 그것은 하나의 단어입니다. 1063 00:53:11,670 --> 00:53:12,560 >> ZAMYLA CHAN : 나의 사과. 1064 00:53:12,560 --> 00:53:13,410 나는 그 문제를 해결합니다. 1065 00:53:13,410 --> 00:53:13,620 그래. 1066 00:53:13,620 --> 00:53:15,460 그들은 같은 변수 이름이어야합니다. 1067 00:53:15,460 --> 00:53:16,710 좋은 캐치. 1068 00:53:16,710 --> 00:53:19,640 1069 00:53:19,640 --> 00:53:19,950 OK. 1070 00:53:19,950 --> 00:53:22,610 그래서 문자열로 이동하게 연결. 1071 00:53:22,610 --> 00:53:27,500 나는 두 개의 문자열을 가지고 싶어하는 경우 나는 그들을 연결할 수 있습니다 1072 00:53:27,500 --> 00:53:28,550 도트 연산자. 1073 00:53:28,550 --> 00:53:32,440 그래서 이름으로 마일로가있는 경우 다음 마지막 이름과 바나나, 1074 00:53:32,440 --> 00:53:35,430 도트 연산자와 함께 연접 다음 사이에 공간을두고 1075 00:53:35,430 --> 00:53:39,210 마일로가 포함 된 문자열을 만들 것입니다 그때 에코 또는 수 바나나,, 1076 00:53:39,210 --> 00:53:41,280 오히려, 인쇄. 1077 00:53:41,280 --> 00:53:44,465 >> 에코의 말하기,의 얘기하자 몇 가지 유용한 정보 - 1078 00:53:44,465 --> 00:53:44,920 죄송합니다. 1079 00:53:44,920 --> 00:53:46,030 미안 해요. 1080 00:53:46,030 --> 00:53:52,920 몇 가지 유용한 PHP 함수. 1081 00:53:52,920 --> 00:53:56,240 그래서 우리는이 - 1082 00:53:56,240 --> 00:53:57,444 기술적 인 문제. 1083 00:53:57,444 --> 00:53:58,694 한 두 번째. 1084 00:53:58,694 --> 00:54:16,960 1085 00:54:16,960 --> 00:54:19,550 나는 그것을 보냈습니다. 1086 00:54:19,550 --> 00:54:22,320 파워 포인트 문제. 1087 00:54:22,320 --> 00:54:29,200 그리고 우리는 PHP의 기능을 다시합니다. 1088 00:54:29,200 --> 00:54:32,010 1089 00:54:32,010 --> 00:54:35,150 그리고 우리는 PHP의 기능을 다시합니다. 1090 00:54:35,150 --> 00:54:39,890 >> 그래서 우리는, 함수가 필요 한 곳 당신이 파일에 전달하는 경우, 여기에 그냥 1091 00:54:39,890 --> 00:54:43,300 파일의 예를 그 내가 전달한 있습니다 1092 00:54:43,300 --> 00:54:47,605 그 다음은 PHP 코드를 포함합니다 내가 표시 해당 파일의. 1093 00:54:47,605 --> 00:54:49,940 그리고 그것은 높은 것을 평가합니다 1094 00:54:49,940 --> 00:54:54,450 그런 다음 우리는 또한, 에코 가지고있는 printf를하기 위해 병렬입니다. 1095 00:54:54,450 --> 00:54:57,710 종료 깰 평행, 블록을 종료하는 1096 00:54:57,710 --> 00:54:58,570 당신이 처한 코드 1097 00:54:58,570 --> 00:55:03,180 그리고 빈 검사 여부를 주어진 변수는 널 (null) 또는 0 또는처럼 1098 00:55:03,180 --> 00:55:08,482 무엇이든은 비어있는 것으로 동일시된다. 1099 00:55:08,482 --> 00:55:09,438 그래. 1100 00:55:09,438 --> 00:55:15,341 >> 청중 : 문자열 연결 도트 연산자 하나는, PHP에서, 그 1101 00:55:15,341 --> 00:55:20,158 그것은 사용의 JavaScript와 동일한 연결에 대한 점은 플러스를 의미한다? 1102 00:55:20,158 --> 00:55:27,440 그래서 전체 이름, 당신은 달러가있을 수 먼저 +에 서명 한 후 + 마지막? 1103 00:55:27,440 --> 00:55:27,720 >> ZAMYLA CHAN : 네. 1104 00:55:27,720 --> 00:55:32,150 그래서 질문은 PHP의 여부를 우리 같은 문자열 연결을 사용할 수 있습니다 1105 00:55:32,150 --> 00:55:33,890 플러스와 자바 스크립트와 같이. 1106 00:55:33,890 --> 00:55:35,410 그리고 요셉은 나중에 들어갈 것입니다. 1107 00:55:35,410 --> 00:55:36,620 나는 그가 그에서 슬라이드를 가지고 생각합니다. 1108 00:55:36,620 --> 00:55:37,570 사실은 다르다. 1109 00:55:37,570 --> 00:55:41,310 그래서 자바 스크립트에서, 당신은 사용할 필요가 문자열을 연결하려면 더하기. 1110 00:55:41,310 --> 00:55:43,280 그리고 PHP에서, 당신은에있다 도트 연산자를 사용합니다. 1111 00:55:43,280 --> 00:55:44,530 그래서 그들은 다르다. 1112 00:55:44,530 --> 00:55:46,680 1113 00:55:46,680 --> 00:55:46,910 >> OK. 1114 00:55:46,910 --> 00:55:49,500 그래서 지금 우리가 다룬 것을 이 PHP는, 어디 그것을 수행 1115 00:55:49,500 --> 00:55:50,490 정말 편리? 1116 00:55:50,490 --> 00:55:54,470 글쎄요, 그것은 편리 할 때 우리 우리의 HTML로 결합 할 수 있습니다. 1117 00:55:54,470 --> 00:55:59,550 그래서 우리의 PHP는 우리에게 힘을 줄 것이다 페이지의 HTML 콘텐츠를 사전에 변경 1118 00:55:59,550 --> 00:56:00,000 그로드. 1119 00:56:00,000 --> 00:56:04,270 그래서 서로 다른 조건에 기초 보통의 특정 사용자 1120 00:56:04,270 --> 00:56:07,520 로그인, 우리가 표시 할 수 있습니다 다른 정보. 1121 00:56:07,520 --> 00:56:08,800 린다, 당신은 질문이있는 거죠? 1122 00:56:08,800 --> 00:56:15,510 >> 청중 : 당신이 연결할 수 있습니다 또한 정수? 1123 00:56:15,510 --> 00:56:16,760 >> ZAMYLA CHAN : 그렇습니다, 당신은 할 수있다. 1124 00:56:16,760 --> 00:56:19,530 1125 00:56:19,530 --> 00:56:23,270 당신이 할 수있는 경우에 따라서 질문은 정수 등을 연결 1126 00:56:23,270 --> 00:56:28,920 지금, 우리는 MVC로 이동 variable.s하는 우리가 사용하는 패러다임 1127 00:56:28,920 --> 00:56:33,380 pset7 및 웹 디자이너를 많이 사용 파일 코드 구성 1128 00:56:33,380 --> 00:56:34,490 자신의 웹 사이트에. 1129 00:56:34,490 --> 00:56:35,870 M 모델을 의미합니다. 1130 00:56:35,870 --> 00:56:41,450 그리고 기본적으로 모델 파일을 다룰 것이다 데이터베이스와의 상호 작용. 1131 00:56:41,450 --> 00:56:44,640 파일보기, 그들은 관련 웹 사이트의 미학. 1132 00:56:44,640 --> 00:56:47,550 그리고 컨트롤러 핸들 사용자 요청, 구문 분석 1133 00:56:47,550 --> 00:56:49,230 데이터, 기타 로직을 수행합니다. 1134 00:56:49,230 --> 00:56:52,520 >> pset7, 우리는 모델을 결합 및 제어기를 포함한다. 1135 00:56:52,520 --> 00:56:55,880 그리고 우리는 단지 컨트롤러를 불러 공용 디렉토리에 넣어. 1136 00:56:55,880 --> 00:57:01,730 그리고 뷰의 이미지, 우리는로 사용 템플릿 디렉토리에있는 템플릿. 1137 00:57:01,730 --> 00:57:07,260 그래서 여기이 그림은 대표 와 부문의 같은 종류의 1138 00:57:07,260 --> 00:57:10,510 모델과 보라색 컨트롤러 여기에 왼쪽과 1139 00:57:10,510 --> 00:57:12,770 오른쪽에 볼 수 있습니다. 1140 00:57:12,770 --> 00:57:16,020 그래서이 개략도이다 당신의 일부 영업 시간이나에서 볼 수도 1141 00:57:16,020 --> 00:57:19,130 우리는 당신으로 드로잉 한 다이어그램 당신의 PSET을 파악했다. 1142 00:57:19,130 --> 00:57:25,030 >> 그래서 여기, 주어진 컨트롤러, 모델 컨트롤러, 우리는 기능을 가지고 1143 00:57:25,030 --> 00:57:30,490 SQL 쿼리와 관련이 데이터베이스, PHP 로직을 실행. 1144 00:57:30,490 --> 00:57:32,370 어쩌면 당신은 찾아 볼 것 야후의 주식 1145 00:57:32,370 --> 00:57:34,590 금융. 1146 00:57:34,590 --> 00:57:37,390 아니면, 당신은 단지에 검사 할 것 사용자가 제출 한 여부를 확인 1147 00:57:37,390 --> 00:57:40,250 받기 전에 이미 형성 페이지를 방문했다. 1148 00:57:40,250 --> 00:57:43,390 그리고 당신은 렌더링 것 여기에 형성. 1149 00:57:43,390 --> 00:57:48,210 해당 양식은 제출 된 후에 사용자에 의해, 한 조치 1150 00:57:48,210 --> 00:57:53,470 폼의 HTML 태그에 지정 페이지를 나타냅니다 그것이 1151 00:57:53,470 --> 00:57:55,620 데이터를 반환합니다. 1152 00:57:55,620 --> 00:57:59,460 >> 그래서 모든 정보가 될 컨트롤러로 다시 전송. 1153 00:57:59,460 --> 00:58:02,620 그런 다음 당신은 아마 조금 더 할 것 그것에 논리와 어쩌면 몇 가지를 실행 1154 00:58:02,620 --> 00:58:06,510 더 많은 SQL 데이터베이스 쿼리 및 다음, 마지막으로, 잘 마련 1155 00:58:06,510 --> 00:58:11,930 정보의 포장 세트 당신 것 다른 템플릿에 전달할 1156 00:58:11,930 --> 00:58:13,950 그 정보를 표시. 1157 00:58:13,950 --> 00:58:17,030 이제, 우리는 어떻게 실제로 포장 하는가 그 정보까지? 1158 00:58:17,030 --> 00:58:23,980 음, 우리는 렌더링라는 기능이 그에서 functions.php 파일에 있었다 1159 00:58:23,980 --> 00:58:29,950 pset7, 당신의 이름을 전달 곳 파일, 템플릿의 이름. 1160 00:58:29,950 --> 00:58:32,160 >> 그리고 당신은 또한에 전달 연관 배열. 1161 00:58:32,160 --> 00:58:37,150 그리고 그 연관 배열을 나타냅니다 다른 정보 1162 00:58:37,150 --> 00:58:39,040 당신이 전달한 것인지 1163 00:58:39,040 --> 00:58:43,460 이제 무슨 일이있는 일정이 될 것 이 예제는 그 키 또는, 1164 00:58:43,460 --> 00:58:47,070 오히려, 연관의 키 배열은, 사람들은있을거야 무엇입니까 1165 00:58:47,070 --> 00:58:51,050 템플릿에 의해 일정하게 될 것으로 예상, 그것이 필요로 알고 있으므로 1166 00:58:51,050 --> 00:58:53,990 메시지라는 것을 또는 이름이라고. 1167 00:58:53,990 --> 00:58:56,940 그리고 오른쪽에있는 것들, 실제 값 때문에이 경우, 누구의 1168 00:58:56,940 --> 00:59:00,750 좋은 소년 마일로, 그가요 변경되는 값이어야합니다 1169 00:59:00,750 --> 00:59:05,610 제어기마다 변경하는 것이 또는 특정 조건에 기초 1170 00:59:05,610 --> 00:59:07,120 안으로 그 합격 1171 00:59:07,120 --> 00:59:12,790 >> 그래서 여기에 템플릿, 우리는 볼 우리 HTML 특수 문자를 사용하고, 1172 00:59:12,790 --> 00:59:16,370 어떤은 기본적으로 우리가 원하는 것을 의미한다 피어 문자열을 얻기 위해 그 1173 00:59:16,370 --> 00:59:17,580 사용자가 넣을 1174 00:59:17,580 --> 00:59:20,880 그리고 우리는 대체 할 거기에 메시지입니다. 1175 00:59:20,880 --> 00:59:26,110 그럼 우리가 실제로 볼 때 파일, 구체적인 1176 00:59:26,110 --> 00:59:28,700 정보가 전달 된 1177 00:59:28,700 --> 00:59:33,850 어떻게 작품을 렌더링 키가 유의 그 결합의 열쇠 1178 00:59:33,850 --> 00:59:37,170 배열, 그가 변수 여기에 이​​름. 1179 00:59:37,170 --> 00:59:40,720 그래서에서 해당 키의 값 연관 배열은됩니다 1180 00:59:40,720 --> 00:59:41,970 변수의 값입니다. 1181 00:59:41,970 --> 00:59:44,800 1182 00:59:44,800 --> 00:59:46,040 >> 이제, SQL로 이동하자. 1183 00:59:46,040 --> 00:59:48,010 그것은 구조적 의미 언어를 쿼리합니다. 1184 00:59:48,010 --> 00:59:50,460 그리고 이것은 단지 프로그램입니다 디자인 언어 1185 00:59:50,460 --> 00:59:51,880 데이터베이스를 관리하기위한. 1186 00:59:51,880 --> 00:59:56,860 그리고 그것은 우리를 위해 유용했다 우리 pset7 금융 웹 사이트. 1187 00:59:56,860 --> 01:00:00,510 본질적으로, 그것은 단지 쉬운 방법 객체와 테이블을 추적하고 관리 1188 01:00:00,510 --> 01:00:02,070 서로에 연결합니다. 1189 01:00:02,070 --> 01:00:06,860 자, 여러분의 SQL 데이터베이스의 생각 기본적으로 엑셀 파일로, 아마도, 1190 01:00:06,860 --> 01:00:10,040 여러 탭 시트와. 1191 01:00:10,040 --> 01:00:13,820 >> 그래서 당신은 여러 개의 테이블을 가질 수있다, 아마, 그 서로 연결될. 1192 01:00:13,820 --> 01:00:19,420 그리고 Excel과 같은 많은, 우리는 많이 가지고 우리가 원하는 기능을 제공합니다. 1193 01:00:19,420 --> 01:00:22,300 예를 들어, 우리는 선택할 수 있습니다 특정 행. 1194 01:00:22,300 --> 01:00:24,110 우리는 정보를 삽입 할 수 있습니다. 1195 01:00:24,110 --> 01:00:25,560 우리는 행을 업데이트 할 수 있습니다. 1196 01:00:25,560 --> 01:00:27,440 그리고 우리는 또한 물건을 삭제할 수 있습니다. 1197 01:00:27,440 --> 01:00:30,920 1198 01:00:30,920 --> 01:00:36,560 >> SQL 행을 선택하여 작품을 선택 또는에서 지정된 행의 열 1199 01:00:36,560 --> 01:00:39,640 일정에 맞게 데이터베이스 당신이 표시 기준. 1200 01:00:39,640 --> 01:00:44,930 여기에 사용자가 직접 선택한 항목을 볼 때 *에서 이렇게 집 = Ravenclaw 다음 마법사 1201 01:00:44,930 --> 01:00:48,340 저는 제가 의미하는 * 선택 해요 그 중에 하나 하나 열을 선택 1202 01:00:48,340 --> 01:00:56,340 마법사의 테이블 만있는 경우에서 행 집 열 Ravenclaw 같습니다. 1203 01:00:56,340 --> 01:00:57,840 자,이 순수 또는 SQL입니다. 1204 01:00:57,840 --> 01:01:02,680 I는 phpMyAdmin을,에 들어갔다 그렇다면 우리가 관리하는 데 사용하는 특정 방법 1205 01:01:02,680 --> 01:01:07,040 우리의 SQL 데이터베이스는 다음 내가 삽입 할 수 있습니다 그 phpMyAdmin을 웹 사이트에. 1206 01:01:07,040 --> 01:01:08,290 그리고 그 실행됩니다. 1207 01:01:08,290 --> 01:01:11,280 >> 그러나 우리는 실제로 수행 할 그 PHP 측. 1208 01:01:11,280 --> 01:01:12,580 그래서 우리는 어떻게해야합니까? 1209 01:01:12,580 --> 01:01:20,180 음, 우리는 쿼리 기능을 사용하는 기본적으로 해당 SQL 쿼리를 실행합니다. 1210 01:01:20,180 --> 01:01:21,830 사용? 1211 01:01:21,830 --> 01:01:25,850 자리로, 우리는 특정 전달할 수 우리의 문자열 값을 우리 1212 01:01:25,850 --> 01:01:26,920 교체 할. 1213 01:01:26,920 --> 01:01:32,110 그래서 아마도 내가 다른 저장 해요 curr_house에 값하는 1214 01:01:32,110 --> 01:01:34,400 현재 집 대표 내가 겪고있는 걸. 1215 01:01:34,400 --> 01:01:39,040 그래서 난 자리로 그 전달할 수 물음표와 함께. 1216 01:01:39,040 --> 01:01:43,290 그리고 나는 기본적으로 실행됩니다 I 제외하고, 이전과 같은 일로 1217 01:01:43,290 --> 01:01:45,550 지금은 PHP에있어. 1218 01:01:45,550 --> 01:01:51,300 >> 그리고 쿼리를 반환합니다 연관 배열. 1219 01:01:51,300 --> 01:01:53,470 그리고 행에 저장하는거야. 1220 01:01:53,470 --> 01:01:56,880 이제 쿼리는 항상 실패 할 수 있습니다. 1221 01:01:56,880 --> 01:02:02,870 아마도 SQL 쿼리를 실행할 수 없습니다 테이블이 존재하지 않았기 때문입니다. 1222 01:02:02,870 --> 01:02:04,310 아니면, 열은 존재하지 않았다. 1223 01:02:04,310 --> 01:02:05,400 문제가 발생했습니다. 1224 01:02:05,400 --> 01:02:08,170 음,이 경우에, 당신은하고 싶은 것 여부를 확인해야 1225 01:02:08,170 --> 01:02:09,700 쿼리는 false를 반환했습니다. 1226 01:02:09,700 --> 01:02:15,590 그리고 그 배를 사용하여의 이 작업을 같습니다. 1227 01:02:15,590 --> 01:02:19,660 >> 그리고 나는 또 다른입니다, 사과 메시지를 전달 CS50 기능. 1228 01:02:19,660 --> 01:02:23,435 그리고 당신은 사과, 모두에 보면 진짜로는 apology.php 렌더링. 1229 01:02:23,435 --> 01:02:26,100 1230 01:02:26,100 --> 01:02:26,410 그래. 1231 01:02:26,410 --> 01:02:29,630 >> 청중 : 당신은 그 무엇을 설명 할 수 별 선택과의 사이에 무엇입니까? 1232 01:02:29,630 --> 01:02:30,710 >> ZAMYLA CHAN : 네, 물론입니다. 1233 01:02:30,710 --> 01:02:35,220 그래서 선택과의 사이에있는 별 나는 전체를 선택합니다 것을 의미합니다 1234 01:02:35,220 --> 01:02:37,440 내 테이블에서 전체 행. 1235 01:02:37,440 --> 01:02:41,900 나는 선택 표시 한 수 , 년, 집 이름을 지정합니다. 1236 01:02:41,900 --> 01:02:46,160 그리고 나는 단지 그 세에게 얻을 것 내 테이블의 열. 1237 01:02:46,160 --> 01:02:51,560 내가 선택 *을 말한다면, 그때 나는거야 해당 열의 모든 것을 얻을. 1238 01:02:51,560 --> 01:02:53,760 그럼 난 당신을 갈거야 먼저 다시. 1239 01:02:53,760 --> 01:02:57,656 >> 청중 : 그래서이 여전히 SQL에서, 오른쪽? 1240 01:02:57,656 --> 01:02:59,610 이 쿼리의 경우, 또는이 PHP는? 1241 01:02:59,610 --> 01:03:00,550 >> ZAMYLA CHAN : 우리는 쿼리입니다. 1242 01:03:00,550 --> 01:03:01,940 그래서 이것은 PHP입니다. 1243 01:03:01,940 --> 01:03:06,280 그래서 PHP 함수 쿼리를 사용하여, 우리는 SQL 쿼리를 실행하고 있습니다. 1244 01:03:06,280 --> 01:03:11,988 1245 01:03:11,988 --> 01:03:15,364 >> 청중 : SQL에서 아무거나 대소 문자를 구분, 같은 선택 1246 01:03:15,364 --> 01:03:17,834 또는 마법사 또는 집? 1247 01:03:17,834 --> 01:03:20,050 >> ZAMYLA CHAN은 : 무엇인가 SQL의 대소 문자를 구분에서? 1248 01:03:20,050 --> 01:03:21,760 난 네, 그렇게 생각합니다. 1249 01:03:21,760 --> 01:03:24,620 내가 생각하는 SELECT와 FROM 그리고 대소 문자를 구분 WHERE. 1250 01:03:24,620 --> 01:03:25,535 아니? 1251 01:03:25,535 --> 01:03:27,500 >> ROB 보덴 : 그래서, 그 반대입니다. 1252 01:03:27,500 --> 01:03:32,030 열 이름과 테이블 수단, 이들 모두는 대소 문자를 구분합니다. 1253 01:03:32,030 --> 01:03:35,470 그러나 MySQL의 주요 단어의 같은 에서 선택하고, 그 어디를하지 않습니다 1254 01:03:35,470 --> 01:03:36,140 대소 문자를 구분합니다. 1255 01:03:36,140 --> 01:03:36,420 OK. 1256 01:03:36,420 --> 01:03:37,780 그래서 내가 한 말의 반대. 1257 01:03:37,780 --> 01:03:40,420 그래서 MySQL의 모든 키워드 - 1258 01:03:40,420 --> 01:03:42,670 그 - 어디에서, 선택 대소 문자를 구분하지 않습니다. 1259 01:03:42,670 --> 01:03:44,630 하지만 다른 모든 것들입니다. 1260 01:03:44,630 --> 01:03:45,210 OK. 1261 01:03:45,210 --> 01:03:46,500 정면에있는 당신. 1262 01:03:46,500 --> 01:03:52,041 >> 청중 : 나는 측면에서 행을 $ 경우 둘 이상의 행은, 그 뜻은 않습니다 1263 01:03:52,041 --> 01:03:53,640 그냥 연관 배열이됩니다? 1264 01:03:53,640 --> 01:03:59,550 >> ZAMYLA CHAN : 그래서 질문은 경우 행 , 거기에 하나 이상의 행을 않는이 1265 01:03:59,550 --> 01:04:01,800 그것은 연관 배열이 될? 1266 01:04:01,800 --> 01:04:05,680 따라서 결합의 배열 이미 배열. 1267 01:04:05,680 --> 01:04:10,730 한 행이있다 그래서 경우에도 반환, 당신은 이동해야 할 것 1268 01:04:10,730 --> 01:04:12,690 그 결과의 인덱스 0. 1269 01:04:12,690 --> 01:04:15,316 그리고 당신은 그 첫 번째 행이있을 것이다. 1270 01:04:15,316 --> 01:04:17,482 예, 벨린다? 1271 01:04:17,482 --> 01:04:21,258 >> 청중 : 당신이 ===를 사용하는 경우, 이것은 단지 예입니다? 1272 01:04:21,258 --> 01:04:22,210 또는 다른 사람이 있습니까? 1273 01:04:22,210 --> 01:04:26,815 >> ZAMYLA CHAN : 그래서이 경우, === 유형에서 비교입니다. 1274 01:04:26,815 --> 01:04:29,870 1275 01:04:29,870 --> 01:04:34,050 미안 해요. === 비교입니다 그 유형을 비교합니다. 1276 01:04:34,050 --> 01:04:37,620 그리고 == 모든 종류에 걸쳐 비교합니다. 1277 01:04:37,620 --> 01:04:41,620 >> 청중 : 당신은 무엇을 설명 할 수 행은이 ​​상황에서인가? 1278 01:04:41,620 --> 01:04:45,120 그것은 데이터의 행합니까? 1279 01:04:45,120 --> 01:04:48,100 >> ZAMYLA CHAN : 다음 슬라이드에서, 난 어떤 행을 설명하는 것. 1280 01:04:48,100 --> 01:04:49,890 그래서 들고 괜찮다면 그 것에. 1281 01:04:49,890 --> 01:04:50,620 그리고 나서 다시? 1282 01:04:50,620 --> 01:04:54,699 >> 청중 : 조회 같은 기능을 위해, 렌더링 [청취] 사과? 1283 01:04:54,699 --> 01:04:59,050 1284 01:04:59,050 --> 01:05:03,050 >> ZAMYLA CHAN : 문제가 있는지 여부를했다 이 함수 - 쿼리는 사과 1285 01:05:03,050 --> 01:05:04,510 및 렌더링 - 1286 01:05:04,510 --> 01:05:05,930 PHP에서 공통입니다. 1287 01:05:05,930 --> 01:05:09,460 이러한 것들이 CS50 pset7에 썼다. 1288 01:05:09,460 --> 01:05:09,910 제이? 1289 01:05:09,910 --> 01:05:15,333 >> 청중 : 당신은 말을 필요로 할 때 $ _SESSION은 만 ID에 대한인가? 1290 01:05:15,333 --> 01:05:17,310 또는 당신은 여기에서 말하는거야? 1291 01:05:17,310 --> 01:05:23,440 >> ZAMYLA CHAN : 그래서 질문이었다 때 우리는 특정했다, $ _SESSION을 사용 1292 01:05:23,440 --> 01:05:25,290 우리가 사용하는 전역 변수. 1293 01:05:25,290 --> 01:05:32,080 다음은이 변수는 것입니다 우리의 기능에 로컬합니다. 1294 01:05:32,080 --> 01:05:36,588 그래서 우리는 단지 선언하고 새 변수. 1295 01:05:36,588 --> 01:05:38,460 >> 청중 : 어떻게 사과한다 구현? 1296 01:05:38,460 --> 01:05:40,960 >> ZAMYLA CHAN : 질문은, 어떻게 구현 사과입니까? 1297 01:05:40,960 --> 01:05:44,180 그리고이 사실은 꽤 생각 너희들로 이동하는 것이 좋습니다 1298 01:05:44,180 --> 01:05:49,260 functions.php 부와 봐 사과와 당신이 수있는 방법을 참조하십시오 1299 01:05:49,260 --> 01:05:50,670 스스로를 수행. 1300 01:05:50,670 --> 01:05:55,620 그래서 나는 당신에게 맡길하지만 단지 수 당신이 보면 사과라고, 1301 01:05:55,620 --> 01:06:02,110 다음은 메시지를 걸립니다 그런 다음 사과를 제출하고, 1302 01:06:02,110 --> 01:06:06,570 해당 메시지를 렌더링합니다. 1303 01:06:06,570 --> 01:06:08,240 더 이상 질문? 1304 01:06:08,240 --> 01:06:08,710 나는 질문을 사랑 해요. 1305 01:06:08,710 --> 01:06:09,555 그래서 오는 그들을 유지. 1306 01:06:09,555 --> 01:06:11,888 >> 청중 : [청취] 1307 01:06:11,888 --> 01:06:13,840 에코 또는이 인쇄? 1308 01:06:13,840 --> 01:06:15,900 >> ZAMYLA CHAN : 질문은, 우리는 그냥 둘 수 없었다 1309 01:06:15,900 --> 01:06:17,000 에코 또는 거기에 인쇄. 1310 01:06:17,000 --> 01:06:19,710 그래서 뭔가 할 것 약간 다릅니다. 1311 01:06:19,710 --> 01:06:23,750 즉, 쿼리를 인쇄 한 것 그에 실패 - 1312 01:06:23,750 --> 01:06:27,420 물론, 지금, 우리는 실제로있어 우리의 컨트롤러. 1313 01:06:27,420 --> 01:06:30,350 그래서 우리는 실제로이 없습니다 HTML 여기에 설정합니다. 1314 01:06:30,350 --> 01:06:34,946 apologize.php 렌더링하여 사과 실제로 apology.php로 리디렉션합니다. 1315 01:06:34,946 --> 01:06:39,560 1316 01:06:39,560 --> 01:06:42,200 OK. 1317 01:06:42,200 --> 01:06:45,880 >> 그래서 이제 해결에 가자 에 대한 이전의 질문에 어떻게 1318 01:06:45,880 --> 01:06:47,330 정말 행입니다. 1319 01:06:47,330 --> 01:06:51,960 음, 쿼리가 반환됩니다 행의 배열. 1320 01:06:51,960 --> 01:06:55,020 모든 행이 표시됩니다 연관 배열로. 1321 01:06:55,020 --> 01:07:02,840 나는 몇 가지 SQL 쿼리 및 실행했습니다 그렇다면 그런 다음, 행에 결과를 저장 한 1322 01:07:02,840 --> 01:07:07,850 foreach 루프를 사용하여, 다음 어레이 행 - 이름이 처음이다. 1323 01:07:07,850 --> 01:07:13,170 그리고 내가 전화하려고 해요 이 $ 행의 모든​​ 행. 1324 01:07:13,170 --> 01:07:20,060 >> 그래서, 그 다음에 할 수 반복 지정된 행의 이름 열을 액세스, 1325 01:07:20,060 --> 01:07:22,340 올해 열 및 집 열입니다. 1326 01:07:22,340 --> 01:07:28,010 내가 할 수 없었을 것이라는 점을 참고 때문에 행 인덱스에게, 행이 작업을 수행 1327 01:07:28,010 --> 01:07:29,290 이름은 존재하지 않습니다. 1328 01:07:29,290 --> 01:07:31,970 행은 단지 배열 연관 배열. 1329 01:07:31,970 --> 01:07:34,870 그래서 당신은이 두 가지 수준이있다. 1330 01:07:34,870 --> 01:07:37,170 당신은 행의 배열을 갖게되면, 당신은 그것으로 얻을 수있다. 1331 01:07:37,170 --> 01:07:39,110 그리고 당신은 열을 액세스 할 수 있습니다. 1332 01:07:39,110 --> 01:07:41,636 그것이 명확하게 했습니까? 1333 01:07:41,636 --> 01:07:42,520 네, 앞에? 1334 01:07:42,520 --> 01:07:45,490 >> 청중 : [청취] 열 괄호 [청취] 하시나요? 1335 01:07:45,490 --> 01:07:46,220 >> ZAMYLA CHAN : 뭐라 구요? 1336 01:07:46,220 --> 01:07:49,740 >> 청중 : 오픈 브라켓. 1337 01:07:49,740 --> 01:07:52,420 >> ZAMYLA CHAN : 여기이? 1338 01:07:52,420 --> 01:07:58,520 그 날을 포함 할 수있어 그 변수. 1339 01:07:58,520 --> 01:07:58,670 그래. 1340 01:07:58,670 --> 01:08:01,900 >> 청중 : 인쇄 할 때, 당신이 HTML 코드로 인쇄? 1341 01:08:01,900 --> 01:08:03,110 >> ZAMYLA CHAN : 예. 1342 01:08:03,110 --> 01:08:07,720 내가 인쇄 할 때, 여기에이 내부에 내 템플릿 이제, 1343 01:08:07,720 --> 01:08:10,310 MVC 방식의 내보기. 1344 01:08:10,310 --> 01:08:12,750 그래서 HTML로 인쇄하고 있습니다. 1345 01:08:12,750 --> 01:08:16,670 >> 우리는 개발에 들어갔다 그렇다면 : 관객 이 도구를 실행 한 후, 우리는 할 수 있었다 1346 01:08:16,670 --> 01:08:17,160 실제로 코드에서 해당? 1347 01:08:17,160 --> 01:08:18,410 >> ZAMYLA CHAN : 그건 좋아요 질문, 그래. 1348 01:08:18,410 --> 01:08:22,359 당신은 개발자 도구에 들어갔다 그렇다면 파이어 폭스 파이어 버그를 사용하거나에 1349 01:08:22,359 --> 01:08:26,109 크롬, 다음 네, 당신은 할 수 특정 HTML을 참조하십시오. 1350 01:08:26,109 --> 01:08:28,470 그래서 $ 행 [ "이름"] 보여주지 않을 것입니다. 1351 01:08:28,470 --> 01:08:32,524 그것은 어느 쪽을 표시합니다 이름은 해당 행에 있습니다. 1352 01:08:32,524 --> 01:08:36,268 >> 청중 : 그냥 일반적인 문제 어떤 부엌이되고, TD는 정의? 1353 01:08:36,268 --> 01:08:37,672 왜 것이 우리가 들리지?​​] 1354 01:08:37,672 --> 01:08:41,850 1355 01:08:41,850 --> 01:08:44,814 >> ZAMYLA CHAN 표 행 TR, 테이블은 열을 TD. 1356 01:08:44,814 --> 01:08:48,060 1357 01:08:48,060 --> 01:08:49,310 OK. 1358 01:08:49,310 --> 01:08:55,771 1359 01:08:55,771 --> 01:08:56,835 >> 청중 : 네, 테이블 데이터입니다. 1360 01:08:56,835 --> 01:08:58,770 >> ZAMYLA CHAN : 테이블 데이터. 1361 01:08:58,770 --> 01:08:59,894 그래. 1362 01:08:59,894 --> 01:09:08,670 >> 청중 : 그것은 행의하는 열은 열 같은 치료 방법은? 1363 01:09:08,670 --> 01:09:08,910 >> ZAMYLA CHAN : 죄송합니다. 1364 01:09:08,910 --> 01:09:10,570 당신은 반복 할 수 있습니까? 1365 01:09:10,570 --> 01:09:14,450 >> 청중 : 어떻게 것 행을 시각화? 1366 01:09:14,450 --> 01:09:16,310 >> ZAMYLA CHAN : 어떻게 시각화 할 것 방법의 어떤 종류의 행? 1367 01:09:16,310 --> 01:09:21,796 당신이 말하는 여기에 행 또는 TR 행? 1368 01:09:21,796 --> 01:09:22,630 >> 청중 : 행. 1369 01:09:22,630 --> 01:09:25,229 >> ZAMYLA CHAN : 여기이 행? 1370 01:09:25,229 --> 01:09:28,620 I는이를 시각화 것 내 쿼리를 실행합니다. 1371 01:09:28,620 --> 01:09:38,729 그리고 OK, I는 N 0 하나가 말한다 조건과 일치하는 행의 양 1372 01:09:38,729 --> 01:09:40,510 당신은 쿼리했다고. 1373 01:09:40,510 --> 01:09:43,740 그래서 일부 행 번호가 있습니다. 1374 01:09:43,740 --> 01:09:51,450 행 그래서, $ 행,는 각 배열에있는 해당 행의 하나. 1375 01:09:51,450 --> 01:09:58,110 그래서 그 중 하나의 경우에도, 그건 여전히 일치하는 행의 배열. 1376 01:09:58,110 --> 01:10:03,010 >> 그래서 다음에, 예를 들어,이있다 당신이 인출 할 때와 유사 1377 01:10:03,010 --> 01:10:05,390 사용자의 캐시. 1378 01:10:05,390 --> 01:10:10,810 그리고 기준이 곳이 있었다 ID는 세션 ID와 동일. 1379 01:10:10,810 --> 01:10:14,250 정말 하나의 행이 있습니다 그와 일치 할 수 있습니다. 1380 01:10:14,250 --> 01:10:18,960 하지만 여전히 행은 하나의 행이 반환됩니다. 1381 01:10:18,960 --> 01:10:22,620 그래서 행으로 이동해야 할 것, 인덱스 0에 인덱스 캐시 1382 01:10:22,620 --> 01:10:26,195 실제로 캐시에 도착. 1383 01:10:26,195 --> 01:10:29,650 >> 청중 : 인쇄 기능입니다 같은 일을 에코에? 1384 01:10:29,650 --> 01:10:30,670 >> ZAMYLA CHAN : 예. 1385 01:10:30,670 --> 01:10:31,190 예. 1386 01:10:31,190 --> 01:10:33,304 동일의 에코를 인쇄합니다. 1387 01:10:33,304 --> 01:10:42,400 >> 청중 : foreach 루프인가 행에 인덱스 유일한 방법? 1388 01:10:42,400 --> 01:10:46,110 >> ZAMYLA CHAN은 : foreach 루프인가 당신이 할 수있는 유일한 방법 1389 01:10:46,110 --> 01:10:47,030 행을 반복? 1390 01:10:47,030 --> 01:10:47,180 아니오. 1391 01:10:47,180 --> 01:10:51,000 또한 제공, 루프를 사용할 수 있습니다 당신은 길이를 알고 1392 01:10:51,000 --> 01:10:53,024 행의 배열의 형태가됩​​니다. 1393 01:10:53,024 --> 01:10:58,500 >> 청중 : 당신이 그것을 액세스 할 수 [청취]로 행을 사용하여? 1394 01:10:58,500 --> 01:11:01,640 >> ZAMYLA CHAN : 그래서 당신이 그것을 액세스 할 수 없습니다 당신이하지 않으면 그냥 행을 사용하여 1395 01:11:01,640 --> 01:11:05,160 foreach 루프는 제공 당신은 행을 선언하지 않았습니다. 1396 01:11:05,160 --> 01:11:08,150 1397 01:11:08,150 --> 01:11:09,660 예. 1398 01:11:09,660 --> 01:11:10,810 네, 흰색. 1399 01:11:10,810 --> 01:11:13,990 >> 청중 : TR 및 TD 그래서 무엇을해야합니까? 1400 01:11:13,990 --> 01:11:16,790 >> ZAMYLA CHAN : 그래서 TR과 TD는 HTML 태그입니다. 1401 01:11:16,790 --> 01:11:19,590 TR은 시작을 나타냅니다 테이블 행의. 1402 01:11:19,590 --> 01:11:26,625 그리고 각각의 TD를 나타냅니다 새 테이블의 데이터 열. 1403 01:11:26,625 --> 01:11:32,275 >> 청중 : 무엇을 행의 시각에 대한 같은 단지 SQL을 상상하고, 어떻게 1404 01:11:32,275 --> 01:11:33,510 그들은 행이 있습니다. 1405 01:11:33,510 --> 01:11:35,980 [청취]. 1406 01:11:35,980 --> 01:11:36,390 >> ZAMYLA CHAN : 네. 1407 01:11:36,390 --> 01:11:37,630 즉, 좋은 점입니다. 1408 01:11:37,630 --> 01:11:41,510 당신은 같은 행을 시각화 할 수 있습니다 같은 Excel 표에서 단지 1409 01:11:41,510 --> 01:11:44,540 행의 목록입니다. 1410 01:11:44,540 --> 01:11:46,870 OK. 1411 01:11:46,870 --> 01:11:47,230 괜찮아요. 1412 01:11:47,230 --> 01:11:50,740 그래서 지금 우리는 경우, 선택에 떠나면 더 이상 질문은 우리가 거​​, 거기에 없습니다 1413 01:11:50,740 --> 01:11:52,970 삽입에 가서. 1414 01:11:52,970 --> 01:11:58,220 나는 몇 가지에 삽입하고 싶었 그래서 경우 테이블의 특정 열을 삽입 1415 01:11:58,220 --> 01:12:02,320 값은, 나 자신을 삽입 할 수 있습니다 올해 7 Ravenclaw에. 1416 01:12:02,320 --> 01:12:07,245 그러나 때로는 중복이있을 수 있습니다 값, 우리는 pset7에서 본으로 할 때 우리 1417 01:12:07,245 --> 01:12:09,240 우리의 포트폴리오를 업데이트했다. 1418 01:12:09,240 --> 01:12:15,610 >> 따라서이 경우, 우리는 ON 사용할 우리가하지 않도록 KEY UPDATE를 복제 1419 01:12:15,610 --> 01:12:18,280 같은 여러 행을 저장 가치가 아니라 업데이트합니다. 1420 01:12:18,280 --> 01:12:21,780 1421 01:12:21,780 --> 01:12:25,560 그럼 우리가 실제로 업데이트가, 이는 삽입되지 않습니다. 1422 01:12:25,560 --> 01:12:30,100 그것은 당신이 업데이트 그냥 업데이트의 주어진있는 특정 테이블에 1423 01:12:30,100 --> 01:12:34,403 기준 한 다음, 마지막으로, 삭제, 이는 매우 비슷한 일을한다. 1424 01:12:34,403 --> 01:12:40,200 >> 청중 : 수 당신 간단히 중복 키를 통해 이동? 1425 01:12:40,200 --> 01:12:40,850 >> ZAMYLA CHAN : 네. 1426 01:12:40,850 --> 01:12:48,340 기본적으로 여기에, 나는 INSERT INTO이 gringotts, 갈레온는, 이들 값이다. 1427 01:12:48,340 --> 01:12:56,900 그러나 ID는, 아마도, 고유 키입니다 값은 MySQL의 테이블에 설정합니다. 1428 01:12:56,900 --> 01:13:06,750 그래서 이미 ID가 설정 한 경우, 그때 나는 새 행을 삽입 할 수 없습니다. 1429 01:13:06,750 --> 01:13:10,961 이미 존재하지 않는이 경우, 나는 그것을 업데이 트해야합니다. 1430 01:13:10,961 --> 01:13:16,040 1431 01:13:16,040 --> 01:13:17,722 흰색의 중간에. 1432 01:13:17,722 --> 01:13:21,570 >> 청중 : 그래서, 삭제, 삽입, 업데이트 선택, 그 모두 사용할 수 있습니다 1433 01:13:21,570 --> 01:13:22,875 로컬 [들리지? 1434 01:13:22,875 --> 01:13:27,320 1435 01:13:27,320 --> 01:13:29,630 >> ZAMYLA CHAN : 그래서 삽입, 업데이트, 삭제 및 1436 01:13:29,630 --> 01:13:31,120 선택 모든 SQL 쿼리입니다. 1437 01:13:31,120 --> 01:13:34,970 그래서 때마다 당신은 SQL을 사용하고, 당신은 사용할 수있는있을 것이다. 1438 01:13:34,970 --> 01:13:38,226 1439 01:13:38,226 --> 01:13:40,706 >> 청중 : 지난 퀴즈로 돌아 가기 - 1440 01:13:40,706 --> 01:13:44,178 처리 문제가 발생했습니다 당신은 테이블이 있고 원한다면 1441 01:13:44,178 --> 01:13:52,610 하나의 시험 점수를 삽입하고 삽입 당신의 이름을 못하게 그렇게 1442 01:13:52,610 --> 01:13:54,594 [청취] 친구의 시험 점수. 1443 01:13:54,594 --> 01:13:59,060 당신이이 삽입에 어떻게 할 것인가? 1444 01:13:59,060 --> 01:14:02,490 >> ZAMYLA CHAN : 그래서 질문하고 있었다 이전 중기 질문입니다. 1445 01:14:02,490 --> 01:14:04,320 나는 어떤 잘 모르는 것 같아요 하나는 바로 지금이다. 1446 01:14:04,320 --> 01:14:06,790 아마 그 후에, 당신이 원하는 경우 내가 할 수있는 다음, 와서 나에게 보여 1447 01:14:06,790 --> 01:14:08,155 확실히 당신에게 팁을 제공합니다. 1448 01:14:08,155 --> 01:14:11,250 1449 01:14:11,250 --> 01:14:15,460 그러나 같은 삽입 것들을 말하기 때 다른 사람의 점수에 기여 1450 01:14:15,460 --> 01:14:18,800 ,의 얘기하자 안 SQL 주입 공격. 1451 01:14:18,800 --> 01:14:22,050 그래서 SQL 주입 공격은 본질적으로 여기서 누군가가 소요 1452 01:14:22,050 --> 01:14:27,680 의 낮은 보안의 장점 당신이 데이터를 복용하는 방법입니다. 1453 01:14:27,680 --> 01:14:35,660 >> 그래서 여기에, 그냥 CS50 금융처럼, 우리가 로그인 할 때, 우리는에 입력 할 수있는 1454 01:14:35,660 --> 01:14:39,510 로그인 폼에 사용자 이름, 첫 번째 텍스트 상자 및 1455 01:14:39,510 --> 01:14:41,570 다음 암호를 입력합니다. 1456 01:14:41,570 --> 01:14:45,610 아마도 우리의 PHP 코드를 볼 수 있습니다 다음과 같이, 여기서 $ 사용자 이름 1457 01:14:45,610 --> 01:14:51,410 한 후 데이터 사용자 이름 및 암호 후 데이터 암호입니다. 1458 01:14:51,410 --> 01:14:55,110 그리고 우리는 단지 말하자면, 우리의 쿼리를 실행 OK, 잘, 우리의 쿼리는 것입니다 1459 01:14:55,110 --> 01:14:57,990 우리의 사용자의 선택, 위치 사용자 이름은 1460 01:14:57,990 --> 01:14:58,970 그들이 제출 한. 1461 01:14:58,970 --> 01:15:06,870 암호는 암호입니다, 암호가 일치한다는 것을 의미. 1462 01:15:06,870 --> 01:15:12,670 >> 자, 어떤 경우 대신 실제의 같은 실제 암호를 제출 1463 01:15:12,670 --> 01:15:16,850 12345 말한다 그 단자에 추측 암호를 해킹하려고 자신의 1464 01:15:16,850 --> 01:15:21,460 계정, 무엇을 대신하는 경우 그들은이를 제출했다. 1465 01:15:21,460 --> 01:15:24,380 그들은 아마에 입력 할 수 있습니다 암호에서 추측. 1466 01:15:24,380 --> 01:15:30,480 그리고 그들은 완료 할 것 견적 후 입력하거나 = 1 1. 1467 01:15:30,480 --> 01:15:35,160 즉, SQL에 직접 조절이 것 이런 식으로 뭔가를보고 쿼리합니다. 1468 01:15:35,160 --> 01:15:38,200 사용자의 선택 위치를 사용자 이름 = 접지 단자 및 암호 1469 01:15:38,200 --> 01:15:41,450 백합 또는 1 = 1과 같습니다. 1470 01:15:41,450 --> 01:15:45,450 >> 그래서 암호 중 하나는이 올바른 또는 1 = 1로하면, 1471 01:15:45,450 --> 01:15:47,870 항상 참이다. 1472 01:15:47,870 --> 01:15:52,780 따라서이 경우에는, 기본적으로, 사용자는 수 이 활용하고 단지 로그 1473 01:15:52,780 --> 01:15:55,240 자체 및 해킹 다른 사람의 계정. 1474 01:15:55,240 --> 01:15:58,950 우리가 피하고 싶은 것도 그런 이유입니다 이 작업을 수행 할 필요가있는 사람. 1475 01:15:58,950 --> 01:16:03,890 그러나 다행히도, 쿼리 기능에 의해 자리를 전달하는 것은 소요됩니다 1476 01:16:03,890 --> 01:16:04,800 당신이 처리. 1477 01:16:04,800 --> 01:16:08,570 또한, 일반적으로 할 수 없을거야 실제로 암호를 제출 1478 01:16:08,570 --> 01:16:09,310 자신. 1479 01:16:09,310 --> 01:16:14,115 우리는 해시 또는 암호화 된 이유 CS50 금융에서 그들. 1480 01:16:14,115 --> 01:16:17,553 >> 청중 : 지난 퀴즈 이야기 에 대한 MySQL의 탈출 문자열. 1481 01:16:17,553 --> 01:16:21,800 우리는 그것에 대해 걱정해야합니까? 1482 01:16:21,800 --> 01:16:22,670 >> ZAMYLA CHAN : 좋은 질문입니다. 1483 01:16:22,670 --> 01:16:29,050 MySQL의 이스케이프 문자열은 확실히 우리의 쿼리에 사용 된 함수입니다. 1484 01:16:29,050 --> 01:16:30,420 하지만 확실히 그 조사. 1485 01:16:30,420 --> 01:16:32,950 나는 그것이 알고 공정한 게임의 말할 것 당신은 호출 할 필요가 거라고 1486 01:16:32,950 --> 01:16:34,370 문자열에 작동합니다. 1487 01:16:34,370 --> 01:16:35,245 그래, 벨린다? 1488 01:16:35,245 --> 01:16:38,606 >> 청중 : 그것은 때 어떻게 알 수 있습니까 작은 따옴표 나 큰 따옴표? 1489 01:16:38,606 --> 01:16:43,516 또한, 당신은 강의에서 같은 느낌 가지고 있지 대해 뭔가를 언급 1490 01:16:43,516 --> 01:16:48,426 [청취] 또는 무언가 또는 끝에서 두 번째 작은 따옴표. 1491 01:16:48,426 --> 01:16:56,407 1492 01:16:56,407 --> 01:17:00,825 나는 그가 강의에서 지적 생각 당신은 아포스트로피 1을 하잖아요 1493 01:17:00,825 --> 01:17:04,290 다음 아포스트로피가 없습니다 또는 뭔가. 1494 01:17:04,290 --> 01:17:05,540 >> 청중 : [청취]. 1495 01:17:05,540 --> 01:17:14,860 1496 01:17:14,860 --> 01:17:18,657 >> 청중 : 일이 마지막 싱글 그 두 번째 상자 거기에 따옴표 1497 01:17:18,657 --> 01:17:19,391 이 없어야합니다. 1498 01:17:19,391 --> 01:17:21,840 [청취] 1499 01:17:21,840 --> 01:17:26,730 때문에 당신은 그 마지막 하나를 취할 때 아웃 인용 및 콘텐츠에 대해이 일치 1500 01:17:26,730 --> 01:17:30,522 당신이 있음이 경우 암호는 어디에 쿼리는 따옴표에있다 1501 01:17:30,522 --> 01:17:31,340 이미 말. 1502 01:17:31,340 --> 01:17:36,580 당신은 작은 따옴표를 사용하려면 하나를 직면 하나 1503 01:17:36,580 --> 01:17:37,574 [청취]. 1504 01:17:37,574 --> 01:17:42,820 그래서 그 텍스트에 실제로의 상자가이 없어야합니다. 1505 01:17:42,820 --> 01:17:44,070 >> ZAMYLA CHAN : 그 변경됩니다. 1506 01:17:44,070 --> 01:17:56,490 1507 01:17:56,490 --> 01:17:56,880 OK. 1508 01:17:56,880 --> 01:18:00,435 질문이없는 경우에, 나는거야 이야기를 요셉에게 그것을 통해 전달 1509 01:18:00,435 --> 01:18:04,332 자바 스크립트에 대한, 등등. 1510 01:18:04,332 --> 01:18:09,540 >> [박수] 1511 01:18:09,540 --> 01:18:11,660 >> JOSEPH ONG : 그래서 우리가 실행하는 조금 뒤에. 1512 01:18:11,660 --> 01:18:13,280 당신이 떠나있는 경우에는, 괜찮습니다. 1513 01:18:13,280 --> 01:18:16,540 그러나 우리는 당신이 아래로 머리를 유지하는 것이 요구 당신은 중간에, 그래서 경우 1514 01:18:16,540 --> 01:18:19,560 카메라를 차단하고는 사용하지 않는 당신이있는 경우 다시 종료. 1515 01:18:19,560 --> 01:18:25,010 1516 01:18:25,010 --> 01:18:26,306 나는 그런데 요셉 해요. 1517 01:18:26,306 --> 01:18:27,556 안녕하세요. 1518 01:18:27,556 --> 01:18:37,910 1519 01:18:37,910 --> 01:18:38,630 테스트, 테스트. 1520 01:18:38,630 --> 01:18:39,630 단, 그 좋은? 1521 01:18:39,630 --> 01:18:40,880 쿨. 1522 01:18:40,880 --> 01:18:44,460 1523 01:18:44,460 --> 01:18:47,600 >> 그래서 동영상도 게시됩니다 사람들을 위해 온라인이 1524 01:18:47,600 --> 01:18:48,850 지금 떠나야 해. 1525 01:18:48,850 --> 01:18:51,350 1526 01:18:51,350 --> 01:18:52,600 황당. 1527 01:18:52,600 --> 01:18:56,300 1528 01:18:56,300 --> 01:18:57,510 OK. 1529 01:18:57,510 --> 01:18:59,730 그래서 퀴즈 리뷰. 1530 01:18:59,730 --> 01:19:00,980 이것은 고양이입니다. 1531 01:19:00,980 --> 01:19:03,150 1532 01:19:03,150 --> 01:19:07,170 어쩌면 지금, 자바 스크립트, 너희들 중 일부에 대한 앗로. 1533 01:19:07,170 --> 01:19:07,370 OK. 1534 01:19:07,370 --> 01:19:09,280 그래서 처음의, Zamyla에서 기억합니다. 1535 01:19:09,280 --> 01:19:11,270 PHP는 것을 기억 서버에서 실행됩니다. 1536 01:19:11,270 --> 01:19:15,230 그리고 시간이 많이, 너희들은 루프를 썼다 PHP에서 마우스 오른쪽 버튼을, HTML을 출력하는 방법? 1537 01:19:15,230 --> 01:19:19,170 그 코드가 실행 그래서 일단, 그 당신이 인쇄 HTML 출력 1538 01:19:19,170 --> 01:19:20,500 사용자에게 보내집니다. 1539 01:19:20,500 --> 01:19:25,960 그렇게 일단, 더 이상 PHP는 수 당신이 페이지를 다시로드하지 않는 한으로, 실행 1540 01:19:25,960 --> 01:19:27,660 PHP를 reexecutes 물론. 1541 01:19:27,660 --> 01:19:30,080 그러나 당신은 HTML을 출력하면, 당신은 아무데도 갈 수 없습니다. 1542 01:19:30,080 --> 01:19:33,580 >> 그래서 HTML은 사용자에게 통해 전송 여기에 브라우저 인 곳 1543 01:19:33,580 --> 01:19:35,470 마일로는 컴퓨터를 사용하고 있습니다. 1544 01:19:35,470 --> 01:19:40,340 그리고 물론, 몇 가지가 있습니다 우리는 사용자에게 HTML을 발송하면. 1545 01:19:40,340 --> 01:19:43,350 때때로 우리는 같은 일을 할 당신이 뭔가를 클릭하면, 우리가 원하는 1546 01:19:43,350 --> 01:19:47,350 의 이러한 종류의 팝업 경고 상자 를 누를 때와 같은 상호 작용, 1547 01:19:47,350 --> 01:19:50,740 키, 당신은 뭔가를 클릭하면 페이지가 나는 일이 무엇인가를 원한다. 1548 01:19:50,740 --> 01:19:54,550 글쎄, 당신은 PHP를 재실행 할 수 없습니다 그 HTML이 설정되는 코드 번. 1549 01:19:54,550 --> 01:19:55,900 그래서 당신이 어떻게해야합니까? 1550 01:19:55,900 --> 01:19:59,930 >> 우리는라는 새로운 언어를 소개합니다 브라우저에서 실행되는 자바 스크립트, 1551 01:19:59,930 --> 01:20:02,890 그것은 당신이 일을 수행 할 수 있습니다 당신이받은 후에 HTML로 1552 01:20:02,890 --> 01:20:04,020 서버에서 그들. 1553 01:20:04,020 --> 01:20:07,050 우리는 클라이언트 측을 부르는 이유 때문입니다 프로그래밍 언어입니다. 1554 01:20:07,050 --> 01:20:09,110 그것은 당신의 컴퓨터에서 작동합니다 - 1555 01:20:09,110 --> 01:20:11,400 클라이언트. 1556 01:20:11,400 --> 01:20:13,830 지금까지 그것에 대해 질문? 1557 01:20:13,830 --> 01:20:15,650 즉, 패러다임은 사람들에게 의미가? 1558 01:20:15,650 --> 01:20:16,010 OK. 1559 01:20:16,010 --> 01:20:16,790 좋은. 1560 01:20:16,790 --> 01:20:17,340 괜찮아요. 1561 01:20:17,340 --> 01:20:20,850 그래서 먼저주의해야 자바 스크립트는 PHP가 아닙니다. 1562 01:20:20,850 --> 01:20:23,010 >> 그들은 몇 가지 다른 구문을 가지고, 이는 우리로 이동합니다. 1563 01:20:23,010 --> 01:20:24,530 그리고 그들은 그 용도는 매우 다릅니다. 1564 01:20:24,530 --> 01:20:26,640 자바 스크립트, 다시,에 대한 귀하의 클라이언트의 브라우저. 1565 01:20:26,640 --> 01:20:30,640 서버는 다른 사람의 어딘가에서 실행 정보를 전송 컴퓨터 1566 01:20:30,640 --> 01:20:31,720 당신에게, 맞습니까? 1567 01:20:31,720 --> 01:20:36,730 그래서 우리는 PHP 코드를 작성하도록 요구하는 경우 시험 문제에 쓰지 않습니다 1568 01:20:36,730 --> 01:20:38,710 자바 스크립트와 그 반대. 1569 01:20:38,710 --> 01:20:41,710 당신은 점을 잃게됩니다, 그것은 바로 수 없습니다. 1570 01:20:41,710 --> 01:20:43,690 >> 그래서 몇 가지로하자 구문의 차이 - 1571 01:20:43,690 --> 01:20:46,140 왼쪽에있는 자바 스크립트 오른쪽에 PHP. 1572 01:20:46,140 --> 01:20:48,670 당신이 가장 먼저 눈에 띄는 것은 자바 스크립트, 우리가 가진 변수를 선언 1573 01:20:48,670 --> 01:20:49,440 var 키워드 - 1574 01:20:49,440 --> 01:20:53,590 V-A-R. PHP는 달러 기호를 사용, Zamyla는 앞에서 설명한대로. 1575 01:20:53,590 --> 01:20:57,570 당신은 연관을 선언하려면 배열, 우리는에 익숙한 구문을 참조하십시오 1576 01:20:57,570 --> 01:20:59,030 PHP와 오른쪽. 1577 01:20:59,030 --> 01:21:01,630 왼쪽 대신 중괄호를 사용합니다. 1578 01:21:01,630 --> 01:21:03,280 그리고 그 열쇠는 왼쪽에 있습니다. 1579 01:21:03,280 --> 01:21:04,670 그런 다음에 콜론이 있습니다. 1580 01:21:04,670 --> 01:21:06,560 그리고 당신은 값이 당신이 원하는 것을. 1581 01:21:06,560 --> 01:21:09,840 >> 그래서 이것은 당신이 PHP에서 할 것입니다 방법입니다 그 두 번째로 오른쪽에 1582 01:21:09,840 --> 01:21:10,955 밀로 시작 라인. 1583 01:21:10,955 --> 01:21:14,540 그리고 당신이 그것을 할 것입니다 방법입니다 당신이 원하는 경우에 자바 스크립트에서 왼쪽 사이드 1584 01:21:14,540 --> 01:21:16,110 우리는 개체를 부르는. 1585 01:21:16,110 --> 01:21:19,340 그리고 자바 스크립트의 객체는 그냥 연관 배열. 1586 01:21:19,340 --> 01:21:23,710 그래서 당신은에 필드에 액세스하려면 PHP는이 부류의 구문을 사용합니다. 1587 01:21:23,710 --> 01:21:27,170 그리고이 방법은, 당신은 다시 할당 할 수 있습니다 로렌이 소유자 필드. 1588 01:21:27,170 --> 01:21:30,150 >> 음, 자바 스크립트로, 경우에 하나의 원하는 네가 할 수 필드를 액세스하고 변경할 1589 01:21:30,150 --> 01:21:31,370 도트 구문을 사용합니다. 1590 01:21:31,370 --> 01:21:33,860 또한 브래킷 구문을 사용할 수 있습니다. 1591 01:21:33,860 --> 01:21:35,550 하지만 당신은 사용할 수 없습니다 PHP에서 도트 구문. 1592 01:21:35,550 --> 01:21:36,525 그것은 작동하지 않습니다. 1593 01:21:36,525 --> 01:21:38,910 그것은 단지 PHP에서 작동합니다. 1594 01:21:38,910 --> 01:21:42,060 그리고 마지막으로, 정보를 인쇄 콘솔, 당신은 CONSOLE.LOG를 사용하는 1595 01:21:42,060 --> 01:21:43,720 너희들은 pset8에 많이 사용합니다. 1596 01:21:43,720 --> 01:21:45,260 당신은 그 CONSOLE.LOG 수 있습니다. 1597 01:21:45,260 --> 01:21:50,030 >> 당신의 배열을 인쇄하려면 PHP, 당신은 인쇄 R을 사용합니다. 1598 01:21:50,030 --> 01:21:53,240 그리고 오른쪽에, 당신은 내가 해시 참조 저기 문자열 연결. 1599 01:21:53,240 --> 01:21:54,070 누군가가 먼저 물었다. 1600 01:21:54,070 --> 01:21:55,850 나는 자바 스크립트에서 플러스를 사용합니다. 1601 01:21:55,850 --> 01:21:59,800 내가 뭔가를 연결하려는 경우 PHP에서, 나는 점을 사용합니다. 1602 01:21:59,800 --> 01:22:00,800 이 다릅니다. 1603 01:22:00,800 --> 01:22:03,420 당신은 PHP 코드를 작성하는 경우, 플러스를 사용하지 않습니다. 1604 01:22:03,420 --> 01:22:06,810 당신은 자바 스크립트를 작성하는 경우 코드는 점을 쓰지 않습니다. 1605 01:22:06,810 --> 01:22:08,230 그것은 잘못된 것입니다. 1606 01:22:08,230 --> 01:22:09,640 그리고 당신은 슬픈 것입니다. 1607 01:22:09,640 --> 01:22:11,000 >> 그래서 문법의 차이. 1608 01:22:11,000 --> 01:22:14,710 당신의 구문을 알고 있기 때문에 당신은에있는 경우 질문을 작성하고 구문을 사용하여 1609 01:22:14,710 --> 01:22:16,890 잘못된 언어에서, 그것은 작동하지 않습니다. 1610 01:22:16,890 --> 01:22:19,520 그리고 그것은 잘못된 것입니다. 1611 01:22:19,520 --> 01:22:22,420 그래서 몇 가지 컨트롤에 대한 얘기하자 당신이 사용하는 방법, 차이 흐름 1612 01:22:22,420 --> 01:22:24,040 각각에서 반복합니다. 1613 01:22:24,040 --> 01:22:26,610 Zamyla는 오른쪽에 갔다. 1614 01:22:26,610 --> 01:22:27,780 오른쪽에있는 물건 잘 알고 있어야합니다. 1615 01:22:27,780 --> 01:22:29,670 의 왼쪽에 살펴 보자. 1616 01:22:29,670 --> 01:22:34,830 >> 당신이 자바 스크립트에서 N 루​​프에 사용하는 경우, 루프 변수 var에 거기 나는, 1617 01:22:34,830 --> 01:22:37,210 배열의 키를 반복. 1618 01:22:37,210 --> 01:22:39,150 그래서 당신은 이름, 집, 역할을 참조하십시오. 1619 01:22:39,150 --> 01:22:42,440 나는를 CONSOLE.LOG, 내가 얻을 이름, 집 및 역할. 1620 01:22:42,440 --> 01:22:44,720 사람들은 키입니다. 1621 01:22:44,720 --> 01:22:50,080 자바 스크립트에서 foreach 루프가 간다 이 배열의 값에. 1622 01:22:50,080 --> 01:22:52,040 그래서 당신은 내가 둘 다 알 수 있습니다. 1623 01:22:52,040 --> 01:22:56,000 하지만, 여기에 PHP 측면에서, 그것은 인쇄 마일로, CS50 및 마스코트 중. 1624 01:22:56,000 --> 01:22:57,390 사람들은 PHP의 값입니다. 1625 01:22:57,390 --> 01:23:00,180 >> 그래서 이들은이 두 다른 방법입니다 다른 언어. 1626 01:23:00,180 --> 01:23:02,970 그래서 당신은 foreach를 사용하는 경우 루프는, 생각하지 않는 그 1627 01:23:02,970 --> 01:23:03,760 당신이 키를 제공합니다. 1628 01:23:03,760 --> 01:23:08,010 당신이 N의 루프를 사용하는 경우와, 그렇지 않은 그것은 당신에게 값을 제공합니다 가정합니다. 1629 01:23:08,010 --> 01:23:10,420 이것은 지금까지 의미가 있습니까? 1630 01:23:10,420 --> 01:23:13,630 다음 슬라이드를 표시하는 것입니다 당신의 반대에 액세스 할 수있는 방법을 1631 01:23:13,630 --> 01:23:15,160 각각. 1632 01:23:15,160 --> 01:23:18,550 >> 글쎄, 당신은 자바 스크립트의 키가있는 경우 당신은, 값을 원하는 1633 01:23:18,550 --> 01:23:20,440 에 당신은 인덱스 그와 배열입니다. 1634 01:23:20,440 --> 01:23:23,640 그래서 난의 밀로 당신을 얻을 것이다 무엇 당신이 원하는 - 값을. 1635 01:23:23,640 --> 01:23:25,260 PHP이 다른 구문이있다. 1636 01:23:25,260 --> 01:23:28,140 당신이 정말로 알고 싶다면, 난 몰라 우리가 아직 당신에게 그것을 보여 주었다 것 같아요. 1637 01:23:28,140 --> 01:23:31,740 당신이 관심이 있다면, 당신은 사용할 수 있습니다 오른쪽이 추가 구문 1638 01:23:31,740 --> 01:23:35,130 실제로 당신이 얻을 수있게된다면 PHP의 키는 사용하는 1639 01:23:35,130 --> 01:23:35,880 foreach 루프. 1640 01:23:35,880 --> 01:23:39,640 퀴즈 그래서 조금 당신이 관심이 있다면. 1641 01:23:39,640 --> 01:23:42,630 >> 그래서 그냥 보여의 두 루프의 차이점. 1642 01:23:42,630 --> 01:23:47,060 당신이있을 때 그들을 혼합하지 마십시오 질문을 프로그래밍. 1643 01:23:47,060 --> 01:23:49,774 그것에 대해 질문. 1644 01:23:49,774 --> 01:23:50,770 쿨. 1645 01:23:50,770 --> 01:23:51,310 괜찮아요. 1646 01:23:51,310 --> 01:23:52,250 자바 스크립트 객체. 1647 01:23:52,250 --> 01:23:53,040 나는 그들에 대해 이야기했다. 1648 01:23:53,040 --> 01:23:54,650 그들은 연관 배열처럼입니다. 1649 01:23:54,650 --> 01:23:57,730 나는 당신이주의하고 싶은 것은 여기에 그 연관에 값 1650 01:23:57,730 --> 01:23:59,540 배열은 자바 스크립트에서 아무것도 할 수 있습니다. 1651 01:23:59,540 --> 01:24:02,240 >> 심지어 함수가 될 수있다, 거기있다. 1652 01:24:02,240 --> 01:24:04,600 난 기능을 가지고 그 키의 값이다. 1653 01:24:04,600 --> 01:24:07,030 그리고 그 함수를 호출 할 경우, 그냥 껍질에 액세스 할 수 있습니다. 1654 01:24:07,030 --> 01:24:08,490 그리고 나는 괄호를 넣어 그 후. 1655 01:24:08,490 --> 01:24:09,790 그리고 그 작동합니다. 1656 01:24:09,790 --> 01:24:15,570 그래서 질문? 1657 01:24:15,570 --> 01:24:16,370 아니? 1658 01:24:16,370 --> 01:24:16,650 OK. 1659 01:24:16,650 --> 01:24:18,190 좋은. 1660 01:24:18,190 --> 01:24:20,130 PHP와 같은 스크립트,, 느슨하게 입력됩니다. 1661 01:24:20,130 --> 01:24:20,970 이것은 무엇을 의미할까요? 1662 01:24:20,970 --> 01:24:22,380 >> 그것은 형식을 가지고있다. 1663 01:24:22,380 --> 01:24:24,800 하지만 당신은 자바 스크립트를 선언 할 때 변수는 var에 나는 말한다. 1664 01:24:24,800 --> 01:24:25,850 당신은 말을하지 않습니다. 1665 01:24:25,850 --> 01:24:26,460 그 일이 아니다. 1666 01:24:26,460 --> 01:24:28,000 당신은 그냥 변수의 말. 1667 01:24:28,000 --> 01:24:31,590 그리고 자바 스크립트가 처리 할 당신을위한 후드 타입. 1668 01:24:31,590 --> 01:24:34,390 우리는 자유롭게 사이에 변환 할 수 있습니다 이 때문에 유형. 1669 01:24:34,390 --> 01:24:37,360 그래서 난이 숫자로 시작한다 이 경우에는. 1670 01:24:37,360 --> 01:24:38,790 그리고 끈이 있습니다. 1671 01:24:38,790 --> 01:24:39,710 그리고 여기에 내가 추가합니다. 1672 01:24:39,710 --> 01:24:41,810 그리고 나는에 다시 재 할당. 1673 01:24:41,810 --> 01:24:43,640 >> 그 첫 번째 줄에 따라서 내가 수입니다. 1674 01:24:43,640 --> 01:24:47,310 두 번째 줄에, 지금은됩니다 나는 재 할당을 끈 후. 1675 01:24:47,310 --> 01:24:52,820 그리고 여기, 난 그냥 합치 해요 문자열 상에 그 번호. 1676 01:24:52,820 --> 01:24:56,210 그래서 당신은 볼이 난에도 불구 첫 번째 부분에있는 정수, 그것은 일종의 1677 01:24:56,210 --> 01:24:58,500 의 변환되는 등 문자열 후 추가되는 1678 01:24:58,500 --> 01:25:00,510 그 헬로 문자열 상. 1679 01:25:00,510 --> 01:25:02,340 그래서 그게 무슨 뜻이야 느슨한 입력하여. 1680 01:25:02,340 --> 01:25:04,760 즉,이 사이에 변환하는 것이의 아주 쉽게 유형. 1681 01:25:04,760 --> 01:25:08,840 그리고 경고가 발생하지 않습니다 에서 당신은 C가하는 것처럼. 1682 01:25:08,840 --> 01:25:12,420 >> 그래서 지금 인사 포함 문자열에 123. 1683 01:25:12,420 --> 01:25:13,270 다음. 1684 01:25:13,270 --> 01:25:15,610 우리는 또한 자유롭게 비교할 수 유형 사이. 1685 01:25:15,610 --> 01:25:19,310 그래서 당신이 ==를 사용하는 경우, 매우 PHP, 자바 스크립트처럼 1686 01:25:19,310 --> 01:25:20,480 비슷한 일을한다. 1687 01:25:20,480 --> 01:25:24,780 스트링 (123)는 숫자와 동일 123 당신은 이중 등호를 사용하는 경우. 1688 01:25:24,780 --> 01:25:27,820 트리플 같음을 사용할 때, 또한 있는지 확인하고 싶어 1689 01:25:27,820 --> 01:25:29,240 형식은 동일합니다. 1690 01:25:29,240 --> 01:25:31,960 즉, 문자열과 즉 그래서 있기 때문에 그들은 둘 다하더라도 번호, 1691 01:25:31,960 --> 01:25:35,280 (123) 당신이 배 사용 false를 얻을 같습니다. 1692 01:25:35,280 --> 01:25:39,330 두 번 경우에 해당, 당신은 진정한 얻을 이중 등호하지 않기 때문에 1693 01:25:39,330 --> 01:25:40,020 유형에 대해 걱정한다. 1694 01:25:40,020 --> 01:25:42,500 트리플 등호 유형에 대한 관심 않습니다. 1695 01:25:42,500 --> 01:25:43,750 질문? 1696 01:25:43,750 --> 01:25:45,790 1697 01:25:45,790 --> 01:25:48,390 OK. 1698 01:25:48,390 --> 01:25:52,870 >> 그리고 자바 스크립트에 대한 또 다른 한가지는 당신이 아니라면 범위는 글로벌의 일종이다 1699 01:25:52,870 --> 01:25:53,460 기능. 1700 01:25:53,460 --> 01:25:55,660 그리고 동일에게 작동 실제로 PHP의 방법입니다. 1701 01:25:55,660 --> 01:25:57,500 그래서이 예제를 통해 가자. 1702 01:25:57,500 --> 01:25:59,110 나는 999 전을 설정합니다. 1703 01:25:59,110 --> 01:26:00,900 그리고 나서 루프이로 이동합니다. 1704 01:26:00,900 --> 01:26:06,110 그래서 나는이에 난을 인쇄하고 있습니다 경우 루프는, I는 0, 1, 2, 3, 4를 기대한다. 1705 01:26:06,110 --> 01:26:07,390 I는 I = 4에 도착. 1706 01:26:07,390 --> 01:26:10,770 그것은에서 5로 이제를 증가 For 루프의 끝. 1707 01:26:10,770 --> 01:26:13,300 그리고, 그것은 루프 밖으로 나누기, 그것은 충족하지 않기 때문에 1708 01:26:13,300 --> 01:26:14,550 더 이상 조건입니다. 1709 01:26:14,550 --> 01:26:16,650 >> 당신은 어떻게 생각하십니까 다음 CONSOLE.LOG는 출력한다? 1710 01:26:16,650 --> 01:26:20,570 1711 01:26:20,570 --> 01:26:24,790 그래서, 그것은 C에서 C에서했던 것처럼 때문에 당신은 내가 외부 VAR 같이있는 경우 1712 01:26:24,790 --> 01:26:28,855 당신은 같은 루프 내에서 var에 난이 루프, 그것은이 같은 것을 만드는 1713 01:26:28,855 --> 01:26:30,690 그것은 범위의 사용자들은 두 나는의이 다릅니다. 1714 01:26:30,690 --> 01:26:34,630 자바 스크립트에서, 단지 것 같은 I로 취급. 1715 01:26:34,630 --> 01:26:37,870 그 값 때문에 나는 5를 얻을 수 그것은 루프를 빠져 나온 후. 1716 01:26:37,870 --> 01:26:39,120 그래서 그 난의의는 동일한 I입니다. 1717 01:26:39,120 --> 01:26:42,620 1718 01:26:42,620 --> 01:26:44,130 그 의미가 있습니까? 1719 01:26:44,130 --> 01:26:45,720 >> 글쎄요, 그것은에서 의미가 있습니다 자바 스크립트의 관점. 1720 01:26:45,720 --> 01:26:49,510 그러나 같은 패러다임은하지 않습니다 그들은이 C로 이월 1721 01:26:49,510 --> 01:26:50,310 다른 범위 규칙. 1722 01:26:50,310 --> 01:26:50,630 예. 1723 01:26:50,630 --> 01:26:52,566 >> 청중 : [청취] 1724 01:26:52,566 --> 01:26:54,990 [청취] 함수 외부? 1725 01:26:54,990 --> 01:26:58,340 >> JOSEPH ONG : 그래서 어떤 함수 외부? 1726 01:26:58,340 --> 01:27:00,810 그래서 난 그냥 두 번째에 해당 얻을 수 있습니다. 1727 01:27:00,810 --> 01:27:02,580 그래서 우리는 (I) foo는 호출합니다. 1728 01:27:02,580 --> 01:27:06,920 이것은 내가 foo는에, 단위를 전달 다음, 그리고 그것을 기록합니다. 1729 01:27:06,920 --> 01:27:07,750 그래서 5이었다. 1730 01:27:07,750 --> 01:27:09,210 그래서 6됩니다. 1731 01:27:09,210 --> 01:27:11,670 하지만 내가 말하는 것은 그 기능이 전. 1732 01:27:11,670 --> 01:27:14,430 이 파라미터의 정보이므로,의 정보 그 기능 범위. 1733 01:27:14,430 --> 01:27:17,800 그래서 한 번 나는 실제로 나가 기능, 지금은 갈거야 1734 01:27:17,800 --> 01:27:19,860 예전의 나에게. 1735 01:27:19,860 --> 01:27:23,000 즉, I는 범위가 있기 때문에 그것은 함수입니다. 1736 01:27:23,000 --> 01:27:24,200 그리고 우리는 범위와 기능을 가지고 있습니다. 1737 01:27:24,200 --> 01:27:29,080 그러나 우리는 외부의 범위가 없습니다 자바 스크립트 함수의. 1738 01:27:29,080 --> 01:27:31,170 그 의미가 있습니까? 1739 01:27:31,170 --> 01:27:31,320 예. 1740 01:27:31,320 --> 01:27:31,660 질문. 1741 01:27:31,660 --> 01:27:34,030 >> 청중 : [청취] 동일? 1742 01:27:34,030 --> 01:27:34,500 >> JOSEPH ONG : 그래서 그래. 1743 01:27:34,500 --> 01:27:36,260 PHP에서는, 물건의 동일한 유형이다. 1744 01:27:36,260 --> 01:27:37,680 실제로 약간의 미묘함이있다. 1745 01:27:37,680 --> 01:27:40,130 하지만 당신에 대해 물어 수 있습니다 검토 후 그. 1746 01:27:40,130 --> 01:27:43,930 당신은 정말 알 필요가 없습니다 퀴즈에 대한 그 미묘함. 1747 01:27:43,930 --> 01:27:47,600 모든 의도와 목적 등을 위해 변수, 글로벌 PHP,하지 않는 한 1748 01:27:47,600 --> 01:27:49,150 그들은 기능에 똑같아 자바 스크립트에있는 것. 1749 01:27:49,150 --> 01:27:49,480 예. 1750 01:27:49,480 --> 01:27:52,890 >> 청중 : 왜 이런 일이 허용됩니다 자바 스크립트와 다른 어디 없음? 1751 01:27:52,890 --> 01:27:55,010 >> JOSEPH ONG : 그래서 왜 허용 자바 스크립트에서가 아니라 C에서? 1752 01:27:55,010 --> 01:27:58,180 그냥 함께했다 몰라도 자바 스크립트는이에 OK라고 결정 1753 01:27:58,180 --> 01:27:59,510 자바 스크립트. 1754 01:27:59,510 --> 01:28:02,430 그래서 그냥 프로그래밍 언어처럼 우리가 말하는 것처럼 규칙입니다. 1755 01:28:02,430 --> 01:28:02,580 예. 1756 01:28:02,580 --> 01:28:04,480 >> 청중 : 왜 않았다 그것은 6-5 이동? 1757 01:28:04,480 --> 01:28:08,280 >> JOSEPH ONG : 그래서 그것은 6-5 갔다 나는 푸에 난을 통과 할 때, 그 때문에 1758 01:28:08,280 --> 01:28:13,420 foo는 내부 나는 지금, foo는을 범위로 범위에서 함수에 존재하기 때문에 1759 01:28:13,420 --> 01:28:15,050 자바 스크립트. 1760 01:28:15,050 --> 01:28:18,720 하지만 일단 나는 여기서 나가야 그것 때문에 기능 범위가되었다, 난 그냥 1761 01:28:18,720 --> 01:28:24,300 내부에 있던 정규 프로그램을 사용 제어 흐름의 나머지. 1762 01:28:24,300 --> 01:28:25,210 이해가가? 1763 01:28:25,210 --> 01:28:26,910 나는에 이동할 수 있습니까? 1764 01:28:26,910 --> 01:28:27,320 괜찮아요. 1765 01:28:27,320 --> 01:28:29,180 쿨. 1766 01:28:29,180 --> 01:28:31,890 >> 이런 수용은 개체이다 참조로 전달됩니다. 1767 01:28:31,890 --> 01:28:33,990 당신은 당신이 전달하는 방법을 알고있는 경우 당신이 할 수 C로 배열 1768 01:28:33,990 --> 01:28:35,810 실제로 배열을 수정? 1769 01:28:35,810 --> 01:28:37,350 그것은 자바 스크립트에서 같은 일입니다. 1770 01:28:37,350 --> 01:28:42,960 나는이 경우 개체를 전달하면, I 이 catify 기능에 마일로을 통과시켰다. 1771 01:28:42,960 --> 01:28:44,490 마일로 시작한다. 1772 01:28:44,490 --> 01:28:46,310 그의 이름은 마일로 바나나입니다. 1773 01:28:46,310 --> 01:28:51,670 나는 함수로 해당 개체를 전달 그것은 개체, 연관 때문에 1774 01:28:51,670 --> 01:28:53,730 자바 스크립트의 배열입니다. 1775 01:28:53,730 --> 01:28:57,110 >> 나는 작업을 수행 할 때 그 기능에, 그것은 1776 01:28:57,110 --> 01:28:58,560 실제로 객체를 변경합니다. 1777 01:28:58,560 --> 01:29:01,720 그래서 이것은 단지 개체에 대해 발생합니다 자바 스크립트에, 그냥 일이 좋아 1778 01:29:01,720 --> 01:29:09,230 C. 그래서 마일로 이름의 내부 배열에 대한 실제로 지금 고양이가 될 것이다. 1779 01:29:09,230 --> 01:29:10,090 그 의미가 있습니까? 1780 01:29:10,090 --> 01:29:11,840 그래서이 개체 만 작동합니다. 1781 01:29:11,840 --> 01:29:13,090 개체를 참조로 전달됩니다. 1782 01:29:13,090 --> 01:29:13,400 예. 1783 01:29:13,400 --> 01:29:16,850 >> 청중 : 그래서 당신이 말하고있는 그 변수 I 대조적. 1784 01:29:16,850 --> 01:29:17,240 >> JOSEPH ONG : 네. 1785 01:29:17,240 --> 01:29:20,330 어떤 변수 난 그냥했다 숫자, 오른쪽? 1786 01:29:20,330 --> 01:29:25,280 당신이를 통과 할 때 그것은 C에서처럼 정수, 그것은 복사본을 만듭니다. 1787 01:29:25,280 --> 01:29:28,130 그리고 배열을 통과 할 때, 실제로 의 실제 배열을 변경 1788 01:29:28,130 --> 01:29:32,870 C. 같은 일이 함께 발생 이 경우 자바 스크립트. 1789 01:29:32,870 --> 01:29:34,070 괜찮아요. 1790 01:29:34,070 --> 01:29:38,134 그리고 다음, 마일로 슬픈 때문에 그는 지금 고양이입니다. 1791 01:29:38,134 --> 01:29:40,790 1792 01:29:40,790 --> 01:29:45,060 그 후 실제로 마일로했다 수의사에 약간의 여행. 1793 01:29:45,060 --> 01:29:46,860 >> 그래서 우리가 어떻게 자바 스크립트를 사용합니까 웹 페이지에서? 1794 01:29:46,860 --> 01:29:47,790 우리는 그것을 포함 할 수 있습니다. 1795 01:29:47,790 --> 01:29:50,090 이 스트립 태그를 HTML 코드입니다. 1796 01:29:50,090 --> 01:29:51,300 그래서이 지구 태그가 있습니다. 1797 01:29:51,300 --> 01:29:54,820 그리고 나는 약간의 자바 스크립트를 넣어 스크립트 태그 내 코드입니다. 1798 01:29:54,820 --> 01:29:56,390 그리고, 그것은이를 실행합니다. 1799 01:29:56,390 --> 01:29:58,830 난 그냥 같이 할 때의 인라인 자바 스크립트했다. 1800 01:29:58,830 --> 01:30:02,400 그것은 성가신 종류의 때문에 자바 스크립트는 HTML에 실제로있다. 1801 01:30:02,400 --> 01:30:07,010 >> 훨씬 좋네요이 작업을 수행하는 더 좋은 방법,, 에서 자바 스크립트를 작성하는 것입니다 1802 01:30:07,010 --> 01:30:10,920 외부 파일 다음 제공 소스와 스크립트 태그. 1803 01:30:10,920 --> 01:30:14,920 그리고 이것은 해당 자바 스크립트 파일로 이동합니다 과에서 자바 스크립트 코드를 읽고 1804 01:30:14,920 --> 01:30:15,960 그 대신 파일. 1805 01:30:15,960 --> 01:30:18,820 그리고이 방법은, 당신이 많지 않아 귀하의 시작 부분에서 자바 스크립트 1806 01:30:18,820 --> 01:30:20,760 만드는 HTML 파일, 그것은 정말 성가신. 1807 01:30:20,760 --> 01:30:21,860 당신은 다른 곳에 넣어. 1808 01:30:21,860 --> 01:30:24,310 그리고, 그것은 거기에서 그것을 읽을 것이다. 1809 01:30:24,310 --> 01:30:25,560 그 의미가 되었습니까? 1810 01:30:25,560 --> 01:30:27,990 1811 01:30:27,990 --> 01:30:29,640 >> 배치 문제. 1812 01:30:29,640 --> 01:30:32,620 특히이 경우, 스크립트는 본문 앞에이다. 1813 01:30:32,620 --> 01:30:36,090 나는 그것을 실행할 때, 거기에 아직 몸에 아무 것도 없습니다. 1814 01:30:36,090 --> 01:30:39,920 어쩌면이 조금 더 할 것 나는이 다음 부분을 표시 할 때 감지. 1815 01:30:39,920 --> 01:30:43,210 이 경우, 스크립트 DIV 후 제공됩니다. 1816 01:30:43,210 --> 01:30:46,620 그래서 DIV 실제로 나타납니다 첫 페이지. 1817 01:30:46,620 --> 01:30:49,470 바로 여기이 작은 빨간색 원 안에, 당신은 텍스트가 나타납니다를 참조하십시오. 1818 01:30:49,470 --> 01:30:51,810 다음 경고가 나타납니다. 1819 01:30:51,810 --> 01:30:54,890 >> 첫 번째 경우에는 때문에 스크립트 DIV 전에이었다, 1820 01:30:54,890 --> 01:30:56,170 경고는 먼저 보여줍니다. 1821 01:30:56,170 --> 01:30:59,250 그리고 사업부는 후 보여줍니다 당신은 상자를 닫습니다. 1822 01:30:59,250 --> 01:31:01,330 그래서 실행이 중요. 1823 01:31:01,330 --> 01:31:02,290 그래서 우리는이 점을 염두에 보관합니다. 1824 01:31:02,290 --> 01:31:03,640 이 중요 할 것이다 조금있다. 1825 01:31:03,640 --> 01:31:08,730 1826 01:31:08,730 --> 01:31:09,540 OK. 1827 01:31:09,540 --> 01:31:12,750 잘, 당신은 어떻게 할 때까지 기다려야합니까 전체 페이지가 전에 다음로드 1828 01:31:12,750 --> 01:31:13,580 일부 코드를 실행? 1829 01:31:13,580 --> 01:31:15,540 우리는이 작은으로 얻을 것이다 잠시 후도. 1830 01:31:15,540 --> 01:31:19,016 그러나 다만이 위치를 유지 때 우리에 대한 마음의 문제 1831 01:31:19,016 --> 01:31:20,570 다른 슬라이드로 제공됩니다. 1832 01:31:20,570 --> 01:31:22,030 >> 그래서 우리는 지금 DOM에 도착. 1833 01:31:22,030 --> 01:31:23,550 그리고 DOM은 무엇인가? 1834 01:31:23,550 --> 01:31:26,830 당신이 HTML 코드를보고 있다면, 그것은 단지 화면에서 텍스트의 무리. 1835 01:31:26,830 --> 01:31:30,560 어떻게 자바 스크립트는 것을 알고 않습니다 이는 HTML 요소입니까? 1836 01:31:30,560 --> 01:31:33,410 그래서 우리는 어떤 기억을 가지고있다 이 표현 1837 01:31:33,410 --> 01:31:34,930 우리가 가지고있는 구조. 1838 01:31:34,930 --> 01:31:40,240 그리고 우리는 기억이있을 때마다 자바 스크립트의 표현, 우리는 전화 1839 01:31:40,240 --> 01:31:41,750 DOM있다. 1840 01:31:41,750 --> 01:31:45,130 그리고 사람들이 결정하는 것이 바로 방법 우리는이를 표현해야한다는 1841 01:31:45,130 --> 01:31:46,400 같은 HTML 구조. 1842 01:31:46,400 --> 01:31:47,940 >> 이 DOM처럼 무엇을 보는가? 1843 01:31:47,940 --> 01:31:50,460 음, 메모리 표현, 우리는이 텍스트를 가지고. 1844 01:31:50,460 --> 01:31:52,870 그리고 우리는 메모리에 설정 표현입니다. 1845 01:31:52,870 --> 01:31:54,400 그래서이 HTML입니다. 1846 01:31:54,400 --> 01:31:58,090 그래서 우리는 먼저 찾을 때마다 DOM 트리가 문서를 가지고 있습니다. 1847 01:31:58,090 --> 01:31:59,400 그것은 나무처럼 보인다. 1848 01:31:59,400 --> 01:32:03,550 그리고, 문서는 HTML을 포함 태그, 실제로 모든 1849 01:32:03,550 --> 01:32:05,150 지금의 내. 1850 01:32:05,150 --> 01:32:06,970 HTML 태그는 두 아이가 있습니다. 1851 01:32:06,970 --> 01:32:08,630 그것은 머리가 있습니다. 1852 01:32:08,630 --> 01:32:12,380 즉, 머리, 당신은 들여 쓰기를 보면 거기가 구성 어떻게에서 1853 01:32:12,380 --> 01:32:14,960 닫기 태그 사이에, 머리 아이가. 1854 01:32:14,960 --> 01:32:17,130 아이는 제목입니다. 1855 01:32:17,130 --> 01:32:18,370 정확히. 1856 01:32:18,370 --> 01:32:21,000 >> 이제, 우리는 몸의 아이가. 1857 01:32:21,000 --> 01:32:24,870 그리고 그 몸을 가지고 아이는 가족이라고. 1858 01:32:24,870 --> 01:32:27,950 그리고 그 가족은 아이가 셋 - 1859 01:32:27,950 --> 01:32:29,550 , 오래된 중간, 막내. 1860 01:32:29,550 --> 01:32:31,960 그래서 당신은 그림을 그리는 방법을 알고 있어야합니다 이 같은 우리는 방법을 물을 때 1861 01:32:31,960 --> 01:32:34,270 우리가 줄 때 그림을 그리려면 당신이 왼쪽에있는 HTML. 1862 01:32:34,270 --> 01:32:36,350 DOM 트리를 생성하는 방법을 알고있다. 1863 01:32:36,350 --> 01:32:38,930 그리고 이러한 것들의 내부에, 그냥 거기에 내가 표시 한 텍스트, 1864 01:32:38,930 --> 01:32:40,180 등의 작은 상자. 1865 01:32:40,180 --> 01:32:42,750 1866 01:32:42,750 --> 01:32:47,980 >> 이 DOM 트리 구조를합니까 감각과 DOM은 무엇입니까? 1867 01:32:47,980 --> 01:32:49,300 그래서 P는 무엇의 약자입니까? 1868 01:32:49,300 --> 01:32:51,850 여기에, 피에가 해당 태그에 나타내는 1869 01:32:51,850 --> 01:32:54,510 HTML에서 단락 태그. 1870 01:32:54,510 --> 01:32:57,080 그래서 당신은 그것을 볼 수 있습니다. 1871 01:32:57,080 --> 01:32:59,290 그러나 단지 몇 가지의 의미 텍스트를위한 공간입니다. 1872 01:32:59,290 --> 01:33:02,910 그리고 일부 기본 CSS 스타일을 가지고, 그것은 단락 태그이기 때문에. 1873 01:33:02,910 --> 01:33:05,130 하지만 실제로는 걱정하지 마세요 그 부분을 너무 많이. 1874 01:33:05,130 --> 01:33:07,510 그냥이 자리 알아 일부 텍스트를. 1875 01:33:07,510 --> 01:33:08,480 예. 1876 01:33:08,480 --> 01:33:10,200 질문? 1877 01:33:10,200 --> 01:33:11,021 예. 1878 01:33:11,021 --> 01:33:12,374 >> 청중 : 당신은 그냥 CSS를 언급했다. 1879 01:33:12,374 --> 01:33:15,492 해시 가족과 해시 모든 물건은 기본적으로 1880 01:33:15,492 --> 01:33:17,400 CSS의 ID를 나타내는? 1881 01:33:17,400 --> 01:33:18,440 >> JOSEPH ONG : 네, 그렇습니다. 1882 01:33:18,440 --> 01:33:20,380 나는 무엇을이 해시를 얻을 것이다 두 번째에서 의미합니다. 1883 01:33:20,380 --> 01:33:23,480 안젤라는 CSS에 갔을 때, 그녀 CSS 셀렉터에 대해 이야기했다. 1884 01:33:23,480 --> 01:33:26,770 다음은 CSS 셀렉터됩니다 그녀에 대해 얘기했다. 1885 01:33:26,770 --> 01:33:28,268 예, 롭? 1886 01:33:28,268 --> 01:33:32,060 >> ROB 보덴 : 나는 또한 주석 것 제목 태그의 내부에 그 DOM 1887 01:33:32,060 --> 01:33:35,385 또한, 텍스트 노드이다. 1888 01:33:35,385 --> 01:33:36,070 >> JOSEPH ONG : 오른쪽. 1889 01:33:36,070 --> 01:33:38,370 제목 태그 안에 그래서 나는 약간의 텍스트 DOM있다. 1890 01:33:38,370 --> 01:33:42,730 그래서 정말,이 제목은 같이해야 작은 상자뿐만 아니라 그것의 떨어져오고. 1891 01:33:42,730 --> 01:33:45,740 하지만 정말 문제가되지 않습니다 이 경우 너무 많은. 1892 01:33:45,740 --> 01:33:49,620 우리가 정말 텍스트 노드에 대해 걱정하지 않는다, 우리는 너무 많이, 그들에게 전화로. 1893 01:33:49,620 --> 01:33:50,270 OK, 우리는. 1894 01:33:50,270 --> 01:33:51,520 분명히, 우리는. 1895 01:33:51,520 --> 01:33:54,260 1896 01:33:54,260 --> 01:33:57,100 그리고 고칠 것이다 때 다시 업로드합니다. 1897 01:33:57,100 --> 01:33:59,830 그 의미가 있습니까? 1898 01:33:59,830 --> 01:34:01,160 >> 그래서 우리는 어떻게 DOM으로 작동합니까? 1899 01:34:01,160 --> 01:34:03,790 당신의 DOM을 처리 할 때마다 자바 스크립트, 두 단계가 있습니다. 1900 01:34:03,790 --> 01:34:05,030 당신은 DOM 요소를 선택합니다. 1901 01:34:05,030 --> 01:34:06,580 그리고 당신은 그것을 일을. 1902 01:34:06,580 --> 01:34:11,480 따라서이 경우, 추상적에, 난 중간 요소를 선택했습니다. 1903 01:34:11,480 --> 01:34:14,530 그리고 물건을하고의 예 여기에 텍스트를 변경하는 것입니다. 1904 01:34:14,530 --> 01:34:16,020 즉, 밥이 될하는 데 사용됩니다. 1905 01:34:16,020 --> 01:34:19,930 이제 내가 그에게 한 짓은 I가 변경된 이 경우 밀로에 밥. 1906 01:34:19,930 --> 01:34:22,130 >> 어떻게 우리가 실제로해야합니까? 1907 01:34:22,130 --> 01:34:23,440 우리가 선택 어떻게해야합니까? 1908 01:34:23,440 --> 01:34:26,560 그리고 우리는 어떻게에 물건을 수행해야합니까 일이 한 번 우리가 그것을했다고? 1909 01:34:26,560 --> 01:34:30,470 음, 그런데 너희들은 그것을 배웠습니다 이 클래스에 뭔가 우리를 사용하는 것입니다 1910 01:34:30,470 --> 01:34:32,420 jQuery를했다. 1911 01:34:32,420 --> 01:34:33,910 그래서 jQuery를 무엇입니까? 1912 01:34:33,910 --> 01:34:37,220 jQuery를가 만드는 라이브러리 쓰기 쉽게 자바 스크립트. 1913 01:34:37,220 --> 01:34:39,500 그래서 누군가가 시간이 걸렸습니다 와 jQuery를 썼다. 1914 01:34:39,500 --> 01:34:41,530 >> jQuery를 실제로 작성 자바 스크립트에서. 1915 01:34:41,530 --> 01:34:44,550 그리고 그들은 우리가 지금 이런 짓을하기 때문에 함수들이 그 1916 01:34:44,550 --> 01:34:46,020 우리는 만들 수 있습니다 우리의 정말 쉽게 살고있다. 1917 01:34:46,020 --> 01:34:48,580 1918 01:34:48,580 --> 01:34:50,030 그래서 어떤 것이 있는가 그것은 않는 것들? 1919 01:34:50,030 --> 01:34:51,650 그것은 쉽게 요소를 선택합니다. 1920 01:34:51,650 --> 01:34:54,020 그것은 HTML을 변경한다, 쉽게 클래스를 추가. 1921 01:34:54,020 --> 01:34:55,360 그것은 아약스가 쉬워집니다. 1922 01:34:55,360 --> 01:34:58,230 우리는 두 번째에 해당 얻을 수 있습니다. 1923 01:34:58,230 --> 01:35:00,630 >> 그리고 C 라이브러리와 유사합니다. 1924 01:35:00,630 --> 01:35:03,090 그래서 당신은 string.h에 포함 당신은 나 strlen 얻을. 1925 01:35:03,090 --> 01:35:04,680 당신은이 모든 것들을 strcpy를 얻을. 1926 01:35:04,680 --> 01:35:09,650 당신이 jQuery를 포함 할 때, 당신은 좋은 얻을 변화 요소를 선택하는 방법 1927 01:35:09,650 --> 01:35:10,390 일, 등등. 1928 01:35:10,390 --> 01:35:12,990 당신은 추가 기능을 얻기가 자바 스크립트는 제공하지 않습니다. 1929 01:35:12,990 --> 01:35:15,310 그래서 jQuery를가 JavaScript를 지원하지 않습니다. 1930 01:35:15,310 --> 01:35:18,660 jQuery를은에 표기 라이브러리 자바 스크립트를 만드는 자바 스크립트 1931 01:35:18,660 --> 01:35:20,440 쉽게 작성. 1932 01:35:20,440 --> 01:35:23,170 >> 그래서 jQuery를이 프로그램이 아닙니다 언어. 1933 01:35:23,170 --> 01:35:24,540 그러나 자바 스크립트입니다. 1934 01:35:24,540 --> 01:35:27,420 1935 01:35:27,420 --> 01:35:27,590 합니다. 1936 01:35:27,590 --> 01:35:30,420 확실히 당신은 바로 용어를 얻을. 1937 01:35:30,420 --> 01:35:32,490 질문? 1938 01:35:32,490 --> 01:35:33,882 예. 1939 01:35:33,882 --> 01:35:35,132 그게 문제인가? 1940 01:35:35,132 --> 01:35:37,910 1941 01:35:37,910 --> 01:35:38,350 괜찮아요. 1942 01:35:38,350 --> 01:35:40,080 그렇다면 jQuery를 사용합니까? 1943 01:35:40,080 --> 01:35:42,390 글쎄, 당신은 몇 가지를 작성하는 경우 당신은 포함 자바 스크립트 코드와 1944 01:35:42,390 --> 01:35:45,570 jQuery를 파일의 맨 위에있는 등 스크립트 파일, 당신은 달러 기호를 사용 1945 01:35:45,570 --> 01:35:47,310 이제 jQuery를 액세스를 얻을 수 있습니다. 1946 01:35:47,310 --> 01:35:49,860 그리고 이것은 다른 PHP에서 달러 기호. 1947 01:35:49,860 --> 01:35:51,590 >> 그것은 동일한 기호 당신의 키보드에 입력합니다. 1948 01:35:51,590 --> 01:35:52,780 하지만 그들은 매우 다른 것을 의미한다. 1949 01:35:52,780 --> 01:35:56,090 PHP에 달러 기호는이 의미 나는 변수를 선언하는 방법입니다. 1950 01:35:56,090 --> 01:35:59,120 당신이 포함 한 자바 스크립트에서, jQuery를, 그것은 jQuery를 의미합니다. 1951 01:35:59,120 --> 01:36:01,280 그래서 염두에 보관하십시오. 1952 01:36:01,280 --> 01:36:03,420 그렇다면 우리는 DOM 요소를 선택할 수 있습니다? 1953 01:36:03,420 --> 01:36:06,500 그런데, 언제 그것을 추한 자바 스크립트를 할 방법, 당신은 액세스 1954 01:36:06,500 --> 01:36:08,240 전역 변수를 문서화합니다. 1955 01:36:08,240 --> 01:36:11,170 그리고 당신은 ID 가족에 의해 요소를 얻을. 1956 01:36:11,170 --> 01:36:15,270 이건 정말 길고 장황하다 아니라 아주 좋은. 1957 01:36:15,270 --> 01:36:18,190 >> 또는 당신은 모든 요소를​​ 얻을 수 있습니다 그 p 태그입니다. 1958 01:36:18,190 --> 01:36:20,080 즉, 자바 스크립트로도 작동합니다. 1959 01:36:20,080 --> 01:36:22,470 그러나 우리는 정말 나타나지 않았다 당신은 구문 너무 많이. 1960 01:36:22,470 --> 01:36:24,620 우리가 보여 당신은 무엇을 jQuery를했다. 1961 01:36:24,620 --> 01:36:28,720 거기 그래서 전체 선택이 다만 얻는다는 자바 스크립트로 표현 된 1962 01:36:28,720 --> 01:36:33,320 이 아주 좋은 달러에 응축 해시 가족에 서명. 1963 01:36:33,320 --> 01:36:38,480 와 $ P, 그것은 그런 식으로 그냥 곳. 1964 01:36:38,480 --> 01:36:41,690 모든 P 태그를 선택합니다 가족 내에서, 우리는 공간을 넣어 1965 01:36:41,690 --> 01:36:42,890 둘 사이에. 1966 01:36:42,890 --> 01:36:44,815 그리고 지금, 우리는 모든 P를 얻을 수 가족 내부 태그. 1967 01:36:44,815 --> 01:36:48,740 1968 01:36:48,740 --> 01:36:50,380 >> 그리고 익숙? 1969 01:36:50,380 --> 01:36:52,880 음, 안젤라 이야기 CSS 셀렉터. 1970 01:36:52,880 --> 01:36:54,200 나에게 1 초 줘. 1971 01:36:54,200 --> 01:36:57,230 그리고 요소를 선택하기 위해, 당신은 당신과 같은 것을 사용 1972 01:36:57,230 --> 01:36:58,530 CSS 셀렉터와 함께 할 것입니다. 1973 01:36:58,530 --> 01:37:00,910 당신은 앞에 해시를 넣으면 그것은, 그것은 ID로 선택합니다. 1974 01:37:00,910 --> 01:37:02,220 점은 클래스에 의해 선택한다. 1975 01:37:02,220 --> 01:37:06,230 당신은없는 것을있는 경우 해시 또는 점, 그것은 그 태그를 선택합니다. 1976 01:37:06,230 --> 01:37:07,140 질문입니다. 1977 01:37:07,140 --> 01:37:07,470 예? 1978 01:37:07,470 --> 01:37:11,510 >> 청중 : 우리는에 도트를 사용하면 우리의 HTML은, jQuery를이 아니다? 1979 01:37:11,510 --> 01:37:13,520 >> JOSEPH ONG : 우리의 HTML에있는 점 자바 스크립트 것입니다. 1980 01:37:13,520 --> 01:37:14,750 그것은 jQuery를 것 아니다. 1981 01:37:14,750 --> 01:37:17,620 너희들은 그것을 배운 방법 jQuery를가. HTML을 사용하는 것입니다. 1982 01:37:17,620 --> 01:37:21,510 그리고 당신은 그것을 통과 어떤 HTML이 될 것입니다. 1983 01:37:21,510 --> 01:37:23,480 그래서 난에 대해서 설명 할 것 실제로 두 번째. 1984 01:37:23,480 --> 01:37:27,800 그래서 우리가 어떻게 요소에 물건을합니까 일단 우리는 그것을 선택한? 1985 01:37:27,800 --> 01:37:30,130 그래서의 예 요소를 선택. 1986 01:37:30,130 --> 01:37:32,280 그래서 지금, 우리는 그것에 물건을하고 싶어요. 1987 01:37:32,280 --> 01:37:35,730 >> 따라서이 경우, 내가 다시 가자 이전 슬라이드로. 1988 01:37:35,730 --> 01:37:37,360 그것은 전에 밥이었다. 1989 01:37:37,360 --> 01:37:40,660 그리고 나는 그것을 변경하려면 밀로에 HTML 내부. 1990 01:37:40,660 --> 01:37:43,240 그래서 HTML 함수를 호출 요소에서. 1991 01:37:43,240 --> 01:37:45,580 즉, HTML 함수이다 소자의 제조 방법. 1992 01:37:45,580 --> 01:37:47,430 그리고 나는 그것을 어떻게 제공 나는 HTML이되고 싶어요. 1993 01:37:47,430 --> 01:37:50,560 그리고 그것은 단지 내부에 무슨 대체 내가주는대로와 해당 태그. 1994 01:37:50,560 --> 01:37:50,830 예. 1995 01:37:50,830 --> 01:37:51,170 질문? 1996 01:37:51,170 --> 01:37:57,397 >> 청중 : 해시를 사용하는 만 jQuery를위한. 1997 01:37:57,397 --> 01:37:59,313 [청취] 1998 01:37:59,313 --> 01:38:01,230 우리는 그것을 사용하지 않을 것입니다. 1999 01:38:01,230 --> 01:38:01,960 >> JOSEPH ONG : 네, 그렇습니다. 2000 01:38:01,960 --> 01:38:03,750 하지만 너무 걱정하지 마세요 에 대한 순수한 자바 스크립트. 2001 01:38:03,750 --> 01:38:06,670 난 그냥 당신들에 초점을 맞출 방법 , jQuery를 함께 할 것입니다 때문에 2002 01:38:06,670 --> 01:38:10,020 즉, 중요한 것 퀴즈에 대한 부분입니다. 2003 01:38:10,020 --> 01:38:10,400 오른쪽. 2004 01:38:10,400 --> 01:38:10,880 정확히. 2005 01:38:10,880 --> 01:38:16,025 그래서 당신은 그 해시 태그를 참조 있도록 와 요소를 선택에 해당 2006 01:38:16,025 --> 01:38:18,310 그 때문에 해시 태그의 ID 중간. 2007 01:38:18,310 --> 01:38:19,670 해시 태그는 ID를 의미한다. 2008 01:38:19,670 --> 01:38:22,870 그리고이 요소는 중간의 ID를 가지고 있습니다. 2009 01:38:22,870 --> 01:38:24,366 그래서 우리는 선택 요소입니다. 2010 01:38:24,366 --> 01:38:27,160 >> 청중 : [청취]. 2011 01:38:27,160 --> 01:38:31,090 달러 기호 해시 [들리지? 2012 01:38:31,090 --> 01:38:31,710 >> JOSEPH ONG : 그래서 없음. 2013 01:38:31,710 --> 01:38:33,280 문제는 당신이 사용할 수 있습니다. 값입니다. 2014 01:38:33,280 --> 01:38:36,445 그리고. 값은 요소에서 작동 입력은 있습니다. 2015 01:38:36,445 --> 01:38:40,950 2016 01:38:40,950 --> 01:38:45,495 jQuery를, 그것은 것입니다 . 발,하지. 값. 2017 01:38:45,495 --> 01:38:49,080 그래서 작은 예에 얻을 것이다 그 조합이 모든 것을 보여줍니다 2018 01:38:49,080 --> 01:38:49,850 초. 2019 01:38:49,850 --> 01:38:53,130 하지만이 작은 조각을 제공합니다 생각 지금까지 사람들에게 의미가 있습니다. 2020 01:38:53,130 --> 01:38:55,450 HTML을 변경하려면, HTML 메서드를 호출합니다. 2021 01:38:55,450 --> 01:38:56,432 예. 2022 01:38:56,432 --> 01:38:58,200 >> 청중 : 당신은 설명 할 수 다시 방법은? 2023 01:38:58,200 --> 01:39:01,900 >> JOSEPH ONG : 그래서 방법은 그냥 이 하나에 속하는 기능, 2024 01:39:01,900 --> 01:39:04,590 케이스, 이러한 DOM 요소 중 하나, 내가보기 때문에 2025 01:39:04,590 --> 01:39:05,940 첫 번째 요소를 선택했습니다. 2026 01:39:05,940 --> 01:39:07,320 사실, 나 마우스를 사용 할 수 있습니다. 2027 01:39:07,320 --> 01:39:09,330 나는 첫 번째 요소를 선택했습니다. 2028 01:39:09,330 --> 01:39:12,310 그리고 나는이 HTML이라는 이 있다고 작동합니다. 2029 01:39:12,310 --> 01:39:15,710 그리고이 기능이 포함되어있어에 이 점은, 우리는 방법을 호출합니다. 2030 01:39:15,710 --> 01:39:19,480 즉, 대한 그냥 멋진 이름입니다. 2031 01:39:19,480 --> 01:39:20,730 다시 말해봐. 2032 01:39:20,730 --> 01:39:22,880 2033 01:39:22,880 --> 01:39:25,170 그래서 우리는 선택 기억 이제 요소입니다. 2034 01:39:25,170 --> 01:39:27,810 그리고 우리는의 안쪽에 넣었습니다 요소 변수. 2035 01:39:27,810 --> 01:39:28,600 수정? 2036 01:39:28,600 --> 01:39:34,380 >> 그래서 우리는에 HTML을 변경하고자 할 때 내부, 그것은 당신이 전에 밥 때문에 2037 01:39:34,380 --> 01:39:36,420 마일로 해당 텍스트를 변경하고 싶습니다. 2038 01:39:36,420 --> 01:39:37,920 그래서 우리는 HTML를 호출합니다. 2039 01:39:37,920 --> 01:39:41,610 그리고 우리는 그것을 말해 무엇 내부의 HTML 그 요소는 지금해야한다. 2040 01:39:41,610 --> 01:39:44,107 그리고 그것은, 마일로으로 변경 나는 그것을 마일로을 준 때문이다. 2041 01:39:44,107 --> 01:39:46,542 >> 청중 : 그래서 그들은 함께 노력하고 있습니다. 2042 01:39:46,542 --> 01:39:47,030 [청취] 2043 01:39:47,030 --> 01:39:47,390 >> JOSEPH ONG : 그래, 그래. 2044 01:39:47,390 --> 01:39:48,180 그들은 함께 노력하고 있습니다. 2045 01:39:48,180 --> 01:39:50,210 그래서 그들 중 하나를 선택 첫 번째 요소. 2046 01:39:50,210 --> 01:39:52,863 그리고 두 번째는 않습니다 그것은 뭔가. 2047 01:39:52,863 --> 01:39:53,790 예. 2048 01:39:53,790 --> 01:39:56,168 >> 청중 : [청취]. 2049 01:39:56,168 --> 01:40:01,280 이 방법은 HTML에서와 다른 경우 당신은 실제와 동일한 방법이있다. 2050 01:40:01,280 --> 01:40:01,560 >> JOSEPH ONG : 네. 2051 01:40:01,560 --> 01:40:03,370 즉, 다른 방법입니다. 2052 01:40:03,370 --> 01:40:04,670 즉, 다른 방법입니다. 2053 01:40:04,670 --> 01:40:07,860 그리고 우리는 단지 두 번째에 해당 커버 할 수 우리는 예를 얻을 때. 2054 01:40:07,860 --> 01:40:12,000 나는 확실히 우리가 속도 있는지 확인하려면 우리는 시간이 없어 때문이다. 2055 01:40:12,000 --> 01:40:15,360 하지만 지금은 시간이 지남에 따라 방법을 실행했습니다. 2056 01:40:15,360 --> 01:40:15,490 OK. 2057 01:40:15,490 --> 01:40:16,430 쿨. 2058 01:40:16,430 --> 01:40:20,130 당신이 클래스를 추가 할 경우에, 거기에 또한 클래스 추가 방법. 2059 01:40:20,130 --> 01:40:24,300 이것은 무엇을 단지 예입니다 당신은 jQuery를 함께 할 수 있습니다. 2060 01:40:24,300 --> 01:40:25,950 그건 그냥 클래스를 추가합니다. 2061 01:40:25,950 --> 01:40:28,660 >> 당신이 그것을 제거하려는 경우, 당신은 제거를 호출 할 수 있습니다. 2062 01:40:28,660 --> 01:40:32,280 즉, 당신이 할 수있는 또 다른 일입니다. 2063 01:40:32,280 --> 01:40:35,680 당신이 할 수있는 일들 때문에 더 많은 예제. 2064 01:40:35,680 --> 01:40:37,510 그래서 난에 넣을 수 있습니다 이 같은 최고? 2065 01:40:37,510 --> 01:40:38,760 막내 제거합니다. 2066 01:40:38,760 --> 01:40:42,470 2067 01:40:42,470 --> 01:40:45,930 난 단지에 해당 자바 스크립트를 실행하는 경우 내 파일의 상단, 즉 작동합니까? 2068 01:40:45,930 --> 01:40:48,540 2069 01:40:48,540 --> 01:40:48,920 오른쪽. 2070 01:40:48,920 --> 01:40:50,530 중간은 아직 존재하지 않기 때문에. 2071 01:40:50,530 --> 01:40:51,840 그래서이 작동하지 않을 것입니다. 2072 01:40:51,840 --> 01:40:52,800 실행 순서. 2073 01:40:52,800 --> 01:40:55,040 먼저 정상에 간다. 2074 01:40:55,040 --> 01:40:55,540 무엇? 2075 01:40:55,540 --> 01:40:57,450 >> 청중 : 막내가 아직 존재하지 않는 이유는 무엇입니까? 2076 01:40:57,450 --> 01:40:57,810 >> JOSEPH ONG : 네. 2077 01:40:57,810 --> 01:40:58,710 막내는 아직 존재하지 않습니다. 2078 01:40:58,710 --> 01:40:59,600 정확히. 2079 01:40:59,600 --> 01:41:01,320 >> 청중 : 당신은 중간 말했다. 2080 01:41:01,320 --> 01:41:01,510 >> JOSEPH ONG : 죄송합니다. 2081 01:41:01,510 --> 01:41:02,720 막내는 아직 존재하지 않습니다. 2082 01:41:02,720 --> 01:41:04,510 그리고 다른 것은 내가하지 않은 것입니다 jQuery를 포함 2083 01:41:04,510 --> 01:41:06,580 스크립트 SRC를 요청 파일. 2084 01:41:06,580 --> 01:41:07,960 그래서 그 일을하지 않을 것이다. 2085 01:41:07,960 --> 01:41:09,580 사실, 난에 그렇게하지 ​​않았다 인 다음 슬라이드, 2086 01:41:09,580 --> 01:41:10,700 그 중 하나를 해결하기 위해 가정. 2087 01:41:10,700 --> 01:41:14,120 그러나 우리는이 작업을 수행하는 방법은 자바 스크립트입니다 이벤트가 구동된다. 2088 01:41:14,120 --> 01:41:17,410 그래서 우리가 할 것은 우리가 이벤트를 사용합니다 이 일어날 수 있도록 핸들러. 2089 01:41:17,410 --> 01:41:19,510 그래서 저는 문서를 선택 먼저 설정합니다. 2090 01:41:19,510 --> 01:41:23,810 나는 문서 인 경우, OK, 말 준비 나 기능을 실행 할 수 있습니다. 2091 01:41:23,810 --> 01:41:25,470 그래서 모든 구문 수단이다. 2092 01:41:25,470 --> 01:41:27,100 >> 나는이 문서를 선택. 2093 01:41:27,100 --> 01:41:29,530 이제, 언제 문서는 준비 기능을 실행합니다. 2094 01:41:29,530 --> 01:41:32,970 그리고 여기에 문서가있을 때 모든 HTML이 가지는 의미, 준비 2095 01:41:32,970 --> 01:41:36,140 로드, 그때는 함수를 실행 즉, 해당 요소를 제거합니다. 2096 01:41:36,140 --> 01:41:40,270 그리고 지금은이 기능을 실행하면 난 준비에 전달 된 것으로, 난 2097 01:41:40,270 --> 01:41:43,780 보장하는 모든 HTML 페이지가 먼저 존재하는 것입니다. 2098 01:41:43,780 --> 01:41:44,100 예. 2099 01:41:44,100 --> 01:41:44,425 질문? 2100 01:41:44,425 --> 01:41:48,200 >> 대상 : 이벤트 키워드는 무엇입니까 함수 내에서? 2101 01:41:48,200 --> 01:41:51,750 >> JOSEPH ONG : 그래서에서 해당 이벤트의 키워드 기능은 매개 변수입니다 2102 01:41:51,750 --> 01:41:53,490 함수에 전달되는 모든 이벤트에 대한. 2103 01:41:53,490 --> 01:41:55,470 그것은 그 뭔가의 당신은 무료로 얻을. 2104 01:41:55,470 --> 01:41:59,320 당신의 주요 처리기를 사용하는 경우 pset8, 해당 이벤트는 위해, 당신을 말할 수 2105 01:41:59,320 --> 01:42:01,350 예를 들어, 어떤 키가에 눌렀습니다. 2106 01:42:01,350 --> 01:42:05,540 이 경우, 현재 상태 이벤트, 실제로 매우 유용하지 않습니다. 2107 01:42:05,540 --> 01:42:08,640 그러나 키 다운 이벤트, 더의 유용, 당신은 알게하기 때문에 어떤 2108 01:42:08,640 --> 01:42:12,330 당신은 키에 액세스하여 누른 키 해당 이벤트 객체 해제 코드입니다. 2109 01:42:12,330 --> 01:42:13,530 수정? 2110 01:42:13,530 --> 01:42:15,160 그 의미가 있습니까? 2111 01:42:15,160 --> 01:42:16,280 OK. 2112 01:42:16,280 --> 01:42:16,580 예. 2113 01:42:16,580 --> 01:42:17,150 질문? 2114 01:42:17,150 --> 01:42:19,290 >> 청중 : 그래서 당신은 넣을 수 있습니다 아래 스크립트 태그 낮은? 2115 01:42:19,290 --> 01:42:19,940 >> JOSEPH ONG : 그래서 그래. 2116 01:42:19,940 --> 01:42:21,500 당신은 스크립트를 넣을 수 있습니다 낮은 아래에 태그. 2117 01:42:21,500 --> 01:42:23,090 하지만 그것은 정말 성가신됩니다. 2118 01:42:23,090 --> 01:42:26,590 그리고 우리는 모두를 중앙 집중화 좋아 한 장소에서 우리의 코드. 2119 01:42:26,590 --> 01:42:28,290 그리고 이것은 우리가 그것을 할 수 있습니다. 2120 01:42:28,290 --> 01:42:32,010 기억 이전의 나는 더 좋은가 말했다 요소가 있는지 확인하는 방법 2121 01:42:32,010 --> 01:42:33,880 당신이 코드를 실행하기 전에 페이지에? 2122 01:42:33,880 --> 01:42:36,079 그리고 이것은 단지 좋은 방법입니다 해당 작업을 수행합니다. 2123 01:42:36,079 --> 01:42:37,329 >> 청중 : [청취]. 2124 01:42:37,329 --> 01:42:41,710 2125 01:42:41,710 --> 01:42:42,230 >> JOSEPH ONG : 네. 2126 01:42:42,230 --> 01:42:43,460 당신은 여전히​​ 오른쪽에있을 것? 2127 01:42:43,460 --> 01:42:46,930 기억 때문에 포함 페이지의 상단에있는 파일. 2128 01:42:46,930 --> 01:42:49,890 그래서 전에 먼저 실행할 것 당신은 페이지의 하단에 도착. 2129 01:42:49,890 --> 01:42:54,600 2130 01:42:54,600 --> 01:42:55,180 OK. 2131 01:42:55,180 --> 01:42:59,210 그래서 당신은 또한 다른 추가 할 수 있습니다 이벤트 처리기의 종류. 2132 01:42:59,210 --> 01:43:00,640 이 하나의 단지 클릭을 처리합니다. 2133 01:43:00,640 --> 01:43:03,910 그런 다음, 막내를 클릭하면 는 경고와 함께 나타납니다. 2134 01:43:03,910 --> 01:43:05,440 이건 그냥 다른 이벤트 유형. 2135 01:43:05,440 --> 01:43:08,840 ready 이벤트 반대로, 당신은 지금 당신이받을 때 클릭 이벤트를 사용 2136 01:43:08,840 --> 01:43:10,190 요소를 클릭합니다. 2137 01:43:10,190 --> 01:43:13,860 >> 그리고이 경우, 클릭을 기억 핸들러는 막내에 연결되어 있습니다. 2138 01:43:13,860 --> 01:43:16,080 그래서 그것은 단지 발생 나는 막내를 클릭합니다. 2139 01:43:16,080 --> 01:43:19,510 그리고 다른 하나는, 준비 이벤트 문서에 첨부 하였다. 2140 01:43:19,510 --> 01:43:23,750 따라서 문서를 기다린다 준비한다. 2141 01:43:23,750 --> 01:43:25,120 이해가가? 2142 01:43:25,120 --> 01:43:26,190 나는 이동할 수 있다고 생각합니다. 2143 01:43:26,190 --> 01:43:26,610 예. 2144 01:43:26,610 --> 01:43:26,980 질문? 2145 01:43:26,980 --> 01:43:28,230 >> 청중 : [청취]. 2146 01:43:28,230 --> 01:43:31,676 2147 01:43:31,676 --> 01:43:33,620 이 경우에는 [청취]를 사용하세요. 2148 01:43:33,620 --> 01:43:36,650 >> JOSEPH ONG : 오, 그래,이 때문에에 경우, 나는 막내를 기다릴 필요가 2149 01:43:36,650 --> 01:43:40,740 먼저 화면에 표시하는 요소 나는에 클릭 처리기를 연결하기 전에 2150 01:43:40,740 --> 01:43:43,062 그것은, 어떤 I 안에 넣어 이유 문서 준비 중. 2151 01:43:43,062 --> 01:43:45,780 2152 01:43:45,780 --> 01:43:46,840 OK. 2153 01:43:46,840 --> 01:43:52,390 그리고 다음, 그래서 이것은 큰 예입니다 당신은 모든 것을 결합하는 방법. 2154 01:43:52,390 --> 01:43:55,930 이건 그냥 폼 검증의 예입니다 당신은 강의에서 본 적이있다. 2155 01:43:55,930 --> 01:43:58,410 그래서 같이 단계별로 수행 이를 통해 이동합니다. 2156 01:43:58,410 --> 01:43:59,590 그리고 그것은 완전히 확인 될 것입니다. 2157 01:43:59,590 --> 01:44:01,400 그냥 위에서 아래로 읽어. 2158 01:44:01,400 --> 01:44:03,030 >> 나는 바닥에 폼이 있습니다. 2159 01:44:03,030 --> 01:44:07,590 문서가 준비가되면, 나는 연결 되도록 폼에 처리기를 제출 2160 01:44:07,590 --> 01:44:12,910 내가 양식을 제출하면, 나는 값을 얻을 그 입력의 각 내부. 2161 01:44:12,910 --> 01:44:14,560 그것은 빈의 경우에 체크. 2162 01:44:14,560 --> 01:44:17,090 그것은 빈의 경우에, 나는, false를 반환하기 때문에 나는 양식을 제출하지 않으려는, 2163 01:44:17,090 --> 01:44:18,950 형태가 맞지 않기 때문입니다. 2164 01:44:18,950 --> 01:44:22,040 암호가 비어 있거나 그 이하의 경우 8 자보다, 내가 제출하지 마십시오 2165 01:44:22,040 --> 01:44:24,470 형태는, 그 또한 잘못 때문이다. 2166 01:44:24,470 --> 01:44:28,150 그리고 반환 거짓은 방지 제출과에서 양식 2167 01:44:28,150 --> 01:44:30,150 새로운 페이지로 이동. 2168 01:44:30,150 --> 01:44:31,310 >> 그리고 희망이 의미가 있습니다. 2169 01:44:31,310 --> 01:44:34,650 나는 너희들을 도보로해야한다고 생각 자신의 단계로이 코드 단계. 2170 01:44:34,650 --> 01:44:38,350 그리고 당신은 무엇을 선택 이해하면 요소와 그것에 물건을 2171 01:44:38,350 --> 01:44:40,520 실제로 만들 것이다, 수반 당신에게 많은 의미. 2172 01:44:40,520 --> 01:44:41,295 예? 2173 01:44:41,295 --> 01:44:44,150 >> 청중 : 무엇을합니까 이름 = 이름이 의미? 2174 01:44:44,150 --> 01:44:48,530 >> JOSEPH ONG : 그래서 이름 = 사용자 이름과 이름 = 암호는 그냥 볼 의미 2175 01:44:48,530 --> 01:44:50,730 무엇이든의 속성 당신은 선택입니다. 2176 01:44:50,730 --> 01:44:51,790 그리고 그 다음은 일치해야합니다. 2177 01:44:51,790 --> 01:44:53,870 그래서 우리는 등록으로 이동합니다. 2178 01:44:53,870 --> 01:44:56,240 그리고 우리는 모든 입력을보고 등록. 2179 01:44:56,240 --> 01:44:59,990 그리고 우리는 1 곳의 이름을 선택 속성은 사용자 이름과 동일하다. 2180 01:44:59,990 --> 01:45:04,040 그래서 첫 번째 선택은 선택 사용자 이름 입력. 2181 01:45:04,040 --> 01:45:08,220 그리고 두 번째 선택은 선택 사람들은이 하나 있기 때문에 암호 2182 01:45:08,220 --> 01:45:12,240 자신의 이름 속성의 설정은 무엇 그들이 있어야 할거야. 2183 01:45:12,240 --> 01:45:12,575 질문? 2184 01:45:12,575 --> 01:45:17,030 >> 청중 : 제출에 어떻게합니까 바닥 부분은 상단 부분을 해결? 2185 01:45:17,030 --> 01:45:19,350 >> JOSEPH ONG : 그래서이기 때문에 이벤트 처리기의. 2186 01:45:19,350 --> 01:45:23,000 그래서 우리는 제출 이벤트를 기다리는 즉 양식에서 시작됩니다. 2187 01:45:23,000 --> 01:45:24,730 그리고 제출입니다 전부입니다. 2188 01:45:24,730 --> 01:45:26,080 왜 내가 거기에 제출할 부릅니까? 2189 01:45:26,080 --> 01:45:28,870 이 양식이 제출 될 때, 말한다, 내가 제출 이벤트를 얻을. 2190 01:45:28,870 --> 01:45:33,480 그래서 나는 단지를 차단하자 다음 대신이 코드를 실행합니다. 2191 01:45:33,480 --> 01:45:33,823 예? 2192 01:45:33,823 --> 01:45:35,866 >> 청중 : 왜해야합니까 기능 이벤트가있을 수 있습니다? 2193 01:45:35,866 --> 01:45:38,580 왜 그냥 들리지] 수 있지? 2194 01:45:38,580 --> 01:45:41,140 >> JOSEPH ONG : 자바 스크립트에서, 당신 때문에 함수를 선언해야합니다. 2195 01:45:41,140 --> 01:45:42,910 이 일을 그냥 방법 자바 스크립트에서. 2196 01:45:42,910 --> 01:45:44,800 당신은 무슨 말을해야 함수를 실행합니다. 2197 01:45:44,800 --> 01:45:47,290 그래서 당신은 당신이다는 것을 그것을 말하는거야 여기에 기능을 기대하는 대신 2198 01:45:47,290 --> 01:45:48,260 단지 중괄호. 2199 01:45:48,260 --> 01:45:50,460 >> 청중 : 그리고 기능 다음 무엇입니까? 2200 01:45:50,460 --> 01:45:50,650 >> JOSEPH ONG : 네. 2201 01:45:50,650 --> 01:45:52,790 이 함수는 내부에 무엇 이건 중괄호 후 2202 01:45:52,790 --> 01:45:53,630 그 기능 키워드. 2203 01:45:53,630 --> 01:45:54,045 예? 2204 01:45:54,045 --> 01:45:55,295 >> 청중 : [청취]. 2205 01:45:55,295 --> 01:46:00,180 2206 01:46:00,180 --> 01:46:00,660 >> JOSEPH ONG 기준 : 제출? 2207 01:46:00,660 --> 01:46:03,520 >> 청중 : 아니, 기능 이벤트없이. 2208 01:46:03,520 --> 01:46:03,770 >> JOSEPH ONG : 네. 2209 01:46:03,770 --> 01:46:05,610 이벤트가없는 자, 당신은 그렇게 할 수 있습니다. 2210 01:46:05,610 --> 01:46:08,480 이벤트를 필요로하지 않는 경우에, 당신은 그것을 생략 할 수 있습니다. 2211 01:46:08,480 --> 01:46:12,220 그러나 당신이 할 경우, 다음 거기에 넣어. 2212 01:46:12,220 --> 01:46:12,520 예. 2213 01:46:12,520 --> 01:46:13,190 빠른 질문? 2214 01:46:13,190 --> 01:46:14,440 >> 청중 : [청취]. 2215 01:46:14,440 --> 01:46:21,170 2216 01:46:21,170 --> 01:46:21,440 >> JOSEPH ONG : 네. 2217 01:46:21,440 --> 01:46:24,550 당신이해야 할 일을하기 때문에, document.ready은 모두 대기 말한다 2218 01:46:24,550 --> 01:46:26,540 페이지의 HTML 먼저로드합니다. 2219 01:46:26,540 --> 01:46:30,510 그리고 일반적으로, 당신은 당신의 요소를 원하는 당신이 코드를 실행하기 전에 장소에. 2220 01:46:30,510 --> 01:46:31,030 괜찮아요. 2221 01:46:31,030 --> 01:46:32,180 우리는 아약스에 도착해야합니다. 2222 01:46:32,180 --> 01:46:33,110 우리는 많은 시간을 필요가 없습니다. 2223 01:46:33,110 --> 01:46:35,170 그래서 장단점. 2224 01:46:35,170 --> 01:46:37,450 자바 스크립트는 쉽게 시도입니다 jQuery를 함께 작성합니다. 2225 01:46:37,450 --> 01:46:38,930 그러나 jQuery를 좀 느립니다. 2226 01:46:38,930 --> 01:46:42,290 >> PHP는 C보다 느린 것처럼,의 이 해석이 없기 때문입니다. 2227 01:46:42,290 --> 01:46:45,690 그리고 jQuery를보다 약간 느립니다 자바 스크립트,의 많은 않기 때문에 2228 01:46:45,690 --> 01:46:46,630 후드 아래 것들. 2229 01:46:46,630 --> 01:46:48,660 당신이 jQuery를 사용하는 경우 그래서, 그것은이다 보다 조금 느리게 2230 01:46:48,660 --> 01:46:51,630 자바 스크립트, 비록 그 당신에게 좋은 우아함을 제공합니다. 2231 01:46:51,630 --> 01:46:53,970 그리고 마지막으로, 아약스. 2232 01:46:53,970 --> 01:46:59,170 지금까지 아약스와 함께, 당신은 Ajax를 보지 못했다 아직 pset7의 측면에서, 때문에 2233 01:46:59,170 --> 01:47:01,150 당신이 할 때, 당신은 제출 견적에 대한 양식입니다. 2234 01:47:01,150 --> 01:47:02,350 그것은 새로운 페이지를로드합니다. 2235 01:47:02,350 --> 01:47:04,440 그래서 당신이 큰 흰색 플래시를 얻을 페이지에서 그 동안 2236 01:47:04,440 --> 01:47:06,820 두 번째 페이지가로드, 맞습니까? 2237 01:47:06,820 --> 01:47:08,780 >> 정말 좋은 것입니다 당신이 경우 이 플래시를하지 않았다. 2238 01:47:08,780 --> 01:47:11,600 페이스 북과 같은, 경우에 당신은 단지로 이동합니다 바닥, 그것은 새로운 내용을 추가합니다 2239 01:47:11,600 --> 01:47:13,490 전체 페이지를 새로 고치지 않고. 2240 01:47:13,490 --> 01:47:15,420 따라서이 같은 것이 좋을 것이다. 2241 01:47:15,420 --> 01:47:17,370 이 자바 스크립트 코드입니다 왼쪽에. 2242 01:47:17,370 --> 01:47:19,390 당신은 입력의 내부하세요. 2243 01:47:19,390 --> 01:47:21,340 당신은 야후에서 주식 정보를 얻을 2244 01:47:21,340 --> 01:47:27,440 그리고 당신은 큰 문자열을 만드는 것이 자, 이것이 내가 원하는 메시지입니다 말한다 2245 01:47:27,440 --> 01:47:28,400 화면에 표시합니다. 2246 01:47:28,400 --> 01:47:32,280 그리고 당신은 그 내부에 메시지를 넣어 도착 몇 가지 HTML 요소의 2247 01:47:32,280 --> 01:47:33,970 화면에 표시. 2248 01:47:33,970 --> 01:47:35,540 >> 그래서 여기에 무슨 일이 일어나고있는 모든이다. 2249 01:47:35,540 --> 01:47:39,410 그러니까 기본적으로,이 모든 때문에 자바 스크립트 당신은 실행할 필요가 없습니다 2250 01:47:39,410 --> 01:47:42,980 더 이상 PHP는,이 있는지 확인합니다 페이지가 새로 고쳐지지 않습니다. 2251 01:47:42,980 --> 01:47:47,470 그래서 이것은 단지 추상적 인 생각입니다 지금 여기 말인지있다. 2252 01:47:47,470 --> 01:47:50,630 추상적 인 아이디어는 당신이 그것을 할 경우 자바 스크립트를 모든, 당신은 필요가 없습니다 2253 01:47:50,630 --> 01:47:52,330 페이지 새로 고침. 2254 01:47:52,330 --> 01:47:53,800 그러나 당신은 어떻게 실제로이 작업을 수행합니까? 2255 01:47:53,800 --> 01:47:56,230 >> 음, 사실,의 얘기하자 첫 번째 문제. 2256 01:47:56,230 --> 01:47:59,340 문제는, 자바 스크립트에 실행이 동기입니다. 2257 01:47:59,340 --> 01:48:02,000 그래서 당신은 하나를 기다릴 필요가 전에 마무리 라인 2258 01:48:02,000 --> 01:48:03,370 다음 줄을 실행합니다. 2259 01:48:03,370 --> 01:48:06,130 그리고 내가 야후에 갈거야 경우, 그들의 서버는 아주 천천히, 그리고 2260 01:48:06,130 --> 01:48:08,790 그것은 그들에게 3 초 소요 해당 주식 정보를 나에게 돌려 줄? 2261 01:48:08,790 --> 01:48:12,620 경우에 나는, 그 가격 라인을 칠 때 그것은에 의해 그대로 실행, 동기 2262 01:48:12,620 --> 01:48:15,390 기본적으로 무엇을 그냥 할 것 것은 귀하의 브라우저에 실속 것입니다 2263 01:48:15,390 --> 01:48:15,930 삼초. 2264 01:48:15,930 --> 01:48:18,900 그리고 당신은 할 수있을 위하여려고하고 있지 않다 아무것도하면 해당 데이터를 가져 오는 동안. 2265 01:48:18,900 --> 01:48:20,010 그것은 고정 할 것. 2266 01:48:20,010 --> 01:48:20,800 >> 그리고 그게 나쁘다. 2267 01:48:20,800 --> 01:48:23,390 당신은 사용자를 싶지 않아 얼어 붙은 웹 페이지가 있습니다. 2268 01:48:23,390 --> 01:48:24,170 수정? 2269 01:48:24,170 --> 01:48:25,480 그건 그냥 나쁜. 2270 01:48:25,480 --> 01:48:26,770 모두가 동의? 2271 01:48:26,770 --> 01:48:29,270 당신은 페이스 북을 검색하는 경우 정지 당신은, 당신을 아무것도 할 수 없습니다 2272 01:48:29,270 --> 01:48:31,920 정말 좌절. 2273 01:48:31,920 --> 01:48:34,960 따라서 해결책은 우리가 뭔가를 할 수 있습니다 비동기 대신. 2274 01:48:34,960 --> 01:48:38,910 그래서이 모든 비동기 것은 말한다 ,이 물어 보자된다 2275 01:48:38,910 --> 01:48:40,280 일부 데이터에 대한 URL. 2276 01:48:40,280 --> 01:48:41,610 그리고 나는 계속하겠습니다. 2277 01:48:41,610 --> 01:48:45,330 난 그냥 실행 유지하는거야 무엇이든 그 후했다 코드입니다. 2278 01:48:45,330 --> 01:48:49,290 >> 그리고 그 데이터가 준비 될 때마다 나는 그것을 처리합니다. 2279 01:48:49,290 --> 01:48:50,540 즉, 말을 전부입니다. 2280 01:48:50,540 --> 01:48:52,795 2281 01:48:52,795 --> 01:48:56,710 >> 청중 : 아약스 단지 만든다 코드 비동기? 2282 01:48:56,710 --> 01:48:58,560 >> JOSEPH ONG : 그것은 비동기의 데이터 가져 오기의 방법입니다. 2283 01:48:58,560 --> 01:49:01,230 그래서 아약스에 대한 우선 그것은 나를 데이터를 얻을 수있다 2284 01:49:01,230 --> 01:49:03,170 외부 웹 사이트에서. 2285 01:49:03,170 --> 01:49:07,045 그리고 두 번째는 그것을 확인합니다입니다 제가있는 동안 내 페이지 실속하지 않습니다 2286 01:49:07,045 --> 01:49:07,970 그 데이터를 페치. 2287 01:49:07,970 --> 01:49:09,600 즉, 비동기 부분입니다. 2288 01:49:09,600 --> 01:49:13,040 그것은 다른 곳에 간다 때문에 내가 말 때문에 나는 잠시에 계속 2289 01:49:13,040 --> 01:49:14,900 그것은 데이터를 가져 오는 사용자들은 그것은 비동기 수 있습니다. 2290 01:49:14,900 --> 01:49:17,170 나는 실행을 유지합니다. 2291 01:49:17,170 --> 01:49:18,960 >> 그래서 비동기 유지 마음에있는 생각. 2292 01:49:18,960 --> 01:49:22,010 그리고 난 당신을 보여 드리죠 차이이다. 2293 01:49:22,010 --> 01:49:23,920 동기 버전 왼쪽에 있습니다. 2294 01:49:23,920 --> 01:49:26,240 비동기 버전 오른쪽 측에있다. 2295 01:49:26,240 --> 01:49:29,170 볼 수 봐하는 단계에 해당하는 것을 2296 01:49:29,170 --> 01:49:30,610 각 라인에서 실행됩니다. 2297 01:49:30,610 --> 01:49:32,730 저기, 경고가 먼저 보여줍니다. 2298 01:49:32,730 --> 01:49:34,590 때문에 야후에서 주식 정보를 얻기 2299 01:49:34,590 --> 01:49:37,250 3 초 소요, 그것은 포장 마차 3 초. 2300 01:49:37,250 --> 01:49:39,880 그리고, 그것은 가격을 경고 그 세 초 후에. 2301 01:49:39,880 --> 01:49:43,690 >> 그래서 지금, 그 경고 쇼 그 때까지 - 2302 01:49:43,690 --> 01:49:44,610 인치 삼초 2303 01:49:44,610 --> 01:49:47,670 그리고, 그것은 그 이후로 알려줍니다. 2304 01:49:47,670 --> 01:49:48,930 그래서 그냥 단계별로 간다. 2305 01:49:48,930 --> 01:49:51,200 그것은 너희들처럼 정확한을 받아 들일 것인가? 2306 01:49:51,200 --> 01:49:54,170 비동기 실행과 함께, 먼저 경고합니다. 2307 01:49:54,170 --> 01:49:57,410 그럼 당신은이 URL에 꺼. 2308 01:49:57,410 --> 01:49:59,530 그리고 당신은 내가에 갈거야, 말 데이터 만 부탁드립니다. 2309 01:49:59,530 --> 01:50:01,170 그리고 나는 갈거야 나중에 처리합니다. 2310 01:50:01,170 --> 01:50:04,230 그래서 바로 실행 나는이 있는지 확인 후 다음 행 2311 01:50:04,230 --> 01:50:05,710 비동기 요청. 2312 01:50:05,710 --> 01:50:08,920 >> 그래서 0.001 초, 당신은 경고 안녕을 참조하십시오. 2313 01:50:08,920 --> 01:50:10,960 그 기능, 경고 안녕을 실행합니다. 2314 01:50:10,960 --> 01:50:14,240 그리고 약속을했기 때문에 그 I 나중에 데이터를 처리 될지 2315 01:50:14,240 --> 01:50:17,920 데이터가 돌아 오면됩니다 발생 삼초 후, 나는이 실행되는 2316 01:50:17,920 --> 01:50:21,380 내가 거기있을 기능. 2317 01:50:21,380 --> 01:50:21,870 예? 2318 01:50:21,870 --> 01:50:25,750 >> 청중 : 당신은 지정하거나 수 아약스의 의미를 명확히? 2319 01:50:25,750 --> 01:50:30,460 >> JOSEPH ONG : 그래서 아약스 방법이 있다면 나는 웹 사이트와 나는 경우 데이터가 필요 2320 01:50:30,460 --> 01:50:34,690 다음 페이지를 새로 고침하지 않으 나는 아약스이라는 기술을 사용합니다. 2321 01:50:34,690 --> 01:50:40,630 즉, 근본적으로 의미 오기 전에 다른 웹 사이트에서 데이터. 2322 01:50:40,630 --> 01:50:43,724 그리고 단지 방법으로 그것을 내 웹 페이지를 실속하지 않습니다. 2323 01:50:43,724 --> 01:50:46,650 >> 청중 : 그래서 내재 자바 스크립트 또는 jQuery를 부분? 2324 01:50:46,650 --> 01:50:50,590 >> JOSEPH ONG : 그래서 누군가가 할 수있는 방법을 썼다 이 오래 전에 자바 스크립트에서. 2325 01:50:50,590 --> 01:50:52,050 하나의 시점에서, 그것은 존재하지 않았다. 2326 01:50:52,050 --> 01:50:56,630 그리고 누군가가이 기술을 발명 사람들이 데이터를 요청할 수 있도록하는 2327 01:50:56,630 --> 01:50:57,680 이런 식으로. 2328 01:50:57,680 --> 01:50:59,550 그리고 그들은 몇 가지 물건을 썼다 당신을 위해 그것을 할 수 있습니다. 2329 01:50:59,550 --> 01:51:01,605 그리고 jQuery를 그냥 당신이 있습니다 그것을 할 수있는 아주 좋은 방법 2330 01:51:01,605 --> 01:51:03,112 이 $로. 기능을 얻을. 2331 01:51:03,112 --> 01:51:07,200 2332 01:51:07,200 --> 01:51:09,480 질문? 2333 01:51:09,480 --> 01:51:11,560 나는에 대한 질문에 대답 할 수 아약스 이후도. 2334 01:51:11,560 --> 01:51:13,870 난 여기있을거야. 2335 01:51:13,870 --> 01:51:16,390 >> 그래서의 우리가하지 않고 데이터를 가져올 수 있도록 페이지를 새로 고침. 2336 01:51:16,390 --> 01:51:18,200 그리고 그것은의 우리는이 작업을 수행 할 비동기 방식으로 그 2337 01:51:18,200 --> 01:51:19,450 페이지를 고정하지 않습니다. 2338 01:51:19,450 --> 01:51:22,680 2339 01:51:22,680 --> 01:51:27,310 너무 오래 읽을하지 않은 경우 그 설명은 당신을 위해 너무 오래했다. 2340 01:51:27,310 --> 01:51:29,430 그래서 마지막으로, 크로스 사이트 스크립팅 공격. 2341 01:51:29,430 --> 01:51:30,910 우리는 Zamyla 이것을 보았다. 2342 01:51:30,910 --> 01:51:34,285 내 데이터베이스 사람이 이름이있는 경우, 이 스크립트 태그, 그리고 어떤 2343 01:51:34,285 --> 01:51:38,280 내 페이지의 일부 코드가 그 인쇄 사람들의 행의 이름, 또는 내가 가지고있는 중 2344 01:51:38,280 --> 01:51:43,310 삽입 일부 자바 스크립트 코드 페이지에이 이름, 2345 01:51:43,310 --> 01:51:45,680 어떤 HTML이 생성됩니다? 2346 01:51:45,680 --> 01:51:47,290 글쎄, 난 HTML 태그를 인쇄 할 수 있습니다. 2347 01:51:47,290 --> 01:51:48,390 나는 모든 태그를 인쇄 할 수 있습니다. 2348 01:51:48,390 --> 01:51:50,740 >> 나는 인쇄 해요 부분에 도착 내 친구들과 함께. 2349 01:51:50,740 --> 01:51:52,980 나는 로렌을 인쇄 할 수 있습니다. 2350 01:51:52,980 --> 01:51:54,200 마일로을 인쇄 할 수 있습니다. 2351 01:51:54,200 --> 01:51:56,810 다음 데이터베이스에있는 내 이름 스크립트 게시물입니다 2352 01:51:56,810 --> 01:51:58,060 아첨 페이스 북의 상태를 표시합니다. 2353 01:51:58,060 --> 01:52:00,740 2354 01:52:00,740 --> 01:52:04,330 나는 페이지에이를 삽입하기 때문에 그것은 자바 스크립트처럼 보이기 때문에 때 2355 01:52:04,330 --> 01:52:07,930 이 페이지는 사용자에게 보내집니다, 그것은 자바 스크립트로 실행됩니다. 2356 01:52:07,930 --> 01:52:10,800 그리고 이것은 우리가 부릅니다 크로스 사이트 스크립팅 공격. 2357 01:52:10,800 --> 01:52:14,570 누군가의 악의적 인 내용을 넣습니다 에 해당 할 수 데이터베이스 2358 01:52:14,570 --> 01:52:17,080 몇 가지 추가 문자열이나 일부 자바 스크립트 문자열입니다. 2359 01:52:17,080 --> 01:52:20,130 >> 그리고 그것은 밖으로 인쇄되는 경우 이 방식으로 페이지, 다음 무엇을 2360 01:52:20,130 --> 01:52:22,580 어떻게 나쁜 코드가 실행되는 것입니다 내가 의도하지 않은 것을 2361 01:52:22,580 --> 01:52:25,110 그것이 실행 얻을 수 있도록. 2362 01:52:25,110 --> 01:52:28,230 그리고 그 모든 교차 사이트의 스크립팅 공격입니다. 2363 01:52:28,230 --> 01:52:31,790 그리고 당신이 주변에 얻는 방법 Zamyla 말했듯이입니다. 2364 01:52:31,790 --> 01:52:34,340 당신은 물건을 포장 HTML 특수 문자. 2365 01:52:34,340 --> 01:52:39,460 이 HTML 특수 문자는 PHP입니다 이 종류를 방지 할 기능 2366 01:52:39,460 --> 01:52:42,000 당신에게 일어나는 것 당신은 악의가있는 경우 2367 01:52:42,000 --> 01:52:43,830 데이터베이스에있는 문자열입니다. 2368 01:52:43,830 --> 01:52:47,650 그렇지 있도록 단지를 탈출 HTML로 해석 얻을. 2369 01:52:47,650 --> 01:52:50,960 그것은 작은 브래킷을 대체 우리가 실체를 부르는과 함께. 2370 01:52:50,960 --> 01:52:52,250 그리고 우리는 강의에서이 이상했다. 2371 01:52:52,250 --> 01:52:55,800 그래서 너희들이해야한다고 생각 그에 대한 좋은 이해. 2372 01:52:55,800 --> 01:52:57,420 질문? 2373 01:52:57,420 --> 01:52:57,820 예. 2374 01:52:57,820 --> 01:53:00,860 >> 청중 : 어떻게 것 [들리지? 2375 01:53:00,860 --> 01:53:01,555 >> JOSEPH ONG : 다시 말해봐. 2376 01:53:01,555 --> 01:53:02,500 >> 청중 : 어떻게 모니터 할 것이다 - 2377 01:53:02,500 --> 01:53:02,860 >> JOSEPH ONG : 오른쪽. 2378 01:53:02,860 --> 01:53:06,080 그래서 당신은 말한다 무언가를해야 할 때 나는 내 이름으로, 유형을 등록합니다. 2379 01:53:06,080 --> 01:53:09,390 난 그냥 그 필드에 입력, 내 이름은 stript 포스트 아첨 페이스 북 2380 01:53:09,390 --> 01:53:11,570 상태 스크립트 닫기 태그입니다. 2381 01:53:11,570 --> 01:53:15,690 그리고 단지에 투입되는 데이터베이스, 내가 말할 수 없기 때문에 사람 2382 01:53:15,690 --> 01:53:18,260 세계에 이름이없는 남아있는 화살표 나와 2383 01:53:18,260 --> 01:53:19,036 그 단어 스크립트. 2384 01:53:19,036 --> 01:53:21,330 정말 이해가되지 않습니다. 2385 01:53:21,330 --> 01:53:24,560 그래서 난 그냥 있는지 확인해야합니다 I 나는 그것을 인쇄하기 전에 물건을 소독 2386 01:53:24,560 --> 01:53:25,420 페이지 아웃. 2387 01:53:25,420 --> 01:53:27,140 >> 청중 : 그래서 HTML 특수 카드 스크립트 태그를 방지? 2388 01:53:27,140 --> 01:53:28,710 >> JOSEPH ONG : 네. 2389 01:53:28,710 --> 01:53:29,960 그래서 스크립트 태그를 방지하지 않습니다. 2390 01:53:29,960 --> 01:53:32,320 그냥 있는지 확인한다 스크립트 태그는하지 않습니다 2391 01:53:32,320 --> 01:53:35,120 HTML 또는 해석 - 2392 01:53:35,120 --> 01:53:35,400 그래. 2393 01:53:35,400 --> 01:53:38,470 그것은 단지로서 오는 것을 실제로입니다. 2394 01:53:38,470 --> 01:53:39,220 괜찮아요. 2395 01:53:39,220 --> 01:53:40,930 그래서 퀴즈 검토했다. 2396 01:53:40,930 --> 01:53:41,830 쿨. 2397 01:53:41,830 --> 01:53:45,088 >> [박수]