• Как подбирать музыку под текст?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Даже вопрос некорректно сформулирован, чтобы как-то можно было бы что-то посоветовать.
    А именно:
    1. Что такое настроение и в чём оно измеряется?
    2. Что значит стиль текста в вашем понимании?
    3. Текст - уже существует или нужно сочинять его через НС?
    4. Музыка - уже существует или нужно сочинять её через НС?
    5. Что хотите увидеть на выходе? (3 примера).
    Ответ написан
    1 комментарий
  • Как вернуть имя переменной из функции?

    E1ON
    @E1ON Куратор тега JavaScript
    Programming, Gamedev, VR
    const obj23 = { 
      a: 23,
      b: 93
    };
    console.log(Object.keys({obj23})[0])
    Ответ написан
    Комментировать
  • Какие минусы у vue-cli?

    @FODD
    В контексте мелких и средних проектов у vue-cli (далее по тексту буду иметь ввиду и остальные клиенты других фреймворков) одни плюсы - за условные 5 минут вы получаете типовой конфиг, который можно расширить свои плагинами и получить рабочую сборку.

    Большой же проект предполагает, что:
    1) может потребоваться нестандартная сборка, несколько точек входа со своим конфигом и прочие веселые прелести
    2) на проекте работает специалист, который знает как работает сборщик и умеет написать к нему необходимый конфиг сам с нуля
    3) у клиентов есть свои конфиги, которыми нужно учиться пользоваться в ДОПОЛНЕНИЕ к конфигам сборщика. Не всем нравится учиться лишним вещам

    И вот тут начинаются проблемы - клиент генерит свой конфиг, и примешивает к нему то, что вы дописали. При этом что он там в итоге нагенерил смотреть не особо и удобно. В итоге все выливается в ситуацию "что эта тулза там ещё сгенерила, мне надоело перебивать правила".

    Если проект полностью подходит под стандартный конфиг vue-cli - ничего плохого в его использовании нет.

    У angular cli в этом плане получше - там можно выбрать, что делать с кастомным конфигом - примешать к стандартному, или заменить им стандартный. У vue, несколько я знаю, такой возможности нет.

    P.S. у меня vue-cli не может нормально собрать свежеесозданный проект с vuetify, приходится понижать версию sass-loader. За такие "фишки" отдельные лучи добра.
    Ответ написан
    Комментировать
  • Почему не сворачиваются все элементы с одинаковыми классами?

    @Lynatik001
    ну во 1 кучу проверок и тдп- можно заменить на 1 строчку. elem.classList.toggle("display");
    она добавляет или уберает класс. - если он есть у тега - удаляет, если нету - добавляет. и не надо будет кучи проверок. ну а по поводу вопросса. то, да у вас же для всех добавляется. надо уметь добавлять конкретно тому на который кликаешь
    if (text.is(':visible')){
    text.addClass('display');
    $('.arrow_down').removeClass('rotate');
    }
    else {
    text.removeClass('display');
    $('.arrow_down').addClass('rotate');
    }
    }
    Ответ написан
    2 комментария
  • Какие существуют бесплатные сервисы для расчета расстояний между координатами на карте?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Математика бесплатна. Формула расчёта длины на сфере (вам же точность не важна) выведена ещё тысячу лет назад.
    Ответ написан
    3 комментария
  • Как реализовать функцию с множеством AJAX-запросов, которая возвращает их ответы?

    dimovich85
    @dimovich85 Куратор тега JavaScript
    https://u-academy.net/
    async...await, Promise.allSettled (очень свежий, с пылу с жару - можно обжечься).
    Ответ написан
    Комментировать
  • Как разбить большой файл в node.js на несколько поменьше?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Этот вопрос более общий, чем Ваш случай с node.js и даже более общий, чем JavaScript вообще. Хорошо разделить свой код на части, выделить абстракции, дать им названия и объединить их в одно целое - это одна из главных задач программиста на любом языке.

    Я сначала отвечу на частный вопрос по Node.js и JavaScript, а потом объясню эту тему глубже. Для Node.js есть require, при помощи которого можно импортировать из других модулей. Это реализация Dependency Lookup, т.е. мы имеем несколько модулей и каждый из них знает, от каких он зависит и может запросить менеджер зависимостей дать ссылку на то, что экспортирует другой модуль (в данном случае файл). Например, мы можем сделать require('./matrix.js') или require('./lib/matrix.js') и таким образом получим ссылку на то, что экспортирует matrix.js через module.exports = { ... };. Пример кода с импортом: names.js

    В этот самый module.exports мы отдаем ссылку на функцию ил на объект или массив, который содержит все, что мы хотим экспортировать (можно экспортировать и скалярное значение, но это практически не нужно). В подавляющем большинстве случаев экспортируют объект (используя его как справочник экспортируемых идентификаторов), чуть реже одну функцию (иногда фабрику или функцию обертку) или конструктор прототипа (или класса). Пример кода с экспортом: lib/submodule2.js

    Но можно импортировать зависимости целыми массивами, например тут: main.js Если посмотреть чуть шире ноды, на JavaScript, то есть способ импорта/экспорта через ключевые слова import и export. Примеры: import.mjs и export.mjs

    Документацию модно почитать тут:
    1. Модули для Node.js через require/module.exports: https://nodejs.org/api/modules.html
    2. Модули для Node.js через import/export: https://nodejs.org/api/esm.html
    3. Модули для JavaScript через import/export: https://developer.mozilla.org/en-US/docs/Web/JavaS... и https://developer.mozilla.org/en-US/docs/Web/JavaS...

    Но это все техническая реализация, гораздо важнее то, как мы разбиваем наш код на модули или абстракции. Тут нужно ввести понятие связывание и классифицировать методы связывания (частей кода):
    1. Через общие данные (самое жесткое связывание)
    2. Через вызовы (обычно между модулями с экспортом и импортом)
    3. Через события (самое легкое, между слабосвязанными программными компонентами)

    Если из разных функций, прототипов и классов (их методов) Вы обращаетесь к одним и тем же данным, а тем более, меняете их, то это очень плохо. Могут быть общие идентификаторы такие, но это только константы, которые не меняются из разных мест. Могут быть группы функций, которые должны видеть одну переменную и менять ее, но их нужно объединять друг с другом через замыкания и частичное применение. И такие, связанные через данные конструкции (сильно связанные) должны находиться только внутри одного файла. Изменение одних и тех же данных из разных мест, может привести к формированию сложного и непредсказуемого состояния, а в конечном итоге к ситуациям, когда комбинаторный взрыв состояния не может быть адекватно обработан программой, все случаи просто не покрыты условиями и мы даже не можем себе представить и учесть в коде все случаи.

    Вызовы - это гораздо более безопасный способ взаимодействия программных компонентов, поэтому мы используем его для интерфейса между модулями и между классами и прототипами. Мы экспортируем/импортируем коллекции функций (API) или коллекции классов, что предполагает, что все взаимодействие между ними будет через вызовы (даже обращение к свойствам может быть перехвачено геттерами и сеттерами). Об этом способе связывания модулей я уже выше много сказал.

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

    Есть еще один средний способ между вызовами и событиями, это callback (и listener). При помощи него события и сделаны, практически, в метод .on(name, callback) (или его аналоги) передается функция callback в качестве аргумента. На этом способе построено асинхронное программирование, в том числе такие способы связывания, как асинхронная последовательная композиция и асинхронная параллельная композиция функций, чеининг и промисы.
    Ответ написан
    1 комментарий
  • Когда использовать static метода?

    @dmitryKovalskiy
    программист средней руки
    использование слова static оправдано для методов и классов, где логически отсутствует необходимость в множественных объектах. Классический пример - математические функции. Объекты класса "калькулятор" не нужны никому. Поэтому в ООП языках, как правило, класс Math и ему подобные - статичны.
    Ответ написан
    5 комментариев
  • Когда использовать static метода?

    @matperez
    К примеру есть такой класс "Человечество". У человечества есть характеристика "средний рост", она не применима к отдельному человеку. Метод рассчитывающий средний рост и саму переменную которая его хранит нужно сделать статической.

    Экземпляром класса "Человечество", является отдельный человек. Отдельный человек можно иметь свой конкретный рост, вес, цвет волос и так далее, он может ходить, есть, разговаривать - вот эти методы и переменные должны быть динамическими.
    Ответ написан
    Комментировать
  • Какой следующий этап в изучении Vue после того как научился создавать блог с использованием компонентов и Vuex?

    Xuxicheta
    @Xuxicheta
    инженер
    Тестирование, typescript, сложные формы с изменяемой схемой валидации, просто большой проект с сотнями компонентов и множеством связей.
    Ответ написан
    2 комментария
  • Какой следующий этап в изучении Vue после того как научился создавать блог с использованием компонентов и Vuex?

    @Barmunk
    попробуйте на vue сделать jivosite:
    - чат в реальном времени
    - пул операторов
    - перевод чата другому оператору в реальном времени
    - каналы доставки (емейл, вк, твиттер, фб и т.д.)
    - легкая установка одним js скриптом без отдельной библиотеки аля яндекс-метрика
    - кастомизируемый редактор дизайна виджета в реальном времени
    Ответ написан
    Комментировать
  • Какой следующий этап в изучении Vue после того как научился создавать блог с использованием компонентов и Vuex?

    @sQoren
    1. Разберитесь с vue-router попробуйте создать несколько именованных маршрутов на одной странице, меняющихся в зависимости от адреса. Проработайте динамические пути.
    2. Освойте какой-нибудь ui-фреймворк - vuetify, vue-material, element.
    3. Разберитесь как работают хуки.
    4. Поэкспериментируйтя с vue ui, создайте проект с нуля добавив необходимые плагины и зависимости, так вы научитесь обходится без nuxt.
    4. Mixin'ы для компонентов и глобальные.
    5. Научитесь использовать инструмент аутентификации Oauth 0 или 2.
    Ответ написан
    Комментировать
  • Как отправить форму на почту помощью JS?

    @andreysuha
    Что то знаю
    Никак, js не работает с email нужно делать запрос на бекенд ajax а там уже отправлять email
    Ответ написан
    Комментировать
  • Как вывести картинку вместо alt?

    Hecc
    @Hecc
    Frontend. Дизайн. Шрифт.
    В целом, легко можно отследить на клиенте проблемные картинки.
    Единственное, скрипт перебирает все картинки на странице. Если есть возможность на проблемные картинки навесить какой-то класс, чтобы как-то уточнить выборку я бы так и сделал.

    const checkImagePromise = ( url ) => new Promise( (resolve, reject ) => {
        let img = new Image();
            img.addEventListener('load', resolve );
            img.addEventListener('error', reject );
            img.src = url;
    });
    
    document.addEventListener('DOMContentLoaded', () => {
        // Вот тут выбираем все картинки в документе. Этот селектор можно уточнить
        let images = document.querySelectorAll('img');
        images.forEach( img => {
            checkImagePromise( img.src )
                .then( res => {
                    // С картинкой все ок - ничего не делаем
                })
                .catch( error => {
                    // С картинкой ошибка - ставим заглушку
                    img.src = 'refreshing.svg';
                });
        });
    });
    Ответ написан
    2 комментария
  • Строка в языках программирования это "массив символов"?

    @Forked
    В JS cтрока является встроенным фундаментальным объектом.
    Это означает, что формально это объект, но к нему может быть применен особый синтаксис. И этот синтаксис обрабатывается на уровне интерпретатора языка, а не каких-либо библиотек.

    Вот тут как раз случай, когда индексный оператор [idx] является иным способом вызова метода String.charAt(idx).
    Это синтаксический сахар, появившийся только в ECMA-5.
    Ответ написан
    2 комментария
  • Являются ли данные выражения аналогичными в рамках движка JS?

    @grinat
    node --print-bytecode твой_скрипт.js там все увидишь

    function hueta() {
      var obj = {test: {t1: 1, t2: 2}};
    ///////////////////
      var test = obj.test;
    
      console.log(test, test);
    ///////////////////
      console.log(obj.test, obj.test)
    }
    
    hueta()


    [generating bytecode for function: hueta]
    Parameter count 1
    Frame size 48
       76 E> 0x1f2b750fd252 @    0 : 91                StackCheck 
       93 S> 0x1f2b750fd253 @    1 : 6c 00 01 08 f9    CreateObjectLiteral [0], [1], #8, r2
             0x1f2b750fd258 @    6 : 1f f9 fb          Mov r2, r0
      154 S> 0x1f2b750fd25b @    9 : 20 f9 01 02       LdaNamedProperty r2, [1], [2]
             0x1f2b750fd25f @   13 : 1e fa             Star r1
      163 S> 0x1f2b750fd261 @   15 : 0a 02 06          LdaGlobal [2], [6]
             0x1f2b750fd264 @   18 : 1e f8             Star r3
      171 E> 0x1f2b750fd266 @   20 : 20 f8 03 08       LdaNamedProperty r3, [3], [8]
             0x1f2b750fd26a @   24 : 1e f9             Star r2
      171 E> 0x1f2b750fd26c @   26 : 4d f9 f8 fa fa 04 CallProperty2 r2, r3, r1, r1, [4]
      210 S> 0x1f2b750fd272 @   32 : 0a 02 06          LdaGlobal [2], [6]
             0x1f2b750fd275 @   35 : 1e f8             Star r3
      218 E> 0x1f2b750fd277 @   37 : 20 f8 03 0c       LdaNamedProperty r3, [3], [12]
             0x1f2b750fd27b @   41 : 1e f9             Star r2
      226 E> 0x1f2b750fd27d @   43 : 20 fb 01 0e       LdaNamedProperty r0, [1], [14]
             0x1f2b750fd281 @   47 : 1e f7             Star r4
      236 E> 0x1f2b750fd283 @   49 : 20 fb 01 10       LdaNamedProperty r0, [1], [16]
             0x1f2b750fd287 @   53 : 1e f6             Star r5
      218 E> 0x1f2b750fd289 @   55 : 4d f9 f8 f7 f6 0a CallProperty2 r2, r3, r4, r5, [10]
             0x1f2b750fd28f @   61 : 04                LdaUndefined 
      242 S> 0x1f2b750fd290 @   62 : 95                Return
    Ответ написан
    Комментировать
  • Какие должны быть скиллы и знания у junior/middle front-end разработчика?

    anyd3v
    @anyd3v
    Вам не надоело подобные вопросы плодить? Позиция junior/middle/senior сильно зависит от компании, как пример у skype была позиция js разработчика с 10+ опыта и багажем скиллов каких у многих сеньеров нет. Вывод сделайте сами.
    Ответ написан
    3 комментария
  • Являются ли данные выражения аналогичными в рамках движка JS?

    hzzzzl
    @hzzzzl
    наверняка каждый раз будет смореть свойство, но это не точно

    var obj = {
      counter: 0,
      get count() {
        this.counter++
        return this.counter
      }
    }
    
    console.log(obj.count, obj.count, obj.count)
    // 1 2 3
    Ответ написан
    1 комментарий
  • Почему могут изменяться файлы при отправке по FTP?

    RayMefise
    @RayMefise Автор вопроса
    Java, PHP, C, C++, C#, .NET, QT
    Вопрос был решен установкой другой версии драйвера WiFi
    Ответ написан
    Комментировать
  • Как развернуть сервер на nodejs под убунту и привязать домен?

    @soofix
    Народ, вы и есть гугл, уже давно подобные вопросы ранжируются в топе. Для рунета такие вопросы очень даже нужны. И если вы даете здесь ссылки на хорошие статьи, статьям бонус, и людям проще искать.
    Ответ написан
    Комментировать