pushStateの良い使い道見つけた!!

[] == ![]; // true

こうなるのは、以下の手順で評価されるため?かな?

  1. 空の配列はbooleanに変換されるとtrue。なので、右辺はtrueを反転してfalse
  2. 「==」式は、オブジェクトと基本型を比較する際に、オブジェクトを基本型に変換する。変換の際には、valueOfメソッドが呼ばれるため、左辺は空文字を返す
  3. 比較対象の片方がbooleanの場合には、boolean値が数値に変換されるため、右辺はfalseから0に変換される
  4. 比較対象の片方が数値で片方が文字列の場合には、文字列が数値に変換されるため、左辺の空文字は0に変換される
  5. 左辺と右辺が両方とも0のため、結果はtrue

JavaScript奥深し。。

Tags: javascript js


var hoge = function(flg){
    var i = 0;
    if (flg) {
        function fuga() {return 1000};
    } else {
        while(i < 10) {
            function fuga(){return i};
            i++;
        }
    }

    alert(fuga());
};

hoge(true);
hoge(false);

結果を予想してから、実行してみてね。

Tags: javascript js

Tags: css3

酔ってたら入力してしまいそう

natsumiorz:

Cycle to Work Calculator - How much money will you save cycling to work?

あと225日でペイか。。

cfurrow:

Yeah, I looked at the examples and thought, “Self, you should use all the things!” Yes, yes I should. Looks very handy if you have to do lots of date/time manip on your client side.

(Source: twitter.com)

Tags: javascript

Tags: デザイン

Tags: iOS

Lion + Nginx + PHP + mongodb