FrontEnd. All.
Контакты
Местоположение
Россия, Республика Крым, Красногвардейское

Достижения

Все достижения (8)

Наибольший вклад в теги

Все теги (81)

Лучшие ответы пользователя

Все ответы (635)
  • Почему говорят, что Javascript сделан на коленке?

    KorniloFF
    @KorniloFF Куратор тега JavaScript
    Работаю по font-end / JS
    Потому, что его фактически создали за 2 недели. Но разработчик был, мягко выражаясь, гением, потому до сих пор никакой реальной альтернативы ему на фронт-энде нет.
    Соответственно, актуальности такое заявление иметь не может.
    А некоторым JS вполне себе нравится. Как по мне - излишества пошли в его поздних версиях, начиная с ES-6.

    Источник:
    Простите, времени было мало для того, чтобы сделать правильную оптимизацию хвостовой рекурсии. 10 дней почти без сна, чтобы сделать JS с чистого листа, заставить его «выглядеть как Java» (я сделал, чтобы он выглядел как C), и тайком протащить туда его спасительные фишки: first class functions (замыкания сделал позже, но они были частью плана сразу) и прототипы (примерно как в языке Self).

    https://habr.com/ru/post/106274/
    Ответ написан
    2 комментария
  • Не мэтчится регулярное выражение?

    KorniloFF
    @KorniloFF Куратор тега JavaScript
    Работаю по font-end / JS
    А если изменить сам подход? Зачем парсить JSON регулярками?
    https://codepen.io/KorniloFF/pen/vbaLdM?editors=1011
    Ответ написан
    5 комментариев
  • Когда использовать классы, а когда функции?

    KorniloFF
    @KorniloFF Куратор тега JavaScript
    Работаю по font-end / JS
    Согласен с Ларисой, но немного дополню.
    Классы, собственно, введены для любителей ООП, и действительно - только эмулируют в JS классическое ООП.
    Нужны они для того, чтобы инкапсуллировать части кода, иметь возможности классового наследования и проч. Но нужно не забывать, что в JS используется наследование на прототипах и никакого другого в нем нет.
    Если понять вышесказанное, то от классов в JS лучше отказаться, и использовать встроенные инструменты. Сразу скажу единственный минус, который я не смог чисто обойти - отсутствие множественного наследования.

    Итак, инкапсулляцию лучше всего делать, размещая все функции отдельного блока кода не в классе, а в качестве методов объекта.
    var obj1= {
    prop1: value,
    met1: function(arguments) {
    body
    }
    // etc
    }


    При таком подходе мы имеем в глобальном скопе лишь одну переменную, но можем вполне использовать весь ее потенциал, как:
    obj1.met1();
    И зачем нам нужны классы при таком подходе?
    Если нам нужно унаследовать от другого объекта, самым простым способом будет разместить ссылку на родительский объект в свойстве __proto__ наследника.
    var parent= {...};
    var child= {
    __proto__: parent,
    .....
    }
    Ответ написан
    Комментировать
  • Закрыть модальные окна по клику esc?

    KorniloFF
    @KorniloFF Куратор тега JavaScript
    Работаю по font-end / JS
    <div id="modal_id" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">Модальное окно, закрывающееся по esc</div>
    <script>
    	document.addEventListener('keypress', function (e) {
    		if(e.keyCode === 27) document.getElementById('modal_id').hidden= 1;
    	}); 
    </script>
    Ответ написан
    4 комментария
  • Если есть в массиве слово как вывести true?

    KorniloFF
    @KorniloFF
    Работаю по font-end / JS
    return in_array('sunglasses', $arr)? true : false;

    Или, менее очевидно:
    return in_array('sunglasses', $arr);
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (23)