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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    function s(t) {
        for (var e = ["yo", "zh", "kh", "ts", "ch", "sch", "shch", "sh", "eh", "yu", "ya", "YO", "ZH", "KH", "TS", "CH", "SCH", "SHCH", "SH", "EH", "YU", "YA", "'"], n = ["ё", "ж", "х", "ц", "ч", "щ", "щ", "ш", "э", "ю", "я", "Ё", "Ж", "Х", "Ц", "Ч", "Щ", "Щ", "Ш", "Э", "Ю", "Я", "ь"], r = t, i = 0, o = e.length; i < o; i++) {
            r = r.split(e[i]).join(n[i]);
        }
        for (var s = "abvgdezijklmnoprstufhcyABVGDEZIJKLMNOPRSTUFHCYёЁ", a = 0, c = s.length; a < c; a++) {
            r = r.split(s.charAt(a)).join("абвгдезийклмнопрстуфхцыАБВГДЕЗИЙКЛМНОПРСТУФХЦЫеЕ".charAt(a));
        }
        return r === t ? null : r
    }
    
    function a(t) {
        for (var e = ["yo", "zh", "kh", "ts", "ch", "sch", "shch", "sh", "eh", "yu", "ya", "YO", "ZH", "KH", "TS", "CH", "SCH", "SHCH", "SH", "EH", "YU", "YA", "'"], n = ["ё", "ж", "х", "ц", "ч", "щ", "щ", "ш", "э", "ю", "я", "Ё", "Ж", "Х", "Ц", "Ч", "Щ", "Щ", "Ш", "Э", "Ю", "Я", "ь"], r = "абвгдезийклмнопрстуфхцыАБВГДЕЗИЙКЛМНОПРСТУФХЦЫеЕ", i = t, o = 0; o < n.length; o++) {
            i = i.split(n[o]).join(e[o]);
        }
        for (var s = 0; s < r.length; s++) {
            i = i.split(r.charAt(s)).join("abvgdezijklmnoprstufhcyABVGDEZIJKLMNOPRSTUFHCYёЁ".charAt(s));
        }
        return i === t ? null : i
    }
    
    function c(t) {
        for (var e = "qwertyuiop[]asdfghjkl;'zxcvbnm,./`", n = t, r = 0; r < e.length; r++) {
            n = n.split(e.charAt(r)).join("йцукенгшщзхъфывапролджэячсмитьбю.ё".charAt(r));
        }
        return n == t ? null : n
    }

    Те же конташники. На каждую ворецию транслитерации мы будем сплитить строку в массив и джойнить его обратно. Какая эффективность )))

    Fike, 18 Июня 2020

    Комментарии (8)
  2. JavaScript / Говнокод #26759

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    function(t) {
        switch (t) {
            case 1:
                return g.emailNotConfirmed;
            case 2:
                return g.showCaptcha;
            case 3:
                return g.authFailed;
            case 4:
                return g.makeRedirect;
            case 5:
                return g.reload;
            case 6:
                return g.mobileActivationRequired;
            case 7:
                return g.showMessage;
            case 8:
                return g.showError;
            case 9:
                return g.votesPayment;
            case 10:
                return g.zeroZone;
            case 11:
            case 12:
                return Object(g.mobileValidationRequired)(t);
            case 13:
                return g.evalCode;
            case 14:
                return g.otpBox;
            case 15:
                return g.passwordValidationRequired;
            default:
                return Object(g.defaultHandler)(t)
        }
    }(t)

    https://vk.com/js/cmodules/bundles/common.2ce877ca4bd415d95d03.js?51fe80b96 a07a7861643

    #байтоклюйство #спичечная-экономика #олимпиадники #ebivk

    Fike, 18 Июня 2020

    Комментарии (8)
  3. JavaScript / Говнокод #26737

    +1

    1. 1
    2. 2
    3. 3
    nameState() {
        return this.name.length > 2 ? true : false
    }

    Из документации Bootstrap Vue
    https://bootstrap-vue.org/docs/components/form-input#contextual-states

    JonMagon, 06 Июня 2020

    Комментарии (46)
  4. JavaScript / Говнокод #26729

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    import * as React from 'react';
    import {CityFromSelector} from './components/cityFromSelector';
    import {CountryToSelector} from './components/countryToSelector';
    import {MealsTypeSelector} from './components/mealsTypeSelector';
    import {DepartureDatesRangeSelector} from './components/departureDatesRangeSelector';
    import {HotelCategoriesSelector} from './components/hotelCategoriesSelector';
    import {ResortSelector} from './components/resortSelector';
    import {HotelsSelector} from './components/hotelsSelector';
    import {TouristsSelector} from './components/touristsSelector';
    import {OperatorsSelector} from './components/operatorsSelector';
    import {NightsCountRangeSelector} from './components/nightsCountRangeSelector';
    import {PriceRangeSelector} from './components/priceRangeSelector';
    import {FlightInfo} from './components/flightInfo';
    import {SearchFormActionCreator} from './search/searchFormActionCreator';
    import {HotelsCountPopup} from './components/hotelsCountLimitPopup';
    import * as throttle from 'lodash/throttle';
    import * as filter from 'lodash/filter';
    import * as union from 'lodash/union';
    import * as merge from 'lodash/merge';
    import * as reduce from 'lodash/reduce';
    import * as chunk from 'lodash/chunk';
    import * as difference from 'lodash/difference';
    import * as differenceBy from 'lodash/differenceBy';
    import { Tour } from 'sletat-api-services/lib/ModuleApiServices/Main.svc/GetTours/Tour';
    import { logViewedTours } from 'sletat-api-services/lib/GraphApiServices/Main.svc/LogViewedTours/LogViewedTours';
    import { OilTax } from 'sletat-api-services/lib/ModuleApiServices/Main.svc/GetTours/OilTax';
    import { VisaFee } from 'sletat-api-services/lib/ModuleApiServices/Main.svc/GetTours/VisaFee';
    import { getHotelImageSrc } from 'sletat-common-utils/lib/tour/getHotelImageSrc';
    import { declineByCount } from 'sletat-common-utils/lib/format/declineByCount';
    import { Tour as GetToursTour } from 'sletat-api-services/lib/ModuleApiServices/Main.svc/GetTours/Tour';
    import { Tour } from './tour';
    import { IVisaFee } from './visaFee';
    import { IOilTax } from './oilTaxes';
    import { UiPopup } from 'react-sletat-uikit/lib/ui-popup/UiPopup';
    import { UiLoader } from 'react-sletat-uikit/lib/ui-loader/UiLoader';
    import {
        SendConfirmEmailResults,
        recoverySendConfirmEmail,
        registrationSendConfirmEmail
    } from 'sletat-api-services/lib/SletatServices/Services/SendConfirmEmail/SendConfirmEmail';
    import { authentification } from 'sletat-api-services/lib/SletatServices/Authentification';
    import LoginPopup from './components/Login';
    import RegistrationPopup from './components/Registration';
    import RecoveryPopup from './components/Recovery';
    import SuccessPopup from './components/Success';
    import { PopupTypes } from './constants';

    может это уже нормально в современном фронтенде

    tablecell, 02 Июня 2020

    Комментарии (20)
  5. JavaScript / Говнокод #26722

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    吾有一術。名之曰「斐波那契」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
    	若「甲」等於零者乃得零也
    	若「甲」等於一者乃得一也
    	減「甲」以一。減「甲」以二。名之曰「乙」。曰「丙」。
    	施「斐波那契」於「乙」。名之曰「丁」。
    	施「斐波那契」於「丙」。名之曰「戊」。
    	加「丁」以「戊」。名之曰「己」。
    	乃得「己」。
    是謂「斐波那契」之術也。
    
    施「斐波那契」於十二。書之。

    文言 wenyan-lang
    Числа Фибоначчи.

    https://github.com/wenyan-lang/wenyan

    jojaxon, 01 Июня 2020

    Комментарии (4)
  6. JavaScript / Говнокод #26702

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    <!DOCTYPE html>
    <head>
        <meta charset="utf-8"/>
    </head>
    <body>
    <canvas id='pixel_canvas'></canvas>
    <pre id='text_canvas'></pre>
    <script>
        'use strict';
        function tryFetch() {
            const array = arguments[0];
            const onError = arguments[arguments.length - 1];
            let result = array;
            for (let i = 1; i < arguments.length - 1; ++i) {
                if (arguments[i] < result.length) {
                    result = result[arguments[i]];
                } else {
                    return onError;
                }
            }
            return result;
        }
    
        function bitmap2tetramap(bitmap) {
            let tetramap = []
            for (let i = 0; i < bitmap.length; i += 2) {
                tetramap.push([]);
                for (let j = 0; j < bitmap[i].length; j += 2) {
                    tetramap[tetramap.length - 1].push(
                        tryFetch(bitmap, i, j, 0) << 3 |
                        tryFetch(bitmap, i, j + 1, 0) << 2 |
                        tryFetch(bitmap, i + 1, j, 0) << 1 |
                        tryFetch(bitmap, i + 1, j + 1, 0)
                    );
                }
            }
            return tetramap;
        }
    
        function renderTetramap(tetramap) {
            const tiles = [
                ' ', '▗', '▖', '▄',
    
                '▝', '▐', '▞', '▟',
    
                '▘', '▚', '▌', '▙',
    
                '▀', '▜', '▛', '█'
            ];
            return tetramap.map(row => row.map(i => tiles[i]).join('')).join('<br>');
        }
    
        function renderBitmap(bitmap) {
            return renderTetramap(bitmap2tetramap(bitmap));
        }
    
        function rgba2bitmap(rgba, width, height) {
            let bitmap = [];
            for (let i = 0; i < height; ++i) {
                bitmap.push([]);
                for (let j = 0; j < width; ++j) {
                    const currentRGBAElementIndex = (i * width * 4) + j * 4;
                    const red = rgba[currentRGBAElementIndex];
                    const green = rgba[currentRGBAElementIndex + 1];
                    const blue = rgba[currentRGBAElementIndex + 2];
                    const a = rgba[currentRGBAElementIndex + 3];
                    bitmap[i].push((red + green + blue + a) / 4 > 0? 1 : 0);
                }
            }
            return bitmap;
        }
    
        function renderImageData(imageData) {
            return renderBitmap(rgba2bitmap(imageData.data, imageData.width, imageData.height));
        }
    
        const ctx = pixel_canvas.getContext("2d");
        ctx.font = "16px serif";
        ctx.fillText("Какой багор )))", 0, 16);
    
        text_canvas.innerHTML = renderImageData(ctx.getImageData(0, 0, pixel_canvas.width, pixel_canvas.height));
    </script>
    </body>

    HIV, 28 Мая 2020

    Комментарии (19)
  7. JavaScript / Говнокод #26692

    +2

    1. 1
    Питушня

    KO6EHHbIu_nemyx, 26 Мая 2020

    Комментарии (464)
  8. JavaScript / Говнокод #26691

    +2

    1. 1
    2. 2
    3. 3
    function isNative (Ctor){
      return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
    }

    https://habr.com/ru/company/ruvds/blog/503634/
    >>> 5 интересных JavaScript-находок, сделанных в исходном коде Vue

    gost, 26 Мая 2020

    Комментарии (46)
  9. JavaScript / Говнокод #26679

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    $openTab.on('click', function () {
                $('.c-header__nav__level-1').hide();
                $('.c-header__nav__level-back').show();
                $tabContent.show();
            });
    
            //показываем меню 1 уровня когда нажимаем на бургер
    
            $('.c-header__toggler--burger').on('click', function () {
                $('.c-header__toggler').toggle();
                $('.c-header__nav__level-1').fadeIn();
                $('body').addClass('body-no-scroll');
    
            });
    
            //скрытие на кнопку закрытие
    
            $('.c-header__toggler--close').on('click', function () {
                $('.c-header__toggler').toggle(); //сама кнопка
                $('.c-header__nav__level-1').fadeOut(); //закрываем первый уровень
                $tabContent.fadeOut(); //закрываем второй уровень
                setTimeout(function () { //тайм-аут для восстановления 2 уровня по умолчанию
                    $('.c-header__nav__level-2-item--show').removeClass('c-header__nav__level-2-item--show');
                    $('.c-header__nav__level-2-item').show();
                }, 800);
                $('.c-header__nav__level-3').fadeOut(); //закрываем 3 уровень
                $('.c-header__nav__back').fadeOut(); // закрываем все кнопки 'назад'
                $('body').removeClass('body-no-scroll');
            });
    
            //кнопка "назад" со 2 на 1 уровень
    
            $('.c-header__nav__level-back').on('click', function () {
                $(this).hide().parent().hide().prev().show();
            });
    
            $('.c-header__nav__level-2-back').on('click', function () {
    
                $(this).hide();
                $(this).prev().show();
                $('.c-header__nav__level-2').removeClass('is-active');
            });
    
            //кнопка "назад" с 3 на 2 уровень
    
            $('.c-header__nav__level-3-back').on('click', function () {
                $(this).hide()
                    .parent().find('.c-header__nav__level-2-item--show').removeClass('c-header__nav__level-2-item--show'); // восстановления 2 уровня по умолчанию
                $('.c-header__nav__level-2-item').show(); // восстановления 2 уровня по умолчанию
                $('.c-header__nav__level-2-back').show(); //восстанавливаем кнопку "назад" 2 уровня
                $('.c-header__nav__level-3').hide(); //закрываем 3 уровень
    
    
            });
    
            //переход с 2 на 3 уровень
    
            $('.c-header__nav__level-2-item').on('click', function () {
                $('.c-header__nav__level-2-item').not($(this)).hide(); //закрываем весь 2 уровень кроме нажатого
                $(this).addClass('c-header__nav__level-2-item--show'); //стили для нажатого 2 уровня
                $('.c-header__nav__level-2-back').hide(); //скрываем кнопку "назад" 2 уровня
                $('.c-header__nav__level-3').show(); // показываем кнопку "назад" 3 уровня
                $('.c-header__nav__level-3-back').show(); //показываем 3 уровень
            });
    
            //новое меню
            $('body').on('click', '.c-header__nav__level-left__link.parent', function (e) {
                e.preventDefault();
                $(this).next('ul').addClass('is-active');
                $('.c-header__nav__level-2-back').show();
                $('.c-header__nav__level-back').hide();
            });

    Главное, что задокументировано

    phpBidlokoder2, 21 Мая 2020

    Комментарии (2)
  10. JavaScript / Говнокод #26630

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <script src="3.js"></script>
    <script> alert("part2") </script>
    <script src="1.js"></script>
     в 3.js 
    'use strict'
    let age = Number(null)
    alert(age)

    почему-то результат разный = то part2 то 0, ничего не меняю, просто результат разный каждый раз

    AtivniyGOMIkk228, 02 Мая 2020

    Комментарии (14)