Задать вопрос
  • Почему интерпретатор javascript не передаёт значение переменной?

    rockon404
    @rockon404
    Frontend Developer
    то есть он воспринимает это не как переменную, а как имя класса!

    Неверный вывод. В коде аргумент shapeClass вызывается с использованием ключевого слова new, это значит, что передавать аргументом shapeClass можно только класс или функцию-конструктор.

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

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Требования к деятельности платежных агентов
    Так как деятельность платежных агентов заключается в приеме денежных средств, то закон предъявляет к таким организациям особые требования.

    Необходимо открыть специальные счета. Нужно запомнить, что со спецсчета агента деньги поставщику можно перечислить только на спецсчет. За нарушение указанного правила предусмотрена ответственность.
    Агент обязан проводить идентификацию плательщиков.
    Кассовый чек платежного агента должен соответствовать предъявляемым требованиям.
    Платежные агенты обязаны вести отдельную кассовую книгу по средствам, полученным ими в рамках деятельности платежного агента и формировать отдельные приходные кассовые ордера на них. Эти деньги не учитываются при расчете лимита кассы и должны полностью сдаваться в банк. Деньги с момента их поступления в кассу платежного агента принадлежат третьим лицам.
    Отдельные требования есть и для платежных агентов, применяющих в своей работе платежные терминалы или банкоматы:

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

    Но важно понимать, что если агент получает наличные от физических лиц, то всю сумму необходимо перечислить на свой специальный банковский счет (до этого момента вычесть свое вознаграждение нельзя). И уже со спецсчета можно будет перечислять средства на другие счета (п. 4 ч. 16 ст. 4 Закона от 3 июня 2009 г. № 103-ФЗ). При этом 103-ФЗ не конкретизирует, на чьи счета могут списываться средства.

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



    Ответственность
    Если платежный агент перечислит на свой специальный банковский счет не все наличные, полученные от граждан (ч. 2 ст. 15.1 КоАП РФ), он может быть привлечен к административной ответственности.

    За такое нарушение грозит штраф:

    для организации – от 40 000 до 50 000 руб.;
    для должностных лиц (главного бухгалтера, а если его нет – руководителя организации), предпринимателей – от 4000 до 5000 руб.
    Заметим, что индивидуальные предприниматели могут быть привлечены к ответственности только в качестве должностных лиц. Это следует из определения категории «должностные лица», которое дано в статье 2.4 Кодекса РФ об административных правонарушениях.

    Не исключено одновременное привлечение к административной ответственности как организации, так и ее руководителя. Правомерность такой позиции подтверждается письмом Минфина России от 30 марта 2005 г. № 03-02-07/1-83 и арбитражной практикой (см., например, постановления ФАС Московского округа от 14 июля 2005 г. № КА-А40/6231-05, Дальневосточного округа от 17 мая 2005 г. № Ф03-А16/05-2/984, Западно-Сибирского округа от 5 июля 2005 г. № Ф04-4410/2005 (12792-А03-32)).

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

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

    Еще желание осталось ?
    Ответ написан
    4 комментария
  • Почему порядок вывода ключа объекта именно такой?

    rockon404
    @rockon404
    Frontend Developer
    Потому что в функции f вы присвоили локальной переменной(аргументу) o новый объект:
    {
      message: "Новый объект!"
    }

    За пределами функции глобальная o ссылается на старый объект, в котором вы во время вызова f заменили ключ message на "Изменено в f"
    Другими словами, во время первого и третьего вызова console.log выводится ключ старого объекта, во время второго нового.
    Хороший пример, демонстрирующий базовые принципы языка.
    Передача по ссылке
    Область видимости
    Ответ написан
    Комментировать
  • Как можно скрыть информацию, чтобы было видно только часть информации?

    @EvgenyT
    Пример на MySQL
    SELECT CONCAT(SUBSTRING(field, 1,1), LPAD('',  (LENGTH(field)-1), '*'))
     FROM table
    Ответ написан
    Комментировать
  • Как можно скрыть информацию, чтобы было видно только часть информации?

    Eridani
    @Eridani
    Мимо проходил
    $name = "Vasiliy";
    $firstLetter = substr($name, 0, 1);
    $len = strlen($name) - 1;
    
    $i = 0;
    
    echo $firstLetter;
    while ($i < $len){
      echo '*';
      $i++;
      
    }
    Ответ написан
    1 комментарий
  • Как можно скрыть информацию, чтобы было видно только часть информации?

    rockon404
    @rockon404
    Frontend Developer
    Не вздумайте передавать конфиденциальные данные на клиент. Их надо преобразовывать на стороне сервера.
    Ответ написан
    Комментировать
  • Как решить задачу на es6?

    rockon404
    @rockon404
    Frontend Developer
    Почитайте про геттеры и сеттеры.
    Вариант решения
    class BaseClass {
      set a(val) {
        this._a = -val;
      }
      set b(val) {
        this._b = -val;
      }
      get a() {
        return this._a;
      }
      get b() {
        return this._b;
      }
    }
    Демо
    Ответ написан
    Комментировать
  • Взаимодействие React и сторонним API?

    miraage
    @miraage
    Старый прогер
    Причем тут React, если Вы некорректно Fetch API используете?
    RTFM.
    Ответ написан
    Комментировать
  • Взаимодействие React и сторонним API?

    rockon404
    @rockon404
    Frontend Developer
    1. Вы не указали протокол(http в вашем случае). Поэтому ответ получаете не от API OWM, а от своего localhost:3000. Если бы вы внимательно посмотрели на свойство url в консоли, на вкладке network или хотя бы на своем скриншоте, вы бы это заметили.
    2. Ответ надо парсить методом res.json(). Но без указания протокола это бесполезно. Так как ваш localhost:3000 судя по статусу 200 возвращает html с приложением. Отсюда ошибка:
    SyntaxError: Unexpected token < in JSON at position 0

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

    Исправленный вариант:
    fetch(`http://api.openweathermap.org/data/2.5/forecast/?q=${this.state.value}&cnt=1&APPID=e94f24c463ec7a0d1a69ebdebc88c694&lang=ru`)
          .then(res => res.json())
          .then(json => console.log(json));
    Ответ написан
    Комментировать
  • Почему iphone пропускает проверку на возраст?

    @alexalexes
    а) Чтобы не было непоняток с форматом даты входной строки, подставляйте параметры явно:
    new Date(yearVal, monthVal, dayVal)
    б) Еще полезно привести время к одной величине для сравнения:
    (new Date()).getTime() - (new Date(yearVal, monthVal, dayVal)).getTime()

    PS: А вообще, возраст нужно считать по каждому компоненту даты, чтобы не нарываться на високосные года:
    var now = new Date();
    var age = (now.getFullYear() - yearVal - ((now.getMonth() - (monthVal - 1) || now.getDate() - dayVal) < 0 ? 1 : 0));
    Ответ написан
    2 комментария
  • Как собрать JS object из нескольких файлов по шаблону?

    rockon404
    @rockon404
    Frontend Developer
    Так сейчас никто не пишет. Не изобретайте велосипед.
    Используйте ES6 модули и Webpack.
    Судя по необходимости рендерить html, вам стоит посмотреть в сторону современных фронтенд фреймворков.
    Ответ написан
    Комментировать
  • Почему не происходит замена?

    Строки в js неизменяемы по индексу. Лучше собирать новую строку.
    Ответ написан
    Комментировать
  • Как вывести значение переменной из js в div?

    Bags85
    @Bags85
    frontend-developer
    https://learn.javascript.ru - Вам сюда, с самого начала... ответ на вопрос не изменит ситуации в целом
    Ответ написан
    Комментировать
  • Как лучше изменить код?

    Примерно вот так:
    const queries = [
        categoryModel.find({}),
        productModel.find({}),
        seasonModel.find({}),
        sizeModel.find({})
    ];
    Promise.all(queries).then(result => {
        console.log(result);
    }).catch(err => {
        throw err;
    });
    Ответ написан
    Комментировать
  • Как работать с очень длинными списками в JavaScript (angular, react, vuejs)?

    alvvi
    @alvvi
    export default apathy;
    (angular не использует vdom, для него история другая)
    перерисует целиком свой виртуальный dom

    Давайте немного проясним: виртуальный DOM - это грубо говоря js объект содержащий другие объекты.
    При добавлении нового сообщения туда добавится новый объект и весь DOM сравнится со старой версией с помощью diff-алгоритма специфичного для конкретного фреймворка.
    И только результат этого сравнения добавится в реальный DOM.
    Работа с объектом значительно быстрее работы с самим DOM-ом, поэтому чтобы оно начало работать заметно медленее у вас должен быть дикий уровень вложенности или очень большой DOM.

    100 сообщений и 50 контактов - это небольшие цифры, с таким любой из упомянутых фреймворков справится без просадок.

    Вот пример бенчмарков с большим количеством объектов(1000+) для многих фреймворков на примере незамысловатой таблицы:
    www.stefankrause.net/js-frameworks-benchmark6/webd...
    (там же есть ссылка на репо чтобы увидеть как она выглядит)
    Как видите, там в таблицу уже содержащую 10 000 добавляется еще 1000(!) объектов, и многие фреймворки впонле с этим справляются.

    В реальности же, вам вряд-ли придется добавлять такие цифры, потому что подгружают изначально обычно меньшее количество: такое, которое пользователь сможет увидеть в одном экране, все остальное догружается постепенно по мере надобности. То же самое касается вашей истории чата, ее стоит подгружать только за тот период, за который она необходима пользвателю.
    Ответ написан
    1 комментарий
  • Верстка float, max-min-width. Я дурак, или шины не едут?

    @CODALSD
    .container {
      display: flex;
      flex-wrap:wrap;
      justify-content:space-around;
    }
    .block {
      min-width: 200px;
      max-width: 400px;
      height: 40px;
      background: #456;
      margin:10px;
      flex-grow: 1;
      
    }

    flex-grow ключевое свойство
    Ответ написан
    1 комментарий
  • Как вычислить новую ширину квадрата, если повернуть его на 45 градусов?

    Figment
    @Figment
    Извиняюсь, если не прав, но если это квадрат, то значит вам нужно найти просто длину диагонали.
    5af47af659b60666492168.png

    Т.к. квадрат вы повернули, то грубо говоря, ширина = диагонали.
    Ответ написан
    Комментировать
  • Почему Firefox выдаёт ошибку на event.target.id?

    Sanasol
    @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    <a id="3434567" onclick="load"> ссылка </a>
    
    function load(event) {
      var tar = event.target.id;


    откуда ему event-то достать?
    Ответ написан
    2 комментария
  • Как импортировать js библиотеку?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    А зачем в модульном коде манкипатчить window?
    Импортируйте библиотеку в тот файл(модуль) в котором используете.
    import libraryName from 'libraryName';
    
    libraryName.someMethod();

    или:
    import { someMethod } from 'libraryName';
    
    someMethod();


    Почитайте документацию к библиотеке, там все есть.
    Ответ написан
    Комментировать
  • Запуск скрипта в определенное время?

    rockon404
    @rockon404
    Frontend Developer
    Насколько я понял addAge - это колбек модалки при закрытии, поэтому эту функцию лучше не удалять.

    Вот для показа по локальному времени клиента:
    var TIME_FROM = 0;
    var TIME_TO = 9;
    
    var date = new Date();
    var clientLocalHour = date.getHours();
    
    if (clientLocalHour >= TIME_FROM && clientLocalHour < TIME_TO) {
      $('.ageWindow').fadeIn(100);
    }
    
    function addAge() { 
      $('.ageWindow').fadeOut(500);
    }


    Вот для показа по локальному времени вашего сервиса(считается на стороне клиента, часовой пояс +3 Москва):
    var SERVICE_TIMEZONE = 3;
    var TIME_FROM = 0;
    var TIME_TO = 9;
    
    var date = new Date();
    var clientLocalHour = date.getHours();
    var timezoneOffset = date.getTimezoneOffset() / 60;
    var serviceComputedHour = clientLocalHour + timezoneOffset + SERVICE_TIMEZONE;
    
    if (serviceComputedHour >= TIME_FROM && serviceComputedHour < TIME_TO) {
      $('.ageWindow').fadeIn(100);
    }
    
    function addAge() { 
      $('.ageWindow').fadeOut(500);
    }

    SERVICE_TIMEZONE - часовой пояс, сейчас стоит +3 Москва, можно задать любой (целое число в диапазоне от -12 до 12)
    TIME_FROM - время начала показа
    TIME_TO - время окончания показа

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