HANNAH BLUMBERG : 안녕하세요 여러분. 우리는 시작하는거야 단 몇 분 일찍 우리는 전체를 많이 갖고 있기 때문에 재료를 통해 얻을 수 있습니다. 나는 한나입니다. 나는 TF입니다. 마리아에 합류 할 예정이다 우리 단지 몇 분. 그녀는 바로 전에 절을 가르친다. 나는 섹션의 권리를 가르 칠 후, 그래서 우리는거야 시간 반에 유지합니다. 당신은 여기에 볼 수 있도록, 우리는 꽤있다 몇 가지 주제는 우리가 통과해야 그래서 우리는 빨리 좀 갈 것. 그러나 어떤 점에서 경우에 우리는 뭔가 말 너무 빨리 또는 당신이 이해하지 못하는, 질문 중단 주시기 바랍니다. 우리는이를 할 수 있도록하려면 여러분 모두에게 유용한 세션을 검토 가능한 한. 신난다. 그럼으로 바로 점프 할 수 일부 항목이 우리가 실제로 아주, 아주 짧게에 대한 적용 퀴즈 0 개 세션에서 퀴즈 0. 그래서 연결리스트로 시작. 그래서 당신이 몇 가지가 있는지 확인 연결리스트에 대한 기본 지식 과하고 편안 기본 작업의 일부. 그래서 그냥 검토 연결하기 목록 배열보다는 더 낫다 그들은 동적으로 성장할 수 있기 때문이다. 그래서 우리는 큰 장점이있다. 우리는 그들이 사용하는 봤어요 해시 테이블 때 정확히 얼마나 많은 몰라 상황이 우리가 원하는거야 우리의 데이터 구조에 삽입합니다. 불행하게도, 우리는 조각이 모든 메모리를 통해 연결리스트, 그래서 우리는 필요하지 않습니다 일정한 시각 액세스를 할 수 링크 된 목록의 모든 요소. 를 찾기 위해 특정 요소, 우리 모두를 반복해야 처음부터 방법. 그래서 명심 대부분 그 기본 작업 1의 오메가이다. 그래서 삽입은 1 걸릴 것입니다. 삭제 걸릴 N 우리 때문에 것입니다 목록에서 찾아 가야한다. 그리고 검색 N, 최악의 경우, 걸릴 수 있습니다. 우리는 같은 일을 할 수 없습니다 연결리스트에 이진 검색 때문에 우리는 할 수 없습니다 만 무작위로 중앙으로 이동합니다. 시원한. 신난다. 스택의 약간. 이것은, 다시, 퀴즈 0에 와서, 당신 때문에 그것은 슈퍼 편안해야한다. 그러나 스택을 위해, 우리는 당신에게 트레이의 스택을 기억합니다. 그리고 그 첫 번째가 될 것, 밖으로 지속됩니다. 그래서 우리는 물건을 쌓아 스택의 다음 우리는 무엇인가를 받으려고하는 경우 우리는 off--을 보여주고 호출하는 stack-- 우리는 최고를 나서야. 그리고 우리는 뭔가를 넣어하려는 경우 스택에, 우리는 그것을 밀어 호출합니다. 그래서 항상 성장 할 것 트레이의 스택과 같은 바닥에서. 신난다. 우리는 볼 스택 구현했습니다 모두 연결리스트와 배열에. 당신이 실행하는 경우 배열, 당신이 원하는 추적 할 수 있는지 확인하기 크기와 용량을 모두. 그래서 크기는 현재이 될 것입니다 스택에 일의 수, 용량 반면 총 수이다 일의 당신은 당신의 스택에 저장할 수 있습니다. 시원한. 매우 유사하게, 우리는 큐가 있습니다. 이 경우, 대신에 대해 생각 트레이의 스택은 줄 생각합니다. 이것은 처음에 처음으로 밝혀 것입니다. 당신이 일렬로 늘어서있어 경우에 따라서 가게에서 무엇인가, 우리는 희망을 사람이 처음에 그 라인은 먼저 도움이 될 것입니다. 대신 푸시 말과 우리는 스택처럼 팝업, 우리는 단지 대기열에서 말한다. 그리고 또, 당신이있는 경우 배열이 구현, 우리는 추적 할 필요 의뿐만 아니라 크기 용량뿐만 아니라, 헤드, 어느 우리의 큐의 앞 될 것입니다. 시원한. 그 중 하나에 대한 질문? 신난다. 오른쪽을 따라 이동. 확인, 해시 테이블. 그것으로 시작하는 위치를 여기 정말 흥미로운 얻을. 그래서 해시 테이블은 하나의 구현 연관 배열의. 그러니까 기본적으로 무슨 일 우리는이 입력을 가지고있다, 그리고 우리는 해시를 제공합니다 말한다 기능, 확인,이 곳에서이다 해시 테이블은 속한다. 간단한 해시 함수 그래서 우리가 말하는 보았으므로, 좋아, 우리가 데려 가고 싶다는 생각 우리의 해시 테이블에 문자열. 그리고 정말 간단한 아이디어 확인을 말할 수 있습니다, 그냥으로 정렬 할 수 단어의 첫 글자. 당신이 볼 수 있도록, 우리는 바나나을 우리는, 해쉬 함수를 통해 넣어 그리고는, 헤이 말한다 인덱스 1에 가야한다. 그래서 우리는 기본적으로 해시 생각할 수 다른 버킷의 무리 표. 그리고 그 버킷 각각 것입니다 연결리스트의 머리를 잡아. 그리고 그 연결리스트에서 위치를 우리가 할 수있는 것입니다 실제로 데이터의 다른 조각을 넣어. 그래서 다이빙 조금 더 해시 함수로, 여기에 예를 들어 나는 단지 우리가 말을 어디에 설명, 확인, 첫 번째 편지를 가지고 우리가있어 단어의 양동이로를 정렬하는 것. 그래서 아마도, 26 버킷있을거야, 알파벳의 각 문자 하나. 왜이 좋은 해시 함수가 아니다? 무슨 일이 비 이상적이다? 네. 청중 : 당신은거야 충돌이 있습니다. HANNAH BLUMBERG : 네, 정확히. 당신은 충돌을 할 겁니다. 그래서 한 가지입니다. 어떻게 우리가 할 수있는 그리고 우리는 얘기하자 잠깐의 충돌을 해결. 이 또 다른 문제점 특히 해시 함수 우리의 다른 점이다 버킷은 될거야 꽤 크게 다른 크기. 우리는 훨씬 거기 알고 X보다 시작하는 더 많은 단어, 그래서 우리는 매우 할거야 우리의 해시 테이블에 불균형 버킷. 시원한. 그래서 그래, 다시하자 충돌 지점. 충돌이 있다면 우리는 무엇을해야합니까? 우리는 몇 가지 다른 옵션이 있습니다. 그래서 하나, 우리가 노력하고 가정 우리의 해시 테이블에 베리를 넣어. 그리고 우리는 오, 우리가 원하는 참조 인덱스 1에 넣어, 하지만 바나나는 이미 살고있다. 우리 뭐 할까? 우리는 두 가지 옵션이 있습니다. 번호 하나 확인, 우리가 말할 수있는 것입니다, 인덱스 1의 여지가 없습니다, 하지만 그냥 통해 계속 찾아 보자 우리는 열려있는 다른 자리를 찾을 수있을 때까지. 그래서 우리는 확인을 말할 것이다 의이 자리 3에 넣어 보자. 즉, 하나의 옵션들 중 하나입니다. 즉 프로빙 선형라고. 그리고 두 번째 옵션은, 음, 확인을 말하고있다 그냥이 버킷의 각을 만들어 보자 연결리스트의 머리합니다. 그리고 그것은 더가 있다면 괜찮습니다 양동이에 한 가지 이상. 우리는 단지에가는거야 전면에 그것을 추가합니다. 그래서 여기에 확인을 볼 수 있습니다, 우리는 베리를 삽입 할 때, 우리 그냥 가지, 바나나했다 조금 위를 밀어 거기에 베리를 던졌다. 그리고 그것은 또한 완전히 괜찮습니다. 이는 별도의 체인이라고합니다. 당신은 가지 등이 생각할 수 연결리스트에 머리의 배열. 해시에 대한 질문 테이블, 해시 함수? 신난다. 나무와 시도합니다. 그래서 나무는 어떤 종류입니다 데이터 구조 하는 일종의있다 계층 구조 또는 어떤 종류의 당신의 다른 개체에 순위. 그리고이 슈퍼 될 것입니다 분명 우리는 예를 볼 때. 그리고 우리는 함께, 시도를 보았다 해시 테이블, pset5--에서 이는 다시 완전히 공정한 게임 이것은 또 다른 데이터로 quiz--에 대한 구조가 우리가 할 수있는 다른 일을 저장합니다. 사전의 경우, 우리는 단어의 무리를 저장. 그럼 어떤 나무를 살펴 보자. 그래서이 나무의 예입니다. 또한, 구조의 종류를 갖는다 계층 구조 즉, 당신은 그것을 볼 수있는 상단이 1 노드 , 2, 3 위 순위의 일종을 가지고 이는 아르 4,​​ 5, 6, 7 위 이는 8, 9 위이다. 그게 다야 그래서 우리는 뜻 나무, 수 당신은 그래서 그냥 종류 당신의 머리에서이 사진. 이제, 우리는 몇가 보다 전문화 된 나무. 따라서 하나의 예는 이진 트리이다. 이진 트리이다 다시, 단지가 될 것 일종의 데이터 구조 계층 만, 각 노드 대부분의 두 아이들을 가질 수 있습니다. 단어 진에서 오는 곳이다. 그래서 이것은 이진 트리의 예이다. 그래서 나무의 작은 범주입니다. 이제 더 구체적인하자 및 이진 trees-- 이진 검색에 대해 이야기 나무, 오히려. 그래서 여기에 생각하지 않습니다 전용 모든 노드는 대부분 두 아이들이 하지만 아이들의 모든 왼쪽 작은거야 그리고 아이들의 모든 바로 더 클 것입니다. 그래서 그냥 알 우리 이진 트리가있다 숫자 사이에 관계가 없다. 그러나 우리의 이진 검색에 나무, 우리는 참조 확인, 여기에 (44)이다. 및 (44)의 왼쪽에있는 모든 숫자는 오른쪽에 작은 모든 것을 더 큰 것입니다. 그리고 그 모든에서 보유 트리의 수준. 그래서 여기에, 이것보다 작은 (22)이 22보다 크다. 그리고 그 이진 검색 트리입니다. 왜 우리는 그것이라고 생각 하는가 이진 검색 트리? 어떤 알고리즘은 당신을 생각 나게 하는가? 청중 : 이진 검색. HANNAH BLUMBERG : 이진 검색. 당신이 찾고있는 경우 때문에 이 트리에서 특정 번호, 모든 점에서, 당신은 노크 수 있습니다 위대한 나무의 오프 반. 그리고 그것은 우리에게 뭔가를 줄 것 즉, 이진 검색처럼 많이 보인다. 질문? 좋아, 멋진. 좋아, 시도합니다. 모두가 좋아. 그래서이 예입니다 우리는 클래스의 무리를 보았다. 그리고 다시, 이것은 또 다른입니다 우리는 데이터를 저장할 수있는 방법. 딕셔너리의 경우에, 다시, 이것은 단지 문자열이 될 것입니다. 그럼 실제로 어떤이를 보자 약간 낮은 수준에서처럼 보인다. 그럼 살펴 보자 트라이의 한 노드에서. 그리고 우리는 확인이 일어나고, 참조 부울 및 노드하기 위해, 노드에 대한 포인터. 그리고 우리는 볼 부울 is_word이라고합니다. 그래서 본질적으로, 그건 해당 것 이 작은 삼각형에있는 당신이 여기 왔 경우, 말한다 당신은 완전한 단어를 발견했습니다. 우리는 알고있다 "튜링"이상 여기에 완전한 단어입니다, 반면 단지 T-U-R은 단어 아니다 우리는 그 작은 델타가 표시되지 않기 때문에. 그리고 그 작은 델타, 다시, 이 is_word에 해당하고, 이 부울 is_word. 그리고 우리는 아이들의 배열을 가지고있다. 당신은 각 레벨에 따라서 특정 노드가, 및 해당 노드 점 전체 알파벳의 배열입니다. 그래서 당신을 다시 볼 수 있습니다, 이 picture-- 내가 해요 다시 점프 유지 가서 forth-- 그 상단에 해당 배열 다른 한 무리가 있습니다 그것의 떨어져오고 노드. 당신이 원하는 경우는 26 또는 27이 여분의 문자를 포함합니다. 그리고 이것은 우리를 제공합니다 우리의 데이터를 저장하는 방법 에보고 할 수있는 방법 즉, 슈퍼 빠른 찾아 볼 수 있습니다. 트라이의 조회 시간은 무엇입니까? 청중 : [들림]. HANNAH BLUMBERG : 네. 이론적으로, 그것은 일정 시간이다. 그것은 단지의 크기가 될 것 당신이보고 싶은 단어. 우리는 엄청나게 많은 수를 추가하더라도 우리의 트라이에 더 많은 단어, 그것은 우리를 데려 않을거야 더 이상 확인하려면 주어진 단어 트라이에있는 경우. 그래서 정말 좋은 데요. 청중 : 당신을 했 그 배열을 초기화? 당신은 점 또는 두를 놓쳤다. 당신은 단지에 대해 얘기 할 수 초인가? HANNAH BLUMBERG : 물론, 절대적으로. 좋은 질문. 문제는 우리가했다 야 배열을 가지고 같은 노드 별을해야 할 것 바로, 단지 노드에 반대? 시원한. 그래서 여기에 우리가 무슨 말을하는지 우리의 배열은 단지이다 다른 배열에 대한 포인터가 될 것. 그래서 가지를 essentially-- 것 이 방법으로 연결리스트 같은 느낌 여기서이 아이들의 각 바로 다음 노드를 가리 킵니다. 그리고 방법이 우리 실제로 확인, 헤이, 결정, 우리는 전체를 통해 반복했습니다 단어를 사전에서이 단어는, 우리는 단지이 is_word을 확인합니다. 좋은 질문입니다. 네. 청중 : OK. 그래서 트라이에 대한 런타임은 무엇입니까? HANNAH BLUMBERG : 물론. 대한 트라이의 런타임 그래서 검색은 일정 시간이 될 것입니다. 그래서 그것은 단지가 될 것 단어의 문자의 번호입니다. 그것은에 의존 아니다 사전의 크기 또는 데이터 구조의 크기. 그래서 여기에 약간 간단한 예입니다. 이 경우, 당신은 볼 수 있습니다 단어 박쥐는 사전에 당신은 줌을 가지고 있지만, 동물원 같은이 없습니다. 어떻게 우리는 동물원을 만들 것? 우리는 동물원을하는 추가하려면 어떻게 우리의 사전, 우리의 트라이에? 네. 청중 : is_word 확인 사실 [들림]에 대해. HANNAH BLUMBERG : 좋은. 그래서 우리는 Z-O-O를 말하고 싶지만, 그리고, 우리는 좋겠 뿐만 아니라 그 상자를 확인합니다. 큰. 의 아주 간단히 비교해 보겠습니다 해시 테이블 대하려고합니다. 시도는 정말 대단하다 때문에, 우리가 말했듯이, 그들은 일정 시간 조회를 제공합니다. 하지만 큰 단점 그들은 엄청난 것입니다. 당신은 감각을 얻을 수 있습니다, 심지어 그것을보고로, 그것은 걸릴 거예요 것을 메모리의 엄청난 금액. 그래서 그들은 많이있을거야 해시 테이블보다 더 큰, 하지만 그들은 줄거야 우리 훨씬 빠른 조회 시간. 그래서 어떤 종류의 당신의 트레이드 오프, 당신이 걱정 무엇을, 그것은 속도 나 메모리의 여부. 그 중 하나에 대한 질문, C 데이터 구조의 모든. 아름다운. 그래. 우리는 조금로 이동거야 마리아와 웹 개발의 비트. 마리아 ZLATKOVA : 사랑스러운. 그래. HANNAH BLUMBERG : 당신은 내 노트북​​을 사용할 수 있습니다. 마리아 ZLATKOVA : 반갑습니다. 그래 좋아. 우리는 웹에 지금 이동 개발, 우리는 조금 이야기 변경 권한에 대한 파일 및 디렉토리 그래서 그들이 액세스 할 수 있습니다 다른 사용자에게, 세계, 그리고되도록하는 우리는 어떻게 볼 수 있습니다 기본적으로 우리는 그들을 전달할 수 우리는 웹 사이트와 같은 일을 개발할 때 것을 우리는 주로 해왔습니다. 그래서 우리는 chmod 명령을 보았다, 이는 기본적으로 변경 모드입니다. 즉, 리눅스 명령이고 이 액세스 권한을 변경 파일 시스템 개체. 및 파일 시스템의 목적은 단지 디렉토리, 파일, 아무것도 당신이 할 수있는 의 권한을 변경합니다. 그래서 파일 사용 권한을 확인합니다, 우리는 명령 LS, 목록, -​​l을 입력합니다. 그리고 우리는 입력 할 때, 우리 일반적으로 일부 권한을 참조하십시오 즉,이 같은 종류의보고 디렉토리 이름 앞에. 그래서 D는 디렉토리를 가리 킵니다. 그리고 우리는 세 가지가 화음 기본적으로 그 하나의 권한을 참조하십시오 사용자, 그룹, 또는 세계. 권한의 종류가 우리가 할 수있는 사람들이 세 그룹이 대한 W 읽기 중 R은있다 쓰기 및 실행을위한 X. 그리고 우리에 대한 그를 가질 수 있습니다 그룹과 세계뿐만 아니라. 까다로운 점은 때때로 우리는 chmod 명령을 입력 할 때, 우리는 몇 가지 숫자를 입력합니다 즉, 3 비트 구성되었다. 그래서 우리는 같이 할 수 777 그 기본적 부가가치 지칭 이러한 화음의 각 R 4를 참조 때문에, W는 것 2 참조, x는 1 참조 것, 그래서, 각 숫자를 추가 할 때 누적 내려 와서 0에서 7 사이의 누적 값. 그래서 우리는 0을 가질 수 전혀 권한을. 그리고 기본적으로 우리에게 줄 것이다 중 사용자의 권한, 기 또는 세계. 지금까지이에 대한 질문? 청중 : 읽기, 상기 4입니까? 마리아 ZLATKOVA : 예. 청중 : [들림]. HANNAH BLUMBERG : 아, 그래. 청중 : 그리고 모든 사람을 추가하여 다른 사람들이 당신의 수를 나타냅니다. 마리아 ZLATKOVA : 네. 네. 이들은 좋은 질문입니다. 아름다운. 다음으로, 우리는 HTML과에 뛰어 웹 개발에 대한 좀 더. 그래서 HTML은 의미 하이퍼 텍스트 마크 업 언어. 그리고 그 마크 업 표준은 언어 그것은 웹 페이지를 만드는 데 사용되는 것을. 그것은 마크 업 언어라고 실제로 컴파일 아니기 때문에. 이 방법을 몇 가지 코드가해야 말하지 않는다 실행 또는 그런 아무것도 될 수있다. 그것은 단지 묘사와 어떻게 웹 설명 페이지 설정해야합니다 그 요소들 각각과 그들은 사용자에게보고하는 방법. HTML 태그의 일부 그 우리 갔다는 다음과 같다. 우리의 HTML 문서의 모든 DOCTYPE HTML을 시작했다. 그런 다음 우리는 항상 HTML 태그가 있습니다. 우리는 머리와 몸을 가지고있다. 그리고 HTML을 가지고하는 것이 중요합니다 중첩 된 구조의 종류 그것은 매우 분명하기 때문이다. 그리고 그것은 매우 분명해진다 때를 실제로 가까운 태그를 열고해야합니다. 그리고 우리는 항상 닫을 필요 우리가 연 태그. 그리고 여기에 우리는 유형의 일부가 우리가 갖고 싶어 앞서 가지. 그래서 우리가, 예를 들어, CS50의 제목입니다. 그리고 우리가 실제로 스타일 시트를 링크 할 수있다 그것은 우리가 우리의 웹 사이트를 스타일 방법을 정의합니다. 즉, CSS입니다. 우리는 그것을 통해 갈거야 뿐만 아니라 슬라이드의 다음 커플. 신체 내에서, 우리는 설정 일부 클래스와 ID를. 그리고 알리미로, 다시, ID는 고유의 클래스입니다 여러 항목에 할당 할 수 있습니다. 그리고는 것을 의미 우리는 클래스와 ID를 사용할 수 있습니다 그래서 다른 structures-- 내 용 예를 들어, CSS 파일이나 스타일 내 특정 요소를 참조 할 sheets-- 기본적으로 우리가 스타일을하고 싶은 말 또는 일부 요소를 디자인 어떤 특별한 방법으로. 그리고 우리는 그들에게 참조 자신의 ID와 클래스. 그리고 우리는 또한 참조 할 수 있습니다 뿐만 아니라 태그에 의해 다른 것, 하지만 ID와 클래스는 단지 우리에게 줄 다양성과 특히 우리 를 참조 할 수 있습니다. 그래서 그냥 예. 우리는 내 다시 할 수 있습니다 CSS 파일 어디 몇 가지를 정의 할 style-- 색상, 글꼴 그래서, 물건 우리가 할 수있는 that-- 같은 몸의 스타일을 정의합니다. 그래서 그것을 정의 할 몸 전체 태그. 그러나 우리는 또한 정의 할 수 있습니다 #title의 스타일. 그리고 다시, 해시 태그는를 의미한다 우리 ID와 점은 우리의 클래스를 의미한다. 그리고 .INFO를 들어, 또한 일부 속성을 설정할 수 있습니다. 우리가 갈 때 그리고 다시, 우리는했다 우리의 클래스는 정보와 우리의 ID 제목했다. 그리고 우리는 우리가 참조 볼 수 있습니다 그들에게 #title와 .INFO에 의해. 청중 : 당신은 말할 것 해시 태그 [? 저를 채택? ?] 마리아 ZLATKOVA : 죄송합니다? 청중 : 당신은 말할 것 해시 태그 [? 저를 채택? ?] 마리아 ZLATKOVA : 해시 태그 ID, 그래서 #title을 의미 어떤 요소를 의미한다 제목이라는 ID를 가지고 있습니다. 그리고 그 점은 클래스를 의미한다. 그래서 .INFO이 요소를 의미한다 그것은 클래스 정보를 가지고 있기 때문이다. 예. 청중 : 왜 당신을 HTML로 구별? 왜 어떤 일이 말을합니까 ID와 어떤 일이 클래스입니까? 마리아 ZLATKOVA : 그건 너와 단지이야 HANNAH BLUMBERG는 : 질문을 반복합니다. 마리아 ZLATKOVA : 아, 죄송합니다. 왜 우리는 특정 요소를 구별 할 ID와 클래스와 같은 다른 요소로? 이 때문에 그건 단지 정말 자주 디자인 선택. 그것은 당신에게 많이 제공 존재의 다양성 나는이 특정 항목을 원하는 말할 수 그들이 원하기 때문에이 ID를 가질 많은 일을 할 수 그것은, 내가 만 스타일을 정의 할 특정 스타일 해당 항목에 대한 또는 색상 뭐든간에. 그리고 그 방법은 그렇게하기 그냥에게 ID를주고있다. 그리고 내가 원하는 경우가합니다 다른 항목의 몇 데, 그 대신 가는 their-- 설정 대신하여 일을 태그 태그 때문에 전체 태그 셀을 설정 모든 시간 동안 해당 태그가 사용됩니다, 당신은 여러 항목에 클래스를 설정할 수 있습니다. 그리고 바로 그 클래스에 액세스하고 말 나는이 클래스 그런 식으로 스타일을 원한다. 그리고 또, 클래스는 할 수 여러 다른 항목 수 그리고 ID는 고유해야합니다. 좋은 질문. 다른 질문? 확인을, 끝내. 다시 말하지만,이 방법이 선택기입니다 해시 태그와 CSS에서 참조, 점과, 또는 아무것도없이 일부 태그의 스타일을 지정, 몸있다. 그리고 여기에 우리가 일반적으로이 이 작업을 수행하는 방법의 구문. 일부 최선을 반복합니다 HTML과 CSS에 대한 사례 우리는에, 다시, 주변의 모든 필요 우리가 열고 HTML 태그. 그리고 우리가 당신을 추천 무엇 최종 프로젝트 수행 뿐만 아니라 CS50 금융에 관해서는, 확인하는 것입니다 당신의 HTML의 모든 유효성을 검사해야합니다. 그리고 그 W3 검사기로 이루어집니다. 그리고 우리가했던 다음 무엇을 우리는 일을하는 것이 좋습니다 무엇 그래서, 스타일을 분리한다 마크 업 HTML에서 CSS. 방법에 관한 그래서 아무것도 페이지는 시각적으로 보이는 것입니다 어떻게 수정 될 것 CSS 문서로 가야한다. 그리고 마크 업이 어떻게 일을 말 서로에 대해 아르는 HTML이고 그 안에 가야한다 당신의 HTML 문서의. 질문? MHM. 청중 : 정확히 무엇을 것입니다 페이지 유효성 검사에 우리가 유효성을 검사 할 때 [들림] 생성 HTML? 마리아 ZLATKOVA : 그래서 당신을 생각 뭐 .... 그래서 정확히 것입니다 페이지 유효성 검사에 왜 우리가 그렇게해야합니까? 기본적으로, 우리는 그렇게 할 필요가 때문에 많은 시간, 브라우저, 당신은 태그를 닫지 않는 경우 또는 그런 일, 브라우저는 여전히에 가고 페이지를 렌더링하고 여전히 작동 할 수 있습니다, 하지만 가장 좋은 방법은 있는지 확인의 당신은, 다시, 모든 태그를 닫은 모든 요소가 있음 그들이해야하는 방법, 그것은 기본적으로 야한다는 사전 설정됩니다 규칙. 그것은, 다시, 그냥 점은 당신이해야 일을 할 학습 할, 갖는 반대로 그런 sloppier 코드와 물건. 네. 아, 죄송합니다. 나는 당신이 당신의 손을 올리는 생각했다. 청중 : 아니, 난 그냥 [들리지이었다. 마리아 ZLATKOVA : OK. 청중 : 감사합니다. 마리아 ZLATKOVA : 물론, 감사합니다. 그래서 다시, 방법으로 진행 정보 전송 통신 모델 정보를 전송합니다. TCP / IP. TCP는 전송을 의미합니다 제어 프로토콜 및 IP 인터넷 프로토콜을 말한다. 그리고 그것은 단지를 말한다 그런데 데이터가 전달된다. 우리는 일부 데이터가있는 경우 그 그래서 너와 전달해야 당신은 특정 서버에 대한 요청을합니다. 예를 들면, 우리 cs50.net에 액세스하려고, 우리는 요청을 CS50 서버와 우리 우리가 얻고 싶은 것을 볼 수 이러한 종류의 정보. 다음이 프로토콜에 기초 이 정보가 전달되는 방법에 대한, 서버는 정보를 제공합니다 다시 우리에게, 클라이언트. 그리고 우리가 볼 수있어 페이지 정보 다음을 사용합니다. 그럼 하이퍼 텍스트 전송 프로토콜 또 다른 프로토콜이나 설정입니다 규칙의 그 방법을 정의 웹 브라우저와 웹 서버 의사 소통을해야한다. 그리고이 모든 퍼팅 함께, HTTP, 다시, 다만이 하이퍼 텍스트 (hyper text)가 정의하는 방법을 정의 우리가 작업했던 HTML로, 그것이 당신에게 전달하는 방법과 어떻게 전달되는 데이터 당신에게 가져옵니다. 너희들이 기억한다면 그게, 그 이유는 클래스에서, 우리는 요청을 많이했다 우리는 구문을 많이했다 우리가있어 이러한 요청에 대한 지금 이상 갈. 그래서 다시, 우리는 때를 보내 서버에 요청, 우리는 몇 가지를 정의해야합니다. 그래서 우리는 유형을 찾을 필요 요청 우리가 설정하는 그. 그리고 또, 우리가, 예를 들면, GET 메소드의 일종 우리는 우리의 요청이 있는지 확인하십시오. 그리고 HTTP / 1.1 단지이다 우리가 현재 사용하고있는 프로토콜입니다. 대부분의 시간, 즉거야 우리가 사용하고있는 프로토콜. 당신은 문제가 있다면 퀴즈에 그런. 즉, 규칙의 것을 우리는 지금까지 가지고있다. 백 슬래시는 어떤 종류를 말한다 것들을 우리가 요청하고 있습니다. 그 후, 우리는이 호스트, 예를 들면, 경우, 우리는 google.com로 이동하려는. 그래서 이것은 호스트에 대한 값이다. 이 요청의 유형 그가 전송 될 수있다. 응답의 종류와 그 수 전송, 다시,이 프로토콜에 기초 할 수, 다시이며, HTTP / 1.1. 그래서 HTTP 버전을 다시합니다. 200 OK는 상태 코드이다. 그리고 확인을 그냥 문구 그 상태 코드를 기반으로. 그리고 컨텐츠 유형 유형을 말한다 즉, 즉 당신에게 반환됩니다 당신이받는 그 웹 페이지에 대한 귀하의 브라우저가 나중에 렌더링 할 수 있습니다. 그리고 그 텍스트 / HTML입니다. 청중 : 1.1이 무엇을 의미합니까? 마리아 ZLATKOVA : 그건 그냥있어 버전 동행입니다 오, 1.1은 무엇을 의미 하는가? 그건 그냥 버전, HTTP입니다 우리가 사용하는 프로토콜의 버전입니다. 좋은 질문입니다. 다른 질문? 청중 : 당신은 요약 할 수 콘텐츠 형식 진짜 빨리? 마리아 ZLATKOVA : 있도록 무엇 서버입니다. 무엇 information--의 유형 콘텐츠 형식은 질문했다. 그래서 유형이었다 당신이 돌아 오기 정보 서버 유형에서 데이터 브라우저가 다음 수 당신이 사용하고 있는지를 렌더링합니다. 관객 : 어떤이인가요 프로토콜은 어떻게 말하고 있는가? 마리아 ZLATKOVA : 죄송합니다? 청중 : 프로토콜이 무슨 말인가요? 마리아 ZLATKOVA : protocol-- 청중 : 납치범 콘텐츠 형식이거나 뭐 ... 마리아 ZLATKOVA : 프로토콜을 기반으로합니다 on--을 알려주는 프로토콜은 무엇인가? 그건 그냥 방법 이 정보가 당신에게 전달했다 기반 프로토콜의 어떤 종류에 이 정보를했습니다 당신에게 다시 전달했다. 그 말이 정렬합니까? HANNAH BLUMBERG : 당신 프로토콜 생각할 수 그럼하지 머 나는 교수를 생각 마란 그것을 바와 같은 종류의 할까 .. 같은 클래스에서이 같은거야 인간의 핸드 쉐이크에 해당. 같은, 이봐, 내가 요청 해요, 말과 나는 버전 1.1의 HTTP를 처리하는 방법을 알고있다. 그리고 서버는 말한다 확인, 오, 난 - 둘 다 존재한다. 또한 HTTP / 1.1에 대처하는 방법을 알고있다. 그리고 난 줄거야 당신은 어떤 내용을 백업합니다. 이 경우 일어나고 텍스트를 입력 / HTML이 될 수 있습니다. 그래서 그것은 종류의 단지 방법 그들 중 communicating--에 대한 마리아 ZLATKOVA : 그것은 단지 당신이있어 것을 확인 모두 동일한 따라 프로토콜과 그 모두 클라이언트와 server-- 그래서 브라우저 및 server-- 종류의 당신이있어 알고 에 대해 이야기하고있다 데이터 전달의 규칙. 청중 : 그래서 컨텐츠 유형 part-- 콘텐츠 형식의 텍스트 / html-- 그건 동일한 메시지의 별도의 부분? 아니면 이제 200을 가정 해 봅시다의 일부입니다? (200)는 그들에게 그 또는 is--을 말해 주는가 마리아 ZLATKOVA : (200)은 모두 확인을 갔다 말한다. 그리고 콘텐츠 유형의 일종이다 동일한 메시지의 별도의 부분, 그리고 일을 말하는 것을 나는 반환 텍스트 / HTML의 유형이 있습니다. 그것은 단지 더 많은 정보를 제공합니다. 추가 아무것도? 그래. 이에 대한 다른 질문? 신난다. 그래서 다른 HTTP 상태 그 우리는 200 OK 이외에 얻을 수 우리는 아마 본 적이 것들 가능한 많이 403, 404이다. 그래서 (404), 당신이하려고 한 경우 존재하지 않는 액세스 뭔가. 예를 들면, 그래서 CS50 금융의 Pset, 당신은 quote.html 렌더링 된 경우 당신은 그 파일을하지 않았다, 대신 당신은, quote.php했다 404 초래 찾을 수 없음 파일이 존재하지 않을 수도 있기 때문이다. (403)를 들어 것을 금지 권한을 의미한다. 일부 파일에 의해하지 읽을 수 있다면 세계는, 당신은 (403)는 반환받을 수 있습니다. 일부 사람들이 수도 (301), 영구 이동을이거나 먹어; 302, 실측치; 304 수정; 400 잘못된 요청; 과에 대한 다음 내부 서버 오류 500, 503, 서비스를 사용할 수 없음. 네. 청중 : 윌 우리는 예상 모든 상태를 기억? 마리아 ZLATKOVA : 나는 것 그들을 당신의 컨닝 페이퍼에. [웃음] 청중 : 우리가 할 것으로 예상된다 각 트리거 알아? 마리아 ZLATKOVA : 그들은이 있습니까? HANNAH BLUMBERG : 우리가했습니다 것들에 대한 그래서 질문을 into-- 실행 전 ... - 마리아 ZLATKOVA : 그들은이 예상된다 이러한 상태의 것을 하나 하나 알아 코드에 의해 트리거 될 수 있는가? 우리가 사용했던 것들에 대한 그래서 그리고 우연히, 나는 예, 말할 것입니다. 그래서 우리는 확실히 200 봤어요 확인을하여 pset에를 강의. 우리는 404 (403)을 보았다. 다른 사람을 위해? HANNAH BLUMBERG : 나는 것 (500)는 공정한 게임을 보인다 말한다. 마리아 ZLATKOVA : 500, 그래. HANNAH BLUMBERG : 네. 그냥 일반적인 감각을 가지고 그 원인이 무엇인지. 또한 단지로이 이름, 당신은 할 수 종류의 같은 추측 등을 무엇에 실제로 발생했습니다. 예를 들어, 아마도, 이동 영구적 파일이 영구적으로 이동되었습니다. 청중 :하지만 이전에 시험, 정도가 있었다 당신은 어떻게 대답 우리에게 기대합니까? HANNAH BLUMBERG : 그 제로 포인트의 가치가 있었다. 주전자 (418)에 대한 질문 기술적으로 HTTP 상태입니다 하지만 제로 포인트의 가치가 있었다. 물론, 당신은 아니에요 그들을 알고 기대했다. 청중 : 그것은 진짜인가? HANNAH BLUMBERG : 그것은 진짜 하나는,하지만 아무것도 의미하지 않는다. 그냥 농담이야. 인터넷의 사람들이 재미 있습니다. 마리아 ZLATKOVA : 위대한 질문들. 다른 질문? 청중 : 내부 서버 오류가 무엇입니까? 마리아 ZLATKOVA : 내부 서버 오류 단지 당신이되었다는 것을 의미한다 통신 할 수 없습니다 어떤 이유로 서버와. 그래서 반드시이 아니다 할 무언가 같은 클라이언트 또는 뭔가. 나는 특정 예를 모르겠어요 우리가 설명을 통해 갔어요 것을, 하지만 그래. HANNAH BLUMBERG : 물론. 그래서 예를 들어, 같은하자 당신이 매시업 작업 한 말 및 구글 서버가 일부 내려 갔다 이유, 정전,의 말을하자. 즉, 내부 서버 것 오류 또는 어떤 종류의 당신이 좋아 동행입니다 응답을 얻을 것이다. 마리아 ZLATKOVA : 네. 당신이있을 때 그것은 단지 통신 할 수 없습니다 어떤 이유로 인해위한 서버와 그것은 추락 또는 다른 이유. 그래서 PHP로 점프. PHP, HTML과는 달리,이다 프로그래밍 언어. 그리고 우리는 그것 때문에 그것을 사용하기 시작 웹 개발에 매우​​ 유용합니다. 우리는 먼저 CS50 금융에 사용. 그리고 그것은 기본적으로 우리가 가지고하는 데 도움이 함께이 마크 업, 디자인, 우리는 실제로 정보를 사용하는 방법 웹 페이지에 일을 표시합니다. PHP 그래서 자체는 PHP를 의미한다 하이퍼 텍스트 전 처리기, 그래서 그것은 그 자체로 재귀 backnorym입니다. 그리고 PHP 태그를 열고 우리 왼쪽 물음표와 오른쪽 화살표 그리고 PHP. 그래서 우리는 이미 한 무리를 보았다. 이제, 우리는 그냥 갈거야 그것에 대해 기본적인 몇 가지. PHP로 변수 그래서 이름은 달러 기호로 시작합니다. 우리는 다시 지정하지 변수는 더 이상 입력하십시오. 우리는 C와 함께했던 것처럼, 우리는 그렇게 할 필요가 없습니다. 우리는 다른 한 무리의 작업을 수행 할 수 있습니다 변수 물건. 우리는 그들을 함께 넣을 수 있습니다 를 연결하여 도트 표기법으로하는 우리는 다시 C로 할 수 없었다. 다시 말하지만, 우리는 좀 더 다양한 기능을 가지고 변수의 관점에서 PHP로. 다시, 우리는 주 기능이 없다. 그리고 PHP는 해석 컴파일 반대로, 그래서 그냥 우리가 C 파일을 했는가 방법, 우리는 PHP를 위해 그렇게 할 필요가 없습니다. 그러나 오히려 방법 언어 그 그 자체에 의해 실행되어, 그것을 해석된다. 그리고 느슨한 타입 단지 우리 것을 의미한다 변수를 지정할 필요가 없습니다 타입과 가변 형식 런타임에서 이해된다. 청중 :하지만 당신을했다 점 연결에 의해 의미? 마리아 ZLATKOVA : 물론. 우리는 together-- 물건을 넣을 때 그래서 만약 우리가 어떤 변수를 가지고 그 3의 값을 가지고 있었고, 우리는 다른 있었다 문자열의 값을 가지고 변수 우리는 함께 변수를 넣을 수 그들 사이에 점을 넣어 그들을 연접. 아니면 우리를 만들 수 있습니다 변수라는 이름 에 의해 함께 넣어 두 개의 문자열을 연결. 그래서 만약 우리가 두 번에 문자열을했다 따옴표는 그리고 우리는, 뒤에 점을 넣어 그리고 우리는, 다른 문자열을했다 모두 문자열을 만들 것입니다. 청중 : OK. 마리아 라트비아 : 그것은 분명했다? 청중 : 네. 마리아 ZLATKOVA : OK. 네. 청중 : 당신이 말하는 해석보다는 컴파일, 당신이 당신에 대해 얘기하지 않는 때와 같이 특정 될 필요 그것은 C 대 PHP로 온다? 마리아 ZLATKOVA : 우리가 말할 컴파일에 반대 해석, 우리는 무엇을 의미합니까? 그래서 우리가 필요로하지 않는 것을 의미합니다 실행 파일은 PHP를 실행합니다. 그것은 간다가 실행을 의미합니다. 말이 돼? 조금 더. HANNAH BLUMBERG : 그래서 당신 통역 생각할 수 책임을 다른 프로그램으로 PHP를 통해 선으로 줄 예정위한 반대로 실제로 그것을 실행 진까지 모두 컴파일합니다. 실제로 아무것도 의미하지 않는다 우리가해야하는 방법에 대한 구체적인. 우리는 여전히 정확해야하고, 그렇지 당신의 세미콜론을 잊지 확인 당신은, 당신의 달러 기호가 그 같은 것들. 좋은 질문. 마리아 ZLATKOVA : 네. 그래서 라인 라인으로, 같은 C 파일과 달리, 우리는 전체의 마지막을해야 우리는 실제로 그것을 실행하기 전에. 즉, 가장 큰 차이점이다. 그러나 다시, 우리는 할 수 없습니다 정말 덜 구체적으로. 그래서 PHP에서 배열은 대표 실제로 정렬 된지도. 키 배열 준 값 그래서. 두 가지 방법을 선언합니다 배열이 구문에 기초하여, 우리는 더 명시 될 수 있습니다 말에 우리는 배열을 가지고 우리는 매핑이 키 1을 값 2를 매핑이 값 1, 키 2. 아니면 우리는 단지 배열을 만들 수 있습니다 그 값 자체를 포함 다음 키는 방식으로 이해했다. 이에 대한 질문? 청중 : 어떤 것 키 두 번째 예에? 0, 1, 2, 3? 마리아 ZLATKOVA는 예를 들어, 그것은 단지 이의 키는 필요하지 않습니다 차이를 만들어라. 그들은 얼마나 당신이 할 수있는 정의 그 안에 값을 사용합니다. 그래서 만약 우리가 foreach는 있었다 PHP에서 루프하는 것 우리는 모든 값을 통과 할 수 있도록, 우리는 모든 값을 통해 갈 수 있습니다, 경우에도 우리는 있었다 또는 정의하지 않았다 사이트 내의 특정 키 이전 구문. 그래서 심지어는 이런 종류의와 배열의, 우리는 여전히 수 foreach 루프를 즉, 각각의 통과 배열의 키 값. foreach는 구문 그래서 루프는, 우리는 배열을 시작합니다. 이 $에 도착 변수는 우리의 실제 배열입니다 우리는 이전에 정의 된 슬라이드 말 그대로 간다 값 각 값을 통해, 여부에 관계없이의 우리는 키를 가지고 여부. 그리고 우리가 뭔가를 할 수있는 foreach 루프의 내부 값. 그래서 다시, 경우를 우리는 배열을했다 이 여기에 created-- 같은 그래서 우리는 foo에와 값의 키가 바, 바즈의 키와 qux--의 값 우리는 foreach 루프를 가질 수 키 값으로 배열을 통해 진행 다음 일을 할 키 및 / 또는 값. 그러나 우리는 반드시 항상하지 않습니다 foreach는 그 루프가 있어야 값으로 키 맵과 같은 배열을 통해 이동합니다. 우리는 통과 할 수 있습니다 값으로 Foreach 루프 배열입니다. HANNAH BLUMBERG : 그리고 내 생각 귀하의 질문은, 이러시면 무엇 암시 적 지수는 무엇입니까? 청중 : 일종의. 마리아 ZLATKOVA : 오. HANNAH BLUMBERG : 그래, 그래. 그러니까 기본적으로, 당신은 지정하지 않는 경우 키, 그것은 01이 될 것. 마리아 ZLATKOVA : 네. 그냥 C와 마찬가지로 제로의 당신이 키를 지정하지 않은 경우 인덱스. 청중 : 죄송합니다. 당신이 말하는 시도 할 수 조금 더 크게? 나는 약간의 데 문제가 모든 것을 듣고. 마리아 ZLATKOVA : 나는 너무 미안 해요. 그래 물론. 그래서 당신은 나에게 원하는 게 다시 통해 이동? 또는이 항아리입니다 청중 : 이전 slide-- 경우에 따라서 당신은 단지 하나의 초 다시 갈 수있다. 마리아 ZLATKOVA : 물론, 죄송합니다. 청중 : 그래서 두 번째 여기에 배열하지 않습니다 키 값을 가질 것, 일종의 [? 원인. ?] 마리아 ZLATKOVA : 오른쪽, 오른쪽. 청중 : 그래서 어떻게 작동합니까 당신이 말할 때 모든 또는 없음을합니다. 나에게, 그 모양 에이 [? foo는?] 이미. 마리아 ZLATKOVA : 그래, 그래. 그래서 또한, 이것은이다 이런 의미에서 주문한지도 이 이해됩니다, 예를 들어, 인덱스 여기에 0, 1, 2, 3과 같이 이해 될 수있다. 다시 말하지만, 그 사람들을 보내고 인덱스는 우리의 것과 동일 의 값에 매핑 키를 가진. 그렇다면 우리의 키는 0-- 미안했다. HANNAH BLUMBERG : 아니, 이 여기에 분필입니다. 사실은 정말 좋은 데요. 마리아 ZLATKOVA : 좋아요. 그래. 그래서 다시, $에 도착 0이 될 것이다 값 1의 키. 0의 값은 1 열쇠가 될 것입니다. 청중 : 미안 해요. 그것은 눈에 보이지 않는입니다. HANNAH BLUMBERG : 신경 끄시 좋아. 분필 나쁜 생각이었다. 나는 그것을 다시 받아. 당신은 키 생각할 수 값 1과 0 맵 등. 마리아 ZLATKOVA : 네. 그래서이 0이고, 이것은 1, 2, 3이다. 다음은 키가 될 수 있습니다. 당신은 그래 as-- 그들을 생각할 수 있습니다. 그래서 그 대신 데 명시 적으로 키, 그들이있어 종류의 것으로 이해 인덱스는 0에서 시작. 분필 도움이되지 않았다. 네. 청중 : foreach 루프를 들어, 우리가 값을 확인하고자한다면, 그것은 0 그냥 자동으로 인덱스 것? 마리아 ZLATKOVA : 네. 그것은 각 값을 통해 갈 것입니다. 청중 : [들리지] 등 0 또는 그냥 0을 할 것인가? 마리아 ZLATKOVA : 당신은 것 다음, 달러 기호로 대답 일부 변수 이름, 값. 청중 : [들림]. 마리아 ZLATKOVA : 죄송합니다? 청중 : 미안 해요, 난 단지 기억하려고. 당신은 당신이 그것을 할 수있다 할 것입니다 어떻게 자동 인덱싱은 0이다? 마리아 ZLATKOVA : 그래서 당신은 어떻게 할 것 당신은 특정 키 이름을 가지고 있지 않은 경우? 청중 : 네. 마리아 ZLATKOVA : 당신은 그냥 define-- 것 그냥 몇 가지 이름으로 자신을 말한다. 그래서 당신의 Pset에, 너희들은 수도 $ 행으로 foreach는 $ 행을 기억하고, 우리는 우리 자신에게 말하는이 $ 행을 생성 우리는 $ 행으로 행을 가고 싶어. 우리는하지 않았다하더라도 행이 규정이 명시 적으로 $, 우리는 그냥 가서 수 이것은 우리의 열쇠가 될 수 있다고 단지 각 값을 통해 이동합니다. 청중 : 그래서 값이 새로운 변수가 우리는 [들림] 저장하기 위해 만드는? 마리아 ZLATKOVA : 그래서 그것은 아니다 본질적으로 새로운 변수. 그것은를 나타내는 변수이다 이들 각각에 배열의 내부. HANNAH BLUMBERG : 그것은 새로운 변수 이름. 마리아 ZLATKOVA : 네, 그것은 새로운 변수 이름이다, 하지만 그래 inherently-- 아니에요. 그냥 새로운 변수이다 당신은 그렇게 할 수있다. 그래서 얼마나 우리가했던 할 $ $ 행, 행으로 행 새로운 변수 이름을였습니다 우리 우리의 foreach 루프에서 만들 수 있습니다. 그것은 그 전에 전세에 존재하지 않습니다. 청중 : 당신은 통과 할 수 이 예제를 사용하여 각 논리? 마리아 ZLATKOVA : MHM. 아, 죄송합니다. 다음은 예입니다. 확실한. 이처럼 각 그렇게 array-- 즉,이 배열로 이동을 의미합니다 그 value-- 키로거야 이 배열을 통해 이동합니다 먼저 가서 foo를 얻을 키 foo는 그 값 바. 그리고 두 번째에 루프의 반복, 그것을 통해 이동 걸릴 거예요 키 바즈와 값 qux. 그리고 당신은 뭔가를 할 수있는 그들 중 어느 하나 또는 둘 다. 청중 : 그래서 뒤에 아이디어 값에 키 포인트를 가지고, 당신은 액세스 할 무엇을 끝낼 수 있습니까? 마리아 ZLATKOVA : 아이디어 무엇 의 핵심 포인팅이 가치를 가지는? 그것은 또 다른 규칙, 서로의 배열을 통해가는 방법 및 수있는 것은 중 하나에 액세스 할 수 키 또는 값 또는 둘 모두 그들을 사용합니다. 청중 :의 역할을 무엇인가 foreach 문에서 실행 주문? 우리가 추가한다면 그래서 배열에 요소 후, 그 첫 번째 것과 것 foreach는 배열에서 호출, 또는 나중에 것입니까? 마리아 ZLATKOVA : 그래서 무엇이다 foreach는 그 순서 루프에서 배열을 통해 간다? 그것은 먼저 통과 마지막 요소에 요소, 마지막으로 추가 된 요소. 나중에에 요소를 추가하는 경우, 그들은 것 첫 번째 요소는 것이다 accessed-- 수 첫 번째로 액세스 할 수 배열의 요소, 다음은 각 통해 갈 것 님 지시의 종류와 요소 주문하지만, 방법이 아니다 그 그들은 배열에 넣어왔다. 청중 : 그래서 새로운 요소 나중에 추가? 그래서 그들은이 될 것이다 added--있어 [마지막 사람? 되풀이. ?] 마리아 ZLATKOVA : 새로운 요소 주는거 기본적으로, 새로운 요소를 추가 할 때, 이들은 어레이의 단부에 추가? 청중 : 네. 마리아 ZLATKOVA : 저는 그렇게 생각합니다. 네. 그리고 다음 foreach 루프와, 당신은 새로운 요소를 추가 한 후 당신은 그들을 통해 이동 새로운 요소 것 그것의 경우, 새로운 요소 accessed-- 수 마지막으로 추가, 그것은 마지막으로 액세스 할 수있다. 청중 : 당신은 그냥 예를 들어 줄 수 뭔가의 것 [들림] 값이 뭔가 [들림] 또는 값 등, 당신은 어떻게 포맷 것처럼? 마리아 ZLATKOVA : 물론. 나는의 예를 들어 줄 수있는 우리는 값으로 할 것? 그래서 너희들은 잘 알고있을 것을 우리는 배열을 통해 갔어요된다 기본적으로 인쇄 각 요소, 예를 들어,의 일부로 정렬 된 목록 또는 뭔가. 그 의미가 또는 우리가 원하는합니까 이러시면 청중 : 우리는이 값을 인쇄 할 수 있습니까? 마리아 ZLATKOVA : 그래, 우리가 인쇄 할 수 있습니다 다음 기본적으로 값을 $에 있기 때문에 특정 값, 우리는 것 그것의 내부 값을 인쇄. 그래서 만약 우리가 우리의 첫 번째 반복에 있었다 그리고 그것을 우리는 $ 값을 인쇄 우리는 줄을 인쇄 할 것입니다. 청중 : 위해도가 있습니까 PHP에서 루프하거나 foreach는 루프? 마리아 ZLATKOVA :있다 또한 PHP에서 루프. 그리고 그들의 논리는 대부분입니다 당신이 사용되어 한 내용과 동일합니다. 청중 : 그 값이 null 그래서. 마리아 ZLATKOVA : 그것은 같은처럼. 네. 청중 : 그냥 물어거야. 그래서 당신을 선언 할 때 배열, 당신은 필요가 없습니다 그에게 무슨 일이 일어나고 있는지 크기 말해 의미하는 것이 당신은 할 수 있습니다 추가 요소 [들림]을 빼앗아. 마리아 ZLATKOVA : 아, 그래. 예. 정확하게. 우리는 배열을 선언 할 때, 그것이 무엇인지 크기 말을 할 필요가 없습니다, 그래서 우리는 단지 요소를 추가 할 수 있습니다 나중에뿐만 아니라이 상. 더 많은 질문? 그래서 함께 PHP와 HTML을 가져, 우리가 잘 seen-- 한 예를 들어,이 예에서, 우리가 입력 필드가 HTML 폼. 상기 입력 필드는 단지 이름 다음은 제출 버튼이 있습니다. 누를 때 제출 버튼을, 우리의 hello.php 파일, 양식 방법이기 때문에 얻을, 우리는 이름에서 무엇이든에 액세스 할 수 있습니다 이것에 의해 전역 변수를 얻을 그 이 $ _GET 때문이다 구문 데로. 그리고 우리는 무엇에 액세스 할 수 있습니다 이름 그 형태의 내부 사용자 입력 그 필드의 이름을 지정하여. 다른 질문이나 이 구체적인 예에​​ 대한 질문? 청중 : PHP는 어디에 있습니까? 마리아 ZLATKOVA : 여기에. 그래서 이것은 PHP를위한 우리의 여는 태그입니다. 청중 : 아, 맞다. 마리아 ZLATKOVA : 예. HANNAH BLUMBERG : = 속기 이를 위해 PHP와 바로 에코입니다. 청중 : 아. 마리아 ZLATKOVA : 네, 죄송합니다. 나는 분명히해야합니다. HANNAH BLUMBERG : 인쇄합니다. 마리아 ZLATKOVA : 그것은 단지 함수의 즉, 우리가 뭔가를 인쇄 할 수 있습니다. 좋은 질문입니다. 그래서 그래 딴 데. 청중 :이 꽤 될 것입니다 PHP와 HTML의 손 코딩의 비트 퀴즈 1? 마리아 ZLATKOVA은 :이있을 수 있습니다 해석의 상당량 PHP와 HTML의, 반드시 코딩의 엄​​청난 양처럼, 당신은 쓰기 할 수도 있지만 foreach 루프하지만, 루프. 루프 중 어느 것을 우리 공정한 게임이 여기에 포함됩니다. 그리고 그 대부분은 그것 뿐이다. HANNAH BLUMBERG는 : 나는 준비가 될 것이다. 그 같은 방식으로 우리가 당신을하도록 요청 퀴즈 0에 C 함수의 무리를 작성, 나는이 작업을 수행 할 준비가 될 것 PHP와 자바 스크립트 같은. 마리아 ZLATKOVA : 네. HANNAH BLUMBERG : 나는 말할 것 우리가하지 않은 같은 little-- 가는이 거대한 HTML 쓰기로 만들려면 즉 조금 그냥 있기 때문에 페이지 지루한,하지만 당신은 부분이있을 수 있습니다. 즉 완전히 공정한 게임이다. 작은 HTML 페이지처럼, 완전히 공정한. 청중 : OK. 방법에 대한 자바 스크립트뿐만 아니라? HANNAH BLUMBERG : 네. 자바 스크립트의 공정한 게임. 마리아 ZLATKOVA : 네. 즉 완전히 공정한 게임이다. HANNAH BLUMBERG : 우리는거야 같은 10 분 그것. 마리아 ZLATKOVA : SQL, 다시, 구조적 쿼리 언어. 그것은 기본적으로 우리는 데이터를 관리 할 수​​ 있도록 관계형 데이터베이스 관리 체계. 그건 그냥 기본적으로 의미 우리는 어떤 곳이 있는지 우리가 할 수있는 몇 가지 데이터를 저장하기 위해 웹 사이트 또는 다른 형태의 사용. 그리고 우리가 얻을 수있는 질문이 우리의 데이터베이스에서 정보, 또는 그 정보를 삽입합니다. 일반적인 ones-- 업데이트의 많은, INSERT는, 선택, 그리고 삭제합니다. 그래서 UPDATE, 이것은 구문 데이터베이스에 데이터를 업데이트합니다. 라는이 테이블 업데이트 SET 말하여 테이블, 우리는 몇 가지 값을 설정할 수 있습니다 다른 동일한 뭔가 행. 그래서 우리는 또한 일부 특정을 지정할 수 있습니다 우리가 수정할 항목 그 어디에 사용 할 수 있습니다. 그리고 우리는 우리가 단지에 지정할 수 있습니다 일부 행을 수정할 곳의 집, 우리는 학생들의 테이블이 있다면 모든 학생들은 집이 있었다 그래서 우리는 어떤 값을 수정할 것 집 Currier에 해당하는 경우, 예를 들면. INSERT, 우리는 삽입 할 수 있습니다 테이블에 특정 값. 그래서 테이블에 삽입, 다음 값, 다음 괄호 안에, 우리는 지정 이는 삽입 할 값. 그래서 테이블, COL1 INTO 삽입 COL2, 값은 VAL1과 val2가있다. 그래서이에 기본적으로 새로운 행을 삽입 값 1, 2를 포함하는 테이블 칼럼 1 및 2 미만. 그리고 우리는 가서거야 이 보이는 방법에 대한 간단한 예제 조금 우리의 데이타베이스 등을들 수있다. 그러나 마지막 쿼리가 나는 우리가 이상 갈 것 같아요, SELECT, 그냥 우리를 수 테이블에서 데이터를 선택합니다 아마도 나중에 그것을 사용할 수 있습니다. 그리고 우리는이 작업을 수행하는 방법은 우리입니다 그냥 몇 가지 변수에 저장합니다. 그리고 우리는 아마도 다시 사용할 수 있습니다. 그래서 선택 스타 모두 선택을 의미합니다. 그건 그냥 속기의 모든 선택을위한. 테이블 곳에서, 우리는을 찾고 있습니다 일부 특정 조건, 그래서 열이 동일 곳 예를 들어 뭔가. 우리는 단지를 원한다면 테이블에서 모두 선택, 이것은 단지 모든 열을 선택 그리고 테이블의 모든 행. 그리고 테이블에서 삭제 WHERE COL 뭔가 같다, 이것은 단지 일부를 삭제 우리 테이블에서 행 여기서 우리는 몇 가지 특정한 조건이있다. 이 경우, 조건 있는 열은 뭔가 같습니다. 이러한 그래서 그냥 빨리 예. 우리는 바로 여기에 우리 표가있는 경우 테이블에 삽입,이 값, 즉, 새 행을 삽입합니다. 우리는 자동 증가했다 경우에,이 것 만 0 ~ 1, 2, 우리의 ID를 증가. 우리는 학생들을 모두 선택한 경우, 그것을 다만 모든 필드와 모든 행을 반환합니다. 어디 올해는 더 큰 2016 년 같거나, 그건 그냥 반환 한나와 자신. 그리고 우리는 단지 선택한 경우 학생들 해 ID와 해 여기서 집은 캐 보트 하우스는,이다 다시, 한나와 자신을 반환합니다. 그 다음 우리는 학생에서 삭제 된 경우 여기서 이름은 롭과 동일 즉, 전체 행을 삭제합니다. 그리고 우리가 설정 한 경우 이름, UPDATE 학생 세트 이름 Daven에 동일 어디 집 동일 캐벗 집, 즉에 갈거야 그 행이 다음 이름을 업데이트합니다. 그리고 몇 SQL 데이터 유형은 CHAR, VARCHAR, INT, 및 FLOAT. 이들은 공정한 게임이다. 나는 또 다시 갈 것 그리고 당신이 알고 있어야합니다 그리고, 당신의 컨닝 페이퍼에 그이 무엇 이러한 문자의 각 사용 된 어떤 당신은 당신의 Pset에 그들을 사용 당신이 잘 알고 있는지 확인하고 선택하는 데 편안 PSET하여 상이한 데이터 유형에서. 네. 청중 : 그 테이블에 무엇을 저장했다? 그래, 어디에서이 표는 저장됩니까? 마리아 ZLATKOVA : 음, 지금, 그것은 저장 아니에요. 어쨌든, 여기서이 표는 저장됩니까? 그러나 그것은 SQL 데이터베이스에 저장 될 수있다. 청중 : 어디 SQL 데이터베이스는 무엇입니까? 컴퓨터에서 온라인 어딘가에, 서버? 마리아 ZLATKOVA : 그것은 될 수 있습니다 여러 가지의 수입니다. HANNAH BLUMBERG : 우리와 인터페이스했습니다 주로 phpMyAdmin을 사용하여 SQL 테이블. 그래서 우리는 서버를 요청할 수 우리를 저장합니다. 우리는 우리 자신의 컴퓨터에 저장할 수 있습니다. 마리아 ZLATKOVA : 그것은 단지에 따라 달라집니다 어떻게 당신은 자신을 위해 그것을 할 싶습니다. 그러나 우리는 저장 한 그들, 한나가 언급 한 바와 같이, phpMyAdmin을,에있는 온라인입니다. 그리고 그 길을 우리가 사용 PHP와 SQL, 우리는 그것을 저장 일부 변수로 우리는 무엇을 위해 쿼리했습니다. 우리가 역사를 선택하면 그래서 USER_ID는 세션 ID와 동일 여기서, 그 모든 행을 선택할 것 특정 사람에 대한 사람 역사에서 기록됩니다 테이블과 행로를 정렬 할 수 있습니다. 알 수있는 멋진 일이다 CS50의 쿼리 기능이 SQL 인젝션 태그를 보호합니다. 그건 그냥 확인합니다 것을 의미합니다 입력 입력이 올바른지 그 사람 누구 입력 들어가고 입력에 시도되지 않은 일부 악성 코드는 하나 우리의 테이블을 드롭하기 또는 모든 것을 삭제 저희 데이터베이스의 내부. 의 빠른 개요 모델 뷰 컨트롤러 모델, 그것은 조직의 단지 방법 코드에 대해 생각. 그것은, 다시 디자인 패러다임이다. 무슨 의미하는 것은 그 우리입니다 주는거 그것은 좋은 습관이다 다른 부분을 구분 우리의 코드와 그들이 무엇을의 이 세 가지 패러다임으로 제어 할 수 있습니다. 그래서 우리의 관점은 대부분 우리의 템플릿, 우리의 레이아웃 방법 것을 우리는 우리의 코드의 모양을 설정합니다. 즉, 대부분의 CSS 파일 및 방법 우리가 코드의 디자인을 규정하는 것이, 원래. 우리의 컨트롤러는 주로 무엇을이다 우리는 PHP 파일을 해왔습니다. 그래서 다시 작업 우리가 가진 정보 그리고 정의하는 방법이 정보는 사용 다음 해당 정보를 전달 중 하나를보기 또는 모델 상. 그리고 모델, 우리가했습니다 방법 IS를 사용하고하는 것은, 우리의 데이터베이스왔다 그래서 우리의 정보입니다 이 곳이 있도록 저장 에 살고 중 어느 한 방법에 관한 코드 우리는 그 정보 또는를 얻을 우리는 그 정보를 업데이트 방법. MVC 모델에 따라서, HTTP 요청은 웹 서버로 전송됩니다. 이어서, 제어기 해석 사용자로부터의 요구 다음 사용자 입력의 유효성을 검사합니다. 그것은 우리가 가지고있는 것을 선택이다 컨트롤러는 통신 모델, 뭔가 이렇게 우리의 데이터베이스와 같은 또는 일부 다른 기능 그 정보를 중계한다. 다음 마지막으로, 제어기 보기에 정보를 전달합니다 수 있도록하는 것은이 될 수 있습니다 렌더링하고 수 어떤 사람에게 볼 수있게 웹 페이지에 액세스. 질문? 신난다. 그래서 다시, 모델 그 기능, 다시, 정보의 영구 저장소이며, 데이터 관리 및 조직화. 그리고 우리는 그렇게 본 적이 무엇을 지금까지 MySQL 데이터베이스입니다 임의의 데이터 파일을 사용할 수있다. 보기, 정보의 프리젠 테이션에 사용자, UI, 또는 사용자 인터페이스. 그리고 이것의 예는 HTML입니다. 그리고 우리는 최소한의 PHP가있을 수 있습니다. 그래서 루프가 반복 데이터를 통해 그가 출력된다 도면의 일부로서, 인 제어기 대향. 그리고 우리의 PHP 파일의 다음 많은 컨트롤러 범주에 속한다. 그것은 단지 사용자 요청을 처리하고 모델에서 정보를 가져옵니다. 문서에 점프 개체 모델이 바로 방법 HTML을 말한다 문서가 구성됩니다. 그리고 그들은 나무로 구성하고 계층 구조를 가지고 구조. 우리가에 액세스 할 수있는 경우 그래서 [들리지] 문서의 표현, 우리는 같은, 문서 작업을 할 우리는 기본적으로 개체를 조작 할 수 있습니다. 그리고이 만들려면 조금 선명 때 우리는 많이 가지고 우리의 다른 태그 응답 우리의 트리에서 다른 경로로. 그리고이 예를 들어, 시작 문서 노드가 있습니다. 우리가 다음 우리의 HTML 노드 그 머리와 몸으로 분할합니다. 머리는 제목과이 제목은, 안녕하세요 세계가 포함되어 있습니다. 그리고 우리의 몸은 포함 안녕하세요, 세계뿐만 아니라. 의에 따라서 질문 우리가 지금까지 덮여 것들? 그렇지 않은 경우, 한나는 것 자바 스크립트 인수. 신난다. HANNAH BLUMBERG : OK, 멋진. 아무것도 PHP 또는 HTML과 함께 온다면, 또는 마리아가 적용되는 물건의, 우리는 항상 일시 정지 할 수 있습니다. 우리는 더 나은에 일을하는지 시간 다시, 정말 대단. 그냥 돌아갑니다 정말 빨리이에, 당신은 모든 보면 지난 해의 시험이 either-- 여기에 온다 일부 HTML은,이 그림을합니다. 아니면 여기이 그림은의 일부를 만들 HTML은, 그래서 확실히 그 연습. 그리고 그 한 보장된다 당신이 바로 얻을 수있는 질문입니다. 시원한. 그럼 자바 스크립트에 대해 이야기하자 그리고 조금의 방법 PHP와 같은 언어에서 다른 C, 우리는 사전에 본 두 언어. 그래서 번호 하나, 그것은 느슨한 타입입니다. 즉, PHP와 비슷하지만 C. 달리 그것은 해석 언어입니다. 다시 말하지만, 그처럼 PHP, C. 그리고이 달리 우리가 그것을 use-- 할 수 있도록 것입니다 웹 페이지와 정말 잘 작동합니다. 그것은 우리가 조작 할 수있는 것 내용과 방법이 보인다 그것이 무엇을. 우리는 아약스의 약간을 보게 될 것입니다. 그것은 우리가 통신 할 수 있습니다 비동기 적으로 다른 서버와 및 정보를 얻을 수 있습니다. 그리고이 점은 정말 PHP와 C에서 자바 스크립트를 분리 그것이 클라이언트 측 점이다. 모두 PHP와 C는 일반적으로 서버 쪽. 대부분의 경우와 거의 어떤 우리는 이상에서, 본 적이 이 클래스, 자바 스크립트 즉, 클라이언트 측에 작용 브라우저가 실제로 그 그것을 실행에 대한 책임. 그리고 우리가하지 않는 것을 의미합니다 서버와 상호 작용해야합니다. 그래서 그것은 훨씬 빠를 수 있다는 것을 의미 실제로 때문에 그냥은, 크롬의 그것은 파이어 폭스,의, 사파리의 당신이 무엇을 실제로 사용하는 자바 스크립트를 실행. 청중 : 비동기은 무엇을 의미합니까? HANNAH BLUMBERG : 아, 무엇을 비동기 적으로 의미 하는가? 좋은 질문입니다. 비동기 means-- 물론, 그 내용에 우리는 확인한다 사용, 우리 웹 페이지를 작성하는 우리는 몇 가지 정보를 얻을 필요가있다. 매쉬업의 예에 따라서, 우리는 할 수 있습니다 몇 가지 정보 기사 제목이다. 이제, 우리는 하나의 옵션을 could-- 기적을하는 것입니다 그리고 그하자의 의미 중지, 문서를 가서, 다음 문서를 다시 가져 오기를 렌더링,하지만 그건 정말 느린 것입니다. 즉 나쁜 사용자 경험이 될 것입니다 그냥 앉아있을 것이기 때문에 뭔가의 응답을 기다리고있다. 비동기 적으로 우리는 것이다 의미 우리의 사업에 대해 지속될, 페이지를 렌더링하고, 우리는 요청을 보내드립니다 그 종류의 것 백그라운드에서 일어난다. 나는 우리가 예를 사용하여 생각 롭를 호출하고 말하는 강의, 이봐, 당신은이를 찾아 볼 수 있습니다 나를 위해 나에게 돌아가, 그냥 날에 반대 전화를 기다리고. 그래서 비동기 적으로 그런 일을 의미합니다 우리로부터 멀리 배경 병행하여. 좋은 질문입니다. 다른 건? 큰. 우리는에 더 많이 이동합니다 Ajax를 이용한 비동기식 요청. 청중 : 않는 경우 JavaScript--합니까 이 모델 - 뷰 - 컨트롤러와 가을? HANNAH BLUMBERG : 좋은 질문입니다. 어디에서 자바 스크립트 가을을한다 모델 - 뷰 - 컨트롤러와? 흠. 나는 fall-- 수 추측 그래서 우리는 일반적으로하지 않습니다 그로를 뭉개 버려 좋아 패러다임,하지만 난 말할 것 같아요, 확인, 자바 스크립트 그래서 실제로 수있는 것입니다 우리는 데이터를 수집 실제로 수행 데이터를 해석 데이터를 의미있는 일. 이런 식으로, 매우 제어 등이다. 그러나 그것은 또한 우리를 허용하는거야 일 인쇄 일을 표시합니다. 이런 식으로, 매우보기 형상이다. 네. 그래서에서 PHP와 같은 종류의 그것은 가지를 모두 여기서 할 수 있습니다. 좋은 질문. 다른 건? 좋아, 최고. 오른쪽을 따라 이동. 그럼 예를 보자 우리가 사용하는 방법 우리의 웹 프로그램 중 하나에서 자바 스크립트. 그래서 나는이 생각합니다 HTML의 무리와 함께 index.html을. 그리고 것은 내가 당신을 원해요 에 초점이 스크립트 태그입니다. 그리고 이것은 확인, 좀를 실행하려면 말한다 이 사는 곳 여기에 자바 스크립트입니다. 그것은 hello.js에 살고있다. 매우 CSS처럼, 우리는 할 수 HTML 내에서 자바 스크립트를 넣어. 왜 우리는 그것을 분리 할 수​​ 있습니다? 네. 청중 : 다시하기 쉬운? HANNAH BLUMBERG : 네. 그것은에서 사용하기 쉽게 다른 웹 페이지를 참조하십시오. 그것은 청소기 물건을 유지합니다. 그냥 좋은 연습입니다. 신난다. 좋은 대답. 그래서 좋은, 그래서 이것은 것입니다 우리의 index.html을합니다. 그리고 여기까지 우리를이다 작은 작은 자바 스크립트 파일입니다. 그리고 그것이 말하는 모두, 안녕하세요 세계 경고입니다. 그래서 무슨 일 때입니다 이 페이지 renders-- 그래서 당신은 어떤 웹 사이트로 이동하는 경우 이 모든 일이 일어날 것 is-- 좋아, 난,이 일어나고있다 대답 이 자바 스크립트 코드를 실행하는 것. 그리고이 자바 스크립트 코드 다만 경고 안녕하세요, 세계는 말한다. 그래서 난이 얻을거야 친화적 인 작은 팝업. 시원한? 즉, 첫 번째 종류의 우리 같은입니다 자바 스크립트 프로그램, 우리의 안녕, 세계. 의에 대한 조금 더 살펴 보자 무엇 자바 스크립트의 구문은 다음과 같습니다. 구체적으로, 이제와 비교​​하자 우리가 전에 본 적이 C와 PHP,. 자바 스크립트에서, 우리는 할 겁니다 VAR, 변수의 이름 다음 실제 값입니다. 그리고 우리는 단지 유형을 지정하지 PHP에서,하지만 매우 C에서와 달리 같은 우리가 원하는 예를 들어, 그래서 50 값을 저장하는, C로, 우리가 말을 할 것이다, 이봐, C, 나는 정수를 원하는, 나는 그것을 호출하는거야 나는, 그 값은 50입니다. PHP에서는 조금 더 쉽다. 우리 안녕하세요, 변수를 원하는 말 내가 전화해서 그 값은 50입니다. 매우 유사하게, 자바 스크립트, 우리 이봐, 내가 변수 내가 전화 싶은 말 그 값은 50입니다. 내가 사용하는 모든 이후의 시간 내가, 내가 VAR를 작성할 필요가 없습니다. 그것은 단지 내가 그 시점에서입니다. C에서와 동일한 방식에 우리는 내가하는 int 말을하면, 우리는 그냥 사용합니다. 시원한? 괜찮아. 루프로 이동, 다행히,이 거의 나는 그들이라고 생각 exactly-- 봐 것과 똑같은 루프처럼 보일거야 C 같은 어디를 루프 세 가지를해야 할 것입니다 , 초기화를 parts-- 조건 및 업데이트합니다. while 루프, 그것은 동일한 보인다. 우리는 단지 그것을 조건을 제공합니다. 그리고 DO 루프 동안, 다시, 정확히 같은. 우리는 조건을 제공합니다. 이제 나는 끝났다, 반복 싶어한다고 가정 해 봅시다 내가 뭔가 다섯 번을하고 싶었다. C에서, 우리는 작성할 수 있습니다 초기화를 위해 내가 0 같습니다. i가 5보다 작은, 내가 ++. 유일한 차이는, 자바 스크립트, 대신 내가 0에 해당하는 int 말하는, 우리는 var에 내가 0에 해당 말한다. 아름다운. 즉, 유일한 차이점입니다. 그 중 하나에 대한 질문? 네. 청중 : PHP에서 그래서, 그것은 마찬가지예요 것은 제외하지만 변수처럼? 또는 VAR 예이었다? HANNAH BLUMBERG : 네. 그래서 PHP, 그것은거야 달러 기호가 될 수 있습니다. 그래서 $ 나는 동등한 것 0, $ 내가 $ 내가 ++, 5 미만이다. 좋은 질문입니다. 이제 대해 얘기하자 함수 선언. C에서, 우리는 선언 할 때 기능, 우리는 그것에게 이름을 준 우리는 그것을 몇 가지 매개 변수를했다. 그리고 처음에, 우리는 유형을 썼다. 자바 스크립트에서, 우리 모두 쓰기된다해야 키워드 기능이 이봐, 자바 스크립트, 말한다 나는 함수를 정의하려고 해요. 이 경우에는, 네임 합을 갖는다. 그리고 그것은 두 개의 인수, x와 y를합니다. 우리가 상관 없어 알 수 있습니다 x 및 y의 유형에 대한. 그냥 C처럼, 우리가 이 키워드 리턴, 그래서 우리는 뭔가를 할 수 반환 x와 y 등을들 수있다. 그리고 지금 한 번 우리는이 첫 번째를 작성했습니다 기능, 우리는 어디 합계를 사용할 수 있습니다. 그리고 완전히 괜찮아요. 하나는 정말 멋진 일에 대한 C는 달리 매우입니다 자바 스크립트 인 기능을 할 수 값처럼 취급 될 수있다. 그래서 우리는 여기에 뭔가를 할 수 있습니다 내가 가정 어디이 up-- 포함 나는 VAR의 합을 은폐 part-- 우리는 방금 말한 기능 XY는 반환 X 플러스 Y 같습니다. 즉, 호출 할 것입니다 것입니다 익명 함수. 이 이름이없는 함수입니다. 이 기능은 말한다 반면 합, ㅋ, ㅋ, ㅋ, 이 단지 기능을 말할 것입니다. 하지만 지금은이 경우에도 이 익명 함수, 그 기능은 정말 값입니다. 우리는 값처럼 처리 할 수​​ 있습니다. 그래서 우리는 변수와 동일한에게에 저장할 수 있습니다 방법 우리는 변수에 50을 저장할 수 있습니다. 그래서 우리는 좋아, 내가 원하는 말할 수 변수, 그것은, 합계라고 그리고이 함수이다. 그래서이 두 가지가 실제로 똑같은 일을 할 것, 하지만 구문은 약간입니다 다른과 재미 노​​트 가지. 네. 청중 : 당신이 호출 할 수 있도록 말함으로써 익명이었다 기능, 합 브래킷 2, 5? HANNAH BLUMBERG : 네. 이 익명을 호출 할 수 있습니다 같은 방식으로 작동합니다. 당신은 합계 할 것 (2, 5) ;. 즉 완전히 잘 될 것입니다. 나는 VAR의 합이 동일하지 않은 경우 기능, 난 그냥 삭제 한 경우 이 항아리 내가 내 손에 알고, 하지만 난 다음이 항아리를 삭제 척 그 기능은 일종의 다만 사라 졌어요. 당신은 다시 때문에 사용할 수 없다 당신은 그것의 이름이 없습니다. 그것은 뭔가를 참조하는 것이 어렵다 당신은 무엇을 호출 모른다. 좋은 질문. 네. 청중 : 당신의 합계를 참조 할 수 있습니다 X 플러스 Y의 값이 다른 곳? HANNAH BLUMBERG : 수 당신 다른 곳에서 참조 합 값 X 플러스 Y와? 난 당신이 무슨 뜻인지 전혀 모르겠어요. 청중 : 그래서 당신의 과거 반 익명 함수 합이 같은지 익명의 함수이므로 합이다 당신이 주는거 이제 변수 HANNAH BLUMBERG : 오른쪽. 따라서 합계 변수이다, 하지만 ... 사실상이다 그래서 합은 그 변수입니다 가치 함수이다. 그래서 가지 인 기능이며, 이상한 것은 당신의 머리를 주위에 포장하기 우리가 놀았 던 이후 C 당신은 C로 할 수 없어 하지만 지금 우리는 전화를 요약 할 수 있습니다 우리가 여기에 합계를 호출 할 수 동일한 방법. 청중 : OK. HANNAH BLUMBERG : 네. 좋은 질문. 네. 청중 : 그래서 우리는 사용하지 마십시오 PHP 나 자바 스크립트의 프로토 타입? HANNAH BLUMBERG : 아니, 우리 프로토 타입을 사용할 필요가 없습니다, 특히 자바 스크립트. 난 그래서 하나의 나쁜 연습 일 당신이 안된다는 말을하려고 당신은 var에 나는 = 50을 작성하지 않아도됩니다. 당신은 50 = 내가 일을 시작할 수 있었다. 그리고 그냥 전역 변수를 만들 것입니다. 그것은 아주 나쁜 습관이다 결코 명시 적으로의 var에 내가 말을하지 그러나 당신이 할 수있는 일입니다. 인터프리터는 아니다 당신을 소리 것. 자바 스크립트는 꽤처럼 당신은 당신이 원하는 것을 할 수 있습니다. 아, 죄송합니다. 두 가지가있다. 오렌지 바지. 어서. 청중 : 아니, 당신은 첫 번째 이동합니다. 청중 : 아니, 난 그냥 말하고 있었다 나는 내 손을 위로하지 않았다. 그래. 당신이 전화를했다 경우에 따라서 그 처음은 지금, 합계 우리는 같은 방법으로 호출, X Y, 매번 같은? HANNAH BLUMBERG : 네. 그래서이 두 가지 본질적으로 같은 일을. 청중 : 그리고 무슨 일이 장점이다 다른 하나를 사용? HANNAH BLUMBERG : 없음 장점 어느 한쪽의 사용. 난 그냥 당신에게 두 가지를 보여주고 싶었어요 구문의 다른 조각. 시대의 많은 곳 익명 함수는 목적을 가지고 수행 경우 다른 인수 함수는 함수해야한다. 그리고 우리의 것을 볼 수 있습니다 Ajax를 잠깐. 그 어떤 이해가되지 않은 경우 그래서, 당신의 머리 뒤쪽에 보관하십시오. 즉, 여기서 익명의 기능은 유용 할 수 있습니다 정말 가치가 있기 때문에 우리가있어 이후에 이름을 부여 한 번 사용하려고합니다. 네. 청중 : 만약 x와 y 변경 후 에,뿐만 아니라 변경 요약 것인가? HANNAH BLUMBERG : 만약 x와 y의 변화 나중에뿐만 아니라 변경 요약 것인가? 그래서 나는 실제로 , 뭔가를 생각한다 다시, 그냥 매우 다른 느낌 C.에서이 값이 아닙니다. 그것은 5 아니다. 그것은 단지 함수 자체입니다. 그래서 빨리 당신이 그것을 매개 변수 제공으로, 당신은 실제로 값을 계산합니다. 마리아 ZLATKOVA : 그리고 당신은 함수를 호출 할 수 있습니다 어떤 가치를받을 수 있습니다. HANNAH BLUMBERG : 오른쪽. 정확하게. 네. 청중 : 당신이 만약 그러니 그냥 변수에 보관 VAR의 X 같은 두 values​​--의 합과 동일 HANNAH BLUMBERG : 네. 그래서 당신은 VAR의 합을 할 수 두 값의 합과 같다. 네. 다른 질문? 네. 청중 :하지만 것 합과 합을 혼동? 당신이 당신의 변수 합계를 호출하는 경우처럼, 당신은 함수 합계를 호출? HANNAH BLUMBERG : 음. 음. 당신이 뭔가를 한 경우 등 합계 합 2,5- 같음? 청중 : 네. HANNAH BLUMBERG : 나는 믿고 합계의 값을 덮어 쓰기한다. 그래서 또 다른 재미 자바 스크립트에 관한 일 하나의 변수가 취할 수 있다는 것입니다 다른 종류의 무리에. 나쁜 연습. 당신은 뭔가를하지 말아야 같은 당신은 단지 말. 그러나 C에서, 내가 설정되어있는 경우 정수로 동일한, 우리는 결코 없다는 것을 알고 문자열이 될 것. 이 자바 스크립트의 경우가 아니다. 그래, 좋은 질문입니다. 다른 건? 괜찮아. 시간에 대한 모든 권리를하는. 유지하는 것. 괜찮아. 우리는 배열을 보면 자바 스크립트에서, 여기에 문자열 배열의 빠른 예. 그리고 배열은 동적으로 증가 할 수 있습니다. 그들은이 없습니다 동일하게 고정 된 크기 그들은 C로 할 것을 우리는 액세스 할 수 있습니다 단지 대괄호 요소. 즉, PHP와 많은처럼 많이 보인다 우리가이 경우에, 말할 수있는 C, 등, 나는 단어 자바 스크립트를 원한다면, 나는 것 0, 1, 2와 대괄호, 언 않습니다. 때 그리고 당신은 C로 기억한다면 배열의 길이를 얻고 싶었다, 정말 짜증나. 그러나 자바 스크립트에서, 아주 쉽게. 모든 우리가, .length. 그것을 길이를 제공합니다. 이게 다예요. 청중 : 그건 간단합니다. HANNAH BLUMBERG : 네, 있습니다 당신의 인생을 훨씬 쉽게. 확인이되지 object--. 자바 스크립트 느낌의 개체 C의 구조체처럼 많이 그리고 PHP의 연관 배열. 그래서 우리는 무엇을 본 적이 의 많은 JSON, 인 자바 스크립트 객체 표기법을 의미합니다. 그리고 기본적으로 방법 우리의 데이터를 구조화. 그럼 예를 보자, 아마 가장 쉬운. 그래서 여기 오브젝트의 예 즉 CS50, 클래스를 저장합니다. 내가 클래스를 말할 때, 나는 물론 의미 아니, 그래 CS50을 과정을 그때 엔. 그리고 당신은 그것을 볼 수 있습니다 개체의 모든 포함 할 것입니다 중괄호. 그리고 우리는 필드 이름을 연관 시작 또는 다른 값으로 키. 그래서 당신은 어떻게 이러한 종류의 볼을 시작할 수 있습니다 PHP에서 연관 배열 같은 느낌이 든다. 그래서 우리는 현장을 연결하는거야 또는 키 이름, 과정, 문자열, CS50. 우리는 강사가 될 것입니다. 우리는 TF가있을 것입니다. 우리의 Pset의 수를 할 겁니다 우리가 녹음 한 것입니다. 그리고주의해야 할 하나의 좋은 점은 모든입니다 이런 일들은 다른 유형이, 그 완전히 괜찮아요. 그것은 사실, 개체에 대한 괜찮아요 그것은 아마 객체에 대한 기대거야 문자열의 조합을 가지고 숫자 및 부울 및 배열 그리고 어떤 다른 당신은 수도 개체 내부에 갖고 싶어. 그리고이 될 것 참고 이름이나 키, 그리고 우리 단지 조금 콜론이 동일하게 설정. 청중 : 정확히 JSON은 무엇을 의미합니까? HANNAH BLUMBERG : 무엇 정확히 JSON은 의미합니까? JSON은 약자 자바 스크립트 객체 표기법. 그것은 형식의 단지 방법입니다. 네. 그것은 우리의 데이터를 포맷하는 방법입니다. C에서는 구조체를합니다. PHP에서는 연관 배열을합니다. 자바 스크립트에서, 우리는 개체가. 청중 : 그래서 CS50는 객체이다? HANNAH BLUMBERG : CS50는 이 경우 객체입니다. 이제, 우리가 어떻게에게 실제로 접근을 이러한 필드는 해당 필드를 변경하거나. 예를 들어, 우리가 결정한다고 가정 하나 적은 PSET 이번 학기를 원했다. 대신 아홉,​​ 우리는있어 다만 팔을해야 할 것. 우리는 어떻게 변경할 것인가? 아, 잘못된 방법. 우리가 할 수있는 두 가지 방법이 있습니다. 첫째는 도트 인 표기와 두 번째 대괄호 표기법입니다. 따라서, 예를 들어, 나는 경우 변경하거나 접근하고 싶었다 우리의 CS50 객체의 psets를 필드, 내가 무엇을 할 것이라고하는 것은 CS50.psets입니다, 그래서 물체 점의 이름 필드 또는 키의 이름입니다. 매우 유사하게, 그것은 정확히 동등한은 CS50을 수행하고 광장 중괄호,의 Pset. 시원한? 네. 청중 : 그래서 JSON은 아직 기술적으로 자바 스크립트, 비록하여 pset에 우리 [들림]를 분리 해? HANNAH BLUMBERG : 물론. 문제는 그래서입니다 자바 스크립트와 JSON 동등한? 그래서 JSON 표기법은 기본적입니다 우리가 작성하는 방법 자바 스크립트에서 객체. 그래서 그들은 정확히 같은 아니에요. 내가 거기, 자바 스크립트를 말할 것입니다 자바 스크립트의 객체입니다. JSON은 해당 개체를 받아 를 인쇄하고 표시 또는 좋은 방법에 저장합니다. 그래서 JSON은 프로그래밍되지 않습니다 언어 자바 스크립트는 방법. 그것은 단지 표기법의 자바 스크립트에서 우리의 객체. 네. 청중 : 그래서 정확히 [들림] 완료? HANNAH BLUMBERG : 물론. 그래서이 사실은 아무것도하지 않는다. 이 액세스 할 수있는 단지 방법입니다. 그래서 우리가 변경을 원 가정 해 봅시다 문제 세트 수 9-8. 우리가하는 일은 뭔가를 할 것입니다 CS50.psets = 8 ;. 같은 그래, 좋은 질문입니다. 이 그냥 구문을 보여주는 것입니다. 실제로 유용한 아무것도하지 않습니다. 질문? 오른쪽을 따라 이동. 그럼 방법에 대한 간단한 예제를 살펴 보자 나는 당신에게 그것을 이야기하기 때문에 자바 스크립트를 작동 수행이 모든 멋진 일들과 우리가 웹 페이지를 수정할 수 있습니다. 의 실제 행동을 보자. 그래서, 예를 들어,이 HTML 파일을 받아. 그리고 난 당신이에 초점을 맞출 것입니다 버튼입니다이 특정 태그, 아이디 search_button와. 그냥 페이지에 있습니다. 그래서 지금 보자 무엇 우리가 실제로 할 수 있습니다. 음, 때 가정 해당 버튼을 클릭, 우리는 alert--을 만들고 싶어 당신은 버튼을 클릭했습니다. 이제 우리가 할 수있는 방법을 알아 보자. 그래서이 일이 아니다 window.onload-- 있음 따라서, 수업 시간에 본 적이 퀴즈를 알 필요가 없습니다. 그러나 이것은 기본적으로 확인, 전화, 말한다 이 기능을 사용하면 윈도우가로드됩니다. 그래서 그냥 종류의 설정 코드의입니다. 그것에 대해 너무 걱정하지 마십시오. 내가 당신이 초점을 맞추고 자하는 것은 여기에있다. 우리는 VAR의 searchButton 같 말 document.getElementById를 search_button. 당신이 짐작 그래서, 어떤이가하는 것은, 그것이 말하는입니다 확인 요소를 찾아 이동 아이디 search_button와. 그리고 지금 우리는이 그리고 난 실제 요소 에 저장하려고 변수 searchButton. 그리고 지금 우리는 실제로 요소를 사용할 수 있습니다 및 변경, 또는 그 값에 액세스, 그런 것들. 우리는 실제로 시작할 수 있습니다 웹 페이지와 결합. 그래서 여기에 나는 지금 내가 가지고있는 것을 확인, 말 이 클릭되는 버튼, 이 익명 함수를 호출합니다. 그래서이 곳 익명 기능은 유용하게된다. 그리고 기능은 무엇입니까? 음, 그냥이를 호출 경고 기능과는 말한다 당신은 검색 버튼을 클릭했습니다. 나는 곳으로 이동한다면 어떤 일이 일어날 것입니다 이 HTML이 살고 내가 버튼을 클릭, 나는 멋진 작은 경고를 얻을 수 있습니다 그 버튼을 클릭했다. 그래서 것들에 초점을 here-- 중요 document.getElementById 특정 HTML을 가져옵니다 지정된 ID를 가진 요소입니다. 그리고 지금 우리가 설정할 수 있습니다 때 무슨 일이 발생하지 특정 요소를 클릭합니다. 청중 : 우리가이 모든 것을 넣어 있나요? HANNAH BLUMBERG : 죄송합니다? 청중 : 우리가해야합니까 물리적으로 그 모든 코드? HANNAH BLUMBERG : 우리가해야합니까 물리적으로 그 모든 코드? 네. 짜증나는 이런 종류의 아닌가요? 이 코드가 많이있다. 청중 : 당신은 뭔가를 가져올 수 있습니다. HANNAH BLUMBERG : 오른쪽. 우리는 무언가를 사용할 수 있습니다. 그리고 particular--에 오, 그건 말해 나는 부분을 가르 칠해야합니다. 특히,하자 jQuery를 라이브러리를 사용, 그 정말 때문에 긴 정말 짜증나 나는 그것을 단순화 할 수 있도록하려면 그것은 짧고 쓰기 쉽게. 그래서 jQuery를은 자바 스크립트 라이브러리입니다. 그래서 자바 스크립트 프로그래밍입니다 언어; jQuery를이 라이브러리입니다. 그리고 그것은 쉽게 물건을 잔뜩 있습니다. 그것은 변화와 가로 질러 갈 수 있습니다 HTML 문서를 훨씬 쉽게. 이 이벤트 처리 용이합니다. 그것은 쉽게 애니메이션을 만든다 그것은 쉽게 Ajax를 만든다. 그래서이 두 가지에 뛰어 보자 지금은 그런 것들. 실례합니다. 우리가하기 전에 다음과 같은 몇 가지 기본적인 구문. 이것은 대부분의가 부르는입니다 jQuery 라이브러리는 다음과 같다. 우리는이 달러를 사용 sign-- PHP에 어떤 연결 흔적, 단지 이름을 inconvenient-- 선택, 점, 다음 작업. 그래서 몇 가지를 살펴 보자 그 구체적인 예. 그래서이 실제로 동일 이벤트 슬라이드에서 코드입니다. 그래서이 긴, 추악한 일이된다 이 훨씬 좋네요, 작은 것. 그럼이 분해 해보자. 이 확인 jQuery--이 달러 말한다 , JQuery와 sign-- 나에게 창을 찾을 수 있습니다. 그래서 선택입니다. 이로드되면,이 함수를 호출합니다. 그래서 모든 내부입니다. 그래. 여태까지는 그런대로 잘됐다? 괜찮아. 이제, jQuery를, 날을 찾을 수 아이디 search_button와 것. 그리고 그것은 무엇을 클릭하면, 이 함수를 호출합니다. 그리고이 함수의 정확히 같은. 그냥 경고의 조금을, 당신은 검색 버튼을 클릭했습니다. 그래서 정말 좋은 데요. 정말 응축 우리의 코드를 단순화합니다. 나는 알고 않았다 방법 그것은 아이디 search_button의 및 클래스 search_button을 좋아하지? 청중 : 해시 태그? HANNAH BLUMBERG : 네. 이 해시 기호, 그냥 CSS처럼. , 때 그래서 CSS로 기억 ID로 뭔가를 선택하고 싶었, 우리는 파운드 기호를 사용했다. 그리고 우리는 선택하고 싶어 할 때 클래스에 의해 무엇인가, 우리는 도트​​를 사용합니다. 큰. 이해가? 그래서 jQuery를가하도록되어 우리의 인생을 더 쉽게합니다. 네. 청중 : 그래서는 조금 혼란 스러워요 익명 함수의 작동 방법. 이 anonymouse의 이름을 마 기능, 작동? 얼마나이라고? HANNAH BLUMBERG : 물론. 그래서 기능은 키워드입니다 내가 함수를 정의하려고 해요 말했다. 청중 : OK, 오. HANNAH BLUMBERG : OK? 그리고 우리는로 전달 인수의가 보자 이러시면 클릭 기능이 내부 one--. 그래서 그래, 그 기능 때문에, 이 익명 함수, 실제 인수가됩니다. 그래서, 자바 스크립트에 기억 우리 값으로 기능을 처리 할 수​​ 있습니다. 청중 : OK, 오. HANNAH BLUMBERG : 네. 나는 것을 좋아 "오." 좋은. 다른 질문? 시각? 마리아 ZLATKOVA : 좋은. 좋다. HANNAH BLUMBERG : 신난다. 빠른 유용 jQuery를. 나는 갈 않을거야 이 모든 통해. 이 슬라이드가 될 것입니다 온라인 조금 위로 나중에, 그래서 당신은 확인할 수 있습니다 조금 나중에 알아. 그러나 기본적으로, 일반 우리가 말할 곳 패턴은 보유 이봐, 확인, jQuery를, 여기의 내 여기에 선택과 행동이다. 그리고 당신은 액세스 등의 작업을 수행 할 수 있습니다 폼의 값은, 일부 액세스 HTML 때 사용자를 발생하는 제어 형태, 그런 일을 제출합니다. 네. 청중 : 그렇게 시험은, 우리가 필요 해요 에서 꽤 많이 알고 jQuery를 문서. 그래서 우리는 jQuery를 붙여 넣기 / 복사 주어진 우리의 치트 시트 문서, 어디 라인이 그려? 마찬가지로 얼마나 많은 우리가 알 필요가 있습니까? HANNAH BLUMBERG : 좋은 질문입니다. 문제는 본질적으로 주어진 jQuery를 문서에 액세스 할 수 없습니다 시험하는 동안, 얼마나 당신을해야 알고 있다? 우리는 당신이 와서 기대하지 않을 것이다 어떤 임의의 기능까지 우리는 Google에 당신을 기대할 수있다. 공정한 게임 것들 내가 것입니다 일반 구문의 단지 종류의 말 ID가 선택 할 수있는과 그래서 그냥 CSS처럼 그 수업에 의해. 그리고 실제 기능 스스로가, 우리는 가능성이 말해주지. 네. 청중 : 그래서 당신은 선택 클래스 점을 의미 할 것입니다. HANNAH BLUMBERG : 예, 정확하게. 좋다. 당신이 클래스에 의해 선택하면, 그것은거야 대신 파운드 기호의 점한다. 네. 청중 : 당신이겠습니까 차이 가서 ID에 의해 클래스 선택 사이? HANNAH BLUMBERG : 물론. 선택 차이점 별로 ID와 선택. 마리아는 말했다 그래서 조금 일찍,가 하나의 HTML 요소가 될 수 지정된 ID와, 클래스 반면, 이 그룹 무리 우리를 수 서로의 다른 요소, 그래서 관련된 것들 하지만 정확히 같은. 그 질문에 대답합니까? 신난다. 네. 청중 : 여러 가지고 어떤 경우 같은 클래스에있는 것들? HANNAH BLUMBERG : 어떻게됩니까 여러 가지가있는 경우 그 같은 클래스는? 따라서, 예를 들어, 우리는이 있다면 다만, 순수 자바 스크립트를 사용하여 우리는 같은 것을 할 것 document.getElementsByClass. 그리고 실제로 수행 한 후 무엇을 복귀 요소들의 어레이이다. 그리고 당신은 반복 할 중 하나가 그들에게 당신이 원하는 어느 찾거나. 그것은 포기하지 않을거야 당신은 하나의 요소입니다. 그것은 당신에게 줄거야 요소의 배열. 좋은 질문입니다. 다른 건? 신난다. 그래서 나는 당신이 잘 알고 있다면 생각 어떤 jQuery를 당신은 PSET에서 본 당신은 갈 수 있어야한다. 문제? 아니, 오. 난 정말 가르 칠해야합니다. 편하게 하다. 그것은 괜찮을거야. 나는 거기에 도착합니다. 의 아약스 대해 얘기하자. 그래서 아약스 할까 .. 잘 될 것입니다, 의가 무엇의 약자인지 시작하자. 그것은 약자입니다. 그것은 비동기 의미 자바 스크립트와 XML. 그리고 XML은 기본적으로 될 것입니다 [들리지] 우리의 데이타의 타입. 그러나 우리는 실제로 XML을 사용하지 않았습니다. 대신, 우리는 단지 JSON을 사용합니다. 그러니까 기본적으로, 그것은 일부 data--의 비동기식 자바 스크립트, 데이터, 이 경우, JSON에서. 그리고 우리의 목표는 우리가 언급로 조금 일찍, 을 만들 수있을 것입니다 요청, 그 요청을 할 수있다 에서의 일 배경,하지만 계속 우리가하고자 한 무엇이든. 그리고 그 정보는 다음 경우 준비, 우리는 그것을 통합 할 수 있습니다. 그래서 어떤이를 보자 실제로처럼 보인다. 그리고이, 당신은해야합니다 익숙한 조금 pset8에서, 하나는 그냥 못했습니다. 그래서 여기에 유효한 jQuery를이다 기능을 우리가 수도 이 달러 기호 비슷해 알고 싶어요. 그래서 jQuery를 기능, .getJson는 말한다. 그리고 무엇이 기능을 수행하는 것은입니다 URL 및 일부 parameters-- 소요 그래서 경우에 생각 pset8, 그것은 마치, URL이 articles.php이었고, 매개 변수는 = 일부 우편 번호를 이동했다. 그리고 그것은 확인에 대한 요청을 말한다 지정된 파라미터 URL을. 그리고 그것은 단지 발생합니다. 이 완료되면, 그것의 하나 성공적으로 완료로 이동 아니면 실패 할 것입니다. 그래서이 호출하는 것과 동일 롭과는 뭔가를 물어. 그가 다시 호출 할 때 그리고, 그는의 하나 나는 끝났어요 아니면 실패 말을하려고. 당신이있어 경우에 따라서 다, 당신이 좋아, 난 끝났어요, 말. 그리고 당신은이 함수를 호출합니다. 이 경우, 일 것 어떤 정보를 가져 기능. 우리가 일반적으로 신경 하나는, 데이터입니다 우리가 실제로 반환 된 데이터 .getJSON 호출의 결과. 그리고 당신은 그것으로 뭔가를 할 수 있습니다. pset8의 경우 그래서, 우리가 목록으로 표시됩니다. 실패는 기능이 될 것입니다 요청이 실패하면 그이라고 어떤 이유. 및 pset8의 경우, 우리는 단지 그것을 CONSOLE.LOG. 그에 대한 질문? 네. 청중 : 우리는 단지 기능 세타를 사용할 수 대신 기능, textStatus, jqHXR. HANNAH BLUMBERG : 물론. 그래서 그래, 나는 PSET 생각, 우리는 단지 기능 데이터를 보았다. 그래서 그냥 확인, 예 가까이 대고있다. 그것은 우리가 PSET에서 본거야. 즉 완전히 괜찮아요. 당신이 원하는 경우 이러한 단지이다 자세한 내용을 꺼내, 이러한 것들 그 당신은 .getJSON에서 얻을 수 있습니다. 좋은 질문. 다른 건? 네. 청중 : 그래서 .getJSON 아약스입니까? HANNAH BLUMBERG : OK. 그래서이 까다로운 부분의 종류입니다. 그것은 수있는 jQuery를 함수입니다 당신은 비동기 호출을 할 수 있습니다. 그리고 그 비동기 호출은, 그건 우리가 아약스로 참조했습니다. 네. 그건 나에게 정말 오랜 시간이 걸렸습니다 내가 학생 때 따로 빼냅니다. 청중 : 다시 그런 말을 할 수 있습니까? HANNAH BLUMBERG : 네. 다시는 그런 말을 할 수 있습니까? 이 .getJSON 함수 그것은 jQuery를 함수입니다. 그리고 그것은 만들 것 비동기 호출. 그리고 이러한 비동기 호출, 우리는했습니다 아약스와 같은 사람들을 언급하고. 다른 질문? 우리는 왼쪽으로 단지 몇 분 있습니다. 그리고 마리아의이가는 보안 마무리 그리고, 우리는거야 단지에 대한 수행 할 수 있습니다. 마리아 ZLATKOVA : 신난다, 확인을 클릭합니다. 그래서 이것은 단지 몇을 is-- 초 중이를 통해 볼 수 있습니다. 그리고 이것은 정말 좋은 일이 아니다. 왜 누군가가 나를 알 수 있습니까? 무엇 foo는에서 일어나는 월 수있다 잠재적으로 나쁜 일이 발생, 그는 무엇이라고? 네. 청중 : 만약의 인수 12 개 이상의 자에 전달, 그것은 오버 플로우 수 있습니다. 마리아 ZLATKOVA : 오른쪽. 완전한. 뭐라고 해요? 당신은 그것을 언급했다. 청중 : 버퍼 오버 플로우. 마리아 ZLATKOVA : 아, 그래, 버퍼 오버 플로우. 그래서 뭔가입니다 우리 버퍼 오버 플로우로를 참조하십시오. 그리고 우리는, foo는의 내부를 볼 수 우리는 우리의 버퍼, C를 정의한 (12)의 크기. 그러나, 메인, 우리는하지 않습니다 전혀 방법으로 확인 여부 있도록 argv1-- 두 번째 인수했다. 우리는 여부를 확인하지 않는 그것의 크기는 적절하다. 그래서 만약 우리가 있었다 특히 악의적 인 사용자 이었다 일부 인수에 넣어 사람 (12)보다 더 길게하고 잠재적 그 경계를 넘어 인수, 약간의 실행 코드가 있었다 그는 나쁜 일을하려고했던 것을 그것으로; 다음이, 어떤 일이 일어날 것 수익을 재정의 foo는 함수의 주소, 경우에 기능을 일으키는 그 코드를 실행하도록 복귀. 그리고 나쁜 일이 일어날 수 있습니다. 이 모든 사람에게 의미가 있습니까? 그리고 우리는이에 대해 어떻게 보호 할 수 있습니까? 어떤 제안? 기본적으로, 내부 잠재적 foo는 어떻게 우리는 확인하고 점검 할 수 있습니다 것을에게 그런 일이 없다? 청중 : 크기 12를 초과하면, 당신은 추가 메모리를 할당 할 것인가? 마리아 ZLATKOVA : 제안은, 할당 크기의 추가 메모리를 초과했습니다. 사실, 우리는 뭔가를 할 수있는 뿐만 아니라보다 간단 많이합니다. 우리는 단지 문자열 길이를 얻을 수 있습니다 입력 인수의, 그 이하인지 확인 이상 또는 12-- 같음 우리가 원하는 무슨이다 우리가 원하지 않기 때문에 할 수 그것은 우리의 버퍼의 범위를 초과. 그리고 그렇지 않은 후, 우리 인수와 함께 작업 할 수 있습니다. 만약 그렇다면 그 다음, 우리가 실제로 원하는 사용자에 잠재적 여보 쇼입니다. 그러나 이것은 우리가 그렇게 할 것입니다 방법이다. 네. 청중 : 당신이 할 수 방어 적이기 진짜 빨리 설명? 마리아 ZLATKOVA : 아, 죄송합니다. 네. 방어 적이기 확인, 어떤 is-- 죄송합니다. 방어 적이기는 무엇이든한다 줄에, 어떤이 전달됩니다 명령 행 인수로 foo는 상. 그래서 argv1를 취할 것입니다. Argv1 여기에 줄이라고합니다. 그래서 줄을 것 및 그것은 C에 복사하는 것입니다. 청중 : OK. 마리아 ZLATKOVA : 그리고 그것은 것 세 번째 인수는 단지 의미 copy-- 얼마나로는 C로 복사하는 것입니다. 청중 : 아. 그래서 하나의 복사 다음의 모든. 마리아 ZLATKOVA : 네, 그것은 전부를 복사하다. 네. 첫째, 우리는 줄이 있지 않은지 확인 이 포인터이기 때문에 동일한 null로. 그 다음 우리는 바의 문자열 길이를 얻을. 우리는 그것의 있는지 확인 12 이하. 그리고 우리는했습니다 때문에 확인했다, 우리가 실제로 할 수있는 방어 적이기과하면 해당 괜찮아 있는지 확인하십시오. 질문? 큰. 나는이 참 또는 거짓 질문이 있습니다. 사람이 바로 말해 줄 수 이러한 사실 또는 거짓인지? 예, 그것은 거짓입니다. 정확하게. 둘 다 false입니다. 하나의 암호를 사용하여 그래서 결코 정말 좋은 생각이다 누군가가 알고 있다면 때문에 비밀번호, 그들은 단지 수 다른 모든 계정에 액세스 할 수 있습니다. 그리고 아이콘은 아무것도하지 않고 보안을 보장합니다. 우리는 일반적으로 HTTPS를 찾아야한다 대신에 HTTP 및 URL의. 의 그리고 다른 유형 우리가 언급했던 공격, 다윗은 언급했다고 SQL 주입 공격을 강의. 우리는 이미 보았다 우리는이 설마 또 ... 경우 CS50 쿼리 기능을 확인하십시오 SQL을 만든다 주입 공격이 발생할 수 없습니다. 그러나 우리는 CS50를 사용하지 않은 경우, 인용, 인용을 끝내 "쿼리" 우리는 확인해야 할 것입니다 그 사용자 입력은 실제로 어떤 SQL 아니다 모든 원인이됩니다 쿼리 우리 테이블은 삭제합니다 나에게 나쁜 일을 우리의 데이터베이스와 함께 일어난다. 세션 하이재킹은 다른 타입의 공격 그 때 어떤 나쁜 일이 사람은 일부 피해자의 세션을 사용 ID는 로그인 정보에 액세스한다. 그래서 아주 사소한 예입니다 같은 우리가 공용 컴퓨터를 사용하는 경우, 다음 나쁜 사람의 다음 기록 그들은 저장되는 쿠키가 있습니다. 그리고 쿠키가 세션에 대해 변경되지 않습니다. 그 다음 우리는 피해자에 이동했다 다음 웹 사이트에 로그인합니다. 쿠키는 변경되지 않습니다 특정 세션. 그리고 피해자에 로그인 다음 웹 사이트 및 나뭇잎. 그리고 그 사람은 누가 돌아갑니다 다음 여전히 자신의 세션 ID를 사용할 수 있습니다 자신의 정보에 액세스 할 수 있습니다. 그래서의 한 예이다 그런 일이 수 있는지. 그리고 나는 너무 많이 걱정하지 것이다 특정 코드 또는 아무것도에 대한 이 발생할 수있는 그런, 하지만 생각의 일종을 가지고 무엇을 이에 포함 된 변수입니다. 그리고 헤더를 조작 데이터는 다른 타입의 공격 인 즉 다윗에 대해 이야기했다있다. 그리고 그것은 단지를 말한다 때 일어날 수있는 일 응답, HTTP 우리의 헤더의 내부 응답 제대로 소독되지 않습니다. 예컨대 fields-- 중 어느 누군가가 머리글 중 하나를 덮어 쓰는 경우 값보다 더 많은 것을 포함합니다 그들이 contain--해야하며, 실제로 , (200), 예를 들면, 포함 확인 상태 코드, 그들은 다음 악의적 할 수 물건은 그들에 생각하지 않을 때. 하지만 너무 걱정하지 것이다 특정 코드에 대한 많은 즉,이 발생할 수 있습니다 이해의 단지 종류 같은 높은 수준의 것들. 나는이 모든 생각 우리는 포함해야한다는 것을. 놀랄 만한. 누구나 어떤에 대한 질문이 우리가 다루는 것들? 네. 청중 : 그래서 한 종류의 더 물류 질문입니다. 콘텐츠는 주로 집중 퀴즈 1 일 이후 일에? 마리아 ZLATKOVA : 그래서 질문은, 콘텐츠 인 퀴즈 1 일 이후 일에 주로 초점을 맞추고? 그래서 초점은 후에이다 예외 퀴즈 1 우리는 사물에 초점을 맞출 필요가 있음 pset5 및 데이터 구조의 많은 우리가 덮여있다. 그리고 우리는 말할 수 없다 우리 전에 어떤 것도 무시할 수 있습니다 그것뿐만 아니라 그것을 바탕으로 구축 때문. 그래서에 초점 플러스 pset5 물질 연결리스트, 스택을 포함하는 등, 큐, 모든 한나를 통해 갔다. HANNAH BLUMBERG : 오른쪽. 그래, 우리는 모든 C 물건을 비켜갔습니다 아주 아주 빨리 시작. 하지만를 검토해야합니다. 돌아가서 퀴즈 0 리뷰를 볼. 몇 가지 더 물류 정보, 다만 동안 우리는 관심을 가지고있다. 우리는 근무 시간을해야 할 것 모두 월요일과 화요일 밤에. 그들은 MD 119에있을 것입니다. 이 때문에, 모든 웹 사이트에 당신은, 걱정이 들리지 않는 경우. 마리아 ZLATKOVA : 8시 30분부터 11시까지. HANNAH BLUMBERG : 네, 8시 30분부터 11시까지. 우리는 거기에있을 것이다. 우리는 질문에 대한 답변이있을 것이다. 그것은 꽤 진정과 재미 있어요. 너희들은 어떤 질문을 할 수 당신은 퀴즈 1에 있는지. 그리고 퀴즈 1에있다 수요일 그래서 행운을 빕니다. 당신은 아마, 문의 사항이있는 경우 여기에 일대일를 우리에게 이야기를 온다. 시원한. 정말 감사합니다. 마리아 ZLATKOVA : 감사합니다 너무 많은, 사람. 청중 : 야호. [박수 갈채]