1. ActionScript / Говнокод #10271

    −165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /**
         * This is a really fast way to check for NaN; see the spec of NaN
         * on why this works; this check can yield false only for a Number
         * since it's the only one capable of having NaN as a value.
         */
        if (d != d) {
         throw new Error("value can't be NaN!");
        }

    Запостил: kyzi007, 15 Мая 2012

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

    • Наоборот красивый код, если конечно верить комменту.
      Ответить
      • isNaN(d) и ниипет.
        Ненавижу когда код превращают в угадайку которая еще неизвестно как себя поведет в новой версии.
        Ответить
        • isNaN, разумеется, рулит, но код в теории должен работать всегда, ибо спецификация (я так в фортране ещё делал)
          Ответить
          • Это у вас в теории, а у нас адобе.
            Ответить
            • Какой-то анекдот про мышей, право.
              Ответить
              • Я хочу уходить на руби, очень хочу. Я даже временно свободна от работодятлов. Но без опыта меня никто не хочет, а по второму кругу работать за еду как то не вставляет )
                пс прикинутся студенткой штоли, а то мой опыт пугает?
                Ответить
                • *опыт работы с флешом
                  Ответить
                • Хотите составить компанию?
                  http://tinyurl.com/c3h4nyq
                  Ответить
                  • Предпочитаю чай, литрами, как единственную употребляемую жидкость (кроме пива).
                    Ответить
                  • Кто на фото? Роман в рабочей обстановке?
                    Ответить
                    • Не знаю, нашёл картинку на просторах интернета. Я вроде мужского пола с утра был https://plus.google.com/115080131688054388664
                      Ответить
                      • >Я вроде мужского пола с утра был

                        Так говоришь, будто на той картинке человек женского полу :-)
                        Ответить
                        • Блин, первичные и вторичные половые признаки недоступны для обзора. Если честно, сначала принял за девушку, но теперь вкрались сомнения...
                          Ответить
                          • Плечи узкие, талия узкая и находится высоко, бёдра широкие и пухлые. 96.35%, что девушка
                            Ответить
                            • http://tinyurl.com/fry-girl-or-hipster
                              Ответить
                              • Воспользуемся помощью гугла...

                                > Скорее всего, на картинке여자 프로그래머

                                Ну теперь-то всё стало ясно!
                                Ответить
                • Флешеров так сильно не любят? О_о
                  Ответить
                  • Любят с дизайнерами путать, ага.
                    А если серьезно - боятся что много захочу для джуника.
                    Ответить
      • Если бы я скопила без эксепшена и коммента - 80% флешеров вообще не поняли бы что это.
        И что все использования этого кода сопровождать куском комментов?
        Ответить
    • Кстати во флеше d!=d может нести вообще другой смысл.
      public  function get d():Number {return Math.random();}
      public function isNaND(){return d!= d;}
      Ответить
    • assert-ов в языке нету что ли?
      Ответить
    • Видать большой прирост в скорости дает, раз не лень такой большой комментарий писать было ))
      Ответить
      • Ну начнем с того что отлов ошибок все сьест - трай кетч медленный сволочь.
        А закончим - 100мс на 10 000 000 000 интераций.
        Ответить
        • а что такое эти ваши "интерации"?
          что-то вроде фрикций?
          Ответить
    • а как ещё-то (isNaN() не во всех языках есть)
      Ответить
    • Нормальное решение. isNaN( null ) === isNaN( undefined ) === true.
      Ответить
      • Мм, ну если у вас в намберы такое в порядке вещей когда попадает, то да, нормальное.
        Ответить
      • В AS3 так не получится, только если замаскироваться от компилятора и потерять тип аргументов функции - а так, вообще isNaN требует Number - так что не скомпилится просто.
        Ответить
    • Может в целях производительности сделали. На 100% не уверен, но скорее всего isNaN компилируется как вызов функции, а простое сравнение работает в разы быстрее.
      Ответить
      • В актионскрипте? Скорость?
        Ответить
      • Не в разы, процентов на 30%.
        На самом деле такие оптимизации простым смертным почти никогда не нужны.
        К тому же без комментариев код вставлять нельзя - из опрошенного комьюнити почти никто не понял что это за фигня такая.
        Ответить

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