1 00:00:00,000 --> 00:00:05,616 2 00:00:05,616 --> 00:00:07,030 >> HANNAHブラムバーグ:皆さん、こんにちは。 3 00:00:07,030 --> 00:00:09,530 私たちは始めるつもりです わずか数分早いです 4 00:00:09,530 --> 00:00:11,738 我々は全体の多くを持っているので、 介して取得する材料の。 5 00:00:11,738 --> 00:00:12,790 私はハンナです。 6 00:00:12,790 --> 00:00:13,865 私は、TFです。 7 00:00:13,865 --> 00:00:16,239 マリアは参加しようとしています ほんの数分で私たち。 8 00:00:16,239 --> 00:00:17,560 彼女は右の前のセクションを教えています。 9 00:00:17,560 --> 00:00:19,351 私は、セクションの右を教えます 後、私たちはつもりです 10 00:00:19,351 --> 00:00:21,200 時間半にそれを維持します。 11 00:00:21,200 --> 00:00:25,490 >> あなたがここに表示されますように、我々は非常に持っています いくつかのトピックでは、我々は、を介して取得する必要があります 12 00:00:25,490 --> 00:00:27,200 私たちは速い少し行くことがあります。 13 00:00:27,200 --> 00:00:31,140 しかし、いずれかの時点で、私たちは何かを言う場合 早すぎるか、理解していません、 14 00:00:31,140 --> 00:00:33,170 質問を中断して自由に感じます。 15 00:00:33,170 --> 00:00:36,610 我々は、このαを行うことができるようにします あなたのすべてに便利なように、セッションを確認 16 00:00:36,610 --> 00:00:37,973 できるだけ。 17 00:00:37,973 --> 00:00:38,920 驚くばかり。 18 00:00:38,920 --> 00:00:41,650 >> それでは、と右にジャンプしてみましょう 私たちは実際にいくつかのトピック 19 00:00:41,650 --> 00:00:46,980 非常に、非常に簡単にするために覆われました クイズ0件のセッションでクイズ0。 20 00:00:46,980 --> 00:00:48,840 だから、リンクされたリストから始まります。 21 00:00:48,840 --> 00:00:52,090 だからあなたには、いくつかを持っていることを確認し リンクされたリストについての基礎知識 22 00:00:52,090 --> 00:00:55,110 そして、やって快適です 基本的な操作の一部。 23 00:00:55,110 --> 00:00:58,560 >> だから、見直しリンクします リストは配列よりも優れています 24 00:00:58,560 --> 00:01:01,020 彼らは動的に成長することができますので。 25 00:01:01,020 --> 00:01:03,300 だから我々はその巨大な利点があります。 26 00:01:03,300 --> 00:01:06,031 我々は、彼らが使用さ見てきました ハッシュテーブルにあるときに我々 27 00:01:06,031 --> 00:01:08,280 正確にどのように多くの知りません 我々はするつもりだもの 28 00:01:08,280 --> 00:01:10,900 我々のデータ構造に挿入します。 29 00:01:10,900 --> 00:01:15,700 残念ながら、我々はの部分を持っています すべてのメモリオーバーリンクリスト、 30 00:01:15,700 --> 00:01:20,820 私たちは、必ずしもではありません 一定時間アクセスを行うことができます 31 00:01:20,820 --> 00:01:22,502 リンクされたリスト内の任意の要素に。 32 00:01:22,502 --> 00:01:24,210 見つけるために 特定の要素、我々 33 00:01:24,210 --> 00:01:26,510 すべての反復処理する必要があります 初めから方法。 34 00:01:26,510 --> 00:01:30,610 だから、ほとんどのことに注意してください 基本的な操作は、1のオメガです。 35 00:01:30,610 --> 00:01:32,130 だから、インサートは、ちょうど1を取るために起こっています。 36 00:01:32,130 --> 00:01:37,520 削除は取るつもりnは我々以来されています リストからそれを探しに行く必要があります。 37 00:01:37,520 --> 00:01:39,260 そして、検索は、n、最悪の場合、かかることがあります。 38 00:01:39,260 --> 00:01:42,330 我々のような何かを行うことはできません リンクリストのバイナリ検索 39 00:01:42,330 --> 00:01:45,101 以来、私たちがすることはできませんだけ ランダム真ん中にジャンプします。 40 00:01:45,101 --> 00:01:45,600 クール。 41 00:01:45,600 --> 00:01:48,160 42 00:01:48,160 --> 00:01:48,960 驚くばかり。 43 00:01:48,960 --> 00:01:50,270 >> スタックの少し。 44 00:01:50,270 --> 00:01:53,980 これは、再び、あなたのように、クイズ0に思い付い それに超快適でなければなりません。 45 00:01:53,980 --> 00:01:57,210 しかし、スタックに、私たちはあなたを求めます トレーのスタックを覚えています。 46 00:01:57,210 --> 00:01:59,940 そして、それはうち最後に最初になるだろう。 47 00:01:59,940 --> 00:02:02,272 だから我々は物事を積み重ねます スタック内の、その後、 48 00:02:02,272 --> 00:02:04,980 私たちは何かを取るしようとしている場合 これoff--我々が飛び出し呼び出します 49 00:02:04,980 --> 00:02:06,581 stack--我々はトップをオフに来ます。 50 00:02:06,581 --> 00:02:09,289 そして、私たちは何かを入れたい場合は スタック内に、我々はそれが押して呼び出します。 51 00:02:09,289 --> 00:02:13,170 だから、常に育っすることになるだろう トレイのスタック状の底から。 52 00:02:13,170 --> 00:02:14,540 驚くばかり。 53 00:02:14,540 --> 00:02:17,607 >> 私たちは、実装のスタックを見てきました リンクされたリストと配列の両方を有します。 54 00:02:17,607 --> 00:02:19,440 あなたが実装しようとしている場合 配列で、あなたがしたいです 55 00:02:19,440 --> 00:02:22,350 を追跡することを確認します サイズと容量の両方。 56 00:02:22,350 --> 00:02:27,540 だからサイズは現在になるだろう あなたのスタック内の多くのこと、 57 00:02:27,540 --> 00:02:32,900 容量は合計数であるのに対し、 物事のあなたのスタックに格納することができます。 58 00:02:32,900 --> 00:02:34,220 クール。 59 00:02:34,220 --> 00:02:35,767 >> 非常に同様に、我々は、キューを持っています。 60 00:02:35,767 --> 00:02:38,850 この場合は、代わりについて考えます トレーのスタックが、ラインを考えます。 61 00:02:38,850 --> 00:02:40,697 これは最初に出て、最初であることを行っています。 62 00:02:40,697 --> 00:02:42,780 だから、あなたが並んでいる場合 店で何か、 63 00:02:42,780 --> 00:02:46,920 私たちは、その人が最初に願っています 行が最初に助けられることになるだろう。 64 00:02:46,920 --> 00:02:49,350 >> 代わりにプッシュを言ってのと 私たちは、スタックのために行うようにポップ、 65 00:02:49,350 --> 00:02:52,000 私たちはエンキューおよびデキューを言います。 66 00:02:52,000 --> 00:02:54,970 そして再び、あなたがしている場合 配列でこれを実装し、 67 00:02:54,970 --> 00:02:56,720 私たちはトラックを維持する必要があります だけでなく、大きさの 68 00:02:56,720 --> 00:03:02,390 容量だけでなく、ヘッド、およびこれ 私たちのキューの先頭になるだろう。 69 00:03:02,390 --> 00:03:03,010 クール。 70 00:03:03,010 --> 00:03:05,770 そのいずれかの上の任意の質問? 71 00:03:05,770 --> 00:03:06,320 驚くばかり。 72 00:03:06,320 --> 00:03:07,640 右に沿って移動します。 73 00:03:07,640 --> 00:03:08,564 >> OK、ハッシュテーブル。 74 00:03:08,564 --> 00:03:10,605 それが開始のはここです 本当に面白く。 75 00:03:10,605 --> 00:03:14,150 だから、ハッシュテーブルは一つの実装です 連想配列の。 76 00:03:14,150 --> 00:03:16,700 したがって、基本的に何が起こったのか 我々はこのすべての入力を持っています、 77 00:03:16,700 --> 00:03:18,750 私たちはハッシュにそれを与えます 言う機能、 78 00:03:18,750 --> 00:03:21,840 ここで[OK]を、これは ハッシュテーブルには、それが属しています。 79 00:03:21,840 --> 00:03:24,860 >> だから、最も単純なハッシュ関数 私たちは言って見てきたこと、 80 00:03:24,860 --> 00:03:28,170 [OK]を、私たちは入れたいと仮定 私たちのハッシュテーブル内の文字列。 81 00:03:28,170 --> 00:03:30,870 そして、本当にシンプルなアイデア [OK]を、言うことかもしれないが、 82 00:03:30,870 --> 00:03:34,350 ただ並べ替えてみましょう 単語の最初の文字。 83 00:03:34,350 --> 00:03:37,570 あなたがここに見ることができるように、我々は、バナナを取ります 我々は、ハッシュ関数を介してそれを置きます 84 00:03:37,570 --> 00:03:40,190 それがいることを、ちょっと、と言います インデックス1で行く必要があります。 85 00:03:40,190 --> 00:03:45,120 >> だから我々は、基本的にハッシュを考えることができます 別のバケツの束として表。 86 00:03:45,120 --> 00:03:49,880 そして、それらのバケットのそれぞれが起こっています リンクリストの先頭を保持します。 87 00:03:49,880 --> 00:03:55,030 ここで、我々はできる、そのリンクされたリストであります 実際にデータの異なる部分を置きます。 88 00:03:55,030 --> 00:03:57,820 >> だから、ダイビングもう少し ハッシュ関数に、ここです 89 00:03:57,820 --> 00:03:59,870 例ちょうど私 私達はちょうど言う場合について説明し、 90 00:03:59,870 --> 00:04:02,460 [OK]を、最初の文字を取ります 私たちがしていると言葉の 91 00:04:02,460 --> 00:04:03,990 バケツにそれをソートするために行きます。 92 00:04:03,990 --> 00:04:08,490 ですからおそらく、26のバケットがあるでしょう、 アルファベットの各文字のための1つ。 93 00:04:08,490 --> 00:04:10,090 なぜこれが偉大なハッシュ関数ではありませんか? 94 00:04:10,090 --> 00:04:13,461 何がこの非理想的なのですか? 95 00:04:13,461 --> 00:04:13,960 うん。 96 00:04:13,960 --> 00:04:15,790 >> 観客:あなたが行っています 衝突を持っています。 97 00:04:15,790 --> 00:04:16,390 >> HANNAHブラムバーグ:うん、まさに。 98 00:04:16,390 --> 00:04:18,000 あなたは衝突を持っているつもりです。 99 00:04:18,000 --> 00:04:18,954 だから、一つのことです。 100 00:04:18,954 --> 00:04:21,620 どのように我々はすることができますし、我々はについて話しましょう ちょうど秒で衝突を解決します。 101 00:04:21,620 --> 00:04:23,980 このもう一つの問題 特定のハッシュ関数 102 00:04:23,980 --> 00:04:25,980 私たちの違うということです バケットはあることを行っています 103 00:04:25,980 --> 00:04:28,960 かなり大幅に異なるサイズの。 104 00:04:28,960 --> 00:04:33,840 >> 私たちは、全体の多くがあることを知っています よりXで始まる複数の単語、 105 00:04:33,840 --> 00:04:38,980 私たちは非常に必要があるとしています 私たちのハッシュテーブル内のアンバランスバケット。 106 00:04:38,980 --> 00:04:40,050 クール。 107 00:04:40,050 --> 00:04:41,340 そうそう、のに戻ってみましょう 衝突のポイント。 108 00:04:41,340 --> 00:04:42,900 衝突があるかどうか、私たちは何をしますか? 109 00:04:42,900 --> 00:04:44,490 >> 私たちはカップルの異なるオプションがあります。 110 00:04:44,490 --> 00:04:47,600 だから1、私たちがしようとしていると仮定 私たちのハッシュテーブルにベリーを配置します。 111 00:04:47,600 --> 00:04:50,370 そして、私たちはああ、私たちが望む、参照します インデックス1でそれを置くために、 112 00:04:50,370 --> 00:04:52,070 しかし、バナナは、すでにそこに住んでいます。 113 00:04:52,070 --> 00:04:53,110 何しようか? 114 00:04:53,110 --> 00:04:54,560 私たちは、主に2つのオプションがあります。 115 00:04:54,560 --> 00:04:58,050 >> ナンバーワンは、[OK]を、私たちが言うことができるで、 インデックス1での余地はありません、 116 00:04:58,050 --> 00:05:03,210 しかしちょうどを通して見て維持させます 我々が開いている別の場所を見つけることができるまで。 117 00:05:03,210 --> 00:05:08,490 だから我々は、[OK]を、言いますよ スポット3に入れましょう。 118 00:05:08,490 --> 00:05:09,240 それは一つの選択肢です。 119 00:05:09,240 --> 00:05:11,470 それはプロービング線形と呼ばれています。 120 00:05:11,470 --> 00:05:15,500 >> そして、2番目のオプションは、よく、[OK]を、言っています ちょうどこれらのバケットのそれぞれを作ってみよう 121 00:05:15,500 --> 00:05:17,470 リンクリストのヘッドです。 122 00:05:17,470 --> 00:05:21,910 より多くがあるかどうか、それは大丈夫です バケット内の1つの事より。 123 00:05:21,910 --> 00:05:23,820 私達はちょうどになるだろう 前にそれを追加します。 124 00:05:23,820 --> 00:05:26,032 だからここに[OK]を、見ることができ、 我々はベリーを挿入したとき、我々 125 00:05:26,032 --> 00:05:28,240 だけの種類の、バナナを取りました 少し上で、それを押しました 126 00:05:28,240 --> 00:05:29,842 そしてそこにベリーを投げました。 127 00:05:29,842 --> 00:05:31,050 そして、それはまた、完全に罰金です。 128 00:05:31,050 --> 00:05:32,830 これは、別の連鎖と呼ばれています。 129 00:05:32,830 --> 00:05:38,100 あなたのようなのようなものと考えることができます リンクされたリストへのヘッドの配列。 130 00:05:38,100 --> 00:05:41,950 ハッシュ上の任意の質問 テーブル、ハッシュ関数? 131 00:05:41,950 --> 00:05:44,290 驚くばかり。 132 00:05:44,290 --> 00:05:45,470 >> 木と試みます。 133 00:05:45,470 --> 00:05:47,287 だから木はどんな種類があります データ構造 134 00:05:47,287 --> 00:05:49,453 ここでいくつかの並べ替えがあります 階層またはある種の 135 00:05:49,453 --> 00:05:51,247 あなたの別のオブジェクトにランクイン。 136 00:05:51,247 --> 00:05:53,580 そして、これはスーパーになります 明確な我々は例を見たとき。 137 00:05:53,580 --> 00:05:56,960 そして、我々はに沿って、試行を見ました ハッシュテーブルと、pset5--で 138 00:05:56,960 --> 00:06:00,700 これは、再び、全く公正なゲーム これは別のデータとしてquiz--ため 139 00:06:00,700 --> 00:06:03,110 たちができる構造 異なるものを格納します。 140 00:06:03,110 --> 00:06:06,782 辞書の場合には、 私たちは言葉の束を格納されています。 141 00:06:06,782 --> 00:06:08,240 それでは、いくつかの木を見てみましょう。 142 00:06:08,240 --> 00:06:10,190 だから、これは木の例です。 143 00:06:10,190 --> 00:06:13,105 これは、構造体の種類を有し、 この階層構造 144 00:06:13,105 --> 00:06:15,920 あなたはそれを見ることができます 上部のこの1ノード 145 00:06:15,920 --> 00:06:20,750 2と3上記のランクのいくつかの並べ替えを持っています、 これは、4以上である図5、図6、図7、 146 00:06:20,750 --> 00:06:22,860 これは、図8及び図9の上にあります。 147 00:06:22,860 --> 00:06:25,210 それがすべてですので、の意味 木、あなただけの種類のことができるように 148 00:06:25,210 --> 00:06:26,660 あなたの頭の中でこれを描きます。 149 00:06:26,660 --> 00:06:29,050 >> 今、私たちはのカップルを持っています より専門的な木。 150 00:06:29,050 --> 00:06:31,070 そのように、一例では二分木です。 151 00:06:31,070 --> 00:06:33,290 そして、二分木であり、 再び、ちょうどになるだろう 152 00:06:33,290 --> 00:06:37,040 のいくつかの並べ替えとデータ構造 階層が、ノードのそれぞれ 153 00:06:37,040 --> 00:06:38,650 ほとんどの二人の子供に持つことができます。 154 00:06:38,650 --> 00:06:41,530 ワードバイナリはどこから来たのです。 155 00:06:41,530 --> 00:06:43,410 これは、バイナリツリーの例です。 156 00:06:43,410 --> 00:06:45,720 だから、木の小さいカテゴリです。 157 00:06:45,720 --> 00:06:48,960 >> 今度は、さらに具体的な取得してみましょうと バイナリtrees--バイナリ検索について話します 158 00:06:48,960 --> 00:06:51,310 木、かなり。 159 00:06:51,310 --> 00:06:56,430 だから、ここでの考え方だけでは​​ないん すべてのノードは、最大で二人の子供を持っています、 160 00:06:56,430 --> 00:07:00,300 しかし、するためにすべての子 左が小さくなるとしています 161 00:07:00,300 --> 00:07:03,450 そして、するためにすべての子 右大きくなるとしています。 162 00:07:03,450 --> 00:07:05,890 だから私たちの中に気付きます バイナリツリーは、あります 163 00:07:05,890 --> 00:07:08,650 数字の間には関係ありません。 164 00:07:08,650 --> 00:07:12,990 しかし、我々のバイナリ検索で ツリーは、我々が表示され、[OK]を、ここでは44です。 165 00:07:12,990 --> 00:07:17,080 そして、44の左側の全ての数であります 右側に小さく、すべて 166 00:07:17,080 --> 00:07:17,920 大きいです。 167 00:07:17,920 --> 00:07:20,130 >> そして、それはすべての時に成立します ツリーのレベル。 168 00:07:20,130 --> 00:07:24,810 だからここに、これはより小さく、 22これは22より大きい。 169 00:07:24,810 --> 00:07:26,390 そして、それは二分探索木です。 170 00:07:26,390 --> 00:07:28,900 なぜ我々はそれを呼び出して思います 二分探索木? 171 00:07:28,900 --> 00:07:30,651 何アルゴリズムそれはを思い出させるのですか? 172 00:07:30,651 --> 00:07:31,650 聴衆:バイナリ検索。 173 00:07:31,650 --> 00:07:32,480 HANNAHブラムバーグ:バイナリ検索。 174 00:07:32,480 --> 00:07:35,150 あなたが探している場合ので、 このツリー内の特定の数、 175 00:07:35,150 --> 00:07:38,800 すべての時点で、あなただけのノックすることができます 素晴らしいです木の半額。 176 00:07:38,800 --> 00:07:43,800 そしてそうそれは私たちに何かを与えるために起こっています それは、二分探索によく似ています。 177 00:07:43,800 --> 00:07:45,870 質問は? 178 00:07:45,870 --> 00:07:47,570 すべての権利、涼しいです。 179 00:07:47,570 --> 00:07:48,560 >> すべての権利は​​、しようとします。 180 00:07:48,560 --> 00:07:49,657 みんなのお気に入り。 181 00:07:49,657 --> 00:07:51,990 だから、これは例があること 私たちはクラスの束を見てきました。 182 00:07:51,990 --> 00:07:54,710 そして再び、これはただのです 我々はデータを保存することができる方法。 183 00:07:54,710 --> 00:07:57,530 辞書の場合には、再び、 これは単なる文字列であることを行っています。 184 00:07:57,530 --> 00:08:00,870 それでは、実際にどのようにこれを見てみましょう わずかに低いレベルでのように見えます。 185 00:08:00,870 --> 00:08:03,690 >> それでは、見てみましょう トライ内の1つのノードで。 186 00:08:03,690 --> 00:08:07,532 そして、我々はOK、そこに起こっている、参照してください。 ブールノードであるために、 187 00:08:07,532 --> 00:08:09,170 ノードへのポインタ。 188 00:08:09,170 --> 00:08:11,400 そして、我々はそれを参照してください。 ブールis_wordと呼ばれています。 189 00:08:11,400 --> 00:08:13,490 だから基本的に、それはです 対応して行きます 190 00:08:13,490 --> 00:08:16,750 これらの小さな三角形にします あなたがここに得ている場合は、言います、 191 00:08:16,750 --> 00:08:19,100 あなたは、完全な単語を見つけました。 192 00:08:19,100 --> 00:08:23,670 >> 私たちは知っている「チューリング「オーバー ここで完全な言葉であり、 193 00:08:23,670 --> 00:08:28,030 ただ、T-U-Rは言葉ではないのに対し、 我々はその小さなデルタが表示されていないので。 194 00:08:28,030 --> 00:08:31,440 そして、その小さなデルタ、再び、 このis_wordに対応し、 195 00:08:31,440 --> 00:08:34,480 このブールis_word。 196 00:08:34,480 --> 00:08:36,320 そして、我々は、子の配列を持っています。 197 00:08:36,320 --> 00:08:39,860 あなたは、それぞれのレベルでそう 特定のノードを持っています、 198 00:08:39,860 --> 00:08:42,470 とに、そのノード点 全体アルファベットの配列。 199 00:08:42,470 --> 00:08:44,346 >> だから、もう一度、確認することができ、 このpicture--でアイム 200 00:08:44,346 --> 00:08:48,170 バックジャンプ維持するつもりと forth--その一番上にその配列 201 00:08:48,170 --> 00:08:51,640 異なるの束を持っています それをオフに来ノード。 202 00:08:51,640 --> 00:08:57,140 あなたがしたい場合は26、または27を有します 余分な文字を含めることができます。 203 00:08:57,140 --> 00:09:01,320 そして、これは私たちに与えます 我々のデータを格納するための方法 204 00:09:01,320 --> 00:09:04,450 調べることができます方法で、 あなたが超高速調べることができます。 205 00:09:04,450 --> 00:09:06,650 トライのルックアップ時間は何ですか? 206 00:09:06,650 --> 00:09:07,970 >> 聴衆:[聞こえません]。 207 00:09:07,970 --> 00:09:08,300 >> HANNAHブラムバーグ:うん。 208 00:09:08,300 --> 00:09:09,550 理論的には、一定の時間です。 209 00:09:09,550 --> 00:09:13,230 それだけの大きさになるだろう 調べたい単語。 210 00:09:13,230 --> 00:09:15,950 私たちは膨大な数を追加する場合でも、 私たちのトライに複数の単語、 211 00:09:15,950 --> 00:09:18,160 それは私たちを取ることはないだろう もはや決定するために、 212 00:09:18,160 --> 00:09:19,690 与えられた単語はトライにある場合。 213 00:09:19,690 --> 00:09:21,412 だから、本当にうれしいです。 214 00:09:21,412 --> 00:09:23,697 >> 聴衆:ちょうどあなたをしました その配列を初期化? 215 00:09:23,697 --> 00:09:24,780 あなたは、ポイントまたは2を逃しました。 216 00:09:24,780 --> 00:09:26,130 あなただけについて話すことができます 第二のそれ? 217 00:09:26,130 --> 00:09:26,680 >> HANNAHブラムバーグ:確かに、絶対に。 218 00:09:26,680 --> 00:09:27,590 良い質問。 219 00:09:27,590 --> 00:09:31,140 質問は、私たちでした だ配列を持っています 220 00:09:31,140 --> 00:09:34,180 ノードの星を持つことになります 右、ノードだけではなく? 221 00:09:34,180 --> 00:09:35,180 クール。 222 00:09:35,180 --> 00:09:37,990 そこでここでは言っ​​ています 私たちの配列がちょうどです 223 00:09:37,990 --> 00:09:40,035 他の配列へのポインタになるだろう。 224 00:09:40,035 --> 00:09:42,910 だから、一種のそれをessentially--です このように、リンクリストのように感じています 225 00:09:42,910 --> 00:09:46,620 どこにこれらの子供たちのそれぞれ ちょうど次のノードを指します。 226 00:09:46,620 --> 00:09:49,030 >> 私たちと方法 実際に[OK]を、ちょっと、決定、 227 00:09:49,030 --> 00:09:52,320 我々は、全体を通して反復しました 単語は、辞書内のこの言葉で、 228 00:09:52,320 --> 00:09:54,476 私たちはこのis_wordを確認してください。 229 00:09:54,476 --> 00:09:55,100 素晴らしい質問です。 230 00:09:55,100 --> 00:09:55,675 うん。 231 00:09:55,675 --> 00:09:56,216 聴衆:[OK]をクリックします。 232 00:09:56,216 --> 00:09:57,470 だからトライのランタイムは何でしたか? 233 00:09:57,470 --> 00:09:58,386 >> HANNAHブラムバーグ:確かに。 234 00:09:58,386 --> 00:10:01,852 以下のためのトライのランタイムそう ルックアップは、一定の時間になるだろう。 235 00:10:01,852 --> 00:10:04,310 だから、それだけになるだろう ワード内の文字の数。 236 00:10:04,310 --> 00:10:06,310 それは依存ではありません 辞書のサイズ 237 00:10:06,310 --> 00:10:09,510 またはデータ構造のサイズ。 238 00:10:09,510 --> 00:10:12,170 そこでここでは少し簡単な例です。 239 00:10:12,170 --> 00:10:15,430 >> この場合、あなたはそれを見ることができます 単語のバットは、辞書にあります 240 00:10:15,430 --> 00:10:18,900 あなたは、ズームを持っていますが、あなた 動物園のようなものを持っていません。 241 00:10:18,900 --> 00:10:20,050 どのように我々は、動物園を作るでしょうか? 242 00:10:20,050 --> 00:10:24,276 どのように我々は我々に動物園を追加します 辞書、私たちのトライに? 243 00:10:24,276 --> 00:10:24,776 うん。 244 00:10:24,776 --> 00:10:27,014 >> 聴衆:is_wordを作ります [聞こえない]に当てはまります。 245 00:10:27,014 --> 00:10:27,930 HANNAHブラムバーグ:良いです。 246 00:10:27,930 --> 00:10:31,731 だから我々は、Z-O-Oを言うだろう、と我々は思います 同様にそのチェックボックスをOFFにしたいです。 247 00:10:31,731 --> 00:10:32,230 よかった。 248 00:10:32,230 --> 00:10:35,160 249 00:10:35,160 --> 00:10:37,930 のは非常に簡単に比較してみましょう ハッシュテーブル対しようとします。 250 00:10:37,930 --> 00:10:39,770 トライは本当に素晴らしいです なぜなら、私たちが言ったように、 251 00:10:39,770 --> 00:10:41,610 彼らは一定時間の検索を提供しています。 252 00:10:41,610 --> 00:10:44,285 しかし、巨大な欠点 彼らはでかいですです。 253 00:10:44,285 --> 00:10:46,160 あなたは感覚を得ることができ、 でも、それを見て、 254 00:10:46,160 --> 00:10:48,454 それが取るために起こっていること メモリの膨大な量。 255 00:10:48,454 --> 00:10:50,620 そこで、彼らは多くのことになるだろう ハッシュテーブルよりも大きく、 256 00:10:50,620 --> 00:10:52,270 しかし、彼らは与えるつもりです 私たちはるかに高速に検索倍。 257 00:10:52,270 --> 00:10:54,478 だから、あなたのようなものです トレードオフ、あなたが気に何を、 258 00:10:54,478 --> 00:10:57,350 それは速度やメモリのですか。 259 00:10:57,350 --> 00:11:02,251 そのいずれかの上の任意の質問、 Cデータ構造の全て。 260 00:11:02,251 --> 00:11:02,750 綺麗な。 261 00:11:02,750 --> 00:11:03,250 OK。 262 00:11:03,250 --> 00:11:07,322 私たちは少しに移動しようとしています マリアとWeb開発のビット。 263 00:11:07,322 --> 00:11:08,280 MARIA ZLATKOVA:ラブリー。 264 00:11:08,280 --> 00:11:09,036 OK。 265 00:11:09,036 --> 00:11:10,380 >> HANNAHブラムバーグ:あなたは私のラップトップを使用することができます。 266 00:11:10,380 --> 00:11:11,255 >> MARIA ZLATKOVA:ニース。 267 00:11:11,255 --> 00:11:13,320 268 00:11:13,320 --> 00:11:14,912 うんいいね。 269 00:11:14,912 --> 00:11:17,120 私たちはウェブに今移動します 開発、我々は少し話をしました 270 00:11:17,120 --> 00:11:20,680 パーミッションの変更について ファイルやディレクトリの 271 00:11:20,680 --> 00:11:24,190 彼らがアクセスできるよう 他のユーザーに、世界に、 272 00:11:24,190 --> 00:11:28,640 私たちはどのように見ることができるように 基本的に我々はそれらを伝えることができます 273 00:11:28,640 --> 00:11:32,600 我々は、ウェブサイトのようなものを開発するとき 私たちは主に行ってきたこと。 274 00:11:32,600 --> 00:11:36,400 >> だから我々は、chmodコマンドを見て、 これは、基本的には、変更モードです。 275 00:11:36,400 --> 00:11:39,300 それは、Linuxのコマンドだと それは、アクセス権を変更します 276 00:11:39,300 --> 00:11:40,410 ファイル・システム・オブジェクト。 277 00:11:40,410 --> 00:11:43,370 ファイルシステムオブジェクトであります 単なるディレクトリ、ファイル、 278 00:11:43,370 --> 00:11:46,810 何もそのことができます のアクセス権を変更します。 279 00:11:46,810 --> 00:11:53,750 >> だから、ファイルのアクセス権を表示するには、 我々は、ls -lコマンドは、リストを入力します。 280 00:11:53,750 --> 00:11:56,500 そして、我々はそれを入力すると、我々 通常、いくつかの権限を参照してください 281 00:11:56,500 --> 00:11:59,660 それは一種のようになり ディレクトリ名の前にインチ 282 00:11:59,660 --> 00:12:01,260 だから、dはディレクトリを参照します。 283 00:12:01,260 --> 00:12:05,930 そして、我々は3を持っています トライアドは基本的に 284 00:12:05,930 --> 00:12:11,675 いずれかの権限を参照してください。 ユーザー、グループ、または世界。 285 00:12:11,675 --> 00:12:16,490 >> アクセス権の種類、我々ができること これらの人々の三つのグループのために持っています 286 00:12:16,490 --> 00:12:20,830 以下のためのwのいずれかが、rが読取り 書き込み、および実行のためのx。 287 00:12:20,830 --> 00:12:23,650 そして、我々はのものを持つことができます グループや世界にも。 288 00:12:23,650 --> 00:12:26,940 トリッキーなことは、その時々です 私たちは、chmodコマンドを入力すると、 289 00:12:26,940 --> 00:12:32,960 我々はいくつかの番号を入力します すなわち、3ビットで構成されていました。 290 00:12:32,960 --> 00:12:36,990 だから我々は次のように行うことができます 777と基本的に 291 00:12:36,990 --> 00:12:40,450 付加価値と呼ば これらのトライアドのそれぞれの 292 00:12:40,450 --> 00:12:45,060 rは4を参照してくださいになるので、wは希望 2を参照して、xは1に参照することになり、 293 00:12:45,060 --> 00:12:50,020 そう、数字のそれぞれを追加したとき 累積数に降りてくるだろう 294 00:12:50,020 --> 00:12:52,750 0〜7の累積値に設定します。 295 00:12:52,750 --> 00:12:55,150 だから我々はまた、0を持つことができます 全く権限のため。 296 00:12:55,150 --> 00:12:58,200 そして、それは基本的に私たちを与えるだろう いずれかのユーザーのアクセス許可、 297 00:12:58,200 --> 00:13:00,450 グループ、または世界。 298 00:13:00,450 --> 00:13:02,620 これまでのところ、この上の任意の質問? 299 00:13:02,620 --> 00:13:05,331 >> 観客:あなたが読んでは4と言いましたか? 300 00:13:05,331 --> 00:13:06,164 MARIA ZLATKOVA:はい。 301 00:13:06,164 --> 00:13:07,568 聴衆:[聞こえません]。 302 00:13:07,568 --> 00:13:08,504 HANNAHブラムバーグ:うん。 303 00:13:08,504 --> 00:13:11,790 聴衆:そしてそれらのすべてのを追加することで 他の人があなたの数を示すことになります。 304 00:13:11,790 --> 00:13:12,665 MARIA ZLATKOVA:うん。 305 00:13:12,665 --> 00:13:14,970 うん。 306 00:13:14,970 --> 00:13:17,810 これらは素晴らしい質問です。 307 00:13:17,810 --> 00:13:20,490 美しい。 308 00:13:20,490 --> 00:13:25,340 次に、我々は、HTMLとAに飛び込みました Web開発についてもう少し。 309 00:13:25,340 --> 00:13:27,990 だから、HTMLはちょうど意味します ハイパーテキストマークアップ言語。 310 00:13:27,990 --> 00:13:30,460 そして、それはマークアップです 標準であり、言語 311 00:13:30,460 --> 00:13:32,720 これは、ウェブページを作成するために使用されるということ。 312 00:13:32,720 --> 00:13:35,750 >> これは、マークアップ言語と呼ばれています それは実際にコンパイルされていないため。 313 00:13:35,750 --> 00:13:40,310 それはどのようにいくつかのコードがすべきと言っていません 実行されるか、またはそのようなものさ。 314 00:13:40,310 --> 00:13:44,800 それはちょうど描写と どのようにウェブを説明 315 00:13:44,800 --> 00:13:46,840 ページをセットアップする必要があります その要素のそれぞれと 316 00:13:46,840 --> 00:13:48,460 彼らは、ユーザーにどのように見えるべきか。 317 00:13:48,460 --> 00:13:53,090 318 00:13:53,090 --> 00:13:57,110 >> HTMLタグの一部は、我々 渡りは、以下の通りです。 319 00:13:57,110 --> 00:14:00,500 私たちのHTMLドキュメントのすべて DOCTYPE htmlの作業を開始しています。 320 00:14:00,500 --> 00:14:02,550 その後、我々は常に、htmlタグを持っています。 321 00:14:02,550 --> 00:14:03,930 私たちは、頭と体を持っています。 322 00:14:03,930 --> 00:14:07,890 そして、それは、HTMLが持つことが重要です 入れ子構造のこの種の 323 00:14:07,890 --> 00:14:09,280 それは非常に明確だから。 324 00:14:09,280 --> 00:14:13,200 そしてそれは非常に明確になったときに、私たちを 実際に近いタグを開いて、する必要があります。 325 00:14:13,200 --> 00:14:18,400 そして、我々は常に閉じる必要があります 我々が開いたタグ。 326 00:14:18,400 --> 00:14:23,170 >> そしてここで私達はタイプのいくつかを持っています 私たちは持っていたい先の事を。 327 00:14:23,170 --> 00:14:26,580 だから我々は持っている、例えば、 CS50のタイトル。 328 00:14:26,580 --> 00:14:31,980 そして、我々実際 スタイルシートをリンクすることができます 329 00:14:31,980 --> 00:14:34,030 それは私達が私達のウェブサイトをスタイルする方法を定義します。 330 00:14:34,030 --> 00:14:35,650 それは、CSSです。 331 00:14:35,650 --> 00:14:39,320 私たちは、それを介して行くつもりです 同様に、スライドの次のカップル。 332 00:14:39,320 --> 00:14:42,580 >> 体の中で、我々は設定します 一部のクラスとID。 333 00:14:42,580 --> 00:14:45,860 そしてリマインダとして、再び、 IDは一意であるとクラス 334 00:14:45,860 --> 00:14:47,390 複数の項目に割り当てることができます。 335 00:14:47,390 --> 00:14:52,110 そして、それはちょうどことを意味 我々は、クラスとIDを使用することができます 336 00:14:52,110 --> 00:14:55,860 ので、他のstructures--内で、用 たとえば、CSSファイルやスタイルの中 337 00:14:55,860 --> 00:15:00,940 特定の要素を参照するためにsheets-- 基本的に私たちはスタイルにしたいと言います 338 00:15:00,940 --> 00:15:03,280 またはいくつかの要素をデザイン いくつかの特定の方法です。 339 00:15:03,280 --> 00:15:06,440 そして、我々はによってそれらを参照 そのIDとクラス。 340 00:15:06,440 --> 00:15:09,870 そして、我々はまた、を参照することができます 同様に、タグによって異なるもの、 341 00:15:09,870 --> 00:15:13,830 しかし、IDとクラスがちょうど私たちにいくつかを与えます 汎用性と具体的にどのような我々 342 00:15:13,830 --> 00:15:15,850 を参照したいです。 343 00:15:15,850 --> 00:15:19,620 >> だから例。 344 00:15:19,620 --> 00:15:22,730 私たちは再び、内、することができます どこCSSファイル 345 00:15:22,730 --> 00:15:25,770 いくつかを定義したいです style--色、フォントので、 346 00:15:25,770 --> 00:15:30,340 スタッフたちができるようにthat-- 体のスタイルを定義します。 347 00:15:30,340 --> 00:15:32,640 だから、それを定義します 全身タグの。 348 00:15:32,640 --> 00:15:36,160 しかし、我々はまた、定義することができます #titleのスタイル。 349 00:15:36,160 --> 00:15:40,390 そして再び、ハッシュタグは、私たちを参照 IDとドットが私たちのクラスを参照します。 350 00:15:40,390 --> 00:15:44,760 >> そしての.infoため、我々 また、いくつかの属性を設定することができます。 351 00:15:44,760 --> 00:15:49,750 我々は戻って行くときそして再び、私たちはしていました クラスには、情報と私たちのIDのタイトルと呼ばれます。 352 00:15:49,750 --> 00:15:53,422 そして、私たちは私たちが参照していることを見ることができます #titleとの.infoによってそれらに。 353 00:15:53,422 --> 00:15:55,380 聴衆:あなたが言うだろう ハッシュタグ [?私を採用? ?] 354 00:15:55,380 --> 00:15:55,725 MARIA ZLATKOVA:申し訳ありませんか? 355 00:15:55,725 --> 00:15:58,120 聴衆:あなたが言うだろう ハッシュタグ [?私を採用? ?] 356 00:15:58,120 --> 00:16:01,400 MARIA ZLATKOVA:ハッシュタグ ID、そう#titleを意味 357 00:16:01,400 --> 00:16:07,890 どのような要素を指し、 タイトルと呼ばれるこのIDを持っています。 358 00:16:07,890 --> 00:16:10,735 そして、ドットは、クラスを参照します。 359 00:16:10,735 --> 00:16:14,590 だからの.infoは、この要素を指し、 それは、クラス情報を有するからです。 360 00:16:14,590 --> 00:16:15,090 うん。 361 00:16:15,090 --> 00:16:17,905 >> 聴衆:なぜあなたは HTMLでそれらを区別? 362 00:16:17,905 --> 00:16:20,985 なぜあなたは、特定の物事があると言うん IDと特定の物事は、クラスですか? 363 00:16:20,985 --> 00:16:22,610 MARIA ZLATKOVA:それはちょうどyou--次第です 364 00:16:22,610 --> 00:16:24,151 HANNAHブラムバーグ:質問を繰り返します。 365 00:16:24,151 --> 00:16:25,370 MARIA ZLATKOVA:ああ、申し訳ありません。 366 00:16:25,370 --> 00:16:29,480 なぜ我々は、特定の要素を区別しません IDやクラスなどの他の要素と? 367 00:16:29,480 --> 00:16:34,760 それはだからそれはちょうどです 本当に多くの場合、設計上の選択。 368 00:16:34,760 --> 00:16:38,520 それはあなたの多くを提供します であることに汎用性 369 00:16:38,520 --> 00:16:43,250 私はこの特定のアイテムをしたいと言うことができます 彼らがしたいので、このIDを持っています 370 00:16:43,250 --> 00:16:45,300 たくさんのことを行うには それ、私の唯一の 371 00:16:45,300 --> 00:16:50,010 スタイルを定義する、特定のスタイル その項目の色または何でも。 372 00:16:50,010 --> 00:16:52,630 それを行うには、道 ただそれにIDを与えています。 373 00:16:52,630 --> 00:16:55,060 >> そして、私が持っているしたい場合は さまざまなアイテムのカップル 374 00:16:55,060 --> 00:16:58,940 有する、代わりにそれ 行くとtheir--設定 375 00:16:58,940 --> 00:17:03,840 代わりにしてそれを行うための タグタグがあろうから 376 00:17:03,840 --> 00:17:07,369 タグ全体のためにセルを設定 毎回、そのタグが使用され、 377 00:17:07,369 --> 00:17:09,740 あなたが複数の項目にクラスを設定することができます。 378 00:17:09,740 --> 00:17:15,109 そして、ちょうどそのクラスにアクセスして言います 私は、このクラスをそのようにスタイルをしたいと思います。 379 00:17:15,109 --> 00:17:17,579 >> そして再び、クラスができます 複数の異なる項目も 380 00:17:17,579 --> 00:17:21,150 そして、IDは一意である必要があります。 381 00:17:21,150 --> 00:17:21,849 偉大な質問。 382 00:17:21,849 --> 00:17:25,339 その他の質問は? 383 00:17:25,339 --> 00:17:26,220 [OK]を、素晴らしいです。 384 00:17:26,220 --> 00:17:30,680 385 00:17:30,680 --> 00:17:35,330 繰り返しますが、これはどのようにこれらのセレクタです ハッシュタグでは、CSSで参照され、 386 00:17:35,330 --> 00:17:40,031 ドットで、またはのために何もせずに いくつかのタグのスタイルを割り当て、 387 00:17:40,031 --> 00:17:40,530 体のような。 388 00:17:40,530 --> 00:17:43,500 389 00:17:43,500 --> 00:17:47,860 そして、ここでは一般的なを持っています これがどのように行われるかの構文。 390 00:17:47,860 --> 00:17:52,830 391 00:17:52,830 --> 00:17:55,680 >> いくつかのベストを繰り返します HTMLとCSSの実践、 392 00:17:55,680 --> 00:17:59,170 我々は再び、すべて閉じ、する必要があり 我々が開いてHTMLタグ。 393 00:17:59,170 --> 00:18:03,950 そして、私たちはあなたをお勧めします 最終的なプロジェクトのために行います、 394 00:18:03,950 --> 00:18:10,560 同様にCS50ファイナンスのためとして、作ることです あなたのHTMLのすべてを検証していることを確認してください。 395 00:18:10,560 --> 00:18:12,920 そして、それはW3バリで行われています。 396 00:18:12,920 --> 00:18:16,940 >> そして、私たちがやったことと 私たちは何をしているお勧めします 397 00:18:16,940 --> 00:18:19,790 そう、スタイルを分離しています マークアップHTMLからCSS。 398 00:18:19,790 --> 00:18:24,210 方法に関し、だから何も あなたのページには、視覚的に見に行くされています 399 00:18:24,210 --> 00:18:27,330 そしてそれはどのように修正することになるだろう CSSドキュメントに行く必要があります。 400 00:18:27,330 --> 00:18:33,880 そして、あなたのマークアップはどのようなことを言って 相互に関係しているが、HTMLで 401 00:18:33,880 --> 00:18:37,550 それは中に入る必要があります あなたのHTMLドキュメントの。 402 00:18:37,550 --> 00:18:38,590 質問は? 403 00:18:38,590 --> 00:18:39,226 MHM。 404 00:18:39,226 --> 00:18:42,628 >> 聴衆:正確に何が起こっています ページの検証と上 405 00:18:42,628 --> 00:18:47,945 私たちが検証しているとき [聞こえない]作成されたHTML? 406 00:18:47,945 --> 00:18:49,850 >> MARIA ZLATKOVA:だからあなたを思いますwhat--。 407 00:18:49,850 --> 00:18:53,020 だから、正確に何が起こっています ページの検証と上 408 00:18:53,020 --> 00:18:55,570 そしてなぜ我々はそれを行う必要がありますか? 409 00:18:55,570 --> 00:18:59,180 基本的に、我々はそれを行う必要があります 多くの時間のため、お使いのブラウザ、 410 00:18:59,180 --> 00:19:01,390 あなたは、タグを閉じていない場合 またはそのような何か、 411 00:19:01,390 --> 00:19:05,680 お使いのブラウザはまだしようとしています ページをレンダリングしても動作するかもしれません、 412 00:19:05,680 --> 00:19:10,840 それはそれを確認するために練習をお勧めします あなたは、もう一度、すべてのタグを閉じましたが、 413 00:19:10,840 --> 00:19:13,190 すべての要素があること 彼らはあるべき姿、 414 00:19:13,190 --> 00:19:18,470 基本的に、それはによってだと 予め設定されている規則。 415 00:19:18,470 --> 00:19:21,970 >> それは、再び、ちょうど 事あなたがすべきこと 416 00:19:21,970 --> 00:19:24,040 やっていることを学ぶことが、 するものではなく 417 00:19:24,040 --> 00:19:25,696 そのようなsloppierコードとスタッフ。 418 00:19:25,696 --> 00:19:26,688 うん。 419 00:19:26,688 --> 00:19:27,680 あ、ごめんなさい。 420 00:19:27,680 --> 00:19:29,221 私はあなたがあなたの手を上げたと思いました。 421 00:19:29,221 --> 00:19:31,240 聴衆:いいえ、私はちょうど[聞こえない]でした。 422 00:19:31,240 --> 00:19:33,800 >> MARIA ZLATKOVA:[OK]をクリックします。 423 00:19:33,800 --> 00:19:34,640 >> 観客は:ありがとうございます。 424 00:19:34,640 --> 00:19:36,181 >> MARIA ZLATKOVA:もちろん、あなたに感謝。 425 00:19:36,181 --> 00:19:41,680 だからもう一度、どのように起こっています 情報が転送されます 426 00:19:41,680 --> 00:19:44,630 通信モデル 情報を転送します。 427 00:19:44,630 --> 00:19:45,730 TCP / IP。 428 00:19:45,730 --> 00:19:48,600 TCPは単に送信を意味します 制御プロトコルとIP 429 00:19:48,600 --> 00:19:51,260 インターネットプロトコルを意味します。 430 00:19:51,260 --> 00:19:54,275 そして、それはちょうどを指し、 データが配信される方法。 431 00:19:54,275 --> 00:19:59,470 432 00:19:59,470 --> 00:20:02,710 >> 我々はいくつかのデータを持っている場合は、その そうyou--に配信する必要があります 433 00:20:02,710 --> 00:20:06,770 あなたは、特定のサーバーを要求します。 434 00:20:06,770 --> 00:20:09,800 例えば、我々 cs50.netにアクセスしようとすると、 435 00:20:09,800 --> 00:20:12,420 我々は要求に作ります CS50サーバと我々 436 00:20:12,420 --> 00:20:14,720 我々が取得したいことがわかり この種の情報。 437 00:20:14,720 --> 00:20:19,294 そして、このプロトコルに基づいています この情報が配信される方法については、 438 00:20:19,294 --> 00:20:21,460 サーバーは、情報を提供します 私達に戻って、クライアント。 439 00:20:21,460 --> 00:20:25,590 そして、我々は見ることができるしています ページのための情報 440 00:20:25,590 --> 00:20:26,390 し、それを使用しています。 441 00:20:26,390 --> 00:20:29,300 442 00:20:29,300 --> 00:20:33,050 >> それでは、ハイパーテキスト転送プロトコル ちょうど別のプロトコルまたはセットです 443 00:20:33,050 --> 00:20:37,470 どのように定義する規則の WebブラウザとWebサーバ 444 00:20:37,470 --> 00:20:38,890 通信する必要があります。 445 00:20:38,890 --> 00:20:43,730 そして、このすべてを置きます 一緒に、HTTP、再び、 446 00:20:43,730 --> 00:20:50,960 ちょうどこのハイパーテキストが定義されている方法を定義します 我々はそれを働いてきたHTMLにより、 447 00:20:50,960 --> 00:20:59,500 それはあなたに配信する方法と どのように配信されているデータ 448 00:20:59,500 --> 00:21:00,540 あなたに取得します。 449 00:21:00,540 --> 00:21:05,990 >> そして、なぜあなたたちは覚えていればそれは、です クラスから、私たちはリクエストがたくさんあり​​ました 450 00:21:05,990 --> 00:21:08,970 私たちは、構文の多くを持っていました 私たちがしているこれらの要求のために 451 00:21:08,970 --> 00:21:10,250 今の上に行くつもり。 452 00:21:10,250 --> 00:21:13,270 だからもう一度、私たちが送信するとき サーバーへの要求、 453 00:21:13,270 --> 00:21:15,920 我々は物事のカップルを定義する必要があります。 454 00:21:15,920 --> 00:21:18,520 だから我々は、型を見つける必要があります 我々が設定している要求の。 455 00:21:18,520 --> 00:21:22,180 そして再び、我々は、例えば、 GETメソッドの一種であります 456 00:21:22,180 --> 00:21:25,290 我々は我々の要求を持っていること。 457 00:21:25,290 --> 00:21:31,710 >> そして、HTTP / 1.1だけです 私たちが現在使用しているプロトコル。 458 00:21:31,710 --> 00:21:34,224 459 00:21:34,224 --> 00:21:36,890 ほとんどの時間、それが起こっています 私たちが使用しているプロトコルに。 460 00:21:36,890 --> 00:21:40,290 ですから、質問がある場合 クイズのような。 461 00:21:40,290 --> 00:21:43,120 それが慣習です 私たちがこれまで持っています。 462 00:21:43,120 --> 00:21:46,580 >> バックスラッシュは、どのようなことをいいます 物事の我々が要求しています。 463 00:21:46,580 --> 00:21:52,810 その後、我々のホストは、この中で、例えば、 場合、私達はgoogle.comに行くしようとしています。 464 00:21:52,810 --> 00:21:57,070 だから、これはホストの値です。 465 00:21:57,070 --> 00:21:59,330 これは、要求のタイプです それが送ることができます。 466 00:21:59,330 --> 00:22:02,890 >> そしてできた応答のタイプ このプロトコルに基づいて、再び、送信され、 467 00:22:02,890 --> 00:22:05,190 HTTP / 1.1は、再びです。 468 00:22:05,190 --> 00:22:07,150 だから、再びHTTPバージョンです。 469 00:22:07,150 --> 00:22:09,730 200 OKは、単にステータスコードです。 470 00:22:09,730 --> 00:22:12,860 そして、[OK]をクリックしてちょうどフレーズであること そのステータスコードに基づきます。 471 00:22:12,860 --> 00:22:15,520 >> そして、コンテンツタイプ 型を参照 472 00:22:15,520 --> 00:22:20,295 それはつまり、あなたに返されます あなたが受け取ることWebページの 473 00:22:20,295 --> 00:22:22,570 そして、ブラウザこと その後レンダリングすることができます。 474 00:22:22,570 --> 00:22:24,401 そして、それはテキスト/ htmlです。 475 00:22:24,401 --> 00:22:26,660 >> 聴衆:1.1は何を意味するのでしょうか? 476 00:22:26,660 --> 00:22:29,910 >> MARIA ZLATKOVA:それはちょうどです バージョンof--ああ、1.1は何を意味するのでしょうか? 477 00:22:29,910 --> 00:22:37,075 それはちょうどバージョンで、HTTP 私たちが使用しているプロトコルのバージョン。 478 00:22:37,075 --> 00:22:37,700 素晴らしい質問です。 479 00:22:37,700 --> 00:22:38,366 その他の質問? 480 00:22:38,366 --> 00:22:41,222 481 00:22:41,222 --> 00:22:45,080 >> 観客:あなたは総括でした Content-Typeの本当の迅速な? 482 00:22:45,080 --> 00:22:48,150 >> MARIA ZLATKOVA:だから どのサーバです。 483 00:22:48,150 --> 00:22:51,020 何であるかinformation--のタイプ コンテンツタイプが質問しました。 484 00:22:51,020 --> 00:22:53,400 だから、のタイプでした あなたが戻って取得する情報 485 00:22:53,400 --> 00:22:58,200 サーバからのタイプ データブラウザは、次にできること 486 00:22:58,200 --> 00:23:00,604 あなたが使用していることをレンダリングします。 487 00:23:00,604 --> 00:23:03,020 観客は:どのようなこのことです プロトコルは何をするあなたを言っていますか? 488 00:23:03,020 --> 00:23:03,390 MARIA ZLATKOVA:申し訳ありませんか? 489 00:23:03,390 --> 00:23:05,380 観客は:プロトコルが何を言うことはありますか? 490 00:23:05,380 --> 00:23:05,915 MARIA ZLATKOVA:protocol-- 491 00:23:05,915 --> 00:23:07,940 聴衆:--what コンテンツタイプであるか​​、またはwhat-- 492 00:23:07,940 --> 00:23:12,040 MARIA ZLATKOVA:プロトコルは基づいています on--を伝えるプロトコルは何ですか? 493 00:23:12,040 --> 00:23:16,070 それはちょうど方法です この情報はその 494 00:23:16,070 --> 00:23:18,610 あなたに配信されたベース プロトコルの種類を上 495 00:23:18,610 --> 00:23:21,830 この情報は得ました あなたに戻って配信。 496 00:23:21,830 --> 00:23:23,500 ソートの意味を成しているしていますか? 497 00:23:23,500 --> 00:23:28,320 498 00:23:28,320 --> 00:23:30,070 HANNAHブラムバーグ:あなた プロトコルを考えることができます 499 00:23:30,070 --> 00:23:33,300 A--ように私は教授を考えます マランはそれを説明しました 500 00:23:33,300 --> 00:23:36,910 クラスのような種類のA--のようにそれはようなものです 人間のハンドシェイクの同等。 501 00:23:36,910 --> 00:23:44,930 以下のような、ちょっと、私は要求だ、と言うと私 バージョン1.1のHTTPを処理する方法を知っています。 502 00:23:44,930 --> 00:23:48,770 そしてサーバは、言います ああ、[OK]を、I--との両方が存在します。 503 00:23:48,770 --> 00:23:51,337 私は、HTTP / 1.1に対処する方法を知っています。 504 00:23:51,337 --> 00:23:53,170 そして、私は与えるつもりです あなたは、いくつかのコンテンツをバックアップします。 505 00:23:53,170 --> 00:23:56,230 この場合、それが起こっています タイプtext / htmlのであるように。 506 00:23:56,230 --> 00:23:58,480 だから、ちょっとだけの方法です communicating--のためにそれらの 507 00:23:58,480 --> 00:24:00,480 >> MARIA ZLATKOVA:それはちょうどです あなたがしていることを確認しました 508 00:24:00,480 --> 00:24:03,290 両方同じ以下 プロトコルとその両方 509 00:24:03,290 --> 00:24:06,620 クライアントとそうserver-- お使いのブラウザとserver-- 510 00:24:06,620 --> 00:24:09,280 一種のあなたがしているものを知っています 話としてい 511 00:24:09,280 --> 00:24:12,557 データを渡すための規約。 512 00:24:12,557 --> 00:24:17,022 >> 聴衆:だからのContent-Type part-- コンテンツタイプのテキスト/ html--のこと 513 00:24:17,022 --> 00:24:18,521 同じメッセージの別の部分? 514 00:24:18,521 --> 00:24:20,509 それとも、のは言わせての一部、200ですか? 515 00:24:20,509 --> 00:24:22,010 200は彼らにそのまたはis--を教えています 516 00:24:22,010 --> 00:24:23,770 >> MARIA ZLATKOVA:200はそれをすべてがOKに行ったと言います。 517 00:24:23,770 --> 00:24:27,900 そして、コンテンツタイプは、の一種であります 同じメッセージの別の部分、 518 00:24:27,900 --> 00:24:34,274 私の事を言って 返されたtext / htmlのこのタイプを持っています。 519 00:24:34,274 --> 00:24:35,690 それはちょうどより多くの情報を与えています。 520 00:24:35,690 --> 00:24:38,700 521 00:24:38,700 --> 00:24:39,995 追加するものがありますか? 522 00:24:39,995 --> 00:24:40,495 OK。 523 00:24:40,495 --> 00:24:43,590 524 00:24:43,590 --> 00:24:46,530 >> この上の任意の他の質問? 525 00:24:46,530 --> 00:24:48,370 驚くばかり。 526 00:24:48,370 --> 00:24:54,070 だから、いくつかの他のHTTPステータスこと 我々は、200 OKに加えて得ることができます 527 00:24:54,070 --> 00:24:59,500 我々は多分見てきたもの おそらく多くは403と404です。 528 00:24:59,500 --> 00:25:05,190 だから404、あなたがしようとしていた場合 存在しないものにアクセスします。 529 00:25:05,190 --> 00:25:10,460 だから例えば、あなたの中に CS50金融のpset、 530 00:25:10,460 --> 00:25:15,640 あなたはquote.htmlレンダリングされていた場合 あなたは、そのファイルを持っていませんでした、 531 00:25:15,640 --> 00:25:19,740 その代わりに、あなたは、quote.php持っていました 404をもたらすであろうが見つかりません 532 00:25:19,740 --> 00:25:21,600 ファイルが存在しない場合がありますので。 533 00:25:21,600 --> 00:25:25,690 >> 403の場合と、禁じられ 権限を指します。 534 00:25:25,690 --> 00:25:31,150 だから、いくつかのファイルがによって読み取り可能でない場合 世界、あなたは403が返される可能性があります。 535 00:25:31,150 --> 00:25:34,510 536 00:25:34,510 --> 00:25:37,810 いくつかの他のあなたがかもしれません 301 get--、完全に移動。 537 00:25:37,810 --> 00:25:41,300 302、見つかりました。 304は、変更されました。 400、不正な要求。 538 00:25:41,300 --> 00:25:47,330 用して、内部サーバーエラー 500及び503、サービスを使用できません。 539 00:25:47,330 --> 00:25:48,140 はい。 540 00:25:48,140 --> 00:25:51,490 >> 観客:我々が期待されます これらすべてのステータスを覚えますか? 541 00:25:51,490 --> 00:25:53,739 MARIA ZLATKOVA:私が持っているだろう あなたのカンニングペーパーにそれら。 542 00:25:53,739 --> 00:25:55,146 [笑い] 543 00:25:55,146 --> 00:25:59,954 観客:我々は期待されています それぞれをトリガ知っていますか? 544 00:25:59,954 --> 00:26:00,995 MARIA ZLATKOVA:彼らはありますか? 545 00:26:00,995 --> 00:26:03,870 HANNAHブラムバーグ:私たちはきたもののために そう質問をinto--実行was-- 546 00:26:03,870 --> 00:26:08,010 MARIA ZLATKOVA:彼らが期待されています これらの状態のものをそれぞれ1を知っています 547 00:26:08,010 --> 00:26:09,330 コー​​ドによって引き起こされる可能性がありますか? 548 00:26:09,330 --> 00:26:13,240 我々が使用したもののためにそう とに走った、私ははい、と言うでしょう。 549 00:26:13,240 --> 00:26:16,610 だから我々は間違いなく200を見てきました OKとのpsetでそれを講義。 550 00:26:16,610 --> 00:26:19,071 私たちは403、404を見てきました。 551 00:26:19,071 --> 00:26:20,550 他のもののために? 552 00:26:20,550 --> 00:26:22,690 >> HANNAHブラムバーグ:私は希望 500は公正なゲームだと言います。 553 00:26:22,690 --> 00:26:23,330 >> MARIA ZLATKOVA:500、ええ。 554 00:26:23,330 --> 00:26:24,246 >> HANNAHブラムバーグ:うん。 555 00:26:24,246 --> 00:26:27,006 ただ、一般的な意味を持っています それらの原因となるものを。 556 00:26:27,006 --> 00:26:28,880 そしてまた、単にこれらのことにより、 名前、することができます種類の 557 00:26:28,880 --> 00:26:32,890 などの推測を作ります 実際にそれらの原因に。 558 00:26:32,890 --> 00:26:36,919 例えば、おそらく、恒久的に移動します ファイルは永久に移動されました。 559 00:26:36,919 --> 00:26:39,328 >> 聴衆:しかし、前に 試験、そうではありました 560 00:26:39,328 --> 00:26:41,050 どのようにあなたはそれに答えるために私達を期待していますか? 561 00:26:41,050 --> 00:26:42,883 >> HANNAHブラムバーグ:それ 零点の価値がありました。 562 00:26:42,883 --> 00:26:45,870 ティーポットに418の質問 技術的にはHTTPステータスで、 563 00:26:45,870 --> 00:26:47,090 それが零点の価値がありました。 564 00:26:47,090 --> 00:26:48,320 もちろん、あなたがいないなら それらを知っていることが期待。 565 00:26:48,320 --> 00:26:49,670 >> 観客は:それが現実のものですか? 566 00:26:49,670 --> 00:26:51,970 >> HANNAHブラムバーグ:それは本当です 一つは、それが何を意味するものではありません。 567 00:26:51,970 --> 00:26:52,700 それは冗談です。 568 00:26:52,700 --> 00:26:55,480 569 00:26:55,480 --> 00:26:57,010 インターネットの人々が面白いです。 570 00:26:57,010 --> 00:26:59,680 >> MARIA ZLATKOVA:グレート質問、みんな。 571 00:26:59,680 --> 00:27:01,452 その他の質問は? 572 00:27:01,452 --> 00:27:04,891 >> 聴衆:内部サーバーエラーとは何ですか? 573 00:27:04,891 --> 00:27:06,640 MARIA ZLATKOVA:内部 サーバーエラーだけ 574 00:27:06,640 --> 00:27:10,050 あなたがされていることを意味し 通信することができません 575 00:27:10,050 --> 00:27:13,400 何らかの理由でサーバーと。 576 00:27:13,400 --> 00:27:15,400 だから、必ずしもではありません 関係しているもの 577 00:27:15,400 --> 00:27:19,170 クライアントまたはそのような何かを持ちます。 578 00:27:19,170 --> 00:27:22,170 私は、任意の具体的な例を知りません 私たちが説明してオーバー行ってきたことを、 579 00:27:22,170 --> 00:27:23,000 しかし、ええ。 580 00:27:23,000 --> 00:27:23,250 >> HANNAHブラムバーグ:確かに。 581 00:27:23,250 --> 00:27:25,625 したがって、たとえば、のようにしてみましょう あなたがマッシュアップに取り組んでいたと言います 582 00:27:25,625 --> 00:27:30,440 Googleのサーバーは、いくつかのためにダウンしました 理由、停電、のは言わせて。 583 00:27:30,440 --> 00:27:33,400 それは内部サーバになります エラーやあなたのようないくつかの並べ替えof-- 584 00:27:33,400 --> 00:27:34,630 応答を取り戻すないだろう。 585 00:27:34,630 --> 00:27:35,260 >> MARIA ZLATKOVA:うん。 586 00:27:35,260 --> 00:27:37,050 あなたがいるときそれはちょうどです 通信することができません 587 00:27:37,050 --> 00:27:40,299 何らかの理由でサーバーとの理由 それがダウンしているか、他の何らかの理由で。 588 00:27:40,299 --> 00:27:44,430 589 00:27:44,430 --> 00:27:47,690 だから、PHPに飛び込みます。 590 00:27:47,690 --> 00:27:49,930 PHP、HTMLとは異なり、 プログラミング言語。 591 00:27:49,930 --> 00:27:54,820 それはだから、我々はそれを使用して開始します Web開発のために非常に便利。 592 00:27:54,820 --> 00:27:56,940 >> まず、CS50ファイナンスでそれを使用していました。 593 00:27:56,940 --> 00:28:02,240 そして、それは基本的に私たちが持って来ることができます 一緒にこのマークアップ、デザイン、 594 00:28:02,240 --> 00:28:07,460 私たちは、実際に情報を使用する方法 Webページ上のものを表示します。 595 00:28:07,460 --> 00:28:11,870 だから、PHP自体がPHPを意味します ハイパーテキストプリプロセッサ、 596 00:28:11,870 --> 00:28:15,360 それは、それ自体で再帰backnorymです。 597 00:28:15,360 --> 00:28:22,330 PHPのタグを開いて、私たち左 疑問符を持つと右の矢印 598 00:28:22,330 --> 00:28:23,060 PHP。 599 00:28:23,060 --> 00:28:25,890 >> だから我々はすでにそれをたくさん見てきました。 600 00:28:25,890 --> 00:28:29,150 今、私たちはわずかに行くつもりです それについての基本的な事柄のいくつか。 601 00:28:29,150 --> 00:28:32,280 PHPを使用した、変数そう 名前はドル記号で始まります。 602 00:28:32,280 --> 00:28:35,660 私たちは、再び、指定しません 変数は、もはや入力します。 603 00:28:35,660 --> 00:28:38,450 我々は、Cで行ったのと同じように、 我々はそれをする必要はありません。 604 00:28:38,450 --> 00:28:41,670 605 00:28:41,670 --> 00:28:44,490 >> 我々は、さまざまなの束を行うことができます 変数を持つもの。 606 00:28:44,490 --> 00:28:47,750 私たちは一緒にそれらを置くことができます それらを連結することによって 607 00:28:47,750 --> 00:28:52,900 ドット表記で、これ 我々は再びC言語で行うことができませんでした。 608 00:28:52,900 --> 00:28:57,490 繰り返しますが、我々はもう少し汎用性を持っています 変数の観点では、PHPと。 609 00:28:57,490 --> 00:29:00,080 繰り返しますが、私たちは主な機能を持っていません。 610 00:29:00,080 --> 00:29:03,370 >> そして、PHPは解釈されます コンパイルとは対照的に、 611 00:29:03,370 --> 00:29:09,970 だから私たちはCのファイルのために作ったのか、 我々は、PHPのためにそれを行う必要はありません。 612 00:29:09,970 --> 00:29:15,440 むしろ、言語その方法 単独で実行され、それは解釈されます。 613 00:29:15,440 --> 00:29:18,550 そしてルーズ ちょうど私達ことを意味 614 00:29:18,550 --> 00:29:22,490 変数を指定する必要はありません 型と変数の型 615 00:29:22,490 --> 00:29:25,415 実行時に理解されています。 616 00:29:25,415 --> 00:29:29,185 >> 聴衆:しかし、あなたがしました ドット連結によって意味ですか? 617 00:29:29,185 --> 00:29:30,060 MARIA ZLATKOVA:確かに。 618 00:29:30,060 --> 00:29:37,660 私たちは物事を入れたいときtogether-- ので、もし我々はいくつかの変数を持っていました 619 00:29:37,660 --> 00:29:41,500 3の値を持っていて、私達は別のものを持っていました 文字列の値を持っていた変数、 620 00:29:41,500 --> 00:29:45,920 私たちは一緒に変数を入れることができます それらの間にドットを置くことによって 621 00:29:45,920 --> 00:29:46,970 それらを連結します。 622 00:29:46,970 --> 00:29:52,670 それとも作成することができます 変数と呼ばれる名前 623 00:29:52,670 --> 00:29:56,900 とによってそれをまとめます 2つの文字列を連結します。 624 00:29:56,900 --> 00:30:00,680 >> だから我々は、二重に文字列があった場合 引用符と我々はそれの後にドットを入れて、 625 00:30:00,680 --> 00:30:03,660 し、我々は、別の文字列を持っていたこと 完全に文字列を作成します。 626 00:30:03,660 --> 00:30:05,242 >> 聴衆:[OK]をクリックします。 627 00:30:05,242 --> 00:30:06,450 MARIAラトビア:それははっきりしていましたか? 628 00:30:06,450 --> 00:30:07,099 聴衆:うん。 629 00:30:07,099 --> 00:30:07,890 MARIA ZLATKOVA:[OK]をクリックします。 630 00:30:07,890 --> 00:30:08,766 はい。 631 00:30:08,766 --> 00:30:11,146 >> 観客:あなたが言います 解釈ではなく、コンパイルされ、 632 00:30:11,146 --> 00:30:14,160 あなたがあなたについて話しているしないでください ときのように具体的にする必要があります 633 00:30:14,160 --> 00:30:15,906 それは、C対PHPに来ますか? 634 00:30:15,906 --> 00:30:18,085 635 00:30:18,085 --> 00:30:20,710 MARIA ZLATKOVA:私たちが言います コンパイルとは対照的に解釈し、 636 00:30:20,710 --> 00:30:21,850 私たちは何を意味するのですか? 637 00:30:21,850 --> 00:30:26,220 だから、私たちが必要としないことを意味し PHPを実行するための実行可能ファイル。 638 00:30:26,220 --> 00:30:29,870 それが行くように、それが実行されることを意味します。 639 00:30:29,870 --> 00:30:31,650 それは理にかなっていますか? 640 00:30:31,650 --> 00:30:32,495 もう少し。 641 00:30:32,495 --> 00:30:34,620 HANNAHブラムバーグ:だから 通訳と考えることができます 642 00:30:34,620 --> 00:30:38,980 責任がある別のプログラムとして PHPを介して行ずつ行くため 643 00:30:38,980 --> 00:30:42,745 対照的に、実際に、それを実行します バイナリにそれをすべてダウンしてコンパイルします。 644 00:30:42,745 --> 00:30:46,050 それは実際には何の意味もありません 私たちがする必要があるか特定について。 645 00:30:46,050 --> 00:30:49,470 我々はまだ正確には必要、とそうでありません あなたのセミコロンを忘れて、確認してください 646 00:30:49,470 --> 00:30:51,470 あなたはドル記号を持っています、 そのようなもの。 647 00:30:51,470 --> 00:30:52,240 良い質問。 648 00:30:52,240 --> 00:30:53,115 >> MARIA ZLATKOVA:うん。 649 00:30:53,115 --> 00:30:55,590 だから、行単位、など Cファイルとではなく、 650 00:30:55,590 --> 00:30:59,100 我々は全体の最終をしなければなりません 我々は実際にそれを実行する前に。 651 00:30:59,100 --> 00:31:00,360 それが主な違いです。 652 00:31:00,360 --> 00:31:02,655 しかし、再び、私たちがすることはできません 本当にあまり具体的なこと。 653 00:31:02,655 --> 00:31:08,760 654 00:31:08,760 --> 00:31:13,950 だから、PHPの配列が表します 実際には順番付けられたマップ。 655 00:31:13,950 --> 00:31:17,550 >> キーに関連付ける値配列がそう。 656 00:31:17,550 --> 00:31:23,350 宣言には二つの方法 配列は、次の構文に基づいて、 657 00:31:23,350 --> 00:31:26,380 我々はより明確にすることができます 言うには、我々は配列を持っています 658 00:31:26,380 --> 00:31:31,010 我々はにマップこのKEY1を持っています この値1、値2をマップKEY2。 659 00:31:31,010 --> 00:31:34,660 それとも単にアレイを作成することができます それは、値自体が含まれています 660 00:31:34,660 --> 00:31:38,360 して、キーがあります 以下のように理解。 661 00:31:38,360 --> 00:31:40,000 この上の任意の質問? 662 00:31:40,000 --> 00:31:42,500 >> 聴衆:何だろうキー 第二の例にありますか? 663 00:31:42,500 --> 00:31:47,100 664 00:31:47,100 --> 00:31:47,920 0、1、2、3? 665 00:31:47,920 --> 00:31:50,650 666 00:31:50,650 --> 00:31:55,780 >> MARIA ZLATKOVA:例えば、それだけです この中のキーは必ずしもありません 667 00:31:55,780 --> 00:31:56,550 違いを生みます。 668 00:31:56,550 --> 00:32:01,720 彼らはどれだけのことができます。定義します その中の値を使用します。 669 00:32:01,720 --> 00:32:08,660 だから我々は、foreachのを持っていた場合 PHPのループいるだろう 670 00:32:08,660 --> 00:32:14,760 私たちはすべての値を通過することができ、 我々はすべての値を通過することができ、 671 00:32:14,760 --> 00:32:19,570 私たちは持っていたか、定義されていなかった場合でも、 サイトの内の特定のキー 672 00:32:19,570 --> 00:32:20,820 以前の構文。 673 00:32:20,820 --> 00:32:23,460 >> だから、これでもソートと 配列の、我々はまだできました 674 00:32:23,460 --> 00:32:26,260 foreachループを持っています それは、各経由します 675 00:32:26,260 --> 00:32:31,240 配列で、キーの値の。 676 00:32:31,240 --> 00:32:36,180 foreachの構文そう ループは、我々は配列で始まります。 677 00:32:36,180 --> 00:32:38,720 678 00:32:38,720 --> 00:32:43,900 この$ arrの変数には、当社の実際の配列です 我々は、前のスライドで定義されていること 679 00:32:43,900 --> 00:32:47,550 文字通り行く価値として 値のそれぞれを介して、 680 00:32:47,550 --> 00:32:50,122 かかわらずかどうかの 私たちは鍵を持っていたかどうか。 681 00:32:50,122 --> 00:32:53,080 そして、我々はで何かを行うことができます foreachループの内部値。 682 00:32:53,080 --> 00:32:57,730 そこで再び、我々は配列を持っていた場合 ここでこのようなcreated-- 683 00:32:57,730 --> 00:33:03,270 私たちは、fooとの値のキーを持っています バー、バズのキーとqux--の値 684 00:33:03,270 --> 00:33:09,730 私たちは、foreachループを持つことができます キー値として配列を通過します 685 00:33:09,730 --> 00:33:11,900 して、何かをします キーおよび/または値を持ちます。 686 00:33:11,900 --> 00:33:15,980 しかし、我々は必ずしもありません foreachのは、そのループを持っている必要があります 687 00:33:15,980 --> 00:33:19,410 値をキーマップとして配列を通過します。 688 00:33:19,410 --> 00:33:26,060 我々は通過することができ 値としてforeachループ配列。 689 00:33:26,060 --> 00:33:28,990 >> HANNAHブラムバーグ:そして、私は思います あなたの質問は、to--何でしたか 690 00:33:28,990 --> 00:33:31,229 暗黙的なインデックスがありますか? 691 00:33:31,229 --> 00:33:31,895 聴衆:ちょっと。 692 00:33:31,895 --> 00:33:32,240 MARIA ZLATKOVA:ああ。 693 00:33:32,240 --> 00:33:33,406 HANNAHブラムバーグ:うん、うん。 694 00:33:33,406 --> 00:33:36,150 したがって、基本的に、あなたが指定していない場合 キー、それは01になるだろう。 695 00:33:36,150 --> 00:33:37,140 >> MARIA ZLATKOVA:うん。 696 00:33:37,140 --> 00:33:41,718 ちょうどCと同じように、それはゼロです キーを指定しない場合は索引付けされています。 697 00:33:41,718 --> 00:33:42,384 聴衆:申し訳ありません。 698 00:33:42,384 --> 00:33:43,827 あなたが話して試みることができます 少し大きな声で? 699 00:33:43,827 --> 00:33:45,270 私は少しを持っています トラブルのすべてを聞きました。 700 00:33:45,270 --> 00:33:46,478 >> MARIA ZLATKOVA:私はごめんなさい。 701 00:33:46,478 --> 00:33:48,439 ええ、もちろん。 702 00:33:48,439 --> 00:33:50,230 だから、私にしたいです 再びこの上を行きますか? 703 00:33:50,230 --> 00:33:51,680 それともthis--です 704 00:33:51,680 --> 00:33:54,930 聴衆:だから前のslide--の場合 あなただけの1秒のために戻って行くことができます。 705 00:33:54,930 --> 00:33:57,313 MARIA ZLATKOVA:もちろん、申し訳ありません。 706 00:33:57,313 --> 00:33:59,237 聴衆:だから二 ここで、配列にはありません 707 00:33:59,237 --> 00:34:04,135 キーに値を持っているように見えます、 ソートの[?因果関係。 ?] 708 00:34:04,135 --> 00:34:05,343 MARIA ZLATKOVA:右、右。 709 00:34:05,343 --> 00:34:07,608 観客は:だから、どのように仕事をします あなたはそれがすべてまたはnoneだと言うとき。 710 00:34:07,608 --> 00:34:08,969 私にとって、それは次のようになります [? FOO?]既に。 711 00:34:08,969 --> 00:34:10,093 >> MARIA ZLATKOVA:うん、うん。 712 00:34:10,093 --> 00:34:12,969 だから、再び、これは この意味での注文の地図 713 00:34:12,969 --> 00:34:15,639 そこに理解されていること、 例えば、インデックス 714 00:34:15,639 --> 00:34:20,159 ここで0、1、2、3のように理解することができます。 715 00:34:20,159 --> 00:34:25,929 再び、それはそれらを有するです インデックスは、私たちと同等です 716 00:34:25,929 --> 00:34:28,980 値にマッピングされたキーを持ちます。 717 00:34:28,980 --> 00:34:34,710 もしそうであれば私たちの鍵は0--残念でした。 718 00:34:34,710 --> 00:34:36,524 >> HANNAHブラムバーグ:いいえ、 ここにチョークあります。 719 00:34:36,524 --> 00:34:36,929 それは実際には本当にうれしいです。 720 00:34:36,929 --> 00:34:37,460 >> MARIA ZLATKOVA:それは素晴らしいことです。 721 00:34:37,460 --> 00:34:38,260 OK。 722 00:34:38,260 --> 00:34:49,489 そこで再び、$ arrの0は次のようになります 値1のためのキー。 723 00:34:49,489 --> 00:34:51,138 0の値は1のための鍵となります。 724 00:34:51,138 --> 00:34:51,971 観客:ごめんなさい。 725 00:34:51,971 --> 00:34:53,190 それは目に見えないです。 726 00:34:53,190 --> 00:34:53,659 >> HANNAHブラムバーグ:用事すべての権利、。 727 00:34:53,659 --> 00:34:54,980 チョークは悪い考えでした。 728 00:34:54,980 --> 00:34:58,030 私はそれを取り戻します。 729 00:34:58,030 --> 00:35:01,425 あなたは、キーと考えることができます 値1から0マップなど。 730 00:35:01,425 --> 00:35:02,300 MARIA ZLATKOVA:うん。 731 00:35:02,300 --> 00:35:04,630 これは、これは1、2、3であり、0です。 732 00:35:04,630 --> 00:35:05,760 これらは、あなたの鍵することができます。 733 00:35:05,760 --> 00:35:10,020 あなたはええas--それらを考えることができます。 734 00:35:10,020 --> 00:35:12,740 だからではなく、持っていることの 明示的なキー、彼らがしています 735 00:35:12,740 --> 00:35:17,180 あると理解の一種 インデックスは0から始まります。 736 00:35:17,180 --> 00:35:21,630 737 00:35:21,630 --> 00:35:24,820 チョークは助けにはなりませんでした。 738 00:35:24,820 --> 00:35:25,722 うん。 739 00:35:25,722 --> 00:35:30,914 >> 聴衆:foreachループのために、 我々は値として表示したい場合、 740 00:35:30,914 --> 00:35:33,245 それが0にだけ自動的にインデックスのでしょうか? 741 00:35:33,245 --> 00:35:34,120 MARIA ZLATKOVA:うん。 742 00:35:34,120 --> 00:35:35,745 これは、値のそれぞれを通って行くだろう。 743 00:35:35,745 --> 00:35:39,130 聴衆:[聞こえない]など 0またはそれは単に0をしますか? 744 00:35:39,130 --> 00:35:43,710 >> MARIA ZLATKOVA:あなたが持っているだろう その後、ドル記号として言って 745 00:35:43,710 --> 00:35:46,266 いくつかの変数名、値。 746 00:35:46,266 --> 00:35:47,182 聴衆:[聞こえません]。 747 00:35:47,182 --> 00:35:50,048 748 00:35:50,048 --> 00:35:50,964 MARIA ZLATKOVA:申し訳ありませんか? 749 00:35:50,964 --> 00:35:52,839 聴衆:申し訳ありませんが、私は ただ覚えてしようとしています。 750 00:35:52,839 --> 00:35:57,190 あなたがそれを行うことができれば、あなたはそれをどのように行うだろう 自動的にインデックス化は、単に0のでしょうか? 751 00:35:57,190 --> 00:36:00,780 >> MARIA ZLATKOVAを:だから、どのようにそれを行うだろう あなたは、特定のキー名を持っていなかった場合はどうなりますか? 752 00:36:00,780 --> 00:36:01,710 >> 聴衆:うん。 753 00:36:01,710 --> 00:36:07,820 >> MARIA ZLATKOVA:あなただけdefine--う ちょうどいくつかの名前として自分自身を言います。 754 00:36:07,820 --> 00:36:17,950 だからあなたのpsetで、君たちはかもしれません $行としてのforeach $行を覚えて、 755 00:36:17,950 --> 00:36:24,610 私たちは私たち自身に言って、この$行を作成しました 我々は$行として行を通って行きたいです。 756 00:36:24,610 --> 00:36:28,360 我々は持っていなかったにもかかわらず、 定義されたこの明示的な$行、 757 00:36:28,360 --> 00:36:31,990 私達はちょうど行くと可能性 これは私たちの鍵となることができると言います、 758 00:36:31,990 --> 00:36:33,615 だけの値のそれぞれを通過します。 759 00:36:33,615 --> 00:36:37,295 760 00:36:37,295 --> 00:36:41,660 >> 聴衆:だから値が新しい変数であります 我々は[聞こえない]を格納するために作成していますか? 761 00:36:41,660 --> 00:36:46,820 762 00:36:46,820 --> 00:36:49,990 >> MARIA ZLATKOVA:だから、それはありません 本質的に新しい変数。 763 00:36:49,990 --> 00:37:00,310 それはを参照する変数です それらのそれぞれに配列の内部。 764 00:37:00,310 --> 00:37:02,060 HANNAHブラムバーグ:それは 新しい変数名。 765 00:37:02,060 --> 00:37:04,018 MARIA ZLATKOVA:うん、 それは新しい変数名ですが、 766 00:37:04,018 --> 00:37:06,680 それはええinherently--ていません。 767 00:37:06,680 --> 00:37:08,950 それはちょうど新しい変数です あなたはそれを行うことができます。 768 00:37:08,950 --> 00:37:12,680 だから、どのようにやったん $ $行、行として行 769 00:37:12,680 --> 00:37:17,980 その私たちの新しい変数名でした 私たちのforeachループで作成することができます。 770 00:37:17,980 --> 00:37:22,065 これは、その前に以前から存在する必要はありません。 771 00:37:22,065 --> 00:37:25,777 >> 聴衆:あなたはを通して行くことができます そこに例を使用して、各ロジック、? 772 00:37:25,777 --> 00:37:26,610 MARIA ZLATKOVA:MHM。 773 00:37:26,610 --> 00:37:31,240 774 00:37:31,240 --> 00:37:32,080 あ、ごめんなさい。 775 00:37:32,080 --> 00:37:33,780 以下に例を示します。 776 00:37:33,780 --> 00:37:34,280 確かに。 777 00:37:34,280 --> 00:37:38,950 したがって、各そうarray--のために それは、この配列に行くことを意味します 778 00:37:38,950 --> 00:37:43,930 起こっているキーvalue--として この配列を通過します 779 00:37:43,930 --> 00:37:49,480 そして、最初に行くとfooを取得し、 キーfooと値バー。 780 00:37:49,480 --> 00:37:51,570 そして第二に forループの反復、 781 00:37:51,570 --> 00:37:55,090 それが通過し、取るために起こっています キーバズと値のかんぬん。 782 00:37:55,090 --> 00:38:00,512 そして、あなたが何かを行うことができます それらのいずれかまたはその両方。 783 00:38:00,512 --> 00:38:03,488 >> 聴衆:だから背後にある考え方 値にキーポイントを持ちます、 784 00:38:03,488 --> 00:38:07,470 あなたがアクセスして何に終わるのですか? 785 00:38:07,470 --> 00:38:10,680 >> MARIA ZLATKOVA:アイデアは何ですか 値にキーポインティングを持つの? 786 00:38:10,680 --> 00:38:16,400 それは別の、ちょうど別の大会です 配列を経由する方法 787 00:38:16,400 --> 00:38:22,600 いずれかにアクセスすることができます キーまたは値、またはその両方とそれらを使用しています。 788 00:38:22,600 --> 00:38:27,100 >> 聴衆:の役割は何ですか foreachのが実行されている順序? 789 00:38:27,100 --> 00:38:29,250 だから我々は、追加した場合 後で配列に要素、 790 00:38:29,250 --> 00:38:32,140 それらは最初のものであろう foreachの配列に呼ばれます、 791 00:38:32,140 --> 00:38:33,750 またはそれは後ででしょうか? 792 00:38:33,750 --> 00:38:37,770 >> MARIA ZLATKOVA:だから何があります foreachのは、そのため 793 00:38:37,770 --> 00:38:39,210 ループは、の配列を通過? 794 00:38:39,210 --> 00:38:42,220 これは、最初に経由します 最後の要素の要素、 795 00:38:42,220 --> 00:38:43,400 最後に追加された要素へ。 796 00:38:43,400 --> 00:38:48,020 後で上の要素を追加した場合、彼らは希望 最初の要素はなりaccessed--します 797 00:38:48,020 --> 00:38:51,410 最初としてアクセスすることが 配列の要素、 798 00:38:51,410 --> 00:38:57,620 そして、あなたは、各通過するだろう ordered--の並べ替えなどの要素 799 00:38:57,620 --> 00:39:02,930 注文したが、仕方ないこと それらは配列に入れてきました。 800 00:39:02,930 --> 00:39:06,855 >> 聴衆:だから、新しい要素 後で追加されましたか? 801 00:39:06,855 --> 00:39:10,680 そこで彼らは、彼らがなるだろうadded--ています 【における最後のもの?反復。 ?] 802 00:39:10,680 --> 00:39:14,280 >> MARIA ZLATKOVA:新しい要素can-- 基本的に、新たな要素が追加された場合、 803 00:39:14,280 --> 00:39:16,520 彼らは、配列の最後に追加されますか? 804 00:39:16,520 --> 00:39:17,632 >> 聴衆:うん。 805 00:39:17,632 --> 00:39:18,840 MARIA ZLATKOVA:私はそう信じています。 806 00:39:18,840 --> 00:39:20,850 はい。 807 00:39:20,850 --> 00:39:24,330 そして、あなたのforeachループで、 あなたは新しい要素を追加した後に 808 00:39:24,330 --> 00:39:26,790 あなたがそれらを介して行きます、 新しい要素だろう 809 00:39:26,790 --> 00:39:30,930 それはだ場合は、新しい要素accessed--こと 最後に追加され、それが最後にアクセスされることになります。 810 00:39:30,930 --> 00:39:34,416 >> 観客:あなただけの例を与えることができます 何かのことだろう[聞こえません] 811 00:39:34,416 --> 00:39:37,404 値で何かを持ちます [聞こえない]または値のような、 812 00:39:37,404 --> 00:39:38,910 あなたがそれをフォーマットしたいどのような? 813 00:39:38,910 --> 00:39:39,785 >> MARIA ZLATKOVA:確かに。 814 00:39:39,785 --> 00:39:42,340 815 00:39:42,340 --> 00:39:46,410 私は何の例を与えることができます 我々は値をどうでしょうか? 816 00:39:46,410 --> 00:39:52,440 だからみんなに精通しているかもしれないもの 私たちは、配列を行ってきたということです 817 00:39:52,440 --> 00:39:55,380 基本的に印刷されました 各要素、 818 00:39:55,380 --> 00:40:00,910 例えば、の一部として、 順序付きリストか何か。 819 00:40:00,910 --> 00:40:02,674 それが意味をなすか、私たちがしたいですんto-- 820 00:40:02,674 --> 00:40:04,340 観客:我々は、これらの値をプリントアウトすることはできますか? 821 00:40:04,340 --> 00:40:13,220 MARIA ZLATKOVA:ええ、私たちは印刷できませんでした して、基本的には$値である​​ため 822 00:40:13,220 --> 00:40:16,570 その具体的な値は、我々は次のようになります その中の値を印刷します。 823 00:40:16,570 --> 00:40:20,150 だから我々は我々の最初の繰り返しであった場合 それを、私たちは、$値を印刷 824 00:40:20,150 --> 00:40:23,775 私たちはバーを印刷することになります。 825 00:40:23,775 --> 00:40:27,020 >> 聴衆:にもあります PHPやただのforeachループでループ? 826 00:40:27,020 --> 00:40:30,430 >> MARIA ZLATKOVA:あり また、PHPのループの。 827 00:40:30,430 --> 00:40:33,399 そして、彼らの論理はほとんどあり あなたが使用されてきたものと同じ。 828 00:40:33,399 --> 00:40:34,690 聴衆:だから、その値はnullです。 829 00:40:34,690 --> 00:40:35,090 MARIA ZLATKOVA:それは同じようなものです。 830 00:40:35,090 --> 00:40:35,590 うん。 831 00:40:35,590 --> 00:40:37,747 聴衆:私はお願いするつもりです。 832 00:40:37,747 --> 00:40:39,695 ですから、宣言するとき 配列、あなたがする必要はありません 833 00:40:39,695 --> 00:40:42,617 それが何が起こっているのかサイズ伝えるために ちょうどあなたができることを意味し、あること 834 00:40:42,617 --> 00:40:44,417 追加要素[聞こえない]を奪います。 835 00:40:44,417 --> 00:40:45,250 MARIA ZLATKOVA:うん。 836 00:40:45,250 --> 00:40:45,750 うん。 837 00:40:45,750 --> 00:40:46,251 その通りです。 838 00:40:46,251 --> 00:40:48,875 私たちは、配列を宣言するとき、我々 それが何であるかのサイズを言う必要はありません、 839 00:40:48,875 --> 00:40:51,022 私たちはただの要素を追加することができます それの上に、後にも。 840 00:40:51,022 --> 00:40:55,075 841 00:40:55,075 --> 00:40:55,700 問題が解決しませんか? 842 00:40:55,700 --> 00:40:59,870 843 00:40:59,870 --> 00:41:05,950 だから、一緒にPHPとHTMLをもたらします 私たちはよくseen--しています、 844 00:41:05,950 --> 00:41:15,130 例えば、この例では、我々は 入力フィールドを持つHTMLフォーム。 845 00:41:15,130 --> 00:41:18,830 >> そして、入力フィールドは名前だけです そしてそれはSubmitボタンがあります。 846 00:41:18,830 --> 00:41:26,040 そして、あなたが押したときに送信 私たちのhello.phpファイル内のボタン、 847 00:41:26,040 --> 00:41:32,130 フォームのための方法であるからです 取得するには、我々は名前では何でもアクセスすることができます 848 00:41:32,130 --> 00:41:40,360 このことにより、グローバル変数を取得すること そのための構文は$ _GETですis--。 849 00:41:40,360 --> 00:41:44,520 そして、我々は何でもアクセスすることができます 名のそのフォームの内側のユーザー入力 850 00:41:44,520 --> 00:41:47,410 そのフィールドの名前を指定することもできます。 851 00:41:47,410 --> 00:41:51,480 852 00:41:51,480 --> 00:41:55,060 >> その他の質問または任意の この具​​体例に関する質問? 853 00:41:55,060 --> 00:41:58,275 >> 聴衆:PHPはどこにありますか? 854 00:41:58,275 --> 00:41:59,150 MARIA ZLATKOVA:ここでは。 855 00:41:59,150 --> 00:42:01,150 だから、これは、PHPのための私達の開始タグです。 856 00:42:01,150 --> 00:42:01,530 >> 聴衆:ああ、そう。 857 00:42:01,530 --> 00:42:02,363 >> MARIA ZLATKOVA:はい。 858 00:42:02,363 --> 00:42:05,320 859 00:42:05,320 --> 00:42:09,609 >> HANNAHブラムバーグ:?=省略形です このため、PHPだけエコーです。 860 00:42:09,609 --> 00:42:10,150 聴衆:ああ。 861 00:42:10,150 --> 00:42:10,720 MARIA ZLATKOVA:ええ、申し訳ありません。 862 00:42:10,720 --> 00:42:12,040 私はそれが明らかにされている必要があります。 863 00:42:12,040 --> 00:42:13,759 >> HANNAHブラムバーグ:印刷。 864 00:42:13,759 --> 00:42:16,800 MARIA ZLATKOVA:それはただの関数です それは、私たちが何かを印刷することができます。 865 00:42:16,800 --> 00:42:19,795 866 00:42:19,795 --> 00:42:20,420 素晴らしい質問です。 867 00:42:20,420 --> 00:42:24,140 868 00:42:24,140 --> 00:42:25,495 そうですgoing--。 869 00:42:25,495 --> 00:42:31,940 >> 観客は:そこに非常にされようとしています PHPとHTMLの手コーディングのビット 870 00:42:31,940 --> 00:42:33,450 クイズ1の? 871 00:42:33,450 --> 00:42:36,310 872 00:42:36,310 --> 00:42:38,810 MARIA ZLATKOVA:がある場合もあります 解釈のかなりの量 873 00:42:38,810 --> 00:42:43,330 PHPとHTMLの、必ずしも コー​​ディングの膨大な量のように、 874 00:42:43,330 --> 00:42:46,960 次のように記述する必要があるかもしれませんけれども foreachループ、ループのためしかし、A。 875 00:42:46,960 --> 00:42:49,790 我々のループのいずれか ここでカバー公正なゲームです。 876 00:42:49,790 --> 00:42:51,889 そして、それはほとんどがそれです。 877 00:42:51,889 --> 00:42:53,430 HANNAHブラムバーグ:私が準備されることになります。 878 00:42:53,430 --> 00:42:57,010 同じように私たちはあなたをするように求め 、クイズ0でC関数の束を書きます 879 00:42:57,010 --> 00:42:59,766 私は何をする準備されるだろう PHPとJavaScriptで同じ。 880 00:42:59,766 --> 00:43:00,640 MARIA ZLATKOVA:うん。 881 00:43:00,640 --> 00:43:03,210 HANNAHブラムバーグ:私が言います 私たちがいないようなlittle-- 882 00:43:03,210 --> 00:43:06,251 あなたは巨大なHTMLを記述するつもり ページそれは少しだという理由だけで 883 00:43:06,251 --> 00:43:08,240 退屈していますが、部品があるかもしれません。 884 00:43:08,240 --> 00:43:09,310 それは完全に公正なゲームです。 885 00:43:09,310 --> 00:43:11,082 小さなHTMLページと同様に、完全に公正な。 886 00:43:11,082 --> 00:43:11,623 聴衆:[OK]をクリックします。 887 00:43:11,623 --> 00:43:13,814 どのようにJavaScriptで約だけでなく? 888 00:43:13,814 --> 00:43:14,730 HANNAHブラムバーグ:うん。 889 00:43:14,730 --> 00:43:15,250 JavaScriptのの公正なゲーム。 890 00:43:15,250 --> 00:43:15,635 >> MARIA ZLATKOVA:うん。 891 00:43:15,635 --> 00:43:16,801 それは完全に公正なゲームです。 892 00:43:16,801 --> 00:43:19,280 HANNAHブラムバーグ:私たちは得るでしょう 以下のような10分のそれに。 893 00:43:19,280 --> 00:43:23,750 >> MARIA ZLATKOVA:SQL、再び、 構造化照会言語。 894 00:43:23,750 --> 00:43:28,651 それは基本的に私たちがデータを管理することができます リレーショナル・データベース管理で 895 00:43:28,651 --> 00:43:29,150 システム。 896 00:43:29,150 --> 00:43:31,149 それはちょうど、基本的意味します 私たちはどこかに持っていること 897 00:43:31,149 --> 00:43:37,980 私たちがしたいかもしれないいくつかのデータを格納します ウェブサイト、または他のいくつかの形で使用しています。 898 00:43:37,980 --> 00:43:42,190 そして、我々は、取得するためのクエリを持っています 当社のデータベースからの情報、 899 00:43:42,190 --> 00:43:44,320 またはそれらの情報を挿入します。 900 00:43:44,320 --> 00:43:47,560 共通ones-- UPDATEの多くは、 INSERT、SELECT、およびDELETE。 901 00:43:47,560 --> 00:43:50,790 >> だから更新のために、これは構文です データベース内のデータを更新します。 902 00:43:50,790 --> 00:43:53,330 903 00:43:53,330 --> 00:43:57,340 呼ばれるこのテーブルを更新します SETを言って、テーブル、 904 00:43:57,340 --> 00:44:04,170 我々はすべての中でいくつかの値を設定することができます 行何かを等しくします。 905 00:44:04,170 --> 00:44:09,410 だから我々はまた、いくつかの特定を指定することができます 我々は、変更するエントリ 906 00:44:09,410 --> 00:44:11,240 それはWHERE使用してすることができます。 907 00:44:11,240 --> 00:44:16,380 そして、我々は我々が唯一のしたいことを指定することができます 家のためのいくつかの行を変更し、 908 00:44:16,380 --> 00:44:19,830 私たちは、学生のテーブルがあった場合 そして、すべての学生が家を持っていました、 909 00:44:19,830 --> 00:44:24,890 私たちは唯一のいくつかの値を変更することになります 家はクーリェに等しいです、 910 00:44:24,890 --> 00:44:25,430 例えば。 911 00:44:25,430 --> 00:44:29,120 912 00:44:29,120 --> 00:44:31,800 >> INSERTのために、我々は挿入することができます テーブルにある値。 913 00:44:31,800 --> 00:44:35,150 だから、テーブルに挿入、 そして、値、 914 00:44:35,150 --> 00:44:39,080 して、括弧内に、我々は指定します これは、挿入したい値。 915 00:44:39,080 --> 00:44:43,220 だからCOL1、テーブルに挿入し、 col2が、値がval1とval2のであると。 916 00:44:43,220 --> 00:44:48,930 だから、これは基本的に新しい行を挿入 値1および2を含むテーブル 917 00:44:48,930 --> 00:44:50,850 列1および2の下で。 918 00:44:50,850 --> 00:44:54,760 >> そして、我々は終わっ行くつもりです これがどのように見えるかの簡単な例 919 00:44:54,760 --> 00:44:56,310 少し私達のデータベースのように。 920 00:44:56,310 --> 00:44:58,685 しかし、私はこの最終問合せが 、我々はオーバー行くつもりだと思います 921 00:44:58,685 --> 00:45:01,450 SELECT、それだけで私たちを可能にします テーブルからデータを選択します 922 00:45:01,450 --> 00:45:03,080 多分後でそれを使用することができます。 923 00:45:03,080 --> 00:45:05,830 そして、私たちはこれを行う方法は、私たちです ただ、いくつかの変数に格納します。 924 00:45:05,830 --> 00:45:07,780 そして、我々は、おそらく再びそれを使用することができます。 925 00:45:07,780 --> 00:45:10,260 >> だから、SELECT星はすべてを選択することを意味します。 926 00:45:10,260 --> 00:45:13,280 それはちょうど速記です すべてを選択します。 927 00:45:13,280 --> 00:45:19,760 FROMテーブルWHERE、私たちが見ています いくつかの具体的な条件については、 928 00:45:19,760 --> 00:45:22,290 そう列が等しいです 例えば、何か。 929 00:45:22,290 --> 00:45:24,410 私達はちょうどしたい場合 テーブルからすべてを選択し、 930 00:45:24,410 --> 00:45:28,400 これは単に、すべての列を選択します そして、表のすべての行。 931 00:45:28,400 --> 00:45:32,040 >> そしてFROMテーブルDELETE colが何かに等しいです、 932 00:45:32,040 --> 00:45:36,440 これはほんの一部を削除 私たちのテーブルの行 933 00:45:36,440 --> 00:45:38,860 ここで我々はいくつかの特定の条件を持っています。 934 00:45:38,860 --> 00:45:41,870 この場合、条件 列が何かに等しいです。 935 00:45:41,870 --> 00:45:43,460 このだから簡単な例。 936 00:45:43,460 --> 00:45:49,100 我々はここ、このテーブルを使用している場合は、我々 テーブルに挿入し、これらの値、 937 00:45:49,100 --> 00:45:50,400 それは、新しい行を挿入します。 938 00:45:50,400 --> 00:45:56,380 我々は自動インクリメントを持っていたなら、これは希望 わずか2に0から1に、当社のIDをインクリメントします。 939 00:45:56,380 --> 00:46:00,010 >> 我々は、学生からすべてを選択した場合は、 ちょうどすべてのフィールドとすべての行を返します。 940 00:46:00,010 --> 00:46:02,430 年大きい場合 2016年よりか等しいです、 941 00:46:02,430 --> 00:46:04,390 それは、ちょうど戻ってきます ハンナと私。 942 00:46:04,390 --> 00:46:08,360 そして、私たちは選択した場合 学生からの年間のIDと年 943 00:46:08,360 --> 00:46:11,710 家はそのキャボットハウスであり、ここで 、再び、ハンナと自分自身を返します。 944 00:46:11,710 --> 00:46:14,430 >> その後、我々は、学生から削除した場合 名前はロブに等しいです、 945 00:46:14,430 --> 00:46:16,760 それは、行全体を削除します。 946 00:46:16,760 --> 00:46:19,696 そして、我々は設定されている場合 名前、UPDATEの学生 947 00:46:19,696 --> 00:46:21,570 セット名は祈るに等しいです 家は等しいです 948 00:46:21,570 --> 00:46:27,010 に行くために起こっているキャボットハウス、 その後、それらの行と名前を更新します。 949 00:46:27,010 --> 00:46:31,470 >> そして、いくつかのSQLデータ・タイプは、 CHAR、VARCHAR、INT、およびFLOAT。 950 00:46:31,470 --> 00:46:32,760 これらは公正なゲームです。 951 00:46:32,760 --> 00:46:36,740 私は何度も行くだろう あなたが知っていることを確認してください 952 00:46:36,740 --> 00:46:40,930 そして、あなたのカンニングペーパーにそれらを持っています 何それらの各文字 953 00:46:40,930 --> 00:46:44,140 何のために使用されています あなたのpsetにそれらを使用し、 954 00:46:44,140 --> 00:46:48,050 あなたが精通していることを確認し、 選択することで快適 955 00:46:48,050 --> 00:46:51,450 あなたのpset内の別のデータ型から。 956 00:46:51,450 --> 00:46:51,950 はい。 957 00:46:51,950 --> 00:46:54,300 >> 聴衆:そのテーブルは何を保存しましたか? 958 00:46:54,300 --> 00:46:57,119 うん、ここでこのテーブルが格納されていますか? 959 00:46:57,119 --> 00:46:59,160 MARIA ZLATKOVA:まあ、 今、それが保存されていません。 960 00:46:59,160 --> 00:47:00,700 とにかく、ここでこのテーブルが格納されていますか? 961 00:47:00,700 --> 00:47:04,503 しかし、SQLデータベースに格納することができます。 962 00:47:04,503 --> 00:47:07,330 >> 聴衆:そしてここで、SQLデータベースがありますか? 963 00:47:07,330 --> 00:47:11,200 コンピュータでは、オンライン どこかに、サーバー? 964 00:47:11,200 --> 00:47:15,000 >> MARIA ZLATKOVA:それはすることができます 異なるものの数。 965 00:47:15,000 --> 00:47:19,690 >> HANNAHブラムバーグ:私たちはとインタフェースしました ほとんどのphpMyAdminでSQLテーブル。 966 00:47:19,690 --> 00:47:22,060 だから我々は、サーバーを求めることができます 私たちのためにそれらを保存します。 967 00:47:22,060 --> 00:47:23,830 私たちは、自分のコンピュータ上でそれらを格納することができます。 968 00:47:23,830 --> 00:47:27,950 >> MARIA ZLATKOVA:それはちょうど依存します どのようにあなた自身のためにそれをやってみたいです。 969 00:47:27,950 --> 00:47:30,075 しかし、我々は保存されています それら、ハンナは述べたように、 970 00:47:30,075 --> 00:47:31,755 オンラインでphpMyAdminに、上。 971 00:47:31,755 --> 00:47:36,550 972 00:47:36,550 --> 00:47:39,280 そして、方法を使用しております PHPとSQLは、我々はそれを保存します 973 00:47:39,280 --> 00:47:43,450 いくつかの変数に 私たちはを照会しました。 974 00:47:43,450 --> 00:47:48,370 >> だから、私たちは歴史からすべてを選択した場合 USER_IDは、セッションIDに等しく、 975 00:47:48,370 --> 00:47:53,900 それはすべての行を選択することになります 特定の人のための人 976 00:47:53,900 --> 00:47:58,327 履歴からログインしています テーブルと行にそれらを並べ替えます。 977 00:47:58,327 --> 00:48:00,410 知っているクールなものがあります そのCS50のクエリ機能 978 00:48:00,410 --> 00:48:02,180 SQLインジェクションタグから保護します。 979 00:48:02,180 --> 00:48:07,420 それはちょうどそれが確認しますことを意味し 入力された入力は正しいです 980 00:48:07,420 --> 00:48:09,920 そしてその人は誰 入力に入っています 981 00:48:09,920 --> 00:48:15,100 入力しようとしていないいくつかの悪意のある 私たちのテーブルを削除するか、コード 982 00:48:15,100 --> 00:48:17,305 またはすべてを削除します 当社のデータベースの内部。 983 00:48:17,305 --> 00:48:20,060 984 00:48:20,060 --> 00:48:23,400 >> の概要 モデルビューコントローラモデル、 985 00:48:23,400 --> 00:48:27,360 それだけで整理する方法です コー​​ドを考えます。 986 00:48:27,360 --> 00:48:29,100 それは、再び設計パラダイムです。 987 00:48:29,100 --> 00:48:33,380 何それが意味することは、その私たちです can--それは良い習慣です 988 00:48:33,380 --> 00:48:37,790 異なる部分を分離します 我々のコードとそれらの 989 00:48:37,790 --> 00:48:40,530 これら三つのパラダイムに制御します。 990 00:48:40,530 --> 00:48:46,700 >> だから、私たちの見解は、ほとんどの場合であり、私たちの テンプレート、私たちのレイアウト、道 991 00:48:46,700 --> 00:48:48,260 ことを私たちは私たちのコードがどのように見えるかを設定しました。 992 00:48:48,260 --> 00:48:55,190 それは主に、当社のCSSファイルおよび方法です 私たちはコードの設計を定義されていること、 993 00:48:55,190 --> 00:48:55,710 基本的に。 994 00:48:55,710 --> 00:48:59,280 当社のコントローラは、ほとんど何です 私たちは、PHPファイルで行ってきました。 995 00:48:59,280 --> 00:49:03,030 そこで再び、での作業 我々が持っている情報 996 00:49:03,030 --> 00:49:06,700 そしてどのように定義します 情報は、使用されています 997 00:49:06,700 --> 00:49:10,660 そしてその情報を渡します いずれかのビューやモデルへ。 998 00:49:10,660 --> 00:49:13,880 そして、モデル、我々はしまし方法 ISを使用してすることは、当社のデータベースになっています 999 00:49:13,880 --> 00:49:17,510 だから私たちの情報がある場合 それはどこかに持っているので、格納されています 1000 00:49:17,510 --> 00:49:21,490 住んでいる、とのいずれかに 方法に関し、コード 1001 00:49:21,490 --> 00:49:25,410 我々はその情報を取得したり、その 我々はその情報を更新する方法。 1002 00:49:25,410 --> 00:49:28,940 1003 00:49:28,940 --> 00:49:33,200 >> MVCモデルにおけるだから、HTTP 要求がWebサーバーに送信されます。 1004 00:49:33,200 --> 00:49:36,220 次に、コントローラ解釈 ユーザからの要求 1005 00:49:36,220 --> 00:49:38,260 して、ユーザー入力を検証します。 1006 00:49:38,260 --> 00:49:41,580 それは我々が持っているオプションです コントローラが通信 1007 00:49:41,580 --> 00:49:44,000 モデルと、何かので、 私達のデータベースのような 1008 00:49:44,000 --> 00:49:47,500 またはいくつかの他の機能 それは、情報をリレーします。 1009 00:49:47,500 --> 00:49:50,340 そして最後に、コントローラ ビューに情報を渡します 1010 00:49:50,340 --> 00:49:52,090 それができるように レンダリングされ、それができること 1011 00:49:52,090 --> 00:49:55,860 すべての人に見えるようになります Webページにアクセスします。 1012 00:49:55,860 --> 00:49:58,440 1013 00:49:58,440 --> 00:50:01,340 >> 質問は? 1014 00:50:01,340 --> 00:50:01,840 驚くばかり。 1015 00:50:01,840 --> 00:50:04,530 1016 00:50:04,530 --> 00:50:08,469 そこで再び、モデル、 その機能は、再度、 1017 00:50:08,469 --> 00:50:11,260 情報の永続的なストレージがあり、 管理し、データを整理します。 1018 00:50:11,260 --> 00:50:13,890 そして、私たちが見てきたもの これまでMySQLのデータベースです 1019 00:50:13,890 --> 00:50:16,200 任意のデータファイルを使用することができること。 1020 00:50:16,200 --> 00:50:20,580 >> ビュー、情報の提示に ユーザー、UI、またはユーザーインターフェース。 1021 00:50:20,580 --> 00:50:22,350 この例では、HTMLです。 1022 00:50:22,350 --> 00:50:23,950 そして、我々は、最小限のPHPを持っている可能性があります。 1023 00:50:23,950 --> 00:50:28,360 だから、ループの反復処理すること プリントアウトされたデータの上に 1024 00:50:28,360 --> 00:50:30,720 ビューの一部であります コントローラに反対しました。 1025 00:50:30,720 --> 00:50:35,660 そして、我々のPHPファイルの後、多くの コントローラのカテゴリに分類されます。 1026 00:50:35,660 --> 00:50:38,410 それだけでユーザーの要求を処理し、 モデルからの情報を取得します。 1027 00:50:38,410 --> 00:50:42,880 1028 00:50:42,880 --> 00:50:45,590 >> 文書にジャンプ オブジェクトモデルは、ちょうどこの 1029 00:50:45,590 --> 00:50:47,700 方法HTMLに言及 文書が整理されています。 1030 00:50:47,700 --> 00:50:51,600 そして、彼らは木に編成しています 階層構造を持っています。 1031 00:50:51,600 --> 00:50:56,720 だから我々は、[聞こえない]へのアクセス権を持っている場合 文書の表現、 1032 00:50:56,720 --> 00:51:02,750 我々は次のように、文書で作業することができます 私たちは基本的にオブジェクトを操作します。 1033 00:51:02,750 --> 00:51:06,630 >> そして、このAを作るために ときに、少し明確に 1034 00:51:06,630 --> 00:51:10,540 私たちはたくさんあり​​ます 異なるタグが応答 1035 00:51:10,540 --> 00:51:12,590 私たちのツリー内の別のルートに。 1036 00:51:12,590 --> 00:51:17,070 そして、この例のために、我々 開始文書ノードを持っています。 1037 00:51:17,070 --> 00:51:20,010 私たちは、その後、私たちのHTMLノードを持っています それは、頭と体に分かれます。 1038 00:51:20,010 --> 00:51:22,810 ヘッドはその後、タイトルを持っており、 タイトルは、Hello Worldのが含まれています。 1039 00:51:22,810 --> 00:51:24,860 そして、私たちの体はちょうど含まれています こんにちは、世界にも。 1040 00:51:24,860 --> 00:51:28,700 1041 00:51:28,700 --> 00:51:31,900 >> のいずれかにそうご質問 我々はこれまでに覆われての事? 1042 00:51:31,900 --> 00:51:35,891 そうでない場合、ハンナはなります JavaScriptので引き継ぎます。 1043 00:51:35,891 --> 00:51:36,390 驚くばかり。 1044 00:51:36,390 --> 00:51:37,473 >> HANNAHブラムバーグ:OK、涼しいです。 1045 00:51:37,473 --> 00:51:40,980 何がPHPやHTMLでアップする場合は、 またはマリアがカバーのもののいずれか、 1046 00:51:40,980 --> 00:51:42,700 我々は常に一時停止することができます。 1047 00:51:42,700 --> 00:51:46,430 私たちはより良いのやっています 時間再び、とても素晴らしいです。 1048 00:51:46,430 --> 00:51:48,770 そして、ちょうど戻ります 本当にすぐこれに、 1049 00:51:48,770 --> 00:51:51,010 あなたはすべてのを見ると 昨年の試験、この 1050 00:51:51,010 --> 00:51:54,120 either--ここでアップします いくつかのHTMLは、この図を作ります。 1051 00:51:54,120 --> 00:51:58,380 または、ここにこの図だ、いくつかを作ります HTMLので、間違いなくそれを実践しています。 1052 00:51:58,380 --> 00:52:01,500 そしてそれは保証一つです あなたが権利を取得することができます質問。 1053 00:52:01,500 --> 00:52:02,000 クール。 1054 00:52:02,000 --> 00:52:04,510 それでは、JavaScriptのについて話しましょう そして、それは少しだ方法 1055 00:52:04,510 --> 00:52:09,130 PHPなどの言語と異なります C、私たちは事前に見た二つの言語。 1056 00:52:09,130 --> 00:52:10,780 だからナンバーワン、それがルーズです。 1057 00:52:10,780 --> 00:52:14,630 これは、PHPのようなものですが、C。とは異なり、 1058 00:52:14,630 --> 00:52:15,890 >> それはインタプリタ言語です。 1059 00:52:15,890 --> 00:52:19,870 繰り返しますが、それはようなものです PHP、C。そして、これとは異なり、 1060 00:52:19,870 --> 00:52:24,630 私たちはそれをuse--できるようにするために起こっています Webページで実際にうまく動作します。 1061 00:52:24,630 --> 00:52:28,350 それは私達が操作できるようになるだろう コンテンツとどのようにそれが見えます 1062 00:52:28,350 --> 00:52:30,300 それが何をしますか。 1063 00:52:30,300 --> 00:52:32,330 >> 我々は、Ajaxを少し参照するつもりです。 1064 00:52:32,330 --> 00:52:36,140 それは私たちが通信することができます 非同期的に異なるサーバで 1065 00:52:36,140 --> 00:52:37,950 そして、の情報を得ます。 1066 00:52:37,950 --> 00:52:42,820 そして、これは本当にものです PHPとCからJavaScriptを分離 1067 00:52:42,820 --> 00:52:45,590 それは、クライアント側であることです。 1068 00:52:45,590 --> 00:52:49,860 PHPとCの両方があります 通常、サーバー側。 1069 00:52:49,860 --> 00:52:51,960 >> ほとんどの部分と ほぼ完全に何 1070 00:52:51,960 --> 00:52:53,900 我々は、少なくともで、見てきました このクラスは、JavaScript 1071 00:52:53,900 --> 00:52:57,040 意味し、クライアント側に作用します ブラウザが実際にあることを 1072 00:52:57,040 --> 00:52:58,597 それを実行するための責任。 1073 00:52:58,597 --> 00:53:01,180 そして、それは我々がないことを意味 サーバーとやり取りする必要があります。 1074 00:53:01,180 --> 00:53:04,380 だから、それははるかに高速であることを意味し それは実際にちょうどそれがChromeのだから、 1075 00:53:04,380 --> 00:53:10,420 それはSafariの、それはFirefoxの、何でも あなたのJavaScriptを実行して、実際に使用しています。 1076 00:53:10,420 --> 00:53:12,290 >> 聴衆:非同期は何を意味するのでしょうか? 1077 00:53:12,290 --> 00:53:13,620 >> HANNAHブラムバーグ:ああ、どのような 非同期的に意味するのでしょうか? 1078 00:53:13,620 --> 00:53:14,250 素晴らしい質問です。 1079 00:53:14,250 --> 00:53:17,890 非同期means-- でよく、コンテンツ 1080 00:53:17,890 --> 00:53:22,140 私たちは、[OK]を、それを使用しています ウェブページを作成します 1081 00:53:22,140 --> 00:53:23,860 私たちはいくつかの情報を取得する必要があります。 1082 00:53:23,860 --> 00:53:28,250 だから、マッシュアップの例と、 私たちが望むかもしれないいくつかの情報 1083 00:53:28,250 --> 00:53:30,580 記事のタイトルです。 1084 00:53:30,580 --> 00:53:33,330 今、私たちは一つの選択肢をcould-- 同期を行うことです 1085 00:53:33,330 --> 00:53:37,940 それはレッツ意味します 停止、記事を取りに行きます、 1086 00:53:37,940 --> 00:53:41,275 その後、記事を取り戻すと、 レンダリングが、それは本当に遅いだろう。 1087 00:53:41,275 --> 00:53:44,150 それは悪いユーザー体験になります あなただけ座っされるので 1088 00:53:44,150 --> 00:53:46,630 何かが応答するためにそこに待っています。 1089 00:53:46,630 --> 00:53:50,020 >> 非同期我々はよ意味します 私たちのビジネスについて行く続け、 1090 00:53:50,020 --> 00:53:52,529 ページをレンダリングし、 我々は要求をオフに送信されます 1091 00:53:52,529 --> 00:53:54,570 それは一種のに起こっています バックグラウンドで行われます。 1092 00:53:54,570 --> 00:53:57,610 私たちは例を使用すると思います ロブを呼び出すと言うの講義、 1093 00:53:57,610 --> 00:53:59,980 ねえ、あなたはこれを調べることができます 私のために私に戻って取得し、 1094 00:53:59,980 --> 00:54:02,870 ちょうど私とは対照的に、 電話で待っています。 1095 00:54:02,870 --> 00:54:07,020 だから、非同期的にそれが起こることを意味 私たちから離れてバックグラウンドで 1096 00:54:07,020 --> 00:54:08,676 並行して。 1097 00:54:08,676 --> 00:54:10,400 >> 素晴らしい質問です。 1098 00:54:10,400 --> 00:54:11,830 他に何か? 1099 00:54:11,830 --> 00:54:12,330 よかった。 1100 00:54:12,330 --> 00:54:15,020 我々は、より多くのへジャンプします Ajaxを使って非同期要求。 1101 00:54:15,020 --> 00:54:18,287 >> 観客:JavaScript--がするん それは、モデル・ビュー・コントローラに落ちますか? 1102 00:54:18,287 --> 00:54:19,620 HANNAHブラムバーグ:グレート質問。 1103 00:54:19,620 --> 00:54:23,320 JavaScriptがどこに落ちるん モデル・ビュー・コントローラと? 1104 00:54:23,320 --> 00:54:23,930 フム。 1105 00:54:23,930 --> 00:54:28,350 私はそれがfall--ことができますね 私たちは通常ありません 1106 00:54:28,350 --> 00:54:31,340 その中にそれをスキッシュしたいです パラダイムが、私は言うだろうと思い、 1107 00:54:31,340 --> 00:54:34,280 [OK]は、JavaScriptので、 実際に可能にするために起こっています 1108 00:54:34,280 --> 00:54:37,587 私たちは、データを収集し、 実際に行う、データの解釈 1109 00:54:37,587 --> 00:54:38,920 データに意味のあるもの。 1110 00:54:38,920 --> 00:54:41,100 そのように、それは非常にコントロールのようです。 1111 00:54:41,100 --> 00:54:43,900 >> しかし、それはまた、私たちができるようにするために起こっています モノとプリントのものを表示します。 1112 00:54:43,900 --> 00:54:47,021 そのように、それは非常にビューのようです。 1113 00:54:47,021 --> 00:54:47,520 うん。 1114 00:54:47,520 --> 00:54:51,710 だから、中種のPHPのようなものです それは一種の両方をどこにすることができます。 1115 00:54:51,710 --> 00:54:53,330 良い質問。 1116 00:54:53,330 --> 00:54:55,209 他に何か? 1117 00:54:55,209 --> 00:54:56,000 すべての権利、素晴らしいです。 1118 00:54:56,000 --> 00:54:57,120 右に沿って移動します。 1119 00:54:57,120 --> 00:54:59,110 >> それでは、例を見てみましょう 私たちがどのように使用できるかの 1120 00:54:59,110 --> 00:55:02,250 弊社のWebプログラムの一つではJavaScript。 1121 00:55:02,250 --> 00:55:05,680 だから私はこれを検討します HTMLの束とのindex.html。 1122 00:55:05,680 --> 00:55:08,800 そして、事は、私はあなたが欲しいです 焦点を当て、このスクリプトタグです。 1123 00:55:08,800 --> 00:55:13,280 そして、これは[OK]を、私はいくつかを実行したい、と言います それはどこに住んで、ここでJavaScriptとです。 1124 00:55:13,280 --> 00:55:15,400 それはhello.jsに住んでいます。 1125 00:55:15,400 --> 00:55:21,120 >> そして、非常に多くのCSSのように、私たちができました HTMLにJavaScriptを置きます。 1126 00:55:21,120 --> 00:55:24,000 なぜ我々はそれを分離することができますか? 1127 00:55:24,000 --> 00:55:24,500 うん。 1128 00:55:24,500 --> 00:55:25,486 >> 聴衆:リライトすることが容易に? 1129 00:55:25,486 --> 00:55:26,402 >> HANNAHブラムバーグ:うん。 1130 00:55:26,402 --> 00:55:28,450 これは、全体で使用する方が簡単です 別のウェブページ。 1131 00:55:28,450 --> 00:55:29,980 これは、クリーンなものを保持します。 1132 00:55:29,980 --> 00:55:32,090 それはちょうどよいでしょう。 1133 00:55:32,090 --> 00:55:32,590 驚くばかり。 1134 00:55:32,590 --> 00:55:33,930 いい答えだ。 1135 00:55:33,930 --> 00:55:36,690 それで良いので、これが起こっています 私たちのindex.htmlになります。 1136 00:55:36,690 --> 00:55:39,430 そして、ここに至るまで、私たちは、 小さな小さなJavaScriptファイル。 1137 00:55:39,430 --> 00:55:42,410 >> そして、それは言うすべては、こんにちはアラートです。 1138 00:55:42,410 --> 00:55:46,040 だから、何が起こるかときであります このページrenders-- 1139 00:55:46,040 --> 00:55:49,680 あなたはどのようなWebサイトにアクセスした場合 これは、すべてのことが起こるだろうis-- 1140 00:55:49,680 --> 00:55:53,330 [OK]を、私は、それが起こっているのさを避けます このJavaScriptコードを実行するつもり。 1141 00:55:53,330 --> 00:55:56,370 そして、このJavaScriptコード ただ警告こんにちは、世界は述べています。 1142 00:55:56,370 --> 00:55:59,090 だから私はこれを取得するつもりです フレンドリーな小さなポップアップ。 1143 00:55:59,090 --> 00:56:00,360 >> クール? 1144 00:56:00,360 --> 00:56:04,746 それは非常に第一種の私たちのようなものです JavaScriptのプログラム、私たちこんにちは、世界。 1145 00:56:04,746 --> 00:56:07,690 1146 00:56:07,690 --> 00:56:12,190 何について少し詳しく見てみましょう JavaScriptを構文は次のようになります。 1147 00:56:12,190 --> 00:56:16,330 具体的には、のは、それを比較してみましょう 我々の前に見てきたCとPHP、。 1148 00:56:16,330 --> 00:56:20,610 >> JavaScriptでは、我々は、必要があるとしています VAR、変数の名前を入力し、[ 1149 00:56:20,610 --> 00:56:21,690 その実際の値。 1150 00:56:21,690 --> 00:56:26,170 そして、私たちはただ、タイプを​​指定しません PHPのような、しかし非常にCのとは異なり、 1151 00:56:26,170 --> 00:56:28,850 例えばそこで、私たちは望んでいた場合 値50を格納するために、 1152 00:56:28,850 --> 00:56:32,490 C言語で、私たちが言っているだろう、 ちょっと、C、私は整数をしたいです、 1153 00:56:32,490 --> 00:56:35,076 私はそれを呼び出すつもりです 私は、その値は50です。 1154 00:56:35,076 --> 00:56:36,450 PHPでは、それは少し簡単です。 1155 00:56:36,450 --> 00:56:41,880 私たちは、ちょっと、私は変数をしたい、と言います 私と呼ばれ、その値は50です。 1156 00:56:41,880 --> 00:56:45,890 非常に似た、JavaScriptで、我々 ねえ、私は私と呼ばれる変数をしたいと言います、 1157 00:56:45,890 --> 00:56:47,080 その値は50です。 1158 00:56:47,080 --> 00:56:52,140 私が使用する後続のすべての時間 私は、私はVARを記述する必要はありません。 1159 00:56:52,140 --> 00:56:53,810 それはちょうど私のその時点からです。 1160 00:56:53,810 --> 00:56:58,660 同様に、Cで、どこ 私たちは私をintと言うと、私達はちょうど私を使用しています。 1161 00:56:58,660 --> 00:57:00,340 クール? 1162 00:57:00,340 --> 00:57:01,800 大丈夫。 1163 00:57:01,800 --> 00:57:03,710 >> ループに移動、 幸いなことに、これらのほとんど 1164 00:57:03,710 --> 00:57:06,720 私は、彼らがいると思うexactly--見ます 何と全く同じ 1165 00:57:06,720 --> 00:57:09,799 ループは、のように見に行くされています あなたのループのためのCのようなもの 1166 00:57:09,799 --> 00:57:11,840 3を持っているとしています 、初期化をparts-- 1167 00:57:11,840 --> 00:57:13,640 条件、および更新。 1168 00:57:13,640 --> 00:57:15,340 whileループは、それはまったく同じに見えます。 1169 00:57:15,340 --> 00:57:16,390 私達はちょうどそれに条件を与えます。 1170 00:57:16,390 --> 00:57:18,264 >> そして、do-whil​​e文、 再び、全く同じ。 1171 00:57:18,264 --> 00:57:20,190 我々はそれの状態を与えます。 1172 00:57:20,190 --> 00:57:24,510 のは、私がover--反復処理したいとしましょう 私は何かを5回やってみたかったです。 1173 00:57:24,510 --> 00:57:27,840 Cでは、私たちは書くかもしれません 初期化のために私は0に等しいです。 1174 00:57:27,840 --> 00:57:30,480 iが5未満であり、私は++します。 1175 00:57:30,480 --> 00:57:34,240 唯一の違いは、JavaScriptで、 代わりに、私は0に等しいint型というのは、 1176 00:57:34,240 --> 00:57:36,820 我々はのvar iが0に等しいと言います。 1177 00:57:36,820 --> 00:57:38,370 綺麗な。 1178 00:57:38,370 --> 00:57:41,320 それが唯一の違いです。 1179 00:57:41,320 --> 00:57:43,200 そのいずれかの上の任意の質問? 1180 00:57:43,200 --> 00:57:44,160 はい。 1181 00:57:44,160 --> 00:57:48,480 >> 聴衆:だから、PHPで、それは同じです 除くが、変数のようなもの、? 1182 00:57:48,480 --> 00:57:49,564 またはVARの例ということでしたか? 1183 00:57:49,564 --> 00:57:50,480 HANNAHブラムバーグ:うん。 1184 00:57:50,480 --> 00:57:52,310 だから、PHPで、それが起こっています ドル記号であるために。 1185 00:57:52,310 --> 00:57:59,450 だから、$ Iイコールになるだろう 0、$ iが5未満であり、$ iが++。 1186 00:57:59,450 --> 00:58:02,490 素晴らしい質問です。 1187 00:58:02,490 --> 00:58:04,570 >> それではについてお話しましょう 関数宣言。 1188 00:58:04,570 --> 00:58:07,010 Cでは、私たちは宣言したとき 機能、我々はそれに名前を与えました 1189 00:58:07,010 --> 00:58:08,490 我々はそれにいくつかのパラメータを与えました。 1190 00:58:08,490 --> 00:58:10,670 そして初めに、私たちは型を書き​​ました。 1191 00:58:10,670 --> 00:58:12,440 JavaScriptでは、すべての私たち 書き込みされなければなりません 1192 00:58:12,440 --> 00:58:15,080 キーワード機能その JavaScriptは、ちょっと、と言います 1193 00:58:15,080 --> 00:58:16,570 私は、関数を定義しようとしてです。 1194 00:58:16,570 --> 00:58:18,520 >> この場合には、名前の合計を有します。 1195 00:58:18,520 --> 00:58:20,820 そして、それは二つの引数xとyをとります。 1196 00:58:20,820 --> 00:58:23,280 私たちは気にしないことに注意してください x、yの種類について。 1197 00:58:23,280 --> 00:58:26,280 そして、ちょうどCのように、私たちは持っています このキーワード戻り、 1198 00:58:26,280 --> 00:58:29,140 私たちは何かを行うことができます リターンxとyのような。 1199 00:58:29,140 --> 00:58:32,540 >> そして今、我々は最初にこれを書いた後に この関数は、我々はどこに合計を使用することができます。 1200 00:58:32,540 --> 00:58:34,740 そして、それは完全に罰金です。 1201 00:58:34,740 --> 00:58:37,530 一つの本当にクールなものについて Cとは異なり、非常にされるJavaScript 1202 00:58:37,530 --> 00:58:40,770 関数ができることです 値のように扱われます。 1203 00:58:40,770 --> 00:58:43,895 だから我々はここのような何かを行うことができます 私が思うところ、私はこれをup--カバー 1204 00:58:43,895 --> 00:58:46,400 私は、VARの合計をカバーし part--と私たちは言いました 1205 00:58:46,400 --> 00:58:49,850 関数xyが戻りXプラスYに等しいです。 1206 00:58:49,850 --> 00:58:52,140 >> それが呼ばれるものです 無名関数。 1207 00:58:52,140 --> 00:58:53,920 これは、名前のない関数です。 1208 00:58:53,920 --> 00:58:56,290 これは、関数を言うのに対し 和、何とか、何とか、何とか、 1209 00:58:56,290 --> 00:58:59,340 これは単に機能を言うでしょう。 1210 00:58:59,340 --> 00:59:02,020 しかし、今私が持っているにもかかわらず、 この無名関数、 1211 00:59:02,020 --> 00:59:03,630 その関数は実際には単なる値です。 1212 00:59:03,630 --> 00:59:05,160 我々は値のように扱うことができます。 1213 00:59:05,160 --> 00:59:10,180 >> だから我々は、変数に同じことを、それを保存することができます 方法我々は、変数に50を格納することができます。 1214 00:59:10,180 --> 00:59:13,870 だから我々はOK、私が欲しい、と言うことができます 変数は、それは、和と呼ばれています 1215 00:59:13,870 --> 00:59:16,011 そして、この関数です。 1216 00:59:16,011 --> 00:59:18,760 したがって、これら二つのことは、実際にあります まったく同じことをやろうとして、 1217 00:59:18,760 --> 00:59:21,576 しかし、構文が少しあります 異なると楽しいノートのようなもの。 1218 00:59:21,576 --> 00:59:22,076 うん。 1219 00:59:22,076 --> 00:59:25,548 >> 聴衆:だからあなたが呼び出すことができます 言って無名だった機能、 1220 00:59:25,548 --> 00:59:28,244 和ブラケット2、5? 1221 00:59:28,244 --> 00:59:29,160 HANNAHブラムバーグ:うん。 1222 00:59:29,160 --> 00:59:32,280 あなたはこの匿名を呼び出すことができます 同じように機能します。 1223 00:59:32,280 --> 00:59:33,350 あなたは合計(2、​​5)を行うだろう;. 1224 00:59:33,350 --> 00:59:36,180 1225 00:59:36,180 --> 00:59:38,200 それは完全に罰金となります。 1226 00:59:38,200 --> 00:59:41,575 >> 私は、VARの合計に等しいしなかった場合 機能、私は削除した場合 1227 00:59:41,575 --> 00:59:45,480 this--私はそれが私の手にあることを知っています、 しかし私は、this--を削除ふり 1228 00:59:45,480 --> 00:59:46,964 その関数は、一種のちょうどなくなっています。 1229 00:59:46,964 --> 00:59:49,630 あなたはので、それを再度使用することはできません あなたはそれのために名前がありません。 1230 00:59:49,630 --> 00:59:53,497 それは何かを参照するのは難しいです あなたは何を呼び出すことを知りません。 1231 00:59:53,497 --> 00:59:54,080 良い質問。 1232 00:59:54,080 --> 00:59:54,580 うん。 1233 00:59:54,580 --> 00:59:59,580 >> 聴衆:あなたはで合計を参照することができます xプラスyの値を持つ他の場所? 1234 00:59:59,580 --> 01:00:01,940 >> HANNAHブラムバーグ:することができます 他の場所で参照和 1235 01:00:01,940 --> 01:00:03,360 値xプラスyは? 1236 01:00:03,360 --> 01:00:05,130 私はあなたが何を意味するか全くわかりません。 1237 01:00:05,130 --> 01:00:10,582 >> 聴衆:だからあなたの過去半匿名 この関数は和がこれと同じです 1238 01:00:10,582 --> 01:00:14,452 匿名関数は、そのように合計であります あなたがcan--今変数 1239 01:00:14,452 --> 01:00:15,410 HANNAHブラムバーグ:右。 1240 01:00:15,410 --> 01:00:18,980 だから合計は変数であり、 それはactually--です 1241 01:00:18,980 --> 01:00:23,770 だから合計はその変数であります 値が関数です。 1242 01:00:23,770 --> 01:00:27,030 だから、一種のある関数であり、 奇妙なことは、あなたの頭の周りをラップします 1243 01:00:27,030 --> 01:00:29,880 私たちは一緒に遊んでてきたので、 CあなたはCでそれを行うことはできません 1244 01:00:29,880 --> 01:00:32,679 しかし、今、私たちは合計を呼び出すことができます 同じように、私たちはここに合計を呼び出すことができます。 1245 01:00:32,679 --> 01:00:33,220 聴衆:[OK]をクリックします。 1246 01:00:33,220 --> 01:00:33,970 HANNAHブラムバーグ:うん。 1247 01:00:33,970 --> 01:00:34,553 良い質問。 1248 01:00:34,553 --> 01:00:35,438 うん。 1249 01:00:35,438 --> 01:00:39,862 >> 聴衆:だから我々は使用しないでください PHPやJavaScriptでのプロトタイプ? 1250 01:00:39,862 --> 01:00:42,070 HANNAHブラムバーグ:いいえ、私たち プロトタイプを使用する必要はありません、 1251 01:00:42,070 --> 01:00:43,880 特にJavaScriptのインチ 1252 01:00:43,880 --> 01:00:49,380 私はそのための悪い習慣のこと あなたが行うべきではないと言うつもり 1253 01:00:49,380 --> 01:00:52,620 あなたがするvar I = 50を記述する必要はありませんです。 1254 01:00:52,620 --> 01:00:54,840 あなたはわずか50 =私をやって開始することができます。 1255 01:00:54,840 --> 01:00:57,490 そして、ちょうど私がグローバル変数になるだろう。 1256 01:00:57,490 --> 01:01:00,550 >> それはに非常に悪い習慣です 私は明示的にVARを言うことはありません、 1257 01:01:00,550 --> 01:01:01,800 それはあなたが行うことができるものです。 1258 01:01:01,800 --> 01:01:03,591 インタプリタではありません あなたに叫ぶつもり。 1259 01:01:03,591 --> 01:01:05,920 JavaScriptは、かなりのようなものです あなたが欲しいものを行うことができます。 1260 01:01:05,920 --> 01:01:09,301 1261 01:01:09,301 --> 01:01:09,800 あ、ごめんなさい。 1262 01:01:09,800 --> 01:01:10,300 2があります。 1263 01:01:10,300 --> 01:01:12,150 オレンジ色のパンツに。 1264 01:01:12,150 --> 01:01:13,190 先に行く。 1265 01:01:13,190 --> 01:01:14,390 >> 聴衆:いいえ、あなたが最初に行きます。 1266 01:01:14,390 --> 01:01:16,765 >> 聴衆:いいえ、私は言っていました 私は私の手を上に持っていませんでした。 1267 01:01:16,765 --> 01:01:20,248 1268 01:01:20,248 --> 01:01:20,748 OK。 1269 01:01:20,748 --> 01:01:26,604 だから、呼び出しした場合 その初めて、今の和、 1270 01:01:26,604 --> 01:01:29,864 我々は、x、同じようにそれを呼び出します、 Y、毎回のように? 1271 01:01:29,864 --> 01:01:30,780 HANNAHブラムバーグ:うん。 1272 01:01:30,780 --> 01:01:32,572 したがって、これらの2本質的 同じことを行います。 1273 01:01:32,572 --> 01:01:35,113 聴衆:そして、何利点 1または他を使用しますか? 1274 01:01:35,113 --> 01:01:37,500 HANNAHブラムバーグ:いいえ利点 どちらか一方を使用します。 1275 01:01:37,500 --> 01:01:40,080 私はちょうど2つのあなたを見せたかったです 構文の異なる部分。 1276 01:01:40,080 --> 01:01:42,770 多くの時間どこ匿名 関数は、目的を持っています 1277 01:01:42,770 --> 01:01:48,220 場合は、別の引数であります 関数は、関数でなければなりません。 1278 01:01:48,220 --> 01:01:50,600 そして、我々はその中が表示されます Ajaxを使ってちょうど二。 1279 01:01:50,600 --> 01:01:53,577 >> それは何の意味もなかったのであれば、 あなたの頭の後ろにそれを格納します。 1280 01:01:53,577 --> 01:01:55,660 それはどこに匿名です 機能が役に立つかもしれません 1281 01:01:55,660 --> 01:01:58,284 それは実際に価値はないので、 私たちはしているので、それに名前を与えます 1282 01:01:58,284 --> 01:01:59,443 一度それを使用する予定。 1283 01:01:59,443 --> 01:02:00,370 うん。 1284 01:02:00,370 --> 01:02:03,635 >> 聴衆:もしxとyの変更後に で、同様の変化を合計しますか? 1285 01:02:03,635 --> 01:02:06,510 HANNAHブラムバーグ:xとy変更した場合 後に、同様の変化を合計しますか? 1286 01:02:06,510 --> 01:02:08,840 だから、これは私が実際にあります 何かを考えて、 1287 01:02:08,840 --> 01:02:12,260 再び、それだけで非常に異なる感じ Cからこれは値ではありません。 1288 01:02:12,260 --> 01:02:13,620 それは5ではありません。 1289 01:02:13,620 --> 01:02:15,550 それはちょうど関数自体です。 1290 01:02:15,550 --> 01:02:19,110 だから、できるだけ早くあなたがそれにパラメータを与えるとして、 あなたは、実際に値を計算します。 1291 01:02:19,110 --> 01:02:21,193 >> MARIA ZLATKOVA:そして あなたは関数を呼び出すことができます 1292 01:02:21,193 --> 01:02:23,272 いくつかの値を取得するために使用します。 1293 01:02:23,272 --> 01:02:24,230 HANNAHブラムバーグ:右。 1294 01:02:24,230 --> 01:02:25,250 その通りです。 1295 01:02:25,250 --> 01:02:25,863 うん。 1296 01:02:25,863 --> 01:02:27,946 >> 聴衆:だからあなたの場合 変数に格納し、 1297 01:02:27,946 --> 01:02:31,430 VARのXのように2 values​​--の合計に等しいです 1298 01:02:31,430 --> 01:02:32,420 >> HANNAHブラムバーグ:うん。 1299 01:02:32,420 --> 01:02:35,320 だから、あなただけのVAR合計を行うことができます 2つの値の和に等しいです。 1300 01:02:35,320 --> 01:02:37,670 うん。 1301 01:02:37,670 --> 01:02:38,680 その他の質問は? 1302 01:02:38,680 --> 01:02:39,642 うん。 1303 01:02:39,642 --> 01:02:42,047 >> 聴衆:しかし、それはでしょう 和と合計を混乱させる? 1304 01:02:42,047 --> 01:02:45,062 あなたは変数sumを呼び出した場合と同様に、 あなたは、関数の和を呼ぶのでしょうか? 1305 01:02:45,062 --> 01:02:45,895 HANNAHブラムバーグ:MM。 1306 01:02:45,895 --> 01:02:46,395 mmです。 1307 01:02:46,395 --> 01:02:51,253 あなたが何かをした場合 以下のような、和は合計2、5に等しいですか? 1308 01:02:51,253 --> 01:02:53,170 >> 聴衆:うん。 1309 01:02:53,170 --> 01:02:56,465 >> HANNAHブラムバーグ:私はと考えています 和の値が上書きされます。 1310 01:02:56,465 --> 01:02:59,290 だから、別の興味深いです JavaScriptのについての事 1311 01:02:59,290 --> 01:03:02,950 単一の変数が取ることができるということです 異なる種類の束に。 1312 01:03:02,950 --> 01:03:03,790 悪い習慣。 1313 01:03:03,790 --> 01:03:06,280 あなたが何かをするべきではありません あなたがちょうど言ったように。 1314 01:03:06,280 --> 01:03:10,240 >> しかし、C言語で、iが設定されている場合、 整数に等しいです、 1315 01:03:10,240 --> 01:03:13,570 我々はそれがことはないことを知っています 文字列になろう。 1316 01:03:13,570 --> 01:03:15,670 これはJavaScriptでのケースではありません。 1317 01:03:15,670 --> 01:03:17,770 うん、良い質問。 1318 01:03:17,770 --> 01:03:20,151 他に何か? 1319 01:03:20,151 --> 01:03:20,650 大丈夫。 1320 01:03:20,650 --> 01:03:21,850 時間のすべての権利を行います。 1321 01:03:21,850 --> 01:03:23,050 維持行きます。 1322 01:03:23,050 --> 01:03:25,200 大丈夫。 1323 01:03:25,200 --> 01:03:27,780 >> 我々は、アレイを見れば JavaScriptで、ここです 1324 01:03:27,780 --> 01:03:30,250 文字列の配列の簡単な例。 1325 01:03:30,250 --> 01:03:31,967 配列は動的に成長することができます。 1326 01:03:31,967 --> 01:03:33,675 彼らは持っていません 同じように固定サイズ 1327 01:03:33,675 --> 01:03:37,990 彼らはCで行うことを私たちはアクセスすることができます ちょうど角括弧を持つ要素。 1328 01:03:37,990 --> 01:03:41,720 >> これはPHPとたくさんによく似ています 私たちはこのような場合には、言うことができるC、のような、 1329 01:03:41,720 --> 01:03:48,360 私は言葉JavaScriptを望んでいた場合、私は希望 0、1、2で角括弧をARRありません。 1330 01:03:48,360 --> 01:03:51,450 1331 01:03:51,450 --> 01:03:55,390 ときに我々それから、あなたはC言語で覚えていれば 配列の長さを取得したいです、 1332 01:03:55,390 --> 01:03:56,820 それは本当に迷惑でした。 1333 01:03:56,820 --> 01:03:58,460 しかし、JavaScriptで、超簡単。 1334 01:03:58,460 --> 01:03:59,910 私たちはすべて、.LENGTH。 1335 01:03:59,910 --> 01:04:01,120 それを長さを与えます。 1336 01:04:01,120 --> 01:04:01,892 それでおしまい。 1337 01:04:01,892 --> 01:04:03,140 >> 観客:それは簡単です。 1338 01:04:03,140 --> 01:04:05,306 >> HANNAHブラムバーグ:うん、なります あなたの人生は非常に簡単。 1339 01:04:05,306 --> 01:04:08,950 1340 01:04:08,950 --> 01:04:11,560 [OK]を、存在しませんobject--。 1341 01:04:11,560 --> 01:04:15,480 JavaScriptの感触のオブジェクト C言語の構造体のようにたくさん 1342 01:04:15,480 --> 01:04:18,280 そして、PHPの連想配列。 1343 01:04:18,280 --> 01:04:20,270 だから、私たちは見てきたもの JSONで、多くの 1344 01:04:20,270 --> 01:04:23,150 JavaScriptのオブジェクト表記の略です。 1345 01:04:23,150 --> 01:04:25,550 そしてそれは、基本的な方法です 我々のデータを構造化します。 1346 01:04:25,550 --> 01:04:27,880 >> それでは、例を見てみましょう、 おそらく最も簡単。 1347 01:04:27,880 --> 01:04:32,540 そこでここでは、オブジェクトの例を示します。 それはCS50、クラスを格納します。 1348 01:04:32,540 --> 01:04:37,790 私はクラスを言うとき、私は、もちろん意味します 、ええCS50をコースをlike--ありません。 1349 01:04:37,790 --> 01:04:40,730 そして、あなたはそれを参照してくださいよ オブジェクト内のすべてのもの 1350 01:04:40,730 --> 01:04:43,526 含まれようとしています 中括弧インチ 1351 01:04:43,526 --> 01:04:48,260 >> そして、我々は、フィールド名を関連付けるために開始します または異なる値を持つキー。 1352 01:04:48,260 --> 01:04:52,920 だから、どのようにこの種の参照を開始することができます PHPの連想配列のように感じています。 1353 01:04:52,920 --> 01:04:57,450 だから我々は、フィールドを関連付けるために行っていますか キー名はもちろん、文字列で、 1354 01:04:57,450 --> 01:04:58,510 CS50。 1355 01:04:58,510 --> 01:04:59,940 >> 私たちは、インストラクターを持っているつもりです。 1356 01:04:59,940 --> 01:05:00,940 私たちはのTFを持っているつもりです。 1357 01:05:00,940 --> 01:05:05,240 私たちはのpsetの数を持っているつもりです 私たちは記録しているつもりです。 1358 01:05:05,240 --> 01:05:10,720 そして、注意する一つのクールなことは、すべてのです これらのことは、さまざまなタイプがあり、 1359 01:05:10,720 --> 01:05:12,020 それは完全に罰金です。 1360 01:05:12,020 --> 01:05:15,330 >> これは、実際には、オブジェクトに対して罰金 それはおそらく、オブジェクトのために期待です 1361 01:05:15,330 --> 01:05:19,620 文字列の組み合わせを有すること 数字とブールと配列 1362 01:05:19,620 --> 01:05:23,420 そして他のものは何でもかもしれません あなたのオブジェクトの内部にしたいです。 1363 01:05:23,420 --> 01:05:28,570 そして、これらがあることを行っていることに注意してください その後、名前やキー、ちょうど私達 1364 01:05:28,570 --> 01:05:30,300 少しコロンと同等に設定します。 1365 01:05:30,300 --> 01:05:32,015 >> 観客:JSONは正確に何を意味するのでしょうか? 1366 01:05:32,015 --> 01:05:33,890 HANNAHブラムバーグ:何 正確にJSONは意味ですか? 1367 01:05:33,890 --> 01:05:36,470 JSONはただの略 JavaScriptのオブジェクト表記。 1368 01:05:36,470 --> 01:05:38,430 これは、フォーマットのだけの方法です。 1369 01:05:38,430 --> 01:05:40,040 うん。 1370 01:05:40,040 --> 01:05:41,800 それは私たちのデータをフォーマットする方法です。 1371 01:05:41,800 --> 01:05:43,620 >> Cでは、これは構造体です。 1372 01:05:43,620 --> 01:05:45,800 PHPには、連想配列です。 1373 01:05:45,800 --> 01:05:47,120 JavaScriptでは、我々はオブジェクトを持っています。 1374 01:05:47,120 --> 01:05:48,969 >> 聴衆:だからCS50のオブジェクト? 1375 01:05:48,969 --> 01:05:51,010 HANNAHブラムバーグ:CS50があります この場合、オブジェクト。 1376 01:05:51,010 --> 01:05:54,830 1377 01:05:54,830 --> 01:05:57,880 さて、どのように我々は、実際にアクセスします これらのフィールドは、これらのフィールドを変更したり。 1378 01:05:57,880 --> 01:06:03,920 たとえば、私たちがすることを決定したと仮定 あなたが1つ少なくPSETこの学期を望んでいました。 1379 01:06:03,920 --> 01:06:06,300 代わりに9の、私たちはしています わずか8を持っているつもり。 1380 01:06:06,300 --> 01:06:08,240 どのように我々はそれを変更するのでしょうか? 1381 01:06:08,240 --> 01:06:09,436 >> ああ、間違った方法。 1382 01:06:09,436 --> 01:06:11,060 我々はそれを行うことができる2つの方法があります。 1383 01:06:11,060 --> 01:06:13,490 ナンバーワンは、ドットであります 表記と数2 1384 01:06:13,490 --> 01:06:15,750 角括弧表記です。 1385 01:06:15,750 --> 01:06:19,720 したがって、たとえば、私の場合 変更したり、アクセスしたいです 1386 01:06:19,720 --> 01:06:26,820 私たちのCS50オブジェクト内のpsetフィールド、 私はどうなることCS50.psetsあり、 1387 01:06:26,820 --> 01:06:30,770 オブジェクトのドットのように名前 フィールドの名前またはキー。 1388 01:06:30,770 --> 01:06:37,120 >> 非常に同様に、それは正確です CS50を行うには同等、その後、 1389 01:06:37,120 --> 01:06:42,050 角括弧で、のpset。 1390 01:06:42,050 --> 01:06:42,837 クール? 1391 01:06:42,837 --> 01:06:44,298 うん。 1392 01:06:44,298 --> 01:06:47,707 >> 聴衆:だから、JSONがあります まだ技術的にはJavaScript、 1393 01:06:47,707 --> 01:06:51,814 たとえのpsetで我々 [聞こえない]それを分離? 1394 01:06:51,814 --> 01:06:52,730 HANNAHブラムバーグ:確かに。 1395 01:06:52,730 --> 01:06:56,290 そこで問題は、されています JavaScriptとJSONと同等? 1396 01:06:56,290 --> 01:07:00,750 だから、JSONは基本的に、表記法であります 我々は書き出す方法 1397 01:07:00,750 --> 01:07:02,700 JavaScriptからオブジェクト。 1398 01:07:02,700 --> 01:07:05,190 そこで、彼らはまったく同じではないです。 1399 01:07:05,190 --> 01:07:08,950 >> 私はそこには、JavaScriptを言います JavaScriptでのオブジェクトがあります。 1400 01:07:08,950 --> 01:07:12,590 JSONは、これらのオブジェクトを取り、 それらを印刷し、それらを表示します 1401 01:07:12,590 --> 01:07:15,160 または素敵な方法でそれらを格納します。 1402 01:07:15,160 --> 01:07:18,110 だから、JSONはプログラミングではありません 言語JavaScriptがある方法。 1403 01:07:18,110 --> 01:07:20,900 それはのためだけの表記です JavaScriptでの私たちのオブジェクト。 1404 01:07:20,900 --> 01:07:21,400 うん。 1405 01:07:21,400 --> 01:07:24,144 >> 聴衆:だから何を正確に [聞こえない]完了? 1406 01:07:24,144 --> 01:07:25,060 HANNAHブラムバーグ:確かに。 1407 01:07:25,060 --> 01:07:27,727 だから、これは実際には何もしません。 1408 01:07:27,727 --> 01:07:28,935 これは、アクセスするだけの方法です。 1409 01:07:28,935 --> 01:07:31,393 それでは、我々が変更したいとしましょう 問題セットの数 1410 01:07:31,393 --> 01:07:32,450 八から九から。 1411 01:07:32,450 --> 01:07:34,383 私たちがやっていることは何かをです CS50.psets = 8のような;. 1412 01:07:34,383 --> 01:07:38,500 1413 01:07:38,500 --> 01:07:39,400 >> うん、偉大な質問。 1414 01:07:39,400 --> 01:07:40,733 これはあなたの構文を示すことです。 1415 01:07:40,733 --> 01:07:43,620 実際には何も有効ではありません。 1416 01:07:43,620 --> 01:07:46,085 質問は? 1417 01:07:46,085 --> 01:07:48,210 右に沿って移動します。 1418 01:07:48,210 --> 01:07:51,960 >> それでは、どのように簡単な例を見てみましょう 私はあなたにそれを言ったため、JavaScriptが動作します 1419 01:07:51,960 --> 01:07:55,170 これらすべてのクールなものを行い、 私たちは、ウェブページを変更することができます。 1420 01:07:55,170 --> 01:07:56,970 それでは、実際にアクションでそれを見てみましょう。 1421 01:07:56,970 --> 01:07:59,850 したがって、例えば、このHTMLファイルを取ります。 1422 01:07:59,850 --> 01:08:04,350 >> そして、私はあなたが集中したい事があります ボタンであり、この特定のタグ、 1423 01:08:04,350 --> 01:08:06,182 IDのsearch_buttonと。 1424 01:08:06,182 --> 01:08:08,670 それはちょうどページです。 1425 01:08:08,670 --> 01:08:10,690 だから今のは何を見てみましょう 私たちは、実際に行うことができます。 1426 01:08:10,690 --> 01:08:12,560 >> まあ、時と仮定 あなたはそのボタンをクリックし、 1427 01:08:12,560 --> 01:08:16,010 我々はalert--を作りたいです あなたはボタンをクリックしました。 1428 01:08:16,010 --> 01:08:17,840 我々はそれを行うことができます方法を見てみましょう。 1429 01:08:17,840 --> 01:08:23,869 だから、これはものではありませんwindow.onload-- あなたはクラスで見てきたこと、したがって、 1430 01:08:23,869 --> 01:08:26,180 クイズのためにそれを知っている必要はありません。 1431 01:08:26,180 --> 01:08:33,660 しかし、これは基本的にOK、呼び出し、言います この機能は、ときに、ウィンドウがロードされます。 1432 01:08:33,660 --> 01:08:35,080 >> だから、セットアップコードのだけの種類です。 1433 01:08:35,080 --> 01:08:36,390 そのことについてあまり心配しないでください。 1434 01:08:36,390 --> 01:08:39,170 私はあなたが集中したいことは、ここにあります。 1435 01:08:39,170 --> 01:08:44,020 我々は、VARのsearchButtonに等しいと言います document.getElementById search_button。 1436 01:08:44,020 --> 01:08:46,450 >> お察しのように、 これが何をするか、それが言うです 1437 01:08:46,450 --> 01:08:50,920 [OK]を、要素を探しに行きます IDのsearch_buttonと。 1438 01:08:50,920 --> 01:08:52,790 そして今、我々は持っていること 私は、実際の要素 1439 01:08:52,790 --> 01:08:56,279 に格納するつもり 変数searchButton。 1440 01:08:56,279 --> 01:09:00,651 そして今、我々は実際にその要素を使用することができます それを変更する、またはその値にアクセスし、 1441 01:09:00,651 --> 01:09:01,359 そういうもの。 1442 01:09:01,359 --> 01:09:04,649 私たちは実際に開始することができます ウェブページに係合します。 1443 01:09:04,649 --> 01:09:10,330 >> だからここに私は今、私が持っていることを、[OK]を、言います それがクリックされるボタン、 1444 01:09:10,330 --> 01:09:12,859 この匿名関数を呼び出します。 1445 01:09:12,859 --> 01:09:16,811 だから、これはどこに匿名で 機能が便利になります。 1446 01:09:16,811 --> 01:09:18,060 そして、この関数は何をするのでしょうか? 1447 01:09:18,060 --> 01:09:20,529 まあ、それだけで、これを呼び出します アラート機能は、それは、言います 1448 01:09:20,529 --> 01:09:22,910 あなたは[検索]ボタンをクリックしました。 1449 01:09:22,910 --> 01:09:29,670 >> 私はどこに行けば何が起こるのだろう このHTMLが住んでいると私はボタンをクリックし、 1450 01:09:29,670 --> 01:09:33,729 私は空想少しアラートを取得します それはあなたがボタンをクリックしたと言います。 1451 01:09:33,729 --> 01:09:40,710 だから、物事がに焦点を当てます here--のdocument.getElementById 1452 01:09:40,710 --> 01:09:44,960 特定のHTMLを取得 指定されたIDを持つ要素。 1453 01:09:44,960 --> 01:09:48,529 そして今、我々は設定することができます ときにどうしますか 1454 01:09:48,529 --> 01:09:50,702 その特定の要素がクリックされました。 1455 01:09:50,702 --> 01:09:52,670 >> 観客:我々はその中のすべてを置く必要がありますか? 1456 01:09:52,670 --> 01:09:53,162 >> HANNAHブラムバーグ:申し訳ありませんか? 1457 01:09:53,162 --> 01:09:55,130 >> 観客は:私たちが持っていますか 物理的にすべてのことをコーディング? 1458 01:09:55,130 --> 01:09:56,340 >> HANNAHブラムバーグ:私たちはしなければなりませんの 物理的にすべてのことをコーディング? 1459 01:09:56,340 --> 01:09:56,839 はい。 1460 01:09:56,839 --> 01:09:58,120 迷惑なのこの種ではないですか? 1461 01:09:58,120 --> 01:10:00,032 これは、コードがたくさんあり​​ます。 1462 01:10:00,032 --> 01:10:01,574 >> 観客:あなたが何かをインポートすることができます。 1463 01:10:01,574 --> 01:10:02,532 HANNAHブラムバーグ:右。 1464 01:10:02,532 --> 01:10:03,610 私たちは何かを使用することができます。 1465 01:10:03,610 --> 01:10:08,140 そしてparticular--にああ、それはです 私に言って、私はセクションを教える必要があります。 1466 01:10:08,140 --> 01:10:11,061 具体的には、してみましょう jQueryのライブラリを使用し、 1467 01:10:11,061 --> 01:10:13,060 それは本当にあったため、 長いと本当に迷惑 1468 01:10:13,060 --> 01:10:16,860 私はそれを簡略化できるようにしたいです それは短く、書き込みが容易になります。 1469 01:10:16,860 --> 01:10:19,810 >> だから、jQueryのは、JavaScriptのライブラリです。 1470 01:10:19,810 --> 01:10:24,930 だから、JavaScriptはプログラミングです 言語; jQueryのは、ライブラリです。 1471 01:10:24,930 --> 01:10:27,190 そして、それは簡単に物事の束を作ります。 1472 01:10:27,190 --> 01:10:33,230 これは、変更と横切る作ります HTMLドキュメントはるかに簡単。 1473 01:10:33,230 --> 01:10:35,030 >> これは、簡単にイベントを処理することができます。 1474 01:10:35,030 --> 01:10:37,580 これは、アニメーションが容易になります そしてそれは、Ajaxが簡単になります。 1475 01:10:37,580 --> 01:10:40,140 それでは、の二つにジャンプしてみましょう 今それらの事。 1476 01:10:40,140 --> 01:10:40,900 すみません。 1477 01:10:40,900 --> 01:10:42,620 私たちが行う前に、いくつかの基本的な構文。 1478 01:10:42,620 --> 01:10:46,870 >> これは、ほとんどのに呼ぶものです jQueryのライブラリは、のように見えます。 1479 01:10:46,870 --> 01:10:50,520 我々は、このドルを使用sign-- PHPへの接続記号ん、 1480 01:10:50,520 --> 01:10:56,030 ただの名前をinconvenient-- セレクタ、ドット、次にアクション。 1481 01:10:56,030 --> 01:10:58,860 それでは、いくつかを見てみましょう その具体的な例。 1482 01:10:58,860 --> 01:11:02,980 >> だから、これは実際には同じです イベントスライドからコード。 1483 01:11:02,980 --> 01:11:08,740 したがって、この長い、醜いものになります この非常に良く、小さい事。 1484 01:11:08,740 --> 01:11:10,370 それでは、これを打破してみましょう。 1485 01:11:10,370 --> 01:11:17,090 これは、[OK]を、jQuery--このドルを言います jQueryのをsign--、私のウィンドウを見つけます。 1486 01:11:17,090 --> 01:11:18,480 だから、セレクタです。 1487 01:11:18,480 --> 01:11:21,800 >> それはロードすると、この関数を呼び出します。 1488 01:11:21,800 --> 01:11:23,880 だから、内部のすべてのものです。 1489 01:11:23,880 --> 01:11:24,380 OK。 1490 01:11:24,380 --> 01:11:25,740 ここまでは順調ですね? 1491 01:11:25,740 --> 01:11:26,750 大丈夫。 1492 01:11:26,750 --> 01:11:32,970 >> さて、jQueryのは、私を見つけます IDのsearch_buttonとの事。 1493 01:11:32,970 --> 01:11:36,090 そして、それは何をクリックすると、 この関数を呼び出します。 1494 01:11:36,090 --> 01:11:37,900 そして、この関数の まったく同じ。 1495 01:11:37,900 --> 01:11:41,052 ただ警告の少しを行うには、 あなたは[検索]ボタンをクリックしました。 1496 01:11:41,052 --> 01:11:42,650 >> だから、本当にうれしいです。 1497 01:11:42,650 --> 01:11:46,260 それは実際に凝縮し、 私たちのコードを簡素化します。 1498 01:11:46,260 --> 01:11:49,030 私はどのようにしていることを知っていました それは、ID search_buttonです 1499 01:11:49,030 --> 01:11:50,960 クラスsearch_buttonを好きではありませんか? 1500 01:11:50,960 --> 01:11:52,024 >> 聴衆:ハッシュタグ? 1501 01:11:52,024 --> 01:11:52,940 HANNAHブラムバーグ:うん。 1502 01:11:52,940 --> 01:11:56,450 このハッシュ記号は、それだけで、CSSのようなものです。 1503 01:11:56,450 --> 01:12:00,080 ときに我々だから、CSSで、覚えています IDで何かを選択したかったです、 1504 01:12:00,080 --> 01:12:01,590 我々は、シャープ記号を使用していました。 1505 01:12:01,590 --> 01:12:05,400 そして、我々は選択したいとき クラス別の何かが、私たちは、ドットを使用しています。 1506 01:12:05,400 --> 01:12:06,870 よかった。 1507 01:12:06,870 --> 01:12:08,230 理にかなって? 1508 01:12:08,230 --> 01:12:11,500 だから、jQueryのは、になっています ちょうど私たちの生活を楽にします。 1509 01:12:11,500 --> 01:12:12,000 うん。 1510 01:12:12,000 --> 01:12:15,660 >> 聴衆:だから私は少し困惑しています 匿名関数がどのように動作するかを。 1511 01:12:15,660 --> 01:12:19,027 あなたはこの匿名希望者に名前を付けてください 機能、機能? 1512 01:12:19,027 --> 01:12:20,594 それはどのように呼ばれているのですか? 1513 01:12:20,594 --> 01:12:21,510 HANNAHブラムバーグ:確かに。 1514 01:12:21,510 --> 01:12:25,812 だから、この関数は単にキーワードであること 私は関数を定義しようよ、と言います。 1515 01:12:25,812 --> 01:12:26,520 聴衆:ああ、[OK]をクリックします。 1516 01:12:26,520 --> 01:12:27,353 HANNAHブラムバーグ:OK? 1517 01:12:27,353 --> 01:12:32,120 そして、我々はとして渡し 引数to--のは、見てみましょう 1518 01:12:32,120 --> 01:12:37,040 クリック機能に、このインナー選びます - 。 1519 01:12:37,040 --> 01:12:39,420 そんなわけで、そのための機能、 この無名関数、 1520 01:12:39,420 --> 01:12:40,910 実引数になります。 1521 01:12:40,910 --> 01:12:43,632 だから我々は、JavaScriptで覚えています 値としての機能を扱うことができます。 1522 01:12:43,632 --> 01:12:44,340 聴衆:ああ、[OK]をクリックします。 1523 01:12:44,340 --> 01:12:45,256 HANNAHブラムバーグ:うん。 1524 01:12:45,256 --> 01:12:46,035 私はそのような「ああ。」 1525 01:12:46,035 --> 01:12:47,490 ニース。 1526 01:12:47,490 --> 01:12:49,915 その他の質問? 1527 01:12:49,915 --> 01:12:50,505 時間? 1528 01:12:50,505 --> 01:12:51,380 MARIA ZLATKOVA:良いです。 1529 01:12:51,380 --> 01:12:52,760 良い。 1530 01:12:52,760 --> 01:12:54,210 >> HANNAHブラムバーグ:恐ろしいです。 1531 01:12:54,210 --> 01:12:55,720 いくつかの簡単な便利なjQueryの。 1532 01:12:55,720 --> 01:12:57,559 私は行くつもりはありません これらのすべてを。 1533 01:12:57,559 --> 01:12:59,350 これらのスライドになります オンライン少しアップ 1534 01:12:59,350 --> 01:13:02,040 後で、あなたは確認することができます 少し後でアウト。 1535 01:13:02,040 --> 01:13:07,120 しかし、基本的には、一般的な 私たちが言うところのパターンを保持しており、 1536 01:13:07,120 --> 01:13:11,510 [OK]を、ちょっと、jQueryのは、ここに私はです ここで選択した後は、アクションです。 1537 01:13:11,510 --> 01:13:15,940 そして、あなたはアクセスのようなものを行うことができます フォームの値は、一部のHTMLにアクセスします、 1538 01:13:15,940 --> 01:13:19,195 ときに、ユーザーの動作を制御 フォーム、そのようなものを提出します。 1539 01:13:19,195 --> 01:13:20,106 はい。 1540 01:13:20,106 --> 01:13:22,090 >> 聴衆:だからで 試験は、我々が必要としています 1541 01:13:22,090 --> 01:13:25,066 から非常に多くのことを知っています jQueryのドキュメントを参照してください。 1542 01:13:25,066 --> 01:13:31,018 だから我々は、jQueryのをコピー/ペーストすることを与えられました 私たちのチートシートに文書化、 1543 01:13:31,018 --> 01:13:32,506 どこに行が描かれていますか? 1544 01:13:32,506 --> 01:13:33,957 私たちが知っている必要がありますどのように多く、気に入りましたか? 1545 01:13:33,957 --> 01:13:35,290 HANNAHブラムバーグ:グレート質問。 1546 01:13:35,290 --> 01:13:37,765 質問です 基本的にあなたのことを考えます 1547 01:13:37,765 --> 01:13:41,330 jQueryのドキュメントにアクセスすることはできません テスト中に、どのくらいはあなたをすべき 1548 01:13:41,330 --> 01:13:41,830 知っていますか? 1549 01:13:41,830 --> 01:13:45,540 我々はあなたが来ることを期待していません いくつかのランダムな機能を備えたアップ 1550 01:13:45,540 --> 01:13:47,240 我々はGoogleにあなたを期待していること。 1551 01:13:47,240 --> 01:13:52,930 >> 公正なゲームです物事は私が希望しています 、一般的な構文だけのようなものを言います 1552 01:13:52,930 --> 01:13:58,310 IDによって選択することができると ただ、CSSのようなので、class--こともできます。 1553 01:13:58,310 --> 01:14:01,876 そして、実際の機能 その人自身が、私たちはおそらくあなたを教えてあげましょう。 1554 01:14:01,876 --> 01:14:02,376 うん。 1555 01:14:02,376 --> 01:14:05,591 >> 聴衆:だからあなたが選択 クラスによってドットを意味します。 1556 01:14:05,591 --> 01:14:06,840 HANNAHブラムバーグ:はい、まさに。 1557 01:14:06,840 --> 01:14:07,340 良い。 1558 01:14:07,340 --> 01:14:10,461 あなたはクラスで選択すると、それが起こっています シャープ記号の代わりにドットします。 1559 01:14:10,461 --> 01:14:10,960 はい。 1560 01:14:10,960 --> 01:14:12,710 >> 聴衆:あなただろう 違いを乗り越えます 1561 01:14:12,710 --> 01:14:14,310 IDでとクラスによって選択の間に? 1562 01:14:14,310 --> 01:14:14,560 >> HANNAHブラムバーグ:確かに。 1563 01:14:14,560 --> 01:14:17,510 選択の違い クラス別IDと選択。 1564 01:14:17,510 --> 01:14:20,685 だから、マリアが言ったように 少し先に、そこ 1565 01:14:20,685 --> 01:14:26,280 のみ1つのHTML要素であることができます 指定されたIDと、クラスのに対し、 1566 01:14:26,280 --> 01:14:29,740 それはたくさんのグループに私たちを可能にします 一緒の異なる要素 1567 01:14:29,740 --> 01:14:34,300 そのように関連している事、 なく、全く同じ。 1568 01:14:34,300 --> 01:14:35,685 それは質問に答えるでしょうか? 1569 01:14:35,685 --> 01:14:36,200 驚くばかり。 1570 01:14:36,200 --> 01:14:37,194 はい。 1571 01:14:37,194 --> 01:14:40,680 >> 観客:あなたは複数持っている場合はどう 同じクラスにあるもの? 1572 01:14:40,680 --> 01:14:42,150 >> HANNAHブラムバーグ:何が起こります あなたは複数のものを持っている場合 1573 01:14:42,150 --> 01:14:43,280 同じクラスはありますか? 1574 01:14:43,280 --> 01:14:45,829 したがって、たとえば、私たちはしている場合 ただ純粋なJavaScriptを使用して、 1575 01:14:45,829 --> 01:14:48,120 我々のような何かをするだろう document.getElementsByClass。 1576 01:14:48,120 --> 01:14:52,280 1577 01:14:52,280 --> 01:14:56,320 そして、それが実際に何をしますか 要素の配列を返します。 1578 01:14:56,320 --> 01:14:59,517 >> そして、あなたは反復処理するか持っています 彼らはあなたが望むどちら見つけますか。 1579 01:14:59,517 --> 01:15:01,350 それは与えることはないだろう あなた単一の要素。 1580 01:15:01,350 --> 01:15:03,450 それはあなたを与えるために起こっています 要素の配列。 1581 01:15:03,450 --> 01:15:05,280 素晴らしい質問です。 1582 01:15:05,280 --> 01:15:07,700 他に何か? 1583 01:15:07,700 --> 01:15:09,520 驚くばかり。 1584 01:15:09,520 --> 01:15:12,860 >> だから私は、あなたが精通している場合だと思います 任意のjQueryのは、PSETで見ました 1585 01:15:12,860 --> 01:15:15,600 あなたが行ってもいいことがあります。 1586 01:15:15,600 --> 01:15:16,325 質問? 1587 01:15:16,325 --> 01:15:17,610 あらいやだ。 1588 01:15:17,610 --> 01:15:18,859 私は実際に教えることがあります。 1589 01:15:18,859 --> 01:15:19,358 リラックス。 1590 01:15:19,358 --> 01:15:20,035 それは大丈夫です。 1591 01:15:20,035 --> 01:15:20,660 私はそこに着くでしょう。 1592 01:15:20,660 --> 01:15:24,670 1593 01:15:24,670 --> 01:15:26,870 >> のは、アヤックスについてお話しましょう​​。 1594 01:15:26,870 --> 01:15:31,350 だから、AjaxはA--もあることを行っています、 それが何の略かで開始してみましょう。 1595 01:15:31,350 --> 01:15:32,350 それは頭字語です。 1596 01:15:32,350 --> 01:15:35,855 これは、非同期の略 JavaScriptとXML。 1597 01:15:35,855 --> 01:15:39,800 そして、XMLは、基本的になるだろうさ [聞こえない]我々のデータの種類に。 1598 01:15:39,800 --> 01:15:42,100 しかし、我々は実際にはXMLを使用していません。 1599 01:15:42,100 --> 01:15:43,430 その代わりに、私たちは、JSONを使用しています。 1600 01:15:43,430 --> 01:15:48,350 >> したがって、基本的に、それはいくつかのですdata-- 非同期、JavaScript、およびデータ、 1601 01:15:48,350 --> 01:15:50,040 この場合、JSON。 1602 01:15:50,040 --> 01:15:52,820 我々が述べたように、私たちの目標は、 少し早く、 1603 01:15:52,820 --> 01:15:56,880 作ることができることです 要求、その要求を持っています 1604 01:15:56,880 --> 01:16:00,700 その事 背景が、継続 1605 01:16:00,700 --> 01:16:02,550 私たちがしようとするされたものは何でも。 1606 01:16:02,550 --> 01:16:06,650 そして、その情報である場合 準備ができて、そして、我々はそれを組み込むだろう。 1607 01:16:06,650 --> 01:16:08,470 >> それでは、どのようにこれを見てみましょう 実際のように見えます。 1608 01:16:08,470 --> 01:16:11,210 そして、これは、あなたがすべきです おなじみの少し 1609 01:16:11,210 --> 01:16:13,680 pset8から、人はあなただけになりました。 1610 01:16:13,680 --> 01:16:16,200 そこでここでは、有効なjQueryのです その私達がかもしれない機能 1611 01:16:16,200 --> 01:16:18,250 このドル記号about--知りたいです。 1612 01:16:18,250 --> 01:16:21,500 だから、jQueryの関数、.getJson氏は述べています。 1613 01:16:21,500 --> 01:16:25,020 >> そして、何この関数が行うことは、それであります URLと一部parameters--を取ります 1614 01:16:25,020 --> 01:16:28,000 私はケースで考えます pset8、それはのようでした、 1615 01:16:28,000 --> 01:16:33,520 URLはarticles.phpたと パラメータは=いくつかの郵便番号を行いました。 1616 01:16:33,520 --> 01:16:41,580 そして、それはOKに要求を行い、言います 指定されたパラメータでこのURL。 1617 01:16:41,580 --> 01:16:43,480 そして、それはちょうど起こります。 1618 01:16:43,480 --> 01:16:47,730 >> それが完了すると、それはどちらかです 正常に完了に行きます 1619 01:16:47,730 --> 01:16:49,370 またはそれは失敗するだろう。 1620 01:16:49,370 --> 01:16:53,480 だから、これはコールと同等です ロブとは何かをする彼に尋ねます。 1621 01:16:53,480 --> 01:17:00,260 彼が戻って呼び出したときにそして、彼はどちらかです 私が行っているか、私は失敗したと言うつもり。 1622 01:17:00,260 --> 01:17:04,030 >> あなたがいる場合にはそう 行って、あなたが言う、[OK]を、私は終わりです。 1623 01:17:04,030 --> 01:17:05,980 そして、あなたは、この関数を呼び出します。 1624 01:17:05,980 --> 01:17:08,915 この場合には、になるだろう いくつかの情報を受け取る関数。 1625 01:17:08,915 --> 01:17:12,890 我々は通常気に一つは、データです 私たちは実際に返されたデータ 1626 01:17:12,890 --> 01:17:15,900 .getJSONを呼び出した結果として。 1627 01:17:15,900 --> 01:17:17,470 >> そして、あなたはそれで何かを行うことができます。 1628 01:17:17,470 --> 01:17:23,670 だからpset8の場合には、 我々はそれをリストとして表示されます。 1629 01:17:23,670 --> 01:17:29,050 失敗関数になるだろう 要求が失敗した場合には呼び出されます 1630 01:17:29,050 --> 01:17:30,450 何らかの理由で。 1631 01:17:30,450 --> 01:17:35,104 そしてpset8の場合には、 我々はそれをCONSOLE.LOG。 1632 01:17:35,104 --> 01:17:36,020 その上の任意の質問? 1633 01:17:36,020 --> 01:17:36,300 うん。 1634 01:17:36,300 --> 01:17:39,633 >> 聴衆:私たちは、関数θを使用することができます 代わりに、関数の、textStatus、jqHXR。 1635 01:17:39,633 --> 01:17:43,464 1636 01:17:43,464 --> 01:17:44,380 HANNAHブラムバーグ:確かに。 1637 01:17:44,380 --> 01:17:46,713 そうそう、私はPSETで考えます、 私たちは関数データを見ました。 1638 01:17:46,713 --> 01:17:48,700 だから、それだけでOK、はいthe--です。 1639 01:17:48,700 --> 01:17:50,510 それは我々がPSETで見たものです。 1640 01:17:50,510 --> 01:17:51,480 それは完全に罰金です。 1641 01:17:51,480 --> 01:17:54,210 >> これらはあなたが望んでいただけの場合あり より多くの情報を引き出すために、 1642 01:17:54,210 --> 01:17:57,190 これらは、そのものです あなたは.getJSONから得ることができます。 1643 01:17:57,190 --> 01:17:59,040 良い質問。 1644 01:17:59,040 --> 01:17:59,706 他に何か? 1645 01:17:59,706 --> 01:18:00,206 うん。 1646 01:18:00,206 --> 01:18:01,787 >> 聴衆:だから.getJSONは、Ajaxのですか? 1647 01:18:01,787 --> 01:18:02,620 HANNAHブラムバーグ:[OK]をクリックします。 1648 01:18:02,620 --> 01:18:05,700 だから、これはトリッキーな部分の一種です。 1649 01:18:05,700 --> 01:18:12,390 それは可能にするjQueryの関数であり、 あなたの非同期呼び出しを行います。 1650 01:18:12,390 --> 01:18:16,080 そして、それらの非同期呼び出し、それはです 私たちは、Ajaxのように言及してきました。 1651 01:18:16,080 --> 01:18:16,850 うん。 1652 01:18:16,850 --> 01:18:20,185 それはに私に本当に長い時間がかかりました 私が学生だったときに引き離します。 1653 01:18:20,185 --> 01:18:21,560 観客:あなたは再びそれを言うことはできますか? 1654 01:18:21,560 --> 01:18:22,476 HANNAHブラムバーグ:うん。 1655 01:18:22,476 --> 01:18:23,630 私は再びそれを言うことはできますか? 1656 01:18:23,630 --> 01:18:29,010 この.getJSON機能、 それはjQueryの関数です。 1657 01:18:29,010 --> 01:18:31,970 そして、それは作るために起こっています 非同期呼び出し。 1658 01:18:31,970 --> 01:18:35,700 そして、これらの非同期呼び出し、我々はしました アヤックスとしてそれらを参照して。 1659 01:18:35,700 --> 01:18:39,610 1660 01:18:39,610 --> 01:18:41,872 >> その他の質問は? 1661 01:18:41,872 --> 01:18:43,330 我々は左だけで数分を持っています。 1662 01:18:43,330 --> 01:18:45,080 そしてマリアはに行きます セキュリティを包みます 1663 01:18:45,080 --> 01:18:47,464 し、我々はつもりです ちょうど約行われます。 1664 01:18:47,464 --> 01:18:48,630 MARIA ZLATKOVA:恐ろしい、[OK]をクリックします。 1665 01:18:48,630 --> 01:18:54,030 だから、これはただのカップルを取りますis-- この上を見て秒。 1666 01:18:54,030 --> 01:18:56,750 そして、これは本当に素晴らしいものではありません。 1667 01:18:56,750 --> 01:18:59,430 なぜ、誰かが私を伝えることができますか? 1668 01:18:59,430 --> 01:19:05,650 何FOOで起こっていると可能性があり 潜在的に悪いものになり、 1669 01:19:05,650 --> 01:19:06,770 それは何と呼ばれるのですか? 1670 01:19:06,770 --> 01:19:07,270 うん。 1671 01:19:07,270 --> 01:19:10,391 聴衆:もしの主張 12以上の文字で渡されました、 1672 01:19:10,391 --> 01:19:11,454 それがオーバーフローする可能性があります。 1673 01:19:11,454 --> 01:19:12,370 MARIA ZLATKOVA:右。 1674 01:19:12,370 --> 01:19:14,180 パーフェクト。 1675 01:19:14,180 --> 01:19:15,384 それはなんと呼ばれていますか? 1676 01:19:15,384 --> 01:19:16,300 あなたはそれを言及しました。 1677 01:19:16,300 --> 01:19:16,840 >> 聴衆:バッファオーバーフロー。 1678 01:19:16,840 --> 01:19:18,381 >> MARIA ZLATKOVA:うん、バッファオーバーフロー。 1679 01:19:18,381 --> 01:19:21,230 だから、これは私たちに何かあります バッファオーバーフローと呼びます。 1680 01:19:21,230 --> 01:19:25,500 そして、我々は、FOOの内部を参照してください 私たちは、バッファ、Cを定義しました、 1681 01:19:25,500 --> 01:19:27,240 12の大きさ。 1682 01:19:27,240 --> 01:19:32,680 しかし、主に、私たちにはありません すべてでどのような方法で確認してください 1683 01:19:32,680 --> 01:19:36,480 argv1--ようにするかどうか 第二引数ました。 1684 01:19:36,480 --> 01:19:39,630 私たちは、かどうかはチェックされません その大きさが適切です。 1685 01:19:39,630 --> 01:19:43,380 >> だから私たちが持っていた場合 特に悪質なユーザー 1686 01:19:43,380 --> 01:19:47,170 誰だったいくつかの引数に入れ 12よりも長く、その後、潜在的 1687 01:19:47,170 --> 01:19:50,850 その範囲外の 引数には、いくつかの実行可能なコードを持っていました 1688 01:19:50,850 --> 01:19:55,570 彼は悪い何かをしようとしていたこと それと;この、何が起こりますか、 1689 01:19:55,570 --> 01:19:59,310 リターンを上書きすることになります foo関数のアドレス、 1690 01:19:59,310 --> 01:20:04,370 ときに関数を引き起こし そのコードを実行するために戻って。 1691 01:20:04,370 --> 01:20:07,540 そして悪いことが起こる可能性があります。 1692 01:20:07,540 --> 01:20:09,850 これは、すべての人に意味がありますか? 1693 01:20:09,850 --> 01:20:12,424 >> そして、どのように我々はこの身を守ることができますか? 1694 01:20:12,424 --> 01:20:13,090 助言がありますか? 1695 01:20:13,090 --> 01:20:16,480 1696 01:20:16,480 --> 01:20:21,890 基本的には、内部 潜在FOO、どのように 1697 01:20:21,890 --> 01:20:28,294 我々は確認するためにチェックすることができます それが起こることができませんか? 1698 01:20:28,294 --> 01:20:33,879 >> 対象:サイズ12を超えた場合、 あなたは追加のメモリを割り当てるでしょうか? 1699 01:20:33,879 --> 01:20:37,170 MARIA ZLATKOVA:提案は、割り当て サイズの追加メモリを超えました。 1700 01:20:37,170 --> 01:20:39,800 実は、私たちは何かaを行うことができます それよりも簡​​単に多くにも。 1701 01:20:39,800 --> 01:20:44,870 私達はちょうど文字列の長さを得ることができます 入力された引数の、 1702 01:20:44,870 --> 01:20:48,590 それが小さいかどうかを確認 か等しいです12-- 1703 01:20:48,590 --> 01:20:50,790 我々はそれを望むものです 私たちは望んでいないためであると 1704 01:20:50,790 --> 01:20:52,373 それが私たちのバッファの境界を超えています。 1705 01:20:52,373 --> 01:20:55,690 そして、それがない場合は、我々 引数を指定して作業することができます。 1706 01:20:55,690 --> 01:21:00,296 それがない場合そして、私たちは、実際にしたいです ユーザーに潜在的YELLOします。 1707 01:21:00,296 --> 01:21:01,670 しかし、これは、我々はそれを行うだろうかです。 1708 01:21:01,670 --> 01:21:02,443 はい。 1709 01:21:02,443 --> 01:21:04,360 >> 観客:あなたはでした memcpyを実際に素早くを説明しますか? 1710 01:21:04,360 --> 01:21:05,443 MARIA ZLATKOVA:ああ、申し訳ありません。 1711 01:21:05,443 --> 01:21:06,040 はい。 1712 01:21:06,040 --> 01:21:11,290 memcpyのはOK、残念is--何でも取ります。 1713 01:21:11,290 --> 01:21:15,850 memcpyのは、どのような取り バーでは、何が渡されます 1714 01:21:15,850 --> 01:21:18,050 コマンドライン引数としてfooの上に。 1715 01:21:18,050 --> 01:21:19,440 だから、argv1を取るために起こっています。 1716 01:21:19,440 --> 01:21:21,420 Argv1はここにバーと呼ばれています。 1717 01:21:21,420 --> 01:21:24,453 だから、バーを取るために起こっていると それは、cにコピーするために起こっています。 1718 01:21:24,453 --> 01:21:25,402 >> 聴衆:[OK]をクリックします。 1719 01:21:25,402 --> 01:21:28,360 MARIA ZLATKOVA:そして、それに起こっています 3番目の引数はちょうどいいcopy-- 1720 01:21:28,360 --> 01:21:30,601 どのくらいには、cにコピーするために起こっています。 1721 01:21:30,601 --> 01:21:31,142 聴衆:ああ。 1722 01:21:31,142 --> 01:21:33,030 したがって、この1のコピー、それがすべて。 1723 01:21:33,030 --> 01:21:34,310 >> MARIA ZLATKOVA:うん、 それはそれのすべてをコピーします。 1724 01:21:34,310 --> 01:21:34,810 うん。 1725 01:21:34,810 --> 01:21:38,400 1726 01:21:38,400 --> 01:21:41,910 まず、バーがないことを確認してください それはポインタだからヌルに等しいです。 1727 01:21:41,910 --> 01:21:44,680 その後、我々はバーの文字列の長さを取得します。 1728 01:21:44,680 --> 01:21:47,530 我々は、それがだことを確認してください 12以下。 1729 01:21:47,530 --> 01:21:50,070 そして、我々はしましたので、 私たちが実際にすることができ、確認しました 1730 01:21:50,070 --> 01:21:53,122 memcpyを、それはOKだということを確認してください。 1731 01:21:53,122 --> 01:21:53,705 質問は? 1732 01:21:53,705 --> 01:21:56,280 1733 01:21:56,280 --> 01:21:58,690 よかった。 1734 01:21:58,690 --> 01:22:00,400 私は2つの真または偽の質問があります。 1735 01:22:00,400 --> 01:22:05,470 誰もがすぐに教えてもらえます これらが真か偽ですか? 1736 01:22:05,470 --> 01:22:07,460 はい、それは偽です。 1737 01:22:07,460 --> 01:22:07,960 その通りです。 1738 01:22:07,960 --> 01:22:09,330 それらの両方はfalseです。 1739 01:22:09,330 --> 01:22:12,682 だから、単一のパスワードを使用して 本当に良いアイデアになることはありません 1740 01:22:12,682 --> 01:22:14,890 誰かが知っていれば理由 あなたのパスワード、彼らができるだけ 1741 01:22:14,890 --> 01:22:16,260 他のすべてのアカウントにアクセス。 1742 01:22:16,260 --> 01:22:19,260 そして、アイコンは何もしません セキュリティを確保します。 1743 01:22:19,260 --> 01:22:24,900 我々は通常、HTTPSを探す必要があります 代わりにHTTPとURLの。 1744 01:22:24,900 --> 01:22:28,560 >> そして、いくつかの他のタイプの 我々が述べた攻撃、 1745 01:22:28,560 --> 01:22:31,390 ダビデはで言及していること 講義は、SQLインジェクション攻撃。 1746 01:22:31,390 --> 01:22:37,310 我々はすでに我々がdon't--場合ことを見ました CS50クエリ機能は確かにそのSQLを作ります 1747 01:22:37,310 --> 01:22:39,530 インジェクション攻撃を行うことができません。 1748 01:22:39,530 --> 01:22:42,640 しかし、我々は、CS50を使用していない場合、 引用、引用終わり "クエリでは、" 1749 01:22:42,640 --> 01:22:46,830 私たちは、ことを確認する必要があります ユーザ入力は、実際にいくつかのSQLではありません 1750 01:22:46,830 --> 01:22:49,670 すべての原因になりますクエリ 私たちのテーブルが削除されます 1751 01:22:49,670 --> 01:22:54,070 またはに悪い何か 私達のデータベースで発生。 1752 01:22:54,070 --> 01:22:56,790 >> セッションハイジャックがあります 攻撃の別のタイプ 1753 01:22:56,790 --> 01:23:05,940 ときにいくつかの悪いことが起こります 人はいくつかの犠牲者のセッションを使用しています 1754 01:23:05,940 --> 01:23:08,740 ログイン情報にアクセスするためのID。 1755 01:23:08,740 --> 01:23:13,620 だから、非常に簡単な例です 以下のような私たちは公共のコンピュータを持っている場合、 1756 01:23:13,620 --> 01:23:21,120 そして、悪い人のログで、その後、 それらが保存されているクッキーを持っています。 1757 01:23:21,120 --> 01:23:23,380 そして、クッキーはセッションのために変更されません。 1758 01:23:23,380 --> 01:23:27,620 >> その後、我々は被害者がで行く持っています して、ウェブサイトにログインします。 1759 01:23:27,620 --> 01:23:30,290 クッキーは変更されません。 特定のセッションのために。 1760 01:23:30,290 --> 01:23:33,060 そして被害者はにログイン ウェブサイト、その後の葉。 1761 01:23:33,060 --> 01:23:36,190 戻りそして人 その後、まだ彼らのセッションIDを使用することができます 1762 01:23:36,190 --> 01:23:37,430 自分の情報にアクセスします。 1763 01:23:37,430 --> 01:23:40,050 だから、の一例です どのように発生することがあります。 1764 01:23:40,050 --> 01:23:45,570 >> そして、私はあまり気にしないであろう 特定のコードか何かについて 1765 01:23:45,570 --> 01:23:49,270 これを引き起こす可能性があり、そのような、 しかし、どのようなアイデアのいくつかの並べ替えを持ちます 1766 01:23:49,270 --> 01:23:51,400 このに関与変数です。 1767 01:23:51,400 --> 01:23:53,897 そして、ヘッダを操作します データは、攻撃の別のタイプであります 1768 01:23:53,897 --> 01:23:55,230 それは、ダビデはについて話していました。 1769 01:23:55,230 --> 01:23:59,730 そして、それはちょうどを指し、 ときに何が起こりますか 1770 01:23:59,730 --> 01:24:04,300 応答、HTTP 私たちのヘッダの内部応答 1771 01:24:04,300 --> 01:24:05,720 適切にサニタイズされていません。 1772 01:24:05,720 --> 01:24:14,340 >> 例えばfields--のいずれか、 誰かが、ヘッダーの1を上書きした場合 1773 01:24:14,340 --> 01:24:18,860 以上のものを格納するための値 彼らが実際にcontain--とすべきです 1774 01:24:18,860 --> 01:24:22,720 例えば、200を含んでいます [OK]をステータスコード、彼ら 1775 01:24:22,720 --> 01:24:26,890 悪意のある行うことができます 物事それらが想定していません。 1776 01:24:26,890 --> 01:24:30,815 しかし、私はあまりにも心配はありません 特定のコードについて多く 1777 01:24:30,815 --> 01:24:34,110 それは、これを引き起こす可能性があり、 理解のちょうどソート 1778 01:24:34,110 --> 01:24:37,290 そのような高レベルのもの。 1779 01:24:37,290 --> 01:24:39,570 >> 私はこれがすべてだと思います 私たちがカバーするために持っています。 1780 01:24:39,570 --> 01:24:40,090 アメージング。 1781 01:24:40,090 --> 01:24:43,310 誰もがいずれかの上の任意の質問を持っています 私たちがカバーされ、物事の? 1782 01:24:43,310 --> 01:24:44,213 はい。 1783 01:24:44,213 --> 01:24:48,077 >> 聴衆:だから一種の より多くの物流質問。 1784 01:24:48,077 --> 01:24:53,400 内容は主に焦点を当てて クイズ1後のものに? 1785 01:24:53,400 --> 01:24:55,730 >> MARIA ZLATKOVA:だから 質問は、コンテンツです 1786 01:24:55,730 --> 01:24:59,720 クイズ1の後に、主なものに焦点を当てましたか? 1787 01:24:59,720 --> 01:25:06,070 そこで焦点は後にあり 例外とクイズ1、 1788 01:25:06,070 --> 01:25:10,914 私たちは、物事に集中する必要があること pset5とデータ構造の多く 1789 01:25:10,914 --> 01:25:11,580 我々はカバーされていること。 1790 01:25:11,580 --> 01:25:14,300 そして、我々は、我々が言うことができません 前に何かを無視することができます 1791 01:25:14,300 --> 01:25:17,120 それは同様にそれに基づいて構築されているため、その。 1792 01:25:17,120 --> 01:25:21,845 >> だから、に焦点を当て、プラスpset5材料 リンクリスト、スタックを含むように、 1793 01:25:21,845 --> 01:25:23,720 キュー、およびすべてのもの ハンナは渡ったことを。 1794 01:25:23,720 --> 01:25:24,050 >> HANNAHブラムバーグ:右。 1795 01:25:24,050 --> 01:25:27,450 ええ、私たちは、すべてのCのものの上に行ってきました で非常に非常に迅速に開始します。 1796 01:25:27,450 --> 01:25:29,090 しかし、それを確認してください。 1797 01:25:29,090 --> 01:25:32,700 戻って、クイズ0件の口コミを見て。 1798 01:25:32,700 --> 01:25:36,110 >> カップルより多くの物流のノート、 ただ一方で、私たちはあなたの注意を持っています。 1799 01:25:36,110 --> 01:25:39,100 私たちは、営業時間を持ってしようとしています 月曜日と火曜日の夜に両方。 1800 01:25:39,100 --> 01:25:41,540 彼らは、MD 119であることを行っています。 1801 01:25:41,540 --> 01:25:44,220 これには、すべてのウェブサイト上にあります あなたはそれ、何の心配もなくが聞こえない場合。 1802 01:25:44,220 --> 01:25:45,266 >> MARIA ZLATKOVA 11:00 8:30。 1803 01:25:45,266 --> 01:25:46,260 >> HANNAHブラムバーグ:うん11:00 8:30。 1804 01:25:46,260 --> 01:25:46,910 私たちはそこになるだろう。 1805 01:25:46,910 --> 01:25:48,368 私たちが質問に答えることがあります。 1806 01:25:48,368 --> 01:25:49,480 それはかなり寒さと楽しいです。 1807 01:25:49,480 --> 01:25:53,240 君たちはどんな質問をすることができます あなたはクイズ1に持っていること。 1808 01:25:53,240 --> 01:25:55,740 そして、クイズ1がオンになっています 水曜日、とても幸運。 1809 01:25:55,740 --> 01:25:59,770 何か質問がある場合は、多分 ここでは1対1を私たちに話を思い付きます。 1810 01:25:59,770 --> 01:26:00,880 クール。 1811 01:26:00,880 --> 01:26:01,630 本当にありがとう。 1812 01:26:01,630 --> 01:26:02,880 >> MARIA ZLATKOVA:ありがとう、みんな。 1813 01:26:02,880 --> 01:26:03,480 >> 聴衆:イェーイ。 1814 01:26:03,480 --> 01:26:05,930 >> [拍手] 1815 01:26:05,930 --> 01:26:07,530