Задать вопрос
  • Можно ли извлечь интерактивную карту сайта в пдф-файл или в файл-картинку?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Программно или что? Или просто зайти один раз сделать?
    Через дев тулзы в разметке правой кнопкой по нужной ноде - capture node screenshot, сделает скриншот html элемента.
  • Подключаю JS при обновлении страницы about:blank почему?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    И как интересно Вы предлагаете нам на это ответить? Откуда нам значть что у Вас там накодировано...
  • Как работает замыкание в js?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    fleshik, да, при втором вызове всё абсолютно точно так же, кроме значения. Будет не -10, а -9, а результат соответственно -8
  • Как работает замыкание в js?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    fleshik, Переменная, но не собственная для функции. Собственной для функции она бы была если бы была объявлена через соответствующее ключевое слово - var/let/const, либо была бы аргументом функции.

    А так, запись counter = counter + 1 в движке выполняется примерно так(код выполняется справа налево):
    1) прибавить 1 к
    2) counter
    3) Что такое counter? Идём искать.
    4) Нашли снаружи что counter это -10 (при первом вызове)
    5) отлично, значит прибавляем 1 к -10, получаем -9
    6) Ага, оператор =, значит нужно результат операции сложения поместить в какую то переменную
    7) В какую? counter? Ищем counter - найдено снаружи.
    8) Меняем значение снаружи на -9.
  • Как работает замыкание в js?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    fleshik, у функции нет своей собственной переменной. Ни при первом вызове, ни при каком либо последующем.
  • Как в css сделать так чтоб текст был всегда прижат к низу, не зависимо тайтл с переносом или нет?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Не нашлось таких вопрос больше, да?
    https://qna.habr.com/search?q=%D0%BA%D0%BD%D0%BE%D...

    Правила сервиса
    2.2 Убедиться в том, что в сети Интернет, и на страницах Сервиса в частности, отсутствуют ответы на данный вопрос. Специально для этого талантливые IT-специалисты создали и развивают поисковые системы Яндекс и Google.
  • Как работает замыкание в js?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    fleshik, Ну и ещё накину:
    function createCounter() { 
       let counter = 0
       counter = counter - 10
    
       const myFunction = function () { 
         counter = counter+1
         return counter 
       }
     
       return myFunction 
    } 
    
    let z = createCounter() 
    let y = createCounter()
    let x = createCounter() 
    
    console.log(z()) // -9 
    console.log(z()) // -8
    console.log(z()) // -7
    
    console.log(y()) // -9
    console.log(y()) // -8
    
    console.log(x()) // -9 
    
    console.log(z()) // -6
  • Как работает замыкание в js?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    fleshik,
    то есть
    let z = createCounter()
    1) Создалась новая переменная counter,
    2) ей задалось значение -10,
    3) создалась новая функция myFunction
    4) Создалось новое замыкание для myFunction на counter с его текущим значением -10
    5) Вернулась функция myFunction и сохранилась в переменную z

    z()
    1) Вызвалась функция сохранённая в переменную z
    2) функция увидела что внутри неё нет собственной переменной counter и пошла искать его в своём замыкании.
    3) нашла counter в замыкании и поменяла там значение
    4) Вернула новое изменённое значение.

    Следующий вызов z() делает то же самое:
    1) Снова вызвалась
    2) Снова нашла в замыкании
    3) Снова изменила значение
    4) Снова вернула изменённое значение.

    И при каждом вызове z() функция будет ходить в замыкании и менять в нём значение, а потом его возвращать.

    При каждом вызове createCounter происходит тоже самое, но НОВОЕ.
    То есть создаётся новая переменная counter, новая функция myFunction, у которое своё собственное новое замыкание на counter, с которым эта функция будет работать при вызове.
  • Как работает замыкание в js?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    fleshik,
    первый вызов console.log(z()) и в этом месте counter = counter+1; counter стал равен (-9)
    Верно

    второй раз запускаем код console.log(z())
    То происходит то же самое. counter = counter + 1. А так как counter равен на текущий момет, после первого вызова, -9, то counter = -9 + 1.

    Может Вам будет понятнее если переписать код так(это не одно и то же, но иллюстрирует что примерно происходит под капотом):
    let counter = -10;
    
    function count() {
      counter = counter + 1;
      return counter
    }
    
    console.log(count()) // -9
    console.log(count()) // -8
    console.log(count()) // -7
    console.log(count()) // -6


    То есть при каждом вызове count изменяется внешняя переменная. В данном случае она глобальная.

    В вашем изначальном примере происходит то же самое, только переменная не в глобальной области видимости, а в личной области видимости функции, которая вернулась из createCounter.

    Таким образом, каждый раз когда происходит вызов createCounter создаётся область видимости для функции myFunction, к которой myFunction обращается каждый раз, когда происходит операция с counter.
  • Как работает замыкание в js?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    fleshik, это читали? https://learn.javascript.ru/closure
    При каждом вызове создаётся лексическое окружение в котором была создана функция. То есть доступная только функции область памяти так сказать. Оттуда и берётся.
  • Разница между JavaScript и HTML5 игрой?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    html5 игра этож термин для обозначения игр которые с использлванием canvas, то есть js и не обязательно с webgl
  • Как получить get на текущую сформированную страницу?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    sharpsss, аа, ссылку в буфер, ну тогда да. Вы просто говорили про dom в буфер..
    копировать в буфер обмена сгенерированую js ом новую страницу с текущим dom деревом

    Но если новая страница создана на сервере у неё свой урл, то да, это другое дело.
  • Как получить get на текущую сформированную страницу?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    sharpsss, так если сервер будет генерировать новую страницу, то зачем тогда буфер? Не понятно..
    Ну и представляете что это будет за помойка спустя n времени использования?
  • Как получить get на текущую сформированную страницу?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    sharpsss, Тогда уж лучше конвертировать какой-то блок с результатом в картинку и делиться картинкой
  • Как получить get на текущую сформированную страницу?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    sharpsss, ну так тогда тем более если количество исходов может меняться, то тут либо генерация на лету по параметрам, либо прегенерация по факту добавления нового параметра.

    В буфер копировать страницу? И что дальше? html string чтобы один пользователь другому отсылал?
  • Как получить get на текущую сформированную страницу?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    sharpsss, Ну тут всё зависит от дизаина.
    Если просто результат теста - то отдельные страинцы, на которые идёт редирект после прохождения теста - выглядит ок вариант. Однако, если тестов много, и на каждый тест делать отдельные страницы по количеству возможных исходов - то уже выглядит геморно и будто бы сделать одну страницу, которая будет генерироваться по гет параметрам - профитнее. А главное при появлении новых тестов - нужно будет лишь добавить данные в бд и профит.

    А сохранять всю страницу в отдельный файл, подменять урл это что-то прям оверхед.
  • Каковы лучшие практики обрабатывания нажатия клавиш с клавиатуры на сайте?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Мне нужно, чтобы карусель листалась стрелочками

    А если карусели станет 2 на странице, то что тогда?
    Так что согласно Web Content Accessebility Guidline карусель стоит реализовывать так

    Там же сможете найти и пример для модалки. Но, в целом, логика такая - при вызове модалки вешать на документ слушатель нажатия кнопки esc, а в обработчике закрытия модалки - делать отписку от этого слушателя, чтобы не течь по памяти.
  • Как сделать чтобы при загрузке страницы автоматически воспроизводилось аудио?

    MrDecoy
    @MrDecoy Куратор тега CSS
    ну вообще за такое по рукам бьют, так как это не дружественная для пользователя практика. И браузеры такое помнится мне прекрывали. То есть звук должен включаться только по взаимодействию пользователя.
  • Почему не работает onChange для кастомного селектора?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    а с чего вдруг див должен реагировать на несуществующее у него событие change?
    И ладно бы внутри дива был какой-то инпут, который бы эмитил это событи, но нет же...

    Мне кажется, Вам стоит перестать учить реакт и для начала выучить основы веб разработки. То есть HTML, CSS и JS.
    Иначе такую чушь будете делать на реакте, что нормальным разработчикам будет грустно потом на это даже смотреть, не говоря уже о сопровождении, если вдруг достанется..