ЙажаСценарий / Говнокод #10196 Ссылка на оригинал

0

  1. 1
var c = 'function' === typeof o.pop ? [] : {};

Запостил: хуита хуита, (Updated )

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

    • Не, быстрая проверка на то, что o — массив.
      Хотя тут либо var c = o.pop? [] : {} для экономии места, либо полноценную проверку (например, через o instanceof Array).
      Ответить
      • Нет, проверка на то, что o.pop - функция, но от того, что такой метод есть у массива не следует, что o массив. Или, если именно так автор проверял, что o - массив, тогда печально.

        А, ну и еще три равно для сравнения со строкой... т.е. автор предполагал, что typeof x может вернуть new String("object") или что-то в этом духе. Вобщем, печально.
        Ответить
        • Так проверка быстрая же 🙂
          А строгое равенство, видимо, для скорости.

          В общем, говнокод, конечно, потому что и в размере выигрыша нет и не универсально.
          Ответить
          • Для строк строгое равенство и нестрогое - это одна и та же функция. Разница только если пытаться сравнить строку с не-строкой, или если сравнивать с new String(...).
            Ответить
          • [].pop == Array.prototype.pop

            Кстати, если так сравнивать, то работало бы даже почти правильно (за исключением того, что прототип можно динамически "унаследовать")
            Ответить
  • >Запостил: хуита

    Логичнее смотрелся бы ник "хуиту"
    Ответить

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

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8