つれづれ日記 2012年3月

予定

毎日


2012年3月31日 (土曜日)

19:25:20 # Life javascriptのthisとかfunctionとか変数とかのスコープがよくわからない。 何読めばよくわかるんだろうか。 なんか驚愕した仕様としては、関数スコープでvarで宣言した変数はvarの行より手前でも有効らしい。C++からくると未定義かグローバル変数を参照するだろうと思うのだが、違う。

var a = 'global';
function hoge() {
  console.log(a);
  var a = 10;
  console.log(a);
}
console.log(a);
hoge();
	

var name = function functionName() {}var name = function() {} と外のスコープに対しては 同じ挙動をしてほしいところだが、 実装によってはfunctionNameに意味がある処理系がありそうだ。

2012年3月26日 (月曜日)

07:10:44 # Life コールバックとして呼ばれるクロージャは最後のパラメータがいい。 インラインで定義されている関数のあとにタイムアウトの時間が記述されているなんて読みにくくてしょうがない。 setTimeout というjavascript API を今定義しなおすなら、まず'set'というセッターっぽい名前じゃない名前を付けたい。たとえば timeout();。

setTimeout(function() {
  ...
}, 1000);

timeout(1000, function() {
});
	

2012年3月24日 (土曜日)

14:30:46 # Life javascriptの等値判定。 ===とか==がどう違うかなんてひどすぎるよねという話を先日昼飯食べながらした。 あらためてみたが、なんかひどい。 型の自動変換があるので'3' == 3がtrueをかえすらしい。 予想しない挙動をすることがあるので型変換をしない === のほうがよいんじゃないか?

nantoka(function() {}); より nantoka(function namedFunction() {});のほうがbacktraceが見やすいという話とかがどっかにかいてあって なんとなく納得した。anonymous functionばっかりの関数はまったくもって読みにくい。

2012年3月19日 (月曜日)

14:47:54 # Life DebianでNodeJSを入れてみて手を動かしてみてる。 なんかまだ整備されきってない気がするなぁ。 話題にはなっているしいろんな人が試行錯誤しているっぽいけど それがまだ本流の整備に還流していってないような印象。

2012年3月9日 (金曜日)

08:24:00 # Life 生きてます。 時差ボケしてインフルエンザにかかってとかしてたら何週間かたっていた。


Junichi Uekawa

$Id: 201203.html.ja,v 1.9 2012/03/31 10:54:07 dancer Exp $