1 00:00:00,000 --> 00:00:08,070 2 00:00:08,070 --> 00:00:10,430 >> R.J.アキーノは:ちょうど始めましょう。 3 00:00:10,430 --> 00:00:12,310 だから、これはクイズ1です。 4 00:00:12,310 --> 00:00:14,890 ここではいくつかの高レベルの情報です。 5 00:00:14,890 --> 00:00:19,915 クイズの案内ページはこの時点である URLは、そのものの、もはやCS50.net、 6 00:00:19,915 --> 00:00:21,080 まだ動作します。 7 00:00:21,080 --> 00:00:26,920 それはCS50.harvard.edu/quizzes/2013/1です。 8 00:00:26,920 --> 00:00:31,070 それはあなたに言って、ページについて大きいです どこで、いつ、すなわち次水曜日 9 00:00:31,070 --> 00:00:32,100 部屋の束中。 10 00:00:32,100 --> 00:00:36,120 そして来週の水曜日、私 今から2日間を意味する。 11 00:00:36,120 --> 00:00:37,890 このすべての情報があります。 12 00:00:37,890 --> 00:00:39,110 しかし、それは累積されます。 13 00:00:39,110 --> 00:00:43,790 >> 年前半からので、すべて 今年は、クイズに潜在的にある 14 00:00:43,790 --> 00:00:50,780 あなたは本当に先進行うことはできませんので、 もし条件なしのC言語でのものと 15 00:00:50,780 --> 00:00:51,920 ループなどのため。 16 00:00:51,920 --> 00:00:55,580 しかし、に重点があるでしょう クイズ0以来カバー材料、 17 00:00:55,580 --> 00:00:59,570 構造体とファイルで始まる I / Oそれは、典型的には、より多くのだ 18 00:00:59,570 --> 00:01:01,620 クイズ0よりも厳しい。 19 00:01:01,620 --> 00:01:03,870 平均スコアは、一般的に低い。 20 00:01:03,870 --> 00:01:05,980 一生懸命勉強。 21 00:01:05,980 --> 00:01:09,340 >> あなたが勉強している間に、必ず使用してください あなたの質問を投稿するCS50/discuss 22 00:01:09,340 --> 00:01:10,830 そして他の人の質問をお読みください。 23 00:01:10,830 --> 00:01:13,550 ですから、ご質問がない場合、 ログインし読む 24 00:01:13,550 --> 00:01:14,580 友達の質問。 25 00:01:14,580 --> 00:01:16,560 おそらく彼らは良い質問だ。 26 00:01:16,560 --> 00:01:17,730 と実践クイズを取る。 27 00:01:17,730 --> 00:01:20,750 私達はのためのクイズを与えてきました 今7〜8年。 28 00:01:20,750 --> 00:01:22,180 彼らはすべてのオンラインだ。 29 00:01:22,180 --> 00:01:25,540 今後の問題は似ています 古い質問へ。 30 00:01:25,540 --> 00:01:26,550 それは我々がそれらを作る方法を説明します。 31 00:01:26,550 --> 00:01:27,740 >> クイズはまだ存在しません。 32 00:01:27,740 --> 00:01:28,670 私達のどれもそれを見ていない。 33 00:01:28,670 --> 00:01:32,496 しかし、それは次のようになります 前回のクイズ。 34 00:01:32,496 --> 00:01:36,500 このレビューセッションでは、これはありません トピックの完全なリスト。 35 00:01:36,500 --> 00:01:40,740 あなただけのこれに出席した後、することはできません クイズに完全に準備ができている。 36 00:01:40,740 --> 00:01:43,330 それ以外の場合は、ではないでしょう クイズのそれくらい。 37 00:01:43,330 --> 00:01:46,270 そして、これは必然的ではありません 何かについて知る必要があるすべて 38 00:01:46,270 --> 00:01:46,970 特定のトピック。 39 00:01:46,970 --> 00:01:50,520 それは、物事にさらされることを意図しているの 我々はカバーしてきた、私たちを思い出させる 40 00:01:50,520 --> 00:01:53,070 覆い、方法で、 その我々はそれをカバーした。 41 00:01:53,070 --> 00:01:57,030 しかし、あなたはさらに行くとする必要があります あなたは二重チェックするために勉強したとき、より深い 42 00:01:57,030 --> 00:02:00,230 あなたは、任意のについてのすべてを知っていることを あなたが記入したトピックとその 43 00:02:00,230 --> 00:02:03,320 たすべてのコーナー 講義でカバー。 44 00:02:03,320 --> 00:02:07,980 >> クイズノートには、に行くことを教えてくれ スクノートは、講義ビデオを見る。 45 00:02:07,980 --> 00:02:10,155 それはあなたがしたようにする良い方法です すべての拠点をカバーした。 46 00:02:10,155 --> 00:02:12,670 47 00:02:12,670 --> 00:02:17,340 私はこれらを作ったときので、入門 スライドは、私が見つけた場所入れてみました 48 00:02:17,340 --> 00:02:18,350 情報。 49 00:02:18,350 --> 00:02:22,890 例えばそのようにファイルのI / Oを、週7、 月曜日の講演、および投稿 50 00:02:22,890 --> 00:02:27,960 第6節と問題設定されているすべてのき ファイルI / Oに関する情報私はやった 51 00:02:27,960 --> 00:02:28,840 すべてのトピックについては、この。 52 00:02:28,840 --> 00:02:33,010 だから、それらのタイトルスライド月 あなたに役立つこと。 53 00:02:33,010 --> 00:02:38,950 >> そこでここでは、ファイルI / Oを持っているで、覚えている 問題は、5を設定し、我々は、fcloseを、関数fopenを使用 54 00:02:38,950 --> 00:02:41,210 fwriteの、関数fread、およびfseek関数。 55 00:02:41,210 --> 00:02:48,090 30ish JPEGを回収した サイズ変更を台無しにした 56 00:02:48,090 --> 00:02:50,320 ビットマップは、あなたはかなり精通している必要があります これらの機能を持つ 57 00:02:50,320 --> 00:02:51,830 そしてどのように動作する。 58 00:02:51,830 --> 00:02:54,420 あなたはもはやご存知ない場合は、 確かにそれらを確認してください。 59 00:02:54,420 --> 00:02:56,860 そして、あなたは何を理解していることを確認 異なる引数は、 60 00:02:56,860 --> 00:02:58,260 それらが使用しているとき。 61 00:02:58,260 --> 00:03:03,620 >> しかし、一般的なファイル関連のバグ あなたは約求められることがあります - 62 00:03:03,620 --> 00:03:07,270 さて、あなたはどうかを確認するのを忘れてしまった場合 あなたがに行く前に、fopenを実際に働いていた 63 00:03:07,270 --> 00:03:08,350 ファイルを変更します。 64 00:03:08,350 --> 00:03:09,760 それは悪いかもしれません。 65 00:03:09,760 --> 00:03:13,560 あなたは、ファイルをfcloseはし忘れてしまった場合 あなたはfopenedたので、それは次のようにだ 66 00:03:13,560 --> 00:03:14,400 メモリリーク。 67 00:03:14,400 --> 00:03:15,980 これはかなり悪いです。 68 00:03:15,980 --> 00:03:18,670 そして、あなたがしたかどうかをチェックし忘れる あなたの前にファイルの終わりに達した 69 00:03:18,670 --> 00:03:19,790 それへの書き込みを開始。 70 00:03:19,790 --> 00:03:22,320 >> あなたが言うのであれば、ちょっと、私は、私 ファイルの終わり。 71 00:03:22,320 --> 00:03:23,750 私に5バイト以上を与える。 72 00:03:23,750 --> 00:03:27,370 まあ、それはおそらく、するつもりはない あなたが期待どおりにうまく。 73 00:03:27,370 --> 00:03:30,930 それは、ファイルI / Oのために実際にそれだ 我々はそれをあまりなかったので 74 00:03:30,930 --> 00:03:32,300 問題が設定されている。 75 00:03:32,300 --> 00:03:36,000 だから、何が起こっていたか理解している場合 問題セット5で、bitmatsを覚えている 76 00:03:36,000 --> 00:03:40,090 およびJPEGファイルは、あなたはおそらく、すべてのだ I / Oファイルに設定それは少しだ場合 77 00:03:40,090 --> 00:03:44,770 ファジー、間違いなくその問題を検討 設定および関連材料。 78 00:03:44,770 --> 00:03:51,110 >> 構造体は、上にあっ​​たトピックだった クイズ0とクイズ1の間の線。 79 00:03:51,110 --> 00:03:53,090 かなりクイズ0のカットをしなかった。 80 00:03:53,090 --> 00:03:57,040 そこで、彼らは間違いなく上だろう クイズ1、週7日月曜日。 81 00:03:57,040 --> 00:03:58,150 構造体とは何ですか? 82 00:03:58,150 --> 00:04:00,250 ここでは、構造体を示している。 83 00:04:00,250 --> 00:04:03,140 これは、新しいタイプのようなものだ。 84 00:04:03,140 --> 00:04:07,940 これは、コンテナのようなものだ 複数のフィールドのため。 85 00:04:07,940 --> 00:04:12,970 >> このケースでは、構造体を宣言した 2つのフィールドを持つ学生 - 86 00:04:12,970 --> 00:04:17,750 我々は呼んでいる列の名前と 我々は年齢を呼んでいるint型。 87 00:04:17,750 --> 00:04:21,450 だから私は、学生や私の周りを通過するとき 学生を変更、私のことができるようになります 88 00:04:21,450 --> 00:04:24,430 自分の名前と自分の年齢にアクセスします。 89 00:04:24,430 --> 00:04:26,670 そのためのいくつかのコードを見てみましょう。 90 00:04:26,670 --> 00:04:29,090 ここでは、私が宣言したことを確認 学生の、同じよう 91 00:04:29,090 --> 00:04:30,300 私はすべての変数を宣言 - 92 00:04:30,300 --> 00:04:32,430 int型のX、int型のY、エトセトラ。 93 00:04:32,430 --> 00:04:34,180 >> ここで学生のSです。 94 00:04:34,180 --> 00:04:37,370 彼はフィールドに何も始まります。 95 00:04:37,370 --> 00:04:38,240 それでは、それらを設定してみましょう。 96 00:04:38,240 --> 00:04:40,681 あなたはドット構造体のフィールドを設定します。 97 00:04:40,681 --> 00:04:43,780 だから私はここでそのs.name = RJを言った。 98 00:04:43,780 --> 00:04:46,470 そしてs.age = 21。 99 00:04:46,470 --> 00:04:48,500 また、フィールドを更新することができます あなたが更新していたものと同じ方法で 100 00:04:48,500 --> 00:04:49,550 変数の値。 101 00:04:49,550 --> 00:04:53,270 だから私は、RJとから私の名前を変更したい R.J.にピリオドんスペルト 102 00:04:53,270 --> 00:04:54,540 正しい方法。 103 00:04:54,540 --> 00:04:58,890 それは= RJ、同じs.nameれます 我々はもともとそれを言ったように。 104 00:04:58,890 --> 00:05:00,030 そして、あなたはそれらにアクセスすることができます。 105 00:05:00,030 --> 00:05:00,930 >> だから我々はそれらを設定しました。 106 00:05:00,930 --> 00:05:01,840 我々はそれらを更新しました。 107 00:05:01,840 --> 00:05:03,890 また、それらにアクセスすることができます 非常に同じように。 108 00:05:03,890 --> 00:05:09,330 だからここに、私はプリントアウトしています R.J. 21歳。 109 00:05:09,330 --> 00:05:14,700 そして、私はこれらの値にアクセスしています s.nameとs.ageと。 110 00:05:14,700 --> 00:05:17,040 だから、構造体へのアクセスだ ドット表記で。 111 00:05:17,040 --> 00:05:17,850 うん、質問? 112 00:05:17,850 --> 00:05:21,176 >> 観客:上の理由がある あなたは入れていない前のスライド 113 00:05:21,176 --> 00:05:24,848 typedefのようなトップラインでの学生、 その後、構造体​​の学生と 114 00:05:24,848 --> 00:05:25,840 最後に学生? 115 00:05:25,840 --> 00:05:29,040 >> R.J.アキノ:そこで質問にあった このスライドは、一般的に見てきました 116 00:05:29,040 --> 00:05:32,400 その後、構造体​​のノードをtypedefをし、 構造体のフィールドと 117 00:05:32,400 --> 00:05:34,250 その後、単語ノード。 118 00:05:34,250 --> 00:05:37,790 そして、どのようにtypedefを、私は言っていないここに来て その後、構造体​​の学生と 119 00:05:37,790 --> 00:05:39,820 構造体のフィールドとし、学生? 120 00:05:39,820 --> 00:05:44,310 その理由は、私はする必要がないことです 構造体の内側にアクセスする。 121 00:05:44,310 --> 00:05:46,270 だから、名前なしでそれを残してもOKです。 122 00:05:46,270 --> 00:05:49,210 私は同じようにしておくことができ 匿名の構造体。 123 00:05:49,210 --> 00:05:53,130 >> 我々はリンクリストのためにそれを行うと理由 内部のあなたが必要とするためのものです 124 00:05:53,130 --> 00:05:55,360 構造ノードのスターを参照する。 125 00:05:55,360 --> 00:05:58,220 だから、構造体は名前を持っている必要があり、 だから、後でそれにアクセスすることができます。 126 00:05:58,220 --> 00:05:59,540 それはマイナーなディテールです。 127 00:05:59,540 --> 00:06:04,750 しかし、あなたは、通常のtypedef構造が表示されます 中括弧は、必要がない場合は、 128 00:06:04,750 --> 00:06:08,720 いくつかの名前の構造体の名前と型定義 言うなれば、中括弧が続く 129 00:06:08,720 --> 00:06:09,520 名前が必要です。 130 00:06:09,520 --> 00:06:12,070 だから、それは良い質問ですね。 131 00:06:12,070 --> 00:06:17,000 >> その点で、私たちは変更する傾向がある 構造体とすることによって構造体を周囲に渡す 132 00:06:17,000 --> 00:06:18,680 値ではなく、参照します。 133 00:06:18,680 --> 00:06:21,940 だから我々はちょうどへのポインタを周りに渡すよ 構造体の代わりにものを渡す 134 00:06:21,940 --> 00:06:23,150 自らを構造体。 135 00:06:23,150 --> 00:06:28,050 だから、非常に頻繁にあることになるだろう 使用して、この場合には、学生の*または 136 00:06:28,050 --> 00:06:34,150 構造体ノード*またはノード*代わりに 学生またはノードが不足しています。 137 00:06:34,150 --> 00:06:39,350 だからここに、私が言った、[OK]を、変数ptr Sのアドレスであることを行っている。 138 00:06:39,350 --> 00:06:45,570 それがポインタになるだろう 学生R.J.へ 139 00:06:45,570 --> 00:06:48,965 >> だから我々は、これらのフィールドで取得することができます 我々は何かを得ると同じ。 140 00:06:48,965 --> 00:06:51,460 まず、IDは、ポインタを参照する 構造体を取得します。 141 00:06:51,460 --> 00:06:55,530 それはそれから* PTRだし ドット、その後時代。 142 00:06:55,530 --> 00:06:58,790 だから、フィールドにアクセスするには、と私は更新しました それは今22に、みましょう、なぜなら 143 00:06:58,790 --> 00:07:00,860 それは私の誕生日だった、と言う。 144 00:07:00,860 --> 00:07:03,990 ショートカット構文があります ここで、矢印を使用して。 145 00:07:03,990 --> 00:07:07,060 そうPTR矢印年齢はちょうどです * ptr.ageと同じ。 146 00:07:07,060 --> 00:07:10,150 147 00:07:10,150 --> 00:07:11,550 今、それはあなたが持っているだろう何か 暗記で覚え。 148 00:07:11,550 --> 00:07:15,010 >> あなたは、それをpset6に多く使用される スペルチェックPSET。 149 00:07:15,010 --> 00:07:18,350 しかし、これは何が起こっているのか、実際に ボンネットの下に。 150 00:07:18,350 --> 00:07:20,500 これは、ポインタを逆参照だ し、それをアクセスする。 151 00:07:20,500 --> 00:07:21,432 質問? 152 00:07:21,432 --> 00:07:22,682 >> 観客:[聞こえない]。 153 00:07:22,682 --> 00:07:25,860 154 00:07:25,860 --> 00:07:28,060 >> R.J.アキノ:では、なぜ我々が使用している 代わりに、構造体としてのポインタ 155 00:07:28,060 --> 00:07:29,500 自らを構造体? 156 00:07:29,500 --> 00:07:33,740 あなたが渡している場合は、その理由は次のようになります 関数への構造体、おそらく 157 00:07:33,740 --> 00:07:36,900 わずか4かそこらの周りに渡したい ポインタを表すバイト、など 158 00:07:36,900 --> 00:07:40,375 潜在的に30とは対照的に、または 構造体である40バイト。 159 00:07:40,375 --> 00:07:44,410 ので、関数に何かを渡す 簡単ですときの事 160 00:07:44,410 --> 00:07:48,230 要するに小さい。 161 00:07:48,230 --> 00:07:49,074 質問? 162 00:07:49,074 --> 00:07:53,026 >> 読者:あなたはこれを言及しているかもしれない 初めに、しかしそこにある 163 00:07:53,026 --> 00:07:56,000 [聞こえない]上の他のスライドアップ? 164 00:07:56,000 --> 00:07:58,960 >> R.J.アキノ:これらのスライドにはなります レビューセッションの後まで。 165 00:07:58,960 --> 00:08:00,210 私たちは、ウェブサイト上でそれらを投稿します。 166 00:08:00,210 --> 00:08:02,450 167 00:08:02,450 --> 00:08:06,870 というように移動し、少し先に進む より速く、我々は、データについて話をするつもりだ 168 00:08:06,870 --> 00:08:07,350 構造。 169 00:08:07,350 --> 00:08:08,040 たくさんあり​​ます。 170 00:08:08,040 --> 00:08:10,080 我々はそれらの束をカバーした。 171 00:08:10,080 --> 00:08:12,500 ここでは、理解する必要がありますものです データ構造に関する。 172 00:08:12,500 --> 00:08:15,590 >> あなたは本当に高いで理解しておく必要があります 各構造がどのようなレベル。 173 00:08:15,590 --> 00:08:21,190 あなたに英語で説明することができます CS50を取っていない友人か 174 00:08:21,190 --> 00:08:25,580 我々は我々のデータを整理していて、なぜ我々は思います このように何かを使用している? 175 00:08:25,580 --> 00:08:26,990 それは事一つだ。 176 00:08:26,990 --> 00:08:29,650 事2は、理解して 実装。 177 00:08:29,650 --> 00:08:34,270 したがって、これらの事を使用する方法を理解する Cで我々はこの上で行くことがあります。 178 00:08:34,270 --> 00:08:39,030 >> してからの事3を知っていることだろう 実行時間との限界 179 00:08:39,030 --> 00:08:40,470 あなたが使用している様々な構造。 180 00:08:40,470 --> 00:08:44,059 あなたが使用することになり、なぜそのように理解して テーブル代わ​​りの配列をハッシュ。 181 00:08:44,059 --> 00:08:49,570 どれだけ速く、平均して、理解して ハッシュテーブルにアクセスすることである。 182 00:08:49,570 --> 00:08:54,010 操作は高速でオンになっているかを理解 リンクリストが、アレイ上に遅く、 183 00:08:54,010 --> 00:08:56,080 その逆も。 184 00:08:56,080 --> 00:08:59,780 だから、それを理解するには、する必要があります ただ知っているビッグO記法を理解する 185 00:08:59,780 --> 00:09:01,310 これらについて話をする方法 物事の種類。 186 00:09:01,310 --> 00:09:02,700 そして、我々はそれについて話をしましょう​​。 187 00:09:02,700 --> 00:09:06,040 >> だから、まず最初に、リストのリンク。 188 00:09:06,040 --> 00:09:07,770 ここで、高レベルのピクチャである リンクリストの。 189 00:09:07,770 --> 00:09:08,830 私たちは、クラスでこれを示す。 190 00:09:08,830 --> 00:09:11,670 我々は、一般的に10人を持っている ステージに立って。 191 00:09:11,670 --> 00:09:16,790 しかし、我々は、各ノードのシリーズを持っている ノードは、いくつかの値とポインタを持っている 192 00:09:16,790 --> 00:09:18,610 その次の値に設定します。 193 00:09:18,610 --> 00:09:21,730 だから、次の1ノードから取得する ちょうど私に次のノードを与える、と言う。 194 00:09:21,730 --> 00:09:22,530 あなたは、そのノードを持っている。 195 00:09:22,530 --> 00:09:23,770 私に次のノードを与える。 196 00:09:23,770 --> 00:09:24,400 あなたは、そのノードを持っている。 197 00:09:24,400 --> 00:09:28,790 というように私に次のノードを与え、 どのノードの左はありませんまで。 198 00:09:28,790 --> 00:09:31,850 >> そうについて話し続ける ハイレベルで。 199 00:09:31,850 --> 00:09:34,100 それは、物事を挿入するのは非常に簡単です リンクされたリストに変換する。 200 00:09:34,100 --> 00:09:36,010 あなたは順序を気にしない場合は、 あなたはそれをドロップすることができます 201 00:09:36,010 --> 00:09:36,840 初めに右。 202 00:09:36,840 --> 00:09:38,520 それは、一定の時間です。 203 00:09:38,520 --> 00:09:39,900 しかし、それは価値を見つけるのは難しい。 204 00:09:39,900 --> 00:09:43,060 あなたが求めるしようとしている場合、 私のリストにある7ですか? 205 00:09:43,060 --> 00:09:44,740 あなたが通過する必要があります すべての単一の値。 206 00:09:44,740 --> 00:09:45,680 これは7ですか? 207 00:09:45,680 --> 00:09:46,610 これは7ですか? 208 00:09:46,610 --> 00:09:47,770 これは7ですか? 209 00:09:47,770 --> 00:09:48,690 これは7ですか? 210 00:09:48,690 --> 00:09:49,830 何度も何度も。 211 00:09:49,830 --> 00:09:51,520 そして、それはO(N)です。 212 00:09:51,520 --> 00:09:53,800 だから、クイズの勉強するとき、 配列とこれを比較します。 213 00:09:53,800 --> 00:09:57,010 214 00:09:57,010 --> 00:09:58,220 >> それは大丈夫でしょうか? 215 00:09:58,220 --> 00:09:59,220 ライトが薄暗い行きました。 216 00:09:59,220 --> 00:10:01,110 [OK]をクリックします。 217 00:10:01,110 --> 00:10:02,400 するとリンクされたリストが良いですか? 218 00:10:02,400 --> 00:10:04,640 ときは、配列が良いですか? 219 00:10:04,640 --> 00:10:06,670 それでは、いくつかのコードを見てみましょう。 220 00:10:06,670 --> 00:10:08,960 ここに潜在的なノードである。 221 00:10:08,960 --> 00:10:09,770 それが構造体です。 222 00:10:09,770 --> 00:10:12,220 これは、整数nを有している 私たちの値になります。 223 00:10:12,220 --> 00:10:17,780 そして、それは、次の構造体ノード*を有している 次のノードへの私たちのポインタである。 224 00:10:17,780 --> 00:10:23,040 だからここに、我々は何が起こっていることがわかります 私たちのノードのintを入れたのは。 225 00:10:23,040 --> 00:10:27,850 しかし、これは、charのリンク​​リストならば 星や山車のリンクリスト、我々 226 00:10:27,850 --> 00:10:28,820 完全にあまりにもそれを行うことができます。 227 00:10:28,820 --> 00:10:33,110 >> pset6に覚えて、あなたはおそらく持っていた リンクされた文字の星のリストか、単に 228 00:10:33,110 --> 00:10:34,360 静的char配列。 229 00:10:34,360 --> 00:10:37,370 230 00:10:37,370 --> 00:10:39,040 の操作でここに見てみましょう。 231 00:10:39,040 --> 00:10:43,570 だから我々は、新たに挿入する 当社の連結リスト内にN。 232 00:10:43,570 --> 00:10:48,940 私たちは、あるヘッドポインタでスタート 持って、このノードへのポインタ 233 00:10:48,940 --> 00:10:53,460 nの値と、そのポインタの次の このノードへのポイントの値です。 234 00:10:53,460 --> 00:10:57,760 Nとヌルの次の、理由 それが最後のノードです。 235 00:10:57,760 --> 00:11:00,440 だから、時間の都合で、私は意志 画面上のすべてのコードを置く。 236 00:11:00,440 --> 00:11:03,130 そして我々はそれを歩くよ 一度に数行。 237 00:11:03,130 --> 00:11:05,790 >> だからここにコードを示します。 238 00:11:05,790 --> 00:11:07,560 私はそれが読みやすい願っています。 239 00:11:07,560 --> 00:11:11,275 私たちが最初にすることです 私たちは、新しいノードをのmalloc。 240 00:11:11,275 --> 00:11:15,105 だから、新しいノードを指すポインタを作ること 全く何も設定されていない 241 00:11:15,105 --> 00:11:16,450 まだそれは最大。 242 00:11:16,450 --> 00:11:19,580 私たちは、ことを確認してください 新しいノードがNULLではありません。 243 00:11:19,580 --> 00:11:22,220 そうでなければ、私たちはあきらめなければならない。 244 00:11:22,220 --> 00:11:27,680 だから今、私たち、ことを確認した ノードの値を設定します。 245 00:11:27,680 --> 00:11:31,520 だから我々は我々のNフィールドに新しいNを置く。 246 00:11:31,520 --> 00:11:36,050 そして、我々はを指すように次のポインタを設定する オリジナルヘッドカバー、我々はできるように、 247 00:11:36,050 --> 00:11:38,900 今、これを挿入した 私たちのリストにノード。 248 00:11:38,900 --> 00:11:44,600 >> 最後に、グローバル·ヘッド·ポイントを持っている 私たちの新しいノードに、その結​​果、我々はした場合 249 00:11:44,600 --> 00:11:50,300 頭から始まり、我々はこの時になります 新しい最初のノードの代わりに、 250 00:11:50,300 --> 00:11:51,560 古い最初のノード。 251 00:11:51,560 --> 00:11:55,320 そしてこの関数が終了したときに、 可変新しいノードは、もはや存在しない 252 00:11:55,320 --> 00:11:57,130 それは関数に対してローカルであったため。 253 00:11:57,130 --> 00:11:59,770 だから、これは世界の状態である。 254 00:11:59,770 --> 00:12:03,570 私たちの新しいのグローバルヘッドのポイント 私たちを指すの最初のノード、 255 00:12:03,570 --> 00:12:06,346 指して、元の最初のノード、 その後ノードへ。 256 00:12:06,346 --> 00:12:09,790 >> それは、挿入した。 257 00:12:09,790 --> 00:12:12,150 私は比較的でし願っ 従うことは簡単。 258 00:12:12,150 --> 00:12:14,300 疑問がある場合、絵を描く。 259 00:12:14,300 --> 00:12:17,820 だから私は、話をしていることを発見 リンクされたリストと見 260 00:12:17,820 --> 00:12:19,870 コー​​ドは非常に有用ではありません。 261 00:12:19,870 --> 00:12:23,790 リンクの絵を見ているのに対し、 リストには、ああ、私は考えることができますので、 262 00:12:23,790 --> 00:12:24,970 私はここで、このノードを持っている。 263 00:12:24,970 --> 00:12:28,980 しかし、私はそのポインタを更新した場合、 それは切断してしまう。 264 00:12:28,980 --> 00:12:34,340 そして、私は忘れてしまった場合、 ノードが行く。 265 00:12:34,340 --> 00:12:35,390 そしてコードは終了します。 266 00:12:35,390 --> 00:12:37,830 そして、あなたは複数のノードを持っている それが切断されています。 267 00:12:37,830 --> 00:12:39,970 そして、あなたはで終わらない 希望リスト。 268 00:12:39,970 --> 00:12:43,320 >> ですから、絵を描き、それを行う場合は、 ステップバイステップで、うまくいけば、あなたが表示されます 269 00:12:43,320 --> 00:12:46,840 の観点から物事の正しい順序 確認するためのポインタを更新する 270 00:12:46,840 --> 00:12:48,830 リストには、一緒に来ている。 271 00:12:48,830 --> 00:12:51,240 インサートは比較的簡単です。 272 00:12:51,240 --> 00:12:55,210 より複雑な1は次のようになります。 ソートされたリストへの挿入。 273 00:12:55,210 --> 00:12:59,980 より複雑な機能が削除され などのリストを見て、見つける 274 00:12:59,980 --> 00:13:03,030 何かがあるかどうかを確認。 275 00:13:03,030 --> 00:13:07,220 おそらく、あなたはpset6でこれをやったときに、 あなたのハッシュテーブルに乗ってあなたが言った、 276 00:13:07,220 --> 00:13:10,460 さて、単語のリンゴです 私のリンクリスト内の? 277 00:13:10,460 --> 00:13:11,440 >> だから、あなたはすでにこれを行っている可能性があります。 278 00:13:11,440 --> 00:13:15,530 しかし、間違いなく、あなたの記憶をリフレッシュ 、検索を再実装しようとすると、 279 00:13:15,530 --> 00:13:19,150 リンクされたリストについては、削除し再実装。 280 00:13:19,150 --> 00:13:22,850 楽しいサイドノートもあり、二重リンク あなたが持っているリスト、 281 00:13:22,850 --> 00:13:27,490 順方向を指すポインタと あなたがに行くことができるように、後方 282 00:13:27,490 --> 00:13:29,270 次のノードと前のノードへ。 283 00:13:29,270 --> 00:13:33,860 昨年のについての質問がありました その型のクイズ、話す 284 00:13:33,860 --> 00:13:36,190 約二重リンクリスト。 285 00:13:36,190 --> 00:13:40,070 >> 今、それはあなたがしている構造体の なぜなら、ほとんどの、比較的馴染みの 286 00:13:40,070 --> 00:13:42,520 あなたのことを、おそらくpset6にそれらを使用していました。 287 00:13:42,520 --> 00:13:45,680 ここで少しあまりなじみの1です。 288 00:13:45,680 --> 00:13:51,020 注意点として、私はクイズ1だと思います 主に、クイズ0よりも硬いため、 289 00:13:51,020 --> 00:13:54,600 あなたがやっているものに、 同じくらい行っていない。 290 00:13:54,600 --> 00:13:58,100 クイズ0のために、その別の言い方をすると、 あなたはCの多くを書かれていた、我々 291 00:13:58,100 --> 00:13:58,880 C.についてお聞か 292 00:13:58,880 --> 00:14:02,310 >> クイズ1のために、我々はについてお聞きするつもりだ PHPとJavaScriptの、どのあなた 293 00:14:02,310 --> 00:14:03,490 をできるだけ多く書いていない。 294 00:14:03,490 --> 00:14:07,590 我々は、Cコードについてお聞きするつもりだ あなたは、の多くを書いていません 295 00:14:07,590 --> 00:14:09,130 この高度なC言語のもの。 296 00:14:09,130 --> 00:14:11,520 だから間違いなく、スタッフたちの練習 講演での話があること 297 00:14:11,520 --> 00:14:15,260 必ずしもしませんでした 問題に設定してください。 298 00:14:15,260 --> 00:14:17,870 >> そういえば、あなたは書いていません 問題のあるセットでスタック。 299 00:14:17,870 --> 00:14:19,610 しかし、それは講義であった。 300 00:14:19,610 --> 00:14:22,530 ここでの高レベルの画像です 我々は毎年示すことがスタックします。 301 00:14:22,530 --> 00:14:26,180 それは中のトレーのスタックだ メイザーの食堂。 302 00:14:26,180 --> 00:14:30,570 高レベルでは、スタックが、最後である 最初にデータ構造である。 303 00:14:30,570 --> 00:14:32,040 それはあなたが行っていることを意味 で物事を置くために - 304 00:14:32,040 --> 00:14:36,400 1、3、7、12、14、マイナス0。 305 00:14:36,400 --> 00:14:39,180 私が持っていることができなかった一つのこと 言った - 3、0負。 306 00:14:39,180 --> 00:14:40,250 あなたはこれらすべてのことをインチ置く 307 00:14:40,250 --> 00:14:42,940 そして、あなたは入れ最後の1は、最初です 出てくるだろう1。 308 00:14:42,940 --> 00:14:44,170 >> だから、2つの操作を持っている - 309 00:14:44,170 --> 00:14:45,260 PUSHおよびPOP。 310 00:14:45,260 --> 00:14:49,180 私がいたという点で置くことのすべて このようなジェスチャーは、プッシュです。 311 00:14:49,180 --> 00:14:52,020 そして私はつかむために到達したとき 何かまたはつかむために上に到達 312 00:14:52,020 --> 00:14:53,940 何かが、それはポップだ。 313 00:14:53,940 --> 00:14:55,540 だから我々はスタックを実装するつもりだ。 314 00:14:55,540 --> 00:14:57,870 そして、我々は講義でそれらを示した アレイを使用して。 315 00:14:57,870 --> 00:14:59,550 しかし、あなたはそれを行うことができます リンクリストを使用して。 316 00:14:59,550 --> 00:15:01,770 スタックは、概念的なデータであり、 構造、好きではない 317 00:15:01,770 --> 00:15:03,760 実装固有の1。 318 00:15:03,760 --> 00:15:06,420 >> それでは、それは次のようになります? 319 00:15:06,420 --> 00:15:07,970 それはちょっとのようになります。 320 00:15:07,970 --> 00:15:10,840 あなたは、整数サイズがあるんだけど。 321 00:15:10,840 --> 00:15:16,000 そして、あなたはその値の配列があるんだけど それだから、我々は、トレイを呼んでいる 322 00:15:16,000 --> 00:15:18,570 写真は、何のために作成したか 問い合わせ - トレイをint型 - 323 00:15:18,570 --> 00:15:21,740 した後、いくつかの最大容量。 324 00:15:21,740 --> 00:15:27,100 それでは、次のようになりプッシュするだろうか? 325 00:15:27,100 --> 00:15:33,250 まあ、我々はスタックSを持っている場合、次にpush Sに何か、私たちはなるだろう 326 00:15:33,250 --> 00:15:34,620 Sのサイズ。 327 00:15:34,620 --> 00:15:42,270 そして、それは次のだろう 私たちの配列のオープンスポット。 328 00:15:42,270 --> 00:15:50,510 だから我々は我々のスタック内の3つのことを持っている場合、 その後、トレイ3が次だろう 329 00:15:50,510 --> 00:15:54,290 オープンスポット、なぜなら0、1、および 2はすでに満たされている。 330 00:15:54,290 --> 00:16:01,790 >> だから我々はに価値を置く s.trays [s.size]、第三のスポット。 331 00:16:01,790 --> 00:16:06,290 そして、我々は、言ってs.sizeをインクリメント ねえ、私たちは前に3つのことを持っていた。 332 00:16:06,290 --> 00:16:07,400 今、我々は4を持っている。 333 00:16:07,400 --> 00:16:10,180 あなたがプッシュするので、次回、あなたがしている 4に何かを置くつもり。 334 00:16:10,180 --> 00:16:15,560 それとも、ポップアップ次回、あなたが行っている 3の代わりに、4または何を見ている。 335 00:16:15,560 --> 00:16:18,000 そして、我々にtrueを返します ねえ、言って、我々は成功しました。 336 00:16:18,000 --> 00:16:19,160 これは働いていた。 337 00:16:19,160 --> 00:16:22,060 経験則として、の機能があれば trueを返すことになってか 338 00:16:22,060 --> 00:16:26,370 偽常にあなたが、trueを返す 何か間違ったことを行っている。 339 00:16:26,370 --> 00:16:28,350 したがって、この仕事はしますか? 340 00:16:28,350 --> 00:16:32,400 >> まあ、それは1のために正常に動作し、 2、3、4、5。 341 00:16:32,400 --> 00:16:34,640 しかし、ここで私は自分の容量に達するとしましょう​​。 342 00:16:34,640 --> 00:16:38,750 私は、あるため、問題に遭遇してきた 大きさは容量と同じであれば、私は今 343 00:16:38,750 --> 00:16:43,340 今に何かを入れしようとしている 私はスペースがない配列。 344 00:16:43,340 --> 00:16:46,980 これを修正するので、短いチェック。 345 00:16:46,980 --> 00:16:51,630 もしs.size ==容量、falseを返します。 346 00:16:51,630 --> 00:16:54,130 そうでなければ、行くと、私たちがやったん。 347 00:16:54,130 --> 00:16:55,660 だから我々は他に何を求めることができる スタックのでしょうか? 348 00:16:55,660 --> 00:16:56,460 あなたは他に何を勉強すべき? 349 00:16:56,460 --> 00:16:57,690 あなたは他に何を練習してください? 350 00:16:57,690 --> 00:17:01,030 >> さて、ポップを実装する。 351 00:17:01,030 --> 00:17:02,370 我々はすでにプッシュしました。 352 00:17:02,370 --> 00:17:04,280 私はそれを修正します。 353 00:17:04,280 --> 00:17:08,180 非配列の実装、どこ あなたはおそらく、リンクされたリストを使用しています。 354 00:17:08,180 --> 00:17:09,390 非整数の実装。 355 00:17:09,390 --> 00:17:10,940 ここではint型をした。 356 00:17:10,940 --> 00:17:11,880 しかし、それはフロートされている可能性が。 357 00:17:11,880 --> 00:17:13,010 私は、文字列だったかもしれない。 358 00:17:13,010 --> 00:17:14,290 それは、char星だったかもしれない。 359 00:17:14,290 --> 00:17:17,960 種類のための過去のクイズを見てください 我々は、スタックについて尋ねてきた質問。 360 00:17:17,960 --> 00:17:20,000 >> 私は、私たちの周りのスタックをカバーしていることを言うよ 我々はそれらを紹介してきたのと同じ 361 00:17:20,000 --> 00:17:20,540 経年。 362 00:17:20,540 --> 00:17:24,400 だから、クイズの質問はすべき 良い兆候であること。 363 00:17:24,400 --> 00:17:27,010 さらに高速今後は、キューに入れます。 364 00:17:27,010 --> 00:17:28,200 彼らは、スタックのようにしている。 365 00:17:28,200 --> 00:17:29,960 しかし、彼らは最初に出て、最初のだ。 366 00:17:29,960 --> 00:17:33,530 あなたが英国であれば、単語キュー おそらくあなたに多くの意味をした。 367 00:17:33,530 --> 00:17:36,390 そうでない場合は、次のものがあります ラインとしてそれを聞いた。 368 00:17:36,390 --> 00:17:38,120 彼らはラインのように働く アップルストアで。 369 00:17:38,120 --> 00:17:40,740 3:00に現れた最初の人物 朝一である 370 00:17:40,740 --> 00:17:42,880 彼のiPadを購入する人。 371 00:17:42,880 --> 00:17:44,260 >> だから我々は2つ​​の操作を持っている - 372 00:17:44,260 --> 00:17:45,720 エンキューおよびデキュー。 373 00:17:45,720 --> 00:17:47,560 エンキューは、ラインの誰かを置きます。 374 00:17:47,560 --> 00:17:50,070 デキューは、最初に引っ張る オフラインの人。 375 00:17:50,070 --> 00:17:52,640 ここでも、実装することができます 配列を持つこの。 376 00:17:52,640 --> 00:17:54,880 だから、構造体、我々は何ですか 講演で示した? 377 00:17:54,880 --> 00:17:57,660 これは1だった。 378 00:17:57,660 --> 00:17:59,300 もう一度、数字。 379 00:17:59,300 --> 00:18:02,020 繰り返しますが、大きさや、この新しいもののフロント。 380 00:18:02,020 --> 00:18:04,880 なぜ、フロントと呼ばれるものがあるのでしょうか? 381 00:18:04,880 --> 00:18:07,050 それは、次のインデックスです デキューする要素。 382 00:18:07,050 --> 00:18:12,210 それはちょうど内部を追跡することだ 表示する最初の男、その結果、私たち 383 00:18:12,210 --> 00:18:15,005 我々がする必要があるときにそれを引き出すことができる。 384 00:18:15,005 --> 00:18:19,322 >> 確かに講義ノートを見てみてください エンキューおよびデキューを実装する 385 00:18:19,322 --> 00:18:21,700 クイズの勉強するとき。 386 00:18:21,700 --> 00:18:23,190 考えるべき重要な事柄。 387 00:18:23,190 --> 00:18:27,260 折り返した場合、フロントプラス サイズは、容量よりも大きいとしてしまう。 388 00:18:27,260 --> 00:18:32,670 もう一度、あなたの構造が一杯になった場合には、 あなたが問題を抱えているとしている。 389 00:18:32,670 --> 00:18:34,780 あなたが前に見てきたハッシュテーブル。 390 00:18:34,780 --> 00:18:39,820 あなたのほとんどはおそらく実装 これらpset6上。 391 00:18:39,820 --> 00:18:44,210 それは、O(1)を目指して、構造体の 一定時間挿入およびO(1) 392 00:18:44,210 --> 00:18:46,430 一定の時間ルックアップ。 393 00:18:46,430 --> 00:18:49,760 >> CS50では、としてこれを実装 リンクされたリストの配列。 394 00:18:49,760 --> 00:18:53,690 ハッシュテーブルのキーコンポーネント ハッシュ関数である。 395 00:18:53,690 --> 00:18:58,350 だから、それはあなたの入力を変換し、のは言わせて、 番号辞書の単語、、 396 00:18:58,350 --> 00:18:59,560 そのGoogleのインデックスになるだろう。 397 00:18:59,560 --> 00:19:01,410 そして、我々は、そのインデックスを使用します 私たちの配列に。 398 00:19:01,410 --> 00:19:05,374 だからここにかわいい絵です study.50.netから。 399 00:19:05,374 --> 00:19:08,060 我々は、すべての単語にを投げる 当社のハッシュ関数。 400 00:19:08,060 --> 00:19:10,950 ハッシュ関数は、教えてくれる これらの単語をどこに置くか。 401 00:19:10,950 --> 00:19:15,650 >> これは、土地内のすべての大きい場合 スロットごとに1つだけの単語があります。 402 00:19:15,650 --> 00:19:20,480 しかし、あなたはそこに、pset6から覚えている スロットよりも多くの言葉がある。 403 00:19:20,480 --> 00:19:23,080 ときに何が起こる 衝突が発生した? 404 00:19:23,080 --> 00:19:26,730 代わりに、1つの値を記憶する、 それでは言わせて、ハッシュテーブル3に、 405 00:19:26,730 --> 00:19:27,990 リンクされたリストを格納します。 406 00:19:27,990 --> 00:19:32,900 だから代わりに、マスクメロンを持っていることの ここでは、リンクされたリストを持っているでしょう、 407 00:19:32,900 --> 00:19:34,190 最初のノードは、マスクメロンです。 408 00:19:34,190 --> 00:19:35,260 次のノードは、猫です。 409 00:19:35,260 --> 00:19:38,970 そして第3のノードはせの衝突である すべての言葉が起動しているため、と言う 410 00:19:38,970 --> 00:19:41,110 Cと 411 00:19:41,110 --> 00:19:42,700 >> だから、あなたのほとんどはpset6のためにこれをやった。 412 00:19:42,700 --> 00:19:45,685 あなたはpset6にハッシュテーブルをしなかった場合 あなたのような何かをしようとしました 413 00:19:45,685 --> 00:19:47,720 トライは、間違いなく、ハッシュ·テーブルを確認してください。 414 00:19:47,720 --> 00:19:50,650 あなたは間違いなく、pset6でそれをやった場合 ハッシュテーブルを確認します。 415 00:19:50,650 --> 00:19:53,610 そして、あなたはpset6でそれを行なったし、それがなかった場合 ピタッとしワークアウト 416 00:19:53,610 --> 00:19:56,150 間違いなく、それを多くのトラブルがあった ハッシュテーブルを確認します。 417 00:19:56,150 --> 00:20:01,610 だから、授業は本当に間違いなく ハッシュテーブルを確認します。 418 00:20:01,610 --> 00:20:07,130 >> しようとしたあなたの広大な少数派 うちpset6にしようとします。 419 00:20:07,130 --> 00:20:08,570 高レベルの画像。 420 00:20:08,570 --> 00:20:15,150 それは次のように、それぞれの ここで、各ノードは、子供たちのセットを持っています 421 00:20:15,150 --> 00:20:17,100 子供が文字に対応する。 422 00:20:17,100 --> 00:20:20,520 そして、すべてのノードは、述べています ねえ、私は言葉です。 423 00:20:20,520 --> 00:20:25,933 だから、この場合には、単語マクスウェル、 あなたがするAにMに従うならば 424 00:20:25,933 --> 00:20:28,530 その後、X-W-E-L-Lとはそれに1をフォロー。 425 00:20:28,530 --> 00:20:32,800 そして、あなたはこのシンボル、デルタ、これを取得する これは言葉であることを意味する意味している。 426 00:20:32,800 --> 00:20:34,780 だから、Maxwellは言葉です。 427 00:20:34,780 --> 00:20:38,430 これらのデルタは意味全体である その事は言葉で、どの 428 00:20:38,430 --> 00:20:40,360 物事はそうではありません。 429 00:20:40,360 --> 00:20:46,400 >> そうpset6では、データは、我々は保存され 私たちのいずれかのノードがあったと一緒に「私は 430 00:20:46,400 --> 00:20:52,630 言葉。 "そして、トライのクールなところ 彼らは挿入を実証している 431 00:20:52,630 --> 00:20:55,080 O(単語の長さ)内のルックアップ。 432 00:20:55,080 --> 00:20:59,450 だからマクスウェルを介して取得することです M-A-X-W-E-L-L。だから、7または8 - 433 00:20:59,450 --> 00:21:00,360 私は数えることができない - 434 00:21:00,360 --> 00:21:03,920 最後に到達するためのステップ 物事をチェックアウト。 435 00:21:03,920 --> 00:21:06,800 ここで非常に速く実装。 436 00:21:06,800 --> 00:21:10,230 ロブはリンクを経て 彼の死後に一覧。 437 00:21:10,230 --> 00:21:11,600 だから、それをチェックしてください。 438 00:21:11,600 --> 00:21:11,720 申し訳ありません。 439 00:21:11,720 --> 00:21:13,240 彼の死後におけるトライを通り抜けた。 440 00:21:13,240 --> 00:21:14,260 だから、それをチェックしてください。 441 00:21:14,260 --> 00:21:24,410 >> しかし、あなたは基本的には、各ノードが27を持っている 次のノードと1へのポインタ 442 00:21:24,410 --> 00:21:27,050 私は言葉だブール。 443 00:21:27,050 --> 00:21:31,530 方法については、ロブの死後をチェックしてください これは、実際に実装されています。 444 00:21:31,530 --> 00:21:34,750 私たちの最終的な構造は、当社の木 と二分探索木。 445 00:21:34,750 --> 00:21:41,530 したがって、これらを見て、これらが覆われていた 最近で8週、月曜日。 446 00:21:41,530 --> 00:21:46,960 木はあなたを除いて、トライに似ています 必ずしも27ノードではありません 447 00:21:46,960 --> 00:21:47,500 各ポイント。 448 00:21:47,500 --> 00:21:52,820 そして、あなたはそれぞれに、このデータを持っていない かどうかを示しステップ - 449 00:21:52,820 --> 00:21:54,030 パスは問題ではありません。 450 00:21:54,030 --> 00:22:00,870 上からのパスにトライのに対し、 ボトム、マックスウェルは、私たちにとって重要だった。 451 00:22:00,870 --> 00:22:05,270 >> しかし、各ノードは、複数あります 子供、多分。 452 00:22:05,270 --> 00:22:07,290 我々はいくつかのより多くの語彙を持っている。 453 00:22:07,290 --> 00:22:09,530 木の根 最上部にある。 454 00:22:09,530 --> 00:22:12,520 そして、我々はまさにその一番下の言う 無を持つノード 455 00:22:12,520 --> 00:22:14,530 子どもたちが葉である。 456 00:22:14,530 --> 00:22:18,040 そうトライのように、木がある ノードの構造。 457 00:22:18,040 --> 00:22:21,490 我々は行っている木の一般的なタイプ について話をすることは、二分木であり、ここで 458 00:22:21,490 --> 00:22:26,040 各ノードは子を持たないか、 1子供や二人の子供。 459 00:22:26,040 --> 00:22:28,890 だからここにこの絵ではありません なぜなら、二分木、 460 00:22:28,890 --> 00:22:32,890 ノード3は、3人の子供がいる。 461 00:22:32,890 --> 00:22:38,140 >> しかし、我々はそれらの、残りの部分を無視した場合 それをそのためのバイナリツリーです 462 00:22:38,140 --> 00:22:43,200 各ノードのプロパティを示しています ゼロ、1、または2人の子供がいる。 463 00:22:43,200 --> 00:22:46,400 では、どのようにコードでこれを表現するだろうか? 464 00:22:46,400 --> 00:22:51,460 私たちは、各ノードが持つノードを持つことができ その中の整数だけでなく、 465 00:22:51,460 --> 00:22:55,590 左側のツリーへのポインタとして ツリーへのポインタ 466 00:22:55,590 --> 00:22:59,510 右、二人の子供そう。 467 00:22:59,510 --> 00:23:00,880 これはどのように役立ちましたか? 468 00:23:00,880 --> 00:23:05,740 さて、私たちはここで、我々についてのルールを作れば ノードを置く、我々はより高速に検索を行うことができます。 469 00:23:05,740 --> 00:23:10,630 >> だから、二分探索の概念があります 木、上のすべてのノード 470 00:23:10,630 --> 00:23:14,420 左部分木より小さな値を持つ ノードよりも、我々は見ている。 471 00:23:14,420 --> 00:23:17,880 そして右の部分木のすべてのノード より大きな値を有する 472 00:23:17,880 --> 00:23:18,660 ルートノードよりも。 473 00:23:18,660 --> 00:23:20,670 今、それは言葉の多くのように見えます。 474 00:23:20,670 --> 00:23:23,770 私は二重の中に置くつもりだ 引用符とあなたの写真を示している。 475 00:23:23,770 --> 00:23:27,010 ので、ここでの例です。 二分探索木。 476 00:23:27,010 --> 00:23:28,770 我々は10で始まることがわかります。 477 00:23:28,770 --> 00:23:31,780 の左側にあるすべてのもの 図10は、それよりも小さい。 478 00:23:31,780 --> 00:23:33,130 右にすべてのもの それよりも大きい。 479 00:23:33,130 --> 00:23:37,620 >> しかし、より多くのようにそれよりも、内の各ノード ツリーは、このプロパティを表現しています。 480 00:23:37,620 --> 00:23:42,110 ので、ノード7は3を持っている 左から右へと9。 481 00:23:42,110 --> 00:23:44,440 ので、これらのすべてが10よりも小さい。 482 00:23:44,440 --> 00:23:50,470 しかし、単にそれらを見て、7があります その右側に、その左に3,9。 483 00:23:50,470 --> 00:23:56,100 同様に、右側に、15は14を有している その左に、その右に50。 484 00:23:56,100 --> 00:24:03,770 だから、あそこ3ノード、15、14、 および50は、また、有効なバイナリツリーである 485 00:24:03,770 --> 00:24:05,480 または有効な二分探索木。 486 00:24:05,480 --> 00:24:07,250 そして、彼らはすべて10より大きくしている。 487 00:24:07,250 --> 00:24:08,960 そこで、彼らは、あることが許可されている そこに右の。 488 00:24:08,960 --> 00:24:09,940 質問がありますか? 489 00:24:09,940 --> 00:24:12,580 >> 観客:どのように対処しない場合 あなたは2セブンズがありますか? 490 00:24:12,580 --> 00:24:12,850 >> R.J.アキノ:うん。 491 00:24:12,850 --> 00:24:16,550 どのようにして、2つの値を扱うか それは同じですか? 492 00:24:16,550 --> 00:24:21,465 いくつかの二分探索木を使用していることを言う 目標であるため、重複を無視 493 00:24:21,465 --> 00:24:24,280 ただ言って、私が見てきた これまでのところ、これらの事。 494 00:24:24,280 --> 00:24:28,120 あなたが言うことができるいくつかの二分探索木 ノードの内部カウントを持っている。 495 00:24:28,120 --> 00:24:32,000 他の人にそのすべてを言うかもしれない 左は以下に等しい。 496 00:24:32,000 --> 00:24:33,470 右にすべてのもの よりも大きい。 497 00:24:33,470 --> 00:24:36,520 >> それだけで何に依存します 問題は、解決しようとしているです。 498 00:24:36,520 --> 00:24:40,840 あなたは、例えば、辞書にあるので、 重複を気にしないだろう。 499 00:24:40,840 --> 00:24:41,490 あなたがそれらをスローします。 500 00:24:41,490 --> 00:24:44,719 しかし、いくつかの他の問題は、あなたが気に可能性があります。 501 00:24:44,719 --> 00:24:49,242 >> 観客:それは置くことは可能です 15の左側に1、その 502 00:24:49,242 --> 00:24:50,590 10未満である? 503 00:24:50,590 --> 00:24:51,885 >> R.J.アキノ:いいえ。 504 00:24:51,885 --> 00:24:56,570 ここで14は1であった場合、これはだろ 有効な二分探索木ではない、 505 00:24:56,570 --> 00:25:00,840 の右側にあるすべてのもののため 10はそれよりも大きくなければなりません。 506 00:25:00,840 --> 00:25:02,300 そして、我々は、なぜ表示されます。 507 00:25:02,300 --> 00:25:07,960 検索の地で私の目標である場合、 14を見つけるために、私はルートから始まる。 508 00:25:07,960 --> 00:25:08,500 だから私は見てください。 509 00:25:08,500 --> 00:25:08,710 [OK]をクリックします。 510 00:25:08,710 --> 00:25:10,670 私たちは、ルートから始まるとしている。 511 00:25:10,670 --> 00:25:12,500 10を見てください。 512 00:25:12,500 --> 00:25:16,050 >> さて、14、目標、 10よりも大きい。 513 00:25:16,050 --> 00:25:17,370 だから、右の上にある必要があります。 514 00:25:17,370 --> 00:25:21,780 これは、全体の携帯電話と非常によく似ています 我々が行った書籍の事、バイナリ 515 00:25:21,780 --> 00:25:23,720 そこに検索します。 516 00:25:23,720 --> 00:25:26,430 しかし、その代わりに、バイナリサーチの アレイにおいて、我々は、バイナリだ 517 00:25:26,430 --> 00:25:28,490 このツリーで検索。 518 00:25:28,490 --> 00:25:31,260 だから我々はまだ14を探しています。 519 00:25:31,260 --> 00:25:32,480 さて、14は15よりも小さい。 520 00:25:32,480 --> 00:25:36,430 それが私たちのツリーにですので、もし、それがなければなりません ここで、この領域にある。 521 00:25:36,430 --> 00:25:39,680 これは、の右にある必要があります 10と15の左側にある。 522 00:25:39,680 --> 00:25:42,250 >> そして私たちは、このノードをチェックしてください。 523 00:25:42,250 --> 00:25:45,790 そしてYAY、我々は14を発見した。 524 00:25:45,790 --> 00:25:46,760 私はそれを歩くつもりはありません。 525 00:25:46,760 --> 00:25:48,090 しかし、ここでのコードです。 526 00:25:48,090 --> 00:25:49,690 それは、比較的実際の 簡単で、 527 00:25:49,690 --> 00:25:52,630 これは再帰的であるため。 528 00:25:52,630 --> 00:25:55,420 我々はあなたがクイズに何をすべきかを求めることができる? 529 00:25:55,420 --> 00:25:57,000 我々は、このコードを記述することを求めることができる。 530 00:25:57,000 --> 00:25:59,170 我々は、このコードを見てするように依頼することができ このコードを変更して、何を説明 531 00:25:59,170 --> 00:26:00,210 それはやっている。 532 00:26:00,210 --> 00:26:00,390 うん。 533 00:26:00,390 --> 00:26:00,770 質問? 534 00:26:00,770 --> 00:26:04,240 >> 観客:これらのスライドは、しようとしている 彼らは最後の時間だったように利用できるように? 535 00:26:04,240 --> 00:26:04,740 >> R.J.アキノ:はい。 536 00:26:04,740 --> 00:26:06,460 したがって、これらのスライドは間違いでしょう 掲載される。 537 00:26:06,460 --> 00:26:08,640 >> 読者:彼らが実際に掲載しています 今ウェブサイトで。 538 00:26:08,640 --> 00:26:10,020 ダビデはまさにそれをやった。 539 00:26:10,020 --> 00:26:12,720 >> R.J.アキノ:スライドはある 今ウェブサイトで。 540 00:26:12,720 --> 00:26:16,420 私はおそらくいくつかのアップパッチを適用します タイプミスは私が指摘して修正。 541 00:26:16,420 --> 00:26:19,940 しかし、現在があります サイト上のバージョン。 542 00:26:19,940 --> 00:26:21,820 その他、私たちがしなければ、あなたを求めることができるもの - 543 00:26:21,820 --> 00:26:23,790 挿入を記述します。 544 00:26:23,790 --> 00:26:27,490 の反復バージョンを書く 先ほどお見せした再帰関数 545 00:26:27,490 --> 00:26:32,520 またはのように、これらのことについて話す つまり、文章内の段落、。 546 00:26:32,520 --> 00:26:35,760 実行時間を比較して説明する あなたがバイナリを使用したいと思う 547 00:26:35,760 --> 00:26:39,200 代わりのための探索木 たとえば、表をハッシュ。 548 00:26:39,200 --> 00:26:43,580 >> だから、これらの構造を理解する かなり深いレベルで。 549 00:26:43,580 --> 00:26:47,440 それらを書く方法を理解、どのように それらについて話をどのように、それらを使用しています。 550 00:26:47,440 --> 00:26:50,270 そして、あなたはすべての設定されます。 551 00:26:50,270 --> 00:26:50,630 質問? 552 00:26:50,630 --> 00:26:55,070 >> 読者:あなたが書いている あなたはどのように二分探索木、 553 00:26:55,070 --> 00:27:01,460 どのような値にするかを決定 ルートとしてそれを作る? 554 00:27:01,460 --> 00:27:06,120 >> R.J.アキノ:そこで問題は、何であったか 値は、rootとして作るのですか? 555 00:27:06,120 --> 00:27:08,760 あなたのコードに応じて、 グローバルなルートを持つことができる。 556 00:27:08,760 --> 00:27:14,290 だから、そうで持っていたかもしれない グローバルハッシュテーブルをpset6。 557 00:27:14,290 --> 00:27:18,640 または、ルートを渡すかもしれません 引数として。 558 00:27:18,640 --> 00:27:23,810 ここので、この検索機能 引数ノード*を取ります。 559 00:27:23,810 --> 00:27:27,420 だから、あなたはどのようなことが起こるのノード 見すると、治療しているものです 560 00:27:27,420 --> 00:27:31,510 ルートとして、あなたがそれをインチ渡すとき 561 00:27:31,510 --> 00:27:32,320 そして、私はすべてのセットです。 562 00:27:32,320 --> 00:27:33,480 それらは私のスライドです。 563 00:27:33,480 --> 00:27:35,940 次の人はスワップを来ることができる ラップトップとマイク入力。 564 00:27:35,940 --> 00:27:47,390 565 00:27:47,390 --> 00:27:49,760 >> ROBボーデン:私は私が持っているかもしれないと思う 別々にその質問を解釈した。 566 00:27:49,760 --> 00:27:53,826 しかし、私はあなたが持っている場合、としてそれを解釈 我々はどのように番号1,2、および3、 567 00:27:53,826 --> 00:27:56,720 2ルートを作るために知っている 1または3とは対照的に? 568 00:27:56,720 --> 00:27:59,480 我々は2ルートを作る場合、それはうまくだ 左右に1および3。 569 00:27:59,480 --> 00:28:04,610 1がルートの場合しかし、それはへの1だ 右、上、右2、3。 570 00:28:04,610 --> 00:28:10,880 そうデフォルトでは、知らない 何ルートを作る。 571 00:28:10,880 --> 00:28:15,400 そして任意のアルゴリズムのために我々はに期待している あなたは、単に最初のものをあなたに与える 572 00:28:15,400 --> 00:28:16,680 インサートは、ルートになります。 573 00:28:16,680 --> 00:28:19,890 または私たちはあなたのバイナリツリーを与えるだろうと それはルートがすでに存在しています。 574 00:28:19,890 --> 00:28:24,760 しかし、他のアルゴリズムは、そのような存在 ルートは、IFますように、更新されます 575 00:28:24,760 --> 00:28:28,370 それは1、2の状況で終わる、 3、それは自動的に更新してしまう 576 00:28:28,370 --> 00:28:30,900 ように、新しいルート2にする それはまだうまくバランスです。 577 00:28:30,900 --> 00:28:33,750 578 00:28:33,750 --> 00:28:34,833 >> ANGELA LI:クール。 579 00:28:34,833 --> 00:28:36,170 ねえ、みんな。 580 00:28:36,170 --> 00:28:37,810 私はアンジェラだ。 581 00:28:37,810 --> 00:28:42,490 と私はC言語を仕上げるつもりだ して、当社のウェブの一部に入る 582 00:28:42,490 --> 00:28:43,120 技術 - 583 00:28:43,120 --> 00:28:46,570 HTTP、HTML、およびCSS。 584 00:28:46,570 --> 00:28:49,610 だから、最初にバッファであり、 オーバーフロー攻撃。 585 00:28:49,610 --> 00:28:53,070 それでは、このコードを見てみましょう。 586 00:28:53,070 --> 00:28:54,260 それは非常に簡単です。 587 00:28:54,260 --> 00:28:55,460 関数fooがあります。 588 00:28:55,460 --> 00:28:56,990 そして、それは何も返しません。 589 00:28:56,990 --> 00:29:00,950 しかし、それはポインタを取り込み バーと呼ばれる文字列へ。 590 00:29:00,950 --> 00:29:04,920 >> そして、それは、これを宣言するだろう 文字のバッファ、 591 00:29:04,920 --> 00:29:07,690 12スロットを持つ配列。 592 00:29:07,690 --> 00:29:11,730 それだけである、memcpyをを使用しています 1アドレスからのコピー機能 593 00:29:11,730 --> 00:29:12,910 別のものに。 594 00:29:12,910 --> 00:29:19,400 だから、これはにコピーしようとしている 何からの私達のバッファー 595 00:29:19,400 --> 00:29:21,140 バーは、を指している。 596 00:29:21,140 --> 00:29:24,640 何が間違っているので、任意のアイデア このコードでは? 597 00:29:24,640 --> 00:29:27,568 598 00:29:27,568 --> 00:29:30,830 >> 観客:バーはより長い場合 Cは、それらは上書きされます。 599 00:29:30,830 --> 00:29:31,520 >> ANGELA LI:ええ、その通りです。 600 00:29:31,520 --> 00:29:34,200 私たちは、そのバー保証はありません 12よりも小さいことになるだろう。 601 00:29:34,200 --> 00:29:36,080 私達はちょうどいくつかの任意の数の12を作った。 602 00:29:36,080 --> 00:29:38,380 そして、我々のような、のことを期待しましょう​​し、 我々のユーザ入力は、以下である 603 00:29:38,380 --> 00:29:40,440 12文字の長さ。 604 00:29:40,440 --> 00:29:46,320 理想的な世界には、私たちの入力がある場合 常に期待どおり、その後、我々は買ってあげる 605 00:29:46,320 --> 00:29:47,550 こんにちは、のようなもの。 606 00:29:47,550 --> 00:29:48,920 つまり、12文字未満です。 607 00:29:48,920 --> 00:29:51,870 これは、char型のCに読み込まれます。 608 00:29:51,870 --> 00:29:53,280 そして、我々はそれに何かをする。 609 00:29:53,280 --> 00:29:54,800 それは本当に問題ではありません。 610 00:29:54,800 --> 00:29:59,740 >> しかし、悪意のある人が行うことができます もっとこのようなものは、それら 611 00:29:59,740 --> 00:30:04,760 バーがポイントしているどのような私たちを与える、 それは、この巨大な配列を指すようになるだろう 612 00:30:04,760 --> 00:30:06,280 ちょうどAの。 613 00:30:06,280 --> 00:30:10,680 そして、これは12よりもずっと長い。 614 00:30:10,680 --> 00:30:13,830 だから、すべての道を行くために起こっている ダウンここにどこに戻る 615 00:30:13,830 --> 00:30:15,420 アドレスは、れていました。 616 00:30:15,420 --> 00:30:17,860 それでは、この関数を言わせて fooのと呼ばれています。 617 00:30:17,860 --> 00:30:20,970 たぶんfooが他のいくつかで呼ばれていた 主によって呼び出された関数で、。 618 00:30:20,970 --> 00:30:24,890 fooが実行されているときので、それが必要である 場所に戻るために知っておく。 619 00:30:24,890 --> 00:30:29,130 >> fooが名前のいくつかの関数から呼び出された場合 バズ、それはだということを知っている必要があります 620 00:30:29,130 --> 00:30:30,250 戻っバズに行くようになった。 621 00:30:30,250 --> 00:30:34,040 そして、それはどのようなこのリターンアドレスです ダウンここに私たちを語っている。 622 00:30:34,040 --> 00:30:38,340 しかし、我々はいくつかの他のとそれを上書きした場合 アドレスは、この場合、これは 623 00:30:38,340 --> 00:30:42,650 のアドレスの表現 このバッファの最初の方は、 624 00:30:42,650 --> 00:30:45,240 実際に何が起こるだろうことになる 代わりに戻ってバズに戻る、 625 00:30:45,240 --> 00:30:48,470 私たちの関数を呼び出している、それだけだ このコードの前に行くつもり。 626 00:30:48,470 --> 00:30:53,930 >> そして、これがあった場合、以下の原因 悪質なハッカーの男が来て、 627 00:30:53,930 --> 00:30:56,820 これを注射し、多分この量 Aの実際にA社ではありません。 628 00:30:56,820 --> 00:31:02,030 そして、それは実際には、コードのその休憩 お使いのコンピュータか何か。 629 00:31:02,030 --> 00:31:05,930 したがって、この種の約守備すべき 事、あなたはそれを前提としたことがないしなければならない 630 00:31:05,930 --> 00:31:09,120 ユーザ入力が確実である 文字の量。 631 00:31:09,120 --> 00:31:13,310 たとえば、あなたは何をしていた スペルチェック、あなたは言葉があったことを言われていた 632 00:31:13,310 --> 00:31:15,580 わずか40文字になるだろう 長い最大。 633 00:31:15,580 --> 00:31:16,570 そして、それは良かった。 634 00:31:16,570 --> 00:31:20,150 >> しかし、そうでない場合、あなたはしなければならない わずか45に読んでください 635 00:31:20,150 --> 00:31:21,520 当時の文字。 636 00:31:21,520 --> 00:31:24,430 そうしないと、上書きされることがあります あなたのバッファ。 637 00:31:24,430 --> 00:31:26,140 その上の任意の質問。 638 00:31:26,140 --> 00:31:26,733 うん。 639 00:31:26,733 --> 00:31:28,850 >> 読者:あなただけ話すことができた これらについて、もう少し? 640 00:31:28,850 --> 00:31:29,790 >> ANGELA LI:申し訳ありません。 641 00:31:29,790 --> 00:31:31,040 はい。 642 00:31:31,040 --> 00:31:32,813 643 00:31:32,813 --> 00:31:35,870 >> 観客:MICはちょうどビデオ用です。 644 00:31:35,870 --> 00:31:37,640 私が試してみて、投影します。 645 00:31:37,640 --> 00:31:39,900 みんな、こんにちは。 646 00:31:39,900 --> 00:31:40,920 SUP? 647 00:31:40,920 --> 00:31:45,330 それではでいくつかのことを見ていきましょう あなたが使用してきたCS50ライブラリ、 648 00:31:45,330 --> 00:31:49,072 主に、すべての学期、 ユーザー入力を取得します。 649 00:31:49,072 --> 00:31:53,140 ご存知のように、あなたはCS50を含む ただCS50.hを実行して、ライブラリ、どの 650 00:31:53,140 --> 00:31:55,660 すべてのプロトタイプが含まれています のようなときに使用できる機能、 651 00:31:55,660 --> 00:31:58,640 GetStringメソッドとGetIntであり、 GetFloat指定、エトセトラ。 652 00:31:58,640 --> 00:32:02,870 そして、この1行は、CS50にあります 文字列を定義するライブラリ、どの 653 00:32:02,870 --> 00:32:05,380 あなたたちは、すべて今では知っている *単なる文字です。 654 00:32:05,380 --> 00:32:07,900 >> しかし、ここでは覗いてみましょう GetStringメソッドがどのように機能する。 655 00:32:07,900 --> 00:32:10,010 これは非常に簡略版です。 656 00:32:10,010 --> 00:32:15,090 あなたはCS50ライブラリファイルをプルアップすることができます manuals.CS50.net、私は思うから。 657 00:32:15,090 --> 00:32:16,750 そして、あなたはを通して読むことができます 実際の関数。 658 00:32:16,750 --> 00:32:19,330 しかし、これはいくつかをカバー 重要な部分。 659 00:32:19,330 --> 00:32:23,870 だから我々は、いくつかのバッファを作成しました いくつかの能力を持つ。 660 00:32:23,870 --> 00:32:27,570 そして、私たちがやっていることは、我々は1文字を取得されている 標準Nから一度に。 661 00:32:27,570 --> 00:32:30,910 ここでユーザが入力するわけです コンソール内のテキスト。 662 00:32:30,910 --> 00:32:33,430 >> そして私たちが読み込まするつもりだ それは新しいものではないのものであれば、文字 663 00:32:33,430 --> 00:32:37,220 ラインと、それはそのファイルの終わりではない 標準入力の終わりである。 664 00:32:37,220 --> 00:32:45,690 そして我々が読んですべての文字に、 その文字は追加してしまう場合は、 665 00:32:45,690 --> 00:32:50,120 私たちが読んだ文字数 で、それが私たちの能力を超えている、 666 00:32:50,120 --> 00:32:53,490 それから、私たちがやっていることは我々だけで私たちのサイズを変更している バッファには、倍の長だように。 667 00:32:53,490 --> 00:32:56,950 そこで再度、これは、バッファから守る オーバーフロー攻撃、あなたが読んでいるので 668 00:32:56,950 --> 00:32:58,315 当時の文字。 669 00:32:58,315 --> 00:33:02,290 そしてどの時点であなたも読み込また場合 多くの、あなたは自分のバッファを展開します。 670 00:33:02,290 --> 00:33:03,330 あなたは2を掛け。 671 00:33:03,330 --> 00:33:05,510 そして、あなたはより多くの部屋を持っています。 672 00:33:05,510 --> 00:33:09,120 >> そうでなければ、あなただけの追加 バッファするキャラクター。 673 00:33:09,120 --> 00:33:15,080 そして、あなたはすべての中で読んだ後に 文字は、バッファを縮小する 674 00:33:15,080 --> 00:33:18,510 戻って通常のサイズに至るまで、追加 ヌル終端し、Return。 675 00:33:18,510 --> 00:33:21,880 676 00:33:21,880 --> 00:33:24,960 それでは、GetIntで見てみましょう。 677 00:33:24,960 --> 00:33:27,700 皆さんは、これを読むことができます? 678 00:33:27,700 --> 00:33:30,710 私は少しでズームすることができます。 679 00:33:30,710 --> 00:33:33,410 680 00:33:33,410 --> 00:33:34,660 私は、コンピュータがどのように動作するか分からない。 681 00:33:34,660 --> 00:33:40,840 682 00:33:40,840 --> 00:33:41,270 気にしないで。 683 00:33:41,270 --> 00:33:42,520 私は適切にズームインすることができません。 684 00:33:42,520 --> 00:33:47,500 685 00:33:47,500 --> 00:33:48,770 >> これは本当に難しいです。 686 00:33:48,770 --> 00:33:49,180 ごめんなさい。 687 00:33:49,180 --> 00:33:51,490 ちょうどこれを見てみましょう。 688 00:33:51,490 --> 00:33:57,140 それでは、GetIntではないと、最初の読み込みで GetStringメソッドから文字列を、その 689 00:33:57,140 --> 00:33:59,250 我々は以前に実装しました。 690 00:33:59,250 --> 00:34:02,945 そして重要なのは、ここで注意すべき ある場合、それは結局、この共有 691 00:34:02,945 --> 00:34:06,400 読書ではなく、実際には文字列のようなものです その後、我々はちょうどにINT_MAXを返す 692 00:34:06,400 --> 00:34:09,409 失敗を表す。 693 00:34:09,409 --> 00:34:12,645 なぜ我々は代わりにINT_MAXを返します 負の1または1の? 694 00:34:12,645 --> 00:34:13,895 任意のアイデア? 695 00:34:13,895 --> 00:34:16,853 696 00:34:16,853 --> 00:34:19,350 >> 観客:[聞こえない] 1にマイナス1。 697 00:34:19,350 --> 00:34:20,070 >> ANGELA LI:ええ、その通りです。 698 00:34:20,070 --> 00:34:24,560 だから、あなただけの必要への道になりそうだ 入力1または負の1を求めるメッセージが表示されたら 699 00:34:24,560 --> 00:34:27,469 n番目とn番目の何maxesため。 700 00:34:27,469 --> 00:34:27,969 それは巨大だ。 701 00:34:27,969 --> 00:34:29,690 あなたは、おそらくそれを使用するつもりはない。 702 00:34:29,690 --> 00:34:32,690 だから、これはに設計上の決定のようです あなたが誤っていないことを確認してください 703 00:34:32,690 --> 00:34:38,540 エラーを返すか、返さない 解析された可能性があります1、 704 00:34:38,540 --> 00:34:41,199 正しい答えとして。 705 00:34:41,199 --> 00:34:45,110 だから、ラインが存在しない場合は、 我々は、INT-MAXを返す。 706 00:34:45,110 --> 00:34:48,090 そうでなければ、我々は、sscanf関数を使う これscanfのようなものです。 707 00:34:48,090 --> 00:34:49,449 しかし、それは文字列から読み取ります。 708 00:34:49,449 --> 00:34:54,310 >> そして、我々は、このフォーマットさを持っている %I%cである文字列。 709 00:34:54,310 --> 00:34:57,440 そして、我々がしようとするとそれと一致 どのようなユーザーは、私たちに与えた。 710 00:34:57,440 --> 00:35:01,420 私たちは、一致したものの数が欲しい 我々は唯一のことを意味し1であることが 711 00:35:01,420 --> 00:35:04,940 本当に整数を一致させたい 多分白に囲まれて 712 00:35:04,940 --> 00:35:06,840 スペース、そうでないかもしれない。 713 00:35:06,840 --> 00:35:10,710 この場合は、あなたが何かを入れている場合 バーのように、バーは、まったく一致していません 714 00:35:10,710 --> 00:35:14,400 が存在する必要があるので、 開始時に整数。 715 00:35:14,400 --> 00:35:17,060 そうSSCANが0になったことがない。 716 00:35:17,060 --> 00:35:19,640 だから、それを返しません。 717 00:35:19,640 --> 00:35:23,850 >> あるいは、何かを入れている場合 様1、2、3、A、B、C、その収め 718 00:35:23,850 --> 00:35:27,180 両方の整数だけでなく、 それの後の文字。 719 00:35:27,180 --> 00:35:29,990 だから、sscanf関数は、2を返します 理想的ではないこともある。 720 00:35:29,990 --> 00:35:34,620 あなたはしたくない1、2、3、A、 A、B、Cの有効なint型であると。 721 00:35:34,620 --> 00:35:36,990 また、動作しないようにします。 722 00:35:36,990 --> 00:35:38,530 しかし、あなたは50のようなものに入れと言う。 723 00:35:38,530 --> 00:35:42,460 それはつまり、%iを一致します それがn個に読み込ま取得します。 724 00:35:42,460 --> 00:35:44,790 そして今、nは番号50を含んでいます。 725 00:35:44,790 --> 00:35:46,110 そして、あなたはそれを返すことができます。 726 00:35:46,110 --> 00:35:49,270 >> そうしないと、再試行を押してください。 727 00:35:49,270 --> 00:35:55,790 そしてそれはちょうどまで何度も行く あなたは、ユーザからの適切な入力を得る。 728 00:35:55,790 --> 00:35:56,891 その上の任意の質問? 729 00:35:56,891 --> 00:36:02,182 >> 観客:だからだったかどうかを印刷する [聞こえない]にGetIntでの値 730 00:36:02,182 --> 00:36:06,250 それだけで、整数値と最大値でしょうか? 731 00:36:06,250 --> 00:36:07,440 >> ANGELA LI:うん。 732 00:36:07,440 --> 00:36:11,780 あなたはGetIntでの使用であれば、あなたが想定する必要があります あなたがするn番目の最大値を望んでいないことを 733 00:36:11,780 --> 00:36:15,328 あなたが行っているので、有効な入力であること それが悪かったことを前提としています。 734 00:36:15,328 --> 00:36:27,740 >> 観客:我々は、char cを持っていなかった場合 1、2、3、サムに入れて誰かがそれだろ 735 00:36:27,740 --> 00:36:29,430 まだ1、2、3のために働く? 736 00:36:29,430 --> 00:36:29,750 >> ANGELA LI:私はそれが仕事だと思う。 737 00:36:29,750 --> 00:36:33,340 しかし、あなたは123Samはしたくない 利用者が有効な入力であること。 738 00:36:33,340 --> 00:36:34,670 それは本当にint型ではありません。 739 00:36:34,670 --> 00:36:36,840 だから、公正いないようです int型としてそれを解析します。 740 00:36:36,840 --> 00:36:40,910 741 00:36:40,910 --> 00:36:42,160 [OK]をクリックします。 742 00:36:42,160 --> 00:36:45,800 その場合は、の動きを聞かせて インターネットに。 743 00:36:45,800 --> 00:36:49,120 だから、HTTPは言語ではありません。 744 00:36:49,120 --> 00:36:56,060 HTTPはのための基準のセットだけです どのようにして、クライアントから物事を送り、 745 00:36:56,060 --> 00:36:57,280 つまり、サーバーに、あなたです。 746 00:36:57,280 --> 00:36:59,730 それは、ウェブ上の他の人の。 747 00:36:59,730 --> 00:37:02,900 >> だから、HTTPはハイパーテキストの略 プロトコルを転送します。 748 00:37:02,900 --> 00:37:04,610 それは、心と魂だ Web全体の。 749 00:37:04,610 --> 00:37:07,050 ハイパーテキストの一部だけ HTMLを指します。 750 00:37:07,050 --> 00:37:10,690 転送のようなクライアントである あなたがに要求を送信します 751 00:37:10,690 --> 00:37:13,060 回答を与えるサーバー。 752 00:37:13,060 --> 00:37:16,380 およびプロトコルが行う方法だけである サーバーが動作するように期待する? 753 00:37:16,380 --> 00:37:19,960 そして、どのように振る舞うことになっている あなたがこれを合理化することができるように 754 00:37:19,960 --> 00:37:21,920 通信プロセス? 755 00:37:21,920 --> 00:37:26,650 >> だから、HTTP要求は、このような多くのことを見てください。 756 00:37:26,650 --> 00:37:28,070 GETリクエストのタイプです。 757 00:37:28,070 --> 00:37:31,220 君たちはGETリクエストを見てきました およびPOST要求。 758 00:37:31,220 --> 00:37:36,690 そこに、その2つ目は、/私は、それはです URIまたはどこのURLだけ 759 00:37:36,690 --> 00:37:38,140 ホスト内で行ってみたい。 760 00:37:38,140 --> 00:37:44,140 したがって、この要求が求めている www.facebook.com /私のようなページを、。 761 00:37:44,140 --> 00:37:45,300 そして、それはGETリクエストです。 762 00:37:45,300 --> 00:37:51,020 [このHTTP/1.1は、それだけだ 使用しているHTTPのバージョン。 763 00:37:51,020 --> 00:37:55,020 それは、ほとんどの場合1.1です。 764 00:37:55,020 --> 00:37:56,880 >> した後、束があります あまりにも他のものの。 765 00:37:56,880 --> 00:38:02,510 もしあれば、実際には、これらを見ることができます あなたがしているときにコンソールを開く 766 00:38:02,510 --> 00:38:03,770 Webブラウジング。 767 00:38:03,770 --> 00:38:07,290 応答が何かを見て このシリーズをもっと。 768 00:38:07,290 --> 00:38:09,620 上部は、再び、である HTTPの種類、使用している 769 00:38:09,620 --> 00:38:12,310 ステータスコードが続く。 770 00:38:12,310 --> 00:38:14,700 だから、200 OKがすべてが働いている。 771 00:38:14,700 --> 00:38:16,200 ここにあなたのコンテンツがある。 772 00:38:16,200 --> 00:38:17,390 あなたのコンテンツが続くとしている。 773 00:38:17,390 --> 00:38:21,730 そして、それはあなたを教えてくれますどのような種類 あまりにも内容や他のものの。 774 00:38:21,730 --> 00:38:24,620 >> ステータスコードは、いくつかあります あなたが知っておくべき重要なもの。 775 00:38:24,620 --> 00:38:26,460 200 OKがすべての黄金のようなものです。 776 00:38:26,460 --> 00:38:28,490 すべてが動作します。 777 00:38:28,490 --> 00:38:29,710 403禁止。 778 00:38:29,710 --> 00:38:32,910 あなたが忘れてしまった場合は、おそらく見てきたこの 適切に何かします。chmodする。 779 00:38:32,910 --> 00:38:34,510 それはあなたが持っていないことを意味します への適切なアクセス権 780 00:38:34,510 --> 00:38:36,210 サーバー上のことにアクセスします。 781 00:38:36,210 --> 00:38:38,110 それはようなものだ、いや、あなたはそれを見ることはできません。 782 00:38:38,110 --> 00:38:39,780 404は物が存在しないことを意味します。 783 00:38:39,780 --> 00:38:40,400 見つかりません。 784 00:38:40,400 --> 00:38:41,640 おそらく、多くのことを見てきました。 785 00:38:41,640 --> 00:38:45,510 >> 500内部サーバーエラーは、通常、 何かが側に間違っていたような 786 00:38:45,510 --> 00:38:46,460 サーバーの。 787 00:38:46,460 --> 00:38:50,830 だから、pset7を実装したところ、 あなたは、PHPのエラーが発生した場合は、可能性 788 00:38:50,830 --> 00:38:53,890 実際にページに移動し、参照してください。 PHPのエラーのものの全体の束。 789 00:38:53,890 --> 00:38:56,900 しかし、それは通常は発生しません、 ウェブサイトは本当にしたくないので、 790 00:38:56,900 --> 00:38:58,830 自分のサイトが壊れている理由を教えてくれ。 791 00:38:58,830 --> 00:39:03,370 彼らはおそらく戻ります 500内部サーバーエラー。 792 00:39:03,370 --> 00:39:06,120 >> そして私はティーポットだ418があります。 793 00:39:06,120 --> 00:39:07,910 約全体的な話があります だからこそことだ。 794 00:39:07,910 --> 00:39:09,860 しかし、あなたはそれについて読むことができます あなた自身の時間に。 795 00:39:09,860 --> 00:39:11,450 の全体の束があります あまりにも他のステータスコード。 796 00:39:11,450 --> 00:39:12,700 しかし、これらはものです あなたが知っている必要があります。 797 00:39:12,700 --> 00:39:15,660 798 00:39:15,660 --> 00:39:18,610 それでは、HTMLについて話しましょう​​。 799 00:39:18,610 --> 00:39:22,180 HTML、覚えて、ではありません プログラミング言語。 800 00:39:22,180 --> 00:39:23,510 これは、マークアップ言語です。 801 00:39:23,510 --> 00:39:25,210 すなわち、コンテンツを記述する意味する。 802 00:39:25,210 --> 00:39:30,440 これはHTML文書がどのようなものかを説明します それがどのように見えるかのようにか 803 00:39:30,440 --> 00:39:32,230 しかし、それがどのように構造化されています。 804 00:39:32,230 --> 00:39:36,110 >> だから、構造を定義し、 ウェブページの意味。 805 00:39:36,110 --> 00:39:37,830 これは段落です、のようなものだ。 806 00:39:37,830 --> 00:39:40,060 これは、順序付けられたリストである。 807 00:39:40,060 --> 00:39:42,360 これは私のページのセクションのようなものです。 808 00:39:42,360 --> 00:39:43,260 ここではタイトルです。 809 00:39:43,260 --> 00:39:44,310 それはそのようなものを行います。 810 00:39:44,310 --> 00:39:48,770 それは、そのいずれかののスタイルを設定していないため それは、CSSで行うものです。 811 00:39:48,770 --> 00:39:50,270 そして、それはシリーズのように見える ネストされたタグの。 812 00:39:50,270 --> 00:39:54,720 だから、本当に基本的な例を使用するには HTMLページには、DOCTYPEを持っている 813 00:39:54,720 --> 00:39:56,720 そこまで宣言。 814 00:39:56,720 --> 00:40:00,940 >> このDOCTYPE宣言がある 我々はHTML5を使用している、と述べた。 815 00:40:00,940 --> 00:40:03,370 その後、大きなHTMLタグを持っている。 816 00:40:03,370 --> 00:40:05,230 それは、頭と体が含まれています。 817 00:40:05,230 --> 00:40:06,970 頭の中には、タイトルを持っている。 818 00:40:06,970 --> 00:40:12,950 つまり、タイトルに行くものだ お使いのブラウザのバー。 819 00:40:12,950 --> 00:40:15,810 当社は、リンクリンクタグを持っている 外部スタイルシートで。 820 00:40:15,810 --> 00:40:19,880 そして、我々は、プルスクリプトがある 外部のJavaScriptからも同様。 821 00:40:19,880 --> 00:40:23,750 >> して、私たちの体の中に実際にある ページに表示される内容。 822 00:40:23,750 --> 00:40:28,210 私たちは、段落を持って、それからだ その段落内の画像。 823 00:40:28,210 --> 00:40:32,000 こちらは、子猫の写真です。 824 00:40:32,000 --> 00:40:35,840 注目し、そのイメージ タグは、それ自体を閉じます。 825 00:40:35,840 --> 00:40:41,760 だからではなく、画像を開く そして、あなたは、別/画像をしている 826 00:40:41,760 --> 00:40:47,500 ちょうどこの少しスラッシュを持っている ここでは、それを閉じている。 827 00:40:47,500 --> 00:40:53,670 とイメージタグも、この鍵を持っている value属性は、ALTと呼ばれる。 828 00:40:53,670 --> 00:40:56,970 つまり、その代替テキストです あなたはその上に置くと発生します。 829 00:40:56,970 --> 00:41:03,170 >> ほとんどのHTML要素には、いくつかの重要な価値を持っている あなたはそれを与えることができるもの、様々な 830 00:41:03,170 --> 00:41:04,420 カスタマイズ。 831 00:41:04,420 --> 00:41:06,230 832 00:41:06,230 --> 00:41:08,705 うん。 833 00:41:08,705 --> 00:41:09,955 >> 観客:[聞こえない]。 834 00:41:09,955 --> 00:41:17,510 835 00:41:17,510 --> 00:41:19,680 >> ANGELA LI:まあ、だから、だ タグの属性。 836 00:41:19,680 --> 00:41:25,320 あなたはjQueryを使用していたのであれば、あなたは可能性 選択image.getAttributeを行う。 837 00:41:25,320 --> 00:41:27,930 そして、あなたは検索することができ alt属性を取得します。 838 00:41:27,930 --> 00:41:31,040 そして、それはあなたの子猫を与えるだろう。 839 00:41:31,040 --> 00:41:37,400 あなたは、HTML、入力中のフォームを覚えていれば 要素は、name属性を持つことになります。 840 00:41:37,400 --> 00:41:41,870 そして、それはPHPが送信するために使用するものだ フォームが送信されたリクエスト。 841 00:41:41,870 --> 00:41:44,762 842 00:41:44,762 --> 00:41:50,064 >> 読者:あなたは何かを言及しました あなたはkittens.jpgを使用した場合、または方法について 843 00:41:50,064 --> 00:41:54,410 不足しているが持っているもの ファイルフォルダ、またはその他のファイル? 844 00:41:54,410 --> 00:41:54,750 >> ANGELA LI:はい。 845 00:41:54,750 --> 00:41:57,010 だから、これは相対的と呼ばれるものです。 パス、私は与えていないだから 846 00:41:57,010 --> 00:41:58,740 あなたの完全なパス。 847 00:41:58,740 --> 00:42:05,160 あなたはfopenを行う場合、これは時にC言語でのようなものです いくつかのファイルを、あなたのfopen hi.txtている場合は、その 848 00:42:05,160 --> 00:42:09,190 hi.txtは、同じであると予想される ディレクトリ、あなたはそれをより多くを与えない限り、 849 00:42:09,190 --> 00:42:11,530 複雑なパス。 850 00:42:11,530 --> 00:42:14,900 >> 読者:あなたは指定することができます どのフォルダ[聞こえない]? 851 00:42:14,900 --> 00:42:17,660 >> ANGELA LI:うん。 852 00:42:17,660 --> 00:42:19,370 そして、あなたはそれを行う方法を調べることができます。 853 00:42:19,370 --> 00:42:23,480 しかし、私はkittens.jpgを取得したい場合は、 親ディレクトリの、私はどうなる 854 00:42:23,480 --> 00:42:24,730 。。/ kittens.jpg。 855 00:42:24,730 --> 00:42:29,680 856 00:42:29,680 --> 00:42:30,930 うん。 857 00:42:30,930 --> 00:42:32,960 858 00:42:32,960 --> 00:42:33,760 申し訳ありません。 859 00:42:33,760 --> 00:42:34,045 うん。 860 00:42:34,045 --> 00:42:35,700 男ああ、私は質問を忘れてしまった。 861 00:42:35,700 --> 00:42:36,460 質問は何でしたか? 862 00:42:36,460 --> 00:42:39,570 ああ、質問は、kittens.jpgた 同じディレクトリにあると予想される? 863 00:42:39,570 --> 00:42:40,630 そしてこの場合には、である。 864 00:42:40,630 --> 00:42:44,030 しかし、あなたはまた、それを特定のパスを与えることができます それはである必要はありませんように。 865 00:42:44,030 --> 00:42:47,100 866 00:42:47,100 --> 00:42:48,350 いい? 867 00:42:48,350 --> 00:42:50,190 868 00:42:50,190 --> 00:42:51,350 >> CSS。 869 00:42:51,350 --> 00:42:55,420 だからCSSは、HTMLのような、ではありません プログラミング言語。 870 00:42:55,420 --> 00:42:58,250 CSSは、スタイリング·ルールのほんのシリーズです。 871 00:42:58,250 --> 00:43:00,130 これは、カスケードスタイルシートの略です。 872 00:43:00,130 --> 00:43:03,910 そして、あなたは一緒にそれを使用 スタイルページへのHTMLと。 873 00:43:03,910 --> 00:43:08,140 だから、3つの方法があります それを含むことができる。 874 00:43:08,140 --> 00:43:11,950 あなたがそれを行うことができる一つの方法は、頭の中にある あなたのHTMLの部分は、あなただけのことができます 875 00:43:11,950 --> 00:43:15,410 styleタグを開き、スティック そこにいくつかのCSSルール。 876 00:43:15,410 --> 00:43:16,759 それはかなりOKです。 877 00:43:16,759 --> 00:43:17,228 うん。 878 00:43:17,228 --> 00:43:21,449 >> 読者:あなたはそれらを置くことができ みましょう、その間のスタイルタグ 879 00:43:21,449 --> 00:43:22,860 たとえば、身体および/ボディ。 880 00:43:22,860 --> 00:43:27,400 そして、あなたはスタイリングになります 体内で唯一。 881 00:43:27,400 --> 00:43:28,840 >> ANGELA LI:あなたは可能性があります。 882 00:43:28,840 --> 00:43:29,590 それがうまくいく。 883 00:43:29,590 --> 00:43:33,990 スタイリングなのでしかし、あなたは、いけない に行く必要があり、メタデータの種類 884 00:43:33,990 --> 00:43:35,890 あなたのドキュメントのhead。 885 00:43:35,890 --> 00:43:38,280 ボディは実際には含まれている必要があります 何が実際に起こっている 886 00:43:38,280 --> 00:43:39,420 ページ上に表示されます。 887 00:43:39,420 --> 00:43:42,155 >> 観客:だから、スタイルを置くところ あなたの頭の中でスタイルに 888 00:43:42,155 --> 00:43:43,930 Webページ全体、右? 889 00:43:43,930 --> 00:43:44,300 >> ANGELA LI:うん。 890 00:43:44,300 --> 00:43:50,470 したがって、これらのCSSルールは、ここにスタイルを入れて に基づいて、ページ全体に適用されます 891 00:43:50,470 --> 00:43:52,100 そのセレクタ。 892 00:43:52,100 --> 00:43:57,090 ので、それを行うには良い方法ではなく、ある あなたの頭の中でスタイルタグを持っていることの、 893 00:43:57,090 --> 00:44:00,430 あなたは外部のスタイルには、このリンクを持っている 私はあなたを示したシート状 894 00:44:00,430 --> 00:44:01,980 前の例。 895 00:44:01,980 --> 00:44:05,920 これが何をするかは、それがしようとし、見つけたです style.cssにファイルし、それを引っ張る 896 00:44:05,920 --> 00:44:08,470 中や使用していますと ページのスタイル。 897 00:44:08,470 --> 00:44:10,500 そして、あなたのstyle.cssだろう ちょうどこのように見えます。 898 00:44:10,500 --> 00:44:13,330 それだけで、CSSの束になります。 899 00:44:13,330 --> 00:44:16,210 >> そして最後に、もう一つの方法は、あなたがあります 本当にあなたのCSSを含むことができ、 900 00:44:16,210 --> 00:44:17,480 今までにすべきではない。 901 00:44:17,480 --> 00:44:18,950 それはコールのインラインスタイリングです。 902 00:44:18,950 --> 00:44:22,650 だから、任意のHTML要素には、することもできます style属性を取る。 903 00:44:22,650 --> 00:44:26,320 して、そのスタイル属性において、 あなたはそれをCSSルールを与えることができます。 904 00:44:26,320 --> 00:44:29,140 この場合、どのようなDIVアイム 右ここで定義し、それがために起こっている 905 00:44:29,140 --> 00:44:32,580 黒の背景を持っており、 白いテキストの色。 906 00:44:32,580 --> 00:44:35,620 しかし、あなたは、これを行うべきではありませんので、どのような これはそれがあなたのスタイリングを入れているん 907 00:44:35,620 --> 00:44:36,850 あなたのHTMLの内側。 908 00:44:36,850 --> 00:44:40,530 >> そして私たちは、HTMLについての話をしてきた知っている 構造であり、CSSはスタイルです。 909 00:44:40,530 --> 00:44:42,790 これを行う場合は、ミックス 一緒に。 910 00:44:42,790 --> 00:44:44,550 そして、それは非常にきれいではありません。 911 00:44:44,550 --> 00:44:45,800 ですからそういうことをしてはいけません。 912 00:44:45,800 --> 00:44:47,690 913 00:44:47,690 --> 00:44:52,100 我々は、そこまでは、CSSの例を使用して 単なるHTMLの本文を選択 914 00:44:52,100 --> 00:44:52,380 ドキュメンタリー。 915 00:44:52,380 --> 00:44:55,110 そして、我々はすべてのものの、のようにしている コミックサンズになるだろう。 916 00:44:55,110 --> 00:44:57,290 私もそれはお勧めしません。 917 00:44:57,290 --> 00:44:59,940 しかし、あなたはそれを行うことができます。 918 00:44:59,940 --> 00:45:03,140 >> 右ここ番目のルールは、それが起こっている 上の要素を選択する 919 00:45:03,140 --> 00:45:04,880 IDの主を持つページ。 920 00:45:04,880 --> 00:45:11,690 だから、どのようなHTML要素、私はIDは言った =主、私はAを与えるつもりだ 921 00:45:11,690 --> 00:45:16,020 20ピクセルのマージンと、すべてを揃え、 中心部へのすべてのテキスト、。 922 00:45:16,020 --> 00:45:19,030 最後には、CSSクラスによって選択されます。 923 00:45:19,030 --> 00:45:24,450 だから私が与えた、ページ上の任意の要素 セクションクラスは、私はそれをするつもりだ 924 00:45:24,450 --> 00:45:26,602 ライトブルーの背景色。 925 00:45:26,602 --> 00:45:29,380 926 00:45:29,380 --> 00:45:30,040 うん。 927 00:45:30,040 --> 00:45:30,700 それは私が得たすべてです。 928 00:45:30,700 --> 00:45:30,890 質問? 929 00:45:30,890 --> 00:45:34,020 >> 観客:どういうハッシュタグ メイン前に行う? 930 00:45:34,020 --> 00:45:36,310 >> ANGELA LI:質問が何をするか、ある 主行う前にハッシュタグ? 931 00:45:36,310 --> 00:45:40,770 この場合、ハッシュで CSSは、IDによる選択を意味します。 932 00:45:40,770 --> 00:45:47,490 だから私は次のように、いくつかのHTML要素を持っていた場合 divIDは=主に、このCSSはルールを選択 933 00:45:47,490 --> 00:45:49,260 IDのメイン​​との事。 934 00:45:49,260 --> 00:45:53,940 と同様に、目の前にピリオド セクションでは、CSSクラスをセレクト、または 935 00:45:53,940 --> 00:45:56,558 HTMLのクラスによって選択します。 936 00:45:56,558 --> 00:46:00,940 >> 観客:なぜ前にそこに持ってい 背景色が6? 937 00:46:00,940 --> 00:46:01,270 >> ANGELA LI:うん。 938 00:46:01,270 --> 00:46:03,360 そこで問題は、なぜ存在している 6前ハッシュ? 939 00:46:03,360 --> 00:46:05,320 これは、そのハッシュは異なる。 940 00:46:05,320 --> 00:46:09,500 これはあなたが与えていることを意味します 進数の色。 941 00:46:09,500 --> 00:46:14,260 そう六角色、これは単なる 色を表す。 942 00:46:14,260 --> 00:46:17,860 そして、あなたは、RGBトリプルを覚えているとき あなたはフォレンジックPSETをした? 943 00:46:17,860 --> 00:46:18,770 これは似ています。 944 00:46:18,770 --> 00:46:21,590 最初の2桁が表す どのくらいの赤い色である。 945 00:46:21,590 --> 00:46:23,260 第2は表す どのくらいの緑。 946 00:46:23,260 --> 00:46:25,450 そして三つ目は表し どのくらいの青。 947 00:46:25,450 --> 00:46:30,060 ハッシュは、この起こっているされている 色を表現する。 948 00:46:30,060 --> 00:46:35,660 >> そう0、0、0、0、0、0から何か F、F、F、F、F、Fまで有効です。 949 00:46:35,660 --> 00:46:39,550 これは、することができますいくつかの有効な色だ お使いのブラウザで表示される。 950 00:46:39,550 --> 00:46:39,790 質問? 951 00:46:39,790 --> 00:46:43,590 >> 観客:違いは何ですか IDでクラスで使用して? 952 00:46:43,590 --> 00:46:46,470 >> ANGELA LI:質問は何です 違い 953 00:46:46,470 --> 00:46:48,950 IDとクラスで使用して? 954 00:46:48,950 --> 00:46:54,390 あなただけの1つの要素を持つことができます 指定されたIDを持つHTMLドキュメント。 955 00:46:54,390 --> 00:46:58,660 だから私のページ上に一つだけの事は IDの主を持つことが許可されています。 956 00:46:58,660 --> 00:47:02,580 だから、このためにそれを使用するヘッダーです。 957 00:47:02,580 --> 00:47:03,850 これは、ナビゲーションです。 958 00:47:03,850 --> 00:47:05,230 これはフッターです。 959 00:47:05,230 --> 00:47:09,070 あなたは可能性があるためクラスは、異なっている できるだけ多くのHTML要素にクラスを適用 960 00:47:09,070 --> 00:47:10,100 あなたが望むように。 961 00:47:10,100 --> 00:47:15,860 >> したがって、たとえば、私は、クラスのセクションをしました 複数のは、おそらくありますので、 962 00:47:15,860 --> 00:47:17,540 私のページのセクション。 963 00:47:17,540 --> 00:47:20,200 あなたは同じように、多くを持つことが許されている 同じでページ上の要素 964 00:47:20,200 --> 00:47:23,190 クラスが、特定のIDを持つ唯一の1。 965 00:47:23,190 --> 00:47:25,600 >> 観客:だからドットが表現する クラス? 966 00:47:25,600 --> 00:47:26,090 >> ANGELA LI:うん。 967 00:47:26,090 --> 00:47:27,380 ドットは、クラスを表しています。 968 00:47:27,380 --> 00:47:29,990 969 00:47:29,990 --> 00:47:31,540 涼しい。 970 00:47:31,540 --> 00:47:32,370 それは、みんな私が持っているすべてです。 971 00:47:32,370 --> 00:47:33,544 ありがとう。 972 00:47:33,544 --> 00:48:13,380 >> [拍手] 973 00:48:13,380 --> 00:48:14,290 >> ZAMYLA CHAN:こんにちは、誰もが。 974 00:48:14,290 --> 00:48:14,880 私はZamylaよ。 975 00:48:14,880 --> 00:48:18,830 私は、PHPをカバーするつもりだ、 MVC、およびSQL今日。 976 00:48:18,830 --> 00:48:22,350 977 00:48:22,350 --> 00:48:26,110 私はできるでしょう素材がたくさん カバーは​​かなりになるだろう 978 00:48:26,110 --> 00:48:29,100 右pset7が不足しています。 979 00:48:29,100 --> 00:48:29,700 わかりました。 980 00:48:29,700 --> 00:48:31,180 だから、PHPは何ですか? 981 00:48:31,180 --> 00:48:35,150 PHPは、PHPハイパーテキストの略 プリプロセッサ。 982 00:48:35,150 --> 00:48:38,740 そう、それは、それ自体が、再帰的である かなりクールである、名前を付けます。 983 00:48:38,740 --> 00:48:42,220 PHPはサーバサイドのスクリプト言語です、 そしてそれは、バックエンドを提供する 984 00:48:42,220 --> 00:48:44,610 と論理基盤 当社のウェブサイトの。 985 00:48:44,610 --> 00:48:48,520 >> だから、アンジェラは、HTMLについて多くのことを語った とCSSの構造を行うことを 986 00:48:48,520 --> 00:48:49,530 ウェブサイトの。 987 00:48:49,530 --> 00:48:53,210 しかし、あなたがそれを変更したい場合はどう コンテンツを動的またはそれが変化する場合 988 00:48:53,210 --> 00:48:55,240 ユーザーに基づいて、または 一定の条件? 989 00:48:55,240 --> 00:48:57,060 PHPは出番です 990 00:48:57,060 --> 00:49:02,610 さて、一般的に、PHPは、いくつかのかかることがあります 同じことを実現するためのより少ない行 991 00:49:02,610 --> 00:49:07,380 PHPはメモリを処理するため、Cでいるからです プログラマのための管理、 992 00:49:07,380 --> 00:49:11,170 malloc関数を有する私たちとは対照的に、 無料で、そのようなこと。 993 00:49:11,170 --> 00:49:15,430 >> しかし、PHPは解釈であるため、 言語、典型的には、それが実行されるかもしれない 994 00:49:15,430 --> 00:49:19,540 もう少しゆっくりCより、どの コンパイルされた言語である。 995 00:49:19,540 --> 00:49:23,150 我々はプログラミングを移動しているので、 言語は、の方法を見てみましょう 996 00:49:23,150 --> 00:49:24,570 構文は異なります。 997 00:49:24,570 --> 00:49:28,770 のではないと非常に注意しましょう これで混乱する。 998 00:49:28,770 --> 00:49:33,750 あなたがいるかどうか、PHPの構文を持つので、 HTMLの中にPHPを埋め込む 999 00:49:33,750 --> 00:49:40,430 ファイルや。phpファイル自体の中に、 オープンでコードを囲む​​必要があり 1000 00:49:40,430 --> 00:49:45,270 PHPとのような閉じたPHPタグ 画面上と同じように、次の。 1001 00:49:45,270 --> 00:49:46,660 >> PHPの変数。 1002 00:49:46,660 --> 00:49:51,490 一つ一つの変数が始まります の名前が​​続き$記号 1003 00:49:51,490 --> 00:49:53,150 あなたの変数。 1004 00:49:53,150 --> 00:49:56,530 今、PHPの変数が緩く型付けされ、 これはあなたが必要としないことを意味します 1005 00:49:56,530 --> 00:50:00,030 どのようなデータ型を示すために あなたがそれを宣言しているときである。 1006 00:50:00,030 --> 00:50:03,505 しかし、これは彼らことを意味するものではありません 全くタイプがありません。 1007 00:50:03,505 --> 00:50:09,370 だから私は、変数を宣言し、ちょうど設定した場合 それは1に等しく、その後、私は宣言します 1008 00:50:09,370 --> 00:50:15,140 別の変数には、等しく設定 "1" し、別の1 1.0、まあ、 1009 00:50:15,140 --> 00:50:19,410 平等の種類に応じて、 私が使用する演算子を、私は比較したい場合は、 1010 00:50:19,410 --> 00:50:21,830 次いで、すべてのタイプ、両端 それらは等しくなるでしょう。 1011 00:50:21,830 --> 00:50:25,570 しかし、私は確信していることを確認したい場合 種類が同じである、PHPはまだやることができます 1012 00:50:25,570 --> 00:50:28,690 つまり、我々は示していないにもかかわらず、 ときに我々それが何であるかのタイプ 1013 00:50:28,690 --> 00:50:31,170 最初のファイルを作成します。 1014 00:50:31,170 --> 00:50:33,990 >> 今、PHPで、我々はあるにもかかわらず プログラミングから切り替え 1015 00:50:33,990 --> 00:50:39,360 Cからの言語は、我々はまだ私たちを持っている ちょうどこのような条件であれば信頼できる。 1016 00:50:39,360 --> 00:50:43,270 我々はまだちょうど、私たちのwhileループを持っている このように、どこで、あなたの中に置く 1017 00:50:43,270 --> 00:50:47,300 その後、条件と ループの本体。 1018 00:50:47,300 --> 00:50:50,360 そして、我々はまた、ループのための私達を持っている 通常、このようになりますどの。 1019 00:50:50,360 --> 00:50:55,330 私はすべての反復処理したかったそうであれば 9のpsetと提出およびコール 1020 00:50:55,330 --> 00:50:58,960 機能submitPset、私はそれを行うことができます ここでは、あなたたちはすべて持っている 1021 00:50:58,960 --> 00:50:59,830 この時点で行わ。 1022 00:50:59,830 --> 00:51:01,080 ところでおめでとう。 1023 00:51:01,080 --> 00:51:04,560 1024 00:51:04,560 --> 00:51:07,550 >> カメラのための、人々 言った、ありがとうございます。 1025 00:51:07,550 --> 00:51:11,220 さて、あなたはこれを使用することを望んでいない場合は、 forループは、PHP実際にも 1026 00:51:11,220 --> 00:51:13,580 物事はforeachのループを呼びかけている。 1027 00:51:13,580 --> 00:51:22,210 だから私は、整数の配列、0を持っていた場合 8を介して、アレイのPsetに記憶され、 1028 00:51:22,210 --> 00:51:27,290 私はforeachループを持つことができること psetを内のすべての番号を反復。 1029 00:51:27,290 --> 00:51:30,640 そして私は同じことを呼び出すことができます 機能8回、 1030 00:51:30,640 --> 00:51:31,910 私は前にやったように。 1031 00:51:31,910 --> 00:51:36,480 したがって、各ループのこれは、いいです あなたが持っていないあなたがわからない場合に 1032 00:51:36,480 --> 00:51:39,470 配列の正確な長さがあること 有し、このforeachループを使用して 1033 00:51:39,470 --> 00:51:42,800 あなたのためにそれを世話をします。 1034 00:51:42,800 --> 00:51:45,410 >> だから私は、配列としてのpsetを作った。 1035 00:51:45,410 --> 00:51:46,700 それでは、その見てみましょう。 1036 00:51:46,700 --> 00:51:51,290 PHPの配列は、通常と同じです 我々はC言語で持っていたものを、どこに 1037 00:51:51,290 --> 00:51:52,960 あなたは配列を宣言することができます。 1038 00:51:52,960 --> 00:51:59,200 そしてここで、私は空の配列を宣言することができます してから使用して動的に構築 1039 00:51:59,200 --> 00:52:00,850 整数としての指標。 1040 00:52:00,850 --> 00:52:04,140 インデックス0だから、私は店に行くんだ 整数が1と命名。 1041 00:52:04,140 --> 00:52:09,210 私のリストのインデックス1に、私は行くよ 値2を格納する。 1042 00:52:09,210 --> 00:52:12,670 そして第三のインデックスにあるが、 番目の数字は、私はするつもりだ 1043 00:52:12,670 --> 00:52:14,870 数12を格納します。 1044 00:52:14,870 --> 00:52:17,250 >> さて、これはその中で結構です それがうまく機能し動作します。 1045 00:52:17,250 --> 00:52:21,310 しかし、それは私にとって重要と言う 各インデックスは保持しているものを。 1046 00:52:21,310 --> 00:52:24,500 私にとっては、インデックス0は、どのように意味 多くの猫は私が持っている。 1047 00:52:24,500 --> 00:52:27,400 そしてインデックス1は、どのように意味 多くのフクロウは私が持っている。 1048 00:52:27,400 --> 00:52:29,450 そして次はどのように多くの犬のことである。 1049 00:52:29,450 --> 00:52:34,140 さて、それは代わりに、それを指定するには 0であって覚えておくことの 1050 00:52:34,140 --> 00:52:38,090 猫とフクロウ1に、私は使用することができます ことを意味し、連想配列、 1051 00:52:38,090 --> 00:52:42,260 代わりに、私の指標としての整数の、 私は実際に文字列を使用することができます。 1052 00:52:42,260 --> 00:52:43,290 >> だから、これは非常に便利です。 1053 00:52:43,290 --> 00:52:47,130 そして、あなたは基本的に交換してきた 文字列と整数。 1054 00:52:47,130 --> 00:52:50,074 そしてそこにあなたが持っている 連想配列。 1055 00:52:50,074 --> 00:52:51,930 うん。 1056 00:52:51,930 --> 00:52:55,800 >> 観客:そこ理由がありますか 秒アンダースコア 1057 00:52:55,800 --> 00:52:58,750 一部、私のリストには、配列を有しているからである。 1058 00:52:58,750 --> 00:53:01,330 >> ZAMYLAちゃん質問があったことになります そこにあります理由 1059 00:53:01,330 --> 00:53:03,320 私とリストの間でアンダースコア? 1060 00:53:03,320 --> 00:53:03,610 いいえ。 1061 00:53:03,610 --> 00:53:06,878 それは私が命名てるだけでどのようだ 私の変数。 1062 00:53:06,878 --> 00:53:11,670 >> 読者:最初に ラインは、それが一つの単語だ。 1063 00:53:11,670 --> 00:53:12,560 >> ZAMYLA CHAN:私の謝罪。 1064 00:53:12,560 --> 00:53:13,410 私はそれを修正します。 1065 00:53:13,410 --> 00:53:13,620 うん。 1066 00:53:13,620 --> 00:53:15,460 彼らは、同じ変数名でなければなりません。 1067 00:53:15,460 --> 00:53:16,710 大漁。 1068 00:53:16,710 --> 00:53:19,640 1069 00:53:19,640 --> 00:53:19,950 [OK]をクリックします。 1070 00:53:19,950 --> 00:53:22,610 それでは、文字列に移りましょう 連結。 1071 00:53:22,610 --> 00:53:27,500 私は、二つの文字列を取りたいと思った場合は、 その後、私はそれらを連結することができます 1072 00:53:27,500 --> 00:53:28,550 ドット演算子を持つ。 1073 00:53:28,550 --> 00:53:32,440 だから私は、最初の名前としてミロを持っている場合 氏名などのバナナは、 1074 00:53:32,440 --> 00:53:35,430 ドット演算子で連結し、 その後、間にスペースを入れて 1075 00:53:35,430 --> 00:53:39,210 ミロを含む文字列を作成します 私は次にエコーまたはCANバナナ、、 1076 00:53:39,210 --> 00:53:41,280 むしろ、プリントアウト。 1077 00:53:41,280 --> 00:53:44,465 >> エコーといえば、の話をしましょう いくつかの便利について - 1078 00:53:44,465 --> 00:53:44,920 おっと。 1079 00:53:44,920 --> 00:53:46,030 ごめんなさい。 1080 00:53:46,030 --> 00:53:52,920 いくつかの有用なPHP関数。 1081 00:53:52,920 --> 00:53:56,240 だから我々は持っている - 1082 00:53:56,240 --> 00:53:57,444 技術的な問題。 1083 00:53:57,444 --> 00:53:58,694 一秒。 1084 00:53:58,694 --> 00:54:16,960 1085 00:54:16,960 --> 00:54:19,550 私はそれを送った。 1086 00:54:19,550 --> 00:54:22,320 PowerPointの問題。 1087 00:54:22,320 --> 00:54:29,200 そして、我々は、PHPの関数で戻ってきた。 1088 00:54:29,200 --> 00:54:32,010 1089 00:54:32,010 --> 00:54:35,150 そして、我々は、PHPの関数で戻ってきた。 1090 00:54:35,150 --> 00:54:39,890 >> だから我々は、機能を必要としているところ あなたがファイルを渡すと、ここだけですそれは 1091 00:54:39,890 --> 00:54:43,300 そのファイルの例 私はインチに渡すかもしれません 1092 00:54:43,300 --> 00:54:47,605 そして、それがPHPのコードが含まれています 私は示して、そのファイルから。 1093 00:54:47,605 --> 00:54:49,940 そして、それはインチそれを評価します 1094 00:54:49,940 --> 00:54:54,450 その後、我々はまた、エコー持っている printf関数と平行である。 1095 00:54:54,450 --> 00:54:57,710 出口が壊れると平行である、 それらのブロックを出る 1096 00:54:57,710 --> 00:54:58,570 あなたはインチているコード 1097 00:54:58,570 --> 00:55:03,180 [空のチェックが与えられたかどうか 変数がNULLまたはゼロのようなものです 1098 00:55:03,180 --> 00:55:08,482 何が空の状態と同一視されている。 1099 00:55:08,482 --> 00:55:09,438 うん。 1100 00:55:09,438 --> 00:55:15,341 >> 読者:文字列の連結のために ドット演算1は、PHPで、ある 1101 00:55:15,341 --> 00:55:20,158 それが使っているJavaScriptのと同じ 連結用のドットはプラスを意味? 1102 00:55:20,158 --> 00:55:27,440 だから、正式名称は、あなたがドルを持っている可能性が 最初の+に署名してから+ラスト? 1103 00:55:27,440 --> 00:55:27,720 >> ZAMYLA CHAN:うん。 1104 00:55:27,720 --> 00:55:32,150 そこで問題は、PHPの我々にあるかどうかであった 同じ文字列の連結を使用することができます 1105 00:55:32,150 --> 00:55:33,890 プラスではJavaScriptのように。 1106 00:55:33,890 --> 00:55:35,410 ヨセフは、後でその中に取得します。 1107 00:55:35,410 --> 00:55:36,620 私は彼がその上のスライドを持っていると思う。 1108 00:55:36,620 --> 00:55:37,570 実際に、それは違う。 1109 00:55:37,570 --> 00:55:41,310 そうJavaScriptでは、使用する必要があります 文字列を連結するプラス。 1110 00:55:41,310 --> 00:55:43,280 そしてPHPで、その必要はあり ドット演算子を使用しています。 1111 00:55:43,280 --> 00:55:44,530 そこで、彼らは異なっている。 1112 00:55:44,530 --> 00:55:46,680 1113 00:55:46,680 --> 00:55:46,910 >> [OK]をクリックします。 1114 00:55:46,910 --> 00:55:49,500 だから今我々はすべてカバーしてきたこと このPHP、それがない 1115 00:55:49,500 --> 00:55:50,490 本当に便利になる? 1116 00:55:50,490 --> 00:55:54,470 まあ、それは便利になるときに我々 私たちのHTMLでそれを組み合わせることができます。 1117 00:55:54,470 --> 00:55:59,550 だから私たちのPHPはに私たちに力を与える ページのHTMLコンテンツを変更する前に 1118 00:55:59,550 --> 00:56:00,000 その中。 1119 00:56:00,000 --> 00:56:04,270 だから、さまざまな条件に基づいて、 だ、通常、特定のユーザ 1120 00:56:04,270 --> 00:56:07,520 ログインし、我々は表示することができます 異なる情報。 1121 00:56:07,520 --> 00:56:08,800 リンダは、あなたが疑問を持っていたのですか? 1122 00:56:08,800 --> 00:56:15,510 >> 読者:あなたが連結することができます また、整数? 1123 00:56:15,510 --> 00:56:16,760 >> ZAMYLA CHAN:はい、できます。 1124 00:56:16,760 --> 00:56:19,530 1125 00:56:19,530 --> 00:56:23,270 できればそこで質問だった 整数または他を連結 1126 00:56:23,270 --> 00:56:28,920 今、我々は、MVCに移動variable.sいる 私たちが使用パラダイムである 1127 00:56:28,920 --> 00:56:33,380 pset7やWebデザイナーの多くは、使用 ファイル内のコードを整理する 1128 00:56:33,380 --> 00:56:34,490 彼らのウェブサイトにある。 1129 00:56:34,490 --> 00:56:35,870 Mはモデルの略です。 1130 00:56:35,870 --> 00:56:41,450 そして基本的には、モデルファイルを取り扱います データベースとの相互作用を有する。 1131 00:56:41,450 --> 00:56:44,640 ファイルを表示、それらはに関連して ウェブサイトの美学。 1132 00:56:44,640 --> 00:56:47,550 とコントローラハンドル ユーザー要求、構文解析 1133 00:56:47,550 --> 00:56:49,230 データは、他のロジックを実行します。 1134 00:56:49,230 --> 00:56:52,520 >> pset7では、モデルを組み合わせる とコントローラ。 1135 00:56:52,520 --> 00:56:55,880 そして、私たちはただのコントローラにそれらを呼び、 パブリックディレクトリに入れて。 1136 00:56:55,880 --> 00:57:01,730 そして我々はそれらを使用するビューファイルは、 templatesディレクトリ内のテンプレート。 1137 00:57:01,730 --> 00:57:07,260 だからここに、この図には表し と部門のそれと同じ種類 1138 00:57:07,260 --> 00:57:10,510 モデルと紫のコントローラ ここに左のと 1139 00:57:10,510 --> 00:57:12,770 右のビュー。 1140 00:57:12,770 --> 00:57:16,020 これはあなた方のうちの何人かいることを示す説明図である オフィス·アワーで見たか、 1141 00:57:16,020 --> 00:57:19,130 私たちはあなたのように描いた図 あなたのPSETを把握された。 1142 00:57:19,130 --> 00:57:25,030 >> だからここに、指定したコントローラでは、モデル コントローラは、機能を有する 1143 00:57:25,030 --> 00:57:30,490 SQLをクエリに関連するもの データベース、PHPのロジックを実行する。 1144 00:57:30,490 --> 00:57:32,370 たぶん、あなたは最高になります ヤフーの株式 1145 00:57:32,370 --> 00:57:34,590 ファイナンス。 1146 00:57:34,590 --> 00:57:37,390 それとも、あなただけにチェックする 利用者が提出したかどうかを確認 1147 00:57:37,390 --> 00:57:40,250 持つ前にすでに形成 あなたのページを訪問した。 1148 00:57:40,250 --> 00:57:43,390 そして、あなたはレンダリングされます こっちフォーム。 1149 00:57:43,390 --> 00:57:48,210 そのフォームが送信された後 ユーザーによって、アクションがあったこと 1150 00:57:48,210 --> 00:57:53,470 フォームのHTMLタグで指定された ページを示しているだろうと、それ 1151 00:57:53,470 --> 00:57:55,620 そのデータに戻ります。 1152 00:57:55,620 --> 00:57:59,460 >> だから、その情報のすべては次のようになります お使いのコントローラに送り返さ。 1153 00:57:59,460 --> 00:58:02,620 あなたはおそらく、もう少しするだろう その上で、ロジックと、おそらくいくつかを実行する 1154 00:58:02,620 --> 00:58:06,510 複数のSQLデータベース内のクエリと そして、最後に、きれいに思い付く 1155 00:58:06,510 --> 00:58:11,930 情報のパックのセットがあることだろう 他のいくつかのテンプレートに渡す 1156 00:58:11,930 --> 00:58:13,950 それは、その情報を表示した。 1157 00:58:13,950 --> 00:58:17,030 今、どのように我々は、実際にパッケージ化します その情報をバックアップ? 1158 00:58:17,030 --> 00:58:23,980 まあ、我々はレンダリングと呼ばれる機能を持っている つまり、内のfunctions.phpファイルにあった 1159 00:58:23,980 --> 00:58:29,950 あなたが名前を渡しpse​​t7、 ファイル、テンプレートの名前。 1160 00:58:29,950 --> 00:58:32,160 >> そして、あなたも渡す 連想配列。 1161 00:58:32,160 --> 00:58:37,150 だから連想配列が表す 異なる情報 1162 00:58:37,150 --> 00:58:39,040 もし25.40渡したいこと 1163 00:58:39,040 --> 00:58:43,460 今、何が一定になるだろう これらの例は、あるキーまたは、 1164 00:58:43,460 --> 00:58:47,070 むしろ、連想のキー 配列は、それらのことになるだろう何ですか 1165 00:58:47,070 --> 00:58:51,050 テンプレートによって一定であると予想さ それが必要と知っているので 1166 00:58:51,050 --> 00:58:53,990 メッセージと呼ばれるもの または名前と呼ばれる。 1167 00:58:53,990 --> 00:58:56,940 そして、右側のもの、 この場合に、実際の値、、だ 1168 00:58:56,940 --> 00:59:00,750 いい子やミロ、しようとしているもの 変化している値であると 1169 00:59:00,750 --> 00:59:05,610 コントローラは毎回変化すること または特定の条件に基づいており、 1170 00:59:05,610 --> 00:59:07,120 インチそれを通過します 1171 00:59:07,120 --> 00:59:12,790 >> だからここのテンプレートでは、その私たちを参照してください。 HTMLの特殊文字を使用している、 1172 00:59:12,790 --> 00:59:16,370 これだけで、基本的に私たちが望むことを意味します そのピアの文字列を取得する 1173 00:59:16,370 --> 00:59:17,580 ユーザは25.40置く 1174 00:59:17,580 --> 00:59:20,880 そして、我々は代用したい そこにメッセージ。 1175 00:59:20,880 --> 00:59:26,110 それでは、私たちが実際に表示するときに ファイル、特定の 1176 00:59:26,110 --> 00:59:28,700 情報が渡され 1177 00:59:28,700 --> 00:59:33,850 どのような作品をレンダリングキーであることに注意してください その連想のキー 1178 00:59:33,850 --> 00:59:37,170 配列変数になるもの ここに名前。 1179 00:59:37,170 --> 00:59:40,720 そしてそうでそのキーの値 連想配列はその後になります 1180 00:59:40,720 --> 00:59:41,970 変数の値。 1181 00:59:41,970 --> 00:59:44,800 1182 00:59:44,800 --> 00:59:46,040 >> それでは、SQLに移りましょう。 1183 00:59:46,040 --> 00:59:48,010 これは、構造化の略 クエリ言語。 1184 00:59:48,010 --> 00:59:50,460 そしてこれは単なるプログラミングで 設計された言語 1185 00:59:50,460 --> 00:59:51,880 データベースを管理するため。 1186 00:59:51,880 --> 00:59:56,860 そして、それは私たちのために便利になった 私たちのpset7ファイナンスのウェブサイト。 1187 00:59:56,860 --> 01:00:00,510 基本的に、それはちょうど簡単な方法です オブジェクトとテーブルを追跡および管理 1188 01:00:00,510 --> 01:00:02,070 そして、相互にリンクします。 1189 01:00:02,070 --> 01:00:06,860 今、あなたのSQLデータベースを考える 基本的にはExcelファイルとして、おそらく、 1190 01:00:06,860 --> 01:00:10,040 複数のタブ付きのシートで。 1191 01:00:10,040 --> 01:00:13,820 >> だから、複数のテーブルを持つことができ、 おそらく、それは相互に連結された。 1192 01:00:13,820 --> 01:00:19,420 やExcelのような多くは、私たちはたくさんある 私たちが望む機能を提供します。 1193 01:00:19,420 --> 01:00:22,300 例えば、我々が選択することができます 特定の行。 1194 01:00:22,300 --> 01:00:24,110 私たちは、情報を挿入することができます。 1195 01:00:24,110 --> 01:00:25,560 我々は、行を更新することができます。 1196 01:00:25,560 --> 01:00:27,440 そして、我々はまた、物事を削除することもできます。 1197 01:00:27,440 --> 01:00:30,920 1198 01:00:30,920 --> 01:00:36,560 >> SQLは、行を選択することで、作品を選択する またはから、指定された列の列 1199 01:00:36,560 --> 01:00:39,640 特定の一致するデータベース あなたが示している基準。 1200 01:00:39,640 --> 01:00:44,930 *から、私が選択表示されたら、こっちにそう 家= Ravenclaw、その後のウィザード 1201 01:00:44,930 --> 01:00:48,340 私は、私は意味し、*選択するよ その中の一つ一つの列を選択する 1202 01:00:48,340 --> 01:00:56,340 ウィザードのテーブルからではなく、ない場合にのみ行 家の列には、Ravenclawに等しい。 1203 01:00:56,340 --> 01:00:57,840 さて、これは純粋なまたはSQLです。 1204 01:00:57,840 --> 01:01:02,680 だから私はphpMyAdminは、入った場合は、 我々は管理に使用する特定の方法 1205 01:01:02,680 --> 01:01:07,040 私たちのSQLデータベースは、私は挿入することができます phpMyAdminのウェブサイトにその。 1206 01:01:07,040 --> 01:01:08,290 そして、それが実行されます。 1207 01:01:08,290 --> 01:01:11,280 >> しかし、我々は実際にやってみたい PHP側と。 1208 01:01:11,280 --> 01:01:12,580 だから我々はそれをどのように行うのですか? 1209 01:01:12,580 --> 01:01:20,180 さて、私たちは、クエリ機能を使用している 基本的にSQLクエリが実行されます。 1210 01:01:20,180 --> 01:01:21,830 使用して? 1211 01:01:21,830 --> 01:01:25,850 プレースホルダとして、我々は、あるに渡すことができます その私たち私たちの列に値 1212 01:01:25,850 --> 01:01:26,920 交換したい。 1213 01:01:26,920 --> 01:01:32,110 ので、おそらく私は別の保存してい curr_houseの値、どの 1214 01:01:32,110 --> 01:01:34,400 現在の家を表す 私が通って行くよという。 1215 01:01:34,400 --> 01:01:39,040 だから私は、プレースホルダとしてそれを渡すことができます 疑問符の付いた。 1216 01:01:39,040 --> 01:01:43,290 そして私は、基本的に実行します 私は除いて、以前と同じこと 1217 01:01:43,290 --> 01:01:45,550 今、私はPHPでね。 1218 01:01:45,550 --> 01:01:51,300 >> クエリが返されます 連想配列。 1219 01:01:51,300 --> 01:01:53,470 そして、私は、行に格納するつもりです。 1220 01:01:53,470 --> 01:01:56,880 今、クエリは常に失敗することがあります。 1221 01:01:56,880 --> 01:02:02,870 おそらく、SQLクエリは実行できませんでした テーブルが存在していなかったため。 1222 01:02:02,870 --> 01:02:04,310 それとも、列には存在しませんでした。 1223 01:02:04,310 --> 01:02:05,400 何かが間違っていた。 1224 01:02:05,400 --> 01:02:08,170 まあ、その場合には、確認したいと思う あなたがいるかどうか確認することを確認してください 1225 01:02:08,170 --> 01:02:09,700 クエリからfalseが返されました。 1226 01:02:09,700 --> 01:02:15,590 そして、それは、トリプルを使用してい 操作が等しくなります。 1227 01:02:15,590 --> 01:02:19,660 >> そして私は別である、謝罪 メッセージを渡しCS50機能。 1228 01:02:19,660 --> 01:02:23,435 そして、あなたは謝罪、すべてそこに見れば 本当にないapology.phpレンダリングです。 1229 01:02:23,435 --> 01:02:26,100 1230 01:02:26,100 --> 01:02:26,410 うん。 1231 01:02:26,410 --> 01:02:29,630 >> 読者:あなたはどのようなことを説明してもらえます 星は選択してからの間でしょうか? 1232 01:02:29,630 --> 01:02:30,710 >> ZAMYLA CHAN:ええ、絶対に。 1233 01:02:30,710 --> 01:02:35,220 だから、選択してから、間にスター 私は、全体を選択することを意味します 1234 01:02:35,220 --> 01:02:37,440 私のテーブルから行全体。 1235 01:02:37,440 --> 01:02:41,900 私が選択指示さたかもしれない 名前、年、家。 1236 01:02:41,900 --> 01:02:46,160 そして私はそれらの3になるだろう 私のテーブルの列。 1237 01:02:46,160 --> 01:02:51,560 私はSELECT *を言うなら、私はよ その列のすべてを取得。 1238 01:02:51,560 --> 01:02:53,760 私はあなたに行くつもりです 最初に後ろに。 1239 01:02:53,760 --> 01:02:57,656 >> 観客:だから、これはまだある SQLで、右か? 1240 01:02:57,656 --> 01:02:59,610 このクエリはあるか、このPHPがある? 1241 01:02:59,610 --> 01:03:00,550 >> ZAMYLA CHAN:我々は、クエリにいる。 1242 01:03:00,550 --> 01:03:01,940 だから、これはPHPである。 1243 01:03:01,940 --> 01:03:06,280 だから、PHPの関数のクエリを使用して、 我々は、SQLクエリを実行している。 1244 01:03:06,280 --> 01:03:11,988 1245 01:03:11,988 --> 01:03:15,364 >> 観客は:SQLで何か 大文字と小文字を区別し、選択のような 1246 01:03:15,364 --> 01:03:17,834 または、ウィザードや家? 1247 01:03:17,834 --> 01:03:20,050 >> ZAMYLAチャンは:何か のSQLは、大文字と小文字が区別中? 1248 01:03:20,050 --> 01:03:21,760 私ははい、そう信じています。 1249 01:03:21,760 --> 01:03:24,620 私は信じているSELECTとFROM とWHERE大文字と小文字が区別されます。 1250 01:03:24,620 --> 01:03:25,535 なし? 1251 01:03:25,535 --> 01:03:27,500 >> ROBボーデン:だから、それは反対だ。 1252 01:03:27,500 --> 01:03:32,030 列名とテーブル手段、 それらのすべては、大文字と小文字が区別されます。 1253 01:03:32,030 --> 01:03:35,470 しかし、MySQLのキー·ワードのいずれかのような SELECT、FROM、およびWHERE、それらはそうではありません 1254 01:03:35,470 --> 01:03:36,140 大文字と小文字が区別されます。 1255 01:03:36,140 --> 01:03:36,420 [OK]をクリックします。 1256 01:03:36,420 --> 01:03:37,780 だから私が言ったことの反対。 1257 01:03:37,780 --> 01:03:40,420 だから、MySQLの全てのキーワード - 1258 01:03:40,420 --> 01:03:42,670 選択して、どこから - これらの 大文字と小文字を区別しません。 1259 01:03:42,670 --> 01:03:44,630 しかし、他のすべてはある。 1260 01:03:44,630 --> 01:03:45,210 [OK]をクリックします。 1261 01:03:45,210 --> 01:03:46,500 前のあなた。 1262 01:03:46,500 --> 01:03:52,041 >> 読者:私はの面で行を$している場合 複数の行は、平均であることを行う 1263 01:03:52,041 --> 01:03:53,640 ただ連想配列となります? 1264 01:03:53,640 --> 01:03:59,550 >> ZAMYLA CHAN:だから質問があったかの行 、その中に複数の行がありません 1265 01:03:59,550 --> 01:04:01,800 それは連想配列になる? 1266 01:04:01,800 --> 01:04:05,680 だから、連想の配列です すでに配列。 1267 01:04:05,680 --> 01:04:10,730 1行のみがありますので、たとえ 返さ、あなたはに行かなければならないと思います 1268 01:04:10,730 --> 01:04:12,690 その結果のインデックス0とする。 1269 01:04:12,690 --> 01:04:15,316 そして、あなたはその最初の行を持っていると思います。 1270 01:04:15,316 --> 01:04:17,482 はい、ベリンダ? 1271 01:04:17,482 --> 01:04:21,258 >> 読者:あなたは===を使用する場合は、 これが唯一のインスタンスである? 1272 01:04:21,258 --> 01:04:22,210 等はありますか? 1273 01:04:22,210 --> 01:04:26,815 >> ZAMYLA CHAN:この場合には、=== タイプ間で比較したものである。 1274 01:04:26,815 --> 01:04:29,870 1275 01:04:29,870 --> 01:04:34,050 申し訳ありません。 ===比較です つまり、型を比較。 1276 01:04:34,050 --> 01:04:37,620 して、==は、すべての種類の間で比較します。 1277 01:04:37,620 --> 01:04:41,620 >> 読者:あなたは何を説明することができます 行は、このような状況にあり? 1278 01:04:41,620 --> 01:04:45,120 それはデータの行ですか? 1279 01:04:45,120 --> 01:04:48,100 >> ZAMYLA CHAN:次のスライドでは、私は 何であるかの行説明するつもり。 1280 01:04:48,100 --> 01:04:49,890 だから、あなたが保持して気にしない場合は、 その上でオフ。 1281 01:04:49,890 --> 01:04:50,620 それから、あなた後ろに? 1282 01:04:50,620 --> 01:04:54,699 >> 観客:クエリのような関数の場合、 [聞こえない]をレンダリングし、謝罪? 1283 01:04:54,699 --> 01:04:59,050 1284 01:04:59,050 --> 01:05:03,050 >> ZAMYLAちゃんの質問はどうだった これらの機能 - クエリは、謝罪、 1285 01:05:03,050 --> 01:05:04,510 レンダリング - 1286 01:05:04,510 --> 01:05:05,930 PHPの間で共通している。 1287 01:05:05,930 --> 01:05:09,460 これらはものであることCS50 pset7のために書いた。 1288 01:05:09,460 --> 01:05:09,910 とジェイ? 1289 01:05:09,910 --> 01:05:15,333 >> 読者:あなたが言う必要がある $ _SESSIONは、そのIDのみのためにある? 1290 01:05:15,333 --> 01:05:17,310 または、そのここに言っていませんか? 1291 01:05:17,310 --> 01:05:23,440 >> ZAMYLAちゃんそこで問題であった 私たちは、それが特異的であった、$ _SESSIONを使う 1292 01:05:23,440 --> 01:05:25,290 我々は使用しているグローバル変数。 1293 01:05:25,290 --> 01:05:32,080 ここでは、この変数には、しようとしている 私たちの関数に対してローカルであること。 1294 01:05:32,080 --> 01:05:36,588 だから我々は、単に宣言しています 新しい変数。 1295 01:05:36,588 --> 01:05:38,460 >> 観客:どのように謝罪さ 実装? 1296 01:05:38,460 --> 01:05:40,960 >> ZAMYLAちゃん質問があった、 どのように実装されて謝罪? 1297 01:05:40,960 --> 01:05:44,180 そして、私は、これは実際にはかなりあると思います 君たちが入るようにするには良い方法 1298 01:05:44,180 --> 01:05:49,260 のfunctions.phpセクションと見 謝罪とあなたが持っている可能性がどのように参照してください。 1299 01:05:49,260 --> 01:05:50,670 それを自分で行うこと。 1300 01:05:50,670 --> 01:05:55,620 だから私はあなたに残しておきますが、ただ可能性 あなたが見れば謝罪と言う、 1301 01:05:55,620 --> 01:06:02,110 それはあなたのメッセージを受け取り 謝罪に提出し、それ 1302 01:06:02,110 --> 01:06:06,570 そのメッセージをレンダリングします。 1303 01:06:06,570 --> 01:06:08,240 これ以上の質問? 1304 01:06:08,240 --> 01:06:08,710 私は質問が大好きです。 1305 01:06:08,710 --> 01:06:09,555 だから、これからそれらを保つ。 1306 01:06:09,555 --> 01:06:11,888 >> 観客:[聞こえない] 1307 01:06:11,888 --> 01:06:13,840 エコーやそこに印刷? 1308 01:06:13,840 --> 01:06:15,900 >> ZAMYLAちゃん質問があった、 私達はちょうど置くことができなかった 1309 01:06:15,900 --> 01:06:17,000 エコーやそこにプリント。 1310 01:06:17,000 --> 01:06:19,710 だから何かをしただろう わずかに異なる。 1311 01:06:19,710 --> 01:06:23,750 つまり、クエリを印刷したであろう それに失敗しました - 1312 01:06:23,750 --> 01:06:27,420 さて、今、私たちは実際にしている 私たちのコントローラ。 1313 01:06:27,420 --> 01:06:30,350 だから我々は実際にはありません HTMLはここで設定。 1314 01:06:30,350 --> 01:06:34,946 apologize.phpレンダリングすることで謝罪 実際apology.phpにリダイレクトされます。 1315 01:06:34,946 --> 01:06:39,560 1316 01:06:39,560 --> 01:06:42,200 [OK]をクリックします。 1317 01:06:42,200 --> 01:06:45,880 >> だから今、のは対処する上で行ってみよう かについて、以前からの質問 1318 01:06:45,880 --> 01:06:47,330 実際にローである。 1319 01:06:47,330 --> 01:06:51,960 さて、質問に戻ります 行の配列。 1320 01:06:51,960 --> 01:06:55,020 そして、すべての行が表現されている 連想配列による。 1321 01:06:55,020 --> 01:07:02,840 だから私はいくつかのSQLクエリを実行した場合 私はその後、列に結果を格納しました 1322 01:07:02,840 --> 01:07:07,850 foreachループを使用して、その配列 行 - 名前がある最初のものです。 1323 01:07:07,850 --> 01:07:13,170 そして私は呼ぶつもりだ そこ$行のすべての行。 1324 01:07:13,170 --> 01:07:20,060 >> だから私は、その後、その上ですることができます繰り返し処理 指定した行の[名前]列にアクセスする、 1325 01:07:20,060 --> 01:07:22,340 年間の列、および家のコラム。 1326 01:07:22,340 --> 01:07:28,010 私がすることができなかったであろうことに注意してください 行インデックスので、行でこれを行う 1327 01:07:28,010 --> 01:07:29,290 名前が存在しません。 1328 01:07:29,290 --> 01:07:31,970 行の単なる配列です 連想配列。 1329 01:07:31,970 --> 01:07:34,870 だから、そこに2つのレベルがあります。 1330 01:07:34,870 --> 01:07:37,170 あなたが行の配列を取得したら、 あなたはそれに取得する必要があります。 1331 01:07:37,170 --> 01:07:39,110 そして、あなたは列にアクセスすることができます。 1332 01:07:39,110 --> 01:07:41,636 つまり、それを明確にしましたか? 1333 01:07:41,636 --> 01:07:42,520 ええ、前に? 1334 01:07:42,520 --> 01:07:45,490 >> 観客:[聞こえない]開く [聞こえない]用のブラケット? 1335 01:07:45,490 --> 01:07:46,220 >> ZAMYLA CHAN:すみません! 1336 01:07:46,220 --> 01:07:49,740 >> 観客:オープンかっこ。 1337 01:07:49,740 --> 01:07:52,420 >> ZAMYLAちゃんここにこれらの? 1338 01:07:52,420 --> 01:07:58,520 それは私にはできるようだ その変数。 1339 01:07:58,520 --> 01:07:58,670 うん。 1340 01:07:58,670 --> 01:08:01,900 >> 読者:あなたが印刷すると、あなたは HTMLコードに印刷? 1341 01:08:01,900 --> 01:08:03,110 >> ZAMYLA CHAN:はい。 1342 01:08:03,110 --> 01:08:07,720 私は印刷すると、ここで、この内側です 私のテンプレートになりましたので、 1343 01:08:07,720 --> 01:08:10,310 MVC方式の私の見解。 1344 01:08:10,310 --> 01:08:12,750 だから私はHTMLに印刷しています。 1345 01:08:12,750 --> 01:08:16,670 >> 観客:だから我々は、開発者に入った場合は、 これを実行した後、ツール、我々は可能性が 1346 01:08:16,670 --> 01:08:17,160 実際にコードでその? 1347 01:08:17,160 --> 01:08:18,410 >> ZAMYLA CHAN:それは素晴らしいことだ 質問、うん。 1348 01:08:18,410 --> 01:08:22,359 ですから、開発者ツールに入った場合は、 FirefoxでFirebugのを使用するか、 1349 01:08:22,359 --> 01:08:26,109 クロムは、ええ、あなたは可能性 特定のHTMLを参照してください。 1350 01:08:26,109 --> 01:08:28,470 だから、$行["名前"]表示されませんでした。 1351 01:08:28,470 --> 01:08:32,524 これは、どちらかを示すであろう 名前は、その行にある。 1352 01:08:32,524 --> 01:08:36,268 >> 観客:単に一般的な問題、 と定義され、TRおよびTDは何ですか? 1353 01:08:36,268 --> 01:08:37,672 なぜ我々は[聞こえない]でしょうか? 1354 01:08:37,672 --> 01:08:41,850 1355 01:08:41,850 --> 01:08:44,814 >> ZAMYLA CHAN:テーブル行TR、 テーブルには、[列のtdと。 1356 01:08:44,814 --> 01:08:48,060 1357 01:08:48,060 --> 01:08:49,310 [OK]をクリックします。 1358 01:08:49,310 --> 01:08:55,771 1359 01:08:55,771 --> 01:08:56,835 >> 観客:ええ、それは表データです。 1360 01:08:56,835 --> 01:08:58,770 >> ZAMYLA CHAN:テーブルデータ。 1361 01:08:58,770 --> 01:08:59,894 うん。 1362 01:08:59,894 --> 01:09:08,670 >> 観客:それは中の行の 行は列のように扱われている? 1363 01:09:08,670 --> 01:09:08,910 >> ZAMYLA CHAN:申し訳ありません。 1364 01:09:08,910 --> 01:09:10,570 あなたはそれを繰り返すことはできますか? 1365 01:09:10,570 --> 01:09:14,450 >> 観客:どのようにしてでしょう 行を視覚化? 1366 01:09:14,450 --> 01:09:16,310 >> ZAMYLA CHAN:どのように視覚化するだろう 方法はどのような行? 1367 01:09:16,310 --> 01:09:21,796 これらについて話している ここに行またはTR行? 1368 01:09:21,796 --> 01:09:22,630 >> 観客:行。 1369 01:09:22,630 --> 01:09:25,229 >> ZAMYLAちゃんここにこれらの行? 1370 01:09:25,229 --> 01:09:28,620 私はこれを視覚化したい 私は自分のクエリを実行します。 1371 01:09:28,620 --> 01:09:38,729 そして、それは[OK]を、私はnに0のどちらかを持っている、と言う 条件に一致する行の量 1372 01:09:38,729 --> 01:09:40,510 あなたが照会したこと。 1373 01:09:40,510 --> 01:09:43,740 だから私は、行をいくつか持っています。 1374 01:09:43,740 --> 01:09:51,450 だから行、$行、店舗ごと 配列内のこれらの行の1。 1375 01:09:51,450 --> 01:09:58,110 それはちょうどそれらの1であったとしてもそう、それはだ まだそれに一致する行の配列。 1376 01:09:58,110 --> 01:10:03,010 >> さて、例えば、これは あなたがフェッチされたときに似て 1377 01:10:03,010 --> 01:10:05,390 ユーザーからのキャッシュ。 1378 01:10:05,390 --> 01:10:10,810 そして基準がどこにあった IDは、セッションIDと同じ。 1379 01:10:10,810 --> 01:10:14,250 実際には1行があります それはそれと一致する可能性が。 1380 01:10:14,250 --> 01:10:18,960 しかし、まだ行が1行のみが返されました。 1381 01:10:18,960 --> 01:10:22,620 ですから、行に行かなければならないだろう、 インデックス0、インデックスキャッシュに 1382 01:10:22,620 --> 01:10:26,195 実際にあなたのキャッシュを取得する。 1383 01:10:26,195 --> 01:10:29,650 >> 観客は:印刷機能です 同じことをエコーでの? 1384 01:10:29,650 --> 01:10:30,670 >> ZAMYLA CHAN:はい。 1385 01:10:30,670 --> 01:10:31,190 はい。 1386 01:10:31,190 --> 01:10:33,304 同じのエコーを印刷します。 1387 01:10:33,304 --> 01:10:42,400 >> 観客は:foreachのループである 行へのインデックスへの唯一の方法は? 1388 01:10:42,400 --> 01:10:46,110 >> ZAMYLAチャンは:foreachのループである あなたができる唯一の​​方法 1389 01:10:46,110 --> 01:10:47,030 行を反復? 1390 01:10:47,030 --> 01:10:47,180 いいえ。 1391 01:10:47,180 --> 01:10:51,000 また、提供、forループを使用することができます あなたは長さを知っていることを 1392 01:10:51,000 --> 01:10:53,024 行の配列の。 1393 01:10:53,024 --> 01:10:58,500 >> 読者:あなたがそれにアクセスすることができました [聞こえない]として行を使用して? 1394 01:10:58,500 --> 01:11:01,640 >> ZAMYLA CHAN:だから、それにアクセスすることはできません あなたが持っていない場合だけで行を使用して 1395 01:11:01,640 --> 01:11:05,160 foreachループであることを提供 あなたが行を宣言していない。 1396 01:11:05,160 --> 01:11:08,150 1397 01:11:08,150 --> 01:11:09,660 はい。 1398 01:11:09,660 --> 01:11:10,810 うん、白。 1399 01:11:10,810 --> 01:11:13,990 >> 観客:TRおよびTDはだから何をしますか? 1400 01:11:13,990 --> 01:11:16,790 >> ZAMYLA CHAN:だからTRと TDはHTMLタグである。 1401 01:11:16,790 --> 01:11:19,590 trは始まりを示し テーブル行の。 1402 01:11:19,590 --> 01:11:26,625 そして、それぞれのTDを示し 新しいテーブルのデータ列。 1403 01:11:26,625 --> 01:11:32,275 >> 観客:どのような行のVisualの のような、単にSQLを想像され、どのように 1404 01:11:32,275 --> 01:11:33,510 彼らは、行を持っている。 1405 01:11:33,510 --> 01:11:35,980 [聞こえない]。 1406 01:11:35,980 --> 01:11:36,390 >> ZAMYLA CHAN:うん。 1407 01:11:36,390 --> 01:11:37,630 それは素晴らしい点だ。 1408 01:11:37,630 --> 01:11:41,510 あなただけのように行を可視化することができます Excelのテーブルのような、ちょうど 1409 01:11:41,510 --> 01:11:44,540 行のリスト。 1410 01:11:44,540 --> 01:11:46,870 [OK]をクリックします。 1411 01:11:46,870 --> 01:11:47,230 わかりました。 1412 01:11:47,230 --> 01:11:50,740 だから今我々は、次の場合には、[上で行ってきたこと これ以上の質問は、私たちがよ、そこではありません 1413 01:11:50,740 --> 01:11:52,970 挿入に渡る。 1414 01:11:52,970 --> 01:11:58,220 私はいくつかに挿入したかったので、もし 表および特定の列を挿入する 1415 01:11:58,220 --> 01:12:02,320 値は、私は自分自身を挿入することができ 今年7 Ravenclawへ。 1416 01:12:02,320 --> 01:12:07,245 しかし、時には重複があるかもしれない 値、我々我々はpset7で見たように 1417 01:12:07,245 --> 01:12:09,240 当社のポートフォリオを更新しました。 1418 01:12:09,240 --> 01:12:15,610 >> したがって、このケースでは、上で使用する 我々はしないように、鍵更新を複製 1419 01:12:15,610 --> 01:12:18,280 同じで複数の行を格納する 値ではなく、むしろそれを更新します。 1420 01:12:18,280 --> 01:12:21,780 1421 01:12:21,780 --> 01:12:25,560 その後、我々は、実際に更新しました、 これは、挿入ではありません。 1422 01:12:25,560 --> 01:12:30,100 それは、更新だけの更新です 指定されたと、あるテーブル内の 1423 01:12:30,100 --> 01:12:34,403 基準次いで、最終的に、削除 その非常によく似たことを行います。 1424 01:12:34,403 --> 01:12:40,200 >> 観客:簡単にあなたでした 重複したキー上に行く? 1425 01:12:40,200 --> 01:12:40,850 >> ZAMYLA CHAN:うん。 1426 01:12:40,850 --> 01:12:48,340 基本的にここで、私は、INSERT INTOを持っている gringotts、ガレオンは、これらの値である。 1427 01:12:48,340 --> 01:12:56,900 しかしIDは、おそらく、一意のキーです 値は、MySQLのテーブルに設定します。 1428 01:12:56,900 --> 01:13:06,750 だから私はすでにそのIDを設定している場合は、 私は、新しい行を挿入することはできません。 1429 01:13:06,750 --> 01:13:10,961 だから、まだ存在していない場合、 私はそれを更新する必要があります。 1430 01:13:10,961 --> 01:13:16,040 1431 01:13:16,040 --> 01:13:17,722 白の中間にある。 1432 01:13:17,722 --> 01:13:21,570 >> 観客:そう、削除、挿入、更新、 と選択し、それらのすべての利用可能です 1433 01:13:21,570 --> 01:13:22,875 ローカルに[聞き取れない]? 1434 01:13:22,875 --> 01:13:27,320 1435 01:13:27,320 --> 01:13:29,630 >> ZAMYLA CHAN:だから挿入し、 更新、削除、および 1436 01:13:29,630 --> 01:13:31,120 選択されたすべてのSQLクエリです。 1437 01:13:31,120 --> 01:13:34,970 だから、SQLを使用しているときはいつでも、 あなたが利用可能なものがあるでしょう。 1438 01:13:34,970 --> 01:13:38,226 1439 01:13:38,226 --> 01:13:40,706 >> 観客:過去のクイズへ戻る - 1440 01:13:40,706 --> 01:13:44,178 扱っ質問がありました あなたは、テーブルを持っていたし、したい場合 1441 01:13:44,178 --> 01:13:52,610 1にテストの点数を挿入し、挿入 自分の名前、それはあなたをさせませんので、 1442 01:13:52,610 --> 01:13:54,594 [聞こえない]友達のテストのスコア。 1443 01:13:54,594 --> 01:13:59,060 [挿入でそれをどのように行うのでしょうか? 1444 01:13:59,060 --> 01:14:02,490 >> ZAMYLAちゃんそこで質問していました 前回の中期質問。 1445 01:14:02,490 --> 01:14:04,320 私はこれを認識していないよ 1それは今です。 1446 01:14:04,320 --> 01:14:06,790 そのため、おそらくその後、あなたがしたい場合は、 出てくると私を見ると、私ができる 1447 01:14:06,790 --> 01:14:08,155 確かにあなたにヒントを与える。 1448 01:14:08,155 --> 01:14:11,250 1449 01:14:11,250 --> 01:14:15,460 しかし、同じように、物事を挿入すると言えば ときに誰かの得点を取って 1450 01:14:15,460 --> 01:14:18,800 、の話をさせてはならない SQLインジェクション攻撃。 1451 01:14:18,800 --> 01:14:22,050 だから、SQLインジェクション攻撃は、本質的に どこで誰が取る 1452 01:14:22,050 --> 01:14:27,680 低セキュリティの利点 あなたは、データに取っている方法です。 1453 01:14:27,680 --> 01:14:35,660 >> だからここでは、単にCS50金融と同様に、 私たちがログインしたとき、我々は中に入ることができる 1454 01:14:35,660 --> 01:14:39,510 ログインフォームにユーザー名、 最初のテキストボックス、および 1455 01:14:39,510 --> 01:14:41,570 その後、パスワードを入力してください。 1456 01:14:41,570 --> 01:14:45,610 おそらく、私たちのPHPコードは、見えるかもしれません このようなものは、$ユーザ名 1457 01:14:45,610 --> 01:14:51,410 ポストデータ·ユーザ名とパスワードは ポストデータ·パスワードです。 1458 01:14:51,410 --> 01:14:55,110 そして、我々は、ちょうど私たちのクエリを実行し、言う、 [OK]を、よく、私たちのクエリでは、しようとしている 1459 01:14:55,110 --> 01:14:57,990 ここで、ユーザーの皆様からの選択 ユーザ名です 1460 01:14:57,990 --> 01:14:58,970 彼らが提出した1。 1461 01:14:58,970 --> 01:15:06,870 とパスワードはpasswordです、 パスワードが一致していることを意味します。 1462 01:15:06,870 --> 01:15:12,670 >> 今、どのような場合ではなく、実際に のように、実際のパスワードを提出 1463 01:15:12,670 --> 01:15:16,850 12345と言うこと熊手を推測 パスワードとハックしようとしている彼らの 1464 01:15:16,850 --> 01:15:21,460 アカウント、どのような場合は、代わりに 彼らはこれを提出した。 1465 01:15:21,460 --> 01:15:24,380 彼らは多分にあると入力することができ パスワードを推測。 1466 01:15:24,380 --> 01:15:30,480 そして彼らが終了になる 引用して入力したり= 1 1。 1467 01:15:30,480 --> 01:15:35,160 つまり、SQLに直接ペースだろう このようなものを見て問い合わせる。 1468 01:15:35,160 --> 01:15:38,200 ユーザー名のユーザーから選択します =突起とパスワード 1469 01:15:38,200 --> 01:15:41,450 ユリまたは1 = 1に相当します。 1470 01:15:41,450 --> 01:15:45,450 >> だから、どちらかのパスワードがあります 正しいまたは1 = 1になることは、 1471 01:15:45,450 --> 01:15:47,870 常に真である。 1472 01:15:47,870 --> 01:15:52,780 できるユーザは、基本的に、この場合のように これを利用し、ちょうどログイン 1473 01:15:52,780 --> 01:15:55,240 それ自体とハック 誰かのアカウント。 1474 01:15:55,240 --> 01:15:58,950 私たちが避けたいだから、なぜです これを実行する必要が誰か。 1475 01:15:58,950 --> 01:16:03,890 しかし、幸いなことに、クエリ機能による プレースホルダに渡すとなります 1476 01:16:03,890 --> 01:16:04,800 あなたのためにこれの世話。 1477 01:16:04,800 --> 01:16:08,570 また、通常は望むことは決してないだろう 実際にパスワードを提出する 1478 01:16:08,570 --> 01:16:09,310 自分自身。 1479 01:16:09,310 --> 01:16:14,115 我々はハッシュ化されたまたは暗号化された理由です CS50ファイナンスでそれら。 1480 01:16:14,115 --> 01:16:17,553 >> 観客:過去のクイズ話 約MySQLのエスケープ文字列。 1481 01:16:17,553 --> 01:16:21,800 我々はそのことについて心配する必要はありますか? 1482 01:16:21,800 --> 01:16:22,670 >> ZAMYLA CHAN:それは良い質問です。 1483 01:16:22,670 --> 01:16:29,050 MySQLのエスケープ文字列は、間違いなく 私たちのクエリで使用された機能。 1484 01:16:29,050 --> 01:16:30,420 しかし、間違いなくそのに見て。 1485 01:16:30,420 --> 01:16:32,950 私は知っている公正なゲームだと言うだろう あなたはそれを呼び出すために必要があるだろうことを 1486 01:16:32,950 --> 01:16:34,370 文字列に対して機能します。 1487 01:16:34,370 --> 01:16:35,245 ええ、ベリンダ? 1488 01:16:35,245 --> 01:16:38,606 >> 観客:それはだ時にどのように知っていますか 単一引用符または二重引用符? 1489 01:16:38,606 --> 01:16:43,516 そしてまた、私は講演で、あなたのように感じる 持っていないについて何かを言及 1490 01:16:43,516 --> 01:16:48,426 [聞こえない]か何かか 端部に第2単一引用符。 1491 01:16:48,426 --> 01:16:56,407 1492 01:16:56,407 --> 01:17:00,825 私は彼が講演で指摘したと思う あなたは、アポストロフィ1を持っていることになっている 1493 01:17:00,825 --> 01:17:04,290 して、アポストロフィを持っていない か何か。 1494 01:17:04,290 --> 01:17:05,540 >> 観客:[聞こえない]。 1495 01:17:05,540 --> 01:17:14,860 1496 01:17:14,860 --> 01:17:18,657 >> 観客:ものは最後のシングルである その第二のボックスにそこに引用 1497 01:17:18,657 --> 01:17:19,391 があってはならない。 1498 01:17:19,391 --> 01:17:21,840 [聞こえない] 1499 01:17:21,840 --> 01:17:26,730 そのためには、その最後のシングルを取るとき 出引用したコンテンツのためにこれらと一致 1500 01:17:26,730 --> 01:17:30,522 あなたがそれを持っている場合、パスワードは、ここで クエリは、単一引用符であります 1501 01:17:30,522 --> 01:17:31,340 すでに終了。 1502 01:17:31,340 --> 01:17:36,580 あなたは、その単一引用符を使用する 1に直面しているものと 1503 01:17:36,580 --> 01:17:37,574 [聞こえない]。 1504 01:17:37,574 --> 01:17:42,820 それでは、そのテキストに実際の ボックスには、それを持つべきではない。 1505 01:17:42,820 --> 01:17:44,070 >> ZAMYLA CHAN:私はそれを変更します。 1506 01:17:44,070 --> 01:17:56,490 1507 01:17:56,490 --> 01:17:56,880 [OK]をクリックします。 1508 01:17:56,880 --> 01:18:00,435 ご不明な点が存在しない場合は、私がよ 話をヨセフにそれを渡す 1509 01:18:00,435 --> 01:18:04,332 JavaScriptの約、エトセトラ。 1510 01:18:04,332 --> 01:18:09,540 >> [拍手] 1511 01:18:09,540 --> 01:18:11,660 >> JOSEPH ONG:だから我々が実行されている 少し背後にある。 1512 01:18:11,660 --> 01:18:13,280 あなたが残しているのであれば、それはOKです。 1513 01:18:13,280 --> 01:18:16,540 しかし、我々はあなたがダウンして、あなたの頭を維持することをお願い あなたが途中であれば、あなたはそう 1514 01:18:16,540 --> 01:18:19,560 カメラをブロックし、あなたが使用していない あなたがしなければならない場合、バック終了。 1515 01:18:19,560 --> 01:18:25,010 1516 01:18:25,010 --> 01:18:26,306 私は途中でジョセフです。 1517 01:18:26,306 --> 01:18:27,556 こんにちは。 1518 01:18:27,556 --> 01:18:37,910 1519 01:18:37,910 --> 01:18:38,630 テスト、テスト。 1520 01:18:38,630 --> 01:18:39,630 ダン、それは良いでしょうか? 1521 01:18:39,630 --> 01:18:40,880 涼しい。 1522 01:18:40,880 --> 01:18:44,460 1523 01:18:44,460 --> 01:18:47,600 >> だから、ビデオも掲載されます その人のためのオンライン 1524 01:18:47,600 --> 01:18:48,850 今残している。 1525 01:18:48,850 --> 01:18:51,350 1526 01:18:51,350 --> 01:18:52,600 ぎこちない。 1527 01:18:52,600 --> 01:18:56,300 1528 01:18:56,300 --> 01:18:57,510 [OK]をクリックします。 1529 01:18:57,510 --> 01:18:59,730 そうクイズレビュー。 1530 01:18:59,730 --> 01:19:00,980 これは猫です。 1531 01:19:00,980 --> 01:19:03,150 1532 01:19:03,150 --> 01:19:07,170 そうでないかもしれないです、今は、JavaScript、 君たちのいくつかについてAWWとして。 1533 01:19:07,170 --> 01:19:07,370 [OK]をクリックします。 1534 01:19:07,370 --> 01:19:09,280 だから、最初Zamylaからのリコールです。 1535 01:19:09,280 --> 01:19:11,270 PHPがあることを覚えている サーバー上で実行されます。 1536 01:19:11,270 --> 01:19:15,230 と時間の多くは、あなたたちはループを書きました PHPで右、HTMLをプリントアウトするか? 1537 01:19:15,230 --> 01:19:19,170 だから、そのコードが実行されると、その あなたがプリントアウトHTML出力 1538 01:19:19,170 --> 01:19:20,500 ユーザーに送信されます。 1539 01:19:20,500 --> 01:19:25,960 一度それが起こると、もはやPHPができます あなたがページをリロードしない限りに、実行することが 1540 01:19:25,960 --> 01:19:27,660 PHPを再実行はもちろん、。 1541 01:19:27,660 --> 01:19:30,080 しかし、あなたはそのHTMLを印刷した後、 あなたはどこにも行くことができない。 1542 01:19:30,080 --> 01:19:33,580 >> だからHTMLは、ユーザーに介して送信される こっちは、ブラウザである場合、 1543 01:19:33,580 --> 01:19:35,470 ミロは、コンピュータを使用しています。 1544 01:19:35,470 --> 01:19:40,340 と非常によく、いくつかあります 私たちは、ユーザーにHTMLを送信した後。 1545 01:19:40,340 --> 01:19:43,350 時々、のような何かをしたい あなたが何かをクリックしたとき、我々は欲しい 1546 01:19:43,350 --> 01:19:47,350 警告ボックスは、のそれらの種類をポップアップする を押したときのような相互作用は、 1547 01:19:47,350 --> 01:19:50,740 あなたが何かをクリックし、キー、 ページは、私が起こるために何かをしたい。 1548 01:19:50,740 --> 01:19:54,550 さて、あなたは、PHPを再実行することはできません そのHTML一度コードが設定されます。 1549 01:19:54,550 --> 01:19:55,900 それでは、どのようにこれを行うのですか? 1550 01:19:55,900 --> 01:19:59,930 >> 我々はと呼ばれる新しい言語を導入 ブラウザで実行するJavaScript、 1551 01:19:59,930 --> 01:20:02,890 それはあなたが物事を行うことができます HTMLにあなたが受け取った後 1552 01:20:02,890 --> 01:20:04,020 サーバーから。 1553 01:20:04,020 --> 01:20:07,050 我々は、クライアント側と呼ぶ理由、これはある プログラミング言語。 1554 01:20:07,050 --> 01:20:09,110 それはあなたのコンピュータ上で動作します - 1555 01:20:09,110 --> 01:20:11,400 クライアント。 1556 01:20:11,400 --> 01:20:13,830 これまでのところ、そのについてのご質問? 1557 01:20:13,830 --> 01:20:15,650 そのパラダイムは、人々に理にかなっている? 1558 01:20:15,650 --> 01:20:16,010 [OK]をクリックします。 1559 01:20:16,010 --> 01:20:16,790 グッド。 1560 01:20:16,790 --> 01:20:17,340 わかりました。 1561 01:20:17,340 --> 01:20:20,850 だから、最初に注意する JavaScriptは、PHPではありません。 1562 01:20:20,850 --> 01:20:23,010 >> 彼らはいくつかの異なる構文を持っている、 その我々が入るよ。 1563 01:20:23,010 --> 01:20:24,530 彼らは非常さまざまな用途を持っている。 1564 01:20:24,530 --> 01:20:26,640 あなたのために再度のJavaScript、、 クライアントのブラウザ、。 1565 01:20:26,640 --> 01:20:30,640 サーバーは、他の誰かの上のどこかに実行されます 情報を送信するコンピュータ 1566 01:20:30,640 --> 01:20:31,720 あなたには、正しい? 1567 01:20:31,720 --> 01:20:36,730 だから我々は、PHPコードを記述するように依頼した場合 試験問題には、書いてはいけません 1568 01:20:36,730 --> 01:20:38,710 JavaScriptとその逆。 1569 01:20:38,710 --> 01:20:41,710 あなただけのポイントを失うことになる、 それは右ではありません。 1570 01:20:41,710 --> 01:20:43,690 >> それでは、いくつかに取得させ 構文の違い - 1571 01:20:43,690 --> 01:20:46,140 左のJavaScriptを 右側のPHP。 1572 01:20:46,140 --> 01:20:48,670 あなたが気づく最初の事 JavaScriptを、我々はして変数を宣言 1573 01:20:48,670 --> 01:20:49,440 varキーワード - 1574 01:20:49,440 --> 01:20:53,590 V-A-R。 PHPは、ドル記号を使用し、 Zamylaは、先に述べたように。 1575 01:20:53,590 --> 01:20:57,570 あなたが連想を宣言する場合 配列は、上でおなじみの構文を参照してください 1576 01:20:57,570 --> 01:20:59,030 PHPで右側。 1577 01:20:59,030 --> 01:21:01,630 左側には、代わりに あなたは中括弧を使用しています。 1578 01:21:01,630 --> 01:21:03,280 してから、キーが左側にあります。 1579 01:21:03,280 --> 01:21:04,670 次に、コロンを持っている。 1580 01:21:04,670 --> 01:21:06,560 そして、あなたは値を持っている あなたが望むこと。 1581 01:21:06,560 --> 01:21:09,840 >> だから、これは、PHPでそれを行うだろうかです 、第2に、右側に 1582 01:21:09,840 --> 01:21:10,955 ミロで始まる行。 1583 01:21:10,955 --> 01:21:14,540 そして、それはあなたがそれを行うだろうかです 必要に応じてJavaScriptで左側 1584 01:21:14,540 --> 01:21:16,110 我々は、オブジェクトと呼ばれるもの。 1585 01:21:16,110 --> 01:21:19,340 JavaScriptでのオブジェクトがある ただ連想配列。 1586 01:21:19,340 --> 01:21:23,710 だから、中に、フィールドにアクセスする場合 PHPは、この括弧構文を使用しています。 1587 01:21:23,710 --> 01:21:27,170 そして、このようにして、再割り当てすることができます ローレンは、この所有者フィールド。 1588 01:21:27,170 --> 01:21:30,150 >> さて、JavaScriptで、1がしたい場合は、 あなたができる、フィールドにアクセスし、それを変更する 1589 01:21:30,150 --> 01:21:31,370 ドット構文を使用します。 1590 01:21:31,370 --> 01:21:33,860 また、ブラケットの構文を使用することができます。 1591 01:21:33,860 --> 01:21:35,550 しかし、あなたは使用できません。 PHPのドット構文。 1592 01:21:35,550 --> 01:21:36,525 それは動作しません。 1593 01:21:36,525 --> 01:21:38,910 それが唯一のPHPで動作します。 1594 01:21:38,910 --> 01:21:42,060 そして最後に、に物事を印刷する コンソールには、コンソールログを使用し、その 1595 01:21:42,060 --> 01:21:43,720 あなたたちはpset8にたくさん使う。 1596 01:21:43,720 --> 01:21:45,260 あなたはそれをCONSOLE.LOGすることができます。 1597 01:21:45,260 --> 01:21:50,030 >> あなたは、アレイを印刷したい場合は PHPは、あなたが印字Rを使用する必要があります。 1598 01:21:50,030 --> 01:21:53,240 右側に、あなたは、私は、ハッシュ参照 あそこ文字列連結。 1599 01:21:53,240 --> 01:21:54,070 誰かが先に尋ねた。 1600 01:21:54,070 --> 01:21:55,850 私はJavaScriptでプラスを使用しています。 1601 01:21:55,850 --> 01:21:59,800 私は何かを連結する場合 PHPで、私は、ドットを使用しています。 1602 01:21:59,800 --> 01:22:00,800 これらは異なっている。 1603 01:22:00,800 --> 01:22:03,420 あなたは、PHPのコードを書いている場合、 プラスを使用しないでください。 1604 01:22:03,420 --> 01:22:06,810 あなたは、JavaScriptを書いている場合 コー​​ドは、ドットを書かない。 1605 01:22:06,810 --> 01:22:08,230 それが間違っている可能性がします。 1606 01:22:08,230 --> 01:22:09,640 そして、あなたは悲しいよ。 1607 01:22:09,640 --> 01:22:11,000 >> そうな構文の違い。 1608 01:22:11,000 --> 01:22:14,710 あなたがする必要がある場合ので、あなたの構文を知る 質問を書いて、次の構文を使用 1609 01:22:14,710 --> 01:22:16,890 誤った言語から、 それは動作しません。 1610 01:22:16,890 --> 01:22:19,520 そして、それは間違っているでしょう。 1611 01:22:19,520 --> 01:22:22,420 それでは、いくつかのコントロールについて話しましょう あなたがどの​​ように使用するか、の違いを流れ 1612 01:22:22,420 --> 01:22:24,040 それらのそれぞれのループ。 1613 01:22:24,040 --> 01:22:26,610 Zamyla右側の上を越えて行った。 1614 01:22:26,610 --> 01:22:27,780 右側にあるもの 精通している必要があります。 1615 01:22:27,780 --> 01:22:29,670 の左側に見てみましょう。 1616 01:22:29,670 --> 01:22:34,830 >> あなたはJavaScriptで、N個のforループを使用すると、 あなたのループ変数、VARあそこI、 1617 01:22:34,830 --> 01:22:37,210 配列のキーをループ。 1618 01:22:37,210 --> 01:22:39,150 だから、名前、家、および役割を参照してください。 1619 01:22:39,150 --> 01:22:42,440 私は私をCONSOLE.LOG場合は、私が取得 名前、家、および役割。 1620 01:22:42,440 --> 01:22:44,720 これらのキーである。 1621 01:22:44,720 --> 01:22:50,080 JavaScriptでは、foreachループが行く この配列の値以上。 1622 01:22:50,080 --> 01:22:52,040 だから、彼らは両方のIだ気づく。 1623 01:22:52,040 --> 01:22:56,000 しかし、ここで、PHP側では、出力します ミロ、CS50、およびマスコット出。 1624 01:22:56,000 --> 01:22:57,390 それらは、PHPでの値です。 1625 01:22:57,390 --> 01:23:00,180 >> したがって、これらは、これらの2が異なる方法である 異なる言語で。 1626 01:23:00,180 --> 01:23:02,970 だから、foreachの使用している場合 ループは、そのことを負うものではありません。 1627 01:23:02,970 --> 01:23:03,760 あなたの鍵を提供します。 1628 01:23:03,760 --> 01:23:08,010 あなたはn個のforループを使用している場合と、しない それはあなたに値を与えるものとします。 1629 01:23:08,010 --> 01:23:10,420 これは、これまで理にかなっていますか? 1630 01:23:10,420 --> 01:23:13,630 次のスライドは、お見せしようとしている あなたは反対にアクセスする方法 1631 01:23:13,630 --> 01:23:15,160 それらの各。 1632 01:23:15,160 --> 01:23:18,550 >> さて、あなたはJavaScriptで鍵を持っている場合 あなたは、値をしたい 1633 01:23:18,550 --> 01:23:20,440 にあなただけのインデックス それを持つ配列。 1634 01:23:20,440 --> 01:23:23,640 だから私のミロはあなたに何が表示されます あなたが欲しい - 値。 1635 01:23:23,640 --> 01:23:25,260 PHPでこの別の構文があります。 1636 01:23:25,260 --> 01:23:28,140 あなたが本当にそれを知りたい場合は、私はしないでください 我々はまだあなたにそれを示したしたと思う。 1637 01:23:28,140 --> 01:23:31,740 もし興味があるなら、あなたは使用することができます 右側のこの追加構文 1638 01:23:31,740 --> 01:23:35,130 実際にあなたが得るようになる側 PHP内のキー使用している 1639 01:23:35,130 --> 01:23:35,880 foreachループ。 1640 01:23:35,880 --> 01:23:39,640 トリビアのそのように少しだけ もし興味があるなら。 1641 01:23:39,640 --> 01:23:42,630 >> だから、実証することだけです これらの二つのループの間の差。 1642 01:23:42,630 --> 01:23:47,060 あなたがしているときにそれらを混同しないでください 質問をプログラミング。 1643 01:23:47,060 --> 01:23:49,774 それについての質問。 1644 01:23:49,774 --> 01:23:50,770 涼しい。 1645 01:23:50,770 --> 01:23:51,310 わかりました。 1646 01:23:51,310 --> 01:23:52,250 JavaScriptのオブジェクト。 1647 01:23:52,250 --> 01:23:53,040 私はそれらについて話しました。 1648 01:23:53,040 --> 01:23:54,650 彼らは、連想配列のようにしている。 1649 01:23:54,650 --> 01:23:57,730 私はあなたが注意したい一つのこと ここで、その連想の値 1650 01:23:57,730 --> 01:23:59,540 配列には、JavaScriptで何もすることができます。 1651 01:23:59,540 --> 01:24:02,240 >> それも、機能することができ、 あそこのような。 1652 01:24:02,240 --> 01:24:04,600 Iは、機能を有すること キーの値です。 1653 01:24:04,600 --> 01:24:07,030 そして私は、その関数を呼び出したい場合には、 私は樹皮にアクセスします。 1654 01:24:07,030 --> 01:24:08,490 そして私は、括弧を入れる この後。 1655 01:24:08,490 --> 01:24:09,790 そして、それは動作します。 1656 01:24:09,790 --> 01:24:15,570 そうか質問? 1657 01:24:15,570 --> 01:24:16,370 なし? 1658 01:24:16,370 --> 01:24:16,650 [OK]をクリックします。 1659 01:24:16,650 --> 01:24:18,190 グッド。 1660 01:24:18,190 --> 01:24:20,130 PHPのようなJavaScriptや、 弱い型付けされている。 1661 01:24:20,130 --> 01:24:20,970 どういう意味ですか? 1662 01:24:20,970 --> 01:24:22,380 >> それは、型を持っています。 1663 01:24:22,380 --> 01:24:24,800 しかし、あなたはJavaScriptを宣言するとき 変数には、私は、varを言う。 1664 01:24:24,800 --> 01:24:25,850 あなたはそれを言うことはありません。 1665 01:24:25,850 --> 01:24:26,460 それはものではありません。 1666 01:24:26,460 --> 01:24:28,000 あなたはそれが変数だと言う。 1667 01:24:28,000 --> 01:24:31,590 して、JavaScriptは処理します あなたのためのフードの下のタイプ。 1668 01:24:31,590 --> 01:24:34,390 我々は自由との間で変換することができます このため種類。 1669 01:24:34,390 --> 01:24:37,360 だから私は数として開始 この場合は。 1670 01:24:37,360 --> 01:24:38,790 そして私は、文字列を持っている。 1671 01:24:38,790 --> 01:24:39,710 そして、私はそれに私を追加してください。 1672 01:24:39,710 --> 01:24:41,810 そして、私は私に戻ってそれを再割り当てする。 1673 01:24:41,810 --> 01:24:43,640 >> だから最初の行に、 私は数値です。 1674 01:24:43,640 --> 01:24:47,310 二行目に、私は今になっ 私は再割り当てを行った後の文字列。 1675 01:24:47,310 --> 01:24:52,820 そしてここで、私はちょうど連結よ 文字列の上にその数。 1676 01:24:52,820 --> 01:24:56,210 だから、見ている私がいたにもかかわらず、 整数の最初の部分では、ソートの 1677 01:24:56,210 --> 01:24:58,500 のAに変換されるように 文字列として追加されている 1678 01:24:58,500 --> 01:25:00,510 そのハロー文字列の上に。 1679 01:25:00,510 --> 01:25:02,340 だから、それは私が何を意味するかだ 緩い次のように入力して、。 1680 01:25:02,340 --> 01:25:04,760 つまり、間に変換することです 非常に簡単なタイプ。 1681 01:25:04,760 --> 01:25:08,840 そして、それは警告をスローしません あなたに、Cのように行います。 1682 01:25:08,840 --> 01:25:12,420 >> だから、私は今こんにちは含まれています 文字列への123。 1683 01:25:12,420 --> 01:25:13,270 次へ。 1684 01:25:13,270 --> 01:25:15,610 我々はまた、自由に比較することができます 型の間。 1685 01:25:15,610 --> 01:25:19,310 だから、あなただけの==を使用する場合、非常に多くの PHPは、JavaScriptのよう 1686 01:25:19,310 --> 01:25:20,480 同じようなことをします。 1687 01:25:20,480 --> 01:25:24,780 文字列123は、番号と同じである 123あなたは二重の等号を使用しています。 1688 01:25:24,780 --> 01:25:27,820 三重等号を使用する場合、それはまた、 ていることを確認したい 1689 01:25:27,820 --> 01:25:29,240 型は同じです。 1690 01:25:29,240 --> 01:25:31,960 だから文字列であり、それがあるため、 彼らは両方の方にもかかわらず、数、 1691 01:25:31,960 --> 01:25:35,280 123、あなたは、トリプルを使用 あなたが偽の取得に等しい。 1692 01:25:35,280 --> 01:25:39,330 二重の場合と等しくなり、あなたは真の取得、 ダブル等号はないので、 1693 01:25:39,330 --> 01:25:40,020 型を気に。 1694 01:25:40,020 --> 01:25:42,500 トリプル等号は、型を気にしない。 1695 01:25:42,500 --> 01:25:43,750 質問? 1696 01:25:43,750 --> 01:25:45,790 1697 01:25:45,790 --> 01:25:48,390 [OK]をクリックします。 1698 01:25:48,390 --> 01:25:52,870 >> とJavaScriptについてのもう一つは、ある あなたがない限りスコープはグローバルの一種である 1699 01:25:52,870 --> 01:25:53,460 関数内。 1700 01:25:53,460 --> 01:25:55,660 そして、それは同じように動作します 実際にPHPの道。 1701 01:25:55,660 --> 01:25:57,500 それでは、この例を手放す。 1702 01:25:57,500 --> 01:25:59,110 私は、999 iに設定してください。 1703 01:25:59,110 --> 01:26:00,900 そして私は、forループを、このに入る。 1704 01:26:00,900 --> 01:26:06,110 だから私はこの中で私をプリントアウトしていた場合 ループは、I 0、1、2、3、4を期待する。 1705 01:26:06,110 --> 01:26:07,390 私は、I = 4に到達する。 1706 01:26:07,390 --> 01:26:10,770 それは、5に今私をインクリメント ループの終わり。 1707 01:26:10,770 --> 01:26:13,300 そしてそれは、ループから抜け出し、 それが満たしていないため、 1708 01:26:13,300 --> 01:26:14,550 条件はもう。 1709 01:26:14,550 --> 01:26:16,650 >> あなたはそれをどう思いますか、次の のconsole.logを出力します? 1710 01:26:16,650 --> 01:26:20,570 1711 01:26:20,570 --> 01:26:24,790 だから、それがCではCでどうするかだ あなたが外VARように私を持っている場合、以下の原因 1712 01:26:24,790 --> 01:26:28,855 あなたは次のように、ループ内のvar Iを持っている ループのために、それはそのようなことを行う 1713 01:26:28,855 --> 01:26:30,690 それがスコープだと2 私のは異なっている。 1714 01:26:30,690 --> 01:26:34,630 JavaScriptでは、それだけであろう 同じIのように扱う。 1715 01:26:34,630 --> 01:26:37,870 それは価値だったので、私は、5を得る それは、ループの外に出た後に。 1716 01:26:37,870 --> 01:26:39,120 ので、これらのiのは、同じIである。 1717 01:26:39,120 --> 01:26:42,620 1718 01:26:42,620 --> 01:26:44,130 それは理にかなっていますか? 1719 01:26:44,130 --> 01:26:45,720 >> まあ、それはから理にかなっている JavaScriptの立場。 1720 01:26:45,720 --> 01:26:49,510 しかし、同じパラダイムはない 彼らが持っているCに引き継が 1721 01:26:49,510 --> 01:26:50,310 異なるスコープ規則。 1722 01:26:50,310 --> 01:26:50,630 はい。 1723 01:26:50,630 --> 01:26:52,566 >> 観客:[聞こえない] 1724 01:26:52,566 --> 01:26:54,990 [聞こえない]関数の外? 1725 01:26:54,990 --> 01:26:58,340 >> JOSEPH ONG:だからその関数の外? 1726 01:26:58,340 --> 01:27:00,810 だから、僕は第二のものに得られます。 1727 01:27:00,810 --> 01:27:02,580 だから我々は、(i)のfooを呼び出します。 1728 01:27:02,580 --> 01:27:06,920 これは私がインクリメントし、fooの中に入る それ、それをログに記録します。 1729 01:27:06,920 --> 01:27:07,750 だから、5だった。 1730 01:27:07,750 --> 01:27:09,210 だから、6となります。 1731 01:27:09,210 --> 01:27:11,670 しかし、私が話していることである その関数でそのI。 1732 01:27:11,670 --> 01:27:14,430 それは、パラメータなので、それはだ その関数にスコープ。 1733 01:27:14,430 --> 01:27:17,800 だから、かつて私は、実際にそのから抜け出す 機能、それが今行くために起こっている 1734 01:27:17,800 --> 01:27:19,860 昔からi。 1735 01:27:19,860 --> 01:27:23,000 私は、理由だけでスコープされていること それは関数内だ。 1736 01:27:23,000 --> 01:27:24,200 そして、我々は適用範囲と機能を持っている。 1737 01:27:24,200 --> 01:27:29,080 しかし、我々は外のスコープを持っていない JavaScriptでの関数の。 1738 01:27:29,080 --> 01:27:31,170 それは理にかなっていますか? 1739 01:27:31,170 --> 01:27:31,320 はい。 1740 01:27:31,320 --> 01:27:31,660 質問。 1741 01:27:31,660 --> 01:27:34,030 >> 観客:[聞こえない]は同じ? 1742 01:27:34,030 --> 01:27:34,500 >> JOSEPH ONG:そうそう。 1743 01:27:34,500 --> 01:27:36,260 PHPでは、それはものと同じタイプです。 1744 01:27:36,260 --> 01:27:37,680 実際に若干の微妙があります。 1745 01:27:37,680 --> 01:27:40,130 しかし、あなたはについて私に尋ねることができます レビュー後のこと。 1746 01:27:40,130 --> 01:27:43,930 あなたは本当に知っている必要はありません クイズのその繊細。 1747 01:27:43,930 --> 01:27:47,600 すべての意図や目的のために、様 変数、グローバルおよびPHPない限り、 1748 01:27:47,600 --> 01:27:49,150 彼らは、関数内で同じだ JavaScriptでの事。 1749 01:27:49,150 --> 01:27:49,480 はい。 1750 01:27:49,480 --> 01:27:52,890 >> 観客:なぜこれが許可されている JavaScriptと他にどこがない? 1751 01:27:52,890 --> 01:27:55,010 >> JOSEPH ONG:だから、なぜそれが許可されている JavaScriptでなくC言語で? 1752 01:27:55,010 --> 01:27:58,180 それはちょうど思い付いたのは誰 JavaScriptはこれがOKであると判断しました 1753 01:27:58,180 --> 01:27:59,510 JavaScriptを。 1754 01:27:59,510 --> 01:28:02,430 だから、単にプログラミング言語のようなものだ 私たちが言うように、条約。 1755 01:28:02,430 --> 01:28:02,580 はい。 1756 01:28:02,580 --> 01:28:04,480 >> 観客:なぜやった それが6から5に行く? 1757 01:28:04,480 --> 01:28:08,280 >> JOSEPH ONG:だからそれは6から5行ってきました、 私がfooに私が渡された場合、その理由 1758 01:28:08,280 --> 01:28:13,420 私のfooの内部は今のfooにスコープされている、 スコープは、内の関数に存在するため 1759 01:28:13,420 --> 01:28:15,050 JavaScriptを。 1760 01:28:15,050 --> 01:28:18,720 しかし、私はここから出たら、それのため 関数にスコープし、私はちょうどよ 1761 01:28:18,720 --> 01:28:24,300 中にあった通常のIを使用して 制御フローの残りの部分。 1762 01:28:24,300 --> 01:28:25,210 理にかなって? 1763 01:28:25,210 --> 01:28:26,910 私は上に移動することはできますか? 1764 01:28:26,910 --> 01:28:27,320 わかりました。 1765 01:28:27,320 --> 01:28:29,180 涼しい。 1766 01:28:29,180 --> 01:28:31,890 >> これの受け入れは、オブジェクトである 参照によって渡されます。 1767 01:28:31,890 --> 01:28:33,990 渡すときに、方法を知っている あなたはできる、Cに配列 1768 01:28:33,990 --> 01:28:35,810 実際には配列を変更する? 1769 01:28:35,810 --> 01:28:37,350 これは、JavaScriptで同じことだ。 1770 01:28:37,350 --> 01:28:42,960 私は、この場合、オブジェクトを渡すと、私 このcatify関数にミロを可決した。 1771 01:28:42,960 --> 01:28:44,490 ミロは始まります。 1772 01:28:44,490 --> 01:28:46,310 彼の名前はマイロバナナです。 1773 01:28:46,310 --> 01:28:51,670 私は関数に、そのオブジェクトを渡します なぜならそれは、オブジェクトの連想 1774 01:28:51,670 --> 01:28:53,730 JavaScriptで配列。 1775 01:28:53,730 --> 01:28:57,110 >> Iは、操作を実行する その関数では、意志 1776 01:28:57,110 --> 01:28:58,560 実際にオブジェクトを変更します。 1777 01:28:58,560 --> 01:29:01,720 だから、これはオブジェクトのみのために起こるのだろう JavaScriptで、ちょうどそれが起こるような 1778 01:29:01,720 --> 01:29:09,230 C.だからミロの名前の内部配列の場合 実際に今の猫になります。 1779 01:29:09,230 --> 01:29:10,090 それは理にかなっていますか? 1780 01:29:10,090 --> 01:29:11,840 だから、これはオブジェクトのみで動作します。 1781 01:29:11,840 --> 01:29:13,090 オブジェクトは参照によって渡されます。 1782 01:29:13,090 --> 01:29:13,400 はい。 1783 01:29:13,400 --> 01:29:16,850 >> 観客:だから、言っていること 変数iとは対照的である。 1784 01:29:16,850 --> 01:29:17,240 >> JOSEPH ONG:うん。 1785 01:29:17,240 --> 01:29:20,330 どの変数私だけだった 数、右? 1786 01:29:20,330 --> 01:29:25,280 あなたが通過するときには、C言語でのようなものだ INTEGER、それがコピーを作成します。 1787 01:29:25,280 --> 01:29:28,130 そして、あなたは配列を渡すとき、それは実際に の実際の配列を変更する 1788 01:29:28,130 --> 01:29:32,870 C.同じことがで発生 この場合のJavaScript。 1789 01:29:32,870 --> 01:29:34,070 わかりました。 1790 01:29:34,070 --> 01:29:38,134 そして次に、ミロは悲しいですので、 彼は今、猫です。 1791 01:29:38,134 --> 01:29:40,790 1792 01:29:40,790 --> 01:29:45,060 つまり、後に実際にミロた 獣医にいくつかの旅。 1793 01:29:45,060 --> 01:29:46,860 >> では、どのようにJavaScriptを使用しない Webページ内の? 1794 01:29:46,860 --> 01:29:47,790 我々はそれを含むことができる。 1795 01:29:47,790 --> 01:29:50,090 これは、ストリップタグを使用してHTMLコードである。 1796 01:29:50,090 --> 01:29:51,300 だから私はそこにストリップのタグを持っています。 1797 01:29:51,300 --> 01:29:54,820 そして私は、いくつかのJavaScriptを置く スクリプトタグ内のコード。 1798 01:29:54,820 --> 01:29:56,390 次いで、これを実行する。 1799 01:29:56,390 --> 01:29:58,830 私はちょうどこのようにそれを行うと、それはだ インラインJavaScriptを呼んだ。 1800 01:29:58,830 --> 01:30:02,400 それは、厄介なのようなものだから JavaScriptは、HTMLに実際にある。 1801 01:30:02,400 --> 01:30:07,010 >> これを行うには良い方法、非常に良く、 中にJavaScriptを書くことです 1802 01:30:07,010 --> 01:30:10,920 外部ファイルとして提供する ソースとスクリプトタグ。 1803 01:30:10,920 --> 01:30:14,920 そして、これは、そのJavaScriptファイルに移動します からJavaScriptコードを読み取る 1804 01:30:14,920 --> 01:30:15,960 代わりに、そのファイル。 1805 01:30:15,960 --> 01:30:18,820 そして、この方法では、あなたは多くを持っていない あなたの最初にはJavaScript 1806 01:30:18,820 --> 01:30:20,760 になり、HTMLファイル、 それは本当に厄介な。 1807 01:30:20,760 --> 01:30:21,860 あなただけのどこか別の場所に置く。 1808 01:30:21,860 --> 01:30:24,310 そしてそれはそこからそれを読み取ります。 1809 01:30:24,310 --> 01:30:25,560 それは理にかなっていましたか? 1810 01:30:25,560 --> 01:30:27,990 1811 01:30:27,990 --> 01:30:29,640 >> 配置の問題。 1812 01:30:29,640 --> 01:30:32,620 この特定の場合において、 スクリプトは、本体の前にある。 1813 01:30:32,620 --> 01:30:36,090 私はそれを実行したときにそう、そこ まだ体内には何もありません。 1814 01:30:36,090 --> 01:30:39,920 多分これは少しになります 私はこの次の部分を示している感覚。 1815 01:30:39,920 --> 01:30:43,210 この場合、スクリプト DIVの後に来る。 1816 01:30:43,210 --> 01:30:46,620 だから、DIVは、実際に表示されます 最初のページに。 1817 01:30:46,620 --> 01:30:49,470 右こここの小さな赤い円の中に、 テキストが表示されます参照してください。 1818 01:30:49,470 --> 01:30:51,810 して、アラートが表示されます。 1819 01:30:51,810 --> 01:30:54,890 >> 最初のケースでは、スクリプトのため、 DIVの前にあった、 1820 01:30:54,890 --> 01:30:56,170 アラートが最初に表示されます。 1821 01:30:56,170 --> 01:30:59,250 して、divが後に現れる あなたがボックスを閉じます。 1822 01:30:59,250 --> 01:31:01,330 だから、実行が問題になります。 1823 01:31:01,330 --> 01:31:02,290 だから我々は、この点に注意しておこう。 1824 01:31:02,290 --> 01:31:03,640 これは重要になります 少し中。 1825 01:31:03,640 --> 01:31:08,730 1826 01:31:08,730 --> 01:31:09,540 [OK]をクリックします。 1827 01:31:09,540 --> 01:31:12,750 とてもよく、どのようになるまで待つか ページ全体があなたの前にそれからロードされている 1828 01:31:12,750 --> 01:31:13,580 いくつかのコードを実行する? 1829 01:31:13,580 --> 01:31:15,540 私たちは、この小さな入るよ 少し後すぎ。 1830 01:31:15,540 --> 01:31:19,016 しかし、ちょうどこの位置をキープ ときに我々のために念頭に置い事項 1831 01:31:19,016 --> 01:31:20,570 別のスライドに来る。 1832 01:31:20,570 --> 01:31:22,030 >> だから我々は今、DOMを取得する。 1833 01:31:22,030 --> 01:31:23,550 とDOMとは何でしょうか? 1834 01:31:23,550 --> 01:31:26,830 あなたは、HTMLコードを見ればそう、それだけだ 画面上のテキストの束。 1835 01:31:26,830 --> 01:31:30,560 それでは、どのJavaScriptがいることを知っていますか これはHTML要素です? 1836 01:31:30,560 --> 01:31:33,410 だから我々は、いくつかのメモリを持っている必要があります この表現 1837 01:31:33,410 --> 01:31:34,930 我々が持っている構造。 1838 01:31:34,930 --> 01:31:40,240 そして、我々は、メモリにこれを持っているときはいつでも JavaScriptで表現、我々は呼ん 1839 01:31:40,240 --> 01:31:41,750 DOMのこと。 1840 01:31:41,750 --> 01:31:45,130 そして、それは人々が決めただけの方法だ 我々はこれを表すべきであること 1841 01:31:45,130 --> 01:31:46,400 などのHTML構造。 1842 01:31:46,400 --> 01:31:47,940 >> そして、何このDOMは、次のようになりません? 1843 01:31:47,940 --> 01:31:50,460 さて、メモリ表現では、 私たちは、このテキストを取る。 1844 01:31:50,460 --> 01:31:52,870 そして、我々はメモリにそれを回す 表現。 1845 01:31:52,870 --> 01:31:54,400 だから、これはHTMLです。 1846 01:31:54,400 --> 01:31:58,090 だから我々は最初にすべてのことを見つける DOMツリーは、文書を有している。 1847 01:31:58,090 --> 01:31:59,400 それは、木のように見えます。 1848 01:31:59,400 --> 01:32:03,550 およびドキュメントは、HTMLが含まれています タグ、実際にすべてのもの 1849 01:32:03,550 --> 01:32:05,150 今、この内部。 1850 01:32:05,150 --> 01:32:06,970 HTMLタグは、2人の子供がいる。 1851 01:32:06,970 --> 01:32:08,630 それは、頭を持っています。 1852 01:32:08,630 --> 01:32:12,380 その頭には、インデントを見れば あそこそれが構造化されている方法で、 1853 01:32:12,380 --> 01:32:14,960 終了タグの間に、 頭は、子供を持っています。 1854 01:32:14,960 --> 01:32:17,130 子供がタイトルです。 1855 01:32:17,130 --> 01:32:18,370 その通りです。 1856 01:32:18,370 --> 01:32:21,000 >> 今、私たちは、体の子供を持っている。 1857 01:32:21,000 --> 01:32:24,870 して、その本体が持つ 子供は家族を呼んだ。 1858 01:32:24,870 --> 01:32:27,950 そして、その家族は3人の子供がいる - 1859 01:32:27,950 --> 01:32:29,550 最も古い、中間、最年少。 1860 01:32:29,550 --> 01:32:31,960 だから、図を描画する方法を知っている必要があります このように、我々はどのようにお聞きするとき 1861 01:32:31,960 --> 01:32:34,270 我々は与えるときの図を描く もし左の上のHTML。 1862 01:32:34,270 --> 01:32:36,350 DOMツリーを生成する方法を知っている。 1863 01:32:36,350 --> 01:32:38,930 そして、これらのものの中に、ちょうどそこ 私が表現したいくつかのテキスト、 1864 01:32:38,930 --> 01:32:40,180 小さな箱のよう。 1865 01:32:40,180 --> 01:32:42,750 1866 01:32:42,750 --> 01:32:47,980 >> このDOMツリー構造を作るん 感覚とDOMとは何でしょうか? 1867 01:32:47,980 --> 01:32:49,300 だから、Pは何の略ですか? 1868 01:32:49,300 --> 01:32:51,850 あそこP、こっち そのタグで表す 1869 01:32:51,850 --> 01:32:54,510 HTMLで段落タグ。 1870 01:32:54,510 --> 01:32:57,080 だから、それを調べることができます。 1871 01:32:57,080 --> 01:32:59,290 しかし、それはそれはいくつかの意味 いくつかのテキストのためのスペース。 1872 01:32:59,290 --> 01:33:02,910 そして、それはいくつかのデフォルトCSSスタイルを持っている、 それは段落タグだから。 1873 01:33:02,910 --> 01:33:05,130 しかし、本当に心配しないでください その部分が多すぎる。 1874 01:33:05,130 --> 01:33:07,510 ちょうどそれがプレースホルダと知っている いくつかのテキストの。 1875 01:33:07,510 --> 01:33:08,480 はい。 1876 01:33:08,480 --> 01:33:10,200 質問? 1877 01:33:10,200 --> 01:33:11,021 はい。 1878 01:33:11,021 --> 01:33:12,374 >> 読者:あなただけのCSSを述べた。 1879 01:33:12,374 --> 01:33:15,492 ハッシュ家族とハッシュ すべてのものは、基本的には 1880 01:33:15,492 --> 01:33:17,400 CSSのIDを表す? 1881 01:33:17,400 --> 01:33:18,440 >> JOSEPH ONG:ええ、その通りです。 1882 01:33:18,440 --> 01:33:20,380 私は何をこれらのハッシュを取得します 第二の平均。 1883 01:33:20,380 --> 01:33:23,480 アンジェラは、CSSを介して行った時、彼女は CSSセレクタについて話しました。 1884 01:33:23,480 --> 01:33:26,770 これらは、CSSセレクタであることを 彼女が話していた。 1885 01:33:26,770 --> 01:33:28,268 はい、ロブ? 1886 01:33:28,268 --> 01:33:32,060 >> ROBボーデン:私もコメントだろう タイトルタグの内側に、そのDOM 1887 01:33:32,060 --> 01:33:35,385 また、テキストノードである。 1888 01:33:35,385 --> 01:33:36,070 >> JOSEPH ONG:右。 1889 01:33:36,070 --> 01:33:38,370 だから、タイトルタグ内、 私はいくつかのテキストのDOMを持っている。 1890 01:33:38,370 --> 01:33:42,730 だから本当に、このタイトルは次のように持っている必要があります 小さなボックスには、同様にそれをオフに来て。 1891 01:33:42,730 --> 01:33:45,740 しかし、それは本当に問題ではありません この場合はあまり。 1892 01:33:45,740 --> 01:33:49,620 私たちは本当にテキストノードを気にしない、 我々はあまりにも多く、それらを呼び出すように。 1893 01:33:49,620 --> 01:33:50,270 [OK]を、私たちはやる。 1894 01:33:50,270 --> 01:33:51,520 どうやら、私たちはやる。 1895 01:33:51,520 --> 01:33:54,260 1896 01:33:54,260 --> 01:33:57,100 と私はときに修正されます 私は再びそれをアップロードしてください。 1897 01:33:57,100 --> 01:33:59,830 それは理にかなっていますか? 1898 01:33:59,830 --> 01:34:01,160 >> では、どのように、DOMを操作するのですか? 1899 01:34:01,160 --> 01:34:03,790 あなたはで、DOMを扱うときはいつでも JavaScriptの、2つのステップがあります。 1900 01:34:03,790 --> 01:34:05,030 あなたは、DOM要素を選択します。 1901 01:34:05,030 --> 01:34:06,580 それから、あなたはそれに物事を行う。 1902 01:34:06,580 --> 01:34:11,480 この場合には、抽象的に、私がしました 中央の要素を選択した。 1903 01:34:11,480 --> 01:34:14,530 して、ものを行うの一例 それにテキストを変更することになる。 1904 01:34:14,530 --> 01:34:16,020 それはボブれていました。 1905 01:34:16,020 --> 01:34:19,930 今、私はそれにやったことは、私が変わった この場合は、ミロのボブ。 1906 01:34:19,930 --> 01:34:22,130 >> では、どのように実際にこれを行うのですか? 1907 01:34:22,130 --> 01:34:23,440 我々は選択をどのように行うのですか? 1908 01:34:23,440 --> 01:34:26,560 そして、我々はにやってものをどのように行うのですか 事はかつて我々はそれを撮影した? 1909 01:34:26,560 --> 01:34:30,470 さて、あなたたちの方法は、それを学んだ このクラスの何か我々を使用することによるものである 1910 01:34:30,470 --> 01:34:32,420 jQueryのと呼ばれる。 1911 01:34:32,420 --> 01:34:33,910 だから、jQueryは何ですか? 1912 01:34:33,910 --> 01:34:37,220 jQueryはなりライブラリです 書き込むには、WebブラウザでJavaScriptが容易。 1913 01:34:37,220 --> 01:34:39,500 だから、誰かが時間がかかった とjQueryを書いた。 1914 01:34:39,500 --> 01:34:41,530 >> jQueryのは、実際に書き込まれる JavaScriptで。 1915 01:34:41,530 --> 01:34:44,550 そして彼らは、我々は今、これをしなかったので、 その機能の全体の束を持っている 1916 01:34:44,550 --> 01:34:46,020 私たちは、それが私たちを作る使用することができます 本当に簡単に住んでいます。 1917 01:34:46,020 --> 01:34:48,580 1918 01:34:48,580 --> 01:34:50,030 だから、いくつかは何ですか それがないもの? 1919 01:34:50,030 --> 01:34:51,650 それは簡単に要素を選択します。 1920 01:34:51,650 --> 01:34:54,020 これはHTMLの変更になり、 簡単にクラスを追加する。 1921 01:34:54,020 --> 01:34:55,360 これは、Ajaxが簡単になります。 1922 01:34:55,360 --> 01:34:58,230 我々は、第二​​のものに得られます。 1923 01:34:58,230 --> 01:35:00,630 >> そして、それはCライブラリに類似します。 1924 01:35:00,630 --> 01:35:03,090 だから、string.hのがあります あなたは、strlenを取得します。 1925 01:35:03,090 --> 01:35:04,680 あなたは、strcpyのこれらの事のすべてを取得。 1926 01:35:04,680 --> 01:35:09,650 あなたはjQueryをインクルードするときには、素敵な取得 変更の要素を選択する方法 1927 01:35:09,650 --> 01:35:10,390 物事、エトセトラ。 1928 01:35:10,390 --> 01:35:12,990 あなたは、余分な機能を取得 JavaScriptは、あなたを与えるものではありません。 1929 01:35:12,990 --> 01:35:15,310 だから、jQueryはJavaScriptのではありません。 1930 01:35:15,310 --> 01:35:18,660 jQueryはで書かれているライブラリです JavaScriptをするJavaScript 1931 01:35:18,660 --> 01:35:20,440 書きやすい。 1932 01:35:20,440 --> 01:35:23,170 >> だから、jQueryは、プログラミングではありません 言語。 1933 01:35:23,170 --> 01:35:24,540 しかし、JavaScriptはある。 1934 01:35:24,540 --> 01:35:27,420 1935 01:35:27,420 --> 01:35:27,590 作る。 1936 01:35:27,590 --> 01:35:30,420 あなたの用語の権利を得ることを確認。 1937 01:35:30,420 --> 01:35:32,490 ご質問? 1938 01:35:32,490 --> 01:35:33,882 はい。 1939 01:35:33,882 --> 01:35:35,132 それが問題だ? 1940 01:35:35,132 --> 01:35:37,910 1941 01:35:37,910 --> 01:35:38,350 わかりました。 1942 01:35:38,350 --> 01:35:40,080 それでは、どのようにjQueryを使っていますか? 1943 01:35:40,080 --> 01:35:42,390 さて、あなたは、いくつかを書いているとき あなたは、JavaScriptのコードと 1944 01:35:42,390 --> 01:35:45,570 jQueryのファイルの先頭にあるとして、 スクリプトファイルには、ドル記号を使用する 1945 01:35:45,570 --> 01:35:47,310 今jQueryのへのアクセスを取得します。 1946 01:35:47,310 --> 01:35:49,860 そして、これは異なっている PHPのドル記号。 1947 01:35:49,860 --> 01:35:51,590 >> それはあなたと同じ記号です お使いのキーボードのタイプ。 1948 01:35:51,590 --> 01:35:52,780 しかし、彼らは非常に異なるものを意味する。 1949 01:35:52,780 --> 01:35:56,090 PHPのドル記号は、これを意味します 私は変数を宣言する方法です。 1950 01:35:56,090 --> 01:35:59,120 あなたが用意しましたJavaScriptを、中 jQueryは、それはjQueryのを意味します。 1951 01:35:59,120 --> 01:36:01,280 だから覚えておく。 1952 01:36:01,280 --> 01:36:03,420 では、どのようにDOM要素を選択するのでしょうか? 1953 01:36:03,420 --> 01:36:06,500 さて、あなたはそれを行う醜いのJavaScript 方法は、Access 1954 01:36:06,500 --> 01:36:08,240 グローバル変数を文書化します。 1955 01:36:08,240 --> 01:36:11,170 それから、あなたは、ID·ファミリーによって要素を取得します。 1956 01:36:11,170 --> 01:36:15,270 これは本当に長いと長ったらしいです そして非常に素晴らしいではない。 1957 01:36:15,270 --> 01:36:18,190 >> または、すべての要素を取得することができます つまり、pタグである。 1958 01:36:18,190 --> 01:36:20,080 つまり、JavaScriptであまりにも動作します。 1959 01:36:20,080 --> 01:36:22,470 しかし、我々は、本当にあったことはありません もしあまりにも多くの構文。 1960 01:36:22,470 --> 01:36:24,620 私たちはあなたを示したことはjQueryのだった。 1961 01:36:24,620 --> 01:36:28,720 そのそこに全体のセレクターのように、 JavaScriptでちょうど得る発現させた 1962 01:36:28,720 --> 01:36:33,320 この非常に素晴らしいドルに凝縮 ハッシュタグファミリに署名する。 1963 01:36:33,320 --> 01:36:38,480 および$ Pは、単にどこにそれはそのようなものだ。 1964 01:36:38,480 --> 01:36:41,690 あなたはすべてのPタグを選択します 家族の中に、我々はスペースを入れて 1965 01:36:41,690 --> 01:36:42,890 2間。 1966 01:36:42,890 --> 01:36:44,815 そして今、我々はすべてのPを取得する 家族の内側のタグ。 1967 01:36:44,815 --> 01:36:48,740 1968 01:36:48,740 --> 01:36:50,380 >> そして見覚え? 1969 01:36:50,380 --> 01:36:52,880 さて、アンジェラの話 CSSセレクタ。 1970 01:36:52,880 --> 01:36:54,200 私に1秒を与える。 1971 01:36:54,200 --> 01:36:57,230 だから要素を選択するためには、 あなただけのあなたと同じものを使用しています 1972 01:36:57,230 --> 01:36:58,530 CSSセレクタを行うだろう。 1973 01:36:58,530 --> 01:37:00,910 あなたが先頭にシャープを置く場合 それを、それはIDに​​よって選択されます。 1974 01:37:00,910 --> 01:37:02,220 ドットは、クラスによって選択されます。 1975 01:37:02,220 --> 01:37:06,230 あなただけがないものを持っている場合 ハッシュやドット、それはこれらのタグを選択します。 1976 01:37:06,230 --> 01:37:07,140 質問。 1977 01:37:07,140 --> 01:37:07,470 はい? 1978 01:37:07,470 --> 01:37:11,510 >> 観客:我々は我々のドットを使用する HTMLは、jQueryのではないということです? 1979 01:37:11,510 --> 01:37:13,520 >> JOSEPH ONG:私たちのHTMLのドット JavaScriptのものです。 1980 01:37:13,520 --> 01:37:14,750 これは、jQueryのことではありません。 1981 01:37:14,750 --> 01:37:17,620 あなたたちはそれを学んだ方法 jQueryは。HTMLを使用することです。 1982 01:37:17,620 --> 01:37:21,510 それから、あなたはそれをどのような合格 HTMLはなるだろう。 1983 01:37:21,510 --> 01:37:23,480 だから、僕はのものに買ってあげる 実際に第二。 1984 01:37:23,480 --> 01:37:27,800 では、どのように要素にものを行うのですか 我々はそれを選択したら? 1985 01:37:27,800 --> 01:37:30,130 だから、の例です 要素を選択する。 1986 01:37:30,130 --> 01:37:32,280 だから今、我々はそれにものをやってみたい。 1987 01:37:32,280 --> 01:37:35,730 >> この場合、私は戻ってみましょう 前のスライドに。 1988 01:37:35,730 --> 01:37:37,360 それは前にボブだった。 1989 01:37:37,360 --> 01:37:40,660 そして、私はそれを変更したい ミロへのHTMLの内側。 1990 01:37:40,660 --> 01:37:43,240 だから私は、HTMLの機能を呼び出す 要素から。 1991 01:37:43,240 --> 01:37:45,580 すなわち、HTML関数である 素子の製造方法。 1992 01:37:45,580 --> 01:37:47,430 そして私はそれに何を与える 私は、HTMLになりたい。 1993 01:37:47,430 --> 01:37:50,560 そして、それはただの中身を置き換え 私はそれを与える何とそのタグ。 1994 01:37:50,560 --> 01:37:50,830 はい。 1995 01:37:50,830 --> 01:37:51,170 質問? 1996 01:37:51,170 --> 01:37:57,397 >> 観客:ハッシュタグが使用されている 唯一のjQueryのための。 1997 01:37:57,397 --> 01:37:59,313 [聞こえない] 1998 01:37:59,313 --> 01:38:01,230 我々はそれを使用することはありません。 1999 01:38:01,230 --> 01:38:01,960 >> JOSEPH ONG:ええ、その通りです。 2000 01:38:01,960 --> 01:38:03,750 しかし、あまり心配しないでください 純粋なJavaScriptの約。 2001 01:38:03,750 --> 01:38:06,670 私はあなたたちがどのようにに集中したい ので、jQueryを使ってそれを行うだろう 2002 01:38:06,670 --> 01:38:10,020 それが重要になるだろう クイズに一部。 2003 01:38:10,020 --> 01:38:10,400 右。 2004 01:38:10,400 --> 01:38:10,880 その通りです。 2005 01:38:10,880 --> 01:38:16,025 ですから、そのハッシュタグを参照してください、その結果、 を持つ要素を選択するように対応している 2006 01:38:16,025 --> 01:38:18,310 そのためハッシュタグのID真ん中。 2007 01:38:18,310 --> 01:38:19,670 ハッシュタグは、IDを意味します。 2008 01:38:19,670 --> 01:38:22,870 この要素は、中央のIDを持っています。 2009 01:38:22,870 --> 01:38:24,366 だから、我々は選択の要素です。 2010 01:38:24,366 --> 01:38:27,160 >> 観客:[聞こえない]。 2011 01:38:27,160 --> 01:38:31,090 ドル記号ハッシュタグ[聞こえない]? 2012 01:38:31,090 --> 01:38:31,710 >> JOSEPH ONG:だからNO。 2013 01:38:31,710 --> 01:38:33,280 質問は、あなたが使用することができている。値。 2014 01:38:33,280 --> 01:38:36,445 と。値は、要素のみで動作します それは入力です。 2015 01:38:36,445 --> 01:38:40,950 2016 01:38:40,950 --> 01:38:45,495 jQueryのでは、それは次のようになります。 。ヴァル、ではない。値。 2017 01:38:45,495 --> 01:38:49,080 だから私は小さな例に買ってあげること 組み合わせてこのすべてを示しています 2018 01:38:49,080 --> 01:38:49,850 第二にある。 2019 01:38:49,850 --> 01:38:53,130 しかし、私はこれは少しスニペットを提供していますと思います これまで人々には意味があります。 2020 01:38:53,130 --> 01:38:55,450 HTMLを変更したい、 HTMLのメソッドを呼び出します。 2021 01:38:55,450 --> 01:38:56,432 はい。 2022 01:38:56,432 --> 01:38:58,200 >> 読者:あなたは説明することができます この方法は、再び? 2023 01:38:58,200 --> 01:39:01,900 >> JOSEPH ONG:だから方法があるだけ この中のいずれかに属し、関数、 2024 01:39:01,900 --> 01:39:04,590 場合、これらのDOM要素のいずれか、 あなたは、私を見るので、 2025 01:39:04,590 --> 01:39:05,940 最初の要素を選択した。 2026 01:39:05,940 --> 01:39:07,320 実際に、私は、マウスを使ってみましょう。 2027 01:39:07,320 --> 01:39:09,330 私は最初の要素を選択した。 2028 01:39:09,330 --> 01:39:12,310 そして私はこのHTMLと呼ばれる それが持っていた機能。 2029 01:39:12,310 --> 01:39:15,710 この関数が属しているため このことは、我々はメソッドを呼び出します。 2030 01:39:15,710 --> 01:39:19,480 それはそれのためだけの派手な名前です。 2031 01:39:19,480 --> 01:39:20,730 もう一度言う。 2032 01:39:20,730 --> 01:39:22,880 2033 01:39:22,880 --> 01:39:25,170 だから我々は選択した、覚えて 今の要素。 2034 01:39:25,170 --> 01:39:27,810 そして、我々は内部にそれを入れてきた 要素変数。 2035 01:39:27,810 --> 01:39:28,600 正しいですか? 2036 01:39:28,600 --> 01:39:34,380 >> だから我々は上のHTMLを変更したいとき 内部では、それはあなたが、前にボブだったので、 2037 01:39:34,380 --> 01:39:36,420 ミロにそのテキストを変更したい。 2038 01:39:36,420 --> 01:39:37,920 だから我々は、HTMLを呼び出します。 2039 01:39:37,920 --> 01:39:41,610 そして、我々はそれを伝えるものを内側のHTML その要素は今でなければなりません。 2040 01:39:41,610 --> 01:39:44,107 そしてそれは、ミロに変更し 私はそれをミロを与えたので。 2041 01:39:44,107 --> 01:39:46,542 >> 観客:そう、彼らは一緒に作業している。 2042 01:39:46,542 --> 01:39:47,030 [聞こえない] 2043 01:39:47,030 --> 01:39:47,390 >> JOSEPH ONG:ええ、ええ。 2044 01:39:47,390 --> 01:39:48,180 彼らは一緒に作業している。 2045 01:39:48,180 --> 01:39:50,210 だから、そのうちの一つは、選択 要素最初。 2046 01:39:50,210 --> 01:39:52,863 そして二つ目はない それに何か。 2047 01:39:52,863 --> 01:39:53,790 はい。 2048 01:39:53,790 --> 01:39:56,168 >> 観客:[聞こえない]。 2049 01:39:56,168 --> 01:40:01,280 この方法は、HTMLのと異なっている場合 あなたは、実際の同等の方法を持っている。 2050 01:40:01,280 --> 01:40:01,560 >> JOSEPH ONG:うん。 2051 01:40:01,560 --> 01:40:03,370 つまり、別の方法である。 2052 01:40:03,370 --> 01:40:04,670 つまり、別の方法である。 2053 01:40:04,670 --> 01:40:07,860 そして、我々はちょうど第二にそれをカバーすることができます ここでは、例に到達したとき。 2054 01:40:07,860 --> 01:40:12,000 私は確かに私達がスピードアップすることにしたい 我々は時間が不足しているため。 2055 01:40:12,000 --> 01:40:15,360 しかし、我々は現在、時間をかけて道を実行しました。 2056 01:40:15,360 --> 01:40:15,490 [OK]をクリックします。 2057 01:40:15,490 --> 01:40:16,430 涼しい。 2058 01:40:16,430 --> 01:40:20,130 あなたがクラスを追加したいのであれば、そこ また、クラスメソッドを追加します。 2059 01:40:20,130 --> 01:40:24,300 これは何のほんの一例です。 あなたはjQueryを使って行うことができます。 2060 01:40:24,300 --> 01:40:25,950 それはちょうど、クラスが追加されます。 2061 01:40:25,950 --> 01:40:28,660 >> あなたはそれを削除したい場合は、 あなたは、removeを呼び出すことができます。 2062 01:40:28,660 --> 01:40:32,280 それはあなたがすることができるだけで、別のことだ。 2063 01:40:32,280 --> 01:40:35,680 あなたができることのそう多くの例。 2064 01:40:35,680 --> 01:40:37,510 だから、僕は時にそれを置くことができます このようなトップ? 2065 01:40:37,510 --> 01:40:38,760 最年少削除します。 2066 01:40:38,760 --> 01:40:42,470 2067 01:40:42,470 --> 01:40:45,930 私はちょうどで、そのJavaScriptを実行する場合 私のファイルの先頭には、その動作には問題でしょうか? 2068 01:40:45,930 --> 01:40:48,540 2069 01:40:48,540 --> 01:40:48,920 右。 2070 01:40:48,920 --> 01:40:50,530 真ん中はまだ存在しないため。 2071 01:40:50,530 --> 01:40:51,840 だから、これは仕事に行くのではありません。 2072 01:40:51,840 --> 01:40:52,800 実行順序。 2073 01:40:52,800 --> 01:40:55,040 これは、最初のトップに移動します。 2074 01:40:55,040 --> 01:40:55,540 何が? 2075 01:40:55,540 --> 01:40:57,450 >> 観客:最年少はまだ存在していない? 2076 01:40:57,450 --> 01:40:57,810 >> JOSEPH ONG:うん。 2077 01:40:57,810 --> 01:40:58,710 最年少はまだ存在しません。 2078 01:40:58,710 --> 01:40:59,600 その通りです。 2079 01:40:59,600 --> 01:41:01,320 >> 読者:あなたはミドルと述べた。 2080 01:41:01,320 --> 01:41:01,510 >> JOSEPH ONG:申し訳ありません。 2081 01:41:01,510 --> 01:41:02,720 最年少はまだ存在しません。 2082 01:41:02,720 --> 01:41:04,510 そして、他のことは、私がいないです jQueryを含め 2083 01:41:04,510 --> 01:41:06,580 ファイルには、スクリプトのsrcを依頼してください。 2084 01:41:06,580 --> 01:41:07,960 だから、仕事に行くのではない。 2085 01:41:07,960 --> 01:41:09,580 実際に、私はその中でもしませんでした で次のスライド、 2086 01:41:09,580 --> 01:41:10,700 どちらかそれを修正することになって。 2087 01:41:10,700 --> 01:41:14,120 しかし、我々はこれを行う方法は、JavaScriptのです イベントが駆動される。 2088 01:41:14,120 --> 01:41:17,410 それでは、私たちがやっていることは我々がイベントを使用している これを実現するためのハンドラ。 2089 01:41:17,410 --> 01:41:19,510 だから、私は文書を選択 最初に設定してください。 2090 01:41:19,510 --> 01:41:23,810 私は文書がある場合には、[OK]を言う 準備ができて、私は機能を実行してみましょう。 2091 01:41:23,810 --> 01:41:25,470 だから、すべてその構文手段です。 2092 01:41:25,470 --> 01:41:27,100 >> 私は、ドキュメントを選択した。 2093 01:41:27,100 --> 01:41:29,530 ここで、文書がある場合に 準備ができて、機能を実行します。 2094 01:41:29,530 --> 01:41:32,970 だからこっち文書であるとき 準備ができ、すべてのHTMLが持つことを意味する 2095 01:41:32,970 --> 01:41:36,140 ロードされた後、私は関数を実行 つまり、その要素を削除します。 2096 01:41:36,140 --> 01:41:40,270 だから今、私はこの機能を実行すると 私は準備ができに合格したことを、私は今 2097 01:41:40,270 --> 01:41:43,780 上のすべてのHTMLが保証 ページが最初に存在しようとしている。 2098 01:41:43,780 --> 01:41:44,100 はい。 2099 01:41:44,100 --> 01:41:44,425 質問? 2100 01:41:44,425 --> 01:41:48,200 >> 読者:eventキーワードとは何ですか 関数内? 2101 01:41:48,200 --> 01:41:51,750 >> JOSEPH ONG:そこらでそのイベントのキーワード 機能は単にパラメータであることを 2102 01:41:51,750 --> 01:41:53,490 関数に渡されます いずれにしてください。 2103 01:41:53,490 --> 01:41:55,470 それはちょうどその何か あなたが無料でゲット。 2104 01:41:55,470 --> 01:41:59,320 あなたは内のキーハンドラを使用している場合 pset8、そのイベントがために、あなたに言うことができる 2105 01:41:59,320 --> 01:42:01,350 たとえば、あなたが押されたキー。 2106 01:42:01,350 --> 01:42:05,540 この場合、readyイベントのため、 それは実際に超便利ではありません。 2107 01:42:05,540 --> 01:42:08,640 しかし、キーダウンイベントのために、それはより多くの 便利な、あなたは知ってもらうため、どの 2108 01:42:08,640 --> 01:42:12,330 あなたは、キーにアクセスすることで、押されたキー そのイベントオブジェクトオフコード。 2109 01:42:12,330 --> 01:42:13,530 正しいですか? 2110 01:42:13,530 --> 01:42:15,160 それは理にかなっていますか? 2111 01:42:15,160 --> 01:42:16,280 [OK]をクリックします。 2112 01:42:16,280 --> 01:42:16,580 はい。 2113 01:42:16,580 --> 01:42:17,150 質問? 2114 01:42:17,150 --> 01:42:19,290 >> 観客:だから、置くことができます ダウンスクリプトタグ低い? 2115 01:42:19,290 --> 01:42:19,940 >> JOSEPH ONG:そうそう。 2116 01:42:19,940 --> 01:42:21,500 スクリプトを入れることができます 下の方にタグを付ける。 2117 01:42:21,500 --> 01:42:23,090 しかし、それは本当に厄介ななります。 2118 01:42:23,090 --> 01:42:26,590 そして、我々はすべてを集中したいと 1場所で私たちのコードの。 2119 01:42:26,590 --> 01:42:28,290 そしてこれは、私たちはそれを行うことができます。 2120 01:42:28,290 --> 01:42:32,010 覚えている以前の私は、よりよいがあると言った 要素があることを確認するための方法 2121 01:42:32,010 --> 01:42:33,880 あなたがコードを実行する前に、ページ上の? 2122 01:42:33,880 --> 01:42:36,079 そして、これはまさに良い方法である あなたはそれを達成するでしょう。 2123 01:42:36,079 --> 01:42:37,329 >> 観客:[聞こえない]。 2124 01:42:37,329 --> 01:42:41,710 2125 01:42:41,710 --> 01:42:42,230 >> JOSEPH ONG:うん。 2126 01:42:42,230 --> 01:42:43,460 あなたはまだ右に持っているのでしょうか? 2127 01:42:43,460 --> 01:42:46,930 覚えて、あなたが含まれているため ページの上部にあるファイル。 2128 01:42:46,930 --> 01:42:49,890 だから、前に最初に実行するために起こっている あなたはページの一番下に着く。 2129 01:42:49,890 --> 01:42:54,600 2130 01:42:54,600 --> 01:42:55,180 [OK]をクリックします。 2131 01:42:55,180 --> 01:42:59,210 だから、また別のを追加することができます イベントハンドラのタイプ。 2132 01:42:59,210 --> 01:43:00,640 この1は、単にクリックを処理します。 2133 01:43:00,640 --> 01:43:03,910 私はその後、最年少をクリックすると それがアラートにポップアップ表示されます。 2134 01:43:03,910 --> 01:43:05,440 これはただ異なっている イベントのタイプ。 2135 01:43:05,440 --> 01:43:08,840 readyイベントとは対照的に、あなたは今、 あなたが受信したときのクリックイベントを使用 2136 01:43:08,840 --> 01:43:10,190 要素をクリック。 2137 01:43:10,190 --> 01:43:13,860 >> そしてこの場合に、クリックを覚えて ハンドラは最年少に取り付けられている。 2138 01:43:13,860 --> 01:43:16,080 だから、場合にのみ発生 私最年少をクリックしてください。 2139 01:43:16,080 --> 01:43:19,510 そして、他の1、準備ができた場合に 文書に添付された。 2140 01:43:19,510 --> 01:43:23,750 だから、ドキュメントを待ち 準備ができて。 2141 01:43:23,750 --> 01:43:25,120 理にかなって? 2142 01:43:25,120 --> 01:43:26,190 私は私が上に移動することができると思います。 2143 01:43:26,190 --> 01:43:26,610 はい。 2144 01:43:26,610 --> 01:43:26,980 質問? 2145 01:43:26,980 --> 01:43:28,230 >> 観客:[聞こえない]。 2146 01:43:28,230 --> 01:43:31,676 2147 01:43:31,676 --> 01:43:33,620 このケースでは、[聞こえない]を使用しています。 2148 01:43:33,620 --> 01:43:36,650 >> JOSEPH ONG:ああ、うん、そのためにある 場合、私は最年少のを待つ必要が 2149 01:43:36,650 --> 01:43:40,740 最初の画面に表示する要素 私はをクリックしてハンドラをアタッチする前に、 2150 01:43:40,740 --> 01:43:43,062 私は内側に入れてなぜそれが、 文書の準備の。 2151 01:43:43,062 --> 01:43:45,780 2152 01:43:45,780 --> 01:43:46,840 [OK]をクリックします。 2153 01:43:46,840 --> 01:43:52,390 そして次に、これは大きな一例です あなたはすべてを結合する方法。 2154 01:43:52,390 --> 01:43:55,930 これはただのフォーム検証例です あなたは、講義で見てきた。 2155 01:43:55,930 --> 01:43:58,410 だから、として一歩ずつ取る あなたはこのを通過します。 2156 01:43:58,410 --> 01:43:59,590 そして、それは完全にOKになります。 2157 01:43:59,590 --> 01:44:01,400 ただ上から下にそれを読む。 2158 01:44:01,400 --> 01:44:03,030 >> 私は、下部にあるフォームを持っている。 2159 01:44:03,030 --> 01:44:07,590 文書が準備されると、Iはアタッチ このようなことを、フォームにハンドラを提出 2160 01:44:07,590 --> 01:44:12,910 私は、フォームを送信すると、私は値を取得する これらの入力の各々の内部。 2161 01:44:12,910 --> 01:44:14,560 それが空白の場合には、私は確認してください。 2162 01:44:14,560 --> 01:44:17,090 それが空白の場合、私は、falseを返すので、 私は、フォームを送信したくない場合は、 2163 01:44:17,090 --> 01:44:18,950 フォームが間違っているからです。 2164 01:44:18,950 --> 01:44:22,040 パスワードは空白になっていますか、それはあまりだ場合 8文字以上、私が提出していない 2165 01:44:22,040 --> 01:44:24,470 形、それはまた間違っているからです。 2166 01:44:24,470 --> 01:44:28,150 と戻り偽だけ防ぎ 提出からの形 2167 01:44:28,150 --> 01:44:30,150 新しいページに移動。 2168 01:44:30,150 --> 01:44:31,310 >> うまくいけば、これは理にかなっています。 2169 01:44:31,310 --> 01:44:34,650 私はあなたたちは歩くべきだと思う 自分で一歩一このコードのステップ。 2170 01:44:34,650 --> 01:44:38,350 そして、あなたが選択した内容を理解すれば 要素とそれにものを行う 2171 01:44:38,350 --> 01:44:40,520 実際に、これは作るだろう、伴う あなたに多くの意味。 2172 01:44:40,520 --> 01:44:41,295 はい? 2173 01:44:41,295 --> 01:44:44,150 >> 観客:どういう 名=ユーザー名の意味は? 2174 01:44:44,150 --> 01:44:48,530 >> JOSEPH ONG:だから名前=ユーザー名と 名=パスワードだけを見て意味 2175 01:44:48,530 --> 01:44:50,730 どのような属性 あなたが選択している。 2176 01:44:50,730 --> 01:44:51,790 して、それが一致する必要があります。 2177 01:44:51,790 --> 01:44:53,870 だから我々は、登録に入る。 2178 01:44:53,870 --> 01:44:56,240 そして、我々はすべての入力を見る と登録。 2179 01:44:56,240 --> 01:44:59,990 そして、我々は1場所の名前を選ぶ 属性には、ユーザー名と同じである。 2180 01:44:59,990 --> 01:45:04,040 ように、第1のセレクタのみを選択 ユーザ名を入力。 2181 01:45:04,040 --> 01:45:08,220 そして第2のセレクタのみ選択する それらが持っているので、パスワード1、 2182 01:45:08,220 --> 01:45:12,240 どのように設定され、そのname属性 それらがすることになっています。 2183 01:45:12,240 --> 01:45:12,575 質問? 2184 01:45:12,575 --> 01:45:17,030 >> 観客は:送信時に、どのように 下部は上部を解決する? 2185 01:45:17,030 --> 01:45:19,350 >> JOSEPH ONG:だからそれはだから イベントハンドラの。 2186 01:45:19,350 --> 01:45:23,000 だから我々はSubmitイベントを待っている それはフォームから発射されます。 2187 01:45:23,000 --> 01:45:24,730 そして、それは提出していることがすべてです。 2188 01:45:24,730 --> 01:45:26,080 なぜそこまで提出呼ぶのですか? 2189 01:45:26,080 --> 01:45:28,870 これは、フォームの送信時に、言う、 私が提出したイベントを取得します。 2190 01:45:28,870 --> 01:45:33,480 だから私はちょうどそれを傍受してみましょう その後、代わりにこのコードを実行します。 2191 01:45:33,480 --> 01:45:33,823 はい? 2192 01:45:33,823 --> 01:45:35,866 >> 観客:なぜあなたはありますか 機能イベントがありますか? 2193 01:45:35,866 --> 01:45:38,580 理由だけではなく、[聞こえない]あなたことができないのですか? 2194 01:45:38,580 --> 01:45:41,140 >> JOSEPH ONG:JavaScriptでは、そのため 関数を宣言する必要があります。 2195 01:45:41,140 --> 01:45:42,910 つまり、それが動作するだけの方法です JavaScriptで。 2196 01:45:42,910 --> 01:45:44,800 あなたはそれが起こっていると言っている 機能を実行します。 2197 01:45:44,800 --> 01:45:47,290 だからあなたがしていること、それを言っている ここに機能を期待しての代わりに、 2198 01:45:47,290 --> 01:45:48,260 ただ、中括弧。 2199 01:45:48,260 --> 01:45:50,460 >> 観客:AND関数 に続くものである? 2200 01:45:50,460 --> 01:45:50,650 >> JOSEPH ONG:うん。 2201 01:45:50,650 --> 01:45:52,790 この関数は内部では何でもあり 中括弧の後 2202 01:45:52,790 --> 01:45:53,630 その関数キーワード。 2203 01:45:53,630 --> 01:45:54,045 はい? 2204 01:45:54,045 --> 01:45:55,295 >> 観客:[聞こえない]。 2205 01:45:55,295 --> 01:46:00,180 2206 01:46:00,180 --> 01:46:00,660 >> JOSEPH ONG:に関して提出? 2207 01:46:00,660 --> 01:46:03,520 >> 観客:いいえ、関数の イベントなしで。 2208 01:46:03,520 --> 01:46:03,770 >> JOSEPH ONG:うん。 2209 01:46:03,770 --> 01:46:05,610 イベントのないので、 あなたはそれを持つことができます。 2210 01:46:05,610 --> 01:46:08,480 イベントを必要としない場合は、 その後、あなたはそれを省略することができます。 2211 01:46:08,480 --> 01:46:12,220 しかし、これを行うと、その後 ただそこにそれを置く。 2212 01:46:12,220 --> 01:46:12,520 はい。 2213 01:46:12,520 --> 01:46:13,190 簡単な質問? 2214 01:46:13,190 --> 01:46:14,440 >> 観客:[聞こえない]。 2215 01:46:14,440 --> 01:46:21,170 2216 01:46:21,170 --> 01:46:21,440 >> JOSEPH ONG:うん。 2217 01:46:21,440 --> 01:46:24,550 あなたは何をする必要があるかなので、 document.readyだけのすべてのを待つと言う 2218 01:46:24,550 --> 01:46:26,540 ページのHTMLが最初にロードします。 2219 01:46:26,540 --> 01:46:30,510 通常は、あなたの要素が欲しい 所定の位置に任意のコードを実行する前に。 2220 01:46:30,510 --> 01:46:31,030 わかりました。 2221 01:46:31,030 --> 01:46:32,180 我々は、Ajaxを取得する必要があります。 2222 01:46:32,180 --> 01:46:33,110 私たちは多くの時間を持っていない。 2223 01:46:33,110 --> 01:46:35,170 だから、賛否両論。 2224 01:46:35,170 --> 01:46:37,450 JavaScriptは簡単に試してみるです jQueryを使って記述します。 2225 01:46:37,450 --> 01:46:38,930 しかし、jQueryはちょっと遅い。 2226 01:46:38,930 --> 01:46:42,290 >> PHPは、Cよりも遅いようなものだ、 それは解釈だから。 2227 01:46:42,290 --> 01:46:45,690 とjQueryよりも少し遅くなります JavaScriptを、それがたくさんのをするので 2228 01:46:45,690 --> 01:46:46,630 フードの下の事。 2229 01:46:46,630 --> 01:46:48,660 あなたはjQueryを使用している場合とそう、それはだ より少し遅く 2230 01:46:48,660 --> 01:46:51,630 JavaScriptを、たとえそれ あなたに素敵な優雅さを提供します。 2231 01:46:51,630 --> 01:46:53,970 そして最後に、Ajaxを。 2232 01:46:53,970 --> 01:46:59,170 これまでのところAjaxを使用すると、Ajaxのを見ていない まだpset7の面で、理由 2233 01:46:59,170 --> 01:47:01,150 あなたが行うと、提出 引用にフォーム。 2234 01:47:01,150 --> 01:47:02,350 それは、新しいページをロードします。 2235 01:47:02,350 --> 01:47:04,440 だから、この大きな白い閃光を得る その一方、ページ上の 2236 01:47:04,440 --> 01:47:06,820 第2のページをロード、正しいですか? 2237 01:47:06,820 --> 01:47:08,780 >> もしあれば、それは本当にいいだろう このフラッシュを持っていませんでした。 2238 01:47:08,780 --> 01:47:11,600 Facebookのような、場合、あなただけへスクロール 底部には、新たなコンテンツが追加され 2239 01:47:11,600 --> 01:47:13,490 ページ全体を更新せず。 2240 01:47:13,490 --> 01:47:15,420 したがって、このようなものがよいでしょう。 2241 01:47:15,420 --> 01:47:17,370 これはJavaScriptのコードです 左側にある。 2242 01:47:17,370 --> 01:47:19,390 あなたは、その入力の内側にあるものを手に入れる。 2243 01:47:19,390 --> 01:47:21,340 あなたはヤフーからの株式情報を取得 2244 01:47:21,340 --> 01:47:27,440 そして、あなたは、大きな文字列を作成しておくこと [OK]を、これは私が欲しいメッセージである、と言う 2245 01:47:27,440 --> 01:47:28,400 画面上に表示されます。 2246 01:47:28,400 --> 01:47:32,280 そして、あなたは内部にそのメッセージを入れて 取得するいくつかのHTML要素の 2247 01:47:32,280 --> 01:47:33,970 画面に表示される。 2248 01:47:33,970 --> 01:47:35,540 >> だから、ここで起こっていることがすべてです。 2249 01:47:35,540 --> 01:47:39,410 そこで、基本的に、これが全てですので、 JavaScriptとあなたが実行する必要はありません 2250 01:47:39,410 --> 01:47:42,980 もうPHPは、これは確認します ページが更新されないこと。 2251 01:47:42,980 --> 01:47:47,470 だから、これは単なる抽象的アイデアです 私は今ここに言っていること。 2252 01:47:47,470 --> 01:47:50,630 抽象的アイデアは、あなたがそれを行う場合、すなわち すべてJavaScriptで、あなたは持っていない 2253 01:47:50,630 --> 01:47:52,330 ページの更新。 2254 01:47:52,330 --> 01:47:53,800 しかし、どのように実際にこれを行うのですか? 2255 01:47:53,800 --> 01:47:56,230 >> さて、実際に、の話をしましょう この最初の問題点。 2256 01:47:56,230 --> 01:47:59,340 問題は、JavaScriptである 実行は同期しています。 2257 01:47:59,340 --> 01:48:02,000 だから、1を待たなければならない あなたの前に終了する行 2258 01:48:02,000 --> 01:48:03,370 次の行を実行します。 2259 01:48:03,370 --> 01:48:06,130 そして私はヤフーに引き継がつもりならば、 とそのサーバが本当に遅く、 2260 01:48:06,130 --> 01:48:08,790 それは、それらを3秒かかる 株価情報と私に恩返し? 2261 01:48:08,790 --> 01:48:12,620 場合、私は、その価格ラインをヒットした場合 それがであるように実行が、同期している 2262 01:48:12,620 --> 01:48:15,390 デフォルトでは、どのようなそれだけでどうするつもりなのはある お使いのブラウザが稼ぎしようとしている 2263 01:48:15,390 --> 01:48:15,930 3秒。 2264 01:48:15,930 --> 01:48:18,900 そして、あなたは行うことができるようにするつもりはない 何でもそれはそのデータを取得している間。 2265 01:48:18,900 --> 01:48:20,010 それが凍結になるだろう。 2266 01:48:20,010 --> 01:48:20,800 >> そして、それは残念だ。 2267 01:48:20,800 --> 01:48:23,390 あなたがユーザーをしたくない 凍結されたWebページを持っている。 2268 01:48:23,390 --> 01:48:24,170 正しいですか? 2269 01:48:24,170 --> 01:48:25,480 それはちょうど悪いです。 2270 01:48:25,480 --> 01:48:26,770 誰もが同意する? 2271 01:48:26,770 --> 01:48:29,270 あなたは、Facebookやそれを閲覧している場合 フリーズして、何もできない、あなたは 2272 01:48:29,270 --> 01:48:31,920 本当にイライラする。 2273 01:48:31,920 --> 01:48:34,960 だから、解決策は、我々が何かを作るである 代わりに非同期。 2274 01:48:34,960 --> 01:48:38,910 だから、このすべての非同期なことは述べています 私はこれを聞いてんだ、である 2275 01:48:38,910 --> 01:48:40,280 一部のデータのURL。 2276 01:48:40,280 --> 01:48:41,610 そして私は続けるつもりです。 2277 01:48:41,610 --> 01:48:45,330 私はちょうど実行維持するつもりだ どのようなことをした後にされたコード。 2278 01:48:45,330 --> 01:48:49,290 >> して、そのデータが準備ができているときはいつでも、 私はそれを処理します。 2279 01:48:49,290 --> 01:48:50,540 つまり、言っているだけです。 2280 01:48:50,540 --> 01:48:52,795 2281 01:48:52,795 --> 01:48:56,710 >> 観客:Ajaxがちょうどになり コー​​ド非同期? 2282 01:48:56,710 --> 01:48:58,560 >> JOSEPH ONG:それは非同期だ データをフェッチする方法。 2283 01:48:58,560 --> 01:49:01,230 アヤックスそんなに最初にすること それは私がデータを取得することができますです 2284 01:49:01,230 --> 01:49:03,170 外部サイトから。 2285 01:49:03,170 --> 01:49:07,045 そして2つ目は、それが確認しますです 私はながら、私のページは停止しないこと 2286 01:49:07,045 --> 01:49:07,970 そのデータをフェッチする。 2287 01:49:07,970 --> 01:49:09,600 つまり、非同期一部だ。 2288 01:49:09,600 --> 01:49:13,040 それはどこか別の場所に消灯しますので、 私が言うので、私はしばらくの間に続ける 2289 01:49:13,040 --> 01:49:14,900 それは、そのデータを取得することだ それが非同期になります。 2290 01:49:14,900 --> 01:49:17,170 私が実行してください。 2291 01:49:17,170 --> 01:49:18,960 >> だから、非同期に保つ 念頭に置いて考え。 2292 01:49:18,960 --> 01:49:22,010 そして、私はあなたに何を紹介 差である。 2293 01:49:22,010 --> 01:49:23,920 同期したもの 左側にあります。 2294 01:49:23,920 --> 01:49:26,240 非同期バージョン 右側にあります。 2295 01:49:26,240 --> 01:49:29,170 見に数字を見ている ステップは何に対応 2296 01:49:29,170 --> 01:49:30,610 各ラインで実行されます。 2297 01:49:30,610 --> 01:49:32,730 あそこ、アラートが最初に表示されます。 2298 01:49:32,730 --> 01:49:34,590 ヤフーから株式情報を取得しているため 2299 01:49:34,590 --> 01:49:37,250 3秒かかり、それが失速 3秒間。 2300 01:49:37,250 --> 01:49:39,880 そしてそれは価格に警告 これらの3秒後。 2301 01:49:39,880 --> 01:49:43,690 >> だから今、そのアラートショー その時点での最高 - 2302 01:49:43,690 --> 01:49:44,610 インチ3秒 2303 01:49:44,610 --> 01:49:47,670 そして、それはその後のことで警告します。 2304 01:49:47,670 --> 01:49:48,930 だから、それだけで一歩一歩を行く。 2305 01:49:48,930 --> 01:49:51,200 それは何をあなたたちのようなものだ 正しい受け入れるだろう? 2306 01:49:51,200 --> 01:49:54,170 非同期実行の場合、 あなたが最初の警告。 2307 01:49:54,170 --> 01:49:57,410 その後、次のURLに消灯します。 2308 01:49:57,410 --> 01:49:59,530 そして、あなたは私がするつもりだ、と言う データだけを求める。 2309 01:49:59,530 --> 01:50:01,170 そして私はするつもりだ 後でそれを処理する。 2310 01:50:01,170 --> 01:50:04,230 だから、すぐに実行されます 私がいることを確認した後に次の行 2311 01:50:04,230 --> 01:50:05,710 非同期要求。 2312 01:50:05,710 --> 01:50:08,920 >> だから、0.001秒、アラートハイテクを参照してください。 2313 01:50:08,920 --> 01:50:10,960 その機能は、アラートBYEを実行します。 2314 01:50:10,960 --> 01:50:14,240 と私は約束をしたので、 、後でデータを処理なるか 2315 01:50:14,240 --> 01:50:17,920 データが戻ったときに発生される 3秒後、私は実行することを 2316 01:50:17,920 --> 01:50:21,380 私はあそこがある機能。 2317 01:50:21,380 --> 01:50:21,870 はい? 2318 01:50:21,870 --> 01:50:25,750 >> 観客:指定またはでした Ajaxは何を意味するのか明確にする? 2319 01:50:25,750 --> 01:50:30,460 >> JOSEPH ONG:だからAjaxは方法であることであれば、私 私はウェブサイト上でだと私ときにデータを必要とする 2320 01:50:30,460 --> 01:50:34,690 それから、ページをリフレッシュする必要はありません 私は、Ajaxと呼ばれるこの技術を使用しています。 2321 01:50:34,690 --> 01:50:40,630 それは本質的には意味し、フェッチ行く 別のWebサイトからのデータ。 2322 01:50:40,630 --> 01:50:43,724 とだけの方法でそれを行う 私のWebページをストールしない。 2323 01:50:43,724 --> 01:50:46,650 >> 観客:だから、固有のものである JavaScriptやjQu​​eryのの一部? 2324 01:50:46,650 --> 01:50:50,590 >> JOSEPH ONG:だから誰かが行う方法を書きました この長い時間前にJavaScriptで。 2325 01:50:50,590 --> 01:50:52,050 ある時点で、それは存在しませんでした。 2326 01:50:52,050 --> 01:50:56,630 だから誰かがこの技術を発明した 人が、このデータを要求できるようにする 2327 01:50:56,630 --> 01:50:57,680 このようにして。 2328 01:50:57,680 --> 01:50:59,550 そして、彼らはいくつかのものを書きました あなたのためにそれをすることができません。 2329 01:50:59,550 --> 01:51:01,605 とjQueryは単にあなたにこれを提供します それを行うには非常に良い方法 2330 01:51:01,605 --> 01:51:03,112 この$で。機能を取得します。 2331 01:51:03,112 --> 01:51:07,200 2332 01:51:07,200 --> 01:51:09,480 質問? 2333 01:51:09,480 --> 01:51:11,560 私はについての質問に答えることができる その後アヤックスすぎ。 2334 01:51:11,560 --> 01:51:13,870 私はここにいるよ。 2335 01:51:13,870 --> 01:51:16,390 >> だから、私たちがすることなく、データをフェッチしてみましょう ページを更新。 2336 01:51:16,390 --> 01:51:18,200 そして、それは私たちがこれを行うのを聞かせて その非同期方法 2337 01:51:18,200 --> 01:51:19,450 ページを凍結しない。 2338 01:51:19,450 --> 01:51:22,680 2339 01:51:22,680 --> 01:51:27,310 長すぎ、読んでいない場合は、その 説明は、あなたのために長すぎます。 2340 01:51:27,310 --> 01:51:29,430 最後に、クロスサイト スクリプト攻撃。 2341 01:51:29,430 --> 01:51:30,910 我々はZamylaでこれを見ました。 2342 01:51:30,910 --> 01:51:34,285 私のデータベース内の誰かがこの名前を持っている場合、 これは、このスクリプトタグであり、私 2343 01:51:34,285 --> 01:51:38,280 マイページ上でいくつかのコードを持っている印刷物 人々の行の名前、または私が持って出 2344 01:51:38,280 --> 01:51:43,310 挿入するJavaScriptコード ページにこの名前、 2345 01:51:43,310 --> 01:51:45,680 どのようなHTMLが生成されれます? 2346 01:51:45,680 --> 01:51:47,290 まあ、私は、HTMLタグを出力します。 2347 01:51:47,290 --> 01:51:48,390 私はこれらすべてのタグを出力します。 2348 01:51:48,390 --> 01:51:50,740 >> 私は印刷だ部分に到達 私の友達と。 2349 01:51:50,740 --> 01:51:52,980 私はローレンをプリントアウト。 2350 01:51:52,980 --> 01:51:54,200 それはミロをプリントアウト。 2351 01:51:54,200 --> 01:51:56,810 して、データベース内の自分の名前 スクリプトの投稿です 2352 01:51:56,810 --> 01:51:58,060 おもねらないFacebookのステータス。 2353 01:51:58,060 --> 01:52:00,740 2354 01:52:00,740 --> 01:52:04,330 私はページにこれを挿入しているため とき、それはJavaScriptのように見えるので、 2355 01:52:04,330 --> 01:52:07,930 このページは、ユーザーに送信されます、 それはJavaScriptのように実行されます。 2356 01:52:07,930 --> 01:52:10,800 だからこれは我々が呼んでいるものである クロスサイトスクリプティング攻撃。 2357 01:52:10,800 --> 01:52:14,570 誰かが悪意のある情報を入れます に対応することが、データベース 2358 01:52:14,570 --> 01:52:17,080 いくつかの追加の文字列または いくつかのJavaScriptの文字列。 2359 01:52:17,080 --> 01:52:20,130 >> それがにプリントアウトされるときに このようにしてページを表示して、どのような 2360 01:52:20,130 --> 01:52:22,580 どうなる悪いコードが実行されることをである 私が意図していなかったことを 2361 01:52:22,580 --> 01:52:25,110 それが実行され得るためにのために。 2362 01:52:25,110 --> 01:52:28,230 そして、それはすべてのクロスサイトの スクリプティング攻撃がある。 2363 01:52:28,230 --> 01:52:31,790 そして、あなたが周りを取得する方法 Zamylaが言ったようにこれがある。 2364 01:52:31,790 --> 01:52:34,340 あなただけで物事をラップする HTMLの特殊文字。 2365 01:52:34,340 --> 01:52:39,460 このHTMLの特殊文字は、PHPで この種のを防ぐことができます機能 2366 01:52:39,460 --> 01:52:42,000 あなたに起こってからの事の あなたが悪質なを持っている場合 2367 01:52:42,000 --> 01:52:43,830 データベース内の文字列。 2368 01:52:43,830 --> 01:52:47,650 そうでないように、それだけで、それをエスケープ HTMLとして解釈ます。 2369 01:52:47,650 --> 01:52:50,960 それは少しかっこを置き換え 我々は事業体と呼んでいるもので。 2370 01:52:50,960 --> 01:52:52,250 そして、我々はあまりにも講義でこれの上を越えて行った。 2371 01:52:52,250 --> 01:52:55,800 だから私はあなたたちが持っているべきだと思う その上で十分に把握。 2372 01:52:55,800 --> 01:52:57,420 質問? 2373 01:52:57,420 --> 01:52:57,820 はい。 2374 01:52:57,820 --> 01:53:00,860 >> 観客:それでは、どのようだろう [聞こえない]? 2375 01:53:00,860 --> 01:53:01,555 >> JOSEPH ONG:もう一度言う。 2376 01:53:01,555 --> 01:53:02,500 >> 観客:どのようにモニターだろう - 2377 01:53:02,500 --> 01:53:02,860 >> JOSEPH ONG:右。 2378 01:53:02,860 --> 01:53:06,080 だから、言って何かを持っている 私は、私の名前を入力して登録します。 2379 01:53:06,080 --> 01:53:09,390 私はちょうど私の名前は、そのフィールドに入力する stripの過去·過去分詞形ポストおもねらないフェイスブック 2380 01:53:09,390 --> 01:53:11,570 状況に近いスクリプトタグ。 2381 01:53:11,570 --> 01:53:15,690 そして、ちょうど入れれることを データベース、私は誰かを言うことができないため、 2382 01:53:15,690 --> 01:53:18,260 世界に名を持っていません 左それに矢印やで 2383 01:53:18,260 --> 01:53:19,036 その中の単語のスクリプト。 2384 01:53:19,036 --> 01:53:21,330 それは本当に意味がありません。 2385 01:53:21,330 --> 01:53:24,560 だから、僕は必ず私がいることを確認する必要があり 私は、それを印刷する前のものをサニタイズ 2386 01:53:24,560 --> 01:53:25,420 ページへの出。 2387 01:53:25,420 --> 01:53:27,140 >> 観客:だからHTMLの特殊カード スクリプトタグを防ぎます? 2388 01:53:27,140 --> 01:53:28,710 >> JOSEPH ONG:うん。 2389 01:53:28,710 --> 01:53:29,960 だから、スクリプトタグを防ぐことはできません。 2390 01:53:29,960 --> 01:53:32,320 それはちょうどことを確認します スクリプトタグを得ることはありません 2391 01:53:32,320 --> 01:53:35,120 HTMLとして解釈か - 2392 01:53:35,120 --> 01:53:35,400 うん。 2393 01:53:35,400 --> 01:53:38,470 それはちょうど何として登場 それは実際にある。 2394 01:53:38,470 --> 01:53:39,220 わかりました。 2395 01:53:39,220 --> 01:53:40,930 だから、クイズのレビューでした。 2396 01:53:40,930 --> 01:53:41,830 涼しい。 2397 01:53:41,830 --> 01:53:45,088 >> [拍手]