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

    +151

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    function checked(obj) {
        var undefined;
        obj = '#'+obj;
        if ($(obj+':checked').attr('id') == undefined) {
            return 0;
        }
        else {
            return 1;
        }
    }

    можно встретить и такое

    Запостил: Hits, 11 Марта 2013

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

    • Ну в этом как бы есть рациональное зерно. Значение неиинциализированой локальной переменной будет как раз таки undefined, а сам по себе undefined - даже не зарезервированое слово, т.е. вполне может быть, например, равен 42. - Грабли заботливо оставленные коммитетом по стандартизации, на случай если вдруг.
      Ответить
    • По стандарту undefined должно быть == null (но не === nulll), так что в случае id == null функция вернёт 0. Правда, выставить id в null у меня не получилось.
      Ответить
      • А js походу удаляет свойства если они равны null.
        Ответить
        • Если вы про атрибуты HTML-элементов, то нет (Chrome):

          >$('body').attr('checked')
          undefined
          >$('body').attr('checked', '')
          [<body data-twttr-rendered=​"true" checked>​…​</body>​]
          >$('body').attr('checked')
          ""
          Ответить
    • а jquery prop() кто-нить юзает?
      Ответить

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