1 00:00:00,000 --> 00:00:02,964 2 00:00:02,964 --> 00:00:05,434 >> [音楽再生] 3 00:00:05,434 --> 00:00:11,825 4 00:00:11,825 --> 00:00:12,700 HANNAH:こんにちは、誰も。 5 00:00:12,700 --> 00:00:15,866 出てくるためにみんなそんなにありがとうございました クイズ1のために嫌な天気で 6 00:00:15,866 --> 00:00:16,910 レビューセッション。 7 00:00:16,910 --> 00:00:20,020 あなたたちが知っているように、クイズ 1は、この水曜日です。 8 00:00:20,020 --> 00:00:22,209 だから我々は行くつもりです 話題の束を通して。 9 00:00:22,209 --> 00:00:24,000 デーヴィン:ねえ、私が言うことができる 実際に素早く何か? 10 00:00:24,000 --> 00:00:25,215 HANNAH:うん、デーヴィンの行く 実際に素早く何かを言って。 11 00:00:25,215 --> 00:00:25,780 デーヴィン:申し訳ありません。 12 00:00:25,780 --> 00:00:29,490 ご質問がある場合は、単に実際に素早く クイズについて、あなたはオンラインで行くことができます。 13 00:00:29,490 --> 00:00:32,420 クイズについて、2014年クイズ1に移動します。 14 00:00:32,420 --> 00:00:34,680 これは、約物流を持っている 行くためにどこで、いつどこへ行くか。 15 00:00:34,680 --> 00:00:38,100 あなたが同時に在籍している場合は、私たちはしている 5:30化粧クイズを持っているつもり。 16 00:00:38,100 --> 00:00:40,350 それとも、私に問題を送信した場合、 あなたは他のいくつかの問題がある。 17 00:00:40,350 --> 00:00:42,640 しかし、5時30分には、メイクアップです 水曜日の時間。 18 00:00:42,640 --> 00:00:44,540 しかし、あなたが質問がある場合は、 一般的な質問、 19 00:00:44,540 --> 00:00:45,748 オンラインでは、すべての物流を持っています。 20 00:00:45,748 --> 00:00:47,690 だから、最初にそこに確認してください。 21 00:00:47,690 --> 00:00:49,070 >> HANNAH:恐ろしい。 22 00:00:49,070 --> 00:00:53,030 だからここに話題のビッグリストです 今日は通過するつもりだ。 23 00:00:53,030 --> 00:00:57,390 私はCのすべてをカバーするつもりです その最初の列であるもの、。 24 00:00:57,390 --> 00:01:00,710 だからCのものを クイズゼロの後に覆われた。 25 00:01:00,710 --> 00:01:05,459 リンクリストから開始し、 そのポインタを含む。 26 00:01:05,459 --> 00:01:07,668 >> すべての権利、私たちはこれを見た 最終セッションで、 27 00:01:07,668 --> 00:01:10,000 私は通過するつもりだ これは少し速くなります。 28 00:01:10,000 --> 00:01:13,500 あなたは私がしたい場合は、ちょうどあなたの手を上げる 遅くしたり、さらに何かに取り組む。 29 00:01:13,500 --> 00:01:17,150 しかし、我々はので、リンクされたリストを使用 私たちは、アレイとCに始まった。 30 00:01:17,150 --> 00:01:20,920 と配列は素晴らしいですが、 問題は、固定サイズを有している。 31 00:01:20,920 --> 00:01:24,925 リンクされたリストは、私たちが作成することができます 動的にサイズデータ構造。 32 00:01:24,925 --> 00:01:28,520 33 00:01:28,520 --> 00:01:32,320 >> そして、私たちは私たちの基本的な操作を持っている、 挿入、削除、および検索します。 34 00:01:32,320 --> 00:01:36,780 そして、我々は、インサートを行うことができます 最悪の場合、一定の時間 35 00:01:36,780 --> 00:01:39,140 私たちは非常に最初にそれを置く場合。 36 00:01:39,140 --> 00:01:45,220 削除し、検索し、最悪 ああ、n個の時間の大ケース。 37 00:01:45,220 --> 00:01:47,140 だから、再び、ちょうど反転する これらの写真を通して、 38 00:01:47,140 --> 00:01:50,860 私たちはこれらの最後の時間を見て知っているが、我々 私たちのリンクリストを追跡したい 39 00:01:50,860 --> 00:01:53,440 を追跡することによって 私たちのリンクリストの先頭。 40 00:01:53,440 --> 00:01:55,580 私たちは知っているので 我々のノードの各々 41 00:01:55,580 --> 00:01:58,610 ちょうどを指すように起こっている 私たちのリンクリスト内の次のノード。 42 00:01:58,610 --> 00:02:00,460 >> だから、私たちが追跡する方法です。 43 00:02:00,460 --> 00:02:02,910 これらはありませんが メモリの連続ピース、 44 00:02:02,910 --> 00:02:07,410 私たちは、それらを見つけることができます 別の矢印を次のよう。 45 00:02:07,410 --> 00:02:09,800 ここに私たちの構造であり、 連結リストノードの。 46 00:02:09,800 --> 00:02:11,440 我々は、この最後の時間を見ました。 47 00:02:11,440 --> 00:02:13,080 私たちは、構造体のノードを持っている。 48 00:02:13,080 --> 00:02:14,340 そして、2つの特性を有する。 49 00:02:14,340 --> 00:02:17,020 ナンバー1、実際の 値は、私たちは、保存したい。 50 00:02:17,020 --> 00:02:18,290 この場合、それは整数だ。 51 00:02:18,290 --> 00:02:21,100 それは、文字列ができるかもしれない あなたが好きな、CHARである。 52 00:02:21,100 --> 00:02:24,710 その後、我々は、を追跡する必要が 私たちのリンクリスト内の次のノード。 53 00:02:24,710 --> 00:02:29,797 だから、になるだろう 次のノードへのポインタ。 54 00:02:29,797 --> 00:02:31,880 あなただけをしていた場合 私は前にも言ったように、検索、 55 00:02:31,880 --> 00:02:34,900 あなたの矢印を下に従わなければならないと思います。 56 00:02:34,900 --> 00:02:40,720 挿入、あなたが追跡したい あなたのリストの残りがどこにあるの。 57 00:02:40,720 --> 00:02:44,150 そして、あなたは頭をリダイレクトしたい 私たちの新しい要素、を指すようにした 58 00:02:44,150 --> 00:02:46,640 この場合には、いずれか その後1を指すようになります 59 00:02:46,640 --> 00:02:49,480 リンクリストの残りの部分。 60 00:02:49,480 --> 00:02:52,996 だから、再び、私は、これは少し知っている クイズゼロからの繰り返しのビット。 61 00:02:52,996 --> 00:02:55,370 だから我々は非常に注意する必要があります で、私たちの順序について 62 00:02:55,370 --> 00:03:00,390 我々はしないように、これらのpointingsを行う リストの後ろのトラックを失う。 63 00:03:00,390 --> 00:03:04,122 OK、あらゆる質問との ただ、単独リストをリンクさ? 64 00:03:04,122 --> 00:03:06,060 恐ろしい、[OK]を、涼しい。 65 00:03:06,060 --> 00:03:09,410 >> だから今、私たちは何かの上に行くつもりだ ただ少し複雑、 66 00:03:09,410 --> 00:03:10,920 二重にリンクされたリスト。 67 00:03:10,920 --> 00:03:13,680 維持に加えて、だから、 次のノードのトラック、 68 00:03:13,680 --> 00:03:16,220 我々はまた、追跡したい 前のノードの。 69 00:03:16,220 --> 00:03:19,580 我々はならそして、これは、私たちがすることができます 私達のリンクリスト内のある時点で、 70 00:03:19,580 --> 00:03:23,110 前方に行くだけでなく、 また後方反復する。 71 00:03:23,110 --> 00:03:25,220 我々が見たようにあるため 単独でリンクリスト、 72 00:03:25,220 --> 00:03:27,980 我々はいくつかのノードにあった、とした場合 突然、私たちは決めた、 73 00:03:27,980 --> 00:03:30,160 実際に、私はに行きたい 私の前にノード右、 74 00:03:30,160 --> 00:03:32,034 あなたはすべて行く必要があるだろう 後頭部への道 75 00:03:32,034 --> 00:03:35,710 あなたが見つけるまでと反復処理 あなたが探していたノード。 76 00:03:35,710 --> 00:03:37,680 >> だから、これは物事を作る 私たちがしているように少し簡単 77 00:03:37,680 --> 00:03:39,670 反復処理しようとしている 私達のリンクリストを経て。 78 00:03:39,670 --> 00:03:47,870 しかし、それは1を追跡するために私たちを必要とする より多くのポインタなので、もう一つのノードの星。 79 00:03:47,870 --> 00:03:50,830 すべての権利なので、ここでは楽しい部分が来る。 80 00:03:50,830 --> 00:03:55,600 私たちは、実装練習するつもりだ 二重連結リストに取り除く。 81 00:03:55,600 --> 00:03:58,660 だから、これはだものです クイズのための完全に公正なゲーム。 82 00:03:58,660 --> 00:04:00,750 それは、過去のクイズに現れた。 83 00:04:00,750 --> 00:04:04,220 だから、間違いなく製造することが Cで少しコードに 84 00:04:04,220 --> 00:04:07,900 すべてとのことを忘れてはいけない この楽しいPHPやJavaScript、 85 00:04:07,900 --> 00:04:10,560 我々はまだ覚えておく必要が C.を行うためには、だからそれをブラッシュアップ 86 00:04:10,560 --> 00:04:12,146 場合は、さびた感じている。 87 00:04:12,146 --> 00:04:14,580 >> すべての権利、私たちはこれを行うことができるかどうか見てみましょう。 88 00:04:14,580 --> 00:04:16,312 クール、[OK]をクリックします。 89 00:04:16,312 --> 00:04:18,600 だから我々は試してみるつもりだ 右ここで編集するには、 90 00:04:18,600 --> 00:04:20,707 計画通りにうまくいけば、これは行く。 91 00:04:20,707 --> 00:04:23,915 すべての権利、誰も私を与えたいと思うん 私は始めるべきかについての提案? 92 00:04:23,915 --> 00:04:27,030 私は唯一の前提 作りはすでに私ということです 93 00:04:27,030 --> 00:04:30,180 構造が定義されている、 1私は、最後のページに示した、 94 00:04:30,180 --> 00:04:31,420 最後のスライドに。 95 00:04:31,420 --> 00:04:39,250 そして、私は私のリンクの頭を格納しています リストと呼ばれるいくつかのポインタでリスト。 96 00:04:39,250 --> 00:04:42,190 誰も私が始めるしたいのか? 97 00:04:42,190 --> 00:04:45,410 >> 読者:あなたは新しいを作成できます リストを呼び出すためのノード? 98 00:04:45,410 --> 00:04:46,410 >> HANNAH:恐ろしいので、 私たちは、作成しましょう 99 00:04:46,410 --> 00:04:47,951 リストをクロールする新しいノード。 100 00:04:47,951 --> 00:04:48,570 私はすきです。 101 00:04:48,570 --> 00:04:50,799 それはOKだ場合、私はちょうどポインター、それを呼ぶことにします。 102 00:04:50,799 --> 00:04:52,340 そして、ここでそれはもともと始めるべき? 103 00:04:52,340 --> 00:04:57,280 104 00:04:57,280 --> 00:04:59,840 >> 聴衆:おそらくで リストの先頭。 105 00:04:59,840 --> 00:05:00,590 HANNAH:美しい。 106 00:05:00,590 --> 00:05:03,670 我々は、先頭に開始したい Iは、リストに格納されようとしていると述べた。 107 00:05:03,670 --> 00:05:04,170 恐ろしい。 108 00:05:04,170 --> 00:05:05,220 ここまでは順調ですね。 109 00:05:05,220 --> 00:05:08,260 そして今、私たちの目標は、にあり リストを反復 110 00:05:08,260 --> 00:05:12,870 我々は持つノードを見つけるまで 我々は削除したい値n。 111 00:05:12,870 --> 00:05:13,540 OK? 112 00:05:13,540 --> 00:05:15,910 >> だから今どこに部分です 我々は、反復処理したい。 113 00:05:15,910 --> 00:05:19,488 誰もが提案することができます を反復処理する方法は? 114 00:05:19,488 --> 00:05:20,979 >> 読者:ループ。 115 00:05:20,979 --> 00:05:21,840 >> HANNAH:ループ。 116 00:05:21,840 --> 00:05:22,620 大好きです。 117 00:05:22,620 --> 00:05:25,550 具体的には、whileループを試すことができます。 118 00:05:25,550 --> 00:05:30,919 OK、そして我々が達したことを知っている 私たちのリストの最後と何? 119 00:05:30,919 --> 00:05:32,210 読者:ポインタがNULL。 120 00:05:32,210 --> 00:05:33,418 HANNAH:ポインタはNULLです。 121 00:05:33,418 --> 00:05:34,320 美しい、私はそれを愛する。 122 00:05:34,320 --> 00:05:35,110 クール、[OK]をクリックします。 123 00:05:35,110 --> 00:05:39,300 124 00:05:39,300 --> 00:05:43,190 私のバウンディングブレースがあるのであれば申し訳ありません 種類の画面をオフに落ちる。 125 00:05:43,190 --> 00:05:44,090 我々はそれを持ち帰った。 126 00:05:44,090 --> 00:05:46,610 クール、[OK]をクリックします。 127 00:05:46,610 --> 00:05:48,690 次は何ですか? 128 00:05:48,690 --> 00:05:51,950 >> だから我々は、我々は削除したい知っている 値nを持つノード。 129 00:05:51,950 --> 00:05:56,340 それでは、どこにケースを見つけてみましょう 私たちは実際に私達のノードを見つける。 130 00:05:56,340 --> 00:05:57,840 それでは、どのよう私はそれをチェックするのでしょうか? 131 00:05:57,840 --> 00:06:02,210 私場合、私はちょうどそのポインタあれば言う、と思います ポインタから値を取得したい、 132 00:06:02,210 --> 00:06:08,940 私はちょうど、n個の矢印でください nは、パラメータに等しい 133 00:06:08,940 --> 00:06:14,490 私たちは、この関数に与えた 私たちが実際に削除するノード。 134 00:06:14,490 --> 00:06:17,090 ここまでは、最大何か質問? 135 00:06:17,090 --> 00:06:18,360 大丈夫。 136 00:06:18,360 --> 00:06:24,140 [OK]を、ので、今のは、迅速な絵を描きましょう 基板上に順にこれを可視化する。 137 00:06:24,140 --> 00:06:30,710 >> それでは、私たちの素敵なノードがあるとしましょう​​。 138 00:06:30,710 --> 00:06:34,480 そして、それは価値があり、私はちょうど4を言うよ。 139 00:06:34,480 --> 00:06:40,340 そして、それは次を指して 私たちのリンクリスト内のノード。 140 00:06:40,340 --> 00:06:42,220 そして、それ以前に何もありません。 141 00:06:42,220 --> 00:06:45,800 だから我々は我々の前のを持っている 何を指している。 142 00:06:45,800 --> 00:06:48,110 このケースでは、後方を指す。 143 00:06:48,110 --> 00:06:50,960 OK、ちょうど私のセットアップ こちらにリンクリスト。 144 00:06:50,960 --> 00:06:53,630 そして、我々はその点リストを持っている そもそもこの構造体へ。 145 00:06:53,630 --> 00:06:57,220 146 00:06:57,220 --> 00:07:00,485 私はのための1続きを描画します 完全を期す。 147 00:07:00,485 --> 00:07:04,209 148 00:07:04,209 --> 00:07:06,117 OK。 149 00:07:06,117 --> 00:07:07,480 私は、この前進を指します。 150 00:07:07,480 --> 00:07:09,550 そして、私はその1背中を指すでしょう。 151 00:07:09,550 --> 00:07:10,360 おっと、申し訳ありません。 152 00:07:10,360 --> 00:07:12,710 うん、後方にこれを得た。 153 00:07:12,710 --> 00:07:15,548 154 00:07:15,548 --> 00:07:16,967 再びそれを行う。 155 00:07:16,967 --> 00:07:18,330 [OK]を、そこに私達は行く。 156 00:07:18,330 --> 00:07:19,910 すべての権利、それを得た。 157 00:07:19,910 --> 00:07:21,780 [OK]を、ここに私たちの絵だ。 158 00:07:21,780 --> 00:07:24,860 >> [OK]を、私たちは2例を検討したい。 159 00:07:24,860 --> 00:07:27,330 最初のケースは、次の場合です。 私たちは、削除するノード 160 00:07:27,330 --> 00:07:29,420 私たちのリストの非常に先頭にある。 161 00:07:29,420 --> 00:07:34,070 私たちが望むそして、第二ケース それはどこか他の場合に考慮することである。 162 00:07:34,070 --> 00:07:37,660 私はこの完全にあることを理解 すべての私の消去と厄介な図面、 163 00:07:37,660 --> 00:07:40,400 うまくいけば、我々はしようとするでしょう いくつかのコードでこれを明確に。 164 00:07:40,400 --> 00:07:45,450 >> OK、それでは、ケースをカバーしましょう 我々は我々のノードを見つけた場所、 165 00:07:45,450 --> 00:07:48,900 そしてそれは非常にだ 私たちのリンクリストの先頭。 166 00:07:48,900 --> 00:07:50,810 誰もが私を与える ものとして、ここでの提案 167 00:07:50,810 --> 00:07:54,684 私は実際に私達のノードを削除するために何をすべき? 168 00:07:54,684 --> 00:07:55,970 それは少しトリッキーです。 169 00:07:55,970 --> 00:07:56,470 OK? 170 00:07:56,470 --> 00:07:59,628 >> 読者:あなたが取る必要がある その前になりノード 171 00:07:59,628 --> 00:08:01,794 そしてそれが指す作る それの後になります1、 172 00:08:01,794 --> 00:08:03,004 そのノードを取る それの後であることとなるだろう 173 00:08:03,004 --> 00:08:04,554 それはそれの前にノードを指す。 174 00:08:04,554 --> 00:08:05,220 HANNAH:まさに。 175 00:08:05,220 --> 00:08:10,640 OK、これはケースです where--我々は2つ​​のケースを持っている。 176 00:08:10,640 --> 00:08:14,100 私たちはケースを持っている 我々が探しているノード 177 00:08:14,100 --> 00:08:18,270 リストの先頭です。 178 00:08:18,270 --> 00:08:23,110 [OK]をクリックして、あなたの場合 記載され、右、そうでないのですか? 179 00:08:23,110 --> 00:08:24,500 これは、リスト内のどこか別の場所だ。 180 00:08:24,500 --> 00:08:27,460 181 00:08:27,460 --> 00:08:32,840 ですから、私たちがする必要がある、と述べ 前のノードを見て、 182 00:08:32,840 --> 00:08:36,500 と前のノードを作る 次のノードを指す。 183 00:08:36,500 --> 00:08:40,510 それでは、私たちがしているとしましょう 5を取るしようとしている 184 00:08:40,510 --> 00:08:43,059 こちらに私の非常に厄介な図中。 185 00:08:43,059 --> 00:08:47,530 私たちは、ことを確認するには 4は今6を指す。 186 00:08:47,530 --> 00:08:49,590 4〜6の次のポイント。 187 00:08:49,590 --> 00:08:52,150 4へと6の前のポイント。 188 00:08:52,150 --> 00:08:53,960 そう、ここに私たちの目標です? 189 00:08:53,960 --> 00:08:56,150 これは、私はあなたを考えるものである ちょうどあそこに言った。 190 00:08:56,150 --> 00:08:58,450 >> OK、それでは、その最初の作品を紹介しています。 191 00:08:58,450 --> 00:09:02,300 持っているのは、やってみましょう 以前のポインタ前の。 192 00:09:02,300 --> 00:09:06,550 193 00:09:06,550 --> 00:09:09,690 だから、4の次は何を指している必要があります? 194 00:09:09,690 --> 00:09:13,210 195 00:09:13,210 --> 00:09:14,900 まさに、この場合、6。 196 00:09:14,900 --> 00:09:18,470 だから我々は次の、ポインタを言う必要があります。 197 00:09:18,470 --> 00:09:20,600 OK? 198 00:09:20,600 --> 00:09:21,150 大丈夫。 199 00:09:21,150 --> 00:09:24,870 それでは、この醜い絵を取り除くましょう と少しよりよいものを描くようにしてください。 200 00:09:24,870 --> 00:09:29,040 201 00:09:29,040 --> 00:09:31,172 ここでは私たちのリストの頭を持っている。 202 00:09:31,172 --> 00:09:36,440 203 00:09:36,440 --> 00:09:42,740 そして、それは最初のノードを指す 我々は言った私達のリンクリストは、4です。 204 00:09:42,740 --> 00:09:45,620 ここに私たちの第二のノード、5です。 205 00:09:45,620 --> 00:09:47,307 そして、私たちの第3のノード、6。 206 00:09:47,307 --> 00:09:50,265 ただ正確に同じの描画しようとしている 絵、ほんのもう少しきれいに。 207 00:09:50,265 --> 00:09:52,780 208 00:09:52,780 --> 00:09:56,280 [OK]を、ので、4の次の もともと5を指す。 209 00:09:56,280 --> 00:09:58,620 6へファイブの次のポイント。 210 00:09:58,620 --> 00:10:00,170 5へシックスの前のポイント。 211 00:10:00,170 --> 00:10:02,470 4へと5の前のポイント。 212 00:10:02,470 --> 00:10:03,360 だから、非常に良く! 213 00:10:03,360 --> 00:10:04,530 クール、[OK]をクリックします。 214 00:10:04,530 --> 00:10:07,770 >> だから今、私たちは何をしたか ここでは、コード行、 215 00:10:07,770 --> 00:10:12,680 ポインタが以前言っている 次ので、それは何を意味するのでしょうか? 216 00:10:12,680 --> 00:10:17,540 私たちが見ている場合、それは意味 5、前のノードに移動し、 217 00:10:17,540 --> 00:10:21,970 それは次のようになりましすべきだ 5の次にポイント。 218 00:10:21,970 --> 00:10:27,840 だから、基本的に、それは何をやっている それは、この矢印を消去ださ 219 00:10:27,840 --> 00:10:29,640 それは右の5をスキップすること。 220 00:10:29,640 --> 00:10:31,360 それは明確ですか? 221 00:10:31,360 --> 00:10:33,200 私はそれが少し大ざっぱことができます知っている。 222 00:10:33,200 --> 00:10:34,480 私はいくつかの頭のうなずきを参照してください。 223 00:10:34,480 --> 00:10:35,390 それは良い。 224 00:10:35,390 --> 00:10:36,670 クール、[OK]をクリックします。 225 00:10:36,670 --> 00:10:39,590 さて、次のステップは何ですか? 226 00:10:39,590 --> 00:10:42,060 >> 私は次をリセットしました。 227 00:10:42,060 --> 00:10:45,297 さて、そのほかの矢印 私は変更する必要がありますか? 228 00:10:45,297 --> 00:10:46,130 この1はここ。 229 00:10:46,130 --> 00:10:47,560 シックスの前の。 230 00:10:47,560 --> 00:10:50,620 私たちは、6の前の必要はありません もう5を指すようにします。 231 00:10:50,620 --> 00:10:54,580 我々は、それが4を指すようにしたい。 232 00:10:54,580 --> 00:10:56,190 その絵は意味があるか? 233 00:10:56,190 --> 00:10:58,370 だから今、私たちは、実際に5外を取ることができます。 234 00:10:58,370 --> 00:10:59,370 それでは、その部分を紹介しています。 235 00:10:59,370 --> 00:11:03,390 236 00:11:03,390 --> 00:11:11,180 私は私の前に何をすべき 6の以前の4へのリセット? 237 00:11:11,180 --> 00:11:14,360 そこに任意のアイデア? 238 00:11:14,360 --> 00:11:17,369 >> 読者:間のノードを解放 それがnullに設定することで、それら? 239 00:11:17,369 --> 00:11:17,910 HANNAH:クール。 240 00:11:17,910 --> 00:11:21,100 確かに、私たちの最終目標は、 ノードを解放することになるだろう。 241 00:11:21,100 --> 00:11:22,490 だから我々はここことを行うことができます。 242 00:11:22,490 --> 00:11:23,540 フリーポインタ。 243 00:11:23,540 --> 00:11:24,810 絶対に。 244 00:11:24,810 --> 00:11:29,160 しかし、たとえその前に、 私たちの目標権をjust--てみましょう 245 00:11:29,160 --> 00:11:38,730 ここで次のポインタを設定することである 以前のポインタに等しく、前。 246 00:11:38,730 --> 00:11:40,760 私はこれが隠蔽なって知っている。 247 00:11:40,760 --> 00:11:45,440 OK、のクールtake--ましょう。 248 00:11:45,440 --> 00:11:46,990 誰もがこの下の行を見ることができますか? 249 00:11:46,990 --> 00:11:47,840 それとも、スーパー小さいのですか? 250 00:11:47,840 --> 00:11:50,430 251 00:11:50,430 --> 00:11:54,300 >> だから我々は実行する前に ここでこの行は、私たちが欲しい 252 00:11:54,300 --> 00:11:58,375 ことを確認する ポインタは次のnullではない。 253 00:11:58,375 --> 00:12:00,500 ポインタが次の場合はあるので ヌル、どのようなエラーの種類 254 00:12:00,500 --> 00:12:02,727 私がしようとしたときに私が取得します nullポインタを参照する? 255 00:12:02,727 --> 00:12:03,560 読者:ワンセグの障害。 256 00:12:03,560 --> 00:12:05,660 HANNAH:ワンセグ障害、美しい。 257 00:12:05,660 --> 00:12:09,690 [OK]を、ので、それがない場合は、 nullの場合、私たちはリセットすることができます。 258 00:12:09,690 --> 00:12:14,420 そして、我々は4つに再び6点を持っている。 259 00:12:14,420 --> 00:12:17,440 この時点までの質問まで? 260 00:12:17,440 --> 00:12:17,940 はい? 261 00:12:17,940 --> 00:12:19,814 >> 読者:あなたの最初には if文、あなたがやった 262 00:12:19,814 --> 00:12:23,817 矢印を持っていることを意味 次の、または[聞こえない]? 263 00:12:23,817 --> 00:12:25,150 HANNAH:私は、ポインタ矢印nを意味した。 264 00:12:25,150 --> 00:12:30,270 そこで、基本的に、私が何をしようとしている 私は、現在のノードは、言うである 265 00:12:30,270 --> 00:12:34,100 繰り返し処理、現在のノードその 私はポインタに格納しています、見ている。 266 00:12:34,100 --> 00:12:37,630 そして、私はポインタのを知りたい この場合、nは値。 267 00:12:37,630 --> 00:12:39,500 そして、私が見たいと思って、ある 私が探していたノード 268 00:12:39,500 --> 00:12:42,790 ノードに対して私は削除することを目指している? 269 00:12:42,790 --> 00:12:47,657 ここでポインタnを持っている理由だからです。 270 00:12:47,657 --> 00:12:49,857 >> 聴衆:だから、矢印が行く nには、値を設定 271 00:12:49,857 --> 00:12:52,058 とnと呼ばれるノードに格納します? 272 00:12:52,058 --> 00:12:55,410 273 00:12:55,410 --> 00:12:58,820 >> HANNAH:だから、私がした場合のようなものだ このリンクリストを通過する 274 00:12:58,820 --> 00:13:00,310 と5を指す。 275 00:13:00,310 --> 00:13:03,600 私があれば、その値を取得したい場合 私は、その数、5を取得したい 276 00:13:03,600 --> 00:13:06,400 私は、ポインタ矢印nを行う必要があります。 277 00:13:06,400 --> 00:13:06,900 クール? 278 00:13:06,900 --> 00:13:07,900 うん。 279 00:13:07,900 --> 00:13:11,200 >> 観客は:変数の名前をnは? 280 00:13:11,200 --> 00:13:11,700 HANNAH:はい。 281 00:13:11,700 --> 00:13:14,870 だから我々は戻って1を反転した場合 スライドは、nが名前である 282 00:13:14,870 --> 00:13:18,660 内部の値の 私たちのリンクリスト内のノード。 283 00:13:18,660 --> 00:13:21,510 そして、私はそれは少しを得ることができます知っている 少し混乱も私たちのため 284 00:13:21,510 --> 00:13:24,680 ものを呼び出している 我々は、nを削除すること。 285 00:13:24,680 --> 00:13:26,717 だから、それはどこだ 1行がから来ている。 286 00:13:26,717 --> 00:13:27,671 うん? 287 00:13:27,671 --> 00:13:31,010 >> 読者:あなたは何がありますか [聞こえない]、彼らがどのように動作するか? 288 00:13:31,010 --> 00:13:33,872 289 00:13:33,872 --> 00:13:35,780 ポインタ[聞こえない]? 290 00:13:35,780 --> 00:13:37,520 >> HANNAH:確かに。 291 00:13:37,520 --> 00:13:40,027 あなたがabout--どのラインを話している? 292 00:13:40,027 --> 00:13:41,526 読者:最後の行[聞こえない]。 293 00:13:41,526 --> 00:13:44,280 294 00:13:44,280 --> 00:13:45,250 >> HANNAH:確かに、OK。 295 00:13:45,250 --> 00:13:48,540 それでは、絵で見てみましょう これを説明しようとするため。 296 00:13:48,540 --> 00:13:51,030 私はのために、ごめんなさい カメラ、質問はなかった 297 00:13:51,030 --> 00:13:54,580 私たちは、ポインタを説明することができます 前へ次へのポインタを矢印。 298 00:13:54,580 --> 00:14:01,510 OK、それでは、私たちは5にいるとしましょう そして私たちの目標は、5を削除することです。 299 00:14:01,510 --> 00:14:07,240 だから、これは、これらの、次のポインタ 3ノードは、それが私たちを与えるのでしょうか? 300 00:14:07,240 --> 00:14:10,840 それは正しい、第6ノードに私たちをもたらしますか? 301 00:14:10,840 --> 00:14:16,490 >> [OK]を、ので、今私たちは求めている 6の以前のために。 302 00:14:16,490 --> 00:14:17,060 OK? 303 00:14:17,060 --> 00:14:20,210 そして、我々はこれを再設定している 4個に等しくなるように、 304 00:14:20,210 --> 00:14:23,214 その5の前のことを起こった。 305 00:14:23,214 --> 00:14:25,180 私はそれがスーパーですが、知っている ハードを追跡する。 306 00:14:25,180 --> 00:14:29,286 私は本当にあなたが絵を描くお勧めします あなたはこのような質問を得れば。 307 00:14:29,286 --> 00:14:30,242 はい? 308 00:14:30,242 --> 00:14:32,617 >> 観客は:その理由です 私たちは[聞こえない]を持っていないのですか? 309 00:14:32,617 --> 00:14:37,430 310 00:14:37,430 --> 00:14:38,570 >> HANNAH:まさに。 311 00:14:38,570 --> 00:14:44,800 質問がなかったので、なぜ 我々はここでチェックする必要はありませ? 312 00:14:44,800 --> 00:14:48,160 なぜ我々はあることをチェックする必要はありません 以前のポインタがnullに等しいではないでしょうか? 313 00:14:48,160 --> 00:14:50,070 そして、私たちがしたからだ すでに分離し 314 00:14:50,070 --> 00:14:52,490 ケースポインタの場合 非常に冒頭に。 315 00:14:52,490 --> 00:14:54,060 とても良い質問。 316 00:14:54,060 --> 00:14:56,880 この上で他には? 317 00:14:56,880 --> 00:14:57,380 クール、[OK]をクリックします。 318 00:14:57,380 --> 00:14:58,360 それでは、それを仕上げましょう。 319 00:14:58,360 --> 00:14:59,890 私たちはほとんどがしています。 320 00:14:59,890 --> 00:15:01,310 >> だから何それが頭にある場合は? 321 00:15:01,310 --> 00:15:03,360 どのような場合の代わりに、 5を削除しようと、 322 00:15:03,360 --> 00:15:06,240 私たちは実際に4を削除したいですか? 323 00:15:06,240 --> 00:15:07,270 私は何をしなければならないでしょう? 324 00:15:07,270 --> 00:15:09,610 まあ、私は何に私の頭をリセットしたい? 325 00:15:09,610 --> 00:15:14,288 326 00:15:14,288 --> 00:15:15,585 それを叫ぶ? 327 00:15:15,585 --> 00:15:16,710 読者:それの後に1。 328 00:15:16,710 --> 00:15:17,460 HANNAH:美しい。 329 00:15:17,460 --> 00:15:26,430 [OK]を、私たちは指していることをリストアップしたい どんな私達のポインタに次のノードである。 330 00:15:26,430 --> 00:15:29,040 グッド。 331 00:15:29,040 --> 00:15:30,810 そして、ちょうど完全性のための 酒、我々はだろう 332 00:15:30,810 --> 00:15:35,590 私たちのリストである限りのことを確認したい 限り私たちのリストではないので、nullではない 333 00:15:35,590 --> 00:15:42,730 空の、我々は設定したい ヌルに私たちの前の等しい。 334 00:15:42,730 --> 00:15:46,960 335 00:15:46,960 --> 00:15:50,230 これまでの質問? 336 00:15:50,230 --> 00:15:53,205 一歩離れてfrom--? 337 00:15:53,205 --> 00:15:55,530 >> 読者:あれば、それは次のようになり リストはnullに等しいではないでしょうか? 338 00:15:55,530 --> 00:15:56,950 >> HANNAH:はい、あなたは完全に正しい。 339 00:15:56,950 --> 00:15:58,130 ごめんなさい。 340 00:15:58,130 --> 00:16:00,040 リストがヌルに等しくないです。 341 00:16:00,040 --> 00:16:01,915 恐ろしい。 342 00:16:01,915 --> 00:16:04,245 すべての画面上でこれを持ってしようとしています。 343 00:16:04,245 --> 00:16:06,870 それは落下のようなものだ。 344 00:16:06,870 --> 00:16:07,730 申し訳ありませんが、みんな。 345 00:16:07,730 --> 00:16:11,874 そして、少なくとも最後のではなく、すべての 我々はリターンです行う必要があります。 346 00:16:11,874 --> 00:16:12,840 OK。 347 00:16:12,840 --> 00:16:15,400 つまり、たくさん詰め込また 本当にすぐで。 348 00:16:15,400 --> 00:16:16,800 この上を見て第二してください。 349 00:16:16,800 --> 00:16:18,216 ご質問があれば教えてください。 350 00:16:18,216 --> 00:16:20,232 351 00:16:20,232 --> 00:16:20,732 うん? 352 00:16:20,732 --> 00:16:26,940 >> 読者:リストがにある場合 ヘッドは、用事、待ってthen--。 353 00:16:26,940 --> 00:16:27,700 >> HANNAH:OK、良い。 354 00:16:27,700 --> 00:16:30,987 リストには、先頭にあるのであればこれは、 我々は挿入されたものは何でもそれを削除します。 355 00:16:30,987 --> 00:16:31,486 うん? 356 00:16:31,486 --> 00:16:33,777 >> 読者:あなたは説明できます 再びif文最初の? 357 00:16:33,777 --> 00:16:36,149 Nへのポインタがnに等しい場合? 358 00:16:36,149 --> 00:16:36,690 HANNAH:確かに。 359 00:16:36,690 --> 00:16:42,780 したがって、この関数全体の私たちの目標です 値nを持つノードを削除します。 360 00:16:42,780 --> 00:16:47,460 だから我々はしているように私たちは、発見した場合 私たちのリストを反復、 361 00:16:47,460 --> 00:16:51,770 値nを有するノード、つまりだ 1我々は、削除したい。 362 00:16:51,770 --> 00:16:57,286 だから、削除のすべてが起こります その大きなif文の内側。 363 00:16:57,286 --> 00:16:58,593 それは理にかなっていますか? 364 00:16:58,593 --> 00:16:59,480 クール。 365 00:16:59,480 --> 00:16:59,990 うん? 366 00:16:59,990 --> 00:17:02,864 >> 聴衆:たぶんあなただけで見ることができない それが、あなたにもラインを必要としない 367 00:17:02,864 --> 00:17:06,024 リストをスクロールするために? 368 00:17:06,024 --> 00:17:06,690 HANNAH:恐ろしい。 369 00:17:06,690 --> 00:17:10,896 それでは少しこれを持ってみましょう、と 私たちは、底にその権利を投げるでしょう。 370 00:17:10,896 --> 00:17:13,282 371 00:17:13,282 --> 00:17:15,490 たぶん、ボードはいただろう わずかに良いアイデアをされて。 372 00:17:15,490 --> 00:17:17,829 それでは、どのよう私が前進ポインタを移動でしょうか? 373 00:17:17,829 --> 00:17:20,184 >> 聴衆:ポインタ ポインタプラス1に等しい。 374 00:17:20,184 --> 00:17:21,599 >> HANNAH:美しい。 375 00:17:21,599 --> 00:17:25,050 だから、私たちがすることができます を反復継続する。 376 00:17:25,050 --> 00:17:26,251 OK。 377 00:17:26,251 --> 00:17:27,750 観客は:そこに他のではないでしょう? 378 00:17:27,750 --> 00:17:29,028 HANNAH:Oneより多くの時間? 379 00:17:29,028 --> 00:17:32,444 読者:そこではないでしょう 大きな古い後に、他の場合 380 00:17:32,444 --> 00:17:35,519 文[聞こえない]? 381 00:17:35,519 --> 00:17:36,310 HANNAH:パート? 382 00:17:36,310 --> 00:17:38,350 ごめんなさい。 383 00:17:38,350 --> 00:17:41,800 >> 読者:トラバーサル、 そこに他にすべきではない? 384 00:17:41,800 --> 00:17:43,550 HANNAH:あなたは絶対に 他の可能性があります。 385 00:17:43,550 --> 00:17:46,930 Iは、戻り権利を有しているので そこに、あなたは他を必要としません。 386 00:17:46,930 --> 00:17:48,760 しかし、ええ、良い質問。 387 00:17:48,760 --> 00:17:50,170 はい、OK? 388 00:17:50,170 --> 00:17:52,878 読者:私たちは、ポインタを考えることができます それは、リスト内を移動される 389 00:17:52,878 --> 00:17:56,610 値を引き受けるなど リスト内の各ノードの? 390 00:17:56,610 --> 00:18:00,650 または私達はと考えるべきです リストに外部の一種? 391 00:18:00,650 --> 00:18:02,350 >> HANNAH:どちらかが細かいですが、私は思う。 392 00:18:02,350 --> 00:18:05,880 私はそれを想像する方法です 私はOK、私はポインタだ、と言う。 393 00:18:05,880 --> 00:18:06,520 そして、これは私です。 394 00:18:06,520 --> 00:18:07,150 これは私の手です。 395 00:18:07,150 --> 00:18:09,960 私は別のを指すように行くよ 私が通って反復処理したいもの。 396 00:18:09,960 --> 00:18:12,270 まず、私が指すように行くよ リストの先頭に。 397 00:18:12,270 --> 00:18:14,144 そして、それは私は私に語った 4つに指し示すように行く。 398 00:18:14,144 --> 00:18:18,060 だから私は、リストの外部にある、 私は、これらの各要素を指すことができます。 399 00:18:18,060 --> 00:18:19,520 だから私は、ポインタとして自分自身について考える。 400 00:18:19,520 --> 00:18:21,645 聴衆:だから削除 これらの要素のいずれか、 401 00:18:21,645 --> 00:18:23,404 あなたはいわば、自分自身を削除します。 402 00:18:23,404 --> 00:18:24,070 HANNAH:まさに。 403 00:18:24,070 --> 00:18:25,920 だから、ものを削除 あなたはを指しています。 404 00:18:25,920 --> 00:18:28,340 だから例で 我々はどこ私たちは見た 405 00:18:28,340 --> 00:18:31,670 5を削除しようと、 私は5を指しているとき、 406 00:18:31,670 --> 00:18:34,200 私が削除したい 私はを指しているもの。 407 00:18:34,200 --> 00:18:35,870 正確に正しい。 408 00:18:35,870 --> 00:18:36,577 はい? 409 00:18:36,577 --> 00:18:39,410 読者:私たちは面倒を見たことがあります nがリストにない場合? 410 00:18:39,410 --> 00:18:40,460 HANNAH:nがリストにない場合は? 411 00:18:40,460 --> 00:18:43,501 起こるだろうことすべてはあなたがしているである を通って、反復反復処理しようとして 412 00:18:43,501 --> 00:18:47,616 を通じて、その後、あなたが行っている ヌルさポインタに到達するために、 413 00:18:47,616 --> 00:18:48,990 その後、あなたが行われようとしている。 414 00:18:48,990 --> 00:18:50,812 >> 読者:だから我々は持っている 何も返さするには? 415 00:18:50,812 --> 00:18:51,520 HANNAH:私たちは可能性があります。 416 00:18:51,520 --> 00:18:54,500 場合は、これを定義した方法 機能、私はちょうどそれが返すことを言う 417 00:18:54,500 --> 00:18:55,770 関係なく無効になる。 418 00:18:55,770 --> 00:18:58,360 しかし、あなたは何かを持っている可能性が 整数を返すように、 419 00:18:58,360 --> 00:19:00,920 そしてそれは返してきた それが失敗した場合1陰性。 420 00:19:00,920 --> 00:19:03,070 そのような何か。 421 00:19:03,070 --> 00:19:04,494 質問はいwith--? 422 00:19:04,494 --> 00:19:05,410 読者:[聞こえない]? 423 00:19:05,410 --> 00:19:05,993 HANNAH:申し訳ありません? 424 00:19:05,993 --> 00:19:07,419 読者:[聞こえない]? 425 00:19:07,419 --> 00:19:07,960 HANNAH:確かに。 426 00:19:07,960 --> 00:19:11,730 私たちがしたらだから、actual--だ 移動のすべてのこの仕事をして 427 00:19:11,730 --> 00:19:16,530 すべてのこれらの矢印の周りに、私たちの全体 目標は、ノードを取り除くことでした 428 00:19:16,530 --> 00:19:18,230 私たちは、探していること。 429 00:19:18,230 --> 00:19:21,610 解放し、この場合にはそう ポインタ、私は5を指している場合には、 430 00:19:21,610 --> 00:19:24,670 それがこの中間ノードを消去するようなものだ。 431 00:19:24,670 --> 00:19:27,250 つまり、フリーポインタ部分です。 432 00:19:27,250 --> 00:19:29,090 それは理にかなって? 433 00:19:29,090 --> 00:19:31,390 >> 聴衆:だからさえ思った あなたは[聞こえない]をしませんでした? 434 00:19:31,390 --> 00:19:36,060 >> HANNAH:だから我々は最初に想定 私たちはいたいくつかのリストを持っていたalready-- 435 00:19:36,060 --> 00:19:37,220 彼らは一緒にこれを入れていた。 436 00:19:37,220 --> 00:19:39,761 だから、これを構築するために、 リストは、彼らが[聞こえない]たのだろう。 437 00:19:39,761 --> 00:19:42,190 438 00:19:42,190 --> 00:19:42,750 クール。 439 00:19:42,750 --> 00:19:44,490 これで他には? 440 00:19:44,490 --> 00:19:46,386 はい? 441 00:19:46,386 --> 00:19:49,204 >> 聴衆:何リストの場合 空行と等しくない? 442 00:19:49,204 --> 00:19:49,704 [聞こえない]? 443 00:19:49,704 --> 00:19:52,289 444 00:19:52,289 --> 00:19:53,080 HANNAH:右ここに? 445 00:19:53,080 --> 00:19:53,840 読者:うん。 446 00:19:53,840 --> 00:19:57,370 HANNAH:OK、すべて私がやっている 私は念の作ってるんされている 447 00:19:57,370 --> 00:20:03,250 その私が間接参照リストにしようとする前に、 私は以前にアクセスしようとする前に、 448 00:20:03,250 --> 00:20:07,210 そうでないことを私が確認する ヌルので、私はワンセグ障害を得ることはありません。 449 00:20:07,210 --> 00:20:08,400 クール。 450 00:20:08,400 --> 00:20:10,820 >> [OK]を、私はこれがかなりいた知っている を介して取得するためにたくさん。 451 00:20:10,820 --> 00:20:14,950 したがって、このスライドは次のようになります あなたに利用できるようにしました。 452 00:20:14,950 --> 00:20:17,341 だから、より詳細にそれを介して行くことができます。 453 00:20:17,341 --> 00:20:17,841 はい? 454 00:20:17,841 --> 00:20:19,749 >> 読者:なぜリスト[聞こえない]? 455 00:20:19,749 --> 00:20:24,129 456 00:20:24,129 --> 00:20:24,670 HANNAH:確かに。 457 00:20:24,670 --> 00:20:27,390 だから、リストは本当にを指し 右ここにこの要素、 458 00:20:27,390 --> 00:20:29,200 リストの最初の要素。 459 00:20:29,200 --> 00:20:30,748 だから、以前のを持つことはできません。 460 00:20:30,748 --> 00:20:31,736 はい? 461 00:20:31,736 --> 00:20:35,194 >> 観客は:ポインタポイントしていますか メモリ内の同じアドレスへ? 462 00:20:35,194 --> 00:20:38,404 それは、同じを指すない ノードとしてメモリ内のアドレス 463 00:20:38,404 --> 00:20:40,640 それがポイントだと? 464 00:20:40,640 --> 00:20:43,865 >> HANNAH:はい、それが指す メモリ内のこのノードへ。 465 00:20:43,865 --> 00:20:47,190 >> 聴衆:右、そう ときに[聞こえない]? 466 00:20:47,190 --> 00:20:50,580 >> HANNAH:意味で、はい。 467 00:20:50,580 --> 00:20:51,280 OK。 468 00:20:51,280 --> 00:20:52,997 すべての権利、これと一緒に移動してみましょう。 469 00:20:52,997 --> 00:20:55,330 そして、あなたはより多くの質問がある場合は、 最後に固執、 470 00:20:55,330 --> 00:20:57,130 そして我々は再びそれを通過することができます。 471 00:20:57,130 --> 00:20:58,120 クール、[OK]をクリックします。 472 00:20:58,120 --> 00:21:00,490 今、我々は上に移動する取得 テーブル、試行を、ハッシュへ 473 00:21:00,490 --> 00:21:04,940 あなたはスーパーだと木々、 P-セット5、スペルチェックで精通し。 474 00:21:04,940 --> 00:21:11,020 >> だから、ハッシュテーブルはちょうどです 単独でリンクリストの配列 475 00:21:11,020 --> 00:21:14,050 または二重にそれをオフに来リストをリンクさ。 476 00:21:14,050 --> 00:21:16,380 だから我々はいくつかの並べ替えを持っている 連想配列の。 477 00:21:16,380 --> 00:21:21,280 そして、私たちは知っているどのようにこれらのどの に入るために、配列バケット、 478 00:21:21,280 --> 00:21:24,137 我々は、ハッシュ関数を使用します。 479 00:21:24,137 --> 00:21:26,470 この場合には、誰にもすることができます どのようなハッシュ関数を推測する 480 00:21:26,470 --> 00:21:28,636 ほんの一部に基づいているだろう 入力と出力の? 481 00:21:28,636 --> 00:21:31,392 482 00:21:31,392 --> 00:21:33,194 >> 読者:アルファベットの文字の数。 483 00:21:33,194 --> 00:21:33,860 HANNAH:まさに。 484 00:21:33,860 --> 00:21:36,160 それはちょうどアルファベット順に格納します。 485 00:21:36,160 --> 00:21:39,280 で始まるすべて Aは最初のバケットに入れられる。 486 00:21:39,280 --> 00:21:43,340 Bとのすべてがに入れられる 第二バケット、ように、など。 487 00:21:43,340 --> 00:21:45,620 恐ろしい、[OK]をクリックします。 488 00:21:45,620 --> 00:21:48,980 ハッシュ関数は、任意である 言葉にとる関数 489 00:21:48,980 --> 00:21:51,910 そしてあなたに何を教えてくれます それはに属しバケット。 490 00:21:51,910 --> 00:21:55,150 私たちの中のSOどのエントリ アレイは、それが中に属します。 491 00:21:55,150 --> 00:21:58,080 >> だから、毎回私は自分を与える ハッシュ関数言葉、 492 00:21:58,080 --> 00:22:00,660 それは私に同じことを伝える必要があります 一つ一つの時間を置く。 493 00:22:00,660 --> 00:22:03,270 だから我々は、ハッシュ関数を使用する場合 前のスライドから 494 00:22:03,270 --> 00:22:05,950 我々はによるソートどこ アルファベットの最初の文字、 495 00:22:05,950 --> 00:22:08,230 私は私の与えるたびに ハッシュ関数「りんご」、 496 00:22:08,230 --> 00:22:10,180 それは常に私に戻って0を与える必要があります。 497 00:22:10,180 --> 00:22:12,890 だから私はリンゴを持っている場合 私のハッシュテーブルに置くために、 498 00:22:12,890 --> 00:22:17,700 私は、私のハッシュ関数に「りんご」を与えれば、 それはバケツ0に入れて行く、と言うべき。 499 00:22:17,700 --> 00:22:19,980 私が探していた場合 私のハッシュテーブル内のリンゴ 500 00:22:19,980 --> 00:22:24,340 と私はどこにAppleがかもしれない、と言う あなたのハッシュ関数を依頼し、住んでいます。 501 00:22:24,340 --> 00:22:26,900 そして、それはバケット0に行く、と言います。 502 00:22:26,900 --> 00:22:29,150 大丈夫? 503 00:22:29,150 --> 00:22:32,660 ハッシュ関数との質問がありますか? 504 00:22:32,660 --> 00:22:34,570 恐ろしい。 505 00:22:34,570 --> 00:22:37,320 >> ここでは少しある 詳細な説明 506 00:22:37,320 --> 00:22:39,570 ハッシュ関数がどのように見えるかの。 507 00:22:39,570 --> 00:22:42,230 508 00:22:42,230 --> 00:22:42,960 大丈夫。 509 00:22:42,960 --> 00:22:45,960 ハッシュと今、問題 機能は、理想的な世界である 510 00:22:45,960 --> 00:22:48,870 私たちは、1つを持っているだろう 各バケット内の事。 511 00:22:48,870 --> 00:22:50,900 しかし、現実には、あります 1単語だけでなく、 512 00:22:50,900 --> 00:22:54,280 それはありませんA.で始まる B.そうで始まる唯一の単語 513 00:22:54,280 --> 00:22:56,960 この場合、我々場合 突然 "、ベリー"を取得 514 00:22:56,960 --> 00:22:58,710 そして我々はそれを入れたい 私たちのハッシュテーブルに、 515 00:22:58,710 --> 00:23:03,640 私たちはああ、いや、バナナは、参照してください。 すでにそこに、私たちが行うつもりですか? 516 00:23:03,640 --> 00:23:05,900 >> まあ、我々は2つ​​のオプションがあります。 517 00:23:05,900 --> 00:23:07,990 最初のオプションは、 リニア、プロービングいる 518 00:23:07,990 --> 00:23:11,100 ちょうど探しに行くことを意味 次の空のバケツ。 519 00:23:11,100 --> 00:23:14,100 次の空の配列エントリを探しに行く。 520 00:23:14,100 --> 00:23:15,750 そして、ちょうどそこに「ベリー」を置く。 521 00:23:15,750 --> 00:23:18,880 だから私はそれがことになっている知っている バケツ1にバナナと一緒に行く。 522 00:23:18,880 --> 00:23:22,155 しかし、単に、バケツ3に入れて バケット3が空であるため。 523 00:23:22,155 --> 00:23:24,806 524 00:23:24,806 --> 00:23:26,680 別のオプションは、おそらく 何を実装する 525 00:23:26,680 --> 00:23:29,220 あなたのP-セットで、どこに 別々のチェーンを持っていた。 526 00:23:29,220 --> 00:23:33,990 だからあなたのバケットのそれぞれ、 あなたの配列要素のそれぞれ、 527 00:23:33,990 --> 00:23:38,410 実際に1ワードを保持するだけでなく 単語のリストへのポインタを保持します。 528 00:23:38,410 --> 00:23:41,880 あなたが持っていた場合にはように、 あなたのハッシュテーブル内のバナナ 529 00:23:41,880 --> 00:23:44,740 あなたが突然たかった ベリー、何の問題を追加します。 530 00:23:44,740 --> 00:23:51,110 終了間際に、または上にベリーを追加 あなたのリンクリストの先頭に、。 531 00:23:51,110 --> 00:23:54,040 OK、素晴らしい。 532 00:23:54,040 --> 00:23:58,490 ハッシュとの質問 テーブル私たちが行く前に? 533 00:23:58,490 --> 00:23:59,850 >> 大丈夫。 534 00:23:59,850 --> 00:24:01,070 木と試みます。 535 00:24:01,070 --> 00:24:07,980 OK、これは別のオプションだった 辞書を実装するため。 536 00:24:07,980 --> 00:24:09,100 あなたは、tryをした可能性があります。 537 00:24:09,100 --> 00:24:13,420 だから、そのツリーの特別なものだ マルチレベルのハッシュテーブルのように動作します。 538 00:24:13,420 --> 00:24:16,862 だから、絵が表示されます あなたはそのアレイを使用している 539 00:24:16,862 --> 00:24:19,320 配列の束を指し 配列の束にそのポイント 540 00:24:19,320 --> 00:24:20,390 配列の束にそのポイント。 541 00:24:20,390 --> 00:24:23,140 そして、私たちはまさにそれを表示されます 今後、スライド上のようになります。 542 00:24:23,140 --> 00:24:26,070 より一般的に、木 ちょうど任意のデータ構造である 543 00:24:26,070 --> 00:24:29,710 データは、である いくつかの階層に編成。 544 00:24:29,710 --> 00:24:32,610 だから我々は我々が持って見たところ 理解のいくつかの並べ替え 545 00:24:32,610 --> 00:24:36,130 トップレベルの、次のレベル、 次のレベル、次のレベル。 546 00:24:36,130 --> 00:24:39,690 だから、これはおそらく最も明確である いくつかの具体例である。 547 00:24:39,690 --> 00:24:40,880 だからここに私たちの木です。 548 00:24:40,880 --> 00:24:42,970 あなたはそれを見ることができます 特定のレベルがあります 549 00:24:42,970 --> 00:24:45,480 私たちはそのルートノード、1で始まる。 550 00:24:45,480 --> 00:24:47,640 そして、私たちは私たちのツリーを下ることができます。 551 00:24:47,640 --> 00:24:50,730 552 00:24:50,730 --> 00:24:53,910 >> バイナリツリーがある ツリーの特定のタイプ。 553 00:24:53,910 --> 00:24:56,770 そして、唯一の仕様 バイナリツリーのための 554 00:24:56,770 --> 00:25:01,130 各ノードが有することである ほとんどの2葉で。 555 00:25:01,130 --> 00:25:03,960 だから、どれかを見るつもりはない これらのノードの3つまたは​​4つを持っている 556 00:25:03,960 --> 00:25:06,880 または葉のいくつかの他の数。 557 00:25:06,880 --> 00:25:11,310 その後さらにより具体的な 二分探索木である 558 00:25:11,310 --> 00:25:18,010 どこの左側にあるすべてのノード ノードは、小さい値を持っているとしている。 559 00:25:18,010 --> 00:25:21,180 とのすべての値 右大きくなるだろう。 560 00:25:21,180 --> 00:25:26,900 あなたは44を参照のであれば私たちのルートにあり、 左、11、22、および33 561 00:25:26,900 --> 00:25:28,940 私たちのルートよりすべて小さい。 562 00:25:28,940 --> 00:25:33,890 右側にすべてです 数字は66、55、及び77 bigger--。 563 00:25:33,890 --> 00:25:37,380 そして、このプロパティが当てはまる ツリーのすべてのレベルで。 564 00:25:37,380 --> 00:25:42,690 >> だから我々がダウンしに行くとき まだ22、11、及び33、11 565 00:25:42,690 --> 00:25:46,950 22よりも小さく、かつ 33は22よりも大きいです。 566 00:25:46,950 --> 00:25:50,160 これは、簡単に検索することができ 私たちは数を探しているならなぜなら、 567 00:25:50,160 --> 00:25:53,877 我々は正確に知っている ダウン従う枝。 568 00:25:53,877 --> 00:25:56,210 だから、これはあなたに思い出させる必要があります バイナリサーチの少し。 569 00:25:56,210 --> 00:25:56,967 うん? 570 00:25:56,967 --> 00:25:58,835 >> 聴衆:だからあなたがいる バイナリを記述し、 571 00:25:58,835 --> 00:26:00,587 あなたはそれが最も2葉に持って言った? 572 00:26:00,587 --> 00:26:01,170 HANNAH:MM-HM。 573 00:26:01,170 --> 00:26:02,580 読者:それはより少ないを持ってもらえますか? 574 00:26:02,580 --> 00:26:03,121 HANNAH:うん。 575 00:26:03,121 --> 00:26:06,720 だから、例えば、の言わせて 物事の偶数を持っていなかった 576 00:26:06,720 --> 00:26:11,791 そしてあなたはすべてのあなたを埋めることができませんでした 一つ持っている場合、葉、それは大丈夫です。 577 00:26:11,791 --> 00:26:12,290 OK? 578 00:26:12,290 --> 00:26:12,789 恐ろしい。 579 00:26:12,789 --> 00:26:15,930 木上の任意の他の質問? 580 00:26:15,930 --> 00:26:16,670 OK。 581 00:26:16,670 --> 00:26:20,110 >> 戻る私たちの試みに私が話していたように について少し先に、 582 00:26:20,110 --> 00:26:23,900 どのように我々はこれらのマルチレベルアレイを持っている。 583 00:26:23,900 --> 00:26:26,280 この場合に、我々はトップから始まります。 584 00:26:26,280 --> 00:26:29,030 そして、我々は、任意の単語を下に従うことができます。 585 00:26:29,030 --> 00:26:30,780 それでは、我々が望んでいたとしましょう チューリングを探すために。 586 00:26:30,780 --> 00:26:34,380 私たちは、Tで開始、それを下に従ってください Uを含む配列に、 587 00:26:34,380 --> 00:26:37,350 そして、私たちまでそれを下に従ってください この小さなデルタに達している 588 00:26:37,350 --> 00:26:39,060 を教えてくれる、はい、あなたは言葉を見つけました。 589 00:26:39,060 --> 00:26:43,200 590 00:26:43,200 --> 00:26:44,120 トライでクリア? 591 00:26:44,120 --> 00:26:48,138 あそこに行くには、何? 592 00:26:48,138 --> 00:26:48,908 はい? 593 00:26:48,908 --> 00:26:51,866 観客は:デルタの象徴していますか トライ内の空間を占有する必要がありますか? 594 00:26:51,866 --> 00:26:54,532 HANNAH:うん、そう、そうでない 必ずしもさえデルタにする必要があります。 595 00:26:54,532 --> 00:26:57,760 しかし、我々はいくつかの方法が必要です 、申し訳ありませんが私たちのcomputer--を教えて 596 00:26:57,760 --> 00:27:01,130 ように、私たちは、TURは言葉ではないことを知っている。 597 00:27:01,130 --> 00:27:04,180 レッツは、我々が持っていなかったと言うので、 デルタのこの概念は、この概念 598 00:27:04,180 --> 00:27:09,850 おめでとう、あなたは言葉を見つけました、 それは、T-U-Rを通過し、反復するであろう 599 00:27:09,850 --> 00:27:11,300 その後素晴らしい、と言う、私はそれを見つけました! 600 00:27:11,300 --> 00:27:12,670 それは言葉でなければなりません。 601 00:27:12,670 --> 00:27:13,720 しかし、それは本当にありません。 602 00:27:13,720 --> 00:27:15,310 私たちは、全体のチューリングは言葉になりたい。 603 00:27:15,310 --> 00:27:17,760 だから我々は、何かを持っている必要があります 言い終わり、おめでとうございます、 604 00:27:17,760 --> 00:27:19,051 あなたが正当な単語を見つけた。 605 00:27:19,051 --> 00:27:21,680 読者:あなたは次のように持っていたので、もし アルファベットで26文字、 606 00:27:21,680 --> 00:27:24,560 あなたが実際に持っているだろう あなたのトライで27のキー? 607 00:27:24,560 --> 00:27:26,010 >> HANNAH:恐ろしい、うん。 608 00:27:26,010 --> 00:27:28,210 だから、実際に、私がいることを考える 次のスライドになります。 609 00:27:28,210 --> 00:27:29,440 タダ! 610 00:27:29,440 --> 00:27:32,880 どこに持っている場合 あなたのトライ内のノード、あなたがしている 611 00:27:32,880 --> 00:27:35,800 代わりに26の27の子供を持っているつもり。 612 00:27:35,800 --> 00:27:39,010 613 00:27:39,010 --> 00:27:40,050 それと何か質問? 614 00:27:40,050 --> 00:27:40,550 うん? 615 00:27:40,550 --> 00:27:44,569 聴衆:なぜ試みはそう取るん 多くのスペース[聞こえない]あなたが行くように? 616 00:27:44,569 --> 00:27:47,629 なぜそれが[聞こえない]であると考えられている? 617 00:27:47,629 --> 00:27:48,170 HANNAH:確かに。 618 00:27:48,170 --> 00:27:48,790 のは、戻りましょう。 619 00:27:48,790 --> 00:27:52,350 質問は、なぜ 試みはとても大きいです 620 00:27:52,350 --> 00:27:54,620 ハッシュテーブルのようなものより。 621 00:27:54,620 --> 00:27:57,790 これらのレベルのそれぞれについてそのように、 彼らはここで描かれていない場合であっても、 622 00:27:57,790 --> 00:28:01,250 あなたはすべての26文字を持っている必要があります。 623 00:28:01,250 --> 00:28:04,420 そして、あなたができない理由を 私は、チューリングのためにああ、と言うが、のような 624 00:28:04,420 --> 00:28:07,570 それらのいずれかを持っている必要はありません U.さてのレベルで同じ事、 625 00:28:07,570 --> 00:28:11,390 突然場合は、追加したい T-Hのようだった何か、 626 00:28:11,390 --> 00:28:14,800 あなたが持っている必要があると思います その単語を追加する機能。 627 00:28:14,800 --> 00:28:17,330 だから、一つ一つの手紙のために、 あなたが必要があるとしている 628 00:28:17,330 --> 00:28:19,730 の束を持っている それをオフに来配列。 629 00:28:19,730 --> 00:28:24,060 だから、それが取得したいかを見ることができます 本当に大きな、本当に速い。 630 00:28:24,060 --> 00:28:26,560 その他の質問? 631 00:28:26,560 --> 00:28:28,980 大丈夫。 632 00:28:28,980 --> 00:28:29,832 うん? 633 00:28:29,832 --> 00:28:33,210 >> 読者:ときにあるトライ ハッシュテーブルよりも速く? 634 00:28:33,210 --> 00:28:36,280 >> HANNAH:試みです ハッシュテーブルよりも速く? 635 00:28:36,280 --> 00:28:39,120 だから、あなたが本当にしていた場合 悪いハッシュ関数。 636 00:28:39,120 --> 00:28:41,840 それでは、私はのようだったとしましょう ここにあなたのハッシュ関数です。 637 00:28:41,840 --> 00:28:43,660 どんなに何語 あなたは私を与える、私はいつもよ 638 00:28:43,660 --> 00:28:47,740 配列のエントリ0でそれを置くつもり。 639 00:28:47,740 --> 00:28:52,000 だから私たちはパッティングで終わる 一つの大きな長いリンクリスト内のすべて。 640 00:28:52,000 --> 00:28:58,740 だから、ルックアップ時間は、最悪のかかるだろう nはそれが私たちのリストの最後にいた場合。 641 00:28:58,740 --> 00:29:03,150 試してみると、私たちは反復処理する必要が 単語内の文字を通して。 642 00:29:03,150 --> 00:29:07,080 だから我々は束を追加した場合でも、 私たちの試みに多くの言葉、 643 00:29:07,080 --> 00:29:09,620 それはもはや私たちを取らないだろう 特定の単語を検索します。 644 00:29:09,620 --> 00:29:11,750 >> 私たちがしなければならないすべてはのために、ある 例えば、この場合、 645 00:29:11,750 --> 00:29:17,170 のは、我々は、ズームを探しているとしましょう​​、 私達はちょうど反復処理しなければならない 646 00:29:17,170 --> 00:29:19,840 Z-O-O-M、4つの文字。 647 00:29:19,840 --> 00:29:22,250 だから、ちょうどだ ワードズームの長さ。 648 00:29:22,250 --> 00:29:25,400 それはどのように多くの問題ではありません より多くの言葉は、私たちは、この試みを置く。 649 00:29:25,400 --> 00:29:30,225 我々は常にそれを得ることができます これらの4つのステップで。 650 00:29:30,225 --> 00:29:31,215 恐ろしい。 651 00:29:31,215 --> 00:29:32,205 はい? 652 00:29:32,205 --> 00:29:34,185 >> 聴衆:だから[聞こえない] 右、配列のですか? 653 00:29:34,185 --> 00:29:35,322 >> HANNAH:MM-HM。 654 00:29:35,322 --> 00:29:37,155 読者:あなたがしている場合 [聞こえない]を探して、 655 00:29:37,155 --> 00:29:40,929 あなたが通過しなければならない [聞こえない]を見つけるためにあなたの配列? 656 00:29:40,929 --> 00:29:41,470 HANNAH:確かに。 657 00:29:41,470 --> 00:29:44,000 読者:それはより多くの時間を取らない? 658 00:29:44,000 --> 00:29:46,370 HANNAH:私はするつもりだ場合 私の配列が常にあると言う 659 00:29:46,370 --> 00:29:49,250 A、B、C、D、になるだろう E、F、G、何とか何とか何とか、 660 00:29:49,250 --> 00:29:51,630 ので、私はいつもそれが知っている場合は、 同じ正確な順序で、 661 00:29:51,630 --> 00:29:53,880 私はいつもそれが知っている場合は、 アルファベット順に、 662 00:29:53,880 --> 00:29:57,860 私はちょうどOが数値であると言うことができます そうとそうアルファベットで。 663 00:29:57,860 --> 00:29:59,620 ちょうどその場所にジャンプします。 664 00:29:59,620 --> 00:30:01,860 で、覚えているので、 アレイは、私たちはアクセスすることができます 665 00:30:01,860 --> 00:30:06,590 一定のその配列の任意の要素 私たちが探している場所を知っている場合の時間。 666 00:30:06,590 --> 00:30:09,080 667 00:30:09,080 --> 00:30:09,580 うん? 668 00:30:09,580 --> 00:30:12,005 >> 聴衆:前に [聞こえない] 27をスライドさせ 669 00:30:12,005 --> 00:30:14,430 しかし最初の1のための26。 670 00:30:14,430 --> 00:30:15,400 >> HANNAH:申し訳ありません? 671 00:30:15,400 --> 00:30:18,800 >> 観客は:初めてではない 1 0、ので、それは26ではないでしょうか? 672 00:30:18,800 --> 00:30:24,900 >> HANNAH:私たちは27を言うとき確かに、そう、それはだ 私たちは26 0〜指数与えるつもり。 673 00:30:24,900 --> 00:30:28,220 しかし、あなたが実際に数えた場合 これらのうち、それが27になるだろう。 674 00:30:28,220 --> 00:30:30,007 良い質問。 675 00:30:30,007 --> 00:30:30,590 他に何か? 676 00:30:30,590 --> 00:30:31,200 うん? 677 00:30:31,200 --> 00:30:34,420 >> 聴衆:だから試みです ハッシュテーブルよりも遅い? 678 00:30:34,420 --> 00:30:37,920 >> HANNAH:試行回数がに、あることを行っている 理論的に、より高速なハッシュテーブル 679 00:30:37,920 --> 00:30:39,760 しかし、より多くのメモリを取る。 680 00:30:39,760 --> 00:30:40,534 うん? 681 00:30:40,534 --> 00:30:41,450 読者:[聞こえない]? 682 00:30:41,450 --> 00:30:45,770 683 00:30:45,770 --> 00:30:47,484 >> HANNAH:私は申し訳ありませんが、私はあなたを聞いていない。 684 00:30:47,484 --> 00:30:48,400 読者:[聞こえない]。 685 00:30:48,400 --> 00:30:51,250 686 00:30:51,250 --> 00:30:54,100 25 0はあなたに26を与えます。 687 00:30:54,100 --> 00:30:56,958 >> HANNAH:0から25までだろう 右、あなたに26を与える。 688 00:30:56,958 --> 00:30:58,457 >> 読者:そして、[聞こえない]。 689 00:30:58,457 --> 00:30:59,040 HANNAH:右。 690 00:30:59,040 --> 00:31:04,760 だから我々は指定している番号です 私たちの配列内のものの数。 691 00:31:04,760 --> 00:31:07,260 私たちは27を持っているのであれば、それはだ 私たちを与えるつもり0 692 00:31:07,260 --> 00:31:10,620 26を介して、これを与える この場合のために、私たちの部屋、、 693 00:31:10,620 --> 00:31:12,770 私は、アポストロフィを含めていないよ。 694 00:31:12,770 --> 00:31:17,040 だから我々は25を介して0を取得しているある アルファベットの最初の26文字、 695 00:31:17,040 --> 00:31:18,990 またはアルファベットのすべての26文字。 696 00:31:18,990 --> 00:31:21,190 そして、その最後の 事は、エントリ26で、ある 697 00:31:21,190 --> 00:31:24,598 チェックになるだろう マーク、またはデルタ。 698 00:31:24,598 --> 00:31:26,960 他に何か? 699 00:31:26,960 --> 00:31:29,130 恐ろしい。 700 00:31:29,130 --> 00:31:30,020 私のスペースを失った。 701 00:31:30,020 --> 00:31:31,020 クール、[OK]をクリックします。 702 00:31:31,020 --> 00:31:33,240 >> だから我々はすでにこの時に触れた。 703 00:31:33,240 --> 00:31:37,430 しかし、大きなトレードオフ 試行とハッシュテーブル間の 704 00:31:37,430 --> 00:31:39,720 で、試行が提供するということです 理論、定数を検索 705 00:31:39,720 --> 00:31:42,890 回数が、メモリの全体の多くを使用しています。 706 00:31:42,890 --> 00:31:46,495 すべての権利、今は少し持っている より少ない複雑な構造、 707 00:31:46,495 --> 00:31:49,640 そして我々は、Cで行われます、 私たちは右に沿って移動します。 708 00:31:49,640 --> 00:31:51,930 >> スタックだから、私たちはこれを見た 講義でどこに 709 00:31:51,930 --> 00:31:55,020 のようなものを持っている トレーどこのスタック 710 00:31:55,020 --> 00:31:57,330 あなたが置く最後の事 スタック上に起こっている 711 00:31:57,330 --> 00:31:59,500 あなたが離陸最初のものであると。 712 00:31:59,500 --> 00:32:02,880 だから、本当にスタックを定義して何 最後の事はあなたが上に置くということです 713 00:32:02,880 --> 00:32:06,080 第一であることを行っている あなたが離陸の事。 714 00:32:06,080 --> 00:32:09,279 そして、私たちが使用する用語 私たちは何かを置くつもりなら、 715 00:32:09,279 --> 00:32:12,070 我々はに何かを追加するつもりなら 私たちのスタックは、我々は押していることを呼び出します。 716 00:32:12,070 --> 00:32:14,970 そして、私たちは何かを取る場合 オフ、我々はポッピングそれを呼び出す。 717 00:32:14,970 --> 00:32:17,080 そして、我々はするつもりなら スタックを実装し、我々 718 00:32:17,080 --> 00:32:20,660 を追跡することを確認する必要があります サイズと容量の両方。 719 00:32:20,660 --> 00:32:24,940 要素の総数私達ができるので、 保持し、現在の要素数 720 00:32:24,940 --> 00:32:27,880 私たちが保持されていること。 721 00:32:27,880 --> 00:32:29,885 >> そして、非常に同様に、私たちはキューを持っている。 722 00:32:29,885 --> 00:32:34,510 そして、唯一の違い 代わりにスタックとのものであり、 723 00:32:34,510 --> 00:32:37,630 我々は上に置く最後の事を言った 私たちは離陸最初のものです。 724 00:32:37,630 --> 00:32:40,940 だから、キューと、 我々は入れ最初のもの 725 00:32:40,940 --> 00:32:43,129 であることを行っている 我々は最初の事取る。 726 00:32:43,129 --> 00:32:45,420 だから、これはあなたがならのようなものです 実際にお店で並ぶ 727 00:32:45,420 --> 00:32:48,140 あなたが助けられている、 行の最初の人 728 00:32:48,140 --> 00:32:50,880 しょうが最初の人でなければなりません。 729 00:32:50,880 --> 00:32:52,220 だから、キューになります。 730 00:32:52,220 --> 00:32:55,880 >> だから我々はを追跡する必要があります サイズ、容量、そして私たちがしているので、頭 731 00:32:55,880 --> 00:33:01,130 フロントからみんなを連れて行く 代わりに、背面のリスト。 732 00:33:01,130 --> 00:33:03,480 その上で質問がありますか? 733 00:33:03,480 --> 00:33:06,330 あなたを悩ませている任意のCの質問? 734 00:33:06,330 --> 00:33:09,590 データ構造、その楽しいことのいずれか? 735 00:33:09,590 --> 00:33:10,530 すべての権利、涼しい。 736 00:33:10,530 --> 00:33:14,120 だから私はアリソンににそれを引き渡すだろう いくつかのより多くのプログラミングに飛び込む。 737 00:33:14,120 --> 00:33:15,965 >> ALISON:ああ、我々が表示されます。 738 00:33:15,965 --> 00:33:17,370 私たちは、私がここでどれだけ表示されます。 739 00:33:17,370 --> 00:33:21,410 [OK]を、私は試してみて、飛ぶつもりだ このようなものを通して、みんな。 740 00:33:21,410 --> 00:33:24,540 ハンナは非常に行きました すべての彼女の事で深さ。 741 00:33:24,540 --> 00:33:26,900 私が与えることを試みるつもりだ あなた迅速な爆風の概要 742 00:33:26,900 --> 00:33:31,290 私たちはすべてとデーヴィンに得ることができるように 楽しいJavaScriptとセキュリティの事 743 00:33:31,290 --> 00:33:33,380 その実際に多分あなた についての詳細を聞きたい。 744 00:33:33,380 --> 00:33:36,600 >> OK、ハンナが言ったように、もし 何か質問があり、 745 00:33:36,600 --> 00:33:39,170 私はあまりにも速く行くよ、私に知らせてください。 746 00:33:39,170 --> 00:33:42,114 私は、必要に応じて質問にお答えします。 747 00:33:42,114 --> 00:33:45,280 だから、開始するには、我々はで開始するつもりだ おそらく非常に最初のものの一つ 748 00:33:45,280 --> 00:33:48,730 あなたがウェブで学んだ プログラミング、パーミッション。 749 00:33:48,730 --> 00:33:52,720 だから、chmodの、あなたたちはされてたはず すべてのウェブとこの時のマスター 750 00:33:52,720 --> 00:33:54,870 あなたがしたプログラミング 最近やって。 751 00:33:54,870 --> 00:33:57,320 これは、基本的には、コマンドの それは、アクセス権を変更する 752 00:33:57,320 --> 00:34:00,779 またはアクセス許可 私達のファイル·システム·オブジェクトの。 753 00:34:00,779 --> 00:34:02,570 もちろん、実際にへ あなたがいるなら、これらを参照してください。 754 00:34:02,570 --> 00:34:04,910 これらを持つ任意の問題が発生した あなたの問題セットの間に、 755 00:34:04,910 --> 00:34:11,460 あなたは、長いですのls -lを使用している可能性があります このようなのビューの種類を取得するために、 756 00:34:11,460 --> 00:34:14,209 あなたが実際にすべて見る場所 ファイルのパーミッション。 757 00:34:14,209 --> 00:34:16,850 758 00:34:16,850 --> 00:34:20,732 >> そして実際に、私たちは行くつもりです かなり迅速を通してちょうどかわいい 759 00:34:20,732 --> 00:34:21,940 ずっとこれらのそれぞれが何を意味するか。 760 00:34:21,940 --> 00:34:24,481 だから我々は、右ここでdはている 単にディレクトリを表します。 761 00:34:24,481 --> 00:34:26,790 762 00:34:26,790 --> 00:34:31,739 明らかに、右ここに、私たちは、RWX見るもの 、読みやすい書き込み可能、​​および実行可能である。 763 00:34:31,739 --> 00:34:37,090 これらは、ビットで表現することができ、 その私たちは次のページの中に取得します。 764 00:34:37,090 --> 00:34:40,699 我々が見たので、それぞれのトライアド ここでは、そのように、それは3トライアドだ。 765 00:34:40,699 --> 00:34:48,120 我々はRWX、R何もxとRを持っている 何がこの最初のファイル用のXません。 766 00:34:48,120 --> 00:34:49,690 これは一般的な構造です。 767 00:34:49,690 --> 00:34:50,940 >> だから我々はいくつかのディレクトリを持っている。 768 00:34:50,940 --> 00:34:53,999 我々は、いくつかのユーザグループを有する これらの権限を持つ。 769 00:34:53,999 --> 00:34:57,040 これらの権限を持っているいくつかのグループ、 と権限を持っている世界。 770 00:34:57,040 --> 00:34:59,420 あなたはトライアドとしてこれらを考えることができます。 771 00:34:59,420 --> 00:35:01,130 あなたは、3ビットとしてこれらを考えることができます。 772 00:35:01,130 --> 00:35:04,060 そこで、彼らは値を保持することができます どこでも0から最大 773 00:35:04,060 --> 00:35:07,350 なぜ時々7に 我々はあなたがchmodコマンドを実行していた 774 00:35:07,350 --> 00:35:17,510 代わりに何でもRWのchmodの600。 775 00:35:17,510 --> 00:35:19,170 私たちはそこに例に取得します。 776 00:35:19,170 --> 00:35:24,260 しかし、基本的に、あなたが考えることができます ちょうどRWXのいずれかとして、これらの、 777 00:35:24,260 --> 00:35:28,520 またはあなたは、いくつかと考えることができます 数ここで、この最初の1 778 00:35:28,520 --> 00:35:31,480 間の数を表す 0および7は、この第2の1 779 00:35:31,480 --> 00:35:33,970 間の数を表す 0と7、および第1 780 00:35:33,970 --> 00:35:38,245 [OK]を、0〜7の数を表します? 781 00:35:38,245 --> 00:35:42,700 >> rは4ワットの値を有する 2の値を有し、xは 782 00:35:42,700 --> 00:35:49,230 なぜこれである、1の値を持っている ここにアクセス権が700にchmodことになる。 783 00:35:49,230 --> 00:35:53,520 ここで、この場合に、それは我々が言うので 最初のビットはそこに反転されています。 784 00:35:53,520 --> 00:35:55,380 だから我々は、読み取りのために4を持っている。 785 00:35:55,380 --> 00:35:58,730 第二ビットはのために反転される 今は6を持っているので、2である、W。 786 00:35:58,730 --> 00:36:02,070 第3ビットがオンに反転される 1はx、のために、私たちは7を得る。 787 00:36:02,070 --> 00:36:04,820 そしてもちろん、私たちのグループ と私たちの世界は、それぞれ0で。 788 00:36:04,820 --> 00:36:07,770 これはまた、ある chmodの700に相当する。 789 00:36:07,770 --> 00:36:12,081 そして、私は間違いなくしようとするだろう それらの間のマッピングを理解する。 790 00:36:12,081 --> 00:36:14,080 それが持っている場合、私はわからないんだけど 前クイズに出てくる、 791 00:36:14,080 --> 00:36:18,590 しかし、それは次のようになります 私が尋ねるかもしれない質問。 792 00:36:18,590 --> 00:36:22,110 >> 少しだけでも行く さらにここでは、chmod、ここに 793 00:36:22,110 --> 00:36:27,730 非常に一般的である chmodの呼び出しの構造。 794 00:36:27,730 --> 00:36:29,500 だからもちろん、私たちはここにchmodしています。 795 00:36:29,500 --> 00:36:34,410 これが呼ぶものの参照、 誰が私たちは、これらのアクセス許可を与えている 796 00:36:34,410 --> 00:36:36,570 または誰が我々はこれらを取っている 離れてからアクセス許可。 797 00:36:36,570 --> 00:36:44,330 だから私たちはここにアクセス権を持っている、 私たちは、あなたが、プラスXます。chmod与えてくれたような 798 00:36:44,330 --> 00:36:45,440 我々はすぐに表示されますように。 799 00:36:45,440 --> 00:36:48,460 ただ、これらの特定を与える意味 すべての人への権限。 800 00:36:48,460 --> 00:36:49,600 すべてにそれらを与える。 801 00:36:49,600 --> 00:36:55,370 だから、非常によく、UプラスXを持つことができ またはgプラスXまたはOプラスxまたは複数 802 00:36:55,370 --> 00:36:55,870 その。 803 00:36:55,870 --> 00:36:59,280 最初の部分は常にあるように 参考文献になるだろう。 804 00:36:59,280 --> 00:37:03,220 誰が私たちは、これらのアクセス許可を与えている、 または誰が私たちは離れてからそれらを取っている? 805 00:37:03,220 --> 00:37:04,850 >> もう一つは演算子です。 806 00:37:04,850 --> 00:37:07,350 だから、あなたたちは、ほとんどがプラスに対処してきた。 807 00:37:07,350 --> 00:37:12,140 これはに権限を与える 誰でもあなたがそれらを与えている、 808 00:37:12,140 --> 00:37:14,840 マイナスのに対して、論理的に、それらを削除します。 809 00:37:14,840 --> 00:37:16,880 だから、あまりにもひどい何も。 810 00:37:16,880 --> 00:37:23,060 そして、モードは、私たちが約話しものです 読み取り、書き込み、または実行すると。 811 00:37:23,060 --> 00:37:29,070 だから、プラスxは実行ファイルを与えることを意味 すべての人への権限。 812 00:37:29,070 --> 00:37:33,430 その後、もちろん、その上に 特定のファイルまたはディレクトリ。 813 00:37:33,430 --> 00:37:33,980 OK? 814 00:37:33,980 --> 00:37:36,010 chmodコマンドとの良好なみんな? 815 00:37:36,010 --> 00:37:37,850 あまりにも悪くない? 816 00:37:37,850 --> 00:37:42,417 >> [OK]を、あなたのいずれかがある、HTMLので、 MySpaceの時代to--十分に古い? 817 00:37:42,417 --> 00:37:44,750 私は、私のセクションにこれを送信し そして文字通り半分人 818 00:37:44,750 --> 00:37:45,790 私は夢中だったように私を見た。 819 00:37:45,790 --> 00:37:47,498 そして、私は、みんな、のようだった 我々はその古いじゃない。 820 00:37:47,498 --> 00:37:48,910 いい加減にして。 821 00:37:48,910 --> 00:37:53,360 だから、ハイパーテキストマークアップ言語、 それは正直にあなたのためだけの方法だ 822 00:37:53,360 --> 00:37:57,990 ウェブ上で特定の物事を表示します。 823 00:37:57,990 --> 00:37:59,210 だから、マークアップ言語です。 824 00:37:59,210 --> 00:38:00,640 これは、スクリプト言語ではありません。 825 00:38:00,640 --> 00:38:02,160 それにはロジックがありません。 826 00:38:02,160 --> 00:38:05,710 これは、変更することです 何かが表示されている方法です。 827 00:38:05,710 --> 00:38:07,670 [OK]を、ので、それが重要だ 区別が作る。 828 00:38:07,670 --> 00:38:12,030 これは、マークアップ言語と考えられています、 しないスクリプト言語。 829 00:38:12,030 --> 00:38:15,100 >> そこでここでは、私たちのHTMLタグを持っている。 830 00:38:15,100 --> 00:38:20,390 このスライドでは、おそらく、ほとんどのです あなたが精通している必要がありますもの 831 00:38:20,390 --> 00:38:22,390 と本当に快適である。 832 00:38:22,390 --> 00:38:25,700 だから、明らかに、私たちは持っている 私たちのHTMLタグ、その 833 00:38:25,700 --> 00:38:29,930 でそのすべてを指定する これら二つの間でHTMLとなります。 834 00:38:29,930 --> 00:38:33,070 私たちは、いくつかのリンクを持っている 明らかにあなたを与えるだろう 835 00:38:33,070 --> 00:38:34,990 外部のウェブページへのリンク。 836 00:38:34,990 --> 00:38:37,520 いくつかのタイトル、ここに私たちの頭の中。 837 00:38:37,520 --> 00:38:40,020 そして、我々はと私たちの体を持っている ヘッダであるH1、 838 00:38:40,020 --> 00:38:42,260 そう、それは素晴らしい作ってあげる 大胆かつ大きな。 839 00:38:42,260 --> 00:38:46,040 そして、我々はいくつかを持っている 段落はp、。 840 00:38:46,040 --> 00:38:49,000 あなたはおそらく知っている必要があります 物事に精通している 841 00:38:49,000 --> 00:38:54,030 あなたが画像を挿入する方法のように、ある そこに他のヘッダークラ​​ス? 842 00:38:54,030 --> 00:38:57,240 私は間違いだろう DIVと快適。 843 00:38:57,240 --> 00:39:00,840 したがって、これらのタグの大部分を持っている あなたが精通している必要がありますことを。 844 00:39:00,840 --> 00:39:04,370 しかし、もちろん、中にすべてのものと同様に、 CS 50は、リストは網羅的ではない。 845 00:39:04,370 --> 00:39:08,200 ですから、そのブラッシュアップを確認してください。 846 00:39:08,200 --> 00:39:13,260 >> CSS、CSSので、あなたのいずれかが見れば 2週間前からの私のセミナー、 847 00:39:13,260 --> 00:39:16,250 本当にただの方法です あなたのWeb​​ページのスタイルを設定するには? 848 00:39:16,250 --> 00:39:18,950 [OK]を、私たちはいくつかのマークアップ言語を持っている。 849 00:39:18,950 --> 00:39:23,220 テキストだけの面倒をHTML、 そしてそれはどこのページにある可能性があります。 850 00:39:23,220 --> 00:39:25,760 しかし、CSSはそれはかなり作るものは本当にある。 851 00:39:25,760 --> 00:39:30,690 あなたは、HTMLでこれらを持っている可能性が ファイルが、私たちは後で話しますように、 852 00:39:30,690 --> 00:39:32,660 私はそれがかもしれないかなり確信している それは、次のスライドである 853 00:39:32,660 --> 00:39:35,620 実際に一般的である、と 私たちは本当に奨励練習、 854 00:39:35,620 --> 00:39:40,670 あなたが維持するためにそれらを分離したとき、私たち MVCとその全体のパラダイムについて話しています。 855 00:39:40,670 --> 00:39:42,490 つまり、これが送り込ま本当にだ。 856 00:39:42,490 --> 00:39:46,110 >> だから、CSSはちょうどへの道である 物事はかなり見えるようにする。 857 00:39:46,110 --> 00:39:50,500 ここでは物事のような ボディと#titleとの.info、 858 00:39:50,500 --> 00:39:54,340 これらは、セレクタと何と呼ばれている 彼らは、彼らが特定の物事を選択されな​​い 859 00:39:54,340 --> 00:39:59,260 HTMLファイル内の とどのようなスタイルを適用、 860 00:39:59,260 --> 00:40:04,090 何でもあなたが望むものの一種、 あなたのWeb​​の特定の要素に 861 00:40:04,090 --> 00:40:04,590 ページ。 862 00:40:04,590 --> 00:40:08,820 だからここ、私たちは持っている 背景色と色 863 00:40:08,820 --> 00:40:12,450 であることだとフォントファミリ 体内にあるものに適用される。 864 00:40:12,450 --> 00:40:15,530 だから我々は、ここに戻ってそれを見ている場合 タイトルには適用されないだろう。 865 00:40:15,530 --> 00:40:22,340 それだけで何にも適用される これらの身体のセレクタで、OK? 866 00:40:22,340 --> 00:40:25,250 >> ここでタイトルで、これは 同じことになるだろう、 867 00:40:25,250 --> 00:40:28,410 テキストの色 青のみ起こっているもの 868 00:40:28,410 --> 00:40:33,870 内でどのような影響を与えるために タイトルセレクタ。 869 00:40:33,870 --> 00:40:36,580 ここにも情報として、 テキストは、ピンクになります 870 00:40:36,580 --> 00:40:38,600 右ここで何の情報、。 871 00:40:38,600 --> 00:40:40,860 唯一のものになるよう このページでピンクになる 872 00:40:40,860 --> 00:40:44,100 日付は、2014年11月17日(月曜日)です。 873 00:40:44,100 --> 00:40:48,770 [OK]を、ので、CSSはちょうど方法です はいover--より多くの制御を持っている? 874 00:40:48,770 --> 00:40:51,850 >> 読者:なぜあなたはありますか タイトルでハッシュを使用するには? 875 00:40:51,850 --> 00:40:55,170 >> HANNAH:次のスライドは、約束します! 876 00:40:55,170 --> 00:40:56,810 我々はそこに着くでしょう。 877 00:40:56,810 --> 00:40:59,830 私たちは、ハッシュを使用する必要がなぜようにするためである。 878 00:40:59,830 --> 00:41:03,429 だから、セレクタは、3つの主要取る 私たちは約君たちに話す形。 879 00:41:03,429 --> 00:41:05,595 私は、多くを学びたいfyou そこにたくさんあり​​ます。 880 00:41:05,595 --> 00:41:07,540 偉大なCSSのドキュメントがあります。 881 00:41:07,540 --> 00:41:12,680 関係しているタグ名はありませ HTMLでちょうどあなたの通常のタグを持つ。 882 00:41:12,680 --> 00:41:17,210 だから、H1、P、DIV、H2、 物事のこれらの種類。 883 00:41:17,210 --> 00:41:20,320 そして、私たちはただであるとして、それらに名前を付けることができます。 884 00:41:20,320 --> 00:41:22,650 我々がここで見るように 本体は、それが通常のタグだ。 885 00:41:22,650 --> 00:41:26,660 だから我々はちょうどその時の体を置くことができます 我々のCSSファイルで話している。 886 00:41:26,660 --> 00:41:29,730 >> タイトルで、全体の理由は、我々 このハッシュは、我々は何があるである持っている 887 00:41:29,730 --> 00:41:31,010 IDと見なさ。 888 00:41:31,010 --> 00:41:35,400 だから、IDは常にあるべき あなたのHTMLページ内で一意 889 00:41:35,400 --> 00:41:37,930 あなたがいるときにそう それを参照するに、 890 00:41:37,930 --> 00:41:41,990 あなたが唯一の参照していることを知っている 一つの特定のものに。 891 00:41:41,990 --> 00:41:46,270 この場合には、ここで、私たちの持つ ここではH1、CS 50レビューセッション、 892 00:41:46,270 --> 00:41:47,810 我々は、タイトルのIDを持っている。 893 00:41:47,810 --> 00:41:54,280 だから、ちょうどそのを参照するために、 私たちのHTMLの部分は、我々はハッシュタイトルを行う。 894 00:41:54,280 --> 00:41:58,080 ただ慣例により、IDが指定されている 彼らの前にハッシュを持つ。 895 00:41:58,080 --> 00:42:01,650 同様に、我々が見る ここでの情報は、クラスです。 896 00:42:01,650 --> 00:42:06,070 そして、そのようにCSSを使用したクラスです ドットクラスとして指定された 897 00:42:06,070 --> 00:42:08,895 またはそのクラスが何であれ点在しています。 898 00:42:08,895 --> 00:42:10,850 だからここにこの場合には、情報です。 899 00:42:10,850 --> 00:42:13,090 >> だから私はそれを取り戻す。 900 00:42:13,090 --> 00:42:16,200 これらの両方は次のようになります ここに私たちのCSSのピンク 901 00:42:16,200 --> 00:42:18,430 彼らは両方の情報のクラスを持っているので。 902 00:42:18,430 --> 00:42:23,070 そして、我々のCSSファイルで、我々は指定している 情報のクラスを持つことは何も 903 00:42:23,070 --> 00:42:24,120 ピンクでなければならない。 904 00:42:24,120 --> 00:42:25,968 それは理にかなっていますか? 905 00:42:25,968 --> 00:42:27,435 はい? 906 00:42:27,435 --> 00:42:30,731 >> 読者:あなたが作るとしたら ボディ白のすべて、 907 00:42:30,731 --> 00:42:32,814 その後あなたが作ってみる その中に何か青、 908 00:42:32,814 --> 00:42:34,770 それは問題を引き起こすだろうか? 909 00:42:34,770 --> 00:42:37,310 >> HANNAH:だからCSSがある カスケードスタイルシート。 910 00:42:37,310 --> 00:42:40,730 だから、何が向いている ボトムが優先されます。 911 00:42:40,730 --> 00:42:44,080 だから、体に何かをする場合には、 そしてあなたはすべてを白に、 912 00:42:44,080 --> 00:42:49,300 し、後であなたにタイトルを変更 または、本体内のテキストを変更し、 913 00:42:49,300 --> 00:42:50,560 それはそれを上書きします。 914 00:42:50,560 --> 00:42:55,360 に向けたので、何も ボトムが優先されます。 915 00:42:55,360 --> 00:42:56,730 はい? 916 00:42:56,730 --> 00:42:59,627 >> 聴衆:そして、IDは一意である、 しかしクラスは、より多くのことができますか? 917 00:42:59,627 --> 00:43:00,210 HANNAH:右。 918 00:43:00,210 --> 00:43:06,320 だから、IDは一意である必要があり、そしてクラスができる あなたが好きなだけ多くのものを参照してください。 919 00:43:06,320 --> 00:43:07,580 その他の質問? 920 00:43:07,580 --> 00:43:09,800 はい。 921 00:43:09,800 --> 00:43:11,210 >> 読者:[聞こえない]。 922 00:43:11,210 --> 00:43:13,509 私はどう思ったんだけど それが違いになります。 923 00:43:13,509 --> 00:43:15,217 HANNAH:ごめんなさい、 質問は何でしたか? 924 00:43:15,217 --> 00:43:18,960 読者:小あります 「F」と大文字の "F." 925 00:43:18,960 --> 00:43:21,440 HANNAH:だから違い 小さな「F」と資本の間の「F」 926 00:43:21,440 --> 00:43:22,606 違いを作るべきではありません。 927 00:43:22,606 --> 00:43:26,330 だから、「f」は15いずれかの方法になります。 928 00:43:26,330 --> 00:43:28,130 クール、何か? 929 00:43:28,130 --> 00:43:29,930 みんな良い、CSS? 930 00:43:29,930 --> 00:43:30,850 はい? 931 00:43:30,850 --> 00:43:31,790 >> 聴衆:申し訳ありません。 932 00:43:31,790 --> 00:43:35,550 あなたは、クラスとIDを持つことができますか? 933 00:43:35,550 --> 00:43:38,030 >> HANNAH:はい、できます。 934 00:43:38,030 --> 00:43:40,420 観光クラスとIDの両方を持つことができます。 935 00:43:40,420 --> 00:43:44,670 そして、私は非常にお勧め 自分でこれらのテストを。 936 00:43:44,670 --> 00:43:50,480 CSSあなただけのことで、最良の学びます 何か、非常に簡単なWebページ、 937 00:43:50,480 --> 00:43:53,440 いくつかのCSSを策定し、ちょうど 彼らがどのように相互作用するか見て。 938 00:43:53,440 --> 00:43:56,970 そして、あなたは非常に良いを得るでしょう、 それがどのように動作するための直感的な感覚。 939 00:43:56,970 --> 00:43:58,810 >> OK、CSSとの良好な皆? 940 00:43:58,810 --> 00:44:01,280 あなたはすべてするつもりだ 今、CSSを使って、美しいWebサイト。 941 00:44:01,280 --> 00:44:05,460 ちょうどOK、ベストプラクティス、 心に留めておくべき事、物事 942 00:44:05,460 --> 00:44:09,810 我々はドッキングなぜこのthat--です あなたのデザイナーやその他もろもろのために。 943 00:44:09,810 --> 00:44:11,820 だから、すべてのHTMLタグを閉じます。 944 00:44:11,820 --> 00:44:14,840 ですから、オープンボディを持っている場合、 近い体があるはずです。 945 00:44:14,840 --> 00:44:18,180 あなたが開いている段落を持っている場合は、 近い段落があるはずです。 946 00:44:18,180 --> 00:44:19,555 あなたのページが検証さを確認してください。 947 00:44:19,555 --> 00:44:23,330 君たちは非常に精通している必要があります P-セット7からこのと 948 00:44:23,330 --> 00:44:26,350 CS 50金融と W3バリデータを持つ。 949 00:44:26,350 --> 00:44:28,340 そして私は、前に言ったように 私たちの大きなパラダイムの1 950 00:44:28,340 --> 00:44:33,780 CSSであなたのスタイルを分離されている HTMLでマークアップ、から。 951 00:44:33,780 --> 00:44:36,900 その後、もちろん、我々は ここで、この偉大なXKCDダウン。 952 00:44:36,900 --> 00:44:38,280 イェーイ、コミックリリーフ! 953 00:44:38,280 --> 00:44:41,340 >> [OK]を、TCP / IP。 954 00:44:41,340 --> 00:44:44,650 これらとHTTPの間に、 基本的に彼らは両方のプロトコルだ。 955 00:44:44,650 --> 00:44:46,810 だから、あなただけの考えること これらのルールのセットとして 956 00:44:46,810 --> 00:44:50,110 どのように物事を支配すること インターネットを横切って移動する。 957 00:44:50,110 --> 00:44:53,410 そのように送信制御 プロトコル、インターネットプロトコル、 958 00:44:53,410 --> 00:44:57,280 確実にするだけの方法です。 それが起こっている場所、そのデータを取得 959 00:44:57,280 --> 00:45:00,030 私たちがいるかどうかを知ること 我々はこれまで、データを逃している。 960 00:45:00,030 --> 00:45:03,520 だから、あなたたちは戻って講義に思われる場合 デイビッドと前に数週間 961 00:45:03,520 --> 00:45:06,980 どこに我々は、彼らは、4封筒を持っていた すべての4つのいずれかのように番号し、 962 00:45:06,980 --> 00:45:11,300 4の2、4の3、の4 4、これはルールの単なるセットです。 963 00:45:11,300 --> 00:45:13,830 私たちはしているときはいつでも、[OK]を、言った 複数のパケットを送信し、 964 00:45:13,830 --> 00:45:16,610 私たちは数に行く それが何であるかの数でそれ 965 00:45:16,610 --> 00:45:19,040 とどのように多くの合計こと ユーザーが取得する必要があります。 966 00:45:19,040 --> 00:45:22,540 >> そして、これは単に誰を語っている 彼らかどうかデータを受信して​​いる 967 00:45:22,540 --> 00:45:26,120 場合は、すべてのものかを得ている 何かが道に沿って失われてしまった。 968 00:45:26,120 --> 00:45:28,840 そして、彼らは再びそれをお願いする必要があります。 969 00:45:28,840 --> 00:45:31,140 これは本当にルールの単なるセットです。 970 00:45:31,140 --> 00:45:33,650 つまり、[OK]を、それを考えることができる方法です? 971 00:45:33,650 --> 00:45:37,700 また、それは、ポートを指定する あなたたちは、私が講義中に知っているcan-- 972 00:45:37,700 --> 00:45:39,170 彼らは、ポートのリスト全体を持っていた。 973 00:45:39,170 --> 00:45:41,630 しかし、我々は今ここにそれらを持っていない。 974 00:45:41,630 --> 00:45:45,290 >> そのようにハイパーテキスト転送プロトコル 再び、それは別のプロトコルの、ある。 975 00:45:45,290 --> 00:45:48,630 だから、ルールの別のセットです つまり、この場合には、支配する、 976 00:45:48,630 --> 00:45:51,130 ハイパーテキストをどのように転送されます。 977 00:45:51,130 --> 00:45:54,340 だから、単にブラウザを許可 Webサーバに話をする。 978 00:45:54,340 --> 00:45:56,910 私たちがここで言ったように、それはだ 人間のハンドシェイクのような。 979 00:45:56,910 --> 00:46:00,480 それは支配するだけの方法だ どのようにWebサーバがある 980 00:46:00,480 --> 00:46:02,690 お使いのブラウザと対話する予定。 981 00:46:02,690 --> 00:46:05,660 そして、我々は例だけのカップルを持っている。 982 00:46:05,660 --> 00:46:09,100 ここではいくつかの要求を持っている GETメソッドです。 983 00:46:09,100 --> 00:46:13,760 私たちは、HTTP 1.1を、持っている 私達のためのプロトコルバージョン。 984 00:46:13,760 --> 00:46:17,230 何され、その後、ホスト、 私たちは実際にアクセスしようとしている。 985 00:46:17,230 --> 00:46:21,800 そして、あなたはここで見るように、我々 この200といくつかの応答を取得 986 00:46:21,800 --> 00:46:25,032 私たちのHTTPレスポンスコードとしてOK。 987 00:46:25,032 --> 00:46:27,240 私たちは、私が行くよ大きなリストを持っている 1秒間にプルアップする 988 00:46:27,240 --> 00:46:29,430 君たちは精通している必要がありますことを。 989 00:46:29,430 --> 00:46:35,750 そして、私たちは、このコンテンツタイプのテキスト/ HTMLを持っている これだけのデータのタイプが言う 990 00:46:35,750 --> 00:46:39,990 我々はOK、サーバから受信している? 991 00:46:39,990 --> 00:46:44,230 このホストとこのコンテンツタイプ HTTPヘッダの一部である。 992 00:46:44,230 --> 00:46:49,610 あなたはいくつかのように少しのように持つことができます 何の文脈のために必要な 993 00:46:49,610 --> 00:46:50,580 あなたが扱っている。 994 00:46:50,580 --> 00:46:53,371 時には、たくさんのがあるでしょう あなたのサーバーからの情報。 995 00:46:53,371 --> 00:46:56,040 おそらく彼らは、多くのことを要求している 利用者からの情報の。 996 00:46:56,040 --> 00:46:57,600 それは、コンテキストに応じて変化する。 997 00:46:57,600 --> 00:47:01,144 あなたは、CS 50調査を見ると、 その上で、より多くあります。 998 00:47:01,144 --> 00:47:03,060 しかし、我々は得ることがたくさんある を通じて、私は行くよ 999 00:47:03,060 --> 00:47:05,760 場合は、右先に行くために それはあなたたちとOKですか? 1000 00:47:05,760 --> 00:47:07,960 クール。 1001 00:47:07,960 --> 00:47:08,460 つかまっている。 1002 00:47:08,460 --> 00:47:11,182 私は間違いなくそれを持っている ってof--全体のリスト! 1003 00:47:11,182 --> 00:47:13,140 これは、なぜ私は知らない こっちにすべての方法。 1004 00:47:13,140 --> 00:47:15,660 私は、文字通り移動思った それ私がsitting--あった 1005 00:47:15,660 --> 00:47:16,540 >> デーヴィン:あなたはそれを教えたいですか? 1006 00:47:16,540 --> 00:47:17,420 それとも、私がそれを教えたいですか? 1007 00:47:17,420 --> 00:47:20,010 >> 読者:私たちは考えていた ただで始まるためにそれらを示している。 1008 00:47:20,010 --> 00:47:22,210 私は、あなたがに行くことができ、意味 さらにそれらが、私 1009 00:47:22,210 --> 00:47:26,030 それは私ので、より多くの意味を成していたと思った 単にHTTPステータスについて話していた。 1010 00:47:26,030 --> 00:47:28,200 だからここに全体のリストがあります。 1011 00:47:28,200 --> 00:47:31,730 私は起こる何が起こっているかだと思います デーヴィンは、後でそれらに行くために起こっている。 1012 00:47:31,730 --> 00:47:35,330 しかし、全体のリストは、あります 味のプレビューが来ています。 1013 00:47:35,330 --> 00:47:41,640 [OK]を、私たちは、これが起こっているblow--するつもりだ 他にはないPHPの短期集中コースであると。 1014 00:47:41,640 --> 00:47:44,874 >> だから、PHP、ハイパーテキストプリプロセッサ、 それは再帰的なバクロニムだ、 1015 00:47:44,874 --> 00:47:46,540 それが何か他のものを命名されたことを意味します。 1016 00:47:46,540 --> 00:47:49,050 そして彼らは、このようなものでした 本当に意味がありません。 1017 00:47:49,050 --> 00:47:52,210 そこで、彼らは単に名前it-- それは頭字語であり、 1018 00:47:52,210 --> 00:47:54,840 ので、彼らはちょうどそれPHPた ハイパーテキストプリプロセッサ、その 1019 00:47:54,840 --> 00:47:55,980 ただ意味がありません。 1020 00:47:55,980 --> 00:47:57,714 楽しい物語。 1021 00:47:57,714 --> 00:47:58,880 それはプログラミング言語です。 1022 00:47:58,880 --> 00:48:02,360 私はあることを強調ようにできるだけ多く HTMLはプログラミング言語ではありません、 1023 00:48:02,360 --> 00:48:05,350 それはマークアップ言語、PHPの プログラミング言語である。 1024 00:48:05,350 --> 00:48:07,422 どのようにこれは知っている ロジックがあるため。 1025 00:48:07,422 --> 00:48:08,380 条件分岐があります。 1026 00:48:08,380 --> 00:48:12,750 私たちは、変数を持っている私たちのに対し、 HTMLでそれらのもののどれを持っていない。 1027 00:48:12,750 --> 00:48:16,960 >> その後すべての権利、私たちはこの小さなを持っている PHPの味のようなものだ、ここで少し。 1028 00:48:16,960 --> 00:48:20,510 だから、基本、変数名 ドル記号で始まる。 1029 00:48:20,510 --> 00:48:21,500 それのような多くの人々。 1030 00:48:21,500 --> 00:48:22,371 私たちのお金を連想させる。 1031 00:48:22,371 --> 00:48:22,995 これは、すべての素晴らしいことだ。 1032 00:48:22,995 --> 00:48:25,280 我々は、すべてのPHPを望む。 1033 00:48:25,280 --> 00:48:28,020 だから我々は指定しないでください 変数の型はもう。 1034 00:48:28,020 --> 00:48:29,995 これは、実行時に決定される。 1035 00:48:29,995 --> 00:48:32,710 1036 00:48:32,710 --> 00:48:35,890 インタプリタは次のようになります、 ああ、私たちは、経由で実行します 1037 00:48:35,890 --> 00:48:39,565 文脈に応じて、 我々は、型のどのような種類が表示されます 1038 00:48:39,565 --> 00:48:41,560 これらの変数は、持っている必要があります。 1039 00:48:41,560 --> 00:48:42,815 全く主な機能はありません。 1040 00:48:42,815 --> 00:48:43,690 観光だけで実行されます。 1041 00:48:43,690 --> 00:48:47,851 でインポートと君たちあなたの 最後のP-セット、あなたはこれを気づくでしょう。 1042 00:48:47,851 --> 00:48:49,350 主な機能は、実際にはありませんでした。 1043 00:48:49,350 --> 00:48:52,070 あなただけの書いたもの あなたが起こるしたかった。 1044 00:48:52,070 --> 00:48:53,280 そして、それはちょうど一種の起こった。 1045 00:48:53,280 --> 00:48:56,760 だから、あなたのためのPHPの。 1046 00:48:56,760 --> 00:48:59,180 >> 配列は非常に似ています。 1047 00:48:59,180 --> 00:49:01,270 我々はまだこのブラケットを持っている。 1048 00:49:01,270 --> 00:49:05,940 ここで、我々はいくつかの変数を持っている 編曲と呼ばれ、同等の 1049 00:49:05,940 --> 00:49:08,540 私たちは通常のを持っているto-- ブラケット表記法。 1050 00:49:08,540 --> 00:49:10,630 そして、我々はいくつかのキー値を持っている。 1051 00:49:10,630 --> 00:49:14,630 と大きな違い CとPHPの配列の間で 1052 00:49:14,630 --> 00:49:19,330 私たちはこのassociate--を持つことができるということです 私たちは、キーに値を関連付けることができます。 1053 00:49:19,330 --> 00:49:22,440 だからではなく、単に持つことの インデックスされる配列 1054 00:49:22,440 --> 00:49:26,630 数または位置によって 配列内のその要素の、 1055 00:49:26,630 --> 00:49:29,060 私たちは実際にキーに関連付けることができます。 1056 00:49:29,060 --> 00:49:36,700 我々が言うことができる場合は、[OK]を、私は好き 値は、果物と関連している。 1057 00:49:36,700 --> 00:49:39,280 そして多分、我々は果物はバナナに行ってきましたしている。 1058 00:49:39,280 --> 00:49:41,760 だから、私たちにバナナを返すと思います。 1059 00:49:41,760 --> 00:49:44,100 >> しかし、基本的に、ほとんどの このことについて強力なもの 1060 00:49:44,100 --> 00:49:47,960 あなたたちは覚えていることである どこ基本的に講義からデモ 1061 00:49:47,960 --> 00:49:53,050 書き直しPHPのスペルチェック、およびそれ was--ルックアップは本当にただ好きだった、 1062 00:49:53,050 --> 00:49:55,007 このキーは存在していますか? 1063 00:49:55,007 --> 00:49:56,590 それはそれのパワーの本当に親切です。 1064 00:49:56,590 --> 00:49:58,560 あなたは、反復処理する必要はありません お使いのアレイを通して。 1065 00:49:58,560 --> 00:50:00,311 あなたが知っている必要はありません 何スペースそれがでます。 1066 00:50:00,311 --> 00:50:01,976 それは、最後または先頭にある可能性があります。 1067 00:50:01,976 --> 00:50:04,790 限り、あなたは鍵を知っているように その、値に関連付けられている、 1068 00:50:04,790 --> 00:50:09,740 PHPはちょうどその値を吐くことができます 右の[OK]を、あなたにバックアウト? 1069 00:50:09,740 --> 00:50:12,960 >> そして、私たちはまた、単に 持っているだけで、私たちのため 1070 00:50:12,960 --> 00:50:16,750 キーと値のペアを持つことができます あなたがする必要があるという意味ではありません。 1071 00:50:16,750 --> 00:50:19,180 また、単に作成することができます ここのような通常の配列、 1072 00:50:19,180 --> 00:50:21,540 それはだ下部にある ただ一つ、二つ、三つ、四つ。 1073 00:50:21,540 --> 00:50:22,510 これらは私たちの値です。 1074 00:50:22,510 --> 00:50:25,320 実際には、それらのキーはインデックスである。 1075 00:50:25,320 --> 00:50:26,830 そのようにいずれかのキーがゼロになる。 1076 00:50:26,830 --> 00:50:28,610 2のキーは1になります。 1077 00:50:28,610 --> 00:50:31,910 ようになど、しない限り あなたが明示的にキーを割り当て、 1078 00:50:31,910 --> 00:50:34,630 あなたがいることを前提としなかった 値は、ちょうど彼らのインデックスである。 1079 00:50:34,630 --> 00:50:37,290 それはすべての人に意味があるか? 1080 00:50:37,290 --> 00:50:38,070 いいえ質問ません? 1081 00:50:38,070 --> 00:50:38,930 恐ろしい。 1082 00:50:38,930 --> 00:50:44,420 >> OK、foreachのは、への道である あなたの配列を反復処理。 1083 00:50:44,420 --> 00:50:47,490 だから我々は、ここで何かを持っている ただ一般的な構造。 1084 00:50:47,490 --> 00:50:51,020 のだから、foreachの、名前 何としての配列、 1085 00:50:51,020 --> 00:50:53,930 あなたはそれぞれのを呼び出したい あなたの配列内の要素、 1086 00:50:53,930 --> 00:50:57,270 私たちはで何かを行うことができます その要素またはその値を持つ。 1087 00:50:57,270 --> 00:50:58,680 だから我々はここに例があります。 1088 00:50:58,680 --> 00:51:05,770 私たちは、連想を持っている これら二つのエントリを持つ配列 1089 00:51:05,770 --> 00:51:10,080 バーにはfooに関連付けられている とバズと関連しているqux。 1090 00:51:10,080 --> 00:51:12,180 だから、キーがfooとバズです。 1091 00:51:12,180 --> 00:51:13,650 値は、バーとquxです。 1092 00:51:13,650 --> 00:51:18,560 だから、foreachの、私たちは私たちの配列を持っている ここでは、キーと値のペアとして。 1093 00:51:18,560 --> 00:51:21,560 これは、アクセスに私たちを可能にする キーと値の両方。 1094 00:51:21,560 --> 00:51:23,680 たぶん、あなたはちょうど欲しい 値が、その場合 1095 00:51:23,680 --> 00:51:27,640 あなただけのARRのように行うことができます $値、次にあなたのような 1096 00:51:27,640 --> 00:51:30,640 ただ値にアクセスしている あなたはを通して反復処理として。 1097 00:51:30,640 --> 00:51:32,600 しかし、おそらく、いくつかのための 理由は、あなたが鍵を望む、 1098 00:51:32,600 --> 00:51:35,460 私が選んだ理由である この例では、代わりに。 1099 00:51:35,460 --> 00:51:40,240 だから、実際に操作することができます この場合のキーと値。 1100 00:51:40,240 --> 00:51:41,070 OK? 1101 00:51:41,070 --> 00:51:41,905 質問? 1102 00:51:41,905 --> 00:51:44,279 >> 読者:あなたがしたい場合 ただ、キーを操作するだろう 1103 00:51:44,279 --> 00:51:45,910 あなたがしなければならないforeach-- 1104 00:51:45,910 --> 00:51:47,360 >> ALISON:右。 1105 00:51:47,360 --> 00:51:50,560 だから、あなたがしたい場合 ただキーを操作する、 1106 00:51:50,560 --> 00:51:53,680 あなたはまだこれを必要とするだろう 構文だけであれば理由 1107 00:51:53,680 --> 00:51:56,930 何かのように編曲を有し、 一つのことのように、それはだ 1108 00:51:56,930 --> 00:52:00,070 あなたが欲しい仮定するつもり 値ではなく、キー。 1109 00:52:00,070 --> 00:52:06,780 だから、あなたは今までちょうど同じように持っている場合 としてARR、多分これは、$の要素のようなものです 1110 00:52:06,780 --> 00:52:11,670 それはあなたが求めていることを前提となるだろう 各点での値だけのために。 1111 00:52:11,670 --> 00:52:13,879 あなたが明示的にしたい場合 キーで何かをする、 1112 00:52:13,879 --> 00:52:16,170 あなたはするつもりはない場合でも、 値が何でもする、 1113 00:52:16,170 --> 00:52:18,430 あなたはこの構造を必要とする 私たちはここに持っていること 1114 00:52:18,430 --> 00:52:22,330 どこにあなたが明示的に求めている キーと値の両方のために。 1115 00:52:22,330 --> 00:52:24,170 素晴らしい質問です。 1116 00:52:24,170 --> 00:52:25,940 他に何か? 1117 00:52:25,940 --> 00:52:27,490 クール。 1118 00:52:27,490 --> 00:52:29,911 >> すべての権利、PHPとHTML。 1119 00:52:29,911 --> 00:52:31,410 ああ、私たちは再びP-セット7にしている。 1120 00:52:31,410 --> 00:52:35,380 だから、これは少しおなじみのはずです。 1121 00:52:35,380 --> 00:52:41,760 だから、これはいくつかの簡単なHTMLフォームです それはハローのいくつかの入力名を持っています。 1122 00:52:41,760 --> 00:52:43,820 そして、我々は我々が得るの私達の方法を持っているを参照してください。 1123 00:52:43,820 --> 00:52:47,430 そして、私たちは私たちのP-セットから覚えていれば、 このフォームが送信されると、 1124 00:52:47,430 --> 00:52:58,130 それは持っての$ _GETと呼ばれる配列を送る これらの入力または変数の全てから 1125 00:52:58,130 --> 00:53:00,490 あるべき形 私たちのPHPで操作する。 1126 00:53:00,490 --> 00:53:03,320 この場合、ユーザがそのように 自分の名前に入れるでしょう。 1127 00:53:03,320 --> 00:53:04,370 彼らはそれを提出する。 1128 00:53:04,370 --> 00:53:07,810 そして、私たちはここでいくつかの配列を取得することを参照してください。 1129 00:53:07,810 --> 00:53:09,080 私たちは、GET配列を持っている。 1130 00:53:09,080 --> 00:53:11,510 そして、我々は名前にアクセスしている。 1131 00:53:11,510 --> 00:53:15,070 >> だからOK、私に与える、と言う 名前に関連付けられている値、 1132 00:53:15,070 --> 00:53:16,550 ここで重要なものの名前。 1133 00:53:16,550 --> 00:53:21,400 そして、それは何に直接マップ 私たちは入力名があると述べた。 1134 00:53:21,400 --> 00:53:28,960 だから、これはあなたに何の鍵を与えていた ここにあなたの配列であることを行っている。 1135 00:53:28,960 --> 00:53:31,220 それはすべての人に意味があるか? 1136 00:53:31,220 --> 00:53:32,070 はい? 1137 00:53:32,070 --> 00:53:36,240 >> 読者:名前がで参照するGETん [聞こえない]で紫色のラインに? 1138 00:53:36,240 --> 00:53:37,740 >> ALISON:それはここにこれを参照する。 1139 00:53:37,740 --> 00:53:43,840 右ここしたがって、この分野、 それがここでこの名前を参照します。 1140 00:53:43,840 --> 00:53:47,800 だから、これは命名されている可能性が 電話番号、または何のような。 1141 00:53:47,800 --> 00:53:51,790 この名前は、実際には、何を言う あなたはこのフィールドを呼び出している? 1142 00:53:51,790 --> 00:53:53,600 どのようにしようとしている このフィールドを参照してください? 1143 00:53:53,600 --> 00:53:57,670 私たちがしている、好きで、この名前は実際にある このフィールドは名前と呼ばれていると言って。 1144 00:53:57,670 --> 00:53:59,224 それは我々がそれにアクセスするつもりだ方法です。 1145 00:53:59,224 --> 00:54:02,070 >> 聴衆:だからそれは、のようにある 入力名は、ボブに等しく、and-- 1146 00:54:02,070 --> 00:54:04,380 >> ALISON:右、その後 ダウンそこにボブになるだろう。 1147 00:54:04,380 --> 00:54:06,090 その通り。 1148 00:54:06,090 --> 00:54:07,800 みんなクール? 1149 00:54:07,800 --> 00:54:10,990 すべての権利は​​、そのように、POST対GET これらは、主に2つの方法があります 1150 00:54:10,990 --> 00:54:14,880 我々は、HTTPリクエストにデータを渡すこと。 1151 00:54:14,880 --> 00:54:17,370 君たちは見ている必要があります うまくいけば、これらの両方。 1152 00:54:17,370 --> 00:54:20,940 GETとだから、情報 URLを通過する。 1153 00:54:20,940 --> 00:54:23,490 だから、あなたは今までのGoogleを行う場合 検索し、YouTubeの、あなたはよ 1154 00:54:23,490 --> 00:54:25,130 おそらくいくつかの疑問符に気づく。 1155 00:54:25,130 --> 00:54:28,230 そして、すべての単語 あなたはそこに置くこと。 1156 00:54:28,230 --> 00:54:31,410 そして、POSTはデータを渡し HTTPメッセージボディに。 1157 00:54:31,410 --> 00:54:36,922 だから、GETとは異なり、あなたは一種の考える データは、ユーザから隠されていること。 1158 00:54:36,922 --> 00:54:38,630 しかし、実際に何が 理解することが重要 1159 00:54:38,630 --> 00:54:44,040 これはまだあるということです GETと同じくらい安全でない。 1160 00:54:44,040 --> 00:54:48,780 私が使用したいアナロジーは、次の場合です。 あなたは、あなたの銀行口座番号を持っている 1161 00:54:48,780 --> 00:54:52,795 あなたがの外側にそれを書く エンベロープは、それはかなり危険だ。 1162 00:54:52,795 --> 00:54:55,920 あなたは一枚の上に書き込みした場合 紙と封筒の中に入れて、 1163 00:54:55,920 --> 00:54:58,850 それはまだので、本当に危険なだ あなたがしなければならないすべてはそれを開いている 1164 00:54:58,850 --> 00:55:03,480 と実際の内容を見て それを参照するには、メッセージの。 1165 00:55:03,480 --> 00:55:08,310 だから、これは「隠された」であるとするような人 それが安全だと思うが、それは本当にありません。 1166 00:55:08,310 --> 00:55:11,000 そして、私は確信しているデーヴィン意志 多分、そのより入る。 1167 00:55:11,000 --> 00:55:12,850 しかし、それは重要だ 区別は作る 1168 00:55:12,850 --> 00:55:15,820 と理解することが本当に良い何か。 1169 00:55:15,820 --> 00:55:19,220 >> [OK]を、SQL、構造化照会言語。 1170 00:55:19,220 --> 00:55:22,220 すべてのものその 私たちはそのように最近見てきました! 1171 00:55:22,220 --> 00:55:25,400 だから、それは基本的には設計されています、 明らかに、データを管理する。 1172 00:55:25,400 --> 00:55:30,560 君たちはで多くの経験を持っていた PHP myadminというとあなたのテーブルでこの。 1173 00:55:30,560 --> 00:55:34,100 そして、4つの共通のクエリがあります 私たちはあなたたちが知りたいこと。 1174 00:55:34,100 --> 00:55:37,304 だから、更新、挿入があると、 選択し、削除します。 1175 00:55:37,304 --> 00:55:38,970 だから、あなたが本当によく、それらを知っていることを確認してください。 1176 00:55:38,970 --> 00:55:40,960 私たちは行くつもりだ それらを介して本当に速い。 1177 00:55:40,960 --> 00:55:44,340 >> だから何として、本当に、更新 あなたは、それがないと思うかもしれない 1178 00:55:44,340 --> 00:55:46,740 それだけで、データベース内のデータを更新します。 1179 00:55:46,740 --> 00:55:48,750 だから我々はここでいくつかの例がある。 1180 00:55:48,750 --> 00:55:53,310 これは一般的である 更新クエリの構造。 1181 00:55:53,310 --> 00:55:56,150 だから我々はテーブルを更新 我々は話をしていること。 1182 00:55:56,150 --> 00:56:00,520 そして、私たちは、特定の設定したい 値が、特定の列 1183 00:56:00,520 --> 00:56:02,600 特定の値に等しい。 1184 00:56:02,600 --> 00:56:07,500 だから、これは単に変化、テーブルを更新 この場合はすべての行の値。 1185 00:56:07,500 --> 00:56:13,690 だからここにこの1ダウン、実際の内 例、申し訳ございませinsert--持っている。 1186 00:56:13,690 --> 00:56:17,630 そのスライドが進め 私はそれを実現せず。 1187 00:56:17,630 --> 00:56:22,230 >> したがって、このアップデートの表には、同じCOL1セット 家が等しいval1のために "クーリエを。」 1188 00:56:22,230 --> 00:56:25,300 これは何1が行うのはある それだけで、それだけで、変更する 1189 00:56:25,300 --> 00:56:28,130 特定の場所でこれらの値を更新します。 1190 00:56:28,130 --> 00:56:32,300 したがって、この最初のものでは、これらを変更する あなたのテーブル内のすべての値は、 1191 00:56:32,300 --> 00:56:32,860 OK? 1192 00:56:32,860 --> 00:56:35,820 それは、これを変更するために起こっている すべての単一のエントリの列、 1193 00:56:35,820 --> 00:56:37,020 すべての単一の行のために。 1194 00:56:37,020 --> 00:56:40,840 しかし、この場合には、あなたが可能性 修飾子と考える。 1195 00:56:40,840 --> 00:56:44,020 だから、だけ変更するつもりだ それは非常に特定の場所で。 1196 00:56:44,020 --> 00:56:47,840 だから、P-セット7で、ときに 多分現金の額を更新した 1197 00:56:47,840 --> 00:56:53,050 あなたのユーザーが持っていたことを、あなたはおそらく持っていた いくつかのIDが正しいセッションIDに等しい? 1198 00:56:53,050 --> 00:56:55,280 >> あなたはしたくなかったので、 現金の額を変更する 1199 00:56:55,280 --> 00:56:57,630 誰がすべての人のために あなたのウェブサイトを使用していました。 1200 00:56:57,630 --> 00:57:00,480 あなたは1のためにそれを変更したい 特定の人、その人がいる 1201 00:57:00,480 --> 00:57:02,410 誰でも、その時点でそれを使用した。 1202 00:57:02,410 --> 00:57:04,320 右? 1203 00:57:04,320 --> 00:57:07,510 [OK]を、ので、インサートを挿入 テーブルにある値。 1204 00:57:07,510 --> 00:57:11,650 これは、あなたがいる時のようなものです ブランドの新しいユーザーを作成する。 1205 00:57:11,650 --> 00:57:14,240 ここで一般的な構造 どんなテーブルに挿入されている 1206 00:57:14,240 --> 00:57:15,680 我々は話をしている。 1207 00:57:15,680 --> 00:57:18,910 値は、その値であること 私たちは実際に挿入したい。 1208 00:57:18,910 --> 00:57:23,060 [OK]を、私たちはここを参照してくださいように、我々 表に挿入している。 1209 00:57:23,060 --> 00:57:27,790 これはと特定の列である 彼らの対応の値。 1210 00:57:27,790 --> 00:57:29,940 だから、これは、インサートは言う を含む新しい行 1211 00:57:29,940 --> 00:57:33,660 値val1とval2の下 これらの特定の列。 1212 00:57:33,660 --> 00:57:39,240 >> だから、多分あなたは唯一埋めるしたい この行の半分の事から。 1213 00:57:39,240 --> 00:57:41,150 つまり、この部分はここにあなたが行うことができますものです。 1214 00:57:41,150 --> 00:57:43,280 それは実際にあなたをすることができます どの部分を決定します。 1215 00:57:43,280 --> 00:57:44,244 はい? 1216 00:57:44,244 --> 00:57:52,150 >> 聴衆:CANあなただけ[聞こえない] 行のセル[聞こえない]? 1217 00:57:52,150 --> 00:57:55,000 >> ALISON:あなただけで埋める場合 あなたの行の特定の部分、 1218 00:57:55,000 --> 00:57:57,480 それらの細胞の残りはちょうど空です。 1219 00:57:57,480 --> 00:58:02,730 1220 00:58:02,730 --> 00:58:05,660 限り、あなたはそれらを許可するように 空であって、それは問題ではありません。 1221 00:58:05,660 --> 00:58:09,570 あなたがそれらにアクセスしようとすると、それはだ いくつかの空の要素を返すつもり。 1222 00:58:09,570 --> 00:58:13,850 しかし、それは知っておくことが重要です 特定のテーブルのその、 1223 00:58:13,850 --> 00:58:16,690 彼らはNULLが許可されなければならない。 1224 00:58:16,690 --> 00:58:18,890 あなたは、にしている可能性があります あなたのP-セット中に問題 1225 00:58:18,890 --> 00:58:21,320 我々はすべてをさせなかったため、 あなたの値はnullにすること。 1226 00:58:21,320 --> 00:58:26,110 しかし、あなたは指定することができます あなたのテーブルの値(オプション)。 1227 00:58:26,110 --> 00:58:29,640 >> [OK]を選択し、これはある 取得するだけの方法 1228 00:58:29,640 --> 00:58:33,790 表から特定のデータで あなたが望むいくつかの識別子。 1229 00:58:33,790 --> 00:58:37,990 テーブルどこからそのように選択して星 colは何かちょうど手段に等しく、 1230 00:58:37,990 --> 00:58:43,820 私に関連するすべてのデータを与える どこでこの特定の列はtrueです。 1231 00:58:43,820 --> 00:58:49,020 この場合には星は意志 OK、あなたに行全体を返す? 1232 00:58:49,020 --> 00:58:54,880 >> そして、この場合には、よりスターを選択 表には、ちょうどあなたにテーブル全体を提供します。 1233 00:58:54,880 --> 00:58:58,940 そして、ただ、明らかにそれを削除 テーブルから行を削除します。 1234 00:58:58,940 --> 00:59:01,320 だから、テーブルから削除し、 どんなテーブルたちがしている 1235 00:59:01,320 --> 00:59:06,830 参照、いくつかの特定 識別子または一部条件が真である。 1236 00:59:06,830 --> 00:59:07,720 はい? 1237 00:59:07,720 --> 00:59:08,700 >> 聴衆:質問。 1238 00:59:08,700 --> 00:59:10,699 なぜあなたは二重使用している 引用符、あなたかどうか 1239 00:59:10,699 --> 00:59:13,600 二重引用符またはシングルを行う 引用符は、それが違いを生むのですか? 1240 00:59:13,600 --> 00:59:18,235 >> ALISON:二重引用符または単一引用符 SQLの違いがありません。 1241 00:59:18,235 --> 00:59:19,610 私は別の質問を見たと思った。 1242 00:59:19,610 --> 00:59:20,814 はい? 1243 00:59:20,814 --> 00:59:25,070 >> 読者:それは何には影響しません クエリから脱出しされます? 1244 00:59:25,070 --> 00:59:27,945 >> ALISON:ロブ? 1245 00:59:27,945 --> 00:59:31,410 >> ROB:あなたは何をすることによって意味ですか 問合せから脱出し? 1246 00:59:31,410 --> 00:59:36,870 >> 読者:誰かが持っている場合 フォーム内の​​単一のクエリof-- 1247 00:59:36,870 --> 00:59:39,862 >> ROB:誰かがしたなら 単一引用符を入れて、 1248 00:59:39,862 --> 00:59:43,560 その後限り、あなたは消毒しているように あなたの入力は、それは問題ではありません。 1249 00:59:43,560 --> 00:59:46,205 しかし、あなたはシングルを使用している場合 引用、あなたは間違っている 1250 00:59:46,205 --> 00:59:47,914 あなたの入力をエスケープ、 [はい、彼らが必要とする 1251 00:59:47,914 --> 00:59:51,079 打破するために、単一引用符を入れて あなたのコード。あなたは二重引用符を使用する場合は、 1252 00:59:51,079 --> 00:59:53,580 彼らは二重を置く必要がある あなたのコードを破るに​​引用。 1253 00:59:53,580 --> 00:59:56,163 しかし、限り、あなたは物事を逃れるように 正しく、それは問題ではありません。 1254 00:59:56,163 --> 00:59:59,220 それだけで翻訳することになるだろう とにかく正しいシンボルに。 1255 00:59:59,220 --> 01:00:02,332 >> 読者:エスケープは何を意味するのでしょうか? 1256 01:00:02,332 --> 01:00:04,040 ALISON:まあ、ような 消毒と脱出。 1257 01:00:04,040 --> 01:00:06,810 1258 01:00:06,810 --> 01:00:13,820 我々が持っている試験、偉大なXKCD 漫画あなたが持っているどこにプルアップすることを、 1259 01:00:13,820 --> 01:00:15,629 OH - 1260 01:00:15,629 --> 01:00:16,670 ROB:それは最後のスライドです。 1261 01:00:16,670 --> 01:00:18,500 ALISON:それは本当に、最後のスライドですか? 1262 01:00:18,500 --> 01:00:20,200 何てことだ。 1263 01:00:20,200 --> 01:00:21,780 そこに我々は完璧な、行く。 1264 01:00:21,780 --> 01:00:27,900 [OK]を、ので、基本的には、注入することができます このSQLクエリに何か 1265 01:00:27,900 --> 01:00:30,560 どこでそれがあなたを破る コー​​ド、またはダビデが示したように 1266 01:00:30,560 --> 01:00:38,460 クラスでは、我々はいくつかのシングルを持っている場合 引用1は1に等しく、我々のコードであれば、 1267 01:00:38,460 --> 01:00:41,230 私たちは、直接であることをコピーして、 我々は、終了の単一引用があり、 1268 01:00:41,230 --> 01:00:44,740 何が起こるかは我々が得るです いくつかの表現その 1269 01:00:44,740 --> 01:00:48,680 trueと評価されたことでしょう 誰かが私達のデータベースを入力してみましょう 1270 01:00:48,680 --> 01:00:51,720 その我々のデータを取得する 彼らが取得する必要はありません。 1271 01:00:51,720 --> 01:00:54,240 だから、入力をサニタイズ 念行うことを意味 1272 01:00:54,240 --> 01:00:57,680 我々はこれらをエスケープしていること 文字とそれらを指定する 1273 01:00:57,680 --> 01:01:01,720 文字としないものとして それは許容されるべきである 1274 01:01:01,720 --> 01:01:04,990 文字通りに解釈する 私たちのSQLステートメントとして。 1275 01:01:04,990 --> 01:01:09,980 >> だから我々が言った大きなものは、 君たちは使用すべきであることを 1276 01:01:09,980 --> 01:01:13,650 HTMLの特殊文字があったが、 その何かである 1277 01:01:13,650 --> 01:01:15,730 あなたが見てみたいかもしれないこと。 1278 01:01:15,730 --> 01:01:17,240 [OK]を、削除してください。 1279 01:01:17,240 --> 01:01:19,450 データ型は、これは、すべてのオンラインになります。 1280 01:01:19,450 --> 01:01:23,510 我々は左の15分を持っているので、私は今 ちょうどこの経由行くつもり。 1281 01:01:23,510 --> 01:01:28,500 PHPとSQL、基本的にはこれがある ちょうど私達は、クエリ機能を持っていたこと 1282 01:01:28,500 --> 01:01:31,520 から守る助けた これらの悪意のある攻撃。 1283 01:01:31,520 --> 01:01:33,970 ですから、使用するとき クエリー、我々は確認した。 1284 01:01:33,970 --> 01:01:36,560 物事が消毒されたことやその他もろもろ。 1285 01:01:36,560 --> 01:01:41,070 >> MVCは、単に設計パラダイムである そう、モデル、ビュー、コントローラ。 1286 01:01:41,070 --> 01:01:44,200 それは、物事を維持するだけの方法だ 素晴らしく、同じように分割 1287 01:01:44,200 --> 01:01:47,100 我々は因子傾向があること 関数に出コード。 1288 01:01:47,100 --> 01:01:53,390 これは単なるウェブデザインのフレームワークです それはあなたが同じことを行うことができます。 1289 01:01:53,390 --> 01:01:54,760 私はこれをスキップするつもりです。 1290 01:01:54,760 --> 01:01:58,530 >> これは、私が何かである スーパー快適になります。 1291 01:01:58,530 --> 01:02:01,132 それは、そこに偉大な小さなテーブルです。 1292 01:02:01,132 --> 01:02:03,090 それはあなたの機能を提供します モデルの例。 1293 01:02:03,090 --> 01:02:05,473 私はちょうど私ので、これを通じてつもりだ 本当にデーヴィンが話すことができるようにしたい。 1294 01:02:05,473 --> 01:02:07,140 ご質問があれば、 お気軽にどうぞ。 1295 01:02:07,140 --> 01:02:07,931 私は後にここにいるよ。 1296 01:02:07,931 --> 01:02:10,360 ちょうど私に話を来る。 1297 01:02:10,360 --> 01:02:13,380 このことを、我々は、HTTPのステータスを持っている。 1298 01:02:13,380 --> 01:02:16,270 そしてデーヴィンのは爆破するぞ 15分でこの貫通。 1299 01:02:16,270 --> 01:02:17,560 これは素晴らしいことになるだろう。 1300 01:02:17,560 --> 01:02:18,893 >> デーヴィン:OK。 1301 01:02:18,893 --> 01:02:20,312 ええと、あなたのマイク? 1302 01:02:20,312 --> 01:02:22,210 うん。 1303 01:02:22,210 --> 01:02:23,336 ごめんなさい。 1304 01:02:23,336 --> 01:02:24,460 ALISON:調製することへの道。 1305 01:02:24,460 --> 01:02:25,335 デーヴィン:いいえ、私は準備ができています。 1306 01:02:25,335 --> 01:02:25,860 準備できました。 1307 01:02:25,860 --> 01:02:28,790 それではこれをやってみましょう。 1308 01:02:28,790 --> 01:02:29,290 それは準備ができている。 1309 01:02:29,290 --> 01:02:30,041 OK。 1310 01:02:30,041 --> 01:02:30,540 ごめんなさい。 1311 01:02:30,540 --> 01:02:31,664 私は自分自身にコーヒーをこぼした。 1312 01:02:31,664 --> 01:02:36,037 1313 01:02:36,037 --> 01:02:38,210 私はもっ​​とだかどうかは知りません 私は愚かに見えるの不調、 1314 01:02:38,210 --> 01:02:40,600 または私はもうコーヒーを持っていないこと。 1315 01:02:40,600 --> 01:02:44,480 とにかく、単に迅速な発表 あなたたちは持っているシートについて。 1316 01:02:44,480 --> 01:02:47,994 だから、あなたたちは持っている。このシートではありません クイズに何の公式。 1317 01:02:47,994 --> 01:02:49,660 これはクイズに何の公式です。 1318 01:02:49,660 --> 01:02:52,520 また、ウェブサイト上で、私たちは言う あなたは、[OK]を、これはクイズになります。 1319 01:02:52,520 --> 01:02:55,020 少しチートシート中のSO あなたは、公式ではない持っている。 1320 01:02:55,020 --> 01:02:56,690 そして、それに間違いがあります。 1321 01:02:56,690 --> 01:03:01,490 だから、最高のはただやみくもにそれを使用しない。 1322 01:03:01,490 --> 01:03:04,390 そんなわけで、それはそれだ。 1323 01:03:04,390 --> 01:03:05,980 それでは、この実際に素早く入るましょう。 1324 01:03:05,980 --> 01:03:07,420 >> そのため、HTTPのステータス。 1325 01:03:07,420 --> 01:03:10,430 ときに何が起こる ウェブサイトは、すべてが大丈夫です。 1326 01:03:10,430 --> 01:03:11,144 すべての[OK]をクリックします。 1327 01:03:11,144 --> 01:03:13,310 すべてはに戻って来る あなたあなたはそれがしたい方法です。 1328 01:03:13,310 --> 01:03:15,370 あなたは、200 OKを得る。 1329 01:03:15,370 --> 01:03:19,250 301は、どこに我々は301の前にあることを見たことがありますか? 1330 01:03:19,250 --> 01:03:20,890 何次第です、待つのか? 1331 01:03:20,890 --> 01:03:23,250 ごめんなさい。 1332 01:03:23,250 --> 01:03:24,980 私たちは、セキュリティの間、私は錫の講義を見ました。 1333 01:03:24,980 --> 01:03:30,690 だから、セキュリティの間に、ダビデがで入力した場合ので、 httpとその後cs50.netに行くことを試み、 1334 01:03:30,690 --> 01:03:31,940 あなたは301を移動見ることになるだろう。 1335 01:03:31,940 --> 01:03:32,440 なぜ? 1336 01:03:32,440 --> 01:03:35,570 それはリダイレクトに起こっているので 私たちのHTTPSに自動的に。 1337 01:03:35,570 --> 01:03:38,649 >> だから、301はそれがだ、移動 基本的にリダイレクション。 1338 01:03:38,649 --> 01:03:40,190 そして、あなたはこのようにそれについて考えることができます。 1339 01:03:40,190 --> 01:03:43,790 2代で始めの状態になると それらはすべて問題ない、[OK]を、のようなものです。 1340 01:03:43,790 --> 01:03:46,530 開始の状態になる 3と、それらをリダイレクトある。 1341 01:03:46,530 --> 01:03:49,571 4で始まるステータス、その手段 クライアントのエラーのいくつかの種類があります。 1342 01:03:49,571 --> 01:03:52,440 5で始まるステータス、 つまり、サーバーエラーのいくつかの種類です。 1343 01:03:52,440 --> 01:03:54,680 だから、一種の別れる そのような状況。 1344 01:03:54,680 --> 01:03:59,120 だから、304は修正されたので、あなたの中にいないではない server.cのパラセット、それでは、あなたを言わせて 1345 01:03:59,120 --> 01:04:00,600 ロードさcat.html。 1346 01:04:00,600 --> 01:04:03,360 すべてが戻ってくる、 あなたは、[OK]を、素晴らしい200Sを得る。 1347 01:04:03,360 --> 01:04:04,540 >> のは、あなたがそれをリフレッシュしましょう​​。 1348 01:04:04,540 --> 01:04:07,310 まあ、その内側 cat.htmlは、あなたがJPEGを持っている。 1349 01:04:07,310 --> 01:04:09,520 まあ、それはJPEGではありません 再ロードを取得するつもり。 1350 01:04:09,520 --> 01:04:12,140 あなたは別のものを投稿するつもりはない サーバに要求をGET、 1351 01:04:12,140 --> 01:04:13,980 その後、すべてその情報を取り戻す。 1352 01:04:13,980 --> 01:04:17,560 それはちょうど、そのイメージがあるbe--になるだろう あなたのマシンにキャッシュされようとして。 1353 01:04:17,560 --> 01:04:19,540 そして、その結果、画像は304になります。 1354 01:04:19,540 --> 01:04:20,720 だから、変更されていないです。 1355 01:04:20,720 --> 01:04:24,600 あなたがして閉じた場合は、明確な クッキーは、[最新の情報に更新 1356 01:04:24,600 --> 01:04:27,490 そしてそのページをロードしよう 再び、あなたは200Sを見に行っている。 1357 01:04:27,490 --> 01:04:28,910 あなたは304を見するつもりはない。 1358 01:04:28,910 --> 01:04:32,340 >> 400、不正な要求、実際の あなたの場合のように、迅速な 1359 01:04:32,340 --> 01:04:34,880 送信するつもりだった サーバーへのJSONオブジェクト 1360 01:04:34,880 --> 01:04:38,090 そして、あなたのJSONオブジェクトは、正しくありませんでした あなたはそのようなものが表示されます。 1361 01:04:38,090 --> 01:04:39,000 403は、禁じられた。 1362 01:04:39,000 --> 01:04:40,330 いつ、禁止を参照してくださいでしょうか? 1363 01:04:40,330 --> 01:04:41,394 おそらく、おそらく? 1364 01:04:41,394 --> 01:04:42,060 聴衆ます。chmod。 1365 01:04:42,060 --> 01:04:42,950 デーヴィンます。chmod、うん。 1366 01:04:42,950 --> 01:04:44,730 だから、設定していない 正しくパーミッション。 1367 01:04:44,730 --> 01:04:45,577 404は、見つかりません。 1368 01:04:45,577 --> 01:04:46,410 それはそこだけではありません。 1369 01:04:46,410 --> 01:04:48,670 ですから、間違ったURLに入力した場合。 1370 01:04:48,670 --> 01:04:53,500 500、内部サーバーエラー、サーバー おそらく正しく設定されていませんでした。 1371 01:04:53,500 --> 01:04:56,260 あなたの端にあるものではありませんが、 サーバー側で何か。 1372 01:04:56,260 --> 01:04:57,240 そして、503? 1373 01:04:57,240 --> 01:04:59,502 多くの人が見ました 最後のP-セットで503s。 1374 01:04:59,502 --> 01:05:00,460 それはいつ起こるでしょうか? 1375 01:05:00,460 --> 01:05:04,180 1376 01:05:04,180 --> 01:05:05,660 私はささやきを聞いた。 1377 01:05:05,660 --> 01:05:07,767 >> 読者:ときにグーグル あなたはロボットだことを決定。 1378 01:05:07,767 --> 01:05:10,350 デーヴィン:うん、Googleが決定 あなたが503sを取得し、ロボットだ。 1379 01:05:10,350 --> 01:05:11,560 だから、過負荷だ。 1380 01:05:11,560 --> 01:05:14,620 あなたは、サーバーから要求された場合 あまりにも多く、それは通常、一時的だ。 1381 01:05:14,620 --> 01:05:15,560 そして、あなたのほとんどはそれに気づいた。 1382 01:05:15,560 --> 01:05:16,185 だから、503を見た。 1383 01:05:16,185 --> 01:05:19,282 あなたは少しを取ったかもしれない 休憩、その後503sは、去っていきました 1384 01:05:19,282 --> 01:05:20,490 すべてが大丈夫だった。 1385 01:05:20,490 --> 01:05:26,640 >> GABE:リアル素早く、君たちが入手できますか おそらく、この最後の問題セットで500? 1386 01:05:26,640 --> 01:05:27,954 はい? 1387 01:05:27,954 --> 01:05:30,906 >> 聴衆:通常の場合 サーバーは、見当違いのファイルを持っています 1388 01:05:30,906 --> 01:05:34,650 または[聞こえない]彼らの マシン[聞こえない]。 1389 01:05:34,650 --> 01:05:38,870 >> GABE:だから、コンフィギュレーション可能性があります あなたのサーバー上のPHPの問題。 1390 01:05:38,870 --> 01:05:42,250 しかし、それはちょうど何かかもしれない あなたの忘れてしまったセミコロンのような。 1391 01:05:42,250 --> 01:05:44,130 あなたがPHPを入力している場合は、 いくつかの不正な構文 1392 01:05:44,130 --> 01:05:46,000 あなたにそのような何かを得るかもしれない。 1393 01:05:46,000 --> 01:05:46,960 OK? 1394 01:05:46,960 --> 01:05:48,610 >> デーヴィン:クール。 1395 01:05:48,610 --> 01:05:51,180 あなたは私だけのAJAXまでやりたいですか? 1396 01:05:51,180 --> 01:05:52,950 >> GABE:[聞こえない]。 1397 01:05:52,950 --> 01:05:53,450 デーヴィン:OK。 1398 01:05:53,450 --> 01:05:54,230 だから、DOMは何ですか? 1399 01:05:54,230 --> 01:05:55,290 DOMは何の略ですか? 1400 01:05:55,290 --> 01:05:56,990 >> 読者:ドキュメントオブジェクトモデル。 1401 01:05:56,990 --> 01:05:57,490 デーヴィン:ニース。 1402 01:05:57,490 --> 01:06:00,775 そして、なぜ我々はそれを好きですか? 1403 01:06:00,775 --> 01:06:02,670 恐ろしい。 1404 01:06:02,670 --> 01:06:06,651 右、それだけでアクセスすることができますので、 HTMLは、非常に迅速に私たちのページにアクセスします。 1405 01:06:06,651 --> 01:06:07,150 なぜ? 1406 01:06:07,150 --> 01:06:09,980 私たちが治療しているので私たちの ページ、私たちのHTMLタグを処理し、 1407 01:06:09,980 --> 01:06:11,730 すべてを処理する 彼らはオブジェクトだかのように。 1408 01:06:11,730 --> 01:06:13,710 彼らがいるような、我々は彼らを治療している場合 オブジェクトは、我々は何ができるのでしょうか? 1409 01:06:13,710 --> 01:06:15,210 まあ、我々はそれらに関数を呼び出すことができます。 1410 01:06:15,210 --> 01:06:16,460 そして、これはなぜ重要なのですか? 1411 01:06:16,460 --> 01:06:19,200 さて、私たちは使用するつもりだので、 私たちのHTMLを更新するJavaScriptは、 1412 01:06:19,200 --> 01:06:20,500 これらのオブジェクトを更新します。 1413 01:06:20,500 --> 01:06:23,869 我々はオブジェクトのように扱うのであれば、 我々はその後、それらに関数を呼び出すことができます。 1414 01:06:23,869 --> 01:06:26,660 私はこの少し入るつもりだ 私はJavaScriptに行くときより、 1415 01:06:26,660 --> 01:06:30,510 しかし、あなたはすべてのように見てきた のdocument.getElementById。 1416 01:06:30,510 --> 01:06:32,870 だから、ドキュメントはあなたです 要素は、IDによって要素を取得、 1417 01:06:32,870 --> 01:06:35,087 だから、見てするつもりだ HTMLタグ内にあるいくつかのIDの。 1418 01:06:35,087 --> 01:06:36,920 そして、あなたが行うことができます それに何か他のもの。 1419 01:06:36,920 --> 01:06:40,089 例えば、document.bodyのような、 あなたは、子を追加することができます。 1420 01:06:40,089 --> 01:06:41,630 だから、ドキュメントを見つけるつもりだ。 1421 01:06:41,630 --> 01:06:42,340 あなたが文書を持っている。 1422 01:06:42,340 --> 01:06:43,629 あなたは身体を見つけるつもりだ。 1423 01:06:43,629 --> 01:06:44,420 あなたが遺体を発見した。 1424 01:06:44,420 --> 01:06:46,545 そして、あなたはするつもりだ その上にいくつかの関数を呼び出す。 1425 01:06:46,545 --> 01:06:50,312 だから、子供を追加し、あなたが追加することができます あなたの体の内側の端の上にいくつかのHTML。 1426 01:06:50,312 --> 01:06:52,520 そこで、基本的に、あなただけだ オブジェクトのようにそれを処理する。 1427 01:06:52,520 --> 01:06:54,515 あなたは、HTMLの治療している オブジェクトのようなタグ。 1428 01:06:54,515 --> 01:06:57,071 そして、それはそれは非常に簡単になります そしてそれらを介して移動するための迅速な。 1429 01:06:57,071 --> 01:06:59,070 しかし、それはまたあなたを可能にする それらに関数を呼び出す 1430 01:06:59,070 --> 01:07:04,410 だから、操作することができます と要素を変更。 1431 01:07:04,410 --> 01:07:10,162 >> GABE:この考えると、なぜそのようなJavaScriptがある すてきな言語は、HTMLと対話するには? 1432 01:07:10,162 --> 01:07:12,870 人々が選択されたときのオッズであり、 ブラウザの言語、 1433 01:07:12,870 --> 01:07:14,990 クライアント側のため、 JavaScriptは、本当にいいです 1434 01:07:14,990 --> 01:07:16,765 それは、オブジェクトを扱うには本当に良いことだ。 1435 01:07:16,765 --> 01:07:20,620 およびオブジェクトは一種のようなものです HTMLで表示されるオブジェクト、 1436 01:07:20,620 --> 01:07:23,940 そのためには、JavaScriptのために非常に簡単です ハンドリングのようなものをすることができません。 1437 01:07:23,940 --> 01:07:24,440 デーヴィン:ニース。 1438 01:07:24,440 --> 01:07:25,670 だからここだけの例です。 1439 01:07:25,670 --> 01:07:29,020 だから私は、昨年のクイズで考える または多分2年前、我々 1440 01:07:29,020 --> 01:07:30,840 ツリーを作成することを求めた。 1441 01:07:30,840 --> 01:07:32,660 だから、これはあなたがしたい正確に何である。 1442 01:07:32,660 --> 01:07:34,255 だから、文書から始める。 1443 01:07:34,255 --> 01:07:36,130 それから、あなたは基本的に 単にタグを見てください。 1444 01:07:36,130 --> 01:07:38,100 ですから、私たちを見れば HTMLタグで始まります。 1445 01:07:38,100 --> 01:07:41,660 そして、あなたはどのようにについての手がかりを得る インデントに基づいてこれを行う。 1446 01:07:41,660 --> 01:07:43,870 枝の、ヘッドの種類オフ。 1447 01:07:43,870 --> 01:07:46,242 頭の中では、我々は持っている タイトルのために別のタグ。 1448 01:07:46,242 --> 01:07:47,450 それでは、我々はタイトルタグを持っている。 1449 01:07:47,450 --> 01:07:49,760 そして、その内側に、我々はいくつかの文字列を持っている。 1450 01:07:49,760 --> 01:07:52,210 そして、私たちは表現する サークル内の文字列。 1451 01:07:52,210 --> 01:07:54,010 そして、すべてのタグは正方形である。 1452 01:07:54,010 --> 01:07:56,270 >> そして、あなたが見れば、我々の場合 木と考える、 1453 01:07:56,270 --> 01:07:58,730 とのは、HTMLがあるとしましょう 親、頭と体 1454 01:07:58,730 --> 01:07:59,772 兄弟であることを行っている。 1455 01:07:59,772 --> 01:08:01,813 彼らは両方のことになるだろう その親の子。 1456 01:08:01,813 --> 01:08:03,620 だから、彼らはだから 両方の兄弟、彼らがしている 1457 01:08:03,620 --> 01:08:06,590 種類の隣にあることを行って 我々のツリーモデルで互いに。 1458 01:08:06,590 --> 01:08:08,590 そして、あなたは基本的に まったく同じことを行う。 1459 01:08:08,590 --> 01:08:13,512 だから難しいが、我々は尋ねていない クイズに前にこのような質問。 1460 01:08:13,512 --> 01:08:15,220 GABE:誰でもしていますか これまでの質問があります? 1461 01:08:15,220 --> 01:08:16,357 それは良いですか? 1462 01:08:16,357 --> 01:08:16,856 デーヴィン:クール。 1463 01:08:16,856 --> 01:08:19,630 1464 01:08:19,630 --> 01:08:21,600 JavaScriptは、[OK]を、良いもの。 1465 01:08:21,600 --> 01:08:24,069 だから、JavaScriptは、JavaScriptは何ですか? 1466 01:08:24,069 --> 01:08:28,370 さて、JavaScriptはそれはだis-- 複雑であるが、これら 1467 01:08:28,370 --> 01:08:30,727 ハイライトの一部です あなたが心に留めておくべきこと。 1468 01:08:30,727 --> 01:08:31,810 まず、緩く型付けだ。 1469 01:08:31,810 --> 01:08:33,529 どういう意味ですか? 1470 01:08:33,529 --> 01:08:35,596 だから、PHPはアップするものだ、うんwas--? 1471 01:08:35,596 --> 01:08:39,854 >> 読者:あなたが明示的にする必要はありません 状態変数のどのタイプそれがある。 1472 01:08:39,854 --> 01:08:40,479 デーヴィン:パーフェクト。 1473 01:08:40,479 --> 01:08:43,270 そこで彼は、あなたが持っていないと述べ 明示的に変数の型を述べる。 1474 01:08:43,270 --> 01:08:44,160 それはまさにそうです。 1475 01:08:44,160 --> 01:08:49,700 私がint持っていたのであればC言語で、私は、50に等しい その後、PHPで、それだけでこのようなものだ、$ I、 1476 01:08:49,700 --> 01:08:50,550 50に等しい。 1477 01:08:50,550 --> 01:08:54,319 次にJavaScriptで、 呼び出しは何でしょう? 1478 01:08:54,319 --> 01:08:55,260 ヴァール、右? 1479 01:08:55,260 --> 01:08:56,566 それは私が50に等しいVARのようになると思います。 1480 01:08:56,566 --> 01:08:58,649 しかし、あなたがする必要はありません のように、[OK]を、これはintです。 1481 01:08:58,649 --> 01:09:00,350 OK、これは文字列です。 1482 01:09:00,350 --> 01:09:01,731 それをする必要はありません。 1483 01:09:01,731 --> 01:09:02,939 それはインタプリタ言語です。 1484 01:09:02,939 --> 01:09:04,904 だから、何を意味するのでしょうか? 1485 01:09:04,904 --> 01:09:06,340 >> 読者:コンパイルされていません。 1486 01:09:06,340 --> 01:09:10,470 >> デーヴィン:何を意味してコンパイルしないのですか? 1487 01:09:10,470 --> 01:09:11,392 うん? 1488 01:09:11,392 --> 01:09:15,336 >> 読者:あなたが持っていない コー​​ドを再構築する 1489 01:09:15,336 --> 01:09:18,294 のためのそれを準備するために それを実行するコンピュータ。 1490 01:09:18,294 --> 01:09:23,144 それは、ちょうどの時に取ってきて 実行とコンピュータ[聞こえない]。 1491 01:09:23,144 --> 01:09:25,560 デーヴィン:うん、そう、それがために起こっている インタプリタを通過する。 1492 01:09:25,560 --> 01:09:26,750 しかし、あなたは正確に正しいです。 1493 01:09:26,750 --> 01:09:28,319 だから、行くことはありませんしている 右、それをコンパイルするには? 1494 01:09:28,319 --> 01:09:30,399 あなたをしていたときに PHPとJavaScriptコード、 1495 01:09:30,399 --> 01:09:31,365 あなたは、コンパイルと呼ばれることはありません。 1496 01:09:31,365 --> 01:09:33,779 あなたは次のように呼び出されることはありません 作るか、またはそのような何か。 1497 01:09:33,779 --> 01:09:34,800 それは解釈だからだ。 1498 01:09:34,800 --> 01:09:37,319 だから、ブラウザを通過するたびに、 それはインタプリタを通過します。 1499 01:09:37,319 --> 01:09:40,370 そして、それはそれを解釈するだろう ちょうどリアルタイムですぐにあなたのために。 1500 01:09:40,370 --> 01:09:43,770 だから、いくつかの利点と欠点は何ですか インタプリタ言語を有することに 1501 01:09:43,770 --> 01:09:45,258 とコンパイル言語を持つ? 1502 01:09:45,258 --> 01:09:48,240 1503 01:09:48,240 --> 01:09:50,540 だから、最大何、ええcompiling--? 1504 01:09:50,540 --> 01:09:52,444 >> 読者:解釈は遅くなります。 1505 01:09:52,444 --> 01:09:53,319 デーヴィン:どのような意味では? 1506 01:09:53,319 --> 01:09:57,167 1507 01:09:57,167 --> 01:09:59,091 >> 読者:あなたの後 コンパイル、あなたが持っていない 1508 01:09:59,091 --> 01:10:04,400 実行するために余分な手順を実行する それ、この[聞こえない]のに対して。 1509 01:10:04,400 --> 01:10:05,570 >> デーヴィン:右、完璧。 1510 01:10:05,570 --> 01:10:08,386 だから、ある言ったこと 基本的にコンパイルすること、 1511 01:10:08,386 --> 01:10:10,760 コンパイル時に、あなたが持っている 先行投資の多くは、右? 1512 01:10:10,760 --> 01:10:11,760 あなたはそれをコンパイルするつもりだ。 1513 01:10:11,760 --> 01:10:13,750 しかし、あなたはそれをコンパイルした後、 コンパイラは、それを最適化するために起こっている。 1514 01:10:13,750 --> 01:10:14,840 これは、高速になるだろう。 1515 01:10:14,840 --> 01:10:16,170 それは基本的に起こっている それができるように高速である。 1516 01:10:16,170 --> 01:10:18,830 通訳を使用すると、決して その初期費用を持っています。 1517 01:10:18,830 --> 01:10:22,260 むしろ、それはわずかに遅いことになるだろう あなたがそれを解釈する一つ一つの時間。 1518 01:10:22,260 --> 01:10:24,940 そして、あなたがする必要があるとしている それを一つ一つの時間を解釈する。 1519 01:10:24,940 --> 01:10:27,114 だからではなく、このを持っていることの 今あなたがしている1時間コスト、 1520 01:10:27,114 --> 01:10:29,530 それを解釈する必要があるとして 毎回ページがレンダリングされます。 1521 01:10:29,530 --> 01:10:31,890 >> だから、通訳が原因良いです あなたはそれをコンパイルする必要はありません、 1522 01:10:31,890 --> 01:10:33,980 しかし、彼らはそのすべての悪いね 時間ページが読み込まれる、それはだ 1523 01:10:33,980 --> 01:10:35,771 する必要があるとして このJavaScriptを解釈する。 1524 01:10:35,771 --> 01:10:40,520 そして、それは少し遅くなるために起こっている あなたはそれをコンパイルした場合よりも。 1525 01:10:40,520 --> 01:10:43,044 あなたは、ああcommunicate--待つようにします。 1526 01:10:43,044 --> 01:10:44,960 操作するために使用 内容と外観。 1527 01:10:44,960 --> 01:10:46,043 私達はちょうどそれについて話しました。 1528 01:10:46,043 --> 01:10:47,250 これは、DOMを使用しています。 1529 01:10:47,250 --> 01:10:49,930 AJAX、我々は入るだろう 少しでAJAX。 1530 01:10:49,930 --> 01:10:51,520 その後、それはクライアント側だ。 1531 01:10:51,520 --> 01:10:53,110 だから、PHPはサーバー側である。 1532 01:10:53,110 --> 01:10:54,360 JavaScriptは、クライアント側である。 1533 01:10:54,360 --> 01:10:57,780 それに正のは何ですか? 1534 01:10:57,780 --> 01:10:58,280 それはそれを言う。 1535 01:10:58,280 --> 01:11:01,480 1536 01:11:01,480 --> 01:11:02,780 それは右、高速です? 1537 01:11:02,780 --> 01:11:05,282 それは高速ですto--あなたが持っていないため。 1538 01:11:05,282 --> 01:11:07,490 あなたが通信する必要はありません いくつかの他のデバイスと。 1539 01:11:07,490 --> 01:11:08,790 あなただけにしている場合は、あなたの クライアント、あなたは決してならない 1540 01:11:08,790 --> 01:11:11,280 行かなければならないだろうと サーバー上にあるものを見る 1541 01:11:11,280 --> 01:11:13,150 その後折り返し報告 またはそのような何か。 1542 01:11:13,150 --> 01:11:15,410 そのように、クライアント側での傾向 少し速くなり。 1543 01:11:15,410 --> 01:11:17,910 >> GABE:うん、これ PHPはある意味ではありません 1544 01:11:17,910 --> 01:11:20,440 JavaScriptのより速い などの何でも。 1545 01:11:20,440 --> 01:11:23,270 彼らは同じで種類の実行 スピード彼らは両方のだから 1546 01:11:23,270 --> 01:11:24,490 インタプリタ言語。 1547 01:11:24,490 --> 01:11:26,680 遅い事 ここで要求がある。 1548 01:11:26,680 --> 01:11:28,870 だから、実際に行っている ブラジルの上のすべての道 1549 01:11:28,870 --> 01:11:31,460 いくつかの情報を取得する それはそこに住んでいる。 1550 01:11:31,460 --> 01:11:34,590 しかし、PHPとJavaScriptは、彼ら 種類の同じ速度で実行されます。 1551 01:11:34,590 --> 01:11:37,930 それはその一つですではありません 他よりも高速。 1552 01:11:37,930 --> 01:11:40,600 これは、ここにも、トリックの質問。 1553 01:11:40,600 --> 01:11:47,338 だから、JavaScriptはなることはない 真または偽のマシンコード、? 1554 01:11:47,338 --> 01:11:48,590 >> 読者:偽。 1555 01:11:48,590 --> 01:11:49,090 GABE:偽。 1556 01:11:49,090 --> 01:11:51,298 それは、マシンになる必要があります コー​​ドマシンコードであるからである 1557 01:11:51,298 --> 01:11:53,210 唯一のことは、マシンが理解しています。 1558 01:11:53,210 --> 01:11:55,800 それがコンパイルされていないにもかかわらず、 それでもマシンコードになる 1559 01:11:55,800 --> 01:11:59,120 インタプリタはただであるため、 行ずつ行くプログラム 1560 01:11:59,120 --> 01:12:02,170 とにそのラインを変換 何か、コンピュータが理解しています。 1561 01:12:02,170 --> 01:12:02,825 OK? 1562 01:12:02,825 --> 01:12:03,325 クール。 1563 01:12:03,325 --> 01:12:08,530 1564 01:12:08,530 --> 01:12:12,890 >> デーヴィン:ここだけの非常に基本的なものです Hello WorldのJavaScriptのプログラム。 1565 01:12:12,890 --> 01:12:15,590 だから私はあなたがこれを見てきたif--知りません。 1566 01:12:15,590 --> 01:12:17,630 しかし、あなたはちょうどここにHTMLを持っている。 1567 01:12:17,630 --> 01:12:21,020 そして、代わりに、実際に入れて スクリプトタグ内のJavaScript、 1568 01:12:21,020 --> 01:12:22,810 だから、普通に頭の中でそれを置くところ。 1569 01:12:22,810 --> 01:12:24,030 あなたは、スクリプトタグを持っている。 1570 01:12:24,030 --> 01:12:24,870 あなたがそこにドロップします。 1571 01:12:24,870 --> 01:12:28,350 私たちはここでやったすべてが、我々はin--リンクしている 私たちは、JavaScriptファイルにリンクされてきた 1572 01:12:28,350 --> 01:12:29,137 このような。 1573 01:12:29,137 --> 01:12:30,470 そして、あなたはすべての権利、これをやった? 1574 01:12:30,470 --> 01:12:34,740 だから、jQueryを使用していた時と 最後のP-セットでunderscore.js、 1575 01:12:34,740 --> 01:12:38,700 あなたは、コードの最大のトンを持っていない あなたのスクリプトタグ、あなたの頭の中で最大。 1576 01:12:38,700 --> 01:12:41,415 あなたはそれを行うのではなく、可能性 あなただけでそれをリンクしている。 1577 01:12:41,415 --> 01:12:43,540 そして、あなたはそれをリンクしている ちょうどあなたがCSSで行うが好き。 1578 01:12:43,540 --> 01:12:50,186 だから、ただそれが簡単そう読むことになる あなたのコードでは、千行と同じように長くはありません 1579 01:12:50,186 --> 01:12:52,310 機能するのトンと あなたが使用していない可能性があります。 1580 01:12:52,310 --> 01:12:53,518 >> その代わりに、あなただけでそれをリンクします。 1581 01:12:53,518 --> 01:12:55,050 それを区画する。 1582 01:12:55,050 --> 01:13:00,110 これは、いくつかのヘッダファイルを書くようなものだ、と その後C.でそのヘッダファイルを含む 1583 01:13:00,110 --> 01:13:01,620 ちょうどこのように考えて。 1584 01:13:01,620 --> 01:13:02,680 だから、これは何をするのでしょうか? 1585 01:13:02,680 --> 01:13:04,560 まあ、これは実行しようとしている。 1586 01:13:04,560 --> 01:13:05,410 それは警告するようになるだろう。 1587 01:13:05,410 --> 01:13:08,020 だから、少し取得するつもりだ と呼ばれるハローワールドをポップアップ。 1588 01:13:08,020 --> 01:13:11,420 簡単な質問、ちょうど健全性チェック、 だから、身体にここを参照してください 1589 01:13:11,420 --> 01:13:13,160 ここではボディ、HTMLを言う。 1590 01:13:13,160 --> 01:13:14,080 何が最初に来る? 1591 01:13:14,080 --> 01:13:16,864 私はここで身体、HTMLを見ています、 または私は最初の警告を見ていますか? 1592 01:13:16,864 --> 01:13:19,828 1593 01:13:19,828 --> 01:13:20,820 >> 読者:警告。 1594 01:13:20,820 --> 01:13:21,470 >> デーヴィン:右。 1595 01:13:21,470 --> 01:13:22,110 彼は警告を述べています。 1596 01:13:22,110 --> 01:13:22,610 なぜ? 1597 01:13:22,610 --> 01:13:24,470 >> 読者:あなたのため 上から下に移動します。 1598 01:13:24,470 --> 01:13:25,600 >> デーヴィン:はい。 1599 01:13:25,600 --> 01:13:26,100 パーフェクト。 1600 01:13:26,100 --> 01:13:29,207 そこで彼は、あなたが上からに行く、と言う 絶対に正しいの底、。 1601 01:13:29,207 --> 01:13:30,790 あなたは上から下に行くつもりだ。 1602 01:13:30,790 --> 01:13:34,790 とJavaScript、jQueryの中で、あなたが持っている オンロードのようなものだ機能、または準備ができて、 1603 01:13:34,790 --> 01:13:38,030 それはOK、まで待って、と言う このHTMLのすべてがロードされています。 1604 01:13:38,030 --> 01:13:39,580 そして、JavaScriptを呼び出します。 1605 01:13:39,580 --> 01:13:42,190 私たちはここにそれを持っていないため、 起こるだろう非常に最初のもの 1606 01:13:42,190 --> 01:13:43,920 それは上から下に行くために起こっているされている。 1607 01:13:43,920 --> 01:13:46,310 それは、そのJSを打つために起こっている 呼び出し、それは警告するために起こっている。 1608 01:13:46,310 --> 01:13:49,510 その後[OK]をクリックする、 そのアラートが表示されなくなります。 1609 01:13:49,510 --> 01:13:53,600 その後、表示するために起こっている あなたここにボディHTML。 1610 01:13:53,600 --> 01:13:54,590 ニース。 1611 01:13:54,590 --> 01:14:00,880 >> [OK]を、ので、ちょうど実際に素早く、書き込み JavaScriptでスーパー速い。 1612 01:14:00,880 --> 01:14:02,710 宣言するためには、 変数、VAR名。 1613 01:14:02,710 --> 01:14:07,070 だから、C言語で、あなたが持っている、int型のIを持っている それはタイプの種類を宣言する。 1614 01:14:07,070 --> 01:14:08,040 PHP、$。 1615 01:14:08,040 --> 01:14:08,755 JavaScriptは、VAR。 1616 01:14:08,755 --> 01:14:09,630 我々はこのことについて話しました。 1617 01:14:09,630 --> 01:14:11,020 すべての権利、行きましょう。 1618 01:14:11,020 --> 01:14:12,510 >> ループ、同じこと。 1619 01:14:12,510 --> 01:14:14,230 同じこと。 1620 01:14:14,230 --> 01:14:18,165 そのように関数宣言、 ちょうどあなたが、Cで見てきたような 1621 01:14:18,165 --> 01:14:21,290 別の唯一の事はときにあり あなたは他のプログラミング言語を取得、 1622 01:14:21,290 --> 01:14:24,780 あなたは51次の学期を取るときのような あなたがOCAMLでやっている、 1623 01:14:24,780 --> 01:14:26,690 あなたは無名関数を扱うことができます。 1624 01:14:26,690 --> 01:14:28,240 だから、あなたがここに持っているまさにそれだ。 1625 01:14:28,240 --> 01:14:31,560 ですから、合計で入れたい 合計値のいくつかの種類。 1626 01:14:31,560 --> 01:14:33,870 しかし、あなたはそれだけを一度やっているかもしれません。 1627 01:14:33,870 --> 01:14:37,310 だから、関数を呼び出すにしたくない 合計は、それを関数宣言を与える。 1628 01:14:37,310 --> 01:14:39,830 その代わりに、あなたはそれを使用する 無名関数として。 1629 01:14:39,830 --> 01:14:42,469 そして、あなたはこのロットを見てきました。 1630 01:14:42,469 --> 01:14:44,510 あなたはの例が表示されます このカップルのスライドで。 1631 01:14:44,510 --> 01:14:45,597 うん、我々が表示されます。 1632 01:14:45,597 --> 01:14:46,430 GABE:良い質問。 1633 01:14:46,430 --> 01:14:50,660 あなたが使用することをお勧めします場合には ここに無名関数? 1634 01:14:50,660 --> 01:14:54,111 基本的に、あなたが何かをしたいとき、 イベントのように、発生する。 1635 01:14:54,111 --> 01:14:55,860 それでマウスがある場合 クリックされた、例えば、 1636 01:14:55,860 --> 01:14:57,790 あなたは、いくつかの関数が呼び出されるようにしたい。 1637 01:14:57,790 --> 01:15:00,570 だから、イベントに渡す ハンドラは、イベントに渡す、 1638 01:15:00,570 --> 01:15:02,870 の種類、機能 あなたが呼ばれるようにしたい。 1639 01:15:02,870 --> 01:15:04,710 そして、あなたは何を渡している 最後に、等である 1640 01:15:04,710 --> 01:15:08,757 その日の、ちょうどポインタへ 関数にその命令、。 1641 01:15:08,757 --> 01:15:11,090 だから、それはあなたが渡しているようではありません 同じように全体のコード、 1642 01:15:11,090 --> 01:15:12,173 関数へのポインタ。 1643 01:15:12,173 --> 01:15:17,871 そして、誰かがクリックしたときに マウス、その関数が呼び出されます。 1644 01:15:17,871 --> 01:15:22,340 >> デーヴィン:アレイ、あなたので、 配列宣言を持っている。 1645 01:15:22,340 --> 01:15:23,990 その後、で物事を置くために配列。 1646 01:15:23,990 --> 01:15:25,769 実際に素早く、これは何を出力します? 1647 01:15:25,769 --> 01:15:27,060 第三の要素は何になりますか? 1648 01:15:27,060 --> 01:15:31,470 1649 01:15:31,470 --> 01:15:32,450 >> 読者:「JS」。 1650 01:15:32,450 --> 01:15:33,940 >> デーヴィン:右、それは "JS。」となる 1651 01:15:33,940 --> 01:15:35,760 待って、戻ってください。 1652 01:15:35,760 --> 01:15:37,100 長さとは何ですか? 1653 01:15:37,100 --> 01:15:38,117 >> 聴衆:スリー。 1654 01:15:38,117 --> 01:15:38,950 デーヴィン:三、右? 1655 01:15:38,950 --> 01:15:40,210 正確にあなたが何を考えて。 1656 01:15:40,210 --> 01:15:42,072 [OK]を、今行く。 1657 01:15:42,072 --> 01:15:43,530 配列は、あなたが彼らに物事を追加することができます。 1658 01:15:43,530 --> 01:15:45,395 だから、越えて行くことができます 彼らの初期の境界です。 1659 01:15:45,395 --> 01:15:46,740 心を保つためにだけで何か。 1660 01:15:46,740 --> 01:15:49,760 PHP、JavaScriptは、彼らが少しだ 物事の面でもう少し寛容 1661 01:15:49,760 --> 01:15:50,570 そのような。 1662 01:15:50,570 --> 01:15:54,260 オブジェクト、非常にのような 構造体Cにおいて、非常に 1663 01:15:54,260 --> 01:15:56,590 PHPの連想配列のように。 1664 01:15:56,590 --> 01:15:58,720 あなたは、このすべての経験を持っていた。 1665 01:15:58,720 --> 01:16:01,880 あなたがJSONを渡しているので、JSON、 前後にp型に設定された8種類の中で、 1666 01:16:01,880 --> 01:16:03,260 それは、オブジェクトの。 1667 01:16:03,260 --> 01:16:06,290 >> そんなわけで、例えば、実際の簡単な例。 1668 01:16:06,290 --> 01:16:07,880 ここでの目的である。 1669 01:16:07,880 --> 01:16:12,700 あなたがこれを参照する方法 オブジェクト、迅速なので、本物の、 1670 01:16:12,700 --> 01:16:18,630 のは、私が探していましたとしましょう アウト、OK、コースは何ですか? 1671 01:16:18,630 --> 01:16:20,681 したがって、ここでオブジェクト名はCS50である。 1672 01:16:20,681 --> 01:16:23,180 そして私は連想していた場合 配列、私はそれをどのように行うのでしょうか? 1673 01:16:23,180 --> 01:16:24,580 私は右、キーを使用することがあります? 1674 01:16:24,580 --> 01:16:26,030 だから私は、配列の名前を持っている。 1675 01:16:26,030 --> 01:16:30,160 私は、ブラケット、引用符、キーを持っている エンド引用符、エンドブラケット、 1676 01:16:30,160 --> 01:16:33,610 そしてそれはそれを参照します 私の連想配列の内部要素。 1677 01:16:33,610 --> 01:16:37,646 私はどのように参照されたか 私のオブジェクト内のコース? 1678 01:16:37,646 --> 01:16:39,170 誰もが知っている? 1679 01:16:39,170 --> 01:16:40,622 >> 読者:[聞こえない]。 1680 01:16:40,622 --> 01:16:41,784 >> デーヴィン:何次第です? 1681 01:16:41,784 --> 01:16:42,700 読者:CS50.course。 1682 01:16:42,700 --> 01:16:43,510 デーヴィン:右、ええ。 1683 01:16:43,510 --> 01:16:45,320 だからCS50.course。 1684 01:16:45,320 --> 01:16:48,770 あなたは物事を参照するので、道 JSONオブジェクトの内側にドットである。 1685 01:16:48,770 --> 01:16:53,114 >> 読者:あなたはまた、配列構文を使用することができます。 1686 01:16:53,114 --> 01:16:54,050 >> デーヴィン:OK、罰金。 1687 01:16:54,050 --> 01:16:57,544 >> GABE:また、CS50ブラケットを使用することができ、 引用符のような文字列、。 1688 01:16:57,544 --> 01:16:59,210 読者:私はそれがPHPと同じだと思う。 1689 01:16:59,210 --> 01:17:00,293 GABE:それは同じことだ。 1690 01:17:00,293 --> 01:17:02,487 デーヴィン:ファイン! 1691 01:17:02,487 --> 01:17:03,945 しかし、あなたは、この他の場所が表示されます。 1692 01:17:03,945 --> 01:17:08,990 1693 01:17:08,990 --> 01:17:10,480 うん、そう続ける。 1694 01:17:10,480 --> 01:17:13,330 これは私がちょうど言ったことである。 1695 01:17:13,330 --> 01:17:17,840 JavaScriptのjQueryの例にようにします。 1696 01:17:17,840 --> 01:17:19,440 だから、これは右、私のDOMのですか? 1697 01:17:19,440 --> 01:17:22,290 1698 01:17:22,290 --> 01:17:25,410 実際に素早くので、私が持っている 頭、Hello Worldの、ボディ。 1699 01:17:25,410 --> 01:17:26,160 私がボタンを持っている。 1700 01:17:26,160 --> 01:17:27,870 それは "、私をプッシュ」と言うので、私はそれをプッシュしたい。 1701 01:17:27,870 --> 01:17:29,745 そして、私は何かをしたい それがクリックさとき。 1702 01:17:29,745 --> 01:17:31,220 右、次の。 1703 01:17:31,220 --> 01:17:34,630 >> 右ので、これは私のJavaScriptのです。 1704 01:17:34,630 --> 01:17:37,790 だから、jQueryは単に簡単です JavaScriptを書くための方法。 1705 01:17:37,790 --> 01:17:40,920 だから、これ、と私は表示するつもりだ あなたが次の、jQueryのあることを行っている、 1706 01:17:40,920 --> 01:17:41,930 同じです。 1707 01:17:41,930 --> 01:17:43,990 そこで、彼らは同じことをします。 1708 01:17:43,990 --> 01:17:45,974 ただjQueryは少し楽になる傾向がある。 1709 01:17:45,974 --> 01:17:47,140 人々はより多くのそれのようにする傾向がある。 1710 01:17:47,140 --> 01:17:48,390 それは、多くの機能を持っています。 1711 01:17:48,390 --> 01:17:49,830 だから、人々はjQueryを使用する傾向がある。 1712 01:17:49,830 --> 01:17:53,270 あなたはすべて、最後のP-セットでjQueryを使用。 1713 01:17:53,270 --> 01:17:54,270 だから、これは何をしますか? 1714 01:17:54,270 --> 01:17:56,580 これは何をJavaScript--ます これは単なるJavaScriptのです。 1715 01:17:56,580 --> 01:17:57,430 これは何をしますか? 1716 01:17:57,430 --> 01:18:00,600 1717 01:18:00,600 --> 01:18:03,450 それは何をしますか? 1718 01:18:03,450 --> 01:18:04,890 >> したがって、最初、ウィンドウのonloadを参照してください。 1719 01:18:04,890 --> 01:18:05,390 右? 1720 01:18:05,390 --> 01:18:06,640 だから我々はその前に表示されませんでした。 1721 01:18:06,640 --> 01:18:09,380 だから、これは待つつもりされている ウィンドウ全体がロードされるまで。 1722 01:18:09,380 --> 01:18:12,770 だから、まで待つつもりだ HTML、すべての画像のロード 1723 01:18:12,770 --> 01:18:13,770 それが何かを行う前に。 1724 01:18:13,770 --> 01:18:16,050 それでは、私たちのDOMがロードされているとしましょう​​。 1725 01:18:16,050 --> 01:18:17,270 すべてがあります。 1726 01:18:17,270 --> 01:18:19,080 次に何が起こるだろう? 1727 01:18:19,080 --> 01:18:19,922 うん? 1728 01:18:19,922 --> 01:18:22,880 >> 観客は:ボタンが表示されます。 1729 01:18:22,880 --> 01:18:25,201 >> デーヴィン:ボタンがすでにあります。 1730 01:18:25,201 --> 01:18:26,700 うん、まだそこにボタンの。 1731 01:18:26,700 --> 01:18:31,190 しかし、これは、言おうとしている [OK]を、私はボタンをクリックすると、 1732 01:18:31,190 --> 01:18:33,650 そうボタンはすでにだ そこに、そのHTMLタグのように。 1733 01:18:33,650 --> 01:18:35,980 待って、実際に素早く戻る。 1734 01:18:35,980 --> 01:18:39,470 このタグは、右右ここにある すでにボタンになるだろう。 1735 01:18:39,470 --> 01:18:40,810 ボタンが既にあります。 1736 01:18:40,810 --> 01:18:44,120 しかし、その後は、JavaScript タグ、右ここに、 1737 01:18:44,120 --> 01:18:46,160 それはOK、私が欲しい、と言う IDによって要素を取得するには、 1738 01:18:46,160 --> 01:18:50,300 そのように、検索ボタンだけでOK、私が欲しい、と言う そのボタンには、この変数をマッピングする。 1739 01:18:50,300 --> 01:18:53,120 だから、その変数だけです そのボタンにアクセスするための簡単​​な方法。 1740 01:18:53,120 --> 01:18:57,300 私はそれをクリックした場合、私は、[OK]を、言う ボタン、私はその要素をクリックした場合ので、 1741 01:18:57,300 --> 01:18:59,560 そしてこの要素が指し ボタン、私はそれをクリックすると、 1742 01:18:59,560 --> 01:19:00,875 その後私は、関数を呼び出したい。 1743 01:19:00,875 --> 01:19:03,500 ここでは、これらの匿名の一つです 私たちが話していた機能。 1744 01:19:03,500 --> 01:19:04,840 >> ただ、いくつかの関数を呼び出す。 1745 01:19:04,840 --> 01:19:08,840 その関数の内部では、基本的に 私たちは多くのことを見てきたもので、警告。 1746 01:19:08,840 --> 01:19:10,477 あなたは、検索ボタンをクリックします。 1747 01:19:10,477 --> 01:19:12,060 それは基本的にボタンを持っているつもりだ。 1748 01:19:12,060 --> 01:19:13,040 あなたはそれをクリックします。 1749 01:19:13,040 --> 01:19:14,040 あなたは、そのアラートを取得します。 1750 01:19:14,040 --> 01:19:14,850 X外。 1751 01:19:14,850 --> 01:19:15,754 それでおしまい。 1752 01:19:15,754 --> 01:19:16,254 うん? 1753 01:19:16,254 --> 01:19:21,980 >> 読者:だから、スクリプトを配置する場合 [聞こえない]、あなたのHTML内のスクリプトタグ? 1754 01:19:21,980 --> 01:19:24,300 >> デーヴィン:あなたはスクリプトを置くことができます 頭の中で、タグストレート 1755 01:19:24,300 --> 01:19:30,667 あなたはこのonloadイベントを持っているので。 1756 01:19:30,667 --> 01:19:32,000 それはあなたのクリックを持っていることでもあります。 1757 01:19:32,000 --> 01:19:34,166 だから、まで待つつもりだ あなたが何かをクリックしてください。 1758 01:19:34,166 --> 01:19:37,470 しかし、onloadイベントは作るために、念のためにある あなたのHTMLに必ずすべてのロード 1759 01:19:37,470 --> 01:19:38,170 あらかじめ。 1760 01:19:38,170 --> 01:19:39,247 うん? 1761 01:19:39,247 --> 01:19:40,330 あなたが何かを言いたい? 1762 01:19:40,330 --> 01:19:41,080 >> GABE:[聞こえない]。 1763 01:19:41,080 --> 01:19:42,485 デーヴィン:うん。 1764 01:19:42,485 --> 01:19:45,426 >> 聴衆:だからのonloadことを回避する 変数検索ボタンを定義する 1765 01:19:45,426 --> 01:19:49,930 ただのdocument.getElementByIdを言って 検索ボタンドット[聞こえない]。 1766 01:19:49,930 --> 01:19:52,320 >> デーヴィン:確かに、しかしその後 あなたの文字列は、単に巨大な取得します。 1767 01:19:52,320 --> 01:19:55,553 正確には、これはただのです ええ、あなたのためにそれを容易にする。 1768 01:19:55,553 --> 01:19:56,053 はい? 1769 01:19:56,053 --> 01:19:57,886 >> 読者:私たちはやった window.onloadのを作成しますか? 1770 01:19:57,886 --> 01:19:58,951 またはdocument.ready? 1771 01:19:58,951 --> 01:20:00,590 >> デーヴィン:はい、あります。 1772 01:20:00,590 --> 01:20:02,094 はい、私はそこにチェックされている。 1773 01:20:02,094 --> 01:20:03,710 >> GABE:彼らは気にしないために。 1774 01:20:03,710 --> 01:20:06,970 >> デーヴィン:OK、私は行くよ とにかくあなたを伝えるために。 1775 01:20:06,970 --> 01:20:11,005 だから、基本的には、単に一般的で、そのように window.onloadのは、すべて、あなたのDOMまで待機 1776 01:20:11,005 --> 01:20:12,180 あなたのHTML、ロードされます。 1777 01:20:12,180 --> 01:20:13,513 それはあなたのイメージの負荷まで待機。 1778 01:20:13,513 --> 01:20:14,930 これは、すべてのものがロードされるまで待機します。 1779 01:20:14,930 --> 01:20:18,410 document.ready、それだけで あなたのDOMがロードされるまで待機します。 1780 01:20:18,410 --> 01:20:22,190 HTMLは、一度、すべてそこになると あなたのDOMがある、実行を開始します。 1781 01:20:22,190 --> 01:20:23,400 それは唯一の違いです。 1782 01:20:23,400 --> 01:20:24,700 >> GABE:ここにクイック健全性チェック。 1783 01:20:24,700 --> 01:20:29,060 だから、これは一種の見ることができます コー​​ド行のように、右? 1784 01:20:29,060 --> 01:20:33,600 それはwindow.onloadのだから 原料の束に等しい。 1785 01:20:33,600 --> 01:20:39,030 JavaScriptを読み取ると、この、真か 偽、関数が実行されます。 1786 01:20:39,030 --> 01:20:40,020 偽。 1787 01:20:40,020 --> 01:20:40,920 OK? 1788 01:20:40,920 --> 01:20:44,470 ここでは何が起こるかは、あなただけ渡している この関数無名関数として 1789 01:20:44,470 --> 01:20:45,300 window.onloadのように。 1790 01:20:45,300 --> 01:20:48,480 その後ときに起こっている 実際に実行取得するには? 1791 01:20:48,480 --> 01:20:49,600 ときに、ウィンドウがロードされます。 1792 01:20:49,600 --> 01:20:50,420 それはイベントです。 1793 01:20:50,420 --> 01:20:52,460 だから、私たちがしているジュースtのことだ 右、それ以前の話? 1794 01:20:52,460 --> 01:20:54,580 だから、イベントが発生したとき、 機能が起こる。 1795 01:20:54,580 --> 01:20:55,746 onclickのと同じこと。 1796 01:20:55,746 --> 01:20:59,510 1797 01:20:59,510 --> 01:21:03,130 >> デーヴィン:OK、誰かが取ったので、 離れてdocument.ready。 1798 01:21:03,130 --> 01:21:04,698 しかし、これは正確なsame--になります 1799 01:21:04,698 --> 01:21:06,864 読者:ドル記号、 それはdocument.readyです。 1800 01:21:06,864 --> 01:21:07,710 それはショートカットです。 1801 01:21:07,710 --> 01:21:08,501 >> デーヴィン:ああ、それは何ですか? 1802 01:21:08,501 --> 01:21:10,880 1803 01:21:10,880 --> 01:21:15,500 [OK]を、ので、この手段 document.ready、ショートカット。 1804 01:21:15,500 --> 01:21:19,660 しかし、これはwindow.onloadのと同じです その小さな違いを除いて 1805 01:21:19,660 --> 01:21:20,680 私は約あなたに言った。 1806 01:21:20,680 --> 01:21:21,870 そして、これはjQueryのです。 1807 01:21:21,870 --> 01:21:25,190 だから、これはまったく同じです。 これは、JavaScriptでthing--。 1808 01:21:25,190 --> 01:21:29,500 これは、一部の人々がそれを考えるjust--される より軽量、洗練されたバージョンなど 1809 01:21:29,500 --> 01:21:32,370 それはたくさんの機能を持ってい ことは、おそらく使用することがあります。 1810 01:21:32,370 --> 01:21:34,500 だから、これはまったく同じことを行います。 1811 01:21:34,500 --> 01:21:37,110 >> だから、物事は一種の指摘する。 1812 01:21:37,110 --> 01:21:40,364 そこで、他の例では、我々 のdocument.getElementByIdを持っていた、 1813 01:21:40,364 --> 01:21:42,280 私たちはこの長いを持っていた 取得するために起こっている文字列 1814 01:21:42,280 --> 01:21:44,290 それが持っている任意のIDによって要素。 1815 01:21:44,290 --> 01:21:46,470 それは右こここの呼び出しによって置き換えだ。 1816 01:21:46,470 --> 01:21:50,860 ですから、ドル記号を参照してください。 あなたが引用、ハッシュタグを参照してください。 1817 01:21:50,860 --> 01:21:52,370 ハッシュタグは常にセレクタです。 1818 01:21:52,370 --> 01:21:54,730 それはOK、これはIDとしなければならない、と言う。 1819 01:21:54,730 --> 01:21:56,120 クラスのセレクタは何ですか? 1820 01:21:56,120 --> 01:21:57,190 >> 読者:ドット。 1821 01:21:57,190 --> 01:21:57,960 >> デーヴィン:ドット、右。 1822 01:21:57,960 --> 01:22:01,950 あなただけのつもりなら タグを選択、それは何ですか? 1823 01:22:01,950 --> 01:22:03,310 それはまさに、ちょうどタグです。 1824 01:22:03,310 --> 01:22:05,560 そして、あなたにも、ここでそれを使用することができます。 1825 01:22:05,560 --> 01:22:08,560 >> GABE:そしてタグで、我々は次のように意味 DIV、例えば、または頭。 1826 01:22:08,560 --> 01:22:11,500 >> デーヴィン:または身体またはpまたは そのような何か、うん。 1827 01:22:11,500 --> 01:22:14,390 だからここに、[OK]を、代わりに言って のdocument.getElementById、 1828 01:22:14,390 --> 01:22:16,500 これはちょうどまったく同じことです。 1829 01:22:16,500 --> 01:22:17,990 ちょうどjQueryのでは、より短いです。 1830 01:22:17,990 --> 01:22:19,860 だから、簡単です。 1831 01:22:19,860 --> 01:22:23,420 それでは、これ以上のonclickの、ちょうどをクリックします。 1832 01:22:23,420 --> 01:22:26,320 jQueryの関数は、この関数を呼び出す。 1833 01:22:26,320 --> 01:22:27,580 アラートはまったく同じです。 1834 01:22:27,580 --> 01:22:29,452 だから、少しだ 小さい、または少し 1835 01:22:29,452 --> 01:22:32,410 短く、少しbit--人々は思う それは書くことが少し簡単だ、 1836 01:22:32,410 --> 01:22:34,600 理解し少し簡単に。 1837 01:22:34,600 --> 01:22:35,640 しかし、これはjQueryのです。 1838 01:22:35,640 --> 01:22:37,887 多くの人は少しを得る 少し混乱と心配して 1839 01:22:37,887 --> 01:22:40,220 そして彼らは、OK、jQueryを考える JavaScriptのとは異なります。 1840 01:22:40,220 --> 01:22:42,136 私はこれらを覚えておく必要が 二つの異なるもの。 1841 01:22:42,136 --> 01:22:42,740 そうではありません。 1842 01:22:42,740 --> 01:22:45,315 私が意味する、それは別の構文です。 1843 01:22:45,315 --> 01:22:46,970 しかし、jQueryはJavaScriptのです。 1844 01:22:46,970 --> 01:22:50,050 それは一見だけだ より良いバージョンその 1845 01:22:50,050 --> 01:22:51,967 への簡単な場合があります 人々が使用することを理解しています。 1846 01:22:51,967 --> 01:22:53,716 GABE:ええ、ようにする 正直、そのドル記号 1847 01:22:53,716 --> 01:22:57,240 あなたはjQueryのに見ている、それはちょうどだ jQueryが定義する関数の名前。 1848 01:22:57,240 --> 01:22:58,614 それは特別な何かを持っていません。 1849 01:22:58,614 --> 01:23:03,140 これは、関数の名前だけだが、 ちょうどあなたがドル記号を定義することができますように。 1850 01:23:03,140 --> 01:23:05,670 >> デーヴィン:うん、そうこれについて話しました。 1851 01:23:05,670 --> 01:23:06,680 いくつかの有用なもの。 1852 01:23:06,680 --> 01:23:10,414 私は古いクイズを振り返っていた。 1853 01:23:10,414 --> 01:23:13,080 過去のカップルのクイズでは、彼らはきた このようなものを使用する必要がありました。 1854 01:23:13,080 --> 01:23:15,230 だから、そう、document.ready すべてのことを確認してください 1855 01:23:15,230 --> 01:23:17,410 あなたは物事を始める前にロード。 1856 01:23:17,410 --> 01:23:20,120 IDを選択、または選択 クラス、それだけだろう 1857 01:23:20,120 --> 01:23:24,020 いくつかのクラス、終了引用符に点在して引用すること。 1858 01:23:24,020 --> 01:23:26,580 あなたがしているので、もし、提出 フォームとコールを提出 1859 01:23:26,580 --> 01:23:28,830 フォーム後にこの機能が提出する。 1860 01:23:28,830 --> 01:23:34,210 価値、それでは、私はフォームを持っていたとしましょう 提出、ユーザ名などの、電子メール、 1861 01:23:34,210 --> 01:23:34,950 なんでも。 1862 01:23:34,950 --> 01:23:36,010 私は、テキストボックスを持っていた。 1863 01:23:36,010 --> 01:23:37,670 だから私は、そのテキストボックスに入力しています。 1864 01:23:37,670 --> 01:23:42,170 さて、あなたは値を取得したい場合 そのテキストボックスの外には、ドットヴァルを使用しています。 1865 01:23:42,170 --> 01:23:44,050 そして、ダウンここでは、 ドットHTMLは同じです 1866 01:23:44,050 --> 01:23:47,710 文書ドットのようなものです getElementByIdをドットinnerHTMLプロパティ。 1867 01:23:47,710 --> 01:23:50,890 だから、返すために起こっている あなたそのIDからHTML。 1868 01:23:50,890 --> 01:23:55,080 ここでは、あなただけのいくつかを使用 IDまたは何ドットHTML。 1869 01:23:55,080 --> 01:23:56,930 つまり、その要素からHTMLを取得します。 1870 01:23:56,930 --> 01:24:00,130 その後、それを変更したい場合 HTMLは、あなたはそれに何かを渡すことができます。 1871 01:24:00,130 --> 01:24:05,600 だから、その後、ドット、HTMLのように、と思います 内側に、引用符、新しいHTMLまたは何か。 1872 01:24:05,600 --> 01:24:07,490 >> GABE:OK、AJAXそう。 1873 01:24:07,490 --> 01:24:10,347 私は本当に理解したい AJAX本当によく。 1874 01:24:10,347 --> 01:24:12,430 だから私はあなたたちがしたい 本当によくAJAXを理解しています。 1875 01:24:12,430 --> 01:24:14,221 あなたがしなければため、 あなたはかなりつもりだ 1876 01:24:14,221 --> 01:24:16,810 そのすべてを理解するために HTTPと関係があり、PHP、 1877 01:24:16,810 --> 01:24:21,080 それはすべてのためのJavaScript AJAXで一緒に来る。 1878 01:24:21,080 --> 01:24:25,130 AJAXは言語ではありません。 1879 01:24:25,130 --> 01:24:27,000 AJAXは技術です。 1880 01:24:27,000 --> 01:24:31,690 そして、それはさまざまなツールの多くを使用しています。 1881 01:24:31,690 --> 01:24:35,090 AJAXの略 非同期JavaScriptのXML。 1882 01:24:35,090 --> 01:24:36,730 だから、方法、言語、データ。 1883 01:24:36,730 --> 01:24:40,610 >> 我々が使用するので、メインの言語 AJAXですべてをトリガーする 1884 01:24:40,610 --> 01:24:42,830 そして、すべてを処理する 後でJavaScriptのです。 1885 01:24:42,830 --> 01:24:45,160 それが関係する理由です JavaScriptのに非常に近い。 1886 01:24:45,160 --> 01:24:49,810 そして、非同期である 我々はそれをしないので、 1887 01:24:49,810 --> 01:24:51,980 一斉に私たちがページをロードしているとき。 1888 01:24:51,980 --> 01:24:57,190 これは、私たちができる事である 並行して種類の物事を行う。 1889 01:24:57,190 --> 01:24:59,725 背後にある主な考え方 AJAXはあなたが欲しいということです 1890 01:24:59,725 --> 01:25:02,170 それはいくつかの特定の情報を取得する。 1891 01:25:02,170 --> 01:25:06,450 たとえば、あなたが新しいを入力している ユーザー名を登録したユーザ名、 1892 01:25:06,450 --> 01:25:08,520 私のユーザー名はABC123です。 1893 01:25:08,520 --> 01:25:11,671 その後、終了時の フォームには、Submitをクリックする必要があります。 1894 01:25:11,671 --> 01:25:14,420 そして、それは、サーバに行かなければならなかった その後、データベース内かどうかを確認 1895 01:25:14,420 --> 01:25:15,594 ABC123既に存在する。 1896 01:25:15,594 --> 01:25:18,510 それはすでにありますなら、それは、言う 既にデータベース内のユーザー名。 1897 01:25:18,510 --> 01:25:21,010 そして彼らは、あなたが入力する必要が フォーム全体から再び。 1898 01:25:21,010 --> 01:25:23,110 そして、それは本当に、本当に悪かった。 1899 01:25:23,110 --> 01:25:25,440 >> そして、人々は言う、 [OK]を、なぜちょうど私達はできない 1900 01:25:25,440 --> 01:25:29,560 ちょうどチェックする小さなHTTPリクエストを行う このユーザーがデータベースにあるかどうかを確認する 1901 01:25:29,560 --> 01:25:32,080 ユーザーがしなければならなかったの前に フォーム全体を送信しますか? 1902 01:25:32,080 --> 01:25:36,350 だから、例えば、 ユーザーは、ABC123入力して終了した 1903 01:25:36,350 --> 01:25:39,660 ちょうどサーバーに少し手放す 少しだけ取得真または偽 1904 01:25:39,660 --> 01:25:43,080 かどうかを確認するために、サーバーから それは、有効なユーザー名またはではありません。 1905 01:25:43,080 --> 01:25:49,250 OK、それはメインの一つだそう 今日では、AJAXの使用はまだ。 1906 01:25:49,250 --> 01:25:52,130 >> デーヴィン:だから実際に素早く、中 jQueryの中でAjax呼び出し、 1907 01:25:52,130 --> 01:25:54,770 あなたがいることを意味する可能性があり それは、同期になりたい。 1908 01:25:54,770 --> 01:25:56,330 あなたはこれを行うべきではありません。 1909 01:25:56,330 --> 01:25:57,640 しかし、あなたはそれを行うことができます。 1910 01:25:57,640 --> 01:25:59,277 あなたがいることをやったなら、何が起こるでしょうか? 1911 01:25:59,277 --> 01:26:01,610 さて、例えば、ときにしている ニュースまたは何を得て、 1912 01:26:01,610 --> 01:26:05,464 お使いのブラウザはただ待つために起こっている その全体の呼び出しが完了するまで 1913 01:26:05,464 --> 01:26:08,130 代わりにあなたが他の何せるの 右あなたがそれをクリックした後の事。 1914 01:26:08,130 --> 01:26:14,560 1915 01:26:14,560 --> 01:26:17,115 >> GABE:それはもう渡していない。 1916 01:26:17,115 --> 01:26:19,681 何てことだ。 1917 01:26:19,681 --> 01:26:20,180 ごめんなさい! 1918 01:26:20,180 --> 01:26:22,810 1919 01:26:22,810 --> 01:26:23,601 うん。 1920 01:26:23,601 --> 01:26:25,350 「過去には、 クライアントの要求に必要な 1921 01:26:25,350 --> 01:26:26,840 ウェブサイトの全コンテンツ」 1922 01:26:26,840 --> 01:26:28,210 それは私が言ったものだ。 1923 01:26:28,210 --> 01:26:30,070 それは私たちが送信することができます 追加のGETまたはPOST 1924 01:26:30,070 --> 01:26:32,140 なくてもリクエスト 私たちのブラウザをリロードする。 1925 01:26:32,140 --> 01:26:34,806 だから、一日の終わりに、私たちはしている 実際のHTTPリクエストを作成 1926 01:26:34,806 --> 01:26:35,740 ここではJavaScriptを使用して。 1927 01:26:35,740 --> 01:26:39,700 前なので、私たちは、JavaScriptを使用 すでに来たHTMLを変更します。 1928 01:26:39,700 --> 01:26:43,110 そして今、我々は、インターフェイスにそれを使用することができます Webサーバと同様に。 1929 01:26:43,110 --> 01:26:46,140 これが起こる方法 私たちはクライアントがある。 1930 01:26:46,140 --> 01:26:47,340 デーヴィンはクライアントです。 1931 01:26:47,340 --> 01:26:50,797 そして、彼はすべてのJavaScriptを持って HTMLはダムであるため、実行されている。 1932 01:26:50,797 --> 01:26:51,630 JavaScriptがスマートです。 1933 01:26:51,630 --> 01:26:54,690 だから、デーヴィンデーヴィンは、彼のスマートを持って 一部と彼のダム部分。 1934 01:26:54,690 --> 01:26:57,590 彼は今、彼のスマートな部分を使用するつもりだ。 1935 01:26:57,590 --> 01:27:00,860 彼はJavaScriptを使用するように起こっている リクエストは、例えば、 1936 01:27:00,860 --> 01:27:04,340 ABC123は内にあるかどうか データベースまたはしない。 1937 01:27:04,340 --> 01:27:08,450 >> だからデーヴィン、お願い、あなただけ 私にHTTPリクエストを送信する。 1938 01:27:08,450 --> 01:27:09,197 ありがとう。 1939 01:27:09,197 --> 01:27:10,530 そこで彼は、単にHTTPリクエストを送信しました。 1940 01:27:10,530 --> 01:27:11,270 あなたはそれを参照してください? 1941 01:27:11,270 --> 01:27:14,700 そして、それはちょうど同じ方法だ 任意のHTTPリクエストが送信される。 1942 01:27:14,700 --> 01:27:16,830 ブラウザ、グーグル クロームか何か、である 1943 01:27:16,830 --> 01:27:19,570 デーヴィンのことを見に行く HTTPリクエストを送信しようとし、 1944 01:27:19,570 --> 01:27:20,930 少しHM支援するつもり。 1945 01:27:20,930 --> 01:27:23,950 そして、それは行くために起こっている サーバーへのすべての方法。 1946 01:27:23,950 --> 01:27:27,370 さて、サーバが持っているとしている ここでPHP、またはその他の言語。 1947 01:27:27,370 --> 01:27:29,990 通常のHTTPリクエストで好きです。 1948 01:27:29,990 --> 01:27:31,950 これはかなり通常のHTTPリクエストです。 1949 01:27:31,950 --> 01:27:33,658 >> そして、サーバー [OK]を、言うために起こっている、 1950 01:27:33,658 --> 01:27:37,270 デーヴィンは私がするかどうかをチェックしたい このABC123はデータベースにあります。 1951 01:27:37,270 --> 01:27:38,310 モデルに話を移動します。 1952 01:27:38,310 --> 01:27:41,310 モデルは、それはしないと言っている。 ABC123は、優れたユーザ名です。 1953 01:27:41,310 --> 01:27:47,940 そして、Webサーバがしようとしている ファイルのいくつかのフォームをレンダリングするためにPHPを使用。 1954 01:27:47,940 --> 01:27:52,280 これは文字通り、単にファイル可能性があり すなわち、NO "その中に「はい」が含まれ、または、 1955 01:27:52,280 --> 01:27:53,315 またはそのような何か。 1956 01:27:53,315 --> 01:27:54,190 これは、任意のファイルである可能性があります。 1957 01:27:54,190 --> 01:27:57,080 >> 私がするつもりのようにそれは可能性が デーヴィンにアヒルの写真を送る 1958 01:27:57,080 --> 01:28:01,200 それは、データベース内の場合 ハムスターの写真を送る 1959 01:28:01,200 --> 01:28:02,420 それがデータベースにない場合は。 1960 01:28:02,420 --> 01:28:04,294 それは一種のだろう ダムが、それは動作します。 1961 01:28:04,294 --> 01:28:07,030 [OK]をので、私はデーヴィンにアヒルを送る。 1962 01:28:07,030 --> 01:28:08,150 デーヴィンはアヒルを得た。 1963 01:28:08,150 --> 01:28:13,330 そして今、誰が起こっている アヒルを処理するには? 1964 01:28:13,330 --> 01:28:16,390 デーヴィンのスマート一部再び、 右、JavaScriptはそう? 1965 01:28:16,390 --> 01:28:18,620 JavaScriptが送信された リクエスト、およびJavaScript 1966 01:28:18,620 --> 01:28:22,300 要求を受信しようとしている と何らかの形でそれを解釈する。 1967 01:28:22,300 --> 01:28:26,630 >> そして、この意味では、それがために起こっている その後、私は良いんだアヒル場​​合には、[OK]を、言う。 1968 01:28:26,630 --> 01:28:30,770 ハムスターなら、私は行くよ 、いや、ユーザー名は既に言って 1969 01:28:30,770 --> 01:28:31,970 データベースに存在する。 1970 01:28:31,970 --> 01:28:33,845 しかし、通常、あなたがわからない アヒルを送るつもり。 1971 01:28:33,845 --> 01:28:36,740 あなたが送信するつもりだ 少し賢く何か。 1972 01:28:36,740 --> 01:28:40,320 そして、私たちが使用して、XMLです。 1973 01:28:40,320 --> 01:28:42,690 そして、もっと最近になって、私たちはJSONを使用しています。 1974 01:28:42,690 --> 01:28:45,629 JSONは単にJavaScriptのです オブジェクトの表記、どの 1975 01:28:45,629 --> 01:28:47,670 あなたが得る基本的に 全体JavaScriptオブジェクト。 1976 01:28:47,670 --> 01:28:50,820 そして、あなたは同じように、ファイルに入れて あなたたちが見たことCS50オブジェクト。 1977 01:28:50,820 --> 01:28:53,090 あなたはファイルに入れて、 あなたはデーヴィンにそれを送る。 1978 01:28:53,090 --> 01:28:55,850 >> この場合、私はだろう JavaScriptオブジェクトを作る 1979 01:28:55,850 --> 01:28:59,570 ちょうど、ユーザーが存在する、イエスと言う。 1980 01:28:59,570 --> 01:29:01,630 あるいは、ユーザーは、存在します。 1981 01:29:01,630 --> 01:29:02,810 そして、彼にそれを送り返す。 1982 01:29:02,810 --> 01:29:03,830 そして、なぜJSON? 1983 01:29:03,830 --> 01:29:07,330 人のため 誰がこれは受けだ 1984 01:29:07,330 --> 01:29:10,030 JavaScriptを使用するつもり 応答を処理する。 1985 01:29:10,030 --> 01:29:14,970 そして、JavaScriptがいるのでとてもうまく機能 それは、JavaScriptオブジェクト表記と呼ばれています。 1986 01:29:14,970 --> 01:29:15,470 右? 1987 01:29:15,470 --> 01:29:19,660 そこで彼は、単に関数を呼び出して、取得することができます 応答からこの素敵なオブジェクト。 1988 01:29:19,660 --> 01:29:22,890 そして、彼がいるかどうかを知るために起こっている そのユーザーがデータベースにまたはではありません。 1989 01:29:22,890 --> 01:29:25,230 >> だから、あなたはそれのすべてが来て、参照してください。 一緒にWebサーバで、 1990 01:29:25,230 --> 01:29:28,450 その後のリクエストに1 HTTPがあります と1 HTTPレスポンスとすべてのもの。 1991 01:29:28,450 --> 01:29:30,600 だから、必ずあなたたちを作る このAJAX呼び出しを理解する 1992 01:29:30,600 --> 01:29:37,260 それはあなたがすべて理解するのに役立ちますので、 我々が話している概念の。 1993 01:29:37,260 --> 01:29:40,260 >> だからここに例を示します。 jQueryを使ってAJAXの。 1994 01:29:40,260 --> 01:29:42,130 そしてここで、我々は、get JSONで行う。 1995 01:29:42,130 --> 01:29:45,660 だから我々は取得しようとしていない ここに猫、またはアヒルのイメージ。 1996 01:29:45,660 --> 01:29:48,110 私たちは、JSONファイルを取得しようとしている。 1997 01:29:48,110 --> 01:29:51,184 そして、我々はまで待って それはドットが行われ、完了です。 1998 01:29:51,184 --> 01:29:52,850 それは私が応答を待っていることを意味します。 1999 01:29:52,850 --> 01:29:54,180 それは少し時間がかかる場合があります。 2000 01:29:54,180 --> 01:29:56,360 その後、あなたは少しロードを参照してください。 2001 01:29:56,360 --> 01:29:59,340 あなたのウェブサイトでそれをしたい場合。 2002 01:29:59,340 --> 01:30:01,440 だからドット行われ、その後、どのような それが終了したときに起こりますか? 2003 01:30:01,440 --> 01:30:04,040 あなたは匿名で渡す この関数は、ちょうど私達が前に見たように。 2004 01:30:04,040 --> 01:30:07,800 行われ、イベントであるため、単に マウスをクリックするなど、または何でも、 2005 01:30:07,800 --> 01:30:08,710 jQueryのための。 2006 01:30:08,710 --> 01:30:13,710 だから、この関数に渡す データ、テキスト、ステータス、およびjqXHR。 2007 01:30:13,710 --> 01:30:15,790 そして、基本的には、それはだ ただ、いくつかの変数 2008 01:30:15,790 --> 01:30:22,160 あなたが持っているために後で使用することができます HTTP要求のステータス、 2009 01:30:22,160 --> 01:30:24,470 それが起こっているデータ あなたに戻って送信します。 2010 01:30:24,470 --> 01:30:28,740 だから、あなたは後でそれを解釈することができます そしてそれで意味のある何かをする。 2011 01:30:28,740 --> 01:30:30,240 そして、それが失敗した場合、それはときに失敗することがあります? 2012 01:30:30,240 --> 01:30:33,780 さて、時は、HTTPリクエストを提供します あなたそのような500か何か。 2013 01:30:33,780 --> 01:30:37,420 その後、それはあなたに伝えるために起こっている 状況、故障したどのような種類の、 2014 01:30:37,420 --> 01:30:38,420 そしてあらゆる種類のもの。 2015 01:30:38,420 --> 01:30:40,630 あなたは確認する必要があります 両方のケースを処理するために、 2016 01:30:40,630 --> 01:30:42,770 そうでなければプログラムが狂う。 2017 01:30:42,770 --> 01:30:45,820 >> デーヴィン:そんなわけで、これは正確である あなたがあなたの最後のP-セットで見たもの。 2018 01:30:45,820 --> 01:30:49,720 実際のAJAX呼び出しは、GET JSONである。 2019 01:30:49,720 --> 01:30:50,587 つまり、呼び出しです。 2020 01:30:50,587 --> 01:30:52,920 そして、ドット行うにはのようなものです それが成功の場合、それはチェックします。 2021 01:30:52,920 --> 01:30:55,620 それが成功した場合は、必要 データで何かをすることができません。 2022 01:30:55,620 --> 01:30:59,290 あなたはそのから取り戻す JSON要求データ。 2023 01:30:59,290 --> 01:31:00,600 それはあなたが戻って得るものです。 2024 01:31:00,600 --> 01:31:04,470 つまり、あなたのp-セットから覚えていれば、 あなた方の多くは、データブラケットのようだった私 2025 01:31:04,470 --> 01:31:06,302 または何、ドットリンクまたはタイトル。 2026 01:31:06,302 --> 01:31:08,260 バック来るのが何であれ そのJSONから、何でも 2027 01:31:08,260 --> 01:31:11,020 フィールドは、そのJSONオブジェクトにあり それはあなたが戻って取得しているものだ。 2028 01:31:11,020 --> 01:31:12,394 データは、あなたが戻って取得しているものです。 2029 01:31:12,394 --> 01:31:15,510 テキストの状態、ちょうど何か あなたが何が起こったのかを知ることができます。 2030 01:31:15,510 --> 01:31:20,570 そして、jqXHRは、それはちょうどだ jQueryのXMLのHTTPリクエスト。 2031 01:31:20,570 --> 01:31:21,990 それはちょうど、オブジェクトのようなものだ。 2032 01:31:21,990 --> 01:31:23,932 そしてゲイブが言ったように、失敗する。 2033 01:31:23,932 --> 01:31:27,140 GABE:ABC123の私たちの小さな例では、 それは、データベース内の場合は、単にチェックする 2034 01:31:27,140 --> 01:31:32,260 または、データはあなたにものになるだろうではない データドットのユーザ名が存在する場合、どうなる、 2035 01:31:32,260 --> 01:31:37,720 あなたのPHPがために生成何これは あなたがデータドットのユーザ名は、その後、存在する場合 2036 01:31:37,720 --> 01:31:40,880 私は警告するつもりだ、ユーザー 名前がすでに存在しています。 2037 01:31:40,880 --> 01:31:44,300 そうでなければ、私はちょうどようにするつもりだ ユーザーがフォームに記入進む。 2038 01:31:44,300 --> 01:31:47,860 2039 01:31:47,860 --> 01:31:50,820 OK、セキュリティ、涼しい。 2040 01:31:50,820 --> 01:31:52,060 >> デーヴィン:私はしたいですか? 2041 01:31:52,060 --> 01:31:54,500 >> GABE:私はこの1つが好きです。 2042 01:31:54,500 --> 01:31:57,680 だから、見慣れ何か。 2043 01:31:57,680 --> 01:31:59,750 我々はほぼ完了です。 2044 01:31:59,750 --> 01:32:02,670 だから、これは一例で あなたたちは、クラスで見た。 2045 01:32:02,670 --> 01:32:04,860 あなたがここにargv1使用していた。 2046 01:32:04,860 --> 01:32:06,460 つまり、コマンドライン引数のようなものだ。 2047 01:32:06,460 --> 01:32:09,270 そして、我々はそのMEMコピーしている サイズ12のバッファに。 2048 01:32:09,270 --> 01:32:12,560 ここでの問題は何ですか? 2049 01:32:12,560 --> 01:32:13,660 バッファオーバーフロー! 2050 01:32:13,660 --> 01:32:15,400 我々は、サイズ12のバッファを有するからである。 2051 01:32:15,400 --> 01:32:18,400 argv1 20億の大きさがあるかもしれません。 2052 01:32:18,400 --> 01:32:19,960 私たちは、すべての境界チェックを行いません。 2053 01:32:19,960 --> 01:32:24,970 だから我々は多くのメモリをコピー可能性があります。 2054 01:32:24,970 --> 01:32:28,630 そして、我々は特にだろう これについては悪い。 2055 01:32:28,630 --> 01:32:32,600 私たちはのことは何を行う可能性 非常に、非常に、この場合に意味ですか? 2056 01:32:32,600 --> 01:32:33,278 はい? 2057 01:32:33,278 --> 01:32:36,528 読者:20億物事の一部 返し実行可能なコードが含まれています 2058 01:32:36,528 --> 01:32:38,127 [聞こえない]。 2059 01:32:38,127 --> 01:32:38,710 GABE:その通り。 2060 01:32:38,710 --> 01:32:41,110 だから、のようなものだ 人々が使用するもの 2061 01:32:41,110 --> 01:32:43,344 例えば、iPhoneを脱獄する。 2062 01:32:43,344 --> 01:32:44,260 そういうことだから。 2063 01:32:44,260 --> 01:32:48,610 あなただけのデバイスを作ることができるので あなたが好きなコードを実行する。 2064 01:32:48,610 --> 01:32:50,247 修正は、そのように修正が簡単です。 2065 01:32:50,247 --> 01:32:51,330 ちょうど境界を確認してください。 2066 01:32:51,330 --> 01:32:53,455 あなたはnullをチェックするため、 私たちは常にnullをチェックする 2067 01:32:53,455 --> 01:32:54,940 ときに我々は、文字列を扱っている。 2068 01:32:54,940 --> 01:32:57,840 そして、あなたが取る 文字列の長さの前に。 2069 01:32:57,840 --> 01:33:00,150 そして、文字列の場合 長さは、有効な文字列である 2070 01:33:00,150 --> 01:33:03,700 0内にある長さ、 そして12、我々は良いしている。 2071 01:33:03,700 --> 01:33:07,144 >> デーヴィン:あなたがのためにチェックしない場合 ヌル、実際に素早く、何が起こるのだろうか? 2072 01:33:07,144 --> 01:33:07,810 それはseg faultをします。 2073 01:33:07,810 --> 01:33:10,850 なぜそれが障害SEGのだろうか? 2074 01:33:10,850 --> 01:33:12,510 あなたがnullではstrlenを呼び出しているので。 2075 01:33:12,510 --> 01:33:13,010 GABE:うん。 2076 01:33:13,010 --> 01:33:16,490 2077 01:33:16,490 --> 01:33:19,630 1を使用して、真または偽 パスワードは良いアイデアです。 2078 01:33:19,630 --> 01:33:20,430 >> 読者:偽。 2079 01:33:20,430 --> 01:33:21,150 >> GABE:偽。 2080 01:33:21,150 --> 01:33:23,870 多くのパスワード、大きな、長いものを使用してください。 2081 01:33:23,870 --> 01:33:26,050 鍵のアイコンは、セキュリティを確保する。 2082 01:33:26,050 --> 01:33:27,080 >> 読者:偽。 2083 01:33:27,080 --> 01:33:27,749 >> GABE:偽。 2084 01:33:27,749 --> 01:33:28,790 それは何の意味もない。 2085 01:33:28,790 --> 01:33:30,480 それはちょうどアイコンだ。 2086 01:33:30,480 --> 01:33:32,824 SSLはから保護 中間者攻撃の男。 2087 01:33:32,824 --> 01:33:33,490 読者:偽。 2088 01:33:33,490 --> 01:33:34,110 GABE:偽。 2089 01:33:34,110 --> 01:33:35,355 [OK]を、ので、すべてのものがfalseです。 2090 01:33:35,355 --> 01:33:38,324 2091 01:33:38,324 --> 01:33:39,490 ニース。 2092 01:33:39,490 --> 01:33:40,220 [聞こえない] 2093 01:33:40,220 --> 01:33:42,500 これについて話をしたいですか? 2094 01:33:42,500 --> 01:33:43,259 あなたのターン。 2095 01:33:43,259 --> 01:33:45,050 デーヴィン:攻撃の種類、 真ん中の男。 2096 01:33:45,050 --> 01:33:47,134 中間者攻撃の男は何ですか? 2097 01:33:47,134 --> 01:33:48,050 読者:[聞こえない]。 2098 01:33:48,050 --> 01:33:51,437 2099 01:33:51,437 --> 01:33:54,020 デーヴィン:あなたが送信する場合、HTTP 要求は、彼らは正しい、これを行うだろうか? 2100 01:33:54,020 --> 01:33:57,890 しかし、あなたは、HTTPSを送信している場合、それら おそらくこれを実行することはできません。 2101 01:33:57,890 --> 01:33:59,952 ポイントがたくさんあり​​ます あなたの接続に沿って。 2102 01:33:59,952 --> 01:34:00,660 あなたは、ルータを持っている。 2103 01:34:00,660 --> 01:34:01,746 あなたは、DNSサーバーを持っている。 2104 01:34:01,746 --> 01:34:04,120 誰かが物理的にすることができる場合 あなたが送信しているか見て、 2105 01:34:04,120 --> 01:34:06,140 そう誰かがすることができます 実際にあなたとの間で取得し、 2106 01:34:06,140 --> 01:34:08,840 クライアント、およびサーバ、およびされている あなたが送信しているかを確認することができ、 2107 01:34:08,840 --> 01:34:10,298 これは、中間者攻撃の男です。 2108 01:34:10,298 --> 01:34:14,287 だから、あなたから取得しようとしているかを確認する サーバ、または悪化see--することができ、 2109 01:34:14,287 --> 01:34:16,620 あなたが見ることができるかもしれない クッキーやそのような何か。 2110 01:34:16,620 --> 01:34:19,290 >> 例えば、もしそうなら あなたは彼、SSLを使用していない 2111 01:34:19,290 --> 01:34:21,900 見ることができるかもしれない あなたのセッションIDクッキー。 2112 01:34:21,900 --> 01:34:25,460 そして、これはセッションハイジャックと呼ば​​れている 彼はあなたのIDクッキーを見ているので、 2113 01:34:25,460 --> 01:34:28,317 その後、彼はそれに行くことができます ウェブサイトとあなたをふりをする。 2114 01:34:28,317 --> 01:34:31,150 ただ、PHPで好きなので、覚えている 私達がログインしたときに、私たちは何をしますか? 2115 01:34:31,150 --> 01:34:33,340 私たちは、IDと同じセッションIDを設定する。 2116 01:34:33,340 --> 01:34:34,810 だから、あなたを識別します。 2117 01:34:34,810 --> 01:34:38,300 あなたのポートフォリオを見ることができる理由です としない、誰も他の人のポートフォリオ。 2118 01:34:38,300 --> 01:34:42,320 >> まあ、私はそのクッキーを取得することができていたら、 その後私はそのページにログインすることができます。 2119 01:34:42,320 --> 01:34:45,380 そして、私はちょうど自分のものを見ることができます とのものを購入して販売を開始。 2120 01:34:45,380 --> 01:34:46,800 だから、セッションハイジャックだ。 2121 01:34:46,800 --> 01:34:50,810 しかし、あなたはあなたのでto--できないようにする必要があり 中間者攻撃で男を使用することができます 2122 01:34:50,810 --> 01:34:52,290 彼らは、SSLを使用している場合であっても。 2123 01:34:52,290 --> 01:34:53,520 しかし、あなたのことができるようにはならない。 2124 01:34:53,520 --> 01:34:56,580 彼らは、SSLを使用している場合は、 あなたは、セッションハイジャックすることはできません。 2125 01:34:56,580 --> 01:34:58,927 なぜ? 2126 01:34:58,927 --> 01:35:01,135 それはすべて暗号化さだから、 右?それは暗号化されているかの、 2127 01:35:01,135 --> 01:35:03,509 と私はまだで男だ 真ん中には、私はまだあなたのデータを取得する。 2128 01:35:03,509 --> 01:35:04,279 それはいいです。 2129 01:35:04,279 --> 01:35:05,070 しかし、それは暗号化だ。 2130 01:35:05,070 --> 01:35:07,750 だから私は実際にそれを使用することはできません。 2131 01:35:07,750 --> 01:35:09,840 だから、2だ。 2132 01:35:09,840 --> 01:35:11,544 >> 実際に素早く、クロスサイトリクエストフォージェリ。 2133 01:35:11,544 --> 01:35:13,960 リンクがあるかどうそれはちょうどだ そのリンクは何かを 2134 01:35:13,960 --> 01:35:14,890 あなたはそれが何をすべきとは思わないこと。 2135 01:35:14,890 --> 01:35:18,150 例えばそう、リンクがあった場合 株式を購入したり、株式を売却しようとして、 2136 01:35:18,150 --> 01:35:19,360 そしてあなたはそれを知りませんでした。 2137 01:35:19,360 --> 01:35:22,040 あなたは、リンクをクリックした 買って、リクエストを送信した 2138 01:35:22,040 --> 01:35:24,240 か何かを販売されている あなたは何を意味するものではありませんでした。 2139 01:35:24,240 --> 01:35:25,120 それはそれだ。 2140 01:35:25,120 --> 01:35:30,720 >> クロスサイトスクリプティング、ここではそのように、 あなたは、変数q経由で渡している 2141 01:35:30,720 --> 01:35:33,510 代わりにいくつかの種類を渡すの 価値が、多分qは名前のようなものです。 2142 01:35:33,510 --> 01:35:36,560 だからではなく、Qの等号を渡す デーヴィンまたはそのような何か、 2143 01:35:36,560 --> 01:35:38,740 あなたは、HTMLを使用しない場合 特殊な文字、あなたの場合 2144 01:35:38,740 --> 01:35:43,100 それはだことを確認するために、これをエスケープしない [OK]を、私は代わりに渡すことができ、 2145 01:35:43,100 --> 01:35:46,910 私が言っているのは、ここで言うてみましょう 印刷またはそのような何か、 2146 01:35:46,910 --> 01:35:51,070 その後私はここでスクリプト呼び出しを渡すことができます。 2147 01:35:51,070 --> 01:35:53,140 >> それでは、代わりに 単に変数を取得する、 2148 01:35:53,140 --> 01:35:54,960 私は、このスクリプトの呼び出しを実行します。 2149 01:35:54,960 --> 01:35:57,065 そのスクリプト内部だから、 呼び出し、それが何をするのでしょうか? 2150 01:35:57,065 --> 01:36:00,190 ドキュメントのドット位置、それがために起こっている ドキュメントの場所を変更する。 2151 01:36:00,190 --> 01:36:02,290 だから私はリダイレクトするつもりです どこか別の場所へ。 2152 01:36:02,290 --> 01:36:08,170 それは、悪いやつで呼ばれています この例で、非常に良い。 2153 01:36:08,170 --> 01:36:10,536 言葉を考えることができなかった。 2154 01:36:10,536 --> 01:36:12,410 そして、何があってもだ 悪くは私が行くよということです 2155 01:36:12,410 --> 01:36:16,832 一部でその後設定されたCookie、へ 私は、このウェブサイトを持っている変数。 2156 01:36:16,832 --> 01:36:19,040 私はそれが等しくなるように設定するつもりだ 文書ドットクッキーに。 2157 01:36:19,040 --> 01:36:20,660 したがって、私は行くよ あなたのクッキーを盗むために。 2158 01:36:20,660 --> 01:36:22,951 そして、私はリダイレクトするつもりです ウェブサイトにいくつかの情報 2159 01:36:22,951 --> 01:36:25,120 あなたがアクセスしてはならないこと。 2160 01:36:25,120 --> 01:36:29,250 あなたがしているので、これはすべての起こり あなたが見てきたものエスケープしない。 2161 01:36:29,250 --> 01:36:29,910 うん? 2162 01:36:29,910 --> 01:36:32,160 >> 読者:だからへ それはだ、それを明確にする 2163 01:36:32,160 --> 01:36:37,550 vulnerable.comその これに対して脆弱である。 2164 01:36:37,550 --> 01:36:39,300 だから、そのリンクが表示されることが 任意のページで。 2165 01:36:39,300 --> 01:36:42,200 誰かが、それをクリックする vulnerable.comに行く。 2166 01:36:42,200 --> 01:36:43,700 あなたはvulnerable.comにクッキーを持っている。 2167 01:36:43,700 --> 01:36:46,670 それではFacebookがあるとしましょう 脆弱なので、facebook.com。 2168 01:36:46,670 --> 01:36:48,310 あなたは自分のFacebookのクッキーを持っている。 2169 01:36:48,310 --> 01:36:50,925 これはあなたがしている、何をしているのですか facebook.comに行く、 2170 01:36:50,925 --> 01:36:53,990 それはすぐにリダイレクトだ badguy.comにあなた、 2171 01:36:53,990 --> 01:36:57,182 しかし、あなたのクッキー情報を含む。 2172 01:36:57,182 --> 01:36:59,310 だから、迅速にリダイレクトだ、 しかし、あなたのFacebookのクッキー 2173 01:36:59,310 --> 01:37:02,572 そのリダイレクトに含まれています、 それはどのように[聞こえない]です。 2174 01:37:02,572 --> 01:37:04,280 GABE:ええ、あります いくつかの非常に平均物事 2175 01:37:04,280 --> 01:37:06,070 これがあるかどうかの人が行うことができます。 2176 01:37:06,070 --> 01:37:09,190 例えば、Facebookは許可されている場合 誰もが、自分のユーザー名を変更するには 2177 01:37:09,190 --> 01:37:11,680 彼らはいずれかの操作を実行しませんでした 健全性チェック、あなたがそう 2178 01:37:11,680 --> 01:37:16,810 JavaScriptのものを挿入することができ、その ハムスターにあなたのイメージを変更します。 2179 01:37:16,810 --> 01:37:22,590 そして、それは同じJavaScriptを挿入します あなたのページを表示皆に。 2180 01:37:22,590 --> 01:37:26,400 あなたのページを表示するので、皆 ユーザー名に同じことをしています。 2181 01:37:26,400 --> 01:37:30,104 そして、それはウイルスだから、 それは指数関数的に広がる。 2182 01:37:30,104 --> 01:37:32,270 デーヴィン:我々は最後をスキップします 1、その後、我々は完了です。 2183 01:37:32,270 --> 01:37:34,120 だから、これは単なる一例です。 2184 01:37:34,120 --> 01:37:36,120 だから、これは彼らがわからないです 彼らのSQLテーブルをエスケープ。 2185 01:37:36,120 --> 01:37:37,090 だから、それをドロップすることができます。 2186 01:37:37,090 --> 01:37:38,805 だから、物事をエスケープしたい。 2187 01:37:38,805 --> 01:37:44,010 それは、前の例でした クロスサイトスクリプティングと。 2188 01:37:44,010 --> 01:37:45,430 申し訳ありませんが、私たちは少し遅れて走った。 2189 01:37:45,430 --> 01:37:46,870 明日、申し訳ありません! 2190 01:37:46,870 --> 01:37:48,560 明日は、営業時間を持っている。 2191 01:37:48,560 --> 01:37:50,870 11時00分にCabbot 8時00中のSO営業時間。 2192 01:37:50,870 --> 01:37:55,240 営業時間は、 厳密にクイズの質問のために。 2193 01:37:55,240 --> 01:37:56,587