JavaScript本格入門を読む・2
ようやくはてな記法を使えるようになったぞ!
ということでfor…inループから。
var menber =['鈴木','山田','金子']; for (var i in menber) { document.writeln('名前は'+menber[i]); } var triangle = {width:30,height:50}; for (var j in triangle) { document.writeln(j + '=' + triangle[j]); } var book = new Object(); book.title = 'ニコニコの歴史'; book.publish = 'ニコニコ出版'; book.price ='500'; for (var k in book) { document.writeln(k + 'は' + book[k]); }
ネストされたループを脱出するよ。ラベル構文。
kuku : for (var i = 1; i<10; i++){ for (var j = 1; j<10; j++){ var k = i *j; if (k>30){ break kuku; } document.writeln(k + ' '); } document.write('<br />'); }
これで2章おしまい。
3−1.オブジェクトとは
3−2.基本データを扱うためのオブジェクト
Stringオブジェクト
var str1 = 'にわにはにわにわとりがいる'; document.writeln(str1.indexOf('にわ')); document.writeln(str1.indexOf('にわ',3)); document.writeln(str1.indexOf('庭')); document.writeln(str1.lastIndexOf('にわ')); document.writeln(str1.lastIndexOf('わ',5)); var str2='僕と私のニコニコ動画'; document.writeln(str2.charAt(4)); document.writeln(str2.slice(5,8)); document.writeln(str2.substring(5,8)); document.writeln(str2.substr(5,3)); document.writeln(str2.split('私')); document.writeln(str1.split('わ',3)); document.writeln('ニコニコ'.anchor('niconico')); document.writeln(str2.link('http://www.nicovideo.jp')); document.writeln('10'.sub()); document.writeln('10'.sup()); document.writeln(str2.concat('ワロスwwww')); document.writeln(str2.length);
lastIndexOfに手間取ってしまった。本だと「L」と「l」「1」の区別と「0」「O」「o」の区別がわかりにくい・・・
Numberオブジェクト
var num1 =255; document.writeln(num1.toString(16)); document.writeln(num1.toString(8)); var num2 =123.45678; document.writeln(num2.toExponential(2)); document.writeln(num2.toFixed(3)); document.writeln(num2.toPrecision(10));
rad進数とか指数形式とか何に使うんだ。これから出てくるのかな?
Mathオブジェクト
めんどくさくなってきた・・・数字だし・・サインコサインタンジェントやろ。書かなくてもいいだろ
Arrayオブジェクト
var ary1 = ['orange','banana','tomato','lemon','strawberry']; var ary2 = ['coffe','tea','milk','cocoa','juce']; document.writeln(ary1.concat(ary2)); document.writeln(ary1.join('/')); document.writeln(ary1.slice(1)); document.writeln(ary1.slice(1,2)); document.writeln(ary1.splice(1,2,'komeda','tullys')); document.writeln(ary1); document.writeln(ary1.pop()); document.writeln(ary1); document.writeln(ary1.push('doutor')); document.writeln(ary1); document.writeln(ary1.shift()); document.writeln(ary1); document.writeln(ary1.unshift('star','bucks')); document.writeln(ary1); document.writeln(ary1.reverse()); document.writeln(ary1.sort()); document.writeln(ary1);
やっぱ数字じゃなくて文字列を色々変えるのは楽しいな。
3−3.Dateオブジェクト
Dateオブジェクトも大丈夫かな
3−4.RegExpオブジェクト
正規表現キター
var p = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/gi; var str = 'はてなダイアリーはhttp://d.hatena.ne.jp/です'; str += 'はてなブログはhttp://hatenablog.com/です'; var result = str.match(p); for(var i = 0; i < result.length; i++){ document.writeln(result[i]); }
めっちゃ苦労した・・・
ついにサンプルコードまでダウンロードして比較してしまった。
正規表現難しすぎる(>_<)
var p = /^[0-9]{1,}/g; var str = '101匹ワンちゃん。\n7人の小人'; var result = str.match(p); for (var i = 0; i<result.length; i++){ document.writeln(result[i]); }
うーん。正規表現のエラーがわかればなー。
これもどこが違うのかわかるまで時間がかかってしまった・・・
var p = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/gi; var str = 'はてなダイアリーはhttp://d.hatena.ne.jp/です'; str += 'はてなブログはhttp://hatenablog.com/です'; var result = p.exec(str); for(var i = 0; i < result.length; i++){ document.writeln(result[i]); } var p = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/gi; var str = 'はてなダイアリーはhttp://d.hatena.ne.jp/です'; str += 'はてなブログはhttp://hatenablog.com/です'; while((result = p.exec(str)) !=null){ document.writeln(result[0]); }
matchメソッドとexecメソッドの違い。
execメソッド難しいな。
var p = /(http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?)/gi; var str = 'はてなダイアリーはhttp://d.hatena.ne.jp/です。'; document.writeln(str.replace(p, '<a href="$1">$1</a>'));
文字の置き換え。これちょっと興奮した。
ようやく、サイトで使えるっぽいやつや!!!
いやー正規表現、もうイヤになってきたなぁ。
今日はここまでにしておくか。今日はめっちゃ捗ったなー