タグ

ブックマーク / uupaa.hatenadiary.org (2)

  • 理由がない限り、Array.join("") による文字列連結は使わないほうがいいみたい - latest log

    JavaScript の勉強を開始したときに「文字列の連結には Array.join() を使え」といった記事を見た覚えがあります(ソース失念したけど、 Operaの技術文書だった気がする ⇒ IE の技術文書だったかも)。 一年ほど信じてて、念のためベンチとってみたら「うそやーん」でした。ってお話。 ベンチの条件は、 3種類の文字列連結方法を試す 1. + Operator 2. String.concat() 3. Array.join("") 文字列の要素数を 11個 と 55個で試す <!doctype html><html><head><title></title> </head><body> <script> window.onload = function() { var now = +new Date, lp = 100; while (lp--) { job(); } d

    理由がない限り、Array.join("") による文字列連結は使わないほうがいいみたい - latest log
    xorphitus
    xorphitus 2010/09/08
    IE6,7を救う場合、またはArrayに格納済みの文字列を結合したい場合にはjoinがよい。そうでなければ+演算子を使う、と。
  • とある最短のIE判定コード - latest log

    ちょっと前まで、IEかどうかを判別する世界最短のコードは、「IEは垂直タブ(\\v)を理解しない」バグを利用した以下のコードでしたが、 '\v'=='v' // 9byte via Ajaxian その後 7byte 版が登場し、去年まではこれが世界最短とされていました。 !+"\v1" // 7byte via webreflection.blogspot.com そこで IEでは、var ary = [1,2,]; ary.length == 3; が成立するため、これを利用したより短い判別コードを考えてみました。 [,]!=0 // 6byte(IEでtrue, IE以外でfalse) +[1,] // 5byte(IE以外で1, IEでNaN) 6byte版で、世界最短かなぁ〜とか思ったのですが、念のため調べてみたら、 webreflection.blogspot.com の 20

    とある最短のIE判定コード - latest log
  • 1