• Задание с learn.javascript. Поясните код?

    @McBernar
    Чтобы значение, которое вы ввели в форму, привелось к числу. Если не писать +, то из формы прилетит строка (число с типом строка).

    Небольшой хак.
    Ответ написан
    Комментировать
  • Задание с learn.javascript. Поясните код?

    Xuxicheta
    @Xuxicheta
    инженер
    + Чтобы число получить и работало строгое равенство number === 0
    Унарный плюс
    https://learn.javascript.ru/operators#preobrazovan...
    А обратных слешей у тебя в вопросе вообще нет, но вообще они используются для экранирования или указания спецсимволов
    Ответ написан
    Комментировать
  • Нужен ли футер в личном кабинете?

    usdglander
    @usdglander
    Yipee-ki-yay
    Если собственник платит вам деньги и у вас нет полномочий продукт-менеджера, а следовательно вы не несёте никакой ответственности за это, то ставьте.
    Ответ написан
    Комментировать
  • Максимально эффективная методика изучения программирования?

    @McBernar
    Вам весь язык не нужен. Это как и с иностранными языками — есть 500 самых часто используемых слов, с помощью которых можно нормально общаться.

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

    Короче, не упарывайтесь. Здесь нет экзаменов, билетов и препода, который может что-то спросить из самого скучного раздела.

    Но, к слову, дотошность — это тоже хорошо. Только включайте ее по мере необходимости, чтобы не вредила работе и скорости обучения.
    Ответ написан
    8 комментариев
  • Максимально эффективная методика изучения программирования?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Дотошный подход это хорошо, когда нужно разобраться в чем-то конкретном. Для азов и первичного проникновения - нет. Раз вы уж начали с Java - пройдите курс "Методология программирования" Стенфордского Университета, видео лекций есть в открытом доступе, бесплатно (https://see.stanford.edu/Course/CS106A). Оно на английском, разумеется. Вот этого курса будет достаточно чтобы понять для себя путь джедая.

    А если в двух словах, то рабочая схема плюс-минус такая:

    1. изучаем синтаксис языка
    2. изучаем основные концепты языка и списки DOs и DONTs с примерами
    3. садимся пилить real world задачи
    4. в процессе сталкиваемся с углубленными вопросами, их изучаем по мере поступления
    5. GOTO 4
    Ответ написан
    Комментировать
  • Кто может объяснить код?

    На самом деле довольно стремный код
    Если передаю только первый аргумент, тов результате получаю функцию, куда могу передать второй аргумент
    function addTogether(first, second) {
      if (typeof first !== "number") {
        return undefined;
      }
      const sum = function(second) {
        if (typeof second === "number") {
          return first + second
        } else {
          return undefined
        }
      }
      if (typeof second === "undefined") {
        return function(second) {
          return sum(second)
        }
      } else {
        return sum(second)
      }
    }
    // test here
    console.log(addTogether(2, 3));
    console.log(addTogether(2)(3));
    Ответ написан
    1 комментарий
  • Какие книги по программированию must-have?

    delphinpro
    @delphinpro
    frontend developer
    Не буду оригинален, эти книги у всех на слуху (и у меня на полке =).

    Макконнелл: Совершенный код
    Кнут: Искусство программирования
    Роберт Мартин: Чистый код. Создание, анализ и рефакторинг
    Гамма, Влисидес, Хелм, Джонсон (также известные как "Банда четырех"): Приемы объектно-ориентированного проектирования. Паттерны
    Фаулер: Рефакторинг. Улучшение существующего кода
    Ответ написан
    1 комментарий
  • Как упростить переменную в C#?

    FoggyFinder
    @FoggyFinder
    Можно вынести в отдельную функцию:

    string CreateASCIIStr(string value) => Encoding.ASCII.GetString(Convert.FromBase64String(value));


    или, в локальную, с использованием LocalData:

    string CreateASCIIStr(string value) =>
                    LocalData + Encoding.ASCII.GetString(Convert.FromBase64String(value));


    Добавлено:

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

    В данном случае у вас есть многократный последовательный вызов двух методов:

    Convert.FromBase64String и Encoding.ASCII.GetString

    для удобства их совмещаем в один вызов и получаем

    Encoding.ASCII.GetString(Convert.FromBase64String(value))

    Пример:

    string LocalData = "0";
    string CreateASCIIStr(string value) =>
        LocalData + Encoding.ASCII.GetString(Convert.FromBase64String(value));
    
    var data = new[] {
        CreateASCIIStr("Тут"),
        CreateASCIIStr("Все"),
        CreateASCIIStr("значения"),
        CreateASCIIStr("будут"),
        CreateASCIIStr("совершенные"),
        CreateASCIIStr("Разные")
    };


    Здесь возвращается массив, но если ваши совершенно разные значения в действительности являются массивом, то и обрабатывать их лучше как массив ;-)
    Ответ написан
    3 комментария
  • Где и как искать заказы электронщику?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Что мешает создать цикл статей с плашкой: Вот я, я этим занимаюсь, а вот мой сайт?
    https://habr.com/ru/post/434658/
    Ответ написан
    3 комментария
  • Почему кто-то может отметить ответ решением?

    Moskus
    @Moskus
    В вопросе содержатся ошибки.
    Во-первых, нет никаких "лучших ответов". Есть просто "решения". (Ну ещё голосование "нравится".)
    Во-вторых, отметка решением не делается "от имени автора". Признание ответа решением независимо от автора. Признать решением может автор, куратор тега или другие пользователи, если достаточное их число проголосуют за этот ответ.

    Делается это потому, что Тостер - это проект, цель которого - построение "базы знаний" по частным проблемам, а не удовлетворение потребностей и развлечение авторов вопросов. Потому, если ответ объективно решает проблему из вопроса, он может быть признан решением не только автором. Тем более, авторы часто забивают на то, чтобы отмечать решения, не понимают, что это нужно делать для тех, кто прочтет вопрос в будущем, или вообще стараются насолить некоторым отвечающим, потому что хотя ответ даёт решение, он может им не нравиться по каким-то совершенно субъективным причинам (например, потому что там говорится об объективном недостатке чего-либо).

    И нет, это никакое не "нарушение прав автора" (вы эти права сами только что придумали?), как вы пишете в комментариях. Каких прав? Права не отмечать ответ решением? Его никто не нарушает - автора никто не заставляет отмечать, отмечают другие. Или права запретить другим отмечать ответ решением? Ну так это вообще абсурд. То, что автор не может воспользоваться решением или что он недоформулировал вопрос так, что его реальная проблема не соответствует проблеме в вопросе, не делает решение неправильным.
    Ответ написан
    9 комментариев
  • Зачем администрация/модераторы/пользователи отмечают решением ответ, который вовсе не является решением?

    Moskus
    @Moskus
    Потому что Тостер задуман не столько для того, чтобы конкретный автор вопроса получил ответ на вопрос, который удовлетворяет лично его, а для того, чтобы другие люди в аналогичной ситуации знали, как к ней подступиться.
    Если, например, конкретно вы не поняли, как воспользоваться ответом, это не значит, что в общем случае, это не решение. Или если вы забили на то, чтобы отметить решением то, что им, в реальности, является.
    Ну и, тем более, Тостер - не для личного развлечения авторов вопросов в духе "кого хочу, того награжу, а кто мне не нравится - идет лесом".
    Ответ написан
  • Библиотека для фронтенд?

    @D3lphi
    Ну, во-первых, не "ву", а "вью" (Читается также, как и view). Во-вторых, vue - это фреймворк, а не библиотека. А в-третьих, да vue хорош. В последнее время он активно набирает популярность. Во многом, из-за своей простоты и "легковесности".
    Ответ написан
    1 комментарий
  • Менять профессию тестировщика или продлжать развиваться в ней?

    @afanasiyz
    Javascript-разработчик
    Если вы не предрасположены к программированию - оно вам зачем надо?
    Выводите тестирование на новый уровень, учитесь в большую автоматизацию (думаю технологий вам незнакомых полно), меняйте работу на более свободную и менее бюрократизированную.
    Ответ написан
    2 комментария
  • Какое даст понимание язык программирование ассемблер, абсолютному новичку?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Может дать понимание как работает железо - как устроена память, что происходит с регистрами при операциях, что такое прерывания, стек, и прочее...
    ООП - это совершенно другой уровень абстракции. Как раз чтобы абстрагироваться от железа и работать с некими абстрактными сущностями - объектами, не задумываясь особо о том как это будет реализовано в железе.
    Ответ написан
    Комментировать
  • Какое даст понимание язык программирование ассемблер, абсолютному новичку?

    Adamos
    @Adamos
    Ассемблер даст понимание того, как компьютер работает на самом деле. Но прикладному программисту, особенно в вебе, это сплошь и рядом не нужно. Кроме того, человек, вообще не умеющий программировать, не сможет и освоить ассемблер.
    Поэтому для заглядывания "под капот" обычно рекомендуют научно-популярную "Код: тайный язык информатики", а учиться программировать можно и на Питоне. Главное - настойчиво учиться программировать, а не ходить вокруг да около с фантазиями "а не изучить ли мне ассемблер, а то взять и начать программировать как-то страшновато".
    Ответ написан
    Комментировать
  • Есть ли библиотека, которая смогла бы переводить текст?

    joeberetta
    @joeberetta
    Читай: https://epdf.pub/google-for-dummies.html
    Стоило бы научиться гуглить
    вот
    Ответ написан
    Комментировать
  • Как использовать чистый JS согласно БЭМ?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    согласно БЭМ

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

    трудно уследить, что бы переменные не повторялись в своих наименованиях

    Было бы логично использовать модули (гугл -> es6 modules).

    P.S.: И почитайте про то, как сейчас скрипты собираются - это не просто склейка всего в один файл, там все немного сложнее.
    Ответ написан
    Комментировать
  • Верно ли я понял?

    Xuxicheta
    @Xuxicheta
    инженер
    нет
    return contacts[i][prop] || "No such contact"
    означает
    if (contacts[i][prop]) {
      return contacts[i][prop];
    } else {
      return "No such contact";
    }

    или
    return contacts[i][prop]
      ? contacts[i][prop]
      : "No such contact"


    Читайте как работает OR, если в выражении первая часть перед || истинна (Truthy) - возвращается она, если ложна (Falsy) - возвращается вторая часть выражения, после ||.

    x === (false || x)
    Ответ написан
    Комментировать
  • Как работает данная рекурсия?

    @McBernar
    У вас функция вызывает саму себя.
    Промежуточный результат записывается в res и передается в этот новый вызов.

    Все вычисления начинаются только тогда, когда рекурсия достигнет конца и вернет res.

    Вот картинка под ваш пример. Обратите внимание на зеленые прямоугольники.

    recursiya.png
    Ответ написан
    Комментировать
  • Как построить башню из звёздочек?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const tower = length =>
      Array.from({ length }, (n, i) => Array(2)
        .fill(' '.repeat(length - i - 1))
        .join('*'.repeat(i * 2 + 1))
      );

    или

    const tower = length =>
      Array.from({ length }, (n, i) => (
        n = Array(length - i).join(' '),
        n + Array(-~i << 1).join('*') + n
      ));
    Ответ написан
    1 комментарий