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

    0

    1. 1
    2. 2
    if(services_type == 3) var checked = 1;
    else var checked = 0;

    Запостил: fellownik, 16 Ноября 2017

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

    • use strict !!!
      Ответить
      • if(services_type == 3) { "use strict"; var checked = 1; }
        else { "use strict"; var checked = 0; }


        fixed.
        Ответить
      • exam strict
        eat strict
        break strict
        open strict
        kill strict
        drop strict
        get strict
        Ответить
        • > open strict
          Звучит как название какого-то швабодного фаервола.
          Ответить
      • Вы имеете в виду, что у них сверху написано "use strict", из-за чего некоторые конструкции вида xxx = 222 вызывают ошибку, и решать эту проблему стоит удалением одного "use strict" вместо множественного добавления var?
        Ответить
        • Жалко что в JS нельзя поставить собачку как в PHP
          Ответить
        • если бы "use strict" был сверху то такой код выдал бы ошибку
          Ответить
          • Почему? Как воспроизвести?

            Пойду наконсоль в хром. Как известно, use strict начинает работать уже если его написали первым внутри функции.
            > (function(){
            >   y = 5;
            > })();
            undefined
            
            > (function(){
            >   'use strict';
            >   x = 5; // если use strict сработает, упадёт
            > })();
            Uncaught ReferenceError: x is not defined
            
            > (function(){
            >   'use strict';
            >   if(1) var x = 1;
            >   else var x = 2;
            >   console.log('x=' + x);
            > })();
            x=1

            У меня не выдаёт ошибку.
            Ответить
            • О чём я писал:
              Если есть use strict, много переменных, и хоть у одной переменной забыли написать var при присваивании, код упадёт.
              Чтобы не искать, какая переменная виновата, можно писать около всех присваиваний "var" - код перестанет падать. Если переменная присваивалась только в своей функции, не использовалась снаружи неё, не переиспользовать имена переменных, не использовать рекурсию, всё будет работать так же, как и без "var" и "use strict".
              Ответить
    • "use strict";
      var checked = services_type === 3 ? 1 : 0;
      Ответить

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