pushStateの良い使い道見つけた!!
[] == ![]; // true
こうなるのは、以下の手順で評価されるため?かな?
- 空の配列はbooleanに変換されるとtrue。なので、右辺はtrueを反転してfalse
- 「==」式は、オブジェクトと基本型を比較する際に、オブジェクトを基本型に変換する。変換の際には、valueOfメソッドが呼ばれるため、左辺は空文字を返す
- 比較対象の片方がbooleanの場合には、boolean値が数値に変換されるため、右辺はfalseから0に変換される
- 比較対象の片方が数値で片方が文字列の場合には、文字列が数値に変換されるため、左辺の空文字は0に変換される
- 左辺と右辺が両方とも0のため、結果はtrue
JavaScript奥深し。。
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);
結果を予想してから、実行してみてね。
酔ってたら入力してしまいそう
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)
Lion + Nginx + PHP + mongodb
