タグ

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

  • JavaScriptのDateで表現可能な過去と未来 - 風と宇宙とプログラム

    寒くなったり暖かくなったりと気温変化が激しかったためか、先週一週間は体調を崩してしまい仕事がはかどらなかった。一日だけ休んだが、熱があるわけでもなく、ちょっと頑張れば出勤はできるし、重要な会議もあった。しかし、全身脱力感で、何もする気が起こらない。そんなボーっとした頭の状態で、ある規格書を読んでいたら、イベントの開始時刻にJavaScriptのDateクラスを使っていた。普通なら気になることはなかったが、このときに限りDateで表現できる最大の未来はいつだ?ということが気になってしまった。もちろん、それは遠い未来であり、人類が気にするようなスケールの時間でないことは知っている。気になったのは、各ブラウザが正しく実装されているかということ。 以下のブラウザで確認してみた。IEはよく知らないが、それ以外のブラウザは最新のはずだ。 Firefox Chrome Safari Opera IE 3

    JavaScriptのDateで表現可能な過去と未来 - 風と宇宙とプログラム
    Itisango
    Itisango 2012/09/09
  • JavaScriptのビット演算の仕組みを理解する - 風と宇宙とプログラム

    はじめに JavaScriptの数値表現はIEEE754の64ビットの倍精度型浮動小数ですが、ビット演算はどのように定義されているのでしょうか。今回はそのビット演算について解説します。この仕様は10年以上前から変わらないのですが、改めてその部分が書籍などでどのように解説してあるかを見ると、and, or などのビット演算が教科書的に書かれているだけで、任意の数値に対してどう定義されるかについてはほとんど説明されていません。 JavaScript以外の言語では? JavaScriptについて説明する前に、他の言語ではどうなっているでしょうか。ここでは、ちょっと手を抜いて実際に実行した結果のみを示します。バージョンによっては結果が違うかも知れません。 まずは、一番単純な 0 との orを調べてみました。つまり x | 0 の結果です。 x C (gcc) Java Ruby Perl -123

    JavaScriptのビット演算の仕組みを理解する - 風と宇宙とプログラム
  • JavaScriptのcall.applyの不思議 (wtfjsを解説) - 風と宇宙とプログラム

    wtfjsに下のような面白いものが登録されました。 alert.call.call.call.call.call.apply(function (a) {return a}, [1,2]) // 2 確かに、どうしてこうなるのかは直ぐには分かりません。一つ一つゆっくりと確認してみましょう。 関数コールのobj.func(arg,...)という形式は、obj.func部分の評価結果は参照型(reference type)となりますが、obj部分の評価結果は値になります。(詳しくは関連エントリ[2]をご覧ください) なので、 func1.func2.func3(arg,...); という形式は、func1.func2部分を評価して結果を変数に代入しても結果は変わりません。 つまり、下記のようにしても動作は同じです。 var fn = func1.func2; fn.func3(arg,..);

    JavaScriptのcall.applyの不思議 (wtfjsを解説) - 風と宇宙とプログラム
  • JavaScriptのメソッドコールの仕組みを深く理解する (参照型とは?) - 風と宇宙とプログラム

    はじめに JavaScriptでは関数もオブジェクトです。このことはよく理解されていると思います。関数とメソッドとの明確な違いはなく、どちらも関数オブジェクトである、というところまではよいのですが、関数コールとメソッドコールの違い、あるいはその仕組みは正確に理解されているでしょうか。先日、職場の後輩に問題を出したところ正確に答えられえなかったので、いまさら?と思われるかも知れませんが、関数コールの仕組みを解説します。 関数とメソッド JavaScriptでは関数とメソッドには質的な違いはありません。オブジェクトのプロパティとして定義される関数を便宜的にメソッドと呼んでいるだけです。parseInt()などのグローバル関数もグローバルオブジェクトのプロパティであり、関数の中でローカルに定義した関数も概念的にはActivation Objectのプロパティなので基的には全ての関数はメソッド

    JavaScriptのメソッドコールの仕組みを深く理解する (参照型とは?) - 風と宇宙とプログラム
    Itisango
    Itisango 2010/03/21
  • HTML5 Canvas のarcTo関数の実装が未だにorz - 風と宇宙とプログラム

    2年近く前にCanvas APIの実装状況を網羅的に調査したことがありますが、ブラウザごとに実装がいろいろ異なっていていました。その中で一番目立ったのがarcTo関数の実装の違いです。改めて調べてみました。 ブラウザのバージョンは以下です。 Chrome Safari Opera Firefox 4.0.249.43 4.0.4(531.21.10) 10.10 3.5.7 IEはExplorerCanvas r3を見てみましたがarcToは実装されていませんでした。 テストケース 今回、新たに簡単なテストケースを作りました。左図のような絵を描画するものです。arcToだけを使って描画しています。ちょっとキモイ絵になってしまいした。 Chromeではこうなります まあまあですが、描かれるべき線と左目の点がありません。 左目の点がないのは、arcToの問題もありますが、さらに長さゼロの線に対

    HTML5 Canvas のarcTo関数の実装が未だにorz - 風と宇宙とプログラム
    Itisango
    Itisango 2010/01/11
  • 1