「どう羽生」読み終えた

現代将棋について迫る良書。

本書で非常に印象深かったことをいくつか。

  • 山崎七段との対局での「怒り」にまつわるエピソード。
  • 羽生さんにはいわゆる「羽生流」のような得意戦法がないこと。
  • 2手目84歩問題。


先が気になって気になって一気に読み終えた感じだったので、2回目は棋譜も含めゆっくり読んでみる。

借りてきた

久々に色々借りてきた。

Hours

Hours

WHITESNAKE'S GREATEST

WHITESNAKE'S GREATEST

Avenged Sevenfold

Avenged Sevenfold

Fall

Fall

jQueryのeachを逆順から回したい

$($("div").get().reverse()).each(fucntion(){ ... })

いったん通常のDOM配列にしてから逆順にし、さらにjQueryオブジェクトに戻してeach。

しかし、これだとeach自体は正順で回っているので、
本当は降順にアクセスできたらいいのだけど。


拡張しやがれということか。

jQueryで要素の存在チェック

例えばid="elem"という要素について存在チェックを行うとき。
getElementById()の発想でやるとだめみたい。
これだと必ずtrueになる。

if($("#elem")){}

メソッドまで拾ってやる必要がある。

if($("#elem").size()>0)

if($("#elem").length)

if($("#elem").get(0))

また、これでもよいらしい。

if($("#elem")!=null)

スコープとかevalのメモ

var x=0;
(function(){
  x=1;
  var x=2;
  console.log(x); //2
})();
console.log(x); //0

グローバルとローカルにxという同名の変数が扱われているとして、ポイントは無名関数内の最初のx=1の代入部分、そして、その下のvar宣言。
var宣言は、どこにあろうともその直近スコープのトップレベルで宣言されたものとしてみなされる、という性質がある。
つまり処理の流れで書き直すとこうなる。

var x=0;
(function(){
  var x;
  x=1;
  x=2;
  console.log(x); //2
})();
console.log(x); //0

最初のコードでは、あたかもx=1はグローバルのxに代入しているように見えるが、
var文が先行され、スコープチェインでローカルのxにスコープが当たっている。
さらにvarと同時にx=2で初期化をしているつもりだが、あくまで宣言だけされた後で逐次的にx=1;x=2;と処理されるため、x=2の初期化のあとでx=1に上書きされるということにはならない。
※「変数値」はいったんundefindで定義されてから、コードの実行順で処理される。


evalすると

var x=0;
(function(){
  x=1;
  eval("var x=2;");
  console.log(x); //2
})();
console.log(x); //1

見事に結果が変わってしまう。
関数内のx=1では、この時点でローカルスコープ内のxが存在せず、スコープチェインを辿ってグローバルを参照しそこを上書きする。
evalによってローカル変数は直後にダイナミックに宣言され、その直前のx=1には干渉していない。

とりあえずまとめ

・通常変数宣言は、スコープのトップレベルで宣言したものとみなされる。
・evalしたvar文は、実行コンテキスト中で変数宣言の割り込みが可能になる。

2010年1月ブラウザシェア

http://journal.mycom.co.jp/news/2010/02/01/020/index.html

順位 バージョン別ブラウザ シェア 推移 備考
1 IE8 22.31% 2位から1位へ浮上
2 IE6 20.07% 1位から2位へ下落
3 Firefox3.5 17.10%
4 IE7 14.58%
5 Firefox3.0 5.29%
6 Chrome3.0 3.92%
7 Safari4.0 3.55%
8 IE8互換モード 2.79%
9 Opera 10.x 1.65%
10 Chrome 4.0 0.75% 12位から10位へ浮上
11 Firefox 3.6 1.07% 11位に登場
12 Firefox 2.0 0.79% 10位から12位へ下落
13 Opera 9.x 0.70% 11位から13位へ下落

Chromeの成長がすごい。



GoogleがIE6のサポートをやめるという発表もありましたので、これはありがたい話。
業界全体として、古いブラウザを切り捨てる方向に向かってほしいと思う。



現在これを読んでいます。

GOOGLEの全貌 そのサービス戦略と技術

GOOGLEの全貌 そのサービス戦略と技術