Sapporo.js-2012.01.28に参加しました

1月28日(土)にSapporo.jsの勉強会、Sapporo.js-2012.01.28に参加してきました。
だいぶ間が空いた久しぶりの参加です。
読み合わせをする本、JavaScript: The Good Partsを購入して臨みました。

配列

6.7 次元から。
配列の初期化について、多次元配列の初期化の注意、単位行列を生成するメソッド。
単位行列・・・については、そもそもそれが何か良くわからなかったのでその場でぐぐりました
オブジェクトが参照されるので代入時に注意する事、Objectをコピーする場合はJSONコピーを使う事。
JSONコピーの方法は知らなかった。

JSONコピーはプロトタイプはコピーしないのを確認したコード。

var hoge = {a:1};
hoge.__proto__ = {c:3}
console.log(hoge);                   // {a:1}
console.log(hoge['c']);              // 3
var hoge_json = JSON.stringify(hoge);
console.log(hoge_json);              // {"a":1}
var foo = JSON.parse(hoge_json);
hoge['b'] = 2;
console.log('hoge', hoge, hoge['c']); // hoge {b: 2, a: 1} 3
console.log('foo' , foo, foo['c']);   // foo {a: 1} undefined

for-inの話も面白かった。ちょうど業務で「each使いたいけど使えない、その結果なんかすごいコードがかっこわるい」状態になっているのがあって。(結局for-inはあまり使わない方がいいという話になったのだけど)
あのかっこわるいコードどうしようかな・・・。
(jQueryを入れるほどの画面でもないテスト画面のコードなのだけど気になる)

正規表現

魔術みたいな正規表現

var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;

を読み砕いていきました。
部分ごとに分けて考えると、なるほどーとなっていくところが、勉強会の楽しいところだなあ。
最初の

(?:([A-Za-z]+):)

が一瞬顔文字に見えていた私、一人だったらページを流し読みして終わりそう。
上記はURLを判定する正規表現の例です。
たぶんすべての()内に文字が入るとこういうURLになる、はず。[]はキャプチャグループで区切ってみた。

[[http]:][//][terakonya.sarm.net][:[8080]][/getList][?huge][#top]

node.jsをインストールした

マシンに入れずじまいだったnode.jsを、写経中にインストールしました。
といっても、

$ sudo brew install node.js

v0.6.9がさくっとインストールされました。
りゅうのすけ君がスクリーン上でnode.jsを使いながらサンプルをタイピングしてくれていたので、見よう見まねで実践する事ができました。また少しjsと近くなれた気がします。

今回は会社の同僚も勉強会に参加していました。
一緒に仕事をしている人に勉強会で会うと、嬉しいですね 😉
またよろしくお願いしますー!

2 comments:

  1. ありがとうございます!
    今の設定だとsudoしないと操作できなかったんですよね。何かがおかしい。。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください