ものすごく意味のないコード
jQueryのこと書いてたら思いついた。
既出かな?
$(function(){
alert($($($($($($($(‘#box’).get()).get()).get()).get()).get()).get()));
});
さて、結果はHTML Elementでしょうか?jQueryオブジェクトでしょうか?
答え:どうでもいい(笑)
一応、jQueryオブジェクトです。
Read the rest of this entry »jQueryのこと書いてたら思いついた。
既出かな?
$(function(){
alert($($($($($($($(‘#box’).get()).get()).get()).get()).get()).get()));
});
さて、結果はHTML Elementでしょうか?jQueryオブジェクトでしょうか?
答え:どうでもいい(笑)
一応、jQueryオブジェクトです。
Read the rest of this entry »少し前に、JScriptの条件付きコンパイルを使ってIEを判定する方法が流行りました。
var IE = /*@cc_on!@*/false;
とかやる方法ですね。
ただ、条件付きコンパイルは遅くなるだとか(信憑性は不明ですが)聞いたので使ってませんでした。
で、タイトルの方法。こう書くそうです。
var IE = !+”\v1″;
これで、IEはtrue,それ以外はfalseとなります(Opera,Safari,Firefox,Chromeで検証)。
swfObject.jsのソースを読んでたらこんなことしてるもんだから、もとネタを見たらちゃんと解説もしてありました。ちょろっと見たことを書いてみます。
→もとネタ http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
どうやら、\vは通常のブラウザはvertical space(改行つきスペース?)の文字として認識するようで、
var IE = !(+
1
)
と認識するようですね。で、1の否定で0だからfalse。うん、納得。
しかし、IEは\vは文字列として認識するようで、
var IE = !(+v)
カッコ内の結果をisNaNしてtrueになるようです。
こんなのよく考えたなぁ、と関心しながら自分のフレームワークに取り込みました。
indexOfでuserAgent判定してたから、その分早くなったかなぁ。
・・・でもこれってJScriptの解釈のせいなのかな?IE9からできなかったりして。
そうなったら元に戻すしかないね。