Ответы пользователя по тегу JavaScript
  • Ревью кода. Что можно улучшить в этом коде?

    @Sun_Day
    Честно говоря, это плохой код. Смысла разбираться в нем не имеет, долго объяснять все моменты(все это просто придется переписать под корень). Но все новички в программировании пишут что-то подобное, это нормально.

    Могут отметить несколько вещей:
    1) Нейминг css классов - почитайте про БЭМ, у вас что-то невразумительное. Да и БЭМ тут не нужен, если прям строго взглянуть - у него свои задачи.
    2) Используйте строгое равенство ===
    3) Условия внутри методов просто кошмар. В целом в методах спагетти код по работе с dom. Это так не делается. Нужно декомпозировать логику и писать лаконичный и выразительный код.
    4) Что-то можно было передать через constructor(), при создании экземпляра класса. Зачем это все пихать в сам constructor.

    На счет html, то просто попробуйте сверстать лендинг, лучше поймете что к чему.

    В общем, никуда это не выкладывайте всерьез). Ну и советую использовать тайпскрипт.

    Реакт можно изучать конечно.
    Ответ написан
    Комментировать
  • Как вывести на страницу объект из localStorage, не зная key?

    @Sun_Day
    Возьмите свойство localStorage(в данном случае window.localStorage - это одно и то же).
    И обойдите его циклом, получив все value.
    localstorage
    for (let i = 0; i < localStorage.length; i+= 1) { 
    const key = localStorage.key(i)
    const value = localStorage[key];
    console.log(value);
    }

    Ну и дальше делайте что нужно со списком value'сов и выводите в html.
    Ответ написан
    Комментировать
  • В чем отличие модулей js в браузере (через тэг html) или в nodejs?

    @Sun_Day
    Разные среды разработки, разница в стиле разработки, если коротко.

    Тут все немного запутанно насчет Require и Common.

    Это модульные системы.

    До выхода стандарта ES6, когда в js по сути появилась модульная система из коробки, модули реализовывались в основном с помощью двух стандартов - это CommonJS и AMD.

    CommonJS - это стандарт по модульной системе в js вне браузера, для node.js. В node.js тоже есть встроенная функция require, есть module.exports. Все это реализация стандарта CommonJS.
    Nodejs сейчас es6 модульную систему поддерживает(import/export). То есть, официальный синтаксис джаваскрипта. И если коротко, то с выходом ES6, CommonJS немножко потерял свою былую целесообразность, поскольку появился официальный синтаксис javascript, который это реализовывает. Раньше в js, в рамках официального синтаксиса такого не было.

    AMD - это стандарт, который отпочковался от CommonJS, разработан для асинхронной загрузки модулей. Использует функцию define, которой описывается модуль и require, которой он подключается. Расшифровывается как Асинхронное определение модуля.

    RequireJS - это библиотека для поддержки асинхронных модулей в браузерах. То есть она для браузеров. Это не стандарт. Это реализация стандарта AMD.

    Объяснил как мог, не знаю как еще проще).
    Ответ написан
    Комментировать
  • Почему async fetch не отрабатывает корректно?

    @Sun_Day
    Как и сказали выше, с сервера приходит кусок чистого html. Консоль ругается на начало этого html "<", т.е на открывающийся тег.
    На результат повесьте либо JSON.stringify(чтобы преобразовать в строку), либо outerHTML(преобразовать в сериализованный HTML-фрагмент), чтобы иметь возможность работать с пришедшими данными. Либо исправляйте на сервере.
    Ответ написан
    Комментировать