1. JavaScript / Говнокод #16688

    +173

    1. 1
    var magnitude = parseInt('10' + new Array(8).join('0'));

    вот такое встретилось

    Запостил: Sulik78, 12 Сентября 2014

    Комментарии (13) RSS

    • Теперь я фанат автора, это гениально!
      Ответить
      • Math.pow(10,8) слишком скушно, да.
        http://jsperf.com/repeating-character/
        Ответить
        • А в красном гоатсе джойн быстрее цикла.
          Ответить
          • http://jsperf.com/repeating-character/26
            В развальцованомноцветном гоатсе тоже*. Только огнелис уважает олдскул.**

            *Если сначала заполнить массив.
            **Учитывая что новые версии обоих гоатсе на одном движке.
            Ответить
            • В том, что на Чаракане, самый первый джойн без предварительного заполнения быстрее всех алгоритмов. А новое красное гоатсе не считается, потому что это вообще не браузер.

              А синяя вафля голубой крендель рвёт шаблоны: у него оптимизированные версии алгоритма тормозят. И в старых версиях малой панды почему-то тоже оптимизированные версии алгоритма тормозят.
              Ответить
    • Почему магическая константа? Ведь можно же было написать функцию, возводящую 10 в разные степени, или умножающую число на степени десятки:

      function unrollexponent(mantissa, exponent) {
          return parseInt(mantissa.toString() + new Array(exponent).join('0'));
      }
      Ответить
      • там по коду видно так и планировалось, походу "временная" заглушка, вместо восьмерки должна была быть длина числа
        Ответить
      • Тут баг ;)
        Ответить
        • Вы про нецелую мантиссу говорите или про недостаток ноликов?
          Ответить
          • Про нолик :)
            Нецелая мантисса - само собой, но это ограничение, а не баг.
            Ответить
    • Number('1e8')
      Ответить
      • это 488, если перевести в десятичную
        Ответить
      • Накуя Number?
        JS спокойно понимает числа в экспоненциальной записи.
        var magnitude = 1e8;
        Ответить

    Добавить комментарий