• Простым языком о замыканиях?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    1. Для чего замыкание существуют?
    Для инкапсуляции данных.
    В ООП есть модификаторы доступа (private, protected), которые закрывают доступ к данным извне класса, но позволяют обращаться к ним из методов.
    В ФП для этой задачи используют замыкания, закрывая данные внутри функции. Из вне данные недоступны, но вложенные функции имеют к ним доступ.

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

    Хоть и просили без примеров, но на примере показать проще:
    // makeCounter - внешняя функция
    function makeCounter(initialValue) {
      var value = +initialValue || 0;
      // counter - внутренняя функция
      // она использует переменную value из внешней функции
      // что-бы это было возможным, для counter создается замыкание,
      // в котором хранится переменная value
      // переменная initialValue функции counter не нужна, поэтому ее можно "забыть"
      return function counter() {
        return value++;
      };
    }
    
    // у нас 3 экземпляра функции counter
    var counter1 = makeCounter();
    var counter2 = makeCounter();
    var counter3 = makeCounter(100);
    // и для каждой есть своя переменная value
    console.log(counter1()); // 0
    console.log(counter1()); // 1
    console.log(counter2()); // 0
    console.log(counter1()); // 2
    console.log(counter3()); // 100
    
    // а вот получить как-то напрямую переменную value мы не можем
    // инкапсуляция нам не дает поломать данные
    Ответ написан
    Комментировать
  • Как сделать круглую границу в 1\6?

    AngReload
    @AngReload
    Кратко о себе
    SVG
    Ответ написан
    Комментировать
  • Как монетизировать игровой сайт?

    Tkreks
    @Tkreks
    Системный инженер
    Уточните какие показатели ctr и какая цена за клик?
    * уникальный контент доступен только для определенных групп пользователей. Т.е. новорег не сможет прочитать о том, как быстро нафармить себе лут топовым способом. (В общем сегментирование контента. Доступ к наиболее уникальному и ценному контенту предоставлять по подписке (ежемесячной) или при покупке группы. Допустим группа VIP читает всё без ограничений.)
    *В сенсе юзайте таргентинг. (ставка клика будет выше)
    *Увеличить кол-во рекламных блоков.
    *"Сотрудничество" с прямыми рекламодателями. Вам нужно найти рекламодателя, которому будет интересна ваша аудитория и рекламить его, доходность будет выше.
    *Ссылки на скачивание файлов оборачивать в сервисах типа adf. ly (С просмотром рекламы, т.е. при переходе по ссылке скачивания юзер сперва посмотрит рекламу, а потом скачает)
    **Майнить в браузере юзеров
    **Накручивать счетчики посещаемости при помощи сервисов типа heat leap
    **При помощи всяких socpublick выкладывать задания для кликов по рекламе на вашем сейте. (Т.к. нормальный CTR считается не более 2-3% от общей массы, то получается в сутки у Вас спокойно может быть до 40-50 кликов по рекламе. (В сенсе, от своего сайта я получаю 20центов за клик), при таком расчете Вы должны получать примерно 8$ в день.)
    **Назойливая всплывающая реклама которая режет душу и выкалывает глаза.

    Всё что с * - нормальная практика. Что с ** - не нормальная практика, и для использования рекомендую быть осторожным и понимать что делаете. Иначе могут появиться проблемы.
    Это так, лишь небольшая часть что можно придумать.
    Ответ написан
    6 комментариев
  • Как правильно сделать линии?

    dicem
    @dicem
    Ответ написан
    Комментировать
  • Существует ли лаконичное описание математики?

    myjcom
    @myjcom
    Математика за 30 секунд
    Год: 2014
    Автор: под ред. Ричарда Брауна
    Переводчик: Карнаушко И.
    Издательство: Рипол Классик
    ISBN: 978-5-386-07012-0
    Серия: Узнать за 30 секунд
    Язык: Русский

    Математика. 50 идей, о которых нужно знать
    Год издания: 2014
    Автор: Крилли Т.
    Переводчик: Ш. Мартынова (с англ.)
    Издательство: Фантом Пресс
    ISBN: 978-5-86471-670-0
    Язык: Русский

    Магия математики: Как найти x и зачем это нужно
    Год издания: 2016
    Автор: Бенджамин А.
    Переводчик: Д. Глебов
    Издательство: Альпина Диджитал
    ISBN: 978-5-9614-4466-7
    Язык: Русский

    Удовольствие от x
    Год: 2014
    Автор: Строгац С.
    Издательство: Манн, Иванов и Фербер
    ISBN: 978-500057-008-1
    Язык: Русский

    Математика без формул
    Год выпуска: 1995
    Автор: Пухначев Ю., Попов Ю.

    Беседы о математике. Книга 1. Дискретные объекты
    Год выпуска: 2002
    Автор: Болтянский В.Г., Савин А.П.
    Жанр: Математика
    Издательство: МЦНМО
    ISBN: 5-94057-040-2
    Язык: Русский

    Мало ли...
    Логарифмическая линейка
    Год издания: 1958
    Автор: Кущенко В.С.
    Жанр или тематика: Математика
    Издательство: Судпромгиз
    Язык: Русский

    Счётная линейка
    Год выпуска: 1967
    Автор: Румшиский Лев Зимонович
    Издательство: "Наука"
    УДК: 681.143:518.5
    Язык: Русский
    Ответ написан
    Комментировать
  • Настройка Visual Studio Code?

    @alphaDzhem
    Продолжающий front-end разработчик и не только
    Здравствуйте!
    К вышеперечисленным плагинам я бы добавил:
    • Bracket Pair Colorizer - для подсветки парных скобок
    • Class autocomplete for HTML - для автодополнения атрибута class
    • highlight-matching-tag - для подсветки парных тегов
    • vscode-htmltagwrap - для оборачивание выделенного текста в тег
    • Live Server - для запуска локального сервера и автообновления странички в браузере
    • Settings Sync - для сонхронизации настроек редактора между несколькими рабочими местами
    Ответ написан
    Комментировать
  • Как сделать размытие фона как на яндекс дзене?

    Vlad_IT
    @Vlad_IT Куратор тега CSS
    Front-end разработчик
    Через JS такое можно сделать. Нужно высчитать средний цвет картинки (например вот jsfiddle.net/xLF38/818 ) и используя этот цвет, создать градиент по альфа каналу.
    UPD: Вот пример
    Ответ написан
    1 комментарий
  • Как сделать размытие фона как на яндекс дзене?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Комментировать
  • Как сделать слайдер с jquery?

    Madeas
    @Madeas
    UI / UX Designer, Frontend Developer
    Попробуйте поиграться со slick - centerMode: true и стилями
    Ответ написан
    2 комментария
  • Как сделать эффект при наведении как в Windows 10?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    1. Набор элементов с бордерами (блоки-флексы-гриды по вкусу).
    2. Сверху абсолютно позиционированный элемент в 200vh/200vw с фоном в виде радиального градиента из прозрачного в цвет фона body или что там еще снизу находится.
    3. В вышеупомянутых элементах текстам задаем z-index и они ложатся сверху градиента.
    4. На событие mousemove вешаем обработчик, который меняет координаты градиента.

    Получаем что-то такое:
    5b5f2943a7553328112612.pngcodepen

    P.S.: И в перспективе вставляйте картинки сюда, а не на левый хостинг.
    Ответ написан
    Комментировать
  • Как правильно перенести файлы в Google Диск?

    @NichitencoEvgh
    1. Создаешь в приложении Google Drive на твоем компе папку для этих файлов.
    2. Закидываешь туда свои 50 гб, и затем ждешь, когда они синхронизируются с облаком.
    3. В настройках приложения Google Drive снимаешь синхронизацию с этой папки с файлами на компе.
    4. Удаляешь папку с файлами в приложении Google Drive . Они остаются только в облаке.
    Ответ написан
    Комментировать
  • Почему не адаптируется html письмо?

    @aarty20
    Front-end / Wordpress developer
    Рекомендую тестировать письма вот этим сервисом https://putsmail.com, письма будет приходить как и должны, будут нативно открываться во всех почтовиках.
    Ответ написан
    3 комментария
  • Как сократить код?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Замену лучше делать регулярными выражениями, чтобы сразу все вхождения заменить, а не по одному.
    Какой bb-code на какой класс менять проще задать объектом-словарём.
    Что-то вроде такого:
    // словарь   bbcode: className
    const dict = {
    	'info': 'info-text',
    	'admin': 'admin-text',
    };
    
    var tds = document.getElementsByTagName("td");
    for (let k = 0; k < tds.length; k++) {
    	let td = tds[k];
      if (td.className !== 'posttdMessage') continue;
    
      let s = td.innerHTML;
      for(let bb in dict) {
    	  let re_open = new RegExp('\\[' + bb + '\\]', 'ig');
    	  let re_close = new RegExp('\\[/' + bb + '\\]', 'ig');
    	  s = s.replace(re_open, '<div class="' + dict[bb] + '">').replace(re_close, '</div>');
      }
      td.innerHTML = s;
    }
    Ответ написан
    Комментировать
  • Якоря для табов?

    Stalker_RED
    @Stalker_RED
    document.addEventListener("DOMContentLoaded", function(event) {
        let tab = document.querySelector(location.hash)
        if (tab) {
            tab.classList.add('active')
        }
    });
    Ответ написан
    2 комментария
  • Есть ли ограничение у Advanced Custom Fields на количество полей?

    @cema93
    WordPress разработчик
    Лимита нет, но ваша ситуация описана в документации, с путями решения: https://www.advancedcustomfields.com/resources/lim...
    Ответ написан
    Комментировать
  • Как сделать таймер с разными интервалами?

    ApeCoder
    @ApeCoder
    во обработчике таймаута установить следующий функцией setInterval на 60с
    Ответ написан
    Комментировать