• Есть ли private, public, protected, static в JS?

    Xuxicheta
    @Xuxicheta
    инженер
    Есть/будут приватные поля начинающиеся с #. https://jsfiddle.net/7263ms4k/ (в хроме есть, в лисе нет)
    static есть
    А так, имитация всего этого есть в typescript

    Можно запилить приватные поля как переменные в конструкторе и передавать их в методы через замыкание. Но придется делать каждый раз новые методы для каждого экземпляра. Типа так https://jsfiddle.net/melchiorio/4ztL3qkx/
    Можно хранить в WeakMap используя this как ключ, типа так https://jsfiddle.net/melchiorio/z7afuec5/
    Ответ написан
    Комментировать
  • Есть ли private, public, protected, static в JS?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Приватных пока нет (но с помощью транспайлеров как бы есть):
    class Foo {
      #private = 42;
    }


    Статичные есть:
    class Foo {
      static property = 42;
      static method() {...}
    }
    Ответ написан
    Комментировать
  • Почему приложение ведет себя странно при аутентификации?

    rockon404
    @rockon404
    Frontend Developer
    У вас на сервере id это глобальная переменная. Вы правда не видите в этом проблемы?
    На сервере одновременно могут обрабатываться сообщения от тысяч клиентов, но из-за использования глобальной переменной все ответы уйдут тому, кто подключился последним.

    id = Object.keys(clients).length + 1;
    А эта, на первый взгляд, безобидная строка будет присваивать существующие id c последующей потерей активных соединений из объекта clients.
    Ответ написан
    3 комментария
  • Какого размера числа способен сосчитать js?

    Stalker_RED
    @Stalker_RED
    Это не от языка зависит, а от движка.

    Посмотрте константу Number.MAX_SAFE_INTEGER // -> 9007199254740991
    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    В другой среде число может отличаться.
    (другой браузер, другая операционка, телефон, вот это все)
    Если сегодня вы не нашли систему, где оно отличается, это еще не значит, что завтра такая не появится.
    Ответ написан
    1 комментарий
  • Как сделать таймаут в цикле Map?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Это немного так не работает. forEach (как и map, reduce и.т.д.) так сказать синхронные функции, они не дожидаются выполнения переданной функции. Для такой задачи вам нужно либо писать на обычном цикле (for, while), либо использовать Promise.all
    UPD: ой, невнимательно прочитал вопрос, вам нужно последовательно выполнить код над каждым элементом цикла links с задержкой между каждым элементом. Тут Promise.all вроде как не подойдет, но обычный for-in, for-of отлично подойдут.
    Ответ написан
    1 комментарий
  • Как сделать таймаут в цикле Map?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Чтобы уважить требования одного API отправлять не более 3 запросов в секунду, я писал обертку, типа очереди задач. Задания хранятся в массиве. И сохраняются метки времени последних трёх запросов.
    Перед исполнением очередного задания текущее время сравнивается с нулевым в массиве (если в массиве уже есть 3 отметки) и либо можно выполнять запрос, либо надо подождать – запускается таймаут на разницу времен.

    Вам такого плана вариант нужен, или просто, чтобы один-за-другим, без ограничений по времени?
    Ответ написан
    5 комментариев
  • Как найти единомышленников для проекта, или влиться в стартап?

    kshshe
    @kshshe
    Frontend developer
    Мне кажется, главный риск у вас в "что-то":

    хочу делать что-то свое, начинать что-то новое, без привязки к офису

    которые хотят начать что-то свое

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

    Zoominger
    @Zoominger
    System Integrator
    Погуглил за вас: https://thequestion.ru/questions/147403/kak-kalkul...

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

    Пусть, например, ищется корень числа 13. Берем в качестве ответа любое число. Например, единицу. Считаем полусумму значений этого возможного ответа и исходного числа, делённого на этот «ответ»:

    (1 + 13/1) / 2 = 7

    Теперь вероятным ответом будет 7. Повторяем приём ещё несколько раз:

    (7 + 13/7) / 2 = 4,4286

    (4,4286 + 13/4,4286) / 2 = 3,682

    (3,682 + 13/3,682) / 2 = 3,606

    И так далее. Уже сейчас ошибка очень маленькая: если проверить и возвести 3,606 в квадрат, получится 13,0057. Калькулятору очень легко делать сложения и чуть сложнее деления, но цепочку таких операций он может провести довольно быстро.
    Ответ написан
  • Как реализовать алгоритм группировки массива по значению?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Решение в лоб: создаете ассоциативный массив, где ключ - время, значение - массив дней недели. И просто проходите каждый элемент $openingHours, берете с него время, проверяете, есть ли оно в нашем созданном массиве, если нет, создаем и добавляем туда день, если есть, то просто добавляем туда день.
    Ну, потом уже пишите функцию, которая преобразует наш созданный массив в тот, что вам нужно. Это тоже довольно просто, смотрим ключ, берем его значения, соединяем их через разделитель -, и используем как ключ в новом массиве.
    Ответ написан
    1 комментарий
  • Как с помощью JavaScript изменить шрифт элемента и запомнить выбор пользователя в cookies?

    Stalker_RED
    @Stalker_RED
    Записывайте лучше в localStorage
    Это и удобнее, и не отправляется на сервер при каждом запросе.

    // save
    localStorage.setItem('size', '42px');
    
    // load
    let size = localStorage.getItem('size') || '100%'; // default 100%
    Ответ написан
    Комментировать
  • Прошу, можете объяснить суть паттерна JavaScript?

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

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

    Robur
    @Robur
    Знаю больше чем это необходимо
    да как хотите. Назовите ветку для продакшена "production", для разработки "development", для фичи с логином пользователя через фейсбук "feature/facebook-login" никто не запутается.

    Все это зависит от проекта/размера/привычек команды/сложности/процесса разработки/процесса тестирования/схемы релизов и так далее.
    Единственное что есть более менее везде - это ветка master которая создается по дефолту и чаще всего ее и оставляют для продакшена. Но это тоже не всегда - бывает наоборот в мастере девелопмент а для релиза - релизные ветки.
    Еще часто используется "feature/name", "bug/name" и так далее для удобства, плюс некоторые гит клиенты умеют такие ветки в списке веток группировать между собой.

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

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Комментировать
  • Почему внешний скрипт JavaScript не работает?

    mnml-by
    @mnml-by
    Молодой и талантливый
    Желательно подключать скрипты перед </body>, но если очень хочется подключать в head, то сделай это так
    <script src="script.js" defer></script>
    Ответ написан
    1 комментарий
  • Почему внешний скрипт JavaScript не работает?

    hzzzzl
    @hzzzzl
    потому что head грузится раньше чем body, и этих элементов еще нет на странице,
    положи скрипт перед < /body >
    Ответ написан
    Комментировать
  • Почему внешний скрипт JavaScript не работает?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Потому что нужно разместить скрипт в конце файла, когда все элементы будут засчитаны:
    .....
        <script src="script.js"></script>
      </body>
    </html>

    Либо в скрипте использовать событие DOMContentLoaded, которое срабатывает в конце загрузки документа:
    Код
    var select, html;
    
    function update(bgColor, textColor) {
      html.style.backgroundColor = bgColor;
      html.style.color = textColor;
    }
    
    window.addEventListener('DOMContentLoaded', e=>{
      select = document.querySelector('select');
      html = document.querySelector('html');
      document.body.style.padding = '10px';
    
      select.onchange = function() {
        ( select.value === 'black' ) ? update('black','white') : update('white','black');
      }
    });
    Ответ написан
    Комментировать
  • Как сделать бота на чистом js?

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

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    А где return у стрелочной функции?
    var gs = ['ddfg', 'dgfs'];
    var jss = gs.map((far) => {
      return far.length;
    });
    console.log(jss)

    ну, или вот так
    var jss = gs.map((far) => far.length);
    а вообще, при помощи map не считают сумму, вам нужен reduce
    var gs = ['ddfg', 'dgfs'];
    var jss = gs.reduce((res, far) => res + far.length, 0)
    console.log(jss)

    UPD: а, ну или, при условии, что у вас маленькие массивы, можно написать так
    const sum = ['ddfg', 'dgfs'].join('').length;
    Ответ написан
    Комментировать
  • Как химику переучиться на одну из digital- профессий?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    1. Нужно ли высшее профильное образование или достаточно моего технического?

    Достаточно никакого. Я серьёзно.

    Какие курсы или ВУЗы можете рекомендовать?

    Лично я вот противник курсов. Читайте книги или ищите персонального репетитора.

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

    Замануха для студентиков. Не встречал ни одного действительно профессионального программиста младше 25. Работаю с хорошим профи 42-х лет. На подхвате айтишница 36-ти. Девушек в IT не то, чтобы не любят, их там почти нет, вот и всё.

    Если начать работу на фрилансе, то реально потом устроиться в офис

    Фрилансеров неохотно берут в офис, а биржа фрилансеров переполнена вайтишниками.

    Я бы советовал другое направление.
    Чем IT-химия не устраивает? Есть же направления в этой сфере.
    Ответ написан