• Как сделать, чтобы при нажатии на кнопку всплывал список?

    mosesfender
    @mosesfender
    Меланхолик, параноик, падал с коек
    Когда-то давно, в прошлом веке, я тоже не видел разницы между обработчиком события и слушателем события.

    Event listener — буквально так и переводится: "слушатель события". Т.е., когда мы назначаем элементу путём addEventListener некий обработчик, мы заставляем его слушать и реагировать на некоторое событие, возбуждается чем-то.

    К чему я это… В таких неопределённых ситуациях всегда лучше делегировать слушателя, а иногда без этого просто не обойтись, особенно когда дело касается "мышиной возни" (MouseDown, MouseOver etc). Делегирование слушателя одному из предков, к тому же, имеет ещё одно неоспоримое преимущество: при динамическом изменении DOM, например при загрузке по ajax пресловутых элементов .mobile-categories, не нужно следить за прикреплением им слушателей каждый раз.

    document.body.addEventListener('click', (ev)=>{
        if (ev.target.classList.includes('.mobile-categories')) {
           // Тут что-то делаем с ev.target
        }
    });
    Ответ написан
    Комментировать
  • Функция в javascript и все ли они нужны?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Способ вызова функции только один – круглые скобки
    // Вызываем функцию, результат кладем в переменную
    const result = myFunction();

    Декларировать функцию можно по разному

    // Обычное объявление
    function muFuncion() { }
    
    // Выражение с анонимной функцией
    const myFunction = function() { }
    
    // Выражение с именованной функцией
    const myFunc = function myFunction() { }
    
    // Объявление стрелочной функции
    const myFunction = () => { }


    При передаче функции параметром, используется выражение в любом варианте без присваивания в переменную

    someFunction(function() {}) // анонимка
    someFunction(() => {}) // стрелочная


    Вот пожалуй и всё.
    Ответ написан
    3 комментария
  • Функция в javascript и все ли они нужны?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Вызвать функцию можно только 2мя способами. Один из способов из двух вариантов.

    1. Как обычно, через круглые скобки ().
    2. Через вызов метода .call или .apply

    Других вариантов вызова функции что-то не приходит в голову.

    Способов объявления функций тоже всего два:
    - function expression - expression - выражение, то есть такая строчка, у которой есть знак =
    - function declaration - классическое объявлений функций через function name() {}.
    Между этими двумя вариантами одно основное кардинальное отличие, которое запомнить очень просто. Всплытие declaration.

    Все ли они нужны? Да.
    Можно ли обойтись без expression на первых этапах обучения и будет ли достаточно declaration? Да.
    Что ещё Вы хотите запоминать?

    P.s. можно ещё создавать функцию через конструктор Function, но так никто не делает, поэтому опустим этот вариант.
    Ответ написан
    Комментировать
  • Error [ERR_REQUIRE_ESM]: Must use import to load ES Module?

    @aidyn_99
    у меня тоже была такая ошибка, решил переустановкой npm i gulp-imagemin@7.1.0
    Ответ написан
    2 комментария