タグ

ブックマーク / mindcat.hatenadiary.org (3)

  • 驚きいっぱいのJavaScript? - 風と宇宙とプログラム

    言語やインタフェースの設計には「驚き最小の原則」というのがある。まつもとさん人はそんなこと言っていないようだが、かつて、Rubyはその原則に沿った言語と言われていた。一方、JavaScriptはそれに反する言語と未だに見なされているようだ。多くの場合、よく理解していないのが原因である。理解した上でも、やっぱりおかしいよ、というのもあるかも知れないが、じゃ、その場合どう定義したらよいんだ、というのはいろいろ難しい問題がある。 wtfjs(http://wtfjs.com/)にはJavaScriptのそんな「変な挙動」が集められている。wtfなんてタイトルをつけているくらいなので、あまり真面目に見る必要はないのかも知れないけれど、主なものについて古い順から軽く解説してみた。ちなみに、wtfはWhat The F*ckの略。 typeof NaN === 'number' // true In

    驚きいっぱいのJavaScript? - 風と宇宙とプログラム
    paulownia
    paulownia 2010/03/01
    デフォルト動作とか暗黙的な操作ってのはむずかしいな。ESの仕様は直感に反しすぎてる気がする
  • Operaだけ何故か極端に高速な正規表現パターン - 風と宇宙とプログラム

    とても単純な正規表現だけれど、照合するのに非常に時間のかかるパターンがあります。下記はその一例。 var s = "abcdefghijklmnopqrstuvwxyz".match(/a(.+)+c/); 照合することは一目瞭然です。しかし、+ は最長一致型の照合なので2重のバックトラックが発生して、上の文字列の場合、一番最後になって照合が確認されることになります。たぶん、直感的には入力文字列の長さに応じて指数オーダで時間がかかるのだと思います。 実際にブラウザ上で確認すると、ChromeとIEは数秒程度かかりました。Firefoxは「警告:応答のないスクリプト」のポップアップが表示されてしまいました。 ところが、Operaは一瞬です。Date関数で処理時間を測定してもゼロです。Safariも結構高速で、数ミリ秒程度です。 通常、正規表現の実行は、オートマトンを実行する中間コードにコンパ

    Operaだけ何故か極端に高速な正規表現パターン - 風と宇宙とプログラム
    paulownia
    paulownia 2009/10/30
    へー
  • FAQ形式によるJavaScriptの本質がわかる超入門 - 風と宇宙とプログラム

    はじめに JavaScriptは簡単な言語のようでいて、実は奥が深く、初心者にとってなかなかその質がわかりにくい言語です。ここでは、JavaScriptの言語的エッセンスを理解できるようなものをFAQ形式で書いてみました。ご意見や誤り等を指摘してもらえたら嬉しいです。 なお、JavaScriptの標準化であるECMAScriptは、今年末にEdition 5 がリリースされる予定です。このFAQは、現在のバージョンであるEdition 3をベースにしています。 ECMAScriptって何ですか? ECMAはEuropean Computer Manufacturer Association(欧州電子計算機工業会)の略で、標準化団体です。NetscapeのJavaScriptMicrosoftのJScriptをベースに、純粋なプログラム言語部分を抽出したものをECMAで標準化したスクリプ

    FAQ形式によるJavaScriptの本質がわかる超入門 - 風と宇宙とプログラム
    paulownia
    paulownia 2009/10/05
    これはすごいなー
  • 1