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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (!$('#enable-continious').is(':checked') && $('#enable-continious').is(':checked')) {
    	...
    } else {
    	...
    }

    Продолжаем находить великие письмена великих людей на проекте. К слову, человек на позиции Senior PHP Developer является автором.

    Запостил: Un3Solka, 31 Августа 2015

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

    • так то ж язык другой
      Ответить
    • Настоящий профессионал знает, что 1-2 условия всегда подводят, поэтому их должно быть 3.
      Ответить
      • не хватает еще
        $('#enable-continious').is(':checked').toString() == "true"
        Ответить
    • Проверка на пребывание в суперпозиции
      Ответить
    • Поскольку объект $('#enable-continious') не кэширован, а результат вызова метода is(':checked') - тем более, то за несколько микросекунд, прошедших между проверками, состояние чекбокса может измениться. Код ловит момент переключения.
      Ответить
      • и если поставить галочку в нужный момент, то откроется секретный уровень
        Ответить
      • В каких случаях оно так работает?
        Комментарий для тех, кто пишет на C++: обычно в браузере страница подвисает и не отвечает на пользовательские действия, пока исполнение куска JS не закончится.
        Ответить
        • А как же тогда работают игры на JS? Там ведь всё время исполняется какой-нибудь кусок JS, но это не мешает игроку давить кнопки.
          Ответить
          • Медленно. Но ведь разные же куски работают, в пределах одного состояние страницы (кнопочки-формочки) само не меняется?
            Ответить
            • медленно? расскажи это Epic Games, и Unity 3D.
              по твоему они зря компиляторы под asm.js писали?
              Ответить
            • УМВР: http://codepen.io/anon/pen/PPoXgg

              Боюсь, что в первом тезисе где-то ошибка или неточность. По крайней мере, не определено, что именно нужно считать куском кода.
              Ответить
              • > Боюсь, что в первом тезисе где-то ошибка или неточность.
                Вот и я хочу выяснить неточность из первого тезиса, а именно "за несколько микросекунд, прошедших между проверками, состояние чекбокса может измениться".
                Это полностью троллинг, или есть какие-нибудь ololoWorkers или интерпретаторы, где оно - правда?

                > УМВР
                Так оно и у меня работает. Но я всё же ожидал увидеть демонстрацию работы вот этого:
                if (!$('#enable-continious').is(':checked') && $('#enable-continious').is(':checked')) {

                Ну или этого же, с засунутым между проверками длительным вызовом чистой функции.

                > По крайней мере, не определено, что именно нужно считать куском кода.
                Уж Вы меня понимаете, только не надо включать дурачка требования к оперделениям wvxvw.
                В показанном на codepen примере "кусок кода" - первый аргумент setInterval.
                Ответить
                • Пример куска кода, в котором операнды выражения меняются в процессе вычисления:
                  setInterval(function(){
                    if (new Date() != new Date()) {
                      $('#secret').show();
                     } 
                  },100);


                  И снова УМВР: http://codepen.io/anon/pen/RWwdZG
                  Ответить
                  • Нечестно.
                    Лучше покажите код, где
                    !$('#enable-continious').is(':checked') && $('#enable-continious').is(':checked') === true
                    Ответить
                  • так все логично же
                    Ответить
    • Сломал моск, пытаясь понять, как это работает :(
      Ответить

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