R.J. 키노 :의 단지 시작하자. 그래서이 퀴즈 1. 여기에 몇 가지 높은 수준의 정보입니다. 퀴즈에 대한 소개 페이지는에있다 URL, 더 이상 CS50.net, 비록 없다는 것을 여전히 작동합니다. 그것은 CS50.harvard.edu/quizzes/2013/1입니다. 그것은 당신을 말하고, 정보 페이지에 큰의 언제, 어디서, 즉 다음 주 수요일 객실의 무리. 그리고 다음 주 수요일로, 지금부터 이일 의미한다. 이 모든 정보가 있습니다. 그러나 누적됩니다. 상반기에서 그래서 모든 올해는 퀴즈에 잠재적으로 당신은 정말 진보 할 수 없기 때문에, C에있는 물건이없는 상태 경우와 루프와 같이하십시오. 그러나에 중점을두고있을 것 퀴즈 0부터 적용 소재, 구조체와 파일로 시작 나는 / O 그것은 일반적으로 더 많은 퀴즈가 0보다 도전. 평균 점수는 일반적으로 낮다. 열심히 공부. 당신이 공부하는 동안, 사용하십시오 CS50/discuss 질문을 게시 다른 사람의 질문을 읽어보십시오. 그래서 당신은 질문이없는 경우, 로그인 읽기 친구의 질문입니다. 아마도 그들은 좋은 질문입니다. 그리고 연습 퀴즈를. 우리는 대한 퀴즈를주는 있었어요 지금은 7 ~ 8 년입니다. 그들은 온라인으로 모든입니다. 미래의 질문과 유사하다 오래된 질문에. 즉, 우리가 그들을 만드는 방법입니다. 퀴즈는 아직 존재하지 않습니다. 우리 중 아무도 그것을 볼 수 없다. 그러나 모양을 이전 퀴즈. 이 리뷰 세션의 경우, 이것은 아니다 주제의 완전한 목록. 당신은 다음이 참석 할 수 없으며, 퀴즈 완벽하게 준비해야합니다. 그렇지 않으면되지 않을 것 퀴즈의 많은. 그리고 이것은 반드시도 당신이에 대해 알아야 할 모든 화제가 없습니다. 그것은 것들에 노출 의미하는 것 우리가 다룬, 당신을 생각 나게 우리 적용 및 방법 이는 우리가 덮여있다. 하지만 당신은 더 가야 할 것이다 깊은 당신은 다시 한 번 확인하고 공부를 할 때 당신은 주어진에 대해 모든 걸 알고 당신이 기입 한 주제에 그 있던 모든 코너 강의에 덮여. 퀴즈 노트로 이동하는 당신에게 필기 노트, 시계 강좌 동영상. 즉, 당신이했습니다 만들 수있는 좋은 방법 모든 기지 덮여. 나는이 만든 때, 시작하기 슬라이드, 내가 찾은 곳 넣어 시도 정보. 그래서 파일에 대한 I / O, 예를 들어, 7 주, 월요일 강의 및 게시 제 6과 문제 설정 모두가 파일에 대한 자세한 내용은 I / O 내가했던 이 모든 주제에 대한. 그래서 그 제목 슬라이드는 할 수있다 당신에게 도움이 될 수. 그래서 여기에 우리가 파일 I / O를 가지고 에 기억 문제는 5 세트, 우리는 fclose 함수, fopen을 사용 fwrite는, FREAD 및 fseek는. 의 30ish JPEG 파일을 복구 및 데 크기를 조정하고 엉망으로 한 비트 맵, 당신은 꽤 잘 알고 있어야합니다 이러한 기능을 가진 그들이 어떻게 작동합니다. 당신은 더 이상 익숙하지 않으면 확실히를 검토합니다. 그리고 당신이 이해 한 것을 다른 인수는, 그들이 사용 할 때. 그러나 일반적인 파일 관련 버그 당신에 대해 질문 할 수있다 - 글쎄, 당신은 잊어 버린 경우 확인하는 경우 당신이 가기 전에 fopen을 실제로 일 파일을 수정합니다. 즉, 나쁜 될 수 있습니다. 당신은 파일을 FCLOSE하는 잊어 버린 경우 당신이 fopened으니, 그 비슷 메모리 누수. 그건 아주 나쁜입니다. 그리고 당신이 나있는 경우에 확인 잊고 전에 파일의 끝에 도달 에 쓰기 시작합니다. 당신이 말한다면,이 봐, 난에있어 파일의 끝에. 나에게 더 많은 바이트를 제공합니다. 글쎄, 그건 아마에 없을거야 당신이 기대하는 방법을 작동합니다. 즉, 파일 I / O를 위해 정말이야 우리는 그것의 너무 많이했기 때문에 문제는 설정으로. 당신이 이해한다면 어떤 일이 벌어지고 문제 세트 5, bitmats 기억 그리고 JPEG 파일은, 당신은 아마 야 I / O 파일에 설정 그 비트의 경우 퍼지, 확실히 그 문제를 검토 세트와 연관​​된 재료. 구조체는에 있었다 주제 있었다 퀴즈 퀴즈 0과 1 사이의 라인. 아주 퀴즈 0의 상처를하지 않았다. 그래서 그들은 확실히에있을거야 퀴즈 1, 7 주 월요일. 구조체는 무엇입니까? 여기에서 우리는 구조체를 보여줍니다. 그것은 새로운 유형처럼. 그것은 용기처럼 여러 필드. 이 경우, 우리는 구조체를 선언했습니다 두 개의 필드가 학생 - 우리가 호출하는 문자열 이름과 우리가 나이를 호출하고 INT. 그래서 학생들이 주위에 전달하거나 I 때 학생들을 수정, 내가 할 수 있습니다 자신의 이름과 자신의 나이에 액세스 할 수 있습니다. 의 그 몇 가지 코드를 살펴 보자. 여기에서 우리는 내가 선언 한 것을 볼 학생의, 단지 등 어떤 변수를 선언 - INT의 X, INT의 Y, 등등. 여기에 학생들입니다. 그는 자신의 분야에서 아무것도없이 시작합니다. 그래서 그들을 설정할 수 있습니다. 당신은 점이있는 구조체의 필드를 설정합니다. 그래서 나는 여기에서 그 s.name = RJ 말했다했습니다. 그리고 = 21 s.age. 또한 필드를 업데이트 할 수 있습니다 당신은 업데이트 할 것 같은 방법으로 변수의 값. 그래서와 RJ에서 내 이름을 변경하려면 R.J.에 마침표가 없습니다 철자 올바른 방법. 그것은 = RJ, 동일 s.name 될 우리는 처음에 그 말대로. 그리고 당신이 그들에 액세스 할 수 있습니다. 그래서 우리는 그들을 설정했습니다. 우리는 그들을 업데이 트했습니다. 또한 액세스 할 수 있습니다 아주 동일한 방법으로. 그래서 여기에, 나는 밖으로 인쇄하고 있습니다 R.J. 21 세입니다. 그리고 그 값에 액세스하고 있습니다 s.name 및 s.age와. 그래서 구조체를 액세스하는 것 도트 표기법. 네, 질문? 청중 :에 이유가 당신은 두지 않았다 이전 슬라이드 타입 정의와 같은 외형에 학생 다음 구조체 학생 및 마지막에 학생? R.J. 아키 : 그래서 질문에서였다 이 슬라이드, 우리는 일반적으로 봤어요 다음 구조체 노드를 형식 정의 및 구조체의 필드와 다음 단어 노드. 그리고 여기에 와서 내가 어떻게, 형식 정의에게 말하지 않았다 다음 구조체 학생 및 구조체 후 학생의 필드? 이유는 내가 할 필요가 없다는 것입니다 구조체의 내부에 액세스 할 수 있습니다. 그래서 이름없이 떠나 OK입니다. 나는 단지로 남길 수 있습니다 익명 구조체. 우리가 링크 된 목록을 위해 그것을 할 및 이유 내부 당신이 필요하기 때문에 물건입니다 구조체 노드 별을 참조하십시오. 따라서 구조체는 이름을 가지고있다, 그래서 당신은 나중에 액세스 할 수 있습니다. 그것은 사소한 세부 사항입니다. 하지만 당신은 일반적으로 형식 정의 구조체를 볼 수 있습니다 중괄호가 필요하지 않은 경우 이름과 형식 정의 구조체 일부 이름 중괄호 다음에 당신이 경우 이름이 필요합니다. 그래서 좋은 질문입니다. 그리고 그 시점에, 우리는 수정하는 경향이 구조체에 의해 구조체를 주위에 전달 값이 아닌, 참조. 그래서 우리는 단지에 대한 포인터를 주위에 전달합니다 구조체 대신 주위에 전달 자신을 구조체. 그래서 당신은 매우 자주있을거야 사용하여,이 경우, 학생 * 나 구조체 노드 * 또는 노드 * 대신 학생 또는 노드 중. 그래서 여기, 내가 말했듯이, OK, 변수의 PTR 의의 주소가 될 것입니다. 그것은 포인터가 될 것 학생 R.J.에 그래서 우리는 이러한 필드에서 얻을 수 있습니다 우리가 무엇을 얻을 같은. 첫째, ID 포인터를 참조 구조체를 얻을 수 있습니다. 그 다음 * PTR 그리고 점 다음 세. 그래서 필드에 액세스하고, 내가 업데이 트했습니다 그것은 지금 22, 때문에,하자 말하자면, 제 생일이었다. 바로 가기 구문이있다 여기에있는 화살표를 사용하여. 그래서 PTR 화살표 연령은 단지입니다 *의 ptr.age과 동일. 자, 당신이해야합니다 뭔가 암기하고 기억합니다. 당신은 그것을 pset6에 많이 사용 철자의 PSET. 하지만이 무슨 실제로 후드 아래에. 그것은 포인터를 역 참조 있어요 후 액세스. 질문? 청중 : [청취]. R.J. 아키 : 그래서 왜 우리가 사용하는 대신의 구조체로 포인터 자신을 구조체? 당신이 전달하는 경우 그 이유는 것 함수에 구조체, 당신 아마 다만 4 정도를 주변에 전달하려면 포인터를 나타내는 바이트로 잠재적으로 30에 반대 구조체이다 40 바이트. 그래서 함수에 뭔가를 전달 쉽게 때 일 짧은 작다. 질문? 청중 : 당신이 언급했을 수 있습니다 처음에,하지만이 있습니다 [청취]에 다른 슬라이드 업? R.J. 키노 :이 슬라이드가 될 것입니다 리뷰 세션 후까지. 우리는 웹 사이트에 그들을 게시 할 수 있습니다. 그래서 넘어 약간에 이동 빨리, 우리는 데이터에 대해 이야기 할 것입니다 구조. 이 많이 있습니다. 우리는 그들의 무리에 덮여있다. 여기에 당신이 이해해야 무엇 데이터 구조에 대한. 당신은 정말 높은에서 이해해야합니다 각각의 구조가 무엇인지 수준. 당신은 영어로 설명 할 수 있습니다 CS50을 촬영하지 않은 친구 방법 우리는 우리의 데이터를 구성하고, 왜 우리는 좋겠 이러한 방식으로 무언가를 사용? 그 것은 하나입니다. 일 두 사람은 이해 구현. 그래서 이러한 것들을 사용하는 방법을 이해 C.에 그리고 우리는이를 통해 갈 수 있습니다. 그리고 그 일이 세 알 것 실행 시간과의 한계 당신이 사용하는 다양한 구조. 당신이 사용하는 것이 왜 그렇게 이해 대신 배열의 테이블을 해시. 이해하는 속도, 평균, 해시 테이블에 액세스하는 것이다. 작업이 빨리 내용을 이해하기 연결리스트 만 배열에 느리고 그 반대의 경우도 마찬가지. 그래서 이해하기 위해, 당신은해야합니다 그냥 알고 큰-O 표기법을 이해 이들에 대해 이야기하는 방법 물건의 종류. 그리고 우리는 그것에 대해 이야기 할 것입니다. 그래서 일단, 연결리스트. 여기에서 하이 레벨 화상이다 연결리스트의. 우리는 수업 시간에이 문제를 보여줍니다. 우리는 일반적으로 10 명이 무대에 서. 그러나 우리는 일련의 노드가 위치를 각 노드가 어떤 값과 포인터가 그 다음 값. 그래서, 다음에 하나의 노드에서 얻을 수 다만 저에게 다음 노드를주고 말한다. 당신은 해당 노드가 있습니다. 나에게 다음 노드를 제공합니다. 당신은 해당 노드가 있습니다. 그래서 나에게 다음 노드를 지정하고 어떤 노드의 왼쪽은 없습니다 때까지. 그래서 이야기를 계속 높은 수준에서. 그것은 물건을 삽입하는 것은 매우 간단합니다 연결리스트로. 당신은 순서에 대해 상관하지 않는 경우 당신은 그것을 제거 할 수 있습니다 바로 처음에. 즉, 일정 시간이다. 그러나 값을 찾기 어렵다. 당신이 물어하려는 경우, 내 목록에있는 일곱은? 당신은 통과해야 모든 단일 값입니다. 이 일곱인가? 이 일곱인가? 이 일곱인가? 이 일곱인가? 또 다시. 그리고는 O (N)이다. 그래서 퀴즈 공부를 할 때, 배열이 비교. 즉, OK인가? 빛은 희미했다. OK. 때 연결리스트는 더 나은 무엇입니까? 때 배열이 더 나은 무엇입니까? 그럼 몇 가지 코드를 살펴 보자. 여기에 잠재적 노드입니다. 이 구조체이다. 그것은 INT의 N이있는 우리의 값이됩니다. 그리고, 다음 구조체 노드 *이있는 다음 노드로 우리의 포인터입니다. 그래서 여기, 우리는 우리가 일어난 것을 볼 수 있습니다 우리의 노드에서 int를 넣어합니다. 그러나 이것은 문자의 연결리스트 인 경우 별 또는 수레의 연결리스트, 우리 마치도 그렇게 할 수 있습니다. pset6의 기억, 당신은 아마이 있었다 단지 문자 별 또는 연결리스트 정적 문자 배열. 의는 작업에 여기에서 살펴 보자. 그래서 우리는 새를 삽입 할 N 우리의 연결리스트에. 우리는 헤드 포인터으로 시작 가이 노드에 대한 포인터 N의 값과 포인터의 그 다음 이 노드 점의 값입니다 n 및 널 (null)의 옆에 있기 때문에 그것은 마지막 노드이다. 그래서 시간의 관심, 그럴 게요 화면에 모든 코드를 넣어. 그리고 우리는 그것을 살펴 보겠습니다 한 번에 몇 줄. 그래서 여기에 코드입니다. 나는 가독성 바랍니다. 우리가 가장 먼저하는 일이있다 우리는 새로운 노드를 MALLOC. 그래서 신규 노드에 대한 포인터를 만드는 확실히 아무것도 설정되지 않습니다 아직 최대. 우리는 있는지 확인하십시오 새로운 노드는 널 (null)이 아닙니다. 그렇지 않으면, 우리는 포기해야합니다. 그래서 체크하는 데, 우리는 지금 노드의 값을 설정합니다. 그래서 우리는 우리의 N 필드에 새 N을 넣어. 그리고 우리를 가리 키도록 다음 포인터를 설정 원래의 머리, 우리가 할 수 있도록 지금이 삽입 우리의 목록에 노드. 마지막으로, 우리는 해외 헤드 점이 우리의 새로운 노드로, 그 그래서 우리는한다면 머리에서 시작, 우리는이에있을 것입니다 새로운 첫 번째 노드 대신 이전 첫 번째 노드. 그리고이 기능을 종료 할 때, 변수에 새로운 노드가 더 이상 존재하지 않습니다 그 함수에 국부적이므로. 그래서이 세상의 상태입니다. 우리의 글로벌 헤드는 우리의 새로운 가리키는 가리키는 첫 번째 노드, 우리의 원래 첫 번째 노드, 어떤 점 그 후 노드. 즉, 삽입했다. 그 비교적했다 희망 따라하기 간단합니다. 의심, 그림을 그릴 때. 그래서 내가 말하는 것을 발견 링크 된 목록과보고 코드는 매우 도움이되지 않습니다. 링크의 사진을보고 반해 목록 오, 나를 생각하게 할 수 있습니다, 그래서 여기이 노드가있다. 하지만 그 포인터를 업데이트 할 경우, 그 연결이 끊어을 끝납니다. 그리고 잊어 버린 곳 노드 간다. 그리고 코드는 종료됩니다. 그리고 당신은 여러 개의 노드가 즉 연결이 끊어집니다. 그리고 당신과 함께 끝나지 않는 당신이 원하는 목록. 그래서 당신은 그림을 그리고 그것을 할 경우 단계별로, 희망, 당신은 볼 것이다 의 관점에서 사물의 올바른 순서 확인하기 위해 포인터를 업데이트 목록이 함께 온다. 삽입은 비교적 간단합니다. 더 복잡 한 것 정렬 된 목록에 삽입. 더 복잡한 기능을 삭제합니다 와, 찾을 수 있으므로에 목록을보고 무언가가 있는지 확인합니다. 아마도 당신은 pset6에 이런 짓을 할 때 당신의 해시 테이블에있어 당신은 말했다, 또한, 단어의 사과입니다 내 연결리스트에? 그래서 당신은 이미이 작업을 수행 할 수 있습니다. 하지만 확실히, 당신의 기억을 및 발견을 다시 구현하기 위해 노력하고 링크 된 목록을 삭제 다시 구현. 재미 보조 노트, 또한 이중 연결 당신이 목록, 포워드와 포인트 포인터 당신이 갈 수 있도록, 이전 버전 다음 노드와 이전 노드에. 그리고 작년에 문제가 발생했습니다 해당 유형의 퀴즈, 이야기 에 대한 목록을 이중 연결. 자, 당신이있어 구조의 비교적 잘 알고있는, 때문에 대부분의 당신의 아마 pset6에 그들을 사용. 여기에 조금 덜 익숙한 하나입니다. 보조 노트로서, 나는 퀴즈 1이라고 생각합니다 주로 퀴즈 0보다 힘든 때문에 당신은, 일을하고있는 물건 많이 수행하지 않았습니다. 또 다른 방법을 넣으려면, 퀴즈 0에 대한, 당신은 C.를 많이 작성했다 우리 C.에 대해 질문 퀴즈 1의 경우, 우리는에 대해 물어거야 PHP와 자바 스크립트, 어떤 당신 많은으로 작성하지 않았습니다. 우리는 C 코드에 대해 물어볼 것입니다 그 당신의 많은 부분을 작성하지 않았습니다 이 고급 C 물건. 그래서 확실히 물건을 우리가 실천 강의에 대해 이야기하는 당신 필요하지 않았다 문제에 설정합니다. 말하자면, 당신은 작성하지 않았습니다 문제에 스택을 설정합니다. 그러나 강의했다. 여기에서의 높은 수준의 정보는 포토 우리는 매년 보여줄 것을 스택. 그것은에있는 트레이 스택의 메이의 식당. 높은 수준에서, 스택은 마지막이다 첫 번째 아웃 데이터 구조에. 즉거야 의미 물건을 넣어 - 1, 3, 7, 12, 14, 마이너스 0. 내가 가진 수없는 한 가지 말 - 3, 0 음. 당신은 안으로 모든 물건을 넣어 그리고 당신은 넣어 마지막 하나는 처음이다 나올 것 하나. 그래서 당신은 두 가지 작업이 - push와 pop. 나는 것을 퍼팅의 모든 이 같은 몸짓은 푸시합니다. 그리고 제가 잡아에 도달했을 때 뭔가 나 잡아 정상에 도달 뭔가, 그게 대중이다. 그래서 우리는 스택을 구현하는 것입니다. 그리고 우리는 강의를 보여 주었다 배열을 사용. 그러나 당신은 그 (것)을 할 수 링크 된 목록을 사용하여. 스택은 개념 데이터입니다 구조를 좋아하지 구현 고유 한. 그래서 그것은 다음과 같을 것이다? 그것은 종류의 다음과 같을 것입니다. 당신은 정수의 크기를 것입니다. 그리고 당신은 값의 배열이있을 것이다 그 그 때문에 우리는 트레이를 호출하고 그림에 무슨 우리는 - 트레이 값 int - 다음 몇 가지 최대 용량. 그래서 같은 모습을 밀어 것? 우리는 스택의이 있다면 글쎄, 다음 밀어 (S) 상 무엇인가, 우리는 얻을 것 의 크기. 그리고 그 다음이 될 것입니다 우리의 배열의 열린 자리. 그래서 우리는 우리의 스택의 세 가지가 있다면, 다음 용지함 3은 다음이 될 것입니다 열린 자리 때문에 0, 1, (2)는 이미 가득 차 있습니다. 그래서 우리는에 값을 입력 s.trays [s.size], 세 번째 자리. 그리고 우리는 s.size 말을 증가 이봐, 우리는 이전에 세 가지가 있었다. 이제, 우리는 네 가지가있다. 그래서 당신이 밀어 다음에, 당신이있어 4에 뭔가를 넣어 것. 아니면 팝업 다음에, 당신은거야 3 대신 4 또는 무엇이든 볼 수 있습니다. 그리고 우리는 true로 돌아갑니다 말하자면, 헤이, 우리는 성공했다. 이했다. 엄지 손가락의 규칙으로, 경우의 함수 true를 반환 또는 가정 거짓은 항상 당신이 할 수있다, true를 반환 뭔가 잘못을했다. 그래서이 작품은 무엇입니까? 음, 1 잘 작동하고, 2, 3, 4, 5. 하지만 그건 내 용량에 도달 해 봅시다. 나는 그 문제로 실행하기 때문에 한 크기는 용량이 동일한 경우, 난 지금에 뭔가를 넣어 시도 나는이 공간이없는 배열입니다. 그래서 짧은 검사가이 문제를 해결하려면. s.size == 수용량 경우 false를 반환합니다. 그렇지 않으면, 가서 우리가 무슨 짓을. 그래서 우리는 다른 어떤 질문을 할 수 스택에 대해? 당신은 다른 무엇을 공부해야 하는가? 당신은 다른 무엇을 실천해야 하는가? 음, 팝을 구현. 우리는 이미 푸시를했다. 나는 그 문제를 해결합니다. 배열이 아닌 구현, 여기서 당신은 아마, 연결리스트를 사용합니다. 비 INT의 구현입니다. 우리는 여기에 정수를했다. 그러나 수레 수 있었다. 나는 문자열 수 있었다. 그것은 문자 별 수 있었다. 종류의 과거의 퀴즈 봐 우리는 스택에 대해 질문 한 질문입니다. 나는 우리가 주위에 스택 덮여 있다고합니다 우리가 그들을 다루었 같은 지난 몇 년 동안. 그래서 퀴즈 질문해야 좋은 표시합니다. 더 빨리 앞으로 이동, 큐. 그들은 스택처럼입니다. 그러나 그들은 먼저 알아, 먼저입니다. 당신이 영국이라면, 단어는 큐 아마 당신에게 많은 의미했다. 그렇지 않으면, 당신은 할 수 있습니다 라인으로 들어. 그들은 라인처럼 작동 애플 스토어에서. 3시에 표시하는 최초의 사람 아침에 첫 번째입니다 자신의 아이 패드를 구입하는 사람. 그래서 우리는 두 가지 작업이 있습니다 - 가 대기열. 큐에 라인에 사람을 넣습니다. 디큐는 첫 번째를 가져옵니다 오프라인 사람. 다시 말하지만, 우리는 구현할 수 있습니다 배열이. 그래서 구조체 우리는 무엇인가 강의에 보여? 그것은이 하나였다. 또, 숫자. 또, 크기 및이 새로운 일 전면. 왜 전면라는 무언가가있다? 그것은 다음의 인덱스의 큐에서 제거 할 요소입니다. 그것은 단지 내부 트랙을 유지하고있다 표시하는 최초의 사람, 그래서 우리 우리가 필요로 할 때 꺼냅니다. 물론 강의 노트를보고 시도 가 대기열을 구현하는 퀴즈 공부를 할 때. 에 대해 생각하는 중요 사항. 주위에 포장하는 경우 전면 플러스 크기는 용량보다 더 큰를 끝납니다. 다시, 당신의 구조가 꽉 찬 경우, 당신은 문제가있는 것입니다. 당신은 전에 본 적이 테이블을 해시. 당신의 대부분은 아마 구현 이 pset6에. 그것은 O을 목표 구조의 (1) 일정 시간 삽입 및 O (1) 일정 시간 조회. CS50에서는, 우리는이 구현 연결리스트의 배열. 해시 테이블에 대한 키 컴포넌트 해시 함수이다. 따라서,의 말을하자, 입력을 변환 숫자로 사전에 나오는 단어,, 색인이 될 것이다. 그리고 우리는 그 인덱스를 사용합니다 우리의 배열에. 그래서 여기에 귀여운 그림의 study.50.net에서. 우리는 모든 단어에 던져 우리의 해시 함수. 그리고 해쉬 함수는 우리에게 알려줍니다 여기서이 단어를 넣어. 이 땅의 모든 위대한입니다 모든 슬롯에 대해 하나의 단어가있다. 하지만 pset6에서 기억, 거기 슬롯보다 더 많은 단어입니다. 때 그래서 무슨 일이 충돌을 얻을? 대신에 하나의 값을 저장하는, 의는, 해시 테이블 (3)을 가정 해 봅시다 링크 된 목록을 저장합니다. 그래서 대신 멜론을 갖는 여기, 당신은 연결 목록이있을 것입니다, 첫 번째 노드는 멜론입니다. 다음 노드는 고양이입니다. 그리고 제 3 노드는하자, 충돌하다 이 모든 말씀을 시작하기 때문에, 말 C.와 그래서 대부분의 pset6이했다. 당신은 pset6에 해시 테이블을하지 않은 경우 당신이 뭔가를 시도 트라이는 확실히 해시 테이블을 검토합니다. 당신은 확실히, pset6에 그것을 않은 경우 해시 테이블을 검토합니다. 그리고 당신은 pset6에 그것을 만들었는데, 그렇지 않다면 아주 오른쪽 당신을 일 확실히, 그것으로 문제를 많이했다 해시 테이블을 검토합니다. 그래서 수업은 정말 확실히 해시 테이블을 검토합니다. 시도 당신의 광대 한 소수 아웃 pset6에 시도합니다. 높은 수준의 사진. 그것은 다음과 같이, 어디 각 노드는 아이들의 집합을 갖는 경우 각 아이가 문자에 해당합니다. 모든 노드는 말한다 이봐, 나는 단어입니다. 따라서이 경우, 단어 맥스웰, 당신은에에 M을 수행하는 경우 다음 X-W-E-L-L과는 하나 이상을 수행합니다. 그리고 당신은이 기호, 델타를 얻을 수있는 우리는이 단어 의미하는 의미. 그래서 맥스웰은 단어입니다. 이러한 델타 명시를 걸쳐 있습니다 가지 단어 이는 본 일이 없습니다. 그래서 pset6에서, 데이터는 우리가 기억 우리의 모든 노드이었다 함께 "나는 어​​디로 단어입니다. "그리고 시도에 대한 좋은 점 그들은 삽입을 설명하고있다 O (단어의 길이)에서 조회. 그러니 맥스웰 통해 얻을, 그건 M-A-X-W-E-L-L. 그래서 7 ~​​ 8 - 나는 셀 수 없습니다 - 끝으로 얻을 수있는 단계 물건를 확인하세요. 여기에 너무 빨리 구현. 롭 연결을 통해 갔다 그의 사후에 기재. 그래서를 확인하세요. 미안 해요. 그의 사후에 트라이를 통해 갔다. 그래서를 확인하세요. 그러나 당신은 기본적으로 각 노드가 27이이 다음 노드 하나에 대한 포인터 한마디하니 부울입니다. 방법은 롭의 사후 체크 아웃 이 실제로 구현됩니다. 우리의 최종 구조, 우리의 나무 이진 검색 나무. 따라서 이러한보고, 이러한 덮여 있었다 최근 8 주 월요일. 나무는 제외하고, 트라이 유사하다 반드시 27 노드에서이없는 각 점. 그리고 당신은 각각이 데이터가없는 - 의미 여부를 단계 경로는 중요하지 않습니다. 트라이, 경로 위로부터에 반해 바닥, 맥스웰은 저희에게 중요했다. 하지만, 각 노드는 복수 마련되어 어린이, 아마. 우리는 좀 더 많은 어휘가있다. 트리의 루트 매우 상단에 있습니다. 그리고 우리는 매우 맨 아래 말 아니이 노드 아이들은 나뭇잎입니다. 그래서 트라이처럼 나무입니다 노드의 구조. 우리가 가고있는 나무의 일반적인 유형 에 대해 이야기하는 것은 이진 트리, 여기서 각 노드는 자식이나이 없습니다 청소년 또는 두 아이. 그래서 여기이 그림은 아니다 이진 트리 때문에 노드 3 세 자녀가 있습니다. 그러나 우리는 그 나머지를 무시한다면 그것의 이진 트리입니다 그것 때문에 속성 각 노드를 보여줍니다 0, 1, 또는 두 아이가 있습니다. 그렇다면 우리는 코드에서이를 표현할 수? 우리는 각 노드가있는 노드를 가질 수있다 그 안에 정수뿐만 아니라, 좌측 트리 포인터 과의 트리에 대한 포인터 오른쪽 두 아이 때문에. 어떻게 이런 일이 유용 했습니까? 음, 우리는에 대한 규칙을 만드는 경우에 우리는 어디 노드를 넣어, 우리는 검색을 빠르게 할 수 있습니다. 그래서 이진 검색의 개념이있다 나무, 여기서의 모든 노드 좌측 서브 트리가 더 작은 값을 가질 노드보다 우리가 찾고 있습니다. 그리고 오른쪽 하위 트리의 모든 노드 더 큰 값이 루트 노드보다. 자, 그 단어의 많은 것 같습니다. 나는 두 배의 안쪽에 넣어 갈거야 따옴표 당신에게 사진을 보여줍니다. 그래서 여기의 예입니다 이진 검색 트리. 우리가 10로 시작하는 것을 볼 수 있습니다. 왼쪽의 모든 것을 10는보다 작다. 그리고 오른쪽에있는 모든 것을 그것보다 더 큰 것입니다. 하지만 더 그래서보다, 각 노드 나무는이 속성을 표현한다. 그래서 노드 7에 3가 왼쪽에서 오른쪽으로 그리고 9. 따라서 이들 모두는 10보다 작다. 그러나 단지 그보고, 7가 3 오른쪽에 그것의 왼쪽과 9. 마찬가지로 오른쪽에, 15는 14가 그 오른쪽의 왼쪽 50. 그래서 거기에 세 개의 노드, 15, 14, 및 (50)는 또한 유효한 이진 트리 아르 또는 유효한 이진 검색 트리입니다. 그리고 그들은 모두 10보다 더 큰입니다. 그래서 그들은 할 수있다 거기에 오른쪽에. 질문이 있습니까? 청중 : 당신은 어떻게 대처 않는 경우 두 세븐이? R.J. 아키 : 그래. 어떻게 두 개의 값을 처리합니까 즉, 동일? 일부 이진 검색 나무가 말을하면 그 목표이기 때문에, 중복 무시 그냥 말, 나는 본 적이 지금까지 이런 것들. 당신이 말할 수있는 몇 가지 이진 검색 나무 노드의 내부 카운트가 있습니다. 다른 사람은 말할 수 것과 모든 왼쪽보다 작거나 같다. 그리고 오른쪽에있는 모든 것을 보다 크다. 그것은 단지에 따라 어떤 문제는 해결하고있다. 만약, 예를 들어, 사전에 그 취지 중복 걱정하지 않을 것입니다. 당신이 그들을 밖으로 던져 것입니다. 그러나 다른 문제는 신경 수 있습니다. 청중 : 그것은있을 수 있습니까 (15)의 왼쪽에있는 하나 10 이하? R.J. 키노 : 호 여기에 (14)가 1 인 경우에,이 것 유효한 이진 검색 트리 수 없습니다, 때문에 권리에 이르기까지 모든 (10)는 그것보다 더 큰 수 있습니다. 그리고 우리는 왜 볼 수 있습니다. 검색의 땅에서 나의 목표는 경우 (14)를 찾기 위해, 나는 루트에서 시작합니다. 그래서 나는 본다. OK. 우리는 루트에서 시작하는 것입니다. 10보십시오. 음, 14, 목표, 10보다 크다. 그래서 오른쪽에 있어야합니다. 이것은 전체 전화와 매우 유사하다 책 것은 우리는 진했다 이 검색 할 수 있습니다. 대신 이진 검색의 배열에, 우리는 진이야 이 나무에서 검색. 그래서 우리는 여전히 14을 찾고 있습니다. 음, (14)는 15보다 작다. 우리의 트리에의 경우에, 그것은해야 여기에이 지역에서 수. 그것은 오른쪽에 있어야합니다 (10) 및 (15)의 왼쪽. 그래서 우리는이 노드를 확인합니다. 그리고 실로, 우리는 14를 발견했습니다. 나는 그것을 통해 도보 않을거야. 하지만, 여기에 코드입니다. 비교적 사실의 간단, 이 순환하기 때문이다. 우리는 당신이 퀴즈에 무엇을 물어볼 수? 우리는이 코드를 작성하도록 요청할 수 있습니다. 우리는이 코드를 보면하도록 요청할 수 이 코드를 수정하고 무엇을 설명 저 래요. 그래. 질문? 청중 :이 슬라이드가 될 수 있습니다 그들이 마지막 시간이었다로 사용할? R.J. 키노 : 예. 그래서이 슬라이드은 확실히 게시. 독자 : 그들은 실제로 게시하고 지금의 웹 사이트에. 다윗은 그냥했다. R.J. 키노 : 슬라이드는 지금의 웹 사이트에. 아마 몇을 패치합니다 오타가 나는 지적하고 수정. 그러나 현재이있다 사이트에 버전. 기타 우리가하도록 요청할 수있는 것들 - 삽입 쓰기. 의 반복적 인 버전을 쓰기 재귀 함수는 우리가 당신에게 보여 주었다 나처럼, 이러한 것들에 대해 이야기 단락, 즉, 문장. 실행 시간을 비교 및​​ 설명 당신은 바이너리를 사용하고 싶은 것이 무엇 대신의 검색 트리 예를 들어, 테이블을 해시. 따라서 이러한 구조를 이해 꽤 깊은 수준에서. 을 작성하는 방법을 이해하는 방법을 그들에 대해 이야기하는 방법을 사용합니다. 그리고 당신은 모든 설정해야합니다. 질문? 청중 : 당신이 작성하는 경우 이진 검색 트리, 당신은 어떻게 할 어떤 값을 결정 루트로 만들어? R.J. 아키 : 그래서 질문은 무엇인지 값은 루트로해야합니까? 당신은 당신의 코드에 따라 글로벌 루트가있을 수 있습니다. 그래서 당신은 가능성에 있었다 수 있습니다 pset6 전역 해시 테이블. 아니면 루트를 통과 할 수 인수로. 여기 그래서이 검색 기능 인수 노드 * 소요됩니다. 그래서 당신이 될 일이 어떤 노드 보고하면 치료하고있는 하나입니다 루트로 당신이 그것을 안으로 통과 할 때 그리고 다 했어요. 사람들은 내 슬라이드 수 있습니다. 다음 사람은 스왑 올 수 노트북 및 마이크에. ROB 보덴 : 나는 거 같아요 다른 그 질문을 해석했다. 그러나 당신이 가지고있는 경우에 나는,로 해석 우리가 어떻게 숫자 1, 2, 3, 2 루트를 만들기 위해 알아 1 또는 3에 반대? 우리는 루트 2 할 경우, 그것은 잘의 도 1 및 3 좌우. 1 루트의 경우 그러나, 그것은 1의 상단 오른쪽에 2 오른쪽, 3. 그래서 기본적으로, 당신은 몰라 어떤 루트를 만들 수 있습니다. 그리고 어떤 알고리즘을 위해 우리는 기다리고있어 그냥 먼저 당신을 당신을 줄 삽입은 루트가 될 것입니다. 또는 우리는 당신에게 이진 트리를 주겠다고 이미 뿌리를 가지고 존재합니다. 그러나 다른 알고리즘 등이 존재 그래서 루트는 업데이트됩니다 만약에 당신 그것은 1, 2의 상황에서 결국, 3, 자동으로 업데이트 할 것 그래서, 새로운 루트 2 할 그것은 여전히​​ 잘 균형 있어요. ANGELA LI : 차가운. 안녕, 얘들 아. 난 안젤라. 그리고 우리의 C를 마무리하겠습니다 다음 우리의 웹의 일부에 들어가 기술 - HTTP, HTML 및 CSS. 그래서 먼저 버퍼이다 오버 플로우 공격. 그래서이 코드를 살펴 보자. 그것은 꽤 간단합니다. 함수 foo가있다. 그리고 그것은 아무것도 반환하지 않습니다. 그러나 포인터를 취 바라는 문자열. 그리고이 선언 것 문자 버퍼 12 슬롯이 배열입니다. 그리고 그것은 단지입니다, 방어 적이기를 사용 기능이 하나의 주소를 복사합니다 다른에. 그래서이에 복사하려고 어떤에서 우리의 버퍼 바 가리키는. 그래서 어떤 생각이 무엇을 잘못 이 코드? 청중 : 바보다 긴 경우 C, 그들은 덮어 쓰게됩니다. ANGELA LI : 네, 그렇습니다. 우리는 보장이 없다는 것을 바 12 이하가 될 것입니다. 우리는 단지 몇 가지 임의의 숫자 12을했다. 그리고 우리의 희망하자, 같이했다 그 우리의 사용자 입력이보다 작은 12 자. 그래서 이상적인 세계에서, 경우에 우리의 입력은 예상 언제나처럼, 우리는거야 안녕하세요, 같은. 즉, 12 자 미만입니다. 그것은 문자 C로 읽어옵니다. 그리고 우리는 그것으로 작업을 수행합니다. 정말 문제가되지 않습니다. 그러나 악의적 인 사람이 할 수있는 더 다음과 같이, 그들은 어디에 바가 가리키는대로 우리에게 그것은이 거대한 배열을 가리려고 단지의. 그리고이 12보다 훨씬 더 길다. 그래서 모든 길을 갈 것 여기 아래 위치로 돌아 가기 주소로 사용됩니다. 그래서이 기능을 가정 해 봅시다 foo는 호출됩니다. 아마 foo는 일부 다른 호출 한 주에 의해 호출 된 함수. foo는이 실행되는 때, 그것은 필요 위치로 돌아갑니다 알고 있습니다. foo는의 이름은 어떤 함수가 호출 된 경우 바즈, 그것은 그것의 알고있다 다시 바즈에 가야 해. 그리고 어떤이 반환 주소에게의 여기까지 우리를 말하고있다. 그러나 우리는 다른로 덮어 쓸 경우 어드레스는,이 경우, 이는 인 에서 주소의 표현 아주 다음,이 버퍼의 시작 무엇 실제로 일어날 것은 그 대신 다시 바즈에 반환, 우리의 함수를 호출하는, 그것은 단지 이 코드의 전면에 갈 예정. 그리고 이것은이 있다면 때문에 악의적 인 해커 친구가 와서 이 주입, 어쩌면이 금액 의의 실제의 수 없습니다. 그리고 실제로 단지 코드 사용자들은 휴식 컴퓨터 또는 뭔가. 그래서 이런 종류의에 대한 방어 할 수 일, 당신은 그렇게 생각하지 않습니다해야 사용자 입력은 확실 문자의 양. 예를 들어, 당신은 뭘하고 있었 철자, 당신은 단어가 있다고 들었다 40 문자가 될 것 긴 최대. 그리고 그게 좋았다. 하지만 경우에, 당신은에있을 것 반드시 45에서 읽을 수 있도록 한 번에 문자. 그렇지 않으면, 당신은 덮어 쓸 수 있습니다 당신의 버퍼. 그에 대한 질문. 그래. 청중 : 당신이 이야기 할 수 이들에 대한 좀 더? ANGELA LI : 죄송합니다. 예. 대상 : 마이크 그냥 비디오입니다. 나는 시도하고 프로젝트 것입니다. 안녕, 얘들 아. 한모금? 그럼에 몇 가지를 통해 가자 당신이 사용했던 CS50 라이브러리, 모든 학기, 대부분 사용자의 입력을 얻을 수 있습니다. 당신도 알다시피, 당신은 CS50 포함 다만 CS50.h을 수행하여 라이브러리하는 모든 프로토 타입을 포함 같이 사용할 수있는 기능, 하는 GetString 및 getInt를하고, GetFloat, 등등. 이 한 줄은 CS50에있다 문자열을 정의 라이브러리, 어떤 너희들은 모두 지금까지 알고 * 그냥 문자입니다. 하지만 그건에서 들여다 보자 하는 GetString가 어떻게 작동하는지. 이것은 매우 축소 된 버전입니다. 당신은 CS50 라이브러리 파일을 풀 수 있습니다 manuals.CS50.net, 내가 생각에서. 그리고 당신은을 통해 읽을 수 있습니다 실제 기능. 하지만이 중 일부를 커버 중요한 부분. 그래서 우리는 몇 가지 버퍼를 만들었습니다 일부 용량. 그리고 우리가 할 일은 우리가 하나의 문자를 얻을 수있다 표준 N에서 한 번에. 즉, 여기서 사용자 입력의 콘솔의 텍스트. 그래서 우리는 읽을거야 그것은 새로운 아니다 정도로 긴 문자 라인은, 파일의 끝으로 안되는 표준 입력을 종료한다. 그리고 우리가 읽는 모든 문자에 대해, 그 캐릭터가 추가 끝 경우 문자 수에 우리가 읽은 에서 그것은 우리의 능력보다 더 그 다음 우리가 할 일은 우리가 크기를 조정은 우리의 버퍼가 두 배 길어 있도록. 그래서 다시,이 버퍼에 대해 보호 오버 플로우 공격, 당신은 읽기 때문에 한 번에 문자. 그리고 어떤 시점에서 당신도 읽어 경우 많은, 당신은 당신의 버퍼를 확장합니다. 당신은 두 가지로 곱합니다. 그리고 당신은 더 많은 공간이있다. 그렇지 않으면, 당신은 추가 버퍼에 문자. 그리고 당신은 모든 판독 한 후 자, 버퍼를 축소 할 것이다 다시 정상 크기로, 추가 널 (NULL) 종료 후 반환합니다. 이제 getInt를 살펴 보자. 너희들이이 글을 읽을 수 있습니까? 나는 약간 확대 할 수 있습니다. 나는 컴퓨터가 작동하는 방법을 모르겠어요. 마음 마십시오. 제대로 확대 할 수 없습니다. 이건 정말 어렵다. 미안 해요. 그냥이 살펴 보자. 그래서 getInt를하는 일은 처음 읽고 있습니다 하는 GetString에서 문자열에있는 우리는 이전에 구현했습니다. 그리고 중요한 부분은 여기에서주의해야 할 하는 경우는, 끝이 공유 독서는 실제로 문자열처럼, 우리는 단지에 INT_MAX를 반환 실패를 나타냅니다. 왜 우리가 대신 INT_MAX를 반환 않습니다 음의 1 또는 1? 어떤 아이디어? 청중 : [청취] 음 하나에 1. ANGELA LI : 네, 그렇습니다. 그래서 그냥하려는 방법이 더 가능성이있어 입력 1 또는 음의 1에 메시지가 표시 될 때 n 번째와 n 번째 어떤 maxes하십시오. 그것은 거대한입니다. 당신은 아마 그것을 사용하지 않을거야. 따라서이 문서의 정보는 다음의 제품에 디자인 결정처럼 반드시 할 실수 있는지 확인 오류를 반환하거나 반환하지 않습니다 1, 어떤 구문 분석 할 수 있습니다 정답으로. 라인이 존재하지 않게되면 우리는 INT-MAX를 반환합니다. 그렇지 않으면, 우리는, sscanf 또는을 사용하여 이는 scanf와 같습니다. 그러나 문자열에서 읽습니다. 그리고 우리는이 포맷이 %의 i %의 C이며 문자열입니다. 그리고 우리는 시도와 일치 사용자가 우리에게 준 무엇이든. 우리는 일치 사물의 수를 원하는 1로, 그 말은 우리 만 정말 정수를 일치시킬 어쩌면 흰색으로 둘러싸인 공간, 아마. 이 경우, 당신이 뭔가에 넣어 경우 바처럼, 바, 전혀 일치하지 않습니다 있을 필요가 있기 때문 시작의 정수입니다. 그래서 0을 설정하지 sscan을. 그래서 당신은 반환하지 않습니다. 또는, 당신이 뭔가에 넣어 경우 같은 1, 2, 3, A, B, C, 즉 경기 정수뿐만 아니라 두 그 후 문자. 그래서 sscanf에서 2, 반환되는 이상적이지도 있습니다. 당신이 원하지 않는 1, 2, 3, A, B, C 유효한 INT합니다. 그래서도 작동하지 않습니다. 그러나 당신이 50 뭔가에 넣어 말한다. 그 의미 %에게 내가 일치합니다 그것은 N로 읽어 얻을 것이다. 그리고 지금, n은 숫자 50를 포함합니다. 그리고 당신은 그것을 반환 할 수 있습니다. 그렇지 않으면, 당신은 다시 시도를 누르십시오. 그리고 그것은 단지까지 또 다시 간다 당신은 사용자로부터 적절한 입력을 얻을. 질문 있는가? 청중 : 그래서 당신이 있다면 인쇄하기 [청취]에 대해 getInt의 값 그냥 정수와 최대 것입니까? ANGELA LI : 네. 당신의 getInt를 사용하는 경우에, 당신은 가정해야 당신은에 n 번째 최대 싶지 않아 당신이려고하고 있기 때문에, 유효한 입력 할 수 즉 나쁜 것을 가정합니다. 청중 : 우리는 문자 C를 가지고하지 않은 경우 1, 2, 3, 샘 넣어 누군가, 그럴 아직 1, 2, 3 일? ANGELA LI : 그것은 작동 할 것이라는 점을 생각한다. 하지만 당신은에 123Sam을 원하지 않는 사용자가 값을 입력 할 수. 정말 INT 아니다. 그래서 그것은 공정하지 않는 것 int로서 구문 분석합니다. OK. 이 경우의 움직임을 보자 인터넷에에. 그래서 HTTP는 언어가 아닙니다. HTTP는 표준의 단지 세트입니다 어떻게 클라이언트에서 물건을 보내, 즉, 서버에, 당신의. 즉, 웹에서 다른 사람의. 그래서 HTTP는 하이퍼 텍스트를 의미합니다 프로토콜을 전송합니다. 그것은 마음과 영혼의 전체 웹의. 하이퍼 부분 그냥 HTML을 의미한다. 전송은 같은 클라이언트입니다 당신은에 요청을 보내드립니다 응답을주는 서버. 그리고 프로토콜은 어떻게, 그냥입니다 당신은 서버가 동작 할 것으로 예상? 그리고 당신은 어떻게 행동 해야하는 이 작업을 간소화 할 수 있도록 통신 프로세스? 그래서 HTTP 요청이 매우 비슷. GET 요청의 유형입니다. 너희들은 GET 요청을 보았다 및 POST 요청. 거기에 그 두 번째는, / 날, 그건 다만 URI 또는​​ 어디의 URL 호스트에서 가고 싶어요. 따라서이 요청은 요구하고있다 www.facebook.com / 나 같은 페이지. 그리고 GET 요청입니다. 그리고이 HTTP/1.1, 그건 단지 당신이 사용하는 HTTP의 버전. 그것은 거의 항상 1.1입니다. 그리고 무리가있다 너무 다른 물건. 당신이 경우에 당신은 실제로 다음을 볼 수 있습니다 당신이있을 때 콘솔을 열어 웹을 검색. 응답은 보일 미리보기 다음과 같습니다. 상단 부분은, 다시 한 HTTP의 유형은 사용중인 상태 코드 하였다. 그래서 200 OK는 모든 것을 밖으로 일입니다. 여기에 귀하의 콘텐츠입니다. 귀하의 콘텐츠가 따를 것입니다. 그리고 그것은 당신을 말할 것이다 어떤 종류의 너무 내용과 다른 물건. 상태 코드는 몇 가지가 있습니다 당신이 알아야 할 중요한 것들. 200 OK는 모든 것이 황금과 같다. 모든 작품. 403. 당신이 잊었 으면 당신은 아마 본 적이이 제대로 뭔가를 chmod를합니다. 그것은 당신이하지 않는 것을 의미한다 오른쪽 권한 서버가 액세스 할 수 있습니다. 그것은 마치, 아니, 당신은 그것을 볼 수 없습니다. (404)는 그 일이 존재하지 않는 것을 의미한다. 를 찾을 수 없습니다. 당신은 아마 많은 것을 보았다. 500 내부 서버 오류는 일반적으로 어떤 측면에 잘못된처럼 서버의. 그래서 당신은 pset7을 구현했을 때, 당신이 PHP 오류가 있다면, 당신은 할 수 실제로 페이지로 이동 참조 PHP 오류 물건의 전체 무리. 그러나 일반적으로 발생하지 않습니다, 웹 사이트는 정말하고 싶지 않기 때문에 자신의 사이트가 깨진 이유를 말해. 그들은 아마 돌아갑니다 500 내부 서버 오류가 있습니다. 그리고 나는 주전자 해요 (418)이있다. 에 대한 모든 이야기가있다 그 이유는 일입니다. 하지만 당신은 그것에 대해 읽을 수 있습니다 자신의 시간에. 전체 무리가있다 너무 다른 상태 코드. 그러나 이러한 것들 당신은 알아야한다. 그럼 HTML에 대해 이야기하자. HTML, 기억은 없습니다 프로그래밍 언어입니다. 그것은 마크 업 언어입니다. 즉, 내용을 설명을 의미합니다. 그것은 HTML 문서가 어떻게 생겼는지를 알려줍니다 어떻게 생겼는지 등 여부 그러나 그것은 어떻게 구성 있어요. 그래서 구조를 정의하고 웹 페이지의 의미. 이것이 문단처럼,. 이 정렬 된 목록입니다. 이 내 페이지의 섹션 같습니다. 여기에 제목입니다. 그것은 그 같은 물건을 수행합니다. 그것은 그 어떤 스타일을하지 않기 때문에 즉, CSS에서 할거야. 그리고 시리즈처럼 보인다 의 중첩 된 태그. 그래서 정말 기본의 예를 사용하는 HTML 페이지, 당신은 DOCTYPE이 거기 선언. 이 DOCTYPE 선언은 우리는 HTML5를 사용하는 말. 그럼 당신은 큰 HTML 태그가 있습니다. 그것은 머리와 몸이 포함되어 있습니다. 머리 안쪽에, 당신은 제목이. 즉, 제목에가는거야 브라우저의 바. 우리는 연결하는 링크 태그가 외부 스타일 시트에. 그리고 우리는 끌어 스크립트가 외부 자바 스크립트에서뿐만 아니라. 그리고 우리의 몸 안에 실제로 페이지에 표시되는 것을. 우리는 단락을 가지고 다음했습니다 그 단락 내부 이미지입니다. 이 하나는 고양이의 사진입니다. 주의 그 이미지 태그 자체를 닫습니다. 그래서 그 대신 이미지와 개방 그리고 당신은, 다른 / 이미지 일 다만이 작은 슬래시가 여기에, 어느를 닫습니다. 그리고 이미지 태그는이 키가 값 속성은 고도를했다. 즉, 대체 텍스트의 그 마우스를 위로 이동하면 발생합니다. 대부분의 HTML 요소는 몇 가지 키 값이 당신이 다양한, 그것을 줄 수있는 것들 정의. 그래. 청중 : [청취]. ANGELA LI : 음, 그래서의 태그의 속성. 당신이 jQuery를 사용하고 있다면, 당신은 할 수 선택 image.getAttribute을한다. 그리고 당신은 검색 할 수 있습니다 alt 속​​성을 얻을. 그리고 그것은 당신에게 새끼 고양이를 제공합니다. 당신은 HTML, 입력의 형태를 기억한다면 요소 이름 특성을 갖습니다. 그리고 그것은 PHP가 전송하는 데 사용하는 무엇 양식이 제출 요청. 청중 : 당신이 뭔가를 언급 했 당신이이 Kittens.jpg를 사용하거나 경우에 방법에 대한 누락이 뭔가 폴더 나 다른 파일을 파일? ANGELA LI : 예. 그래서이 상대라는거야 경로, 난 포기하지 않을거야 때문에 당신의 전체 경로. 당신은 fopen을 할 경우이 때 C에서처럼 일부 파일, 당신 fopen을 hi.txt, 그 경우 hi.txt은 동일 될 것으로 예상 디렉토리, 당신은 그것을 더 제공하지 않는 복잡한 경로입니다. 청중 : 그래서 당신이 지정할 수 어떤 폴더를 [청취]? ANGELA LI : 네. 그리고 당신은이 작업을 수행하는 방법을 찾아 볼 수 있습니다. 하지만이 Kittens.jpg를 얻을하려는 경우 상위 디렉토리, 나는 할 것 .. /이 Kittens.jpg. 그래. 미안 해요. 그래. 오, 이런, 내가 질문을 잊어 버렸습니다. 질문은 무엇입니까? 아, 문제는,이 Kittens.jpg했다 같은 디렉토리에있을 것으로 예상? 그리고이 경우에,이다. 하지만 당신은 그것을 어떤 경로를 제공 할 수 있습니다 그럴 필요하지 않도록. 좋은? CSS. 그래서 CSS는 HTML처럼되지 않습니다 프로그래밍 언어입니다. CSS 스타일링 규칙의 단지 시리즈입니다. 그것은 캐스 케이 딩 스타일 시트를 의미합니다. 그리고 당신은 함께 사용 스타일의 페이지에 HTML과 함께. 그래서 세 가지 방법이 있습니다 당신은 그것을 포함 할 수 있습니다. 당신이 그것을 할 수있는 방법 중 하나는 머리에 당신의 HTML의 부분은, 당신은 할 수 스타일 태그를 열고 스틱 일부 CSS는 거기에 규칙. 그것은 꽤 괜찮아요. 그래. 청중 : 당신은 그 넣어 수 하자, 그 사이에 스타일 태그 말, 몸과 / 바디. 그리고 당신은 유행에 따라 디자인하는 것 본체 만합니다. ANGELA LI : 당신은 할 수 있습니다. 그것은 작동합니다. 스타일이기 때문에하지만,하지 말아야 에 가야 메타 데이터 종류 문서의 머리. 몸은 정말 만 포함해야 무엇 실제로 것 페이지에 표시됩니다. 청중 : 그래서 당신은 스타일을 넣어 것 유행에 따라 당신의 머리에 전체 웹 페이지, 오른쪽? ANGELA LI : 네. 그래서 이러한 CSS 규칙은 여기에 스타일을 넣어 에 따라 전체 페이지에 적용됩니다 자신의 선택기. 그래서 그것을 할 수있는 더 좋은 방법이 아닌 것입니다 당신의 머리에 스타일 태그를 가지고, 당신은 외부 스타일이 연결이 나는 당신을 보여 주었다 시트처럼 앞의 예. 어떤이가하는 것은 시도하고 발견입니다 style.css 파일 한 다음 끌어 와 사용하는 등 페이지의 스타일. 그리고 당신의 style.css 것 다만 다음과 같습니다. 그냥 CSS의 무리 일 것입니다. 그리고 마지막으로, 또 다른 방법은 거기에 CSS를 포함 할 수있는 당신이 정말로 이제까지는 안된다. 그것은 호출 인라인 스타일입니다. 그리고 모든 HTML 요소는 수 스타일 특성을. 그리고 그 스타일 속성에, 당신은 그것을 CSS 규칙을 제공 할 수 있습니다. 따라서이 경우에는, 어떤 DIV 난 여기 정의는 것 검은 배경을 가지고 흰색 텍스트 색상. 하지만 당신은이 작업을 수행해서는 안하기 때문에 어떤 이것은 당신의 스타일을두고 있습니다 않습니다 당신의 HTML 내부. 그리고 나는 우리가 HTML에 대해 이야기 한 것을 알고 구조 및 CSS 스타일이다. 이 작업을 수행 할 경우, 혼합 그들을 함께. 그리고 그것은 아주 깨끗하지 않습니다. 그래서하지 않습니다. 우리는 거기, CSS의 예를 사용하여 단지 HTML의 몸을 선택 다큐멘터리. 그리고 우리는 모든 것이, 같은거야 만화 산세 될 것이다. 나는 또한 사용하지 않는 것이 좋습니다. 하지만 당신은 그렇게 할 수 있습니다. 여기 두 번째 규칙은, 돼가 의 요소를 선택하는 방법 ID 메인 페이지로. 그래서 어떤 HTML 요소, 나는 ID가 말했다 = 주, 나는 그에게 줄거야 20 픽셀의 여백 모든 것을 정렬, 센터의 모든 텍스트,. 마지막 것은 CSS 클래스로 선택합니다. 그래서 준 페이지의 모든 요소 부분 클래스는, 내가 만들려고 해요 밝은 파란색의 배경 색상. 네. 즉, 내가 가진 전부입니다. 질문? 청중 : 무엇과 해시 주 전에합니까? ANGELA LI : 문제는 무엇이며, 메인하기 전에 해시? 이 경우, 소재 해쉬 CSS는 ID에 의해 선택을 의미한다. 내가 약간의 HTML 요소를 가지고이 경우, 같은 divID는 = 주,이 CSS 규칙의 선택 ID의 주를 가진 것. 마찬가지로, 앞의 기간 섹션 CSS 클래스로 선택하거나 선택입니다 HTML 클래스를 선택합니다. 청중 : 왜 전에이가 배경 색상에서 6? ANGELA LI : 네. 그래서 질문은, 왜이됩니다 6 전에 해시? 이 해시 다릅니다. 이것은 당신이 제공하는 것을 의미한다 16 진수 색상. 그래서 진수 색상이 단지 색을 나타냅니다. 그리고 당신은 RGB 트리플을 기억 할 때 당신은 법의학 PSET 했습니까? 이 유사하다. 처음 두 자리는 대표 얼마나 많은 빨강 색상입니다. 두 번째 두 대표 얼마나 많은 녹색. 그리고 세 번째는 대표 얼마나 많은 블루. 해시이가는입니다 색을 나타냅니다. 따라서 0, 0, 0, 0, 0, 0에서 아무것도 F, F, F, F, F까지, F는 유효합니다. 그것은 할 수있는 몇 가지 유효한 색깔의 브라우저에 표시 될 수있다. 질문? 청중 : 차이 무엇입니까 ID에 의해 클래스에서 사용하고 계십니까? ANGELA LI : 문제는 무엇이며 차이점 ID와 클래스에서 사용하고 계십니까? 만에 하나의 요소를 가질 수 있습니다 주어진 ID가 HTML 문서. 내 페이지에 따라서 단 한 가지 ID의 주를 가질 수있다. 그래서 당신이 그것을 사용하는 헤더입니다. 이는 내비게이션이다. 이 바닥 글입니다. 당신이 할 수 있기 때문에 클래스는, 다른 많은 HTML 요소에 클래스를 적용 당신이 원하는대로. 그래서 예를 들어, I, 클래스 섹션을했다 이상은 아마이 때문에 내 페이지의 섹션을 참조하십시오. 당신은 단지 많은 사람을 가질 수있어 같은과 페이지의 요소 클래스하지만 특정 ID를 가진 단 하나. 청중 : 그래서 점이 나타냅니다 클래스? ANGELA LI : 네. 점은 클래스를 나타냅니다. 쿨. 그게 다, 사람입니다. 감사합니다. [박수] ZAMYLA CHAN : 안녕하세요, 여러분. 나는 Zamyla 해요. PHP를 담당 할거야, MVC 및 SQL 오늘. 내가있을거야 재료의 많은 취재 꽤 많이 될 것입니다 바로 pset7 중. 괜찮아요. 그래서 PHP는 무엇입니까? PHP는 PHP 하이퍼 텍스트를 의미합니다 처리기. 그래서, 그 자체로, 재귀 정말 멋진 일이다, 이름을 지정합니다. PHP는 서버 측 스크립팅 언어, 그리고 백엔드를 제공 그리고 논리적 토대 우리의 웹 사이트. 그래서 안젤라는 HTML에 대해 많은 이야기 과 CSS 구조를 만들 것 웹 사이트의. 하지만 당신은 그것을 변경하는 것을 원하는 경우 콘텐츠를 동적으로 또는 경우는 다릅니다 사용자 또는에 근거 특정 조건? PHP이 필요한 이유는 바로 여기입니다 이제 일반적으로, PHP는 몇 걸릴 수 있습니다 같은 일을 구현하는 작은 선 PHP 메모리를 처리하기 때문에 C에서 그의 프로그래머를위한 관리, 우리의 malloc에​​ 데 반대 무료, 그런 것. 하지만 PHP는 해석하기 때문에 언어, 일반적으로, 그것은 실행할 수도 조금 더 천천히 C 이상, 어떤 컴파일 된 언어입니다. 우리는 프로그램을 이동하고 있기 때문에 언어의가 살펴 보자 방법 구문은 다릅니다. 의하지에 매우 조심합시다 이것에 혼란스러워. 당신이 있는지 여부, PHP 구문을 따라서 HTML의 내부에 PHP를 포함 당신은 파일 자체 또는. PHP 파일 내에서 개방의 코드를 묶어야합니다 PHP와 같은 폐쇄 PHP 태그 화면처럼, 다음과 같습니다. PHP의 변수. 하나 하나의 변수는 시작됩니다 의 이름 앞에 $ 기호 당신의 변수입니다. 이제, PHP에서 변수는 느슨하게 입력하는, 이는 필요하지 않은 것을 의미합니다 정보 데이터의 종류를 표시하기 위해 당신이 그것을 선언 할 때입니다. 그러나,이 말은하지 않는 사람들 전혀 타입이 없습니다. 나는 변수를 선언하고 단지 설정이 경우 그것은 1에 해당하고, 그 때 나는 선언 다른 변수, "1"에 해당 설정 다음 다른 한 1.0도, 평등의 유형에 따라 I 비교할 경우 운영자 내가 사용 모든 유형에서 다음 그들은 동일 할 것입니다. 하지만이 있는지 확인하려면 종류가 동일, PHP는 여전히 수행 할 수 있습니다 우리는 표시하지 않더라도, 그 때 우리는 어떤 유형 먼저 파일을 확인합니다. 이제, PHP에서, 비록 우리는 프로그램에서 전환 한 C에서 언어는, 우리는 여전히이 우리의 다만이 같은 조건의 경우 신뢰할 수있는. 우리는 여전히 우리의 동안 루프가 이처럼, 당신은의 위치를​​ 넣어 당신의 다음 조건과 루프의 몸. 그리고 우리는 또한 루프를 위해 우리가 일반적으로 다음과 같다있다. 나는 모든 반복하고 싶었 그래서 경우 구 psets를하고 제출하고 전화 기능 submitPset, 그때 내가 할 수있는 여기있는 너희들 모든 이 점에 의해 수행. 그런데 축하합니다. 카메라를 들어, 사람들이 말, 감사합니다. 지금, 당신은이를 사용하지 않은 경우 루프, 다음 PHP 사실도 가지 foreach는 루프를 촉구했다. 그래서 정수의 배열, 0이 있다면 내지 8, 배열하여 pset에 저장 그때 나는 foreach 루프를 수있는 psets를 모든 숫자를 반복. 그리고 나도 같은 부를 수 8 번 기능, 내가 전에 그랬던 것처럼. 따라서 각 루프에 대한이 좋은 때문에 당신은 필요가 없습니다 당신이 모르는 경우에 배열의 길이에 당신 ,이 foreach 루프를 사용했다 당신을 위해 처리됩니다. 그래서 배열로 psets를했다. 의 그 살펴 보자. PHP의 배열은 일반적으로 동일하다 우리가 C에 가지고 있던 사람 곳 당신은 배열을 선언 할 수 있습니다. 그리고 여기, 나는 빈 배열을 선언 할 수 있습니다 다음을 사용하여 동적으로 구축 정수로 인덱스. 인덱스 0 그래서, 저장하는거야 정수 1을 지명했다​​. 내 목록의 인덱스 1에서, 나는 갈거야 2 값을 저장합니다. 그리고 세 번째, 색인에 두 번째 숫자, 내가 갈거야 숫자 12을 저장합니다. 자,이 점에서 괜찮습니다 잘 작동 작동합니다. 그러나 그것이 나에게 중요한 말 각 인덱스는 어떨지. 나를 위해, 인덱스 0을 의미하는 방법 많은 고양이는 내가있다. 그리고 인덱스 1 수단 방법 많은 올빼미 내가있다. 그리고 그 다음은 몇 개를 의미합니다. 그럼, 대신, 그 지정 0에 관한 기억해야하는 올빼미에 고양이 1, 내가 사용할 수 있습니다 것을 의미 연관 배열, 대신 내 인덱스로 정수, 실제로 문자열을 사용할 수 있습니다. 그래서 이것은 매우 유용합니다. 그리고 당신은 기본적으로 그냥 교체했습니다 문자열 정수. 그리고 거기 당신에게이 연관 배열. 그래. 청중 : 거기에 이유가 있나요 초 밑줄 부분, 내 목록에 배열을 가지고 있기 때문에. ZAMYLA CHAN :이 질문은했다입니다 거기 거기의 이유 내 및 목록 사이에 밑줄? 아니오. 그게 내가 명명있어 단지 방법 내 변수입니다. 대상 : 처음에 라인, 그것은 하나의 단어입니다. ZAMYLA CHAN : 나의 사과. 나는 그 문제를 해결합니다. 그래. 그들은 같은 변수 이름이어야합니다. 좋은 캐치. OK. 그래서 문자열로 이동하게 연결. 나는 두 개의 문자열을 가지고 싶어하는 경우 나는 그들을 연결할 수 있습니다 도트 연산자. 그래서 이름으로 마일로가있는 경우 다음 마지막 이름과 바나나, 도트 연산자와 함께 연접 다음 사이에 공간을두고 마일로가 포함 된 문자열을 만들 것입니다 그때 에코 또는 수 바나나,, 오히려, 인쇄. 에코의 말하기,의 얘기하자 몇 가지 유용한 정보 - 죄송합니다. 미안 해요. 몇 가지 유용한 PHP 함수. 그래서 우리는이 - 기술적 인 문제. 한 두 번째. 나는 그것을 보냈습니다. 파워 포인트 문제. 그리고 우리는 PHP의 기능을 다시합니다. 그리고 우리는 PHP의 기능을 다시합니다. 그래서 우리는, 함수가 필요 한 곳 당신이 파일에 전달하는 경우, 여기에 그냥 파일의 예를 그 내가 전달한 있습니다 그 다음은 PHP 코드를 포함합니다 내가 표시 해당 파일의. 그리고 그것은 높은 것을 평가합니다 그런 다음 우리는 또한, 에코 가지고있는 printf를하기 위해 병렬입니다. 종료 깰 평행, 블록을 종료하는 당신이 처한 코드 그리고 빈 검사 여부를 주어진 변수는 널 (null) 또는 0 또는처럼 무엇이든은 비어있는 것으로 동일시된다. 그래. 청중 : 문자열 연결 도트 연산자 하나는, PHP에서, 그 그것은 사용의 JavaScript와 동일한 연결에 대한 점은 플러스를 의미한다? 그래서 전체 이름, 당신은 달러가있을 수 먼저 +에 서명 한 후 + 마지막? ZAMYLA CHAN : 네. 그래서 질문은 PHP의 여부를 우리 같은 문자열 연결을 사용할 수 있습니다 플러스와 자바 스크립트와 같이. 그리고 요셉은 나중에 들어갈 것입니다. 나는 그가 그에서 슬라이드를 가지고 생각합니다. 사실은 다르다. 그래서 자바 스크립트에서, 당신은 사용할 필요가 문자열을 연결하려면 더하기. 그리고 PHP에서, 당신은에있다 도트 연산자를 사용합니다. 그래서 그들은 다르다. OK. 그래서 지금 우리가 다룬 것을 이 PHP는, 어디 그것을 수행 정말 편리? 글쎄요, 그것은 편리 할 때 우리 우리의 HTML로 결합 할 수 있습니다. 그래서 우리의 PHP는 우리에게 힘을 줄 것이다 페이지의 HTML 콘텐츠를 사전에 변경 그로드. 그래서 서로 다른 조건에 기초 보통의 특정 사용자 로그인, 우리가 표시 할 수 있습니다 다른 정보. 린다, 당신은 질문이있는 거죠? 청중 : 당신이 연결할 수 있습니다 또한 정수? ZAMYLA CHAN : 그렇습니다, 당신은 할 수있다. 당신이 할 수있는 경우에 따라서 질문은 정수 등을 연결 지금, 우리는 MVC로 이동 variable.s하는 우리가 사용하는 패러다임 pset7 및 웹 디자이너를 많이 사용 파일 코드 구성 자신의 웹 사이트에. M 모델을 의미합니다. 그리고 기본적으로 모델 파일을 다룰 것이다 데이터베이스와의 상호 작용. 파일보기, 그들은 관련 웹 사이트의 미학. 그리고 컨트롤러 핸들 사용자 요청, 구문 분석 데이터, 기타 로직을 수행합니다. pset7, 우리는 모델을 결합 및 제어기를 포함한다. 그리고 우리는 단지 컨트롤러를 불러 공용 디렉토리에 넣어. 그리고 뷰의 이미지, 우리는로 사용 템플릿 디렉토리에있는 템플릿. 그래서 여기이 그림은 대표 와 부문의 같은 종류의 모델과 보라색 컨트롤러 여기에 왼쪽과 오른쪽에 볼 수 있습니다. 그래서이 개략도이다 당신의 일부 영업 시간이나에서 볼 수도 우리는 당신으로 드로잉 한 다이어그램 당신의 PSET을 파악했다. 그래서 여기, 주어진 컨트롤러, 모델 컨트롤러, 우리는 기능을 가지고 SQL 쿼리와 관련이 데이터베이스, PHP 로직을 실행. 어쩌면 당신은 찾아 볼 것 야후의 주식 금융. 아니면, 당신은 단지에 검사 할 것 사용자가 제출 한 여부를 확인 받기 전에 이미 형성 페이지를 방문했다. 그리고 당신은 렌더링 것 여기에 형성. 해당 양식은 제출 된 후에 사용자에 의해, 한 조치 폼의 HTML 태그에 지정 페이지를 나타냅니다 그것이 데이터를 반환합니다. 그래서 모든 정보가 될 컨트롤러로 다시 전송. 그런 다음 당신은 아마 조금 더 할 것 그것에 논리와 어쩌면 몇 가지를 실행 더 많은 SQL 데이터베이스 쿼리 및 다음, 마지막으로, 잘 마련 정보의 포장 세트 당신 것 다른 템플릿에 전달할 그 정보를 표시. 이제, 우리는 어떻게 실제로 포장 하는가 그 정보까지? 음, 우리는 렌더링라는 기능이 그에서 functions.php 파일에 있었다 pset7, 당신의 이름을 전달 곳 파일, 템플릿의 이름. 그리고 당신은 또한에 전달 연관 배열. 그리고 그 연관 배열을 나타냅니다 다른 정보 당신이 전달한 것인지 이제 무슨 일이있는 일정이 될 것 이 예제는 그 키 또는, 오히려, 연관의 키 배열은, 사람들은있을거야 무엇입니까 템플릿에 의해 일정하게 될 것으로 예상, 그것이 필요로 알고 있으므로 메시지라는 것을 또는 이름이라고. 그리고 오른쪽에있는 것들, 실제 값 때문에이 경우, 누구의 좋은 소년 마일로, 그가요 변경되는 값이어야합니다 제어기마다 변경하는 것이 또는 특정 조건에 기초 안으로 그 합격 그래서 여기에 템플릿, 우리는 볼 우리 HTML 특수 문자를 사용하고, 어떤은 기본적으로 우리가 원하는 것을 의미한다 피어 문자열을 얻기 위해 그 사용자가 넣을 그리고 우리는 대체 할 거기에 메시지입니다. 그럼 우리가 실제로 볼 때 파일, 구체적인 정보가 전달 된 어떻게 작품을 렌더링 키가 유의 그 결합의 열쇠 배열, 그가 변수 여기에 이​​름. 그래서에서 해당 키의 값 연관 배열은됩니다 변수의 값입니다. 이제, SQL로 이동하자. 그것은 구조적 의미 언어를 쿼리합니다. 그리고 이것은 단지 프로그램입니다 디자인 언어 데이터베이스를 관리하기위한. 그리고 그것은 우리를 위해 유용했다 우리 pset7 금융 웹 사이트. 본질적으로, 그것은 단지 쉬운 방법 객체와 테이블을 추적하고 관리 서로에 연결합니다. 자, 여러분의 SQL 데이터베이스의 생각 기본적으로 엑셀 파일로, 아마도, 여러 탭 시트와. 그래서 당신은 여러 개의 테이블을 가질 수있다, 아마, 그 서로 연결될. 그리고 Excel과 같은 많은, 우리는 많이 가지고 우리가 원하는 기능을 제공합니다. 예를 들어, 우리는 선택할 수 있습니다 특정 행. 우리는 정보를 삽입 할 수 있습니다. 우리는 행을 업데이트 할 수 있습니다. 그리고 우리는 또한 물건을 삭제할 수 있습니다. SQL 행을 선택하여 작품을 선택 또는에서 지정된 행의 열 일정에 맞게 데이터베이스 당신이 표시 기준. 여기에 사용자가 직접 선택한 항목을 볼 때 *에서 이렇게 집 = Ravenclaw 다음 마법사 저는 제가 의미하는 * 선택 해요 그 중에 하나 하나 열을 선택 마법사의 테이블 만있는 경우에서 행 집 열 Ravenclaw 같습니다. 자,이 순수 또는 SQL입니다. I는 phpMyAdmin을,에 들어갔다 그렇다면 우리가 관리하는 데 사용하는 특정 방법 우리의 SQL 데이터베이스는 다음 내가 삽입 할 수 있습니다 그 phpMyAdmin을 웹 사이트에. 그리고 그 실행됩니다. 그러나 우리는 실제로 수행 할 그 PHP 측. 그래서 우리는 어떻게해야합니까? 음, 우리는 쿼리 기능을 사용하는 기본적으로 해당 SQL 쿼리를 실행합니다. 사용? 자리로, 우리는 특정 전달할 수 우리의 문자열 값을 우리 교체 할. 그래서 아마도 내가 다른 저장 해요 curr_house에 값하는 현재 집 대표 내가 겪고있는 걸. 그래서 난 자리로 그 전달할 수 물음표와 함께. 그리고 나는 기본적으로 실행됩니다 I 제외하고, 이전과 같은 일로 지금은 PHP에있어. 그리고 쿼리를 반환합니다 연관 배열. 그리고 행에 저장하는거야. 이제 쿼리는 항상 실패 할 수 있습니다. 아마도 SQL 쿼리를 실행할 수 없습니다 테이블이 존재하지 않았기 때문입니다. 아니면, 열은 존재하지 않았다. 문제가 발생했습니다. 음,이 경우에, 당신은하고 싶은 것 여부를 확인해야 쿼리는 false를 반환했습니다. 그리고 그 배를 사용하여의 이 작업을 같습니다. 그리고 나는 또 다른입니다, 사과 메시지를 전달 CS50 기능. 그리고 당신은 사과, 모두에 보면 진짜로는 apology.php 렌더링. 그래. 청중 : 당신은 그 무엇을 설명 할 수 별 선택과의 사이에 무엇입니까? ZAMYLA CHAN : 네, 물론입니다. 그래서 선택과의 사이에있는 별 나는 전체를 선택합니다 것을 의미합니다 내 테이블에서 전체 행. 나는 선택 표시 한 수 , 년, 집 이름을 지정합니다. 그리고 나는 단지 그 세에게 얻을 것 내 테이블의 열. 내가 선택 *을 말한다면, 그때 나는거야 해당 열의 모든 것을 얻을. 그럼 난 당신을 갈거야 먼저 다시. 청중 : 그래서이 여전히 SQL에서, 오른쪽? 이 쿼리의 경우, 또는이 PHP는? ZAMYLA CHAN : 우리는 쿼리입니다. 그래서 이것은 PHP입니다. 그래서 PHP 함수 쿼리를 사용하여, 우리는 SQL 쿼리를 실행하고 있습니다. 청중 : SQL에서 아무거나 대소 문자를 구분, 같은 선택 또는 마법사 또는 집? ZAMYLA CHAN은 : 무엇인가 SQL의 대소 문자를 구분에서? 난 네, 그렇게 생각합니다. 내가 생각하는 SELECT와 FROM 그리고 대소 문자를 구분 WHERE. 아니? ROB 보덴 : 그래서, 그 반대입니다. 열 이름과 테이블 수단, 이들 모두는 대소 문자를 구분합니다. 그러나 MySQL의 주요 단어의 같은 에서 선택하고, 그 어디를하지 않습니다 대소 문자를 구분합니다. OK. 그래서 내가 한 말의 반대. 그래서 MySQL의 모든 키워드 - 그 - 어디에서, 선택 대소 문자를 구분하지 않습니다. 하지만 다른 모든 것들입니다. OK. 정면에있는 당신. 청중 : 나는 측면에서 행을 $ 경우 둘 이상의 행은, 그 뜻은 않습니다 그냥 연관 배열이됩니다? ZAMYLA CHAN : 그래서 질문은 경우 행 , 거기에 하나 이상의 행을 않는이 그것은 연관 배열이 될? 따라서 결합의 배열 이미 배열. 한 행이있다 그래서 경우에도 반환, 당신은 이동해야 할 것 그 결과의 인덱스 0. 그리고 당신은 그 첫 번째 행이있을 것이다. 예, 벨린다? 청중 : 당신이 ===를 사용하는 경우, 이것은 단지 예입니다? 또는 다른 사람이 있습니까? ZAMYLA CHAN : 그래서이 경우, === 유형에서 비교입니다. 미안 해요. === 비교입니다 그 유형을 비교합니다. 그리고 == 모든 종류에 걸쳐 비교합니다. 청중 : 당신은 무엇을 설명 할 수 행은이 ​​상황에서인가? 그것은 데이터의 행합니까? ZAMYLA CHAN : 다음 슬라이드에서, 난 어떤 행을 설명하는 것. 그래서 들고 괜찮다면 그 것에. 그리고 나서 다시? 청중 : 조회 같은 기능을 위해, 렌더링 [청취] 사과? ZAMYLA CHAN : 문제가 있는지 여부를했다 이 함수 - 쿼리는 사과 및 렌더링 - PHP에서 공통입니다. 이러한 것들이 CS50 pset7에 썼다. 제이? 청중 : 당신은 말을 필요로 할 때 $ _SESSION은 만 ID에 대한인가? 또는 당신은 여기에서 말하는거야? ZAMYLA CHAN : 그래서 질문이었다 때 우리는 특정했다, $ _SESSION을 사용 우리가 사용하는 전역 변수. 다음은이 변수는 것입니다 우리의 기능에 로컬합니다. 그래서 우리는 단지 선언하고 새 변수. 청중 : 어떻게 사과한다 구현? ZAMYLA CHAN : 질문은, 어떻게 구현 사과입니까? 그리고이 사실은 꽤 생각 너희들로 이동하는 것이 좋습니다 functions.php 부와 봐 사과와 당신이 수있는 방법을 참조하십시오 스스로를 수행. 그래서 나는 당신에게 맡길하지만 단지 수 당신이 보면 사과라고, 다음은 메시지를 걸립니다 그런 다음 사과를 제출하고, 해당 메시지를 렌더링합니다. 더 이상 질문? 나는 질문을 사랑 해요. 그래서 오는 그들을 유지. 청중 : [청취] 에코 또는이 인쇄? ZAMYLA CHAN : 질문은, 우리는 그냥 둘 수 없었다 에코 또는 거기에 인쇄. 그래서 뭔가 할 것 약간 다릅니다. 즉, 쿼리를 인쇄 한 것 그에 실패 - 물론, 지금, 우리는 실제로있어 우리의 컨트롤러. 그래서 우리는 실제로이 없습니다 HTML 여기에 설정합니다. apologize.php 렌더링하여 사과 실제로 apology.php로 리디렉션합니다. OK. 그래서 이제 해결에 가자 에 대한 이전의 질문에 어떻게 정말 행입니다. 음, 쿼리가 반환됩니다 행의 배열. 모든 행이 표시됩니다 연관 배열로. 나는 몇 가지 SQL 쿼리 및 실행했습니다 그렇다면 그런 다음, 행에 결과를 저장 한 foreach 루프를 사용하여, 다음 어레이 행 - 이름이 처음이다. 그리고 내가 전화하려고 해요 이 $ 행의 모든​​ 행. 그래서, 그 다음에 할 수 반복 지정된 행의 이름 열을 액세스, 올해 열 및 집 열입니다. 내가 할 수 없었을 것이라는 점을 참고 때문에 행 인덱스에게, 행이 작업을 수행 이름은 존재하지 않습니다. 행은 단지 배열 연관 배열. 그래서 당신은이 두 가지 수준이있다. 당신은 행의 배열을 갖게되면, 당신은 그것으로 얻을 수있다. 그리고 당신은 열을 액세스 할 수 있습니다. 그것이 명확하게 했습니까? 네, 앞에? 청중 : [청취] 열 괄호 [청취] 하시나요? ZAMYLA CHAN : 뭐라 구요? 청중 : 오픈 브라켓. ZAMYLA CHAN : 여기이? 그 날을 포함 할 수있어 그 변수. 그래. 청중 : 인쇄 할 때, 당신이 HTML 코드로 인쇄? ZAMYLA CHAN : 예. 내가 인쇄 할 때, 여기에이 내부에 내 템플릿 이제, MVC 방식의 내보기. 그래서 HTML로 인쇄하고 있습니다. 우리는 개발에 들어갔다 그렇다면 : 관객 이 도구를 실행 한 후, 우리는 할 수 있었다 실제로 코드에서 해당? ZAMYLA CHAN : 그건 좋아요 질문, 그래. 당신은 개발자 도구에 들어갔다 그렇다면 파이어 폭스 파이어 버그를 사용하거나에 크롬, 다음 네, 당신은 할 수 특정 HTML을 참조하십시오. 그래서 $ 행 [ "이름"] 보여주지 않을 것입니다. 그것은 어느 쪽을 표시합니다 이름은 해당 행에 있습니다. 청중 : 그냥 일반적인 문제 어떤 부엌이되고, TD는 정의? 왜 것이 우리가 들리지?​​] ZAMYLA CHAN 표 행 TR, 테이블은 열을 TD. OK. 청중 : 네, 테이블 데이터입니다. ZAMYLA CHAN : 테이블 데이터. 그래. 청중 : 그것은 행의하는 열은 열 같은 치료 방법은? ZAMYLA CHAN : 죄송합니다. 당신은 반복 할 수 있습니까? 청중 : 어떻게 것 행을 시각화? ZAMYLA CHAN : 어떻게 시각화 할 것 방법의 어떤 종류의 행? 당신이 말하는 여기에 행 또는 TR 행? 청중 : 행. ZAMYLA CHAN : 여기이 행? I는이를 시각화 것 내 쿼리를 실행합니다. 그리고 OK, I는 N 0 하나가 말한다 조건과 일치하는 행의 양 당신은 쿼리했다고. 그래서 일부 행 번호가 있습니다. 행 그래서, $ 행,는 각 배열에있는 해당 행의 하나. 그래서 그 중 하나의 경우에도, 그건 여전히 일치하는 행의 배열. 그래서 다음에, 예를 들어,이있다 당신이 인출 할 때와 유사 사용자의 캐시. 그리고 기준이 곳이 있었다 ID는 세션 ID와 동일. 정말 하나의 행이 있습니다 그와 일치 할 수 있습니다. 하지만 여전히 행은 하나의 행이 반환됩니다. 그래서 행으로 이동해야 할 것, 인덱스 0에 인덱스 캐시 실제로 캐시에 도착. 청중 : 인쇄 기능입니다 같은 일을 에코에? ZAMYLA CHAN : 예. 예. 동일의 에코를 인쇄합니다. 청중 : foreach 루프인가 행에 인덱스 유일한 방법? ZAMYLA CHAN은 : foreach 루프인가 당신이 할 수있는 유일한 방법 행을 반복? 아니오. 또한 제공, 루프를 사용할 수 있습니다 당신은 길이를 알고 행의 배열의 형태가됩​​니다. 청중 : 당신이 그것을 액세스 할 수 [청취]로 행을 사용하여? ZAMYLA CHAN : 그래서 당신이 그것을 액세스 할 수 없습니다 당신이하지 않으면 그냥 행을 사용하여 foreach 루프는 제공 당신은 행을 선언하지 않았습니다. 예. 네, 흰색. 청중 : TR 및 TD 그래서 무엇을해야합니까? ZAMYLA CHAN : 그래서 TR과 TD는 HTML 태그입니다. TR은 시작을 나타냅니다 테이블 행의. 그리고 각각의 TD를 나타냅니다 새 테이블의 데이터 열. 청중 : 무엇을 행의 시각에 대한 같은 단지 SQL을 상상하고, 어떻게 그들은 행이 있습니다. [청취]. ZAMYLA CHAN : 네. 즉, 좋은 점입니다. 당신은 같은 행을 시각화 할 수 있습니다 같은 Excel 표에서 단지 행의 목록입니다. OK. 괜찮아요. 그래서 지금 우리는 경우, 선택에 떠나면 더 이상 질문은 우리가 거​​, 거기에 없습니다 삽입에 가서. 나는 몇 가지에 삽입하고 싶었 그래서 경우 테이블의 특정 열을 삽입 값은, 나 자신을 삽입 할 수 있습니다 올해 7 Ravenclaw에. 그러나 때로는 중복이있을 수 있습니다 값, 우리는 pset7에서 본으로 할 때 우리 우리의 포트폴리오를 업데이트했다. 따라서이 경우, 우리는 ON 사용할 우리가하지 않도록 KEY UPDATE를 복제 같은 여러 행을 저장 가치가 아니라 업데이트합니다. 그럼 우리가 실제로 업데이트가, 이는 삽입되지 않습니다. 그것은 당신이 업데이트 그냥 업데이트의 주어진있는 특정 테이블에 기준 한 다음, 마지막으로, 삭제, 이는 매우 비슷한 일을한다. 청중 : 수 당신 간단히 중복 키를 통해 이동? ZAMYLA CHAN : 네. 기본적으로 여기에, 나는 INSERT INTO이 gringotts, 갈레온는, 이들 값이다. 그러나 ID는, 아마도, 고유 키입니다 값은 MySQL의 테이블에 설정합니다. 그래서 이미 ID가 설정 한 경우, 그때 나는 새 행을 삽입 할 수 없습니다. 이미 존재하지 않는이 경우, 나는 그것을 업데이 트해야합니다. 흰색의 중간에. 청중 : 그래서, 삭제, 삽입, 업데이트 선택, 그 모두 사용할 수 있습니다 로컬 [들리지? ZAMYLA CHAN : 그래서 삽입, 업데이트, 삭제 및 선택 모든 SQL 쿼리입니다. 그래서 때마다 당신은 SQL을 사용하고, 당신은 사용할 수있는있을 것이다. 청중 : 지난 퀴즈로 돌아 가기 - 처리 문제가 발생했습니다 당신은 테이블이 있고 원한다면 하나의 시험 점수를 삽입하고 삽입 당신의 이름을 못하게 그렇게 [청취] 친구의 시험 점수. 당신이이 삽입에 어떻게 할 것인가? ZAMYLA CHAN : 그래서 질문하고 있었다 이전 중기 질문입니다. 나는 어떤 잘 모르는 것 같아요 하나는 바로 지금이다. 아마 그 후에, 당신이 원하는 경우 내가 할 수있는 다음, 와서 나에게 보여 확실히 당신에게 팁을 제공합니다. 그러나 같은 삽입 것들을 말하기 때 다른 사람의 점수에 기여 ,의 얘기하자 안 SQL 주입 공격. 그래서 SQL 주입 공격은 본질적으로 여기서 누군가가 소요 의 낮은 보안의 장점 당신이 데이터를 복용하는 방법입니다. 그래서 여기에, 그냥 CS50 금융처럼, 우리가 로그인 할 때, 우리는에 입력 할 수있는 로그인 폼에 사용자 이름, 첫 번째 텍스트 상자 및 다음 암호를 입력합니다. 아마도 우리의 PHP 코드를 볼 수 있습니다 다음과 같이, 여기서 $ 사용자 이름 한 후 데이터 사용자 이름 및 암호 후 데이터 암호입니다. 그리고 우리는 단지 말하자면, 우리의 쿼리를 실행 OK, 잘, 우리의 쿼리는 것입니다 우리의 사용자의 선택, 위치 사용자 이름은 그들이 제출 한. 암호는 암호입니다, 암호가 일치한다는 것을 의미. 자, 어떤 경우 대신 실제의 같은 실제 암호를 제출 12345 말한다 그 단자에 추측 암호를 해킹하려고 자신의 계정, 무엇을 대신하는 경우 그들은이를 제출했다. 그들은 아마에 입력 할 수 있습니다 암호에서 추측. 그리고 그들은 완료 할 것 견적 후 입력하거나 = 1 1. 즉, SQL에 직접 조절이 것 이런 식으로 뭔가를보고 쿼리합니다. 사용자의 선택 위치를 사용자 이름 = 접지 단자 및 암호 백합 또는 1 = 1과 같습니다. 그래서 암호 중 하나는이 올바른 또는 1 = 1로하면, 항상 참이다. 따라서이 경우에는, 기본적으로, 사용자는 수 이 활용하고 단지 로그 자체 및 해킹 다른 사람의 계정. 우리가 피하고 싶은 것도 그런 이유입니다 이 작업을 수행 할 필요가있는 사람. 그러나 다행히도, 쿼리 기능에 의해 자리를 전달하는 것은 소요됩니다 당신이 처리. 또한, 일반적으로 할 수 없을거야 실제로 암호를 제출 자신. 우리는 해시 또는 암호화 된 이유 CS50 금융에서 그들. 청중 : 지난 퀴즈 이야기 에 대한 MySQL의 탈출 문자열. 우리는 그것에 대해 걱정해야합니까? ZAMYLA CHAN : 좋은 질문입니다. MySQL의 이스케이프 문자열은 확실히 우리의 쿼리에 사용 된 함수입니다. 하지만 확실히 그 조사. 나는 그것이 알고 공정한 게임의 말할 것 당신은 호출 할 필요가 거라고 문자열에 작동합니다. 그래, 벨린다? 청중 : 그것은 때 어떻게 알 수 있습니까 작은 따옴표 나 큰 따옴표? 또한, 당신은 강의에서 같은 느낌 가지고 있지 대해 뭔가를 언급 [청취] 또는 무언가 또는 끝에서 두 번째 작은 따옴표. 나는 그가 강의에서 지적 생각 당신은 아포스트로피 1을 하잖아요 다음 아포스트로피가 없습니다 또는 뭔가. 청중 : [청취]. 청중 : 일이 마지막 싱글 그 두 번째 상자 거기에 따옴표 이 없어야합니다. [청취] 때문에 당신은 그 마지막 하나를 취할 때 아웃 인용 및 콘텐츠에 대해이 일치 당신이 있음이 경우 암호는 어디에 쿼리는 따옴표에있다 이미 말. 당신은 작은 따옴표를 사용하려면 하나를 직면 하나 [청취]. 그래서 그 텍스트에 실제로의 상자가이 없어야합니다. ZAMYLA CHAN : 그 변경됩니다. OK. 질문이없는 경우에, 나는거야 이야기를 요셉에게 그것을 통해 전달 자바 스크립트에 대한, 등등. [박수] JOSEPH ONG : 그래서 우리가 실행하는 조금 뒤에. 당신이 떠나있는 경우에는, 괜찮습니다. 그러나 우리는 당신이 아래로 머리를 유지하는 것이 요구 당신은 중간에, 그래서 경우 카메라를 차단하고는 사용하지 않는 당신이있는 경우 다시 종료. 나는 그런데 요셉 해요. 안녕하세요. 테스트, 테스트. 단, 그 좋은? 쿨. 그래서 동영상도 게시됩니다 사람들을 위해 온라인이 지금 떠나야 해. 황당. OK. 그래서 퀴즈 리뷰. 이것은 고양이입니다. 어쩌면 지금, 자바 스크립트, 너희들 중 일부에 대한 앗로. OK. 그래서 처음의, Zamyla에서 기억합니다. PHP는 것을 기억 서버에서 실행됩니다. 그리고 시간이 많이, 너희들은 루프를 썼다 PHP에서 마우스 오른쪽 버튼을, HTML을 출력하는 방법? 그 코드가 실행 그래서 일단, 그 당신이 인쇄 HTML 출력 사용자에게 보내집니다. 그렇게 일단, 더 이상 PHP는 수 당신이 페이지를 다시로드하지 않는 한으로, 실행 PHP를 reexecutes 물론. 그러나 당신은 HTML을 출력하면, 당신은 아무데도 갈 수 없습니다. 그래서 HTML은 사용자에게 통해 전송 여기에 브라우저 인 곳 마일로는 컴퓨터를 사용하고 있습니다. 그리고 물론, 몇 가지가 있습니다 우리는 사용자에게 HTML을 발송하면. 때때로 우리는 같은 일을 할 당신이 뭔가를 클릭하면, 우리가 원하는 의 이러한 종류의 팝업 경고 상자 를 누를 때와 같은 상호 작용, 키, 당신은 뭔가를 클릭하면 페이지가 나는 일이 무엇인가를 원한다. 글쎄, 당신은 PHP를 재실행 할 수 없습니다 그 HTML이 설정되는 코드 번. 그래서 당신이 어떻게해야합니까? 우리는라는 새로운 언어를 소개합니다 브라우저에서 실행되는 자바 스크립트, 그것은 당신이 일을 수행 할 수 있습니다 당신이받은 후에 HTML로 서버에서 그들. 우리는 클라이언트 측을 부르는 이유 때문입니다 프로그래밍 언어입니다. 그것은 당신의 컴퓨터에서 작동합니다 - 클라이언트. 지금까지 그것에 대해 질문? 즉, 패러다임은 사람들에게 의미가? OK. 좋은. 괜찮아요. 그래서 먼저주의해야 자바 스크립트는 PHP가 아닙니다. 그들은 몇 가지 다른 구문을 가지고, 이는 우리로 이동합니다. 그리고 그들은 그 용도는 매우 다릅니다. 자바 스크립트, 다시,에 대한 귀하의 클라이언트의 브라우저. 서버는 다른 사람의 어딘가에서 실행 정보를 전송 컴퓨터 당신에게, 맞습니까? 그래서 우리는 PHP 코드를 작성하도록 요구하는 경우 시험 문제에 쓰지 않습니다 자바 스크립트와 그 반대. 당신은 점을 잃게됩니다, 그것은 바로 수 없습니다. 그래서 몇 가지로하자 구문의 차이 - 왼쪽에있는 자바 스크립트 오른쪽에 PHP. 당신이 가장 먼저 눈에 띄는 것은 자바 스크립트, 우리가 가진 변수를 선언 var 키워드 - V-A-R. PHP는 달러 기호를 사용, Zamyla는 앞에서 설명한대로. 당신은 연관을 선언하려면 배열, 우리는에 익숙한 구문을 참조하십시오 PHP와 오른쪽. 왼쪽 대신 중괄호를 사용합니다. 그리고 그 열쇠는 왼쪽에 있습니다. 그런 다음에 콜론이 있습니다. 그리고 당신은 값이 당신이 원하는 것을. 그래서 이것은 당신이 PHP에서 할 것입니다 방법입니다 그 두 번째로 오른쪽에 밀로 시작 라인. 그리고 당신이 그것을 할 것입니다 방법입니다 당신이 원하는 경우에 자바 스크립트에서 왼쪽 사이드 우리는 개체를 부르는. 그리고 자바 스크립트의 객체는 그냥 연관 배열. 그래서 당신은에 필드에 액세스하려면 PHP는이 부류의 구문을 사용합니다. 그리고이 방법은, 당신은 다시 할당 할 수 있습니다 로렌이 소유자 필드. 음, 자바 스크립트로, 경우에 하나의 원하는 네가 할 수 필드를 액세스하고 변경할 도트 구문을 사용합니다. 또한 브래킷 구문을 사용할 수 있습니다. 하지만 당신은 사용할 수 없습니다 PHP에서 도트 구문. 그것은 작동하지 않습니다. 그것은 단지 PHP에서 작동합니다. 그리고 마지막으로, 정보를 인쇄 콘솔, 당신은 CONSOLE.LOG를 사용하는 너희들은 pset8에 많이 사용합니다. 당신은 그 CONSOLE.LOG 수 있습니다. 당신의 배열을 인쇄하려면 PHP, 당신은 인쇄 R을 사용합니다. 그리고 오른쪽에, 당신은 내가 해시 참조 저기 문자열 연결. 누군가가 먼저 물었다. 나는 자바 스크립트에서 플러스를 사용합니다. 내가 뭔가를 연결하려는 경우 PHP에서, 나는 점을 사용합니다. 이 다릅니다. 당신은 PHP 코드를 작성하는 경우, 플러스를 사용하지 않습니다. 당신은 자바 스크립트를 작성하는 경우 코드는 점을 쓰지 않습니다. 그것은 잘못된 것입니다. 그리고 당신은 슬픈 것입니다. 그래서 문법의 차이. 당신의 구문을 알고 있기 때문에 당신은에있는 경우 질문을 작성하고 구문을 사용하여 잘못된 언어에서, 그것은 작동하지 않습니다. 그리고 그것은 잘못된 것입니다. 그래서 몇 가지 컨트롤에 대한 얘기하자 당신이 사용하는 방법, 차이 흐름 각각에서 반복합니다. Zamyla는 오른쪽에 갔다. 오른쪽에있는 물건 잘 알고 있어야합니다. 의 왼쪽에 살펴 보자. 당신이 자바 스크립트에서 N 루​​프에 사용하는 경우, 루프 변수 var에 거기 나는, 배열의 키를 반복. 그래서 당신은 이름, 집, 역할을 참조하십시오. 나는를 CONSOLE.LOG, 내가 얻을 이름, 집 및 역할. 사람들은 키입니다. 자바 스크립트에서 foreach 루프가 간다 이 배열의 값에. 그래서 당신은 내가 둘 다 알 수 있습니다. 하지만, 여기에 PHP 측면에서, 그것은 인쇄 마일로, CS50 및 마스코트 중. 사람들은 PHP의 값입니다. 그래서 이들은이 두 다른 방법입니다 다른 언어. 그래서 당신은 foreach를 사용하는 경우 루프는, 생각하지 않는 그 당신이 키를 제공합니다. 당신이 N의 루프를 사용하는 경우와, 그렇지 않은 그것은 당신에게 값을 제공합니다 가정합니다. 이것은 지금까지 의미가 있습니까? 다음 슬라이드를 표시하는 것입니다 당신의 반대에 액세스 할 수있는 방법을 각각. 글쎄, 당신은 자바 스크립트의 키가있는 경우 당신은, 값을 원하는 에 당신은 인덱스 그와 배열입니다. 그래서 난의 밀로 당신을 얻을 것이다 무엇 당신이 원하는 - 값을. PHP이 다른 구문이있다. 당신이 정말로 알고 싶다면, 난 몰라 우리가 아직 당신에게 그것을 보여 주었다 것 같아요. 당신이 관심이 있다면, 당신은 사용할 수 있습니다 오른쪽이 추가 구문 실제로 당신이 얻을 수있게된다면 PHP의 키는 사용하는 foreach 루프. 퀴즈 그래서 조금 당신이 관심이 있다면. 그래서 그냥 보여의 두 루프의 차이점. 당신이있을 때 그들을 혼합하지 마십시오 질문을 프로그래밍. 그것에 대해 질문. 쿨. 괜찮아요. 자바 스크립트 객체. 나는 그들에 대해 이야기했다. 그들은 연관 배열처럼입니다. 나는 당신이주의하고 싶은 것은 여기에 그 연관에 값 배열은 자바 스크립트에서 아무것도 할 수 있습니다. 심지어 함수가 될 수있다, 거기있다. 난 기능을 가지고 그 키의 값이다. 그리고 그 함수를 호출 할 경우, 그냥 껍질에 액세스 할 수 있습니다. 그리고 나는 괄호를 넣어 그 후. 그리고 그 작동합니다. 그래서 질문? 아니? OK. 좋은. PHP와 같은 스크립트,, 느슨하게 입력됩니다. 이것은 무엇을 의미할까요? 그것은 형식을 가지고있다. 하지만 당신은 자바 스크립트를 선언 할 때 변수는 var에 나는 말한다. 당신은 말을하지 않습니다. 그 일이 아니다. 당신은 그냥 변수의 말. 그리고 자바 스크립트가 처리 할 당신을위한 후드 타입. 우리는 자유롭게 사이에 변환 할 수 있습니다 이 때문에 유형. 그래서 난이 숫자로 시작한다 이 경우에는. 그리고 끈이 있습니다. 그리고 여기에 내가 추가합니다. 그리고 나는에 다시 재 할당. 그 첫 번째 줄에 따라서 내가 수입니다. 두 번째 줄에, 지금은됩니다 나는 재 할당을 끈 후. 그리고 여기, 난 그냥 합치 해요 문자열 상에 그 번호. 그래서 당신은 볼이 난에도 불구 첫 번째 부분에있는 정수, 그것은 일종의 의 변환되는 등 문자열 후 추가되는 그 헬로 문자열 상. 그래서 그게 무슨 뜻이야 느슨한 입력하여. 즉,이 사이에 변환하는 것이의 아주 쉽게 유형. 그리고 경고가 발생하지 않습니다 에서 당신은 C가하는 것처럼. 그래서 지금 인사 포함 문자열에 123. 다음. 우리는 또한 자유롭게 비교할 수 유형 사이. 그래서 당신이 ==를 사용하는 경우, 매우 PHP, 자바 스크립트처럼 비슷한 일을한다. 스트링 (123)는 숫자와 동일 123 당신은 이중 등호를 사용하는 경우. 트리플 같음을 사용할 때, 또한 있는지 확인하고 싶어 형식은 동일합니다. 즉, 문자열과 즉 그래서 있기 때문에 그들은 둘 다하더라도 번호, (123) 당신이 배 사용 false를 얻을 같습니다. 두 번 경우에 해당, 당신은 진정한 얻을 이중 등호하지 않기 때문에 유형에 대해 걱정한다. 트리플 등호 유형에 대한 관심 않습니다. 질문? OK. 그리고 자바 스크립트에 대한 또 다른 한가지는 당신이 아니라면 범위는 글로벌의 일종이다 기능. 그리고 동일에게 작동 실제로 PHP의 방법입니다. 그래서이 예제를 통해 가자. 나는 999 전을 설정합니다. 그리고 나서 루프이로 이동합니다. 그래서 나는이에 난을 인쇄하고 있습니다 경우 루프는, I는 0, 1, 2, 3, 4를 기대한다. I는 I = 4에 도착. 그것은에서 5로 이제를 증가 For 루프의 끝. 그리고, 그것은 루프 밖으로 나누기, 그것은 충족하지 않기 때문에 더 이상 조건입니다. 당신은 어떻게 생각하십니까 다음 CONSOLE.LOG는 출력한다? 그래서, 그것은 C에서 C에서했던 것처럼 때문에 당신은 내가 외부 VAR 같이있는 경우 당신은 같은 루프 내에서 var에 난이 루프, 그것은이 같은 것을 만드는 그것은 범위의 사용자들은 두 나는의이 다릅니다. 자바 스크립트에서, 단지 것 같은 I로 취급. 그 값 때문에 나는 5를 얻을 수 그것은 루프를 빠져 나온 후. 그래서 그 난의의는 동일한 I입니다. 그 의미가 있습니까? 글쎄요, 그것은에서 의미가 있습니다 자바 스크립트의 관점. 그러나 같은 패러다임은하지 않습니다 그들은이 C로 이월 다른 범위 규칙. 예. 청중 : [청취] [청취] 함수 외부? JOSEPH ONG : 그래서 어떤 함수 외부? 그래서 난 그냥 두 번째에 해당 얻을 수 있습니다. 그래서 우리는 (I) foo는 호출합니다. 이것은 내가 foo는에, 단위를 전달 다음, 그리고 그것을 기록합니다. 그래서 5이었다. 그래서 6됩니다. 하지만 내가 말하는 것은 그 기능이 전. 이 파라미터의 정보이므로,의 정보 그 기능 범위. 그래서 한 번 나는 실제로 나가 기능, 지금은 갈거야 예전의 나에게. 즉, I는 범위가 있기 때문에 그것은 함수입니다. 그리고 우리는 범위와 기능을 가지고 있습니다. 그러나 우리는 외부의 범위가 없습니다 자바 스크립트 함수의. 그 의미가 있습니까? 예. 질문. 청중 : [청취] 동일? JOSEPH ONG : 그래서 그래. PHP에서는, 물건의 동일한 유형이다. 실제로 약간의 미묘함이있다. 하지만 당신에 대해 물어 수 있습니다 검토 후 그. 당신은 정말 알 필요가 없습니다 퀴즈에 대한 그 미묘함. 모든 의도와 목적 등을 위해 변수, 글로벌 PHP,하지 않는 한 그들은 기능에 똑같아 자바 스크립트에있는 것. 예. 청중 : 왜 이런 일이 허용됩니다 자바 스크립트와 다른 어디 없음? JOSEPH ONG : 그래서 왜 허용 자바 스크립트에서가 아니라 C에서? 그냥 함께했다 몰라도 자바 스크립트는이에 OK라고 결정 자바 스크립트. 그래서 그냥 프로그래밍 언어처럼 우리가 말하는 것처럼 규칙입니다. 예. 청중 : 왜 않았다 그것은 6-5 이동? JOSEPH ONG : 그래서 그것은 6-5 갔다 나는 푸에 난을 통과 할 때, 그 때문에 foo는 내부 나는 지금, foo는을 범위로 범위에서 함수에 존재하기 때문에 자바 스크립트. 하지만 일단 나는 여기서 나가야 그것 때문에 기능 범위가되었다, 난 그냥 내부에 있던 정규 프로그램을 사용 제어 흐름의 나머지. 이해가가? 나는에 이동할 수 있습니까? 괜찮아요. 쿨. 이런 수용은 개체이다 참조로 전달됩니다. 당신은 당신이 전달하는 방법을 알고있는 경우 당신이 할 수 C로 배열 실제로 배열을 수정? 그것은 자바 스크립트에서 같은 일입니다. 나는이 경우 개체를 전달하면, I 이 catify 기능에 마일로을 통과시켰다. 마일로 시작한다. 그의 이름은 마일로 바나나입니다. 나는 함수로 해당 개체를 전달 그것은 개체, 연관 때문에 자바 스크립트의 배열입니다. 나는 작업을 수행 할 때 그 기능에, 그것은 실제로 객체를 변경합니다. 그래서 이것은 단지 개체에 대해 발생합니다 자바 스크립트에, 그냥 일이 좋아 C. 그래서 마일로 이름의 내부 배열에 대한 실제로 지금 고양이가 될 것이다. 그 의미가 있습니까? 그래서이 개체 만 작동합니다. 개체를 참조로 전달됩니다. 예. 청중 : 그래서 당신이 말하고있는 그 변수 I 대조적. JOSEPH ONG : 네. 어떤 변수 난 그냥했다 숫자, 오른쪽? 당신이를 통과 할 때 그것은 C에서처럼 정수, 그것은 복사본을 만듭니다. 그리고 배열을 통과 할 때, 실제로 의 실제 배열을 변경 C. 같은 일이 함께 발생 이 경우 자바 스크립트. 괜찮아요. 그리고 다음, 마일로 슬픈 때문에 그는 지금 고양이입니다. 그 후 실제로 마일로했다 수의사에 약간의 여행. 그래서 우리가 어떻게 자바 스크립트를 사용합니까 웹 페이지에서? 우리는 그것을 포함 할 수 있습니다. 이 스트립 태그를 HTML 코드입니다. 그래서이 지구 태그가 있습니다. 그리고 나는 약간의 자바 스크립트를 넣어 스크립트 태그 내 코드입니다. 그리고, 그것은이를 실행합니다. 난 그냥 같이 할 때의 인라인 자바 스크립트했다. 그것은 성가신 종류의 때문에 자바 스크립트는 HTML에 실제로있다. 훨씬 좋네요이 작업을 수행하는 더 좋은 방법,, 에서 자바 스크립트를 작성하는 것입니다 외부 파일 다음 제공 소스와 스크립트 태그. 그리고 이것은 해당 자바 스크립트 파일로 이동합니다 과에서 자바 스크립트 코드를 읽고 그 대신 파일. 그리고이 방법은, 당신이 많지 않아 귀하의 시작 부분에서 자바 스크립트 만드는 HTML 파일, 그것은 정말 성가신. 당신은 다른 곳에 넣어. 그리고, 그것은 거기에서 그것을 읽을 것이다. 그 의미가 되었습니까? 배치 문제. 특히이 경우, 스크립트는 본문 앞에이다. 나는 그것을 실행할 때, 거기에 아직 몸에 아무 것도 없습니다. 어쩌면이 조금 더 할 것 나는이 다음 부분을 표시 할 때 감지. 이 경우, 스크립트 DIV 후 제공됩니다. 그래서 DIV 실제로 나타납니다 첫 페이지. 바로 여기이 작은 빨간색 원 안에, 당신은 텍스트가 나타납니다를 참조하십시오. 다음 경고가 나타납니다. 첫 번째 경우에는 때문에 스크립트 DIV 전에이었다, 경고는 먼저 보여줍니다. 그리고 사업부는 후 보여줍니다 당신은 상자를 닫습니다. 그래서 실행이 중요. 그래서 우리는이 점을 염두에 보관합니다. 이 중요 할 것이다 조금있다. OK. 잘, 당신은 어떻게 할 때까지 기다려야합니까 전체 페이지가 전에 다음로드 일부 코드를 실행? 우리는이 작은으로 얻을 것이다 잠시 후도. 그러나 다만이 위치를 유지 때 우리에 대한 마음의 문제 다른 슬라이드로 제공됩니다. 그래서 우리는 지금 DOM에 도착. 그리고 DOM은 무엇인가? 당신이 HTML 코드를보고 있다면, 그것은 단지 화면에서 텍스트의 무리. 어떻게 자바 스크립트는 것을 알고 않습니다 이는 HTML 요소입니까? 그래서 우리는 어떤 기억을 가지고있다 이 표현 우리가 가지고있는 구조. 그리고 우리는 기억이있을 때마다 자바 스크립트의 표현, 우리는 전화 DOM있다. 그리고 사람들이 결정하는 것이 바로 방법 우리는이를 표현해야한다는 같은 HTML 구조. 이 DOM처럼 무엇을 보는가? 음, 메모리 표현, 우리는이 텍스트를 가지고. 그리고 우리는 메모리에 설정 표현입니다. 그래서이 HTML입니다. 그래서 우리는 먼저 찾을 때마다 DOM 트리가 문서를 가지고 있습니다. 그것은 나무처럼 보인다. 그리고, 문서는 HTML을 포함 태그, 실제로 모든 지금의 내. HTML 태그는 두 아이가 있습니다. 그것은 머리가 있습니다. 즉, 머리, 당신은 들여 쓰기를 보면 거기가 구성 어떻게에서 닫기 태그 사이에, 머리 아이가. 아이는 제목입니다. 정확히. 이제, 우리는 몸의 아이가. 그리고 그 몸을 가지고 아이는 가족이라고. 그리고 그 가족은 아이가 셋 - , 오래된 중간, 막내. 그래서 당신은 그림을 그리는 방법을 알고 있어야합니다 이 같은 우리는 방법을 물을 때 우리가 줄 때 그림을 그리려면 당신이 왼쪽에있는 HTML. DOM 트리를 생성하는 방법을 알고있다. 그리고 이러한 것들의 내부에, 그냥 거기에 내가 표시 한 텍스트, 등의 작은 상자. 이 DOM 트리 구조를합니까 감각과 DOM은 무엇입니까? 그래서 P는 무엇의 약자입니까? 여기에, 피에가 해당 태그에 나타내는 HTML에서 단락 태그. 그래서 당신은 그것을 볼 수 있습니다. 그러나 단지 몇 가지의 의미 텍스트를위한 공간입니다. 그리고 일부 기본 CSS 스타일을 가지고, 그것은 단락 태그이기 때문에. 하지만 실제로는 걱정하지 마세요 그 부분을 너무 많이. 그냥이 자리 알아 일부 텍스트를. 예. 질문? 예. 청중 : 당신은 그냥 CSS를 언급했다. 해시 가족과 해시 모든 물건은 기본적으로 CSS의 ID를 나타내는? JOSEPH ONG : 네, 그렇습니다. 나는 무엇을이 해시를 얻을 것이다 두 번째에서 의미합니다. 안젤라는 CSS에 갔을 때, 그녀 CSS 셀렉터에 대해 이야기했다. 다음은 CSS 셀렉터됩니다 그녀에 대해 얘기했다. 예, 롭? ROB 보덴 : 나는 또한 주석 것 제목 태그의 내부에 그 DOM 또한, 텍스트 노드이다. JOSEPH ONG : 오른쪽. 제목 태그 안에 그래서 나는 약간의 텍스트 DOM있다. 그래서 정말,이 제목은 같이해야 작은 상자뿐만 아니라 그것의 떨어져오고. 하지만 정말 문제가되지 않습니다 이 경우 너무 많은. 우리가 정말 텍스트 노드에 대해 걱정하지 않는다, 우리는 너무 많이, 그들에게 전화로. OK, 우리는. 분명히, 우리는. 그리고 고칠 것이다 때 다시 업로드합니다. 그 의미가 있습니까? 그래서 우리는 어떻게 DOM으로 작동합니까? 당신의 DOM을 처리 할 때마다 자바 스크립트, 두 단계가 있습니다. 당신은 DOM 요소를 선택합니다. 그리고 당신은 그것을 일을. 따라서이 경우, 추상적에, 난 중간 요소를 선택했습니다. 그리고 물건을하고의 예 여기에 텍스트를 변경하는 것입니다. 즉, 밥이 될하는 데 사용됩니다. 이제 내가 그에게 한 짓은 I가 변경된 이 경우 밀로에 밥. 어떻게 우리가 실제로해야합니까? 우리가 선택 어떻게해야합니까? 그리고 우리는 어떻게에 물건을 수행해야합니까 일이 한 번 우리가 그것을했다고? 음, 그런데 너희들은 그것을 배웠습니다 이 클래스에 뭔가 우리를 사용하는 것입니다 jQuery를했다. 그래서 jQuery를 무엇입니까? jQuery를가 만드는 라이브러리 쓰기 쉽게 자바 스크립트. 그래서 누군가가 시간이 걸렸습니다 와 jQuery를 썼다. jQuery를 실제로 작성 자바 스크립트에서. 그리고 그들은 우리가 지금 이런 짓을하기 때문에 함수들이 그 우리는 만들 수 있습니다 우리의 정말 쉽게 살고있다. 그래서 어떤 것이 있는가 그것은 않는 것들? 그것은 쉽게 요소를 선택합니다. 그것은 HTML을 변경한다, 쉽게 클래스를 추가. 그것은 아약스가 쉬워집니다. 우리는 두 번째에 해당 얻을 수 있습니다. 그리고 C 라이브러리와 유사합니다. 그래서 당신은 string.h에 포함 당신은 나 strlen 얻을. 당신은이 모든 것들을 strcpy를 얻을. 당신이 jQuery를 포함 할 때, 당신은 좋은 얻을 변화 요소를 선택하는 방법 일, 등등. 당신은 추가 기능을 얻기가 자바 스크립트는 제공하지 않습니다. 그래서 jQuery를가 JavaScript를 지원하지 않습니다. jQuery를은에 표기 라이브러리 자바 스크립트를 만드는 자바 스크립트 쉽게 작성. 그래서 jQuery를이 프로그램이 아닙니다 언어. 그러나 자바 스크립트입니다. 합니다. 확실히 당신은 바로 용어를 얻을. 질문? 예. 그게 문제인가? 괜찮아요. 그렇다면 jQuery를 사용합니까? 글쎄, 당신은 몇 가지를 작성하는 경우 당신은 포함 자바 스크립트 코드와 jQuery를 파일의 맨 위에있는 등 스크립트 파일, 당신은 달러 기호를 사용 이제 jQuery를 액세스를 얻을 수 있습니다. 그리고 이것은 다른 PHP에서 달러 기호. 그것은 동일한 기호 당신의 키보드에 입력합니다. 하지만 그들은 매우 다른 것을 의미한다. PHP에 달러 기호는이 의미 나는 변수를 선언하는 방법입니다. 당신이 포함 한 자바 스크립트에서, jQuery를, 그것은 jQuery를 의미합니다. 그래서 염두에 보관하십시오. 그렇다면 우리는 DOM 요소를 선택할 수 있습니다? 그런데, 언제 그것을 추한 자바 스크립트를 할 방법, 당신은 액세스 전역 변수를 문서화합니다. 그리고 당신은 ID 가족에 의해 요소를 얻을. 이건 정말 길고 장황하다 아니라 아주 좋은. 또는 당신은 모든 요소를​​ 얻을 수 있습니다 그 p 태그입니다. 즉, 자바 스크립트로도 작동합니다. 그러나 우리는 정말 나타나지 않았다 당신은 구문 너무 많이. 우리가 보여 당신은 무엇을 jQuery를했다. 거기 그래서 전체 선택이 다만 얻는다는 자바 스크립트로 표현 된 이 아주 좋은 달러에 응축 해시 가족에 서명. 와 $ P, 그것은 그런 식으로 그냥 곳. 모든 P 태그를 선택합니다 가족 내에서, 우리는 공간을 넣어 둘 사이에. 그리고 지금, 우리는 모든 P를 얻을 수 가족 내부 태그. 그리고 익숙? 음, 안젤라 이야기 CSS 셀렉터. 나에게 1 초 줘. 그리고 요소를 선택하기 위해, 당신은 당신과 같은 것을 사용 CSS 셀렉터와 함께 할 것입니다. 당신은 앞에 해시를 넣으면 그것은, 그것은 ID로 선택합니다. 점은 클래스에 의해 선택한다. 당신은없는 것을있는 경우 해시 또는 점, 그것은 그 태그를 선택합니다. 질문입니다. 예? 청중 : 우리는에 도트를 사용하면 우리의 HTML은, jQuery를이 아니다? JOSEPH ONG : 우리의 HTML에있는 점 자바 스크립트 것입니다. 그것은 jQuery를 것 아니다. 너희들은 그것을 배운 방법 jQuery를가. HTML을 사용하는 것입니다. 그리고 당신은 그것을 통과 어떤 HTML이 될 것입니다. 그래서 난에 대해서 설명 할 것 실제로 두 번째. 그래서 우리가 어떻게 요소에 물건을합니까 일단 우리는 그것을 선택한? 그래서의 예 요소를 선택. 그래서 지금, 우리는 그것에 물건을하고 싶어요. 따라서이 경우, 내가 다시 가자 이전 슬라이드로. 그것은 전에 밥이었다. 그리고 나는 그것을 변경하려면 밀로에 HTML 내부. 그래서 HTML 함수를 호출 요소에서. 즉, HTML 함수이다 소자의 제조 방법. 그리고 나는 그것을 어떻게 제공 나는 HTML이되고 싶어요. 그리고 그것은 단지 내부에 무슨 대체 내가주는대로와 해당 태그. 예. 질문? 청중 : 해시를 사용하는 만 jQuery를위한. [청취] 우리는 그것을 사용하지 않을 것입니다. JOSEPH ONG : 네, 그렇습니다. 하지만 너무 걱정하지 마세요 에 대한 순수한 자바 스크립트. 난 그냥 당신들에 초점을 맞출 방법 , jQuery를 함께 할 것입니다 때문에 즉, 중요한 것 퀴즈에 대한 부분입니다. 오른쪽. 정확히. 그래서 당신은 그 해시 태그를 참조 있도록 와 요소를 선택에 해당 그 때문에 해시 태그의 ID 중간. 해시 태그는 ID를 의미한다. 그리고이 요소는 중간의 ID를 가지고 있습니다. 그래서 우리는 선택 요소입니다. 청중 : [청취]. 달러 기호 해시 [들리지? JOSEPH ONG : 그래서 없음. 문제는 당신이 사용할 수 있습니다. 값입니다. 그리고. 값은 요소에서 작동 입력은 있습니다. jQuery를, 그것은 것입니다 . 발,하지. 값. 그래서 작은 예에 얻을 것이다 그 조합이 모든 것을 보여줍니다 초. 하지만이 작은 조각을 제공합니다 생각 지금까지 사람들에게 의미가 있습니다. HTML을 변경하려면, HTML 메서드를 호출합니다. 예. 청중 : 당신은 설명 할 수 다시 방법은? JOSEPH ONG : 그래서 방법은 그냥 이 하나에 속하는 기능, 케이스, 이러한 DOM 요소 중 하나, 내가보기 때문에 첫 번째 요소를 선택했습니다. 사실, 나 마우스를 사용 할 수 있습니다. 나는 첫 번째 요소를 선택했습니다. 그리고 나는이 HTML이라는 이 있다고 작동합니다. 그리고이 기능이 포함되어있어에 이 점은, 우리는 방법을 호출합니다. 즉, 대한 그냥 멋진 이름입니다. 다시 말해봐. 그래서 우리는 선택 기억 이제 요소입니다. 그리고 우리는의 안쪽에 넣었습니다 요소 변수. 수정? 그래서 우리는에 HTML을 변경하고자 할 때 내부, 그것은 당신이 전에 밥 때문에 마일로 해당 텍스트를 변경하고 싶습니다. 그래서 우리는 HTML를 호출합니다. 그리고 우리는 그것을 말해 무엇 내부의 HTML 그 요소는 지금해야한다. 그리고 그것은, 마일로으로 변경 나는 그것을 마일로을 준 때문이다. 청중 : 그래서 그들은 함께 노력하고 있습니다. [청취] JOSEPH ONG : 그래, 그래. 그들은 함께 노력하고 있습니다. 그래서 그들 중 하나를 선택 첫 번째 요소. 그리고 두 번째는 않습니다 그것은 뭔가. 예. 청중 : [청취]. 이 방법은 HTML에서와 다른 경우 당신은 실제와 동일한 방법이있다. JOSEPH ONG : 네. 즉, 다른 방법입니다. 즉, 다른 방법입니다. 그리고 우리는 단지 두 번째에 해당 커버 할 수 우리는 예를 얻을 때. 나는 확실히 우리가 속도 있는지 확인하려면 우리는 시간이 없어 때문이다. 하지만 지금은 시간이 지남에 따라 방법을 실행했습니다. OK. 쿨. 당신이 클래스를 추가 할 경우에, 거기에 또한 클래스 추가 방법. 이것은 무엇을 단지 예입니다 당신은 jQuery를 함께 할 수 있습니다. 그건 그냥 클래스를 추가합니다. 당신이 그것을 제거하려는 경우, 당신은 제거를 호출 할 수 있습니다. 즉, 당신이 할 수있는 또 다른 일입니다. 당신이 할 수있는 일들 때문에 더 많은 예제. 그래서 난에 넣을 수 있습니다 이 같은 최고? 막내 제거합니다. 난 단지에 해당 자바 스크립트를 실행하는 경우 내 파일의 상단, 즉 작동합니까? 오른쪽. 중간은 아직 존재하지 않기 때문에. 그래서이 작동하지 않을 것입니다. 실행 순서. 먼저 정상에 간다. 무엇? 청중 : 막내가 아직 존재하지 않는 이유는 무엇입니까? JOSEPH ONG : 네. 막내는 아직 존재하지 않습니다. 정확히. 청중 : 당신은 중간 말했다. JOSEPH ONG : 죄송합니다. 막내는 아직 존재하지 않습니다. 그리고 다른 것은 내가하지 않은 것입니다 jQuery를 포함 스크립트 SRC를 요청 파일. 그래서 그 일을하지 않을 것이다. 사실, 난에 그렇게하지 ​​않았다 인 다음 슬라이드, 그 중 하나를 해결하기 위해 가정. 그러나 우리는이 작업을 수행하는 방법은 자바 스크립트입니다 이벤트가 구동된다. 그래서 우리가 할 것은 우리가 이벤트를 사용합니다 이 일어날 수 있도록 핸들러. 그래서 저는 문서를 선택 먼저 설정합니다. 나는 문서 인 경우, OK, 말 준비 나 기능을 실행 할 수 있습니다. 그래서 모든 구문 수단이다. 나는이 문서를 선택. 이제, 언제 문서는 준비 기능을 실행합니다. 그리고 여기에 문서가있을 때 모든 HTML이 가지는 의미, 준비 로드, 그때는 함수를 실행 즉, 해당 요소를 제거합니다. 그리고 지금은이 기능을 실행하면 난 준비에 전달 된 것으로, 난 보장하는 모든 HTML 페이지가 먼저 존재하는 것입니다. 예. 질문? 대상 : 이벤트 키워드는 무엇입니까 함수 내에서? JOSEPH ONG : 그래서에서 해당 이벤트의 키워드 기능은 매개 변수입니다 함수에 전달되는 모든 이벤트에 대한. 그것은 그 뭔가의 당신은 무료로 얻을. 당신의 주요 처리기를 사용하는 경우 pset8, 해당 이벤트는 위해, 당신을 말할 수 예를 들어, 어떤 키가에 눌렀습니다. 이 경우, 현재 상태 이벤트, 실제로 매우 유용하지 않습니다. 그러나 키 다운 이벤트, 더의 유용, 당신은 알게하기 때문에 어떤 당신은 키에 액세스하여 누른 키 해당 이벤트 객체 해제 코드입니다. 수정? 그 의미가 있습니까? OK. 예. 질문? 청중 : 그래서 당신은 넣을 수 있습니다 아래 스크립트 태그 낮은? JOSEPH ONG : 그래서 그래. 당신은 스크립트를 넣을 수 있습니다 낮은 아래에 태그. 하지만 그것은 정말 성가신됩니다. 그리고 우리는 모두를 중앙 집중화 좋아 한 장소에서 우리의 코드. 그리고 이것은 우리가 그것을 할 수 있습니다. 기억 이전의 나는 더 좋은가 말했다 요소가 있는지 확인하는 방법 당신이 코드를 실행하기 전에 페이지에? 그리고 이것은 단지 좋은 방법입니다 해당 작업을 수행합니다. 청중 : [청취]. JOSEPH ONG : 네. 당신은 여전히​​ 오른쪽에있을 것? 기억 때문에 포함 페이지의 상단에있는 파일. 그래서 전에 먼저 실행할 것 당신은 페이지의 하단에 도착. OK. 그래서 당신은 또한 다른 추가 할 수 있습니다 이벤트 처리기의 종류. 이 하나의 단지 클릭을 처리합니다. 그런 다음, 막내를 클릭하면 는 경고와 함께 나타납니다. 이건 그냥 다른 이벤트 유형. ready 이벤트 반대로, 당신은 지금 당신이받을 때 클릭 이벤트를 사용 요소를 클릭합니다. 그리고이 경우, 클릭을 기억 핸들러는 막내에 연결되어 있습니다. 그래서 그것은 단지 발생 나는 막내를 클릭합니다. 그리고 다른 하나는, 준비 이벤트 문서에 첨부 하였다. 따라서 문서를 기다린다 준비한다. 이해가가? 나는 이동할 수 있다고 생각합니다. 예. 질문? 청중 : [청취]. 이 경우에는 [청취]를 사용하세요. JOSEPH ONG : 오, 그래,이 때문에에 경우, 나는 막내를 기다릴 필요가 먼저 화면에 표시하는 요소 나는에 클릭 처리기를 연결하기 전에 그것은, 어떤 I 안에 넣어 이유 문서 준비 중. OK. 그리고 다음, 그래서 이것은 큰 예입니다 당신은 모든 것을 결합하는 방법. 이건 그냥 폼 검증의 예입니다 당신은 강의에서 본 적이있다. 그래서 같이 단계별로 수행 이를 통해 이동합니다. 그리고 그것은 완전히 확인 될 것입니다. 그냥 위에서 아래로 읽어. 나는 바닥에 폼이 있습니다. 문서가 준비가되면, 나는 연결 되도록 폼에 처리기를 제출 내가 양식을 제출하면, 나는 값을 얻을 그 입력의 각 내부. 그것은 빈의 경우에 체크. 그것은 빈의 경우에, 나는, false를 반환하기 때문에 나는 양식을 제출하지 않으려는, 형태가 맞지 않기 때문입니다. 암호가 비어 있거나 그 이하의 경우 8 자보다, 내가 제출하지 마십시오 형태는, 그 또한 잘못 때문이다. 그리고 반환 거짓은 방지 제출과에서 양식 새로운 페이지로 이동. 그리고 희망이 의미가 있습니다. 나는 너희들을 도보로해야한다고 생각 자신의 단계로이 코드 단계. 그리고 당신은 무엇을 선택 이해하면 요소와 그것에 물건을 실제로 만들 것이다, 수반 당신에게 많은 의미. 예? 청중 : 무엇을합니까 이름 = 이름이 의미? JOSEPH ONG : 그래서 이름 = 사용자 이름과 이름 = 암호는 그냥 볼 의미 무엇이든의 속성 당신은 선택입니다. 그리고 그 다음은 일치해야합니다. 그래서 우리는 등록으로 이동합니다. 그리고 우리는 모든 입력을보고 등록. 그리고 우리는 1 곳의 이름을 선택 속성은 사용자 이름과 동일하다. 그래서 첫 번째 선택은 선택 사용자 이름 입력. 그리고 두 번째 선택은 선택 사람들은이 하나 있기 때문에 암호 자신의 이름 속성의 설정은 무엇 그들이 있어야 할거야. 질문? 청중 : 제출에 어떻게합니까 바닥 부분은 상단 부분을 해결? JOSEPH ONG : 그래서이기 때문에 이벤트 처리기의. 그래서 우리는 제출 이벤트를 기다리는 즉 양식에서 시작됩니다. 그리고 제출입니다 전부입니다. 왜 내가 거기에 제출할 부릅니까? 이 양식이 제출 될 때, 말한다, 내가 제출 이벤트를 얻을. 그래서 나는 단지를 차단하자 다음 대신이 코드를 실행합니다. 예? 청중 : 왜해야합니까 기능 이벤트가있을 수 있습니다? 왜 그냥 들리지] 수 있지? JOSEPH ONG : 자바 스크립트에서, 당신 때문에 함수를 선언해야합니다. 이 일을 그냥 방법 자바 스크립트에서. 당신은 무슨 말을해야 함수를 실행합니다. 그래서 당신은 당신이다는 것을 그것을 말하는거야 여기에 기능을 기대하는 대신 단지 중괄호. 청중 : 그리고 기능 다음 무엇입니까? JOSEPH ONG : 네. 이 함수는 내부에 무엇 이건 중괄호 후 그 기능 키워드. 예? 청중 : [청취]. JOSEPH ONG 기준 : 제출? 청중 : 아니, 기능 이벤트없이. JOSEPH ONG : 네. 이벤트가없는 자, 당신은 그렇게 할 수 있습니다. 이벤트를 필요로하지 않는 경우에, 당신은 그것을 생략 할 수 있습니다. 그러나 당신이 할 경우, 다음 거기에 넣어. 예. 빠른 질문? 청중 : [청취]. JOSEPH ONG : 네. 당신이해야 할 일을하기 때문에, document.ready은 모두 대기 말한다 페이지의 HTML 먼저로드합니다. 그리고 일반적으로, 당신은 당신의 요소를 원하는 당신이 코드를 실행하기 전에 장소에. 괜찮아요. 우리는 아약스에 도착해야합니다. 우리는 많은 시간을 필요가 없습니다. 그래서 장단점. 자바 스크립트는 쉽게 시도입니다 jQuery를 함께 작성합니다. 그러나 jQuery를 좀 느립니다. PHP는 C보다 느린 것처럼,의 이 해석이 없기 때문입니다. 그리고 jQuery를보다 약간 느립니다 자바 스크립트,의 많은 않기 때문에 후드 아래 것들. 당신이 jQuery를 사용하는 경우 그래서, 그것은이다 보다 조금 느리게 자바 스크립트, 비록 그 당신에게 좋은 우아함을 제공합니다. 그리고 마지막으로, 아약스. 지금까지 아약스와 함께, 당신은 Ajax를 보지 못했다 아직 pset7의 측면에서, 때문에 당신이 할 때, 당신은 제출 견적에 대한 양식입니다. 그것은 새로운 페이지를로드합니다. 그래서 당신이 큰 흰색 플래시를 얻을 페이지에서 그 동안 두 번째 페이지가로드, 맞습니까? 정말 좋은 것입니다 당신이 경우 이 플래시를하지 않았다. 페이스 북과 같은, 경우에 당신은 단지로 이동합니다 바닥, 그것은 새로운 내용을 추가합니다 전체 페이지를 새로 고치지 않고. 따라서이 같은 것이 좋을 것이다. 이 자바 스크립트 코드입니다 왼쪽에. 당신은 입력의 내부하세요. 당신은 야후에서 주식 정보를 얻을 그리고 당신은 큰 문자열을 만드는 것이 자, 이것이 내가 원하는 메시지입니다 말한다 화면에 표시합니다. 그리고 당신은 그 내부에 메시지를 넣어 도착 몇 가지 HTML 요소의 화면에 표시. 그래서 여기에 무슨 일이 일어나고있는 모든이다. 그러니까 기본적으로,이 모든 때문에 자바 스크립트 당신은 실행할 필요가 없습니다 더 이상 PHP는,이 있는지 확인합니다 페이지가 새로 고쳐지지 않습니다. 그래서 이것은 단지 추상적 인 생각입니다 지금 여기 말인지있다. 추상적 인 아이디어는 당신이 그것을 할 경우 자바 스크립트를 모든, 당신은 필요가 없습니다 페이지 새로 고침. 그러나 당신은 어떻게 실제로이 작업을 수행합니까? 음, 사실,의 얘기하자 첫 번째 문제. 문제는, 자바 스크립트에 실행이 동기입니다. 그래서 당신은 하나를 기다릴 필요가 전에 마무리 라인 다음 줄을 실행합니다. 그리고 내가 야후에 갈거야 경우, 그들의 서버는 아주 천천히, 그리고 그것은 그들에게 3 초 소요 해당 주식 정보를 나에게 돌려 줄? 경우에 나는, 그 가격 라인을 칠 때 그것은에 의해 그대로 실행, 동기 기본적으로 무엇을 그냥 할 것 것은 귀하의 브라우저에 실속 것입니다 삼초. 그리고 당신은 할 수있을 위하여려고하고 있지 않다 아무것도하면 해당 데이터를 가져 오는 동안. 그것은 고정 할 것. 그리고 그게 나쁘다. 당신은 사용자를 싶지 않아 얼어 붙은 웹 페이지가 있습니다. 수정? 그건 그냥 나쁜. 모두가 동의? 당신은 페이스 북을 검색하는 경우 정지 당신은, 당신을 아무것도 할 수 없습니다 정말 좌절. 따라서 해결책은 우리가 뭔가를 할 수 있습니다 비동기 대신. 그래서이 모든 비동기 것은 말한다 ,이 물어 보자된다 일부 데이터에 대한 URL. 그리고 나는 계속하겠습니다. 난 그냥 실행 유지하는거야 무엇이든 그 후했다 코드입니다. 그리고 그 데이터가 준비 될 때마다 나는 그것을 처리합니다. 즉, 말을 전부입니다. 청중 : 아약스 단지 만든다 코드 비동기? JOSEPH ONG : 그것은 비동기의 데이터 가져 오기의 방법입니다. 그래서 아약스에 대한 우선 그것은 나를 데이터를 얻을 수있다 외부 웹 사이트에서. 그리고 두 번째는 그것을 확인합니다입니다 제가있는 동안 내 페이지 실속하지 않습니다 그 데이터를 페치. 즉, 비동기 부분입니다. 그것은 다른 곳에 간다 때문에 내가 말 때문에 나는 잠시에 계속 그것은 데이터를 가져 오는 사용자들은 그것은 비동기 수 있습니다. 나는 실행을 유지합니다. 그래서 비동기 유지 마음에있는 생각. 그리고 난 당신을 보여 드리죠 차이이다. 동기 버전 왼쪽에 있습니다. 비동기 버전 오른쪽 측에있다. 볼 수 봐하는 단계에 해당하는 것을 각 라인에서 실행됩니다. 저기, 경고가 먼저 보여줍니다. 때문에 야후에서 주식 정보를 얻기 3 초 소요, 그것은 포장 마차 3 초. 그리고, 그것은 가격을 경고 그 세 초 후에. 그래서 지금, 그 경고 쇼 그 때까지 - 인치 삼초 그리고, 그것은 그 이후로 알려줍니다. 그래서 그냥 단계별로 간다. 그것은 너희들처럼 정확한을 받아 들일 것인가? 비동기 실행과 함께, 먼저 경고합니다. 그럼 당신은이 URL에 꺼. 그리고 당신은 내가에 갈거야, 말 데이터 만 부탁드립니다. 그리고 나는 갈거야 나중에 처리합니다. 그래서 바로 실행 나는이 있는지 확인 후 다음 행 비동기 요청. 그래서 0.001 초, 당신은 경고 안녕을 참조하십시오. 그 기능, 경고 안녕을 실행합니다. 그리고 약속을했기 때문에 그 I 나중에 데이터를 처리 될지 데이터가 돌아 오면됩니다 발생 삼초 후, 나는이 실행되는 내가 거기있을 기능. 예? 청중 : 당신은 지정하거나 수 아약스의 의미를 명확히? JOSEPH ONG : 그래서 아약스 방법이 있다면 나는 웹 사이트와 나는 경우 데이터가 필요 다음 페이지를 새로 고침하지 않으 나는 아약스이라는 기술을 사용합니다. 즉, 근본적으로 의미 오기 전에 다른 웹 사이트에서 데이터. 그리고 단지 방법으로 그것을 내 웹 페이지를 실속하지 않습니다. 청중 : 그래서 내재 자바 스크립트 또는 jQuery를 부분? JOSEPH ONG : 그래서 누군가가 할 수있는 방법을 썼다 이 오래 전에 자바 스크립트에서. 하나의 시점에서, 그것은 존재하지 않았다. 그리고 누군가가이 기술을 발명 사람들이 데이터를 요청할 수 있도록하는 이런 식으로. 그리고 그들은 몇 가지 물건을 썼다 당신을 위해 그것을 할 수 있습니다. 그리고 jQuery를 그냥 당신이 있습니다 그것을 할 수있는 아주 좋은 방법 이 $로. 기능을 얻을. 질문? 나는에 대한 질문에 대답 할 수 아약스 이후도. 난 여기있을거야. 그래서의 우리가하지 않고 데이터를 가져올 수 있도록 페이지를 새로 고침. 그리고 그것은의 우리는이 작업을 수행 할 비동기 방식으로 그 페이지를 고정하지 않습니다. 너무 오래 읽을하지 않은 경우 그 설명은 당신을 위해 너무 오래했다. 그래서 마지막으로, 크로스 사이트 스크립팅 공격. 우리는 Zamyla 이것을 보았다. 내 데이터베이스 사람이 이름이있는 경우, 이 스크립트 태그, 그리고 어떤 내 페이지의 일부 코드가 그 인쇄 사람들의 행의 이름, 또는 내가 가지고있는 중 삽입 일부 자바 스크립트 코드 페이지에이 이름, 어떤 HTML이 생성됩니다? 글쎄, 난 HTML 태그를 인쇄 할 수 있습니다. 나는 모든 태그를 인쇄 할 수 있습니다. 나는 인쇄 해요 부분에 도착 내 친구들과 함께. 나는 로렌을 인쇄 할 수 있습니다. 마일로을 인쇄 할 수 있습니다. 다음 데이터베이스에있는 내 이름 스크립트 게시물입니다 아첨 페이스 북의 상태를 표시합니다. 나는 페이지에이를 삽입하기 때문에 그것은 자바 스크립트처럼 보이기 때문에 때 이 페이지는 사용자에게 보내집니다, 그것은 자바 스크립트로 실행됩니다. 그리고 이것은 우리가 부릅니다 크로스 사이트 스크립팅 공격. 누군가의 악의적 인 내용을 넣습니다 에 해당 할 수 데이터베이스 몇 가지 추가 문자열이나 일부 자바 스크립트 문자열입니다. 그리고 그것은 밖으로 인쇄되는 경우 이 방식으로 페이지, 다음 무엇을 어떻게 나쁜 코드가 실행되는 것입니다 내가 의도하지 않은 것을 그것이 실행 얻을 수 있도록. 그리고 그 모든 교차 사이트의 스크립팅 공격입니다. 그리고 당신이 주변에 얻는 방법 Zamyla 말했듯이입니다. 당신은 물건을 포장 HTML 특수 문자. 이 HTML 특수 문자는 PHP입니다 이 종류를 방지 할 기능 당신에게 일어나는 것 당신은 악의가있는 경우 데이터베이스에있는 문자열입니다. 그렇지 있도록 단지를 탈출 HTML로 해석 얻을. 그것은 작은 브래킷을 대체 우리가 실체를 부르는과 함께. 그리고 우리는 강의에서이 이상했다. 그래서 너희들이해야한다고 생각 그에 대한 좋은 이해. 질문? 예. 청중 : 어떻게 것 [들리지? JOSEPH ONG : 다시 말해봐. 청중 : 어떻게 모니터 할 것이다 - JOSEPH ONG : 오른쪽. 그래서 당신은 말한다 무언가를해야 할 때 나는 내 이름으로, 유형을 등록합니다. 난 그냥 그 필드에 입력, 내 이름은 stript 포스트 아첨 페이스 북 상태 스크립트 닫기 태그입니다. 그리고 단지에 투입되는 데이터베이스, 내가 말할 수 없기 때문에 사람 세계에 이름이없는 남아있는 화살표 나와 그 단어 스크립트. 정말 이해가되지 않습니다. 그래서 난 그냥 있는지 확인해야합니다 I 나는 그것을 인쇄하기 전에 물건을 소독 페이지 아웃. 청중 : 그래서 HTML 특수 카드 스크립트 태그를 방지? JOSEPH ONG : 네. 그래서 스크립트 태그를 방지하지 않습니다. 그냥 있는지 확인한다 스크립트 태그는하지 않습니다 HTML 또는 해석 - 그래. 그것은 단지로서 오는 것을 실제로입니다. 괜찮아요. 그래서 퀴즈 검토했다. 쿨. [박수]