Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как запретить js менять value?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Object.freeze()
    но "родной сайт" с большой вероятностью может поломаться.
    можете постоянно менять его обратно в setTimout
    Ответ написан
    Комментировать
  • Танцы с обьектом и деструктуризацией?

    Robur
    @Robur
    Знаю больше чем это необходимо
    newObject.email = oldObject.email

    в 2019 и ESXXX всё еще работает.

    Если вам надо сделать новый объект, в который включить нужные свойства со старого то pick из lodash (или свой велосипед):
    const x={email: 'aaa', name: 'bbb'}
    const y = _.pick(x, 'email') /// y={email: 'aaa'}
    Ответ написан
    Комментировать
  • Как работать с этим кодом?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если это в рамках вашей работы и у вас нет ни того кто это писал, ни сорсмапов ни исходников - то вручную ковыряясь, долго, медленно и старательно, попросив в два раза больше денег. Других вариантов для 10к строк кода особо нет. Если там один файл то можно попробовать разбить на более мелкие - наверняка один и тот же паттерн того как они были склеены. Скорее всего может немного помочь prettifier, хотя бы код сделает более читаемым синтаксически.
    Только убедитесь что это всё легально :)
    Ответ написан
    Комментировать
  • Как отправить большое видео на апі из react native?

    Robur
    @Robur
    Знаю больше чем это необходимо
    вот тут посмотрите: https://gist.github.com/nandorojo/c641c176a053a9ab...
    Если верить тому что там написано, надо просто путь к файлу передать в xhr. Я не проверял.
    Ответ написан
    Комментировать
  • Как правильно настроить webpack in production mode, если я использую webpackDevMiddleware, webpackHotMiddleware?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Примерно так как рекомендуют тут: https://webpack.js.org/guides/production/
    там конфиг, скрипты, опции.
    Ответ написан
    Комментировать
  • Почему код выполняется асинхронно?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Потому что это асинхронный код. Какого еще ответа вы ждали?
    Ответ написан
    Комментировать
  • Ошибка при установке firebase?

    Robur
    @Robur
    Знаю больше чем это необходимо
    В третьей строчке.
    Я бы погуглил за вас что это за хост, и кто туда может ломиться, но с картинки не скопируешь, а набирать руками мне еще более лень чем вам прочитать сообщение об ошибке.
    Ответ написан
    7 комментариев
  • Как начать изучать Javascript новичку в программировании?

    Robur
    @Robur
    Знаю больше чем это необходимо
    поиск "книга javascript" по тостеру - 380+ вопросов
    поиск "курсы javascript" - 260+ вопросов
    и куча других вариантов с сотнями вариантов вашего вопроса.

    совет научиться для начала пользоваться поиском - в чуть больше чем 100% случаев
    не буду нарушать статистику.
    Ответ написан
    Комментировать
  • Можно ли назначать обработчик события внутри другого обработчика?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Можно, но на hide надо этот обработчик удалять. иначе при каждом открытии у вас будет добавляться новый обработчик, и они все будут вызываться на закрытие. В вашем случае вы вряд ли увидите какие-то реальные проблемы, но это неправильно. поставьте рядом с removeClass console.log и откройте-закройте несколько раз - увидите в чем проблема.

    но насколько он верный?

    Зачем вы так делаете вообще? что мешает навешать сразу два обработчика на открытие и закрытие и все?
    Ответ написан
    9 комментариев
  • Как правильно обновить state компонента?

    Robur
    @Robur
    Знаю больше чем это необходимо
    И зачем при выполнении setState() делать копию массива users,

    Можете и не делать, если как-то еще дадите реакту знать что стейт поменялся и надо вызывать render.
    Ответ написан
  • Как заставить работать скрипт на JS вне страницы?

    Robur
    @Robur
    Знаю больше чем это необходимо
    На каждом тике таймера записывайте текущее время.
    на следующем тике получайте текущее время и смотрите разницу, на эту разницу корректируйте таймер.

    То есть у вас например тик раз в секунду. Но тут между тиками прошло вдруг 30 (вкладка поменялась, пользователь переключится в другое приложение, компьютер внезапно уснул - все что угодно) - значит надо отнять из оставшегося времени не секунду а 30.
    Ответ написан
    3 комментария
  • Проблема с EventEmitter в модуле PromiseFTP, как выловить утечку?

    Robur
    @Robur
    Знаю больше чем это необходимо
    https://github.com/nolanlawson/throw-max-listeners...
    это поможет сделать из предупреждения ошибку и отловить где это происходит.
    Можно просто взять идею и отдебажить без этой либы, достаточно отловить момент когда слушателей становится больше 10 и посмотреть на callstack.
    Ответ написан
    Комментировать
  • Инструмент для проектирования с помощью кода?

    Robur
    @Robur
    Знаю больше чем это необходимо
    То как вы описали задачу - можно сделать как угодно, вам хватит просто JS и пачки div чтобы нарисовать блоки.
    Библиотека для того чтобы "нарисовать блоки на экране с ограничениями и может даже найти их размеры" не нужна.

    Если стоит задача разработать какую-то систему - то берете и разрабатываете в соответствии с задачей, нужным функционалом, заданными ограничениями и так далее.
    Ответ написан
    Комментировать
  • Красивые каскады условий в JS?

    Robur
    @Robur
    Знаю больше чем это необходимо
    JS не самый лаконичный.
    Есть приемы чтобы сократить код, но это нормально если вы пилите мелкие проекты которые и проектом назвать сложно.

    например
    token && axios.get(...)
    не делайте так.

    вместо if (cook&&cook.ptq) token=cook.ptq; можно написать var token = cook && cook.ptg || null
    так можно.

    в целом - лучше писать более структурировано, чем более коротко.

    1) есть костыли но будет только хуже. пишите свои обертки под конкретные случаи и весь шум прячьте туда
    2) ничего не понятно. Если у вас условие прописано в коде - то вам не нужно ничего "прокидывать" - у вас уже и так понятно что оно выполнилось что чему равно внутри - просто пишете код исходя из этого.
    Ответ написан
  • Одинарные и двойные кавычки, какие лучше?

    Robur
    @Robur
    Знаю больше чем это необходимо
    де факто - в JS одинарные. Да и вообще к ним все больше тяготеют где бы то ни было.

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

    Юзайте одинарные в общем, ваши пальцы через годы скажут вам спасибо.
    Ответ написан
    Комментировать
  • Есть какой-то общий store для клиента на js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Mobx, он заметно ближе к vuex и для реакта великолепен тоже.
    Можно redux, но это больше дань моде, он не так удобен.
    Ответ написан
  • Как на самом деле работают типы данных в js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Это больше академический интерес, хочу разобраться как оно работает.

    Это вы сейчас в очень глубокую нору заглядываете.

    Движки стараются оптимизировать по максимуму, поэтому там очень много всего накручено помимо наличия int32.
    Я не удивлюсь если в вашем конкретно примере они сделают просто a=1.5 в обоих случаях и код будет идентичный до байта.
    а потом эту a подставят куда надо и оптимизируют там еще что-то, например b=c+a превратится в b=c+1.5

    кроме того, есть разные компиляторы - которые генерируют оптимальный код для частных случаев, или более "общий" но более медленный.

    Например для каждой переменной во время работы записывается какой тип в нее приходит, если этот участок кода вызывается достаточно часто - он помечается "горячим" и затем смотрится, если у вас в "a" всегда один и тот же тип, то генерируется быстрый код для этого типа, и ставятся проверки, если вдруг придет что-то другое, то этот код выкидывается и происходит возврат к более общему.

    И много чего другого, лишь бы быстрее работало.
    Даже если вы прямо сейчас разберетесь во всем, то завтра запилят новую оптимизацию где-то в глубине движка и что-то будет работать уже по другому.
    Ответ написан
    8 комментариев
  • Как при повторном вызове функции перезаписать выводимое значение?

    Robur
    @Robur
    Знаю больше чем это необходимо
    куча способов.
    например
    function hello() {  console.log('Hello, World!', Math.random()) }

    при повторном вызове там точно будет что-то другое.

    С другой стороны - сделать это невозможно, так как вывод в консоль нельзя "перезаписать", можно только добавить что-то еще
    Ответ написан
  • Вопрос по коду,строка 1?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Фазе loaded присваивается false,потому что на этой фазе скрипт может быть ещё не загружен?


    loaded это переменная, туда присваивается false чтобы onload в первый раз сработала, потом она поменяет его на true и при повторном вызове уже ничего делать не будет и сразу выйдет по условию.
    К загрузке скриптов это все не имеет никакого отношения
    Ответ написан
    Комментировать
  • Всегда ли асинхронная функция возвращает промис?

    Robur
    @Robur
    Знаю больше чем это необходимо
    если описана как async то да.
    Если обычная функция то она работает как обычная функция и асинхронной вы её делаете руками тем или иным способом
    Ответ написан
    Комментировать