いまさらJavaScript勉強中の感想

ひさしぶりに技術者っぽい記事を書く。いま業務でやってるのだ。

  • 関数がfirst classだったり、関数の評価タイミングがあとからだったりするなど、ちょっとだけlispを思わせるところがある。Emacs Lispの関数を書いている気分というか。
  • nullやundefinedが連想配列*1のキーにできる*2ことに気づいて一人でウケる。すかさず「{ null: function() {ほげほげ}, undefined: function() {ふがふが}, もっとまっとうな値: ... }」のようなものを使ったメタプログラミングを試してしまった。
  • 正規表現オブジェクト(RegExpインスタンス)の簡略な表記が標準で構文糖として備わっているのは心憎い(順スラッシュで囲むのだ)。
  • これは言語自体の話ではないが、mousemoveイベントのハンドラの末尾に「return false;」とつけないと、IEでたいへん残念なことになる。ここ数日で有数のはまりポイント。
  • あと、関数呼び出しの際に引数をつけていなかったせいでこけていたことに気づくまで、いちいち30分もデバッグするようではやばい。何かいい開発環境があるはずだ。探そう。

*1:最近は「ハッシュ」と呼ぶ方が普通だろうか。

*2:翌日追記: やや誤解を与えかねないので補足。より正確には、キー自体は単なる「undefined」のような文字列なのだけれども、例えば未定義の変数を添え字に指定すると、未定義であることが「undefined」という文字列に変換され、それに見合った値が得られる、ということ。