Задать вопрос
Ответы пользователя по тегу JavaScript
  • Почему зануление значения в массиве понижает производительность?

    @Vitsliputsli
    Почему для работы с массивами более производительней сохранять данные и перезаписывать их на другое значение, а не удалять?

    Речь не про массивы, а про кольцевой буфер. Нам не нужно "удалять" элементы буфера (занулять отдельные элементы внутреннего массива), а раз не нужно, не тратим на это время.

    И каким образом Object.defineProperty нам ускоряет получения значения

    Речь про то, что автор накой-то хочет сделать обращение к объекту кольцевого буфера через нотацию query[0], как в массиве. В итоге делает только для 0, если для всех, то придется подменять методы, а значит в них будет больше действий, а значит будет медленней.
    Ответ написан
    Комментировать
  • Как проверить, что прислан валидный отпечаток FingerprintJS?

    @Vitsliputsli
    Надим Закиров, никак, клиентские данные генерируются клиентом, а значит он может сгенерить все что ему вздумается. Если отправляемые данные будут генерироваться особым образом, то это лишь немного усложнит задачу, клиент сгенерирует и такие данные.
    Ответ написан
  • На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @Vitsliputsli
    Абсолютно понимаю автора, он цитирует определение замыкания, а ему в ответ - определения не нужны, они лишь путают. Он спрашивает, а как тогда? Ему кто про мусорщик, кто про стек, и у него создается ощущение, что сами не могут договориться. Но кроме этого, автор прав, его функция - замыкание.
    Замыкания везде работают одинаково. Если функция содержит ссылки на переменные объявленные вне тела этой функции, и которые не являются ее параметрами - это и есть замыкание. Что значит фраза - все функции в javascript - замыкания? Дело в том, что в других языках область видимости может просто не позволить обращаться к внешним переменным, в таких языках функция не будет замыканием, но может быть возможность превратить функцию в замыкание через специальный синтаксис. В javascript таких манипуляций не нужно, поэтому в нем любая функция - замыкание.
    Т.е. замыкание это возможность в функции создать ссылки на внешние переменные. А здесь уже как следствие, работа мусорщика, если есть рабочая ссылка, то объект не уничтожается, а в приведенных примерах с 2 функциями она рабочая, так как можно получить доступ из корневого объекта, что удовлетворяет требованиям алгоритма mark-and-sweap. Но это следствие, а не принцип работы замыкания.
    Поэтому автор абсолютно прав - его функция это замыкание. Потому что ни в одном определении замыкания нет никаких упоминаний о мусорщике, а значит разницы нет на какие внешние данные ссылаться.
    Другое дело, все хотят видеть не замыкание, а его хитрое использование, а именно сохранение ссылки объявленной в замыкании при уничтожении ссылки во внешней функции. Не надо считать собеседующего бездарем, если бы вы ему объяснили свою точку зрения, он вполне мог бы и согласиться, хотя и не факт, многие собеседования проходят в виде допроса, что говорит о неадекватности или о слабой квалификации собеседующего, в такие конторы не стоит идти.
    Ответ написан
    1 комментарий
  • Возможно ли изучение Typescript как самостоятельного языка программирования?

    @Vitsliputsli
    Возможно ли изучение Typescript как самостоятельного языка программирования?

    Да, вполне. Это вполне самостоятельный язык, да, он компилируется в js, но это не мешает ему быть самостоятельным языком. Совсем не обязательно, что вам придется разбираться c js в процессе работы, но если придется, то лучше сперва изучить адекватную реализацию на ts, а потому уже смотреть неадекватную на js.
    Ответ написан
  • Почему при отправке данных с помощью fetch, они не приходят в PHP?

    @Vitsliputsli
    Документация:

    $_POST — Переменные HTTP POST
    Ассоциативный массив данных, переданных скрипту через HTTP методом POST при использовании application/x-www-form-urlencoded или multipart/form-data в заголовке Content-Type запроса HTTP.

    А у вас application/json, соответственно просто берите входные нераспарсенные данные.
    Ответ написан
    1 комментарий
  • Как задать метод перебора всех возможных сочетаний элементов?

    @Vitsliputsli
    Возьмите суммарную высоту всех цилиндров, поделите на 3 - это будет идеальная минимально возможная высота (ИМВВ).
    Далее просто перебирайте все варианты по принципу, кидаем в первую группу пока не превысит ИМВВ, потом во вторую пока не превысит ИМВВ. И так для всех возможных комбинаций, соответственно фиксируя высоту самой высокой группы.
    Ответ написан
    3 комментария
  • Как сделать временной цикл?

    @Vitsliputsli
    systemd/Timers
    Ответ написан
    Комментировать
  • Почему AJAX не передает данные в скрипт?

    @Vitsliputsli
    Вы в index.php ничего post-ом не передаете, соответственно "POST is empty".
    Ответ написан
  • Как сделать проверку на число?

    @Vitsliputsli
    Что-то вроде этого:
    do {
      var number = +prompt('Введите количество чисел, которое хотите записать: ');
    } while (isNaN(number))
    Ответ написан
    Комментировать
  • Почему не записывается текст в файл в связке JS + PHP?

    @Vitsliputsli
    Код php работает, он странный, он будет терять данные, если придет несколько одновременных запросов, но более-менее работает.
    На стороне клиента отправляйте через ajax (наверное jquery используете?), тогда все что нужно будет:
    <button onclick="$.get('/counter.php',{add:1})">button</button>
    Ответ написан
    Комментировать
  • Почему скрипт работает через раз?

    @Vitsliputsli
    А что хотите получить? Если нужно дописывать в файл введенные пользователем строки, то не нужно никакой form, допиливайте ajax. Если нужно после ввода пользователя уходить на http://films, то не нужен никакой ajax, поправьте action и сделайте submit в form.
    Ответ написан
    Комментировать
  • Можно ли как то подгрузить модули по url?

    @Vitsliputsli
    А в чем именно проблема? В webpack есть import/export, есть еще и require.
    Синтаксис разве что другой, что-то вроде (лучше уточните в документации):
    https://site.com/module.js: export function module module() { ... }
    И загрузка:
    import {module} from "https://site.com/module.js"
    Ответ написан
    Комментировать