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 + '&nbsp;');
	}
	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>'));

文字の置き換え。これちょっと興奮した。
ようやく、サイトで使えるっぽいやつや!!!

いやー正規表現、もうイヤになってきたなぁ。
今日はここまでにしておくか。今日はめっちゃ捗ったなー