初勉強 ― 仲間が書いたソースをよむ
学校の演習で5人のチームでコンビニグルメ検索サイトをつくろうとしています。
演習内容は、
コンビニグルメについて書かれたブログから情報を集めて
検索結果の中で商品の評判として表示するっていうものです。
そこでまず、チームメンバーの一人が書いたソースを見せてもらうことに。。
- GoogleMapを作成して、地名/住所入力で移動して
- 学校周辺のコンビニ(数件)の位置を示すマーカーを表示。
- マーカーがクリックされると吹き出しを表示。
というものらしいのですが…
Webプログラミングの世界に初めて入った私には
JavaScriptが、さっ ぱり読めなくて、
id:sotarok 先生に教えてもらいました(・ω・)
- RegExpオブジェクト
var keyGeo ="(APIキー)"; var keyLocal="(APIキー)"; var reGeo = new RegExp("geocities.jp"); if ( reGeo.test(window.location.href) ) { loadScript(keyGeo); } else { loadScript(keyLocal); }
正規表現の用法については、それだけで一冊の本が出てるくらい深いものらしい。
なので、使い方だけ教わりました。
- 今回は文字列のパターンマッチングに使っている。
- 上のように生成しない方法
if ((window.location.href).match(/geosities\.jp/) ) { loadScript(keyGeo); } else { loadScript(keyLocal); }
- window.location.href(ウィンドウに表示されているページのURL)これ自体をオブジェクトとして扱える!?
- matchメソッドでもパターン検索可能
- /で括ると検索したいパターンが設定できる
- 使えるメタ文字(X, Y, Zは文字とする)
- ^XXX ⇒ XXXからはじまる
- XXX$ ⇒ XXXでおわる
- [XYZ] ⇒ X, Y, Zのどれかにマッチ
- YX+ ⇒ Xが1回以上一致
- YX* ⇒ Xが0回以上一致(+は*ともに最長一致をする)
JavaScriptはイベント駆動型なんだよ
と教わりました。
<form onsubmit="moveTo(this.place.value); return false;"> <input type="text" size="40" id="place" /> <input type="submit" value="移動" /> </form> <div id="map" style="width: 500px; height: 400px"></div>
- イベントの発生と取得して実行させたい場合に使える。
- よく使いそうなもの
- onload ⇒ ロード時
- onclick ⇒ クリック時
- onfocus ⇒ フォーカスが得た時
- onblur ⇒ フォーカスが離れた時
- onsubmit ⇒ submitボタンが押された時
- onchange ⇒ フォームが書き換えられてフォーカスが離れた時
- onkeydown ⇒ キーを押した時
- onkeypress ⇒ キーを押したままの時
- onkeyup ⇒ キーを離した時
- onmouseover ⇒ オブジェクトにカーソルが乗った時
- onmouseout ⇒ オブジェクトからカーソルが離れた時
- 上のonsubmitでfalseを返すと、ページ遷移しない。
Java勉強中なので、まだオブジェクト指向は混乱します(;;
また機会があったらJavaScript勉強しますっ。
配列に代入
研究室のパソコンにLinux環境がないので
今VMwareっていうのを使えるように頑張ってます。
CentOSのisoをゲットしている間にJavaのおべんきょ(・ω・)
- 配列
初期化と代入の違いに混乱。。
public class Hairetsu{ public static void main(String[] args){ int[] test = {3, 6, 9, 12, 13, 15}; for(int i = 0; i < test.length ; i++){ System.out.println("3の倍数か3のつく数字" + test[i]); } } }
配列に値を代入するところを
public class Hairetsu2 { public static void main(String[] args){ int[] test = new int[] { 3, 6, 9, 12, 13, 15 }; for(int i = 0; i < test.length ; i++){ System.out.println("3の倍数か3のつく数字" + test[i]); } } }
にしてみても同じ結果を得られたのですが
よくわからない。。
newでtestっていうオブジェクトを作っているってこと…??
それなら上のように初期化した場合のtestはオブジェクトなのか。。
まだオブジェクト指向のところまで本*1勉強していないので混乱を起こしやすいです(;;
*1:お世話になってるJavaの本