Задать вопрос
  • Как подключить mongodb к node?

    Комментировать
  • Почему консоль выдает ошибку в callback ф-ии?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Почему консоль выдает ошибку Uncaught ReferenceError: arr is not defined?

    А почему не должно?

    function f1(myFunc) {
       myFunc(arr, block);
    }
    
    function showArr(arr, block) {
       arr[3] = arr[3] * 10;
       block.innerHTML = arr.join('_');
    }
    
    f1(showArr(arr1, out1))

    Вы в f1 тут не функцию передаёте, а результат её работы, то есть undefined. Потому что если после названия функции есть круглые скобки, то сначала эта функция вызовется, отработает, и будет использован результат её выполнения. Так как явного return нет, то showArr вернёт undefined. Таким образом эта запись:
    f1(showArr(arr1, out1)) эквивалентна этой: f1(undefined) С той лишь разницей, что выполнится код внутри showArr..

    Но так как код выполняются справа налево, то внутри f1() не успевает дойти до ошибки undefined is not a function потому что внутри f1() сначала пытается найти переменную arr. А откуда ей там взяться? Её нет ни в аргументах функции f1(), ни в вышестоящей области видимости, так как там arr1.

    Ну а во втором примере Вы как раз передаёте функцию как аргумент, по ссылке, не вызывая её f1(showArr, arr1, out1); Поэтому ошибку не выдаёт.

    почему третий элемент массива сохраняет условия и остается 40, хотя в условии я поставил задачу только для четвертого элемента массива?

    Опять же, а почему не должно? Вы изменяете массив arr1 по ссылке. То есть один и тот же массив изменяется и в showArr и в showArr2.
    function showArr(arr, block) { // arr = [1, 2, 3, 4, 5, 6, 7, 8]
       arr[3] = arr[3] * 10; // поменяли 4ый элемент, массив стал равен [1, 2, 3, 40, 5, 6, 7, 8]
    }
    
    function showArr2(arr, block) { // arr = [1, 2, 3, 40, 5, 6, 7, 8]
       arr[4] = arr[4] * 100; // поменяли 5ый элемент, массив стал равен [1, 2, 3, 40, 500, 6, 7, 8]
    }
    
    f1(showArr, arr1, out1); // и тут
    f1(showArr2, arr1, out2); // и тут Вы передаёте один и тот же массив. Массив это ссылочный тип данных. В обоих обработчиках будет один и тот же массив, а не 2 одинаковых
    Ответ написан
    4 комментария
  • Какие методы использовать что-бы вывести значения объектов в html?

    LenovoId
    @LenovoId
    svg, css,js
    Ответ написан
    Комментировать
  • Новая материнская плата для R9 5950x или новая сборка на 7950x?

    xez
    @xez Куратор тега Железо
    TL Junior Roo
    Менять мать точно не стоит. Прирост производительности будет минимальным.
    Охлаждение как-бы можно заменить, но я бы посмотрел на реальные сценарии использования сначала. Если у вас процессор загружен часто и температура растёт - можно и поменять, если какие-то кратковременные нагрузки и температура вырасти не успевает - менять, кмк не стоит.
    Насчёт памяти - это вообще от ваших задач зависит. Не хватает - смело добавляйте. Если той, что есть достаточно - вы не получите никакой пользы от дополнительного объёма озу.
    Получается, у вас один путь апгрейда - увеличивать объём озу.

    Если не хватает процессора, то конечно придётся менять все сразу: мать+проц+память.

    Насчёт целесообразности перехода на новый сокет: скорее всего, сейчас соотношение цена/производительность будет на стороне вашей текущей конфигурации.
    Ответ написан
    Комментировать
  • Как автоматизировать и чем заменить excel?

    @rPman
    Если вам хватало экселя, то не надо никаких 'приложений'.
    На планшете браузер, в нем любое облачное решение типа google forms (или тот же яндекс).

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

    Браузер в отличии от приложения не привязывает решение к версии, ос, и т.п. и способен запускаться (при наличии хоть какой то адекватной верстки под разные размеры экрана) хоть на планшетнике хоть на компьютере.
    Ответ написан
    6 комментариев
  • Как заставить def работать?

    Vindicar
    @Vindicar
    RTFM!
    Поучи язык. Просто поучи, без ботов.
    def объявляет функцию, но не вызывает её.
    Ты её объявляешь внутри record_volume(), но ничего с ней не делаешь.
    Ответ написан
    Комментировать
  • Почему не работает метод send_keys?

    Vindicar
    @Vindicar
    RTFM!
    <input type="search" autocomplete="off" class="ant-select-selection-search-input" role="combobox" aria-haspopup="listbox" aria-owns="rc_select_3_list" aria-autocomplete="list" aria-controls="rc_select_3_list" aria-activedescendant="rc_select_3_list_0" value="" id="rc_select_3" style="opacity: 0;" aria-expanded="false" readonly="" unselectable="on">


    readonly="" unselectable="on"

    Может, поэтому?
    Ответ написан
    1 комментарий
  • Как добавить беспризорный коммит в ветку?

    @kalsc12345
    Неизвестный человек.
    git checkout master

    git cherry-pick d77011864fe1f5cf3c86ad4eff682772cd518efb

    git stash
    git checkout d77011864fe1f5cf3c86ad4eff682772cd518efb
    git commit --allow-empty
    git checkout master
    git stash pop
    Ответ написан
    2 комментария
  • Какая есть бесплатная программа для 3D с поддержкой скриптов?

    Есть бесплатный Blender, в котором можно писать скрипты на Питоне и плагины тоже на нем.

    Плюс, там есть геоноды, с помощью которых можно визуальным программмированием делать процедурное моделирование.
    Ответ написан
    4 комментария
  • Как декодировать строку в js, angularjs?

    GavriKos
    @GavriKos
    Да она вроде и так в нормальном виде.
    Ответ написан
    Комментировать
  • Как думаете, с чем связана ошибка и как ее исправить?

    @res2001
    Developer, ex-admin
    Про size_t - если вы на 100% уверены, что у вас никогда не случится потеря данных при преобразовании из 8 байтного беззнакового size_t в 4 байтный знаковый int, то можете сделать явное преобразование типов (cast). Но гораздо правильней для размера (всего чего угодно) использовать size_t (а не int), как это давно уже делают в std.
    Про strncpy - в некоторых случаях она может быть не безопасной. Если вы на 100% уверены, что в вашем случае она точно безопасна, то можно забить на ошибку, объявить макрос, который указан в тексте ошибки и на этом проблема будет исчерпана. Но есть безопасные аналоги строковых функций у них к имени добавляется суффикс _s. В вашем случае безопасный аналог strncpy_s. Используйте безопасные функции. Безопасные функции немного медленней работают, за счет дополнительных проверок и т.п.
    Ответ написан
    6 комментариев
  • Как думаете, с чем связана ошибка и как ее исправить?

    Так там же явно написано:
    C4267 - size_t действительно теоретически быть больше, чем int
    C4996 - strncpy действительно может небезопасной.

    Там же явно написано о том, как их можно исправить - читай внимательно.
    Ответ написан
  • Какую архитектуру использовать в ASP.NET Web API?

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

    Может быть и супер сложный clean architecture + DDD + CQRS.
    Может быть Vertical Slice.
    А может быть и предельно простая архитектура даже без разделения на проекты (крайне недооценённый вариант на самом деле)

    У всего есть свои плюсы и минусы.
    Ответ написан
    Комментировать
  • Как правильно писать функцию вызова со скобками или без?

    yarkov
    @yarkov Куратор тега Vue.js
    Помог ответ? Отметь решением.
    Во-первых где тег Vue? А во-вторых в документации всё есть.
    Ответ написан
    Комментировать
  • Могу я задать вопрос по коду, как мегаджун JS?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    1) Плохой код, который выполняет задачу, лучше чем отсутствие кода
    2) Перед работой составьте примерный план, например: "сначала получаем данные, потом с ними делаем это или это, потом выводим..." Это помогает не лепить откровенную фигню по ходу дела и не переписывать все по 10 раз.
    3) Смысл рассматривать простыню из кода новичка отсутствует, так как это похоже на оценку походки будущей фотомодели по первым шагам в ходунках. Никто не пишет хороший код сразу, учиться и писать много - лучший путь обучения.
    4) Смотрите на чужие готовые решения, думайте как использовать интересные приемы, именно свои выводы и ошибки делают вас программистом+, а не гов*окодером. Задатки и желание у вас есть, значит все получится.
    Ответ написан
    Комментировать
  • Почему данный код выдает ошибку?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Внутри скобок создаётся и тут же вызывается функция. (IIFE – immediately invoked functional expression)

    this для функции, объявленной как function определяется в момент её вызова. Если её вызывают будто она свойство объекта, этот объект будет this'ом.

    Внутри скобок function сама по себе, ни к кому не приделана, разве только к Глобальному. В данном случае window. Поэтому там this === window.

    Ну а window это не user. И там нет искомого свойства, скорее всего. Или есть, но неожиданно другое.
    Ответ написан
    Комментировать
  • Почему данный код выдает ошибку?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Потому что внутри IIFE this - window.

    https://habr.com/ru/post/149516/

    Уточнение: в strict режиме (введен в es5) this по умолчанию - undefined
    а с es6 strict режим включается автоматически если использовать в коде любую синтаксическую конструкцию из es6+
    Ответ написан
    2 комментария
  • Почему счетчик начинает работать только со 2 клика?

    vool
    @vool
    Разработчик
    Запомните:
    когда мы так пишем: a++, то переменная возвращает сначала старое значение а потом увеличивает
    а так: ++а, сначала увеличивает значение и потом возвращает новое значение
    Ответ написан
    Комментировать
  • Почему счетчик начинает работать только со 2 клика?

    Fragster
    @Fragster
    помогло? отметь решением!
    btn.textContent = ++count;
    Ответ написан
    Комментировать