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

    +166

    1. 1
    2. 2
    if (value) return (value != null)
               else return false;

    Из кода проекта.... Автор уволился

    Запостил: alex123098, 17 Марта 2014

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

    • Видимо написал он этот шедевр, осознал всю свою никчемность и уволился. Что за проект то?
      Ответить
      • Да так, малое кредитование. Нет, автор этого еще много чего в таком роде сочинил. Надо будет выложить еще че-нибудь
        Ответить
    • Я бы посмеялся, если бы не был наслышан про причуды JS-ного приведения типов и выкрутасы с false/null/undefined — не шибко удивлюсь, если этот код делает что-то полезное.
      Ответить
      • Если справедливо (value), то value != null. Может быть, этот код делал что-то полезное до переписывания. Может быть, там когда-то было if(value != false), которое заменили на if(value).
        Ответить
        • Не делал этот код ничего полезного, просто автор не знал, что его можно написать как
          return !!value;

          :)
          Ответить
          • return value;
            Ответить
            • нет, если value === null или value === undefined :)
              Ответить
              • null и undefined в условиях разве не зачтутся за false?

                Я тут пока вижу две проблемы:
                1) Сборщик мусора не сможет удалить то, на что ссылается value, что неприятно, если результат функции куда-то надолго сохранят, а value было каким-то огромным массивом/объектом.
                2) Кто-то может додуматься сравнивать на === false или === true. Но это уже ССЗБ, а не проблема.
                Ответить
                • в условиях зачтутся, если не напорятся на явное сравнение типа value === false
                  Ответить
                  • > value === false
                    А зачем так писать? Ну кроме сериализации во всякие json'ы.
                    Ответить
          • Простые смертные любят писать Boolean(value)
            Ответить

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