JavaScript第5版読書会#1
に参加してきた。
気になったコード
js> "hoge".charAt(1) o js> "hoge"[1] o // 実装によってはうごかないらしい。
new String() vs. String()
js> typeof("hoge") string js> typeof(String("hoge")) string js> typeof(new String("hoge")) object js> typeof(3) number js> typeof(Number(3)) number js> typeof(new Number(3)) object
文字列 -> 数値
js> "10" - 0 10 js> "10" + 0 100
Array.fill
js> new Array(10 + 1).join("*").split("") [*,*,*,*,*,*,*,*,*,*]
new Array(n) n:数値 で作った配列は各要素が "undefined" となる。
で undefined にも代入できるからこれをうまくつくって Array.fill 的なことができないだろうか。結果だめっぽい。
js> undefined = "*" * js> undefined * // js> typeof (new Array(10))[1] undefined
基本型と参照型
文字列は immutable.
3.1.5.4 の表重要。
window.window.window
>>> window == window.window true >>> window == this.window true >>> window == window.self true
window オブジェクトに自己参照として self & window プロパティがある。
delete 演算子の挙動がキモい
この辺もっと。
//FireBug で謎の挙動 >>> var a=1; delete a; a a is not defined >>> var x=1; delete x; x 1 //SpiderMonkey js> var a=1;delete a;a 1 js> var x=1;delete x;x 1
JavaScript 第5版に書かれているのは下の挙動。
FireBug がおかしいっぽい。どちらにしろこの実装は気持ち悪い。
注意
コードの先頭の
js> が spidermonkey 1.7で、
>>> が FireBug で試した。
感想
- やっぱり PCがないときつい。その場で試したい。なんとしても手に入れないと。
- 他の言語の話になるとさっぱりわからない。もっと他の言語も学ばなければ。特に P*P。
- もっと色な人とからみたかった。 Twitter 検索の人と話せたのはうれしかった。
参考
とりあえず、こんなところ。また思い出したら追記するかもしれない。
最後に こんな素晴らしいイベントを企画、開催していただいた Kanasan さんありがとうございました。また参加すると思います。
http://del.icio.us/higeorange/js:reading に関連ページをまとめるつもり。
追記
Array.fill 良く考えると1文字しかできないのね。やっぱループで回すしかないのかなぁ。