• Актуальные книги по js?

    @BarryHAllen
    Просто оставлю это здесь.
    «JavaScript. Шаблоны» Стоян Стефанов.
    Ответ написан
    Комментировать
  • Простым языком о замыканиях?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    1. Для чего замыкание существуют?
    Для инкапсуляции данных.
    В ООП есть модификаторы доступа (private, protected), которые закрывают доступ к данным извне класса, но позволяют обращаться к ним из методов.
    В ФП для этой задачи используют замыкания, закрывая данные внутри функции. Из вне данные недоступны, но вложенные функции имеют к ним доступ.

    2. В каких условиях они создаются?
    Когда вложенная функция обращается к переменным внешней функции.

    Хоть и просили без примеров, но на примере показать проще:
    // makeCounter - внешняя функция
    function makeCounter(initialValue) {
      var value = +initialValue || 0;
      // counter - внутренняя функция
      // она использует переменную value из внешней функции
      // что-бы это было возможным, для counter создается замыкание,
      // в котором хранится переменная value
      // переменная initialValue функции counter не нужна, поэтому ее можно "забыть"
      return function counter() {
        return value++;
      };
    }
    
    // у нас 3 экземпляра функции counter
    var counter1 = makeCounter();
    var counter2 = makeCounter();
    var counter3 = makeCounter(100);
    // и для каждой есть своя переменная value
    console.log(counter1()); // 0
    console.log(counter1()); // 1
    console.log(counter2()); // 0
    console.log(counter1()); // 2
    console.log(counter3()); // 100
    
    // а вот получить как-то напрямую переменную value мы не можем
    // инкапсуляция нам не дает поломать данные
    Ответ написан
    Комментировать
  • Проблемы трудоустройства и свободного времени в it, насколько все плохо?

    tema_sun
    @tema_sun
    Ты какой-то фигней занимаешься. Тебе это дело или прёт или нет. Если нет, то не стоит сюда идти. Если да, то ответы на все твои вопросы не имеют никакого значения.

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

    rockon404
    @rockon404
    Frontend Developer
    Все только в ваших руках. Ни одно образование в России, ни за рубежом не даст вам гарантии, что вами заинтересуется Яндекс. Как и отсутствие высшего образования не будет преградой для получения работы в этой компании.

    Мнение программистов Яндекс на этот счет.
    Ответ написан
    5 комментариев
  • Что делать после todo?

    rockon404
    @rockon404
    Frontend Developer
    Фреймворки. Затем приложение, использующее сторонний API. Например Weather App.
    Ответ написан
    Комментировать
  • Как в styled-components экстендить компонент?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Смотря как и чем стилизован ваш компонент Link.
    Допустим он не стилизован:
    class Link = ({ href, children, ...props }) => <a href={href} {...props}>{children}</a>;

    StyledComponents использует для стилизации свойство className, так как мы используем rest оператор наш компонент неявно передаст любое свойство элементу a, в том числе и передаваемое библиотекой className. Поэтому стилизовать можно так:
    const StyledLink = styled(Link)`
      // some styles
    `;

    В случае если classNames уже используется компонентом, надо делать конкатенацию.
    В случае использования inline стилей, по весу они значимей классов и переопределить стили без использования !important не получится. Тут лучше тогда все свои компоненты на StyledComponents перевести.
    Ответ написан
    Комментировать
  • React.js, почему с первого раза не обновляется массив?

    0xD34F
    @0xD34F Куратор тега React
    Может кто-нибудь подсказать почему так происходит и как исправить?

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

    Как исправить - да выбросить всё лишнее на хрен, оставить один массив items, с ним и работать:

    class AddItems extends React.Component {
      state = {
        value: '',
        items: [],
      }
    
      inputChange = ({ target: { value } }) => {
        this.setState({ value });
      }
    
      addNewItem = () => {
        if (this.state.value) {
          this.setState({
            items: [ ...this.state.items, {
              text: this.state.value,
              id: (new Date()).getTime().toString(),
            } ],
            value: '',
          });
        }
      }
    
      render() {
        return (
          <div className="addItems">
            <div className="addSection">
              <input type="text" value={this.state.value} onChange={this.inputChange} />
              <input type="submit" onClick={this.addNewItem} />
            </div>
            <div className="listSection">
              <ul>{this.state.items.map((item) => <li key={item.id}>{item.text}</li>)}</ul>
            </div>
          </div>
        )
      }
    }
    Ответ написан
    2 комментария
  • Как это работает?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Массив всяких строк, которые являются названиями методов некоторых объектов в JavaScript. Но в приведенном фрагменте кода это не имеет никакого значения, т.к. они не выполняются.

    Объявляется анонимная функция, которая тут же и вызывается. В неё параметрами передают этот массив и число 185, записанное в 16-ричной системе как 0xB9.

    Внутри функции объявляется ещё одна функция e(f), ожидающая целочисленный параметр f.

    Цикл while выполняется пока это число f не достигнет нуля, уменьшаясь на 1 на каждой итерации.

    Внутри цикла вызывается метод массива push(), который вставит в конец массива значение. К свойствам и методам объекта можно обращаться и через точку myArray.push() и в квадратных скобках передав строку с названием свойства или метода: myArray['push']()

    Вставляется в массив значение, вынутое из него же, из самого начала. Выдёргивается оно методом массива shift() – записанным так же в виде строки в квадратных скобках.

    Вызывается функция e() с числом 185, увеличенным на 1, т.е. 186. В цикле это число сначала уменьшается на 1, затем оценивается, не стало ли оно равным нулю. Если ещё не стало, то выполняется тело цикла. Т.е. тело цикла выполнится 185 раз: для 185, 184, 183, ... 2 и 1.

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

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Можете подчерпнуть хорошие практики из текстовых версий вебинаров или из вебинаров.
    Ответ написан
    Комментировать
  • Как упростить код на JavaScript?

    Stalker_RED
    @Stalker_RED
    jsfiddle.net/8uow6n3y

    Не совсем понятно зачем у вас дополнительные кнопки +/- возле input type=number, у него же встроенные есть:
    dQ94Po.png

    Если не станете их выбрасывать, то видимо придется добавить на minus проверку на отрицательные числа.
    Ответ написан
    7 комментариев
  • Нормальная ли такая сборка?

    fdroid
    @fdroid
    press any key
    Про HDD даже не думайте. Минимально толковая связка в 2018 году это SSD + 8Gb RAM, процессор добавить по вкусу, ваш вариант пойдёт.
    Ответ написан
    1 комментарий
  • Как правильно релизиться в больших компаниях?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    Правильные версии - более универсальный вариант. Вдобавок те же фича-тимы могут работать и с версиями.
    Чтобы упростить работу с версиями, используйте https://semver.org/lang/ru/

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

    rockon404
    @rockon404
    Frontend Developer
    Чтобы стать грамотным фронтенд разработчиком, необходимо иметь хороший опыт фронтенд разработки.
    Отличным путем для получения подобного опыта будет работа в сильной команде и сложных проектах. Чтобы получить такую работу, достаточно хорошо изучить стек технологий требуемых на конкретную вакансию. Пути получения этих знаний могут быть разные.

    Ответ на ваш вопрос: посещением ресурсов и чтением книг тут никак не отделаешься, чтобы стать хорошим разработчиком необходимы хорошие знания, подкрепленные хорошим опытом.
    Ответ написан
    Комментировать
  • Какие ресурсы посетить или что почитать,чтобы стать грамотным frontend разработчиком?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Заимейте правило 80/20 (для новичка можно 70/30) - 80% практики, 20% теории. Из ресурсов по JS посоветую
    https://github.com/getify/You-Dont-Know-JS - серия книг охватывает почти все темы JS. Если нет знания английского, самое время подтянуть хотя бы до чтения со словарем. Не нужно читать все книги за месяц, читаете первую, понимаете что-то, пытаетесь сделать что-то, например калькулятор какой-нибудь для расчета например доходов от вклада в банке, вбиваешь сумму, вбиваешь процент банка и вбиваешь кол-во месяцев и получаешь доход.
    Еще задачи тут описал Как набираться опыта и формировать портфолио?

    Не слушайте никого, кто говорит, что нужен только опыт в хорошей команде. Во первых, такую хорошую команду нужно еще поискать (и не факт, что они возьмут вас), во вторых, чуваки на чистой практике делают очень много велосипедов, не оптимальных конструкций, [deleted]пишут на ReactJS[/deleted]. Если бы они 20% времени отдавали какой-нибудь структурированной книге, многих ошибок бы и не было, да и многие вещи, до которых дошел сам через муки и боли работодателя, могли бы быть изучены во время изучения теории.

    Не надо зубрить. Если у вас плохая память, как у меня например, и вы поняли как работают например генераторы, но завтра забыли синтаксис, то используйте Anki. Без зубрежки будете помнить (если правда заниматься, а не забивать).
    Ответ написан
    1 комментарий
  • Что понимается под функциональным программированием и ООП в javascript?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Погуглите эти темы отдельно, поймите, что они из себя представляют. Потом прикиньте, есть ли они в JS, и как реализованы.
    Еще советую такие два запроса в гугле
    OOP in javascript
    и
    functional programming in javascript
    Почитайте, разберитесь.
    Ответ написан
    Комментировать
  • Какой стандарт EcmaScript учить, ES6 or ES5?

    rockon404
    @rockon404
    Frontend Developer
    Учить все шаг за шагом. Стандарт ES6 расширяет стандарт ES5. Для React разработки придется еще изучить экспериментальные фичи пока не добавленные в стандарт, которые используют и транспилируют в валидный код с помощью babel и соответствующих прессетов.
    Ответ написан
    Комментировать
  • Какие книги must-have для верстальщика-профессионала по Вашему мнению?

    Vlad_IT
    @Vlad_IT Куратор тега Вёрстка
    Front-end разработчик
    Можете в свободное время пролистать большую книгу css. Там практика особо не нужна (если уже верстаете, сможете все в голове представить), но и подробно читать не нужно, т.к. много базовых вещей, но и могут появиться такие вещи, которые вы не знаете.
    Еще у популярной в кругах верстальщиках чувихи Лия Веру есть полезная книженция https://www.amazon.com/gp/product/1449372635/ref=a... (многое из которой есть в ее блоге lea.verou.me )
    В верстке вряд-ли есть какие-то уникальные книги, т.к. тема не особо сложная, проникаться в глубь не получится. Мне кажется, будет полезнее проникаться вширь, изучить например JS, для верстки будет очень полезно с webgl, чтобы делать крутые анимации.
    Ответ написан
    1 комментарий
  • Как проще сделать мультиязычность на лендинге?

    A_Steb
    @A_Steb
    Пишу код
    Мультиязычность штука хорошая, но нужно дополнительное условие: Для поисковиков это должно иметь значение или нет?

    Если да, то js (не считая серверного рендера на nodejs), не подходит.

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

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

    Но смотря со своей колокольни, с небольшим опытом создания мультиязычных сайтов, а также сайтов с региональными подразделениями, рекомендую переведенные версии размещать на под доменах. Особенно если на сайте с другим языком размещать другой адрес, контакты, номера телефонов и тд. При этом не указывать в мета тегах что сайт является переведенной версией. Тогда Гуглу будет в принципе безразлично, а вот Яндекс например посчитает перевод на под домене за каждый отдельный сайт, и при не очень сильной конкуренции будет выдавать их на одной странице, либо выдавать пользователям нужную версию, в зависимости от геолокации.

    Вообщем, вердикт таков: прежде чем принимать какое либо решение, нужно точно понять чего Вы хотите этим добиться.
    Ответ написан
    Комментировать
  • Как из двух массивов сделать объект с новыми свойствами?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const t = {
      1: 'region',
      3: 'area',
      7: 'street',
    };
    
    const newItems = items.map(n => ({
      id: n.id,
      name: n.name,
      ...n.parents_names.reduce((acc, name, i) => (
        acc[t[n.parents_levels[i]]] = name,
        acc
      ), {}),
    }));
    Ответ написан
    1 комментарий
  • Как набираться опыта и формировать портфолио?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Итак, я учусь на geekbrains веб-разработке.

    Ошибка номер один. Из всех новичков, что я видел, с гикбрайнса самые слабые. Их не учат учиться, их учат повторять, не давая нормальную теоретическую и практическую базу. Задания очень слабые, а курсы поверхностные.
    статьи и пр. это конечно хорошо, но применять на практике то, что прочитал, это совершенно другое, а особенно в боевых условиях

    Пока не будете читать, так и будете практиковать визуальные эффекты на jQuery. Нужна база. В начале 25% теории 75% практики. Читайте https://css-tricks.com , большую книгу css (она немного устарела, гриды не рассматривают, но основная база очень полезная), смотрите Юрия Артюха (если хотите делать крутые анимации), лазьте по https://www.awwwards.com/ и разбирайтесь, как люди так делают. А также практикуйтесь, сделайте себе сайт, сайт другу, сайт девушке - всем.

    UPD: В чем сложно придумать себе близкую к боевому задачу? Боевую задачу вам вряд-ли кто-то даст, т.к. без опыта боевых задач, вы сделаете не боевое решение. Вот там "боевые" задачи.
    1) Сделайте калькулятор произведения матриц - разминочка.
    2) Сделайте игру арканоид, хоть на дивах (а раньше, когда мы учили программирование, новичков привлекала разработка игр, а сейчас почему-то сайты. Раньше было романтичнее как-то).
    3) Сделайте приложение учета личных финансов, в котором есть такие функции
    - личный счет
    - форма добавления денег в личный счет с комментарием и выбором группы доходов (долг, зп, заказ, подарок и.т.д.).
    - форма снятия денег с личного счета с комментарием и выбором группы расхода (вернул долг, купил домой что-то, купил технику, еду, потратил на женщину и.т.д.)
    - Вывод списка доходов и расходов с фильтром, сортировкой и категориями.
    - создание расписания автоматического пополнения (зп) или снятия (аренда, абонентская плата) средств с личного счета.
    - создание простого графика расходов и доходов. Я бы сюда добавил еще прогнозирование доходов и расходов хотя бы через линейную регрессию (да, я люблю машинное обучение),
    - добавление нескольких счетов
    Эта задача норм, и типа боевая, и для себя пригодится, и на гитхаб можно выложить - красота.
    Ответ написан
    14 комментариев