Ссылка на прошлый тред: >>1198383 (OP)НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!Для программирования на ХТМЛ https://codepen.io/pen/Для программирования на алёртах https://jsfiddle.net/Для фреймворков библиотек https://codesandbox.io/Для живой странички из коробки https://repl.it/languages/web_projectДля Ноды с пакетами и консолькой https://repl.it/languages/nodejsВ этом треде собираются величайшие умы человечества – мастера валидации форм и специалисты по JSON-технологиям. Этот тред посвящён главному языку будущего – JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач – от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.Часто задаваемые вопросы: https://github.com/vladimir37/js-thread/blob/master/Wiki/faq.mdСписок материалов для изучения: https://github.com/vladimir37/js-thread/blob/master/Wiki/learn.mdСписок инструментов и направления JS-разработки: https://github.com/vladimir37/js-thread/blob/master/Wiki/tools.mdКонфа /pr/ в Slack: https://slack-2chpr.herokuapp.com/
В директории можно выполнитьnpx live-server .(точка в конце)и получить сервер этой директории с живой перезагрузкой на изменениях.https://www.npmjs.com/package/live-server
>>1206689 (OP)Всем здорово! Подскажите как вкатиться айти? Мне тут кое-кто посоветовал начать с Кантора, это нормальная тема?пикрандом
>>1206804привет
>>1206804Если с английским плохо, то начни с /flНачинаешь сhttps://htmlacademy.ru/Бесплатного хватит. Но если есть копейки, купи подписку на месяц, мотивирует.Вместе с тем по вечерам внимательно смотришьhttps://www.youtube.com/watch?v=Sy_wba7l1UU&list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5После того, как закончишь академиюhttps://ru.hexlet.io/courses/introduction_to_programminghttps://ru.hexlet.io/courses/intro_to_web_developmentТеперь у тебя будет представление о программировании вообще и о вебе в частности. Тогда уже можно и Кантора навернуть или съебать в другом направлении.
>>1206208>Реакт - это библиотека. Для рендеринга html. И больше в нем нет нихуя.>Алсо, умиляет подход к передаче данных в компоненты. Сначала много разговоров про иммутабельность, пропсы, one-way, чистые функции, и прочее. Охуенно.>А практически - что с этим всем делать? А-а-а, практически... Ну, практически - надо юзать редукс, который всё красиво сделает с чёрного хода, через недокументированные возможности.Ну почему этот долбаный реакт взлетел, раз он особо нихуя не может?
>>1206835React хорошо подходит для разработки большх проектов в больших профессиональных командах.Оттуда и появился, собственно.Для маленькой команды с ограниченными ресурсами и для поделок на коленке - слишком низкоуровневый и затратный.А вот Vue удачно вписывается в обе эти модели разработки.
>>1206835наверн томушо ты цитируешь долбаеба)))
>>1206862Нет, он процитировал не тебя.
>>1206867вот и я о том)))
Сука этот ебаный вебпак с его publicPath'ом каждый раз заставляет меня возиться в конце проекта с ебучими путями до ассетов. Что тут может не работать?пик 1: относительный publicPath ( для gh-pages )пик 2: лодерыпик 3: зачем то добавляет еще раз /assets/assets/ к путям до шрифтовпик 4: стили и js нормально подгружает используя относительный publicPath
Юзал реакт с обычным жс, решил перекатиться на тс, с чего начать? Стоит ли?
У мозиллы есть планы реализовать в квантухе поддержку FileSystem API на уровне хромиума?
>>1206904Начни с Flow.
Подписался на эпичный тред
>>1206689 (OP)Поделитесь ссылкой на торренты с интенсивом по свежему Angular от javascript.ru
/a{2}/.test('aab'); //trueПалит две А подряд/a{2}/.test('aba'); //falseКак палить не подряд?
>>1207265Не стоит вскрывать эту тему.https://regex101.com/r/nO4sqP/3
Кто мне может объяснить эту хуиту, что там написано. Этот код.http://bootstrap-4.ru/docs/4.1/components/forms/#custom-stylesЧто это блять? Как этим пользоваться? Если я у меня какое-то приложение и валидация в нём это одна из функций, которай должна осуществляться, по нажатию на какой-то бтн. Как мне эту ебалу переписать и нормально пользоваться?
>>1207667>по нажатию на какой-то бтнТогда вся эта ёбала вообще не нужна - вызывай просто form.checkValidity().https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation(русский перевод там тоже есть, но неполный).Что делает код на пике:0. Запускается после полной загрузки страницы.1. Находит все формы, имеющие класс 'требует-проверки' (видимо, ставится где-то в др. месте).2. Добавляет каждой event-listener на событие submit (отправка):......1. Проверяет, валидна ли форма.......2. Если нет - останавливает отправку.......3. В любом случае - добавляет класс 'было-проверено' (видимо, используется где-то ещё).Учи джаваскрипт.Не стесняйся заходить в гугол и искать там по кускам кода.
>>1207712>Тогда вся эта ёбала вообще не нужна Но, если ты хочешь именно bootstrap-валидацию, и, тебя, почему-то, не устраивает валидация по submit (почему?), то тебе надо сделать так, как внутри обработчика на пике - добавлять класс 'was-validated' после вызова form.checkValidity().Алсо, я тоже не делаю валидацию по submit - вызываю по кнопке, а потом делаю submit из js. Но, я и встроенную html-валидацию не использую, и вообще большой затейник.
>>1207712Класс was-validated добавляется только в случае чекВалидати === true, а вовсе не "в любом случае"!
Нахуя в проектах лепят es6-импорты, если они не поддерживаются в stable-версии ноды? Как это вообще работает? В ноде есть выстроенная экосистема, есть адекватное тестирование и куча библиотек. Как люди пишут любой js-код(даже на фронт) без ноды? Просто как? Сейчас хочу сделать простенький проект, который собирается в ассеты для браузера, но нужная мне библиотека принципиально не работает с commonJS модулями, видимо придется выбирать другую. Я не вижу смысла делать каждый пук в терминале через бабел ради одних импортов. В чем суть этой хуйни, кто и как ими пользуется?
Я БОЛЬШЕ НЕ МОГУ, БЛЯТЬПилил сайт на компе, перенёс всё на ноут и у меня ОТВАЛИЛАСЬ АВТОРИЗАЦИЯ, точнее, не работает ajax. На компе стоит ТОЧНО ТАКОЙ ЖЕ локальный сервак, файлы все ТОЧНО ТАКИЕ ЖЕ, я НИ СТРОЧКИ не поменял, но на компе всё работает, а тут нет, меня трясёт, блять, сука. Что здесь не так? НУ ЧТО? $.ajax({ type: "POST", url: "include/auth.php", data: "login="+auth_login+"&pass="+auth_pass+"&rememberme="+auth_rememberme, dataType: "html", cache: false, success: function(data) { if (data == 'yes_auth') { location.reload(); }else { $("#message-auth").slideDown(400); $(".auth-loading").hide(); $("#button-auth").show(); } }}); Ну всё же работает на компе, СУКАААААААА, я целый день с этим дерьмом вожусь.
>>1207827да что угодно может пойти пиздой, ты вкладку network в devtools покажи после того как кликнешь на кнопку чтоб сделать запрос, и в консоли что высвечивается тоже доставь.
АХАХАХАХАХАХАААААААААААААААААААААВсё, нахуй. Сюда написал и сразу всё решилось. Оказалось, что ебучая пыха сессию не стартовала. Но это не оменяет того факта, что НА КОМПЕ-ТО ВСЁ РАБОТАЛО. ЕБИСЬ ВСЁ КОНЁМ, ВЕРСИЯ ПЫХИ ОДНА И ТА ЖЕ, СУКА, НУ ЧТО ЭТО ТАКОЕ?!
>>1207793Если хочешь пользоваться - WebPack + Babel.Некоторые большие библиотеки, типа реакта, vue, jquery, lodash etc - можно отмечать как external в вебпаке, и инклудить в браузере отдельно. Это работает, если библиотека предоставляет глобальный объект - React, Vue, $, _ etc.Раскочегаривать всю эту механику ради одних импортов - бессмысленно. Но, есть ещё лямбды, классы, jsx, промисы, async, class properties и хуева туча js-фишек, которые появятся только в будущих стандартах языка.Плюс - структурирование кода.Без ноды - легко. Не использовать импорты вообще, и писать просто так, на глобальных объектах. Т.е. просто используешь глобальную переменную Vue, и всё. Естественно, включив загрузку соотв. скрипта в html.
>>1207792Нет.Читай код.
>>1207837Я знаю, как билдить ассеты, и весь es6 синтаксис, кроме импортов, доступен в текущей версии ноды. Проблема вообще в другом. Я хочу писать на ноде, тестить на ноде, и при этом не ебать себе мозги, подключая babel или --experimental-modules на любое телодвижение только из-за сраных несовместимых импортов, которые хуй знает зачем и кому сейчас нужны, раз они в ноде не поддерживаются из коробки. Собрать весь проект в ассет и отдать его браузеру - это задача на пять минут, я про нее не говорю. >Не использовать импорты вообще, и писать просто так, на глобальных объектах.Вопрос не в том "как писать", вопрос "нахуя так писать". Без быстрых тестов, без нормальной системы модулей, без нормально прописанных зависимостей и с постоянным засиранием глобалов. Я с этой хуйни и перешел на ноду для фронтенд-проектов в первую очередь.
>>1207844ES6 не поддерживается всеми браузерами.Те, что поддерживают - поддерживают не полностью и с багами.Нахуй он нужен вообще, если не поддерживается из коробки в стабильных версиях браузеров?(это я пользуюсь твоей логикой, если что)
>>1207830>ВЕРСИЯ ПЫХИ ОДНА И ТА ЖЕА версии ОС, апача, модулей к нему - разные. А потом выясниться, что бд забыл поставить.
>>1207848В браузерный код ты в любом случае переводишь все через компилятор. И есть разница между сахарком классов и перехуячиванием всей устоявшейся системы импортов. Например, с импортами я не смогу использовать NODE_PATH в своем проекте и мне придется ебаться еще больше, чтобы оставить require("shared/utils"), который удобно указывает на lib/shared/utils.js, а не переделывать его в ебучий релативный импорт.
>>1207860>перехуячиванием всей устоявшейся системы импортовС этого и надо было начинать.У меня такой проблемы нет (т.к. или вообще без ноды, или бабель везде), посоветовать ничего не могу.Кроме как погуглить - думаю ты не один такой расстроенный, возможно люди что-то придумали уже.Ну, и, добро пожаловать в волшебный мир веб-фронтэнда, лол.
>>1207850ОС - да, другая, но всё остальное такое же, базу экспортировал.
>>1207872Так вопрос, каким образом люди тестируют в сетапе babel/webpack без ноды? Не в браузере же и не вручную, это долбоебизм. Или волшебный мир фронтенда до сих пор не научился в адекватное автоматическое тестирование?
И опять же вопрос про es6 импорты, каким образом можно сделать адекватные не-релативные импорты без вебпак-костыля, чтобы работало в ноде? Например для CommonJS есть целая куча костылей: https://gist.github.com/branneman/8048520 Но в es6 динамические имена модулей использовать вроде как нельзя, NODE_PATH ни на что не влияет, так что почти все решения оттуда отпадают, а гугл нихуя не выдает.
>>1207906>babel/webpack без нодыЭто невозможно, и ты должен это понимать.И чем тебе бабель не угодил?Типа, вся остальная хуерга тебе норм, а бабель - это уже перебор, лол?Вообще, такое ощущение, что ты чего-то недопонял, и ломишься в открытую дверь.
вот как вообще возможно что сраный хайль ворд не запускается?
>>1208083ну ладно, после получаса исследований максимум что мне предложили это то, что на пике ( типа опциональными поставь, но хули ж толку тогда вообще с ТС-а? ) Я в ахуе пиздец, я половину базовых классов на ТС уже написал
>>1208089Именно поэтому народ и использует Flow.
>>1208092https://github.com/facebook/flow/issues/5869лел блядь сходу тут предлагается такой обходной путьComponent<*>
>>1208107Ты как-то выборочно там прочитал, лол.https://flow.org/en/docs/react/components/Алсо, не надо обходных путей.Надо примерно как в TS:Component<{propKeyA: string, propKeyB: number}, {stateKeyA: string}>
>>1208013После нормальных языков это чувствуется как пиздец, когда мне нужно ставить отдельный сторонний компилятор и везде его использовать, чтобы мой нативный код просто выполнялся, причем не в каком-то ебанутом окружении браузера, где нужно поддерживать десять версий IE, и это оправдано, а в моем основном рабочем окружении(!!!). Еще сверху нахуячить пресеты для браузера, пресеты для окружения ноды, пресеты для пресетов, плагин бабела для тест-фреймворка, и это абсолютный минимум. Сейчас поигрался с бабелем в ноде и ну его нахуй, лучше возьму либу, которая поддерживает CommonJS модули.
>>1208118Ниче, со временем у тебя вырабатается стокгольмский синдром.
>>1206689 (OP)Нужно знать html и css, чтобы начать учить JavaScript?
>>1208186Да, на все это у тебя уйдёт неделя или две, ничего сложного там нет, а потом будешь ебаться с жс, как я сейчасУуу сука зла не хватает, бросаю, и на следующий же день возвращаюсь, ничего с собой поделать не могу, надеюсь, через месяца два изучения, я все таки накатаю свою йобу.
Ребят , помогите дауну , я только недавно начал использовать git . Не понимаю еще механику , хотя читал .Вот я последним коммитом (а возможно двумя) испортил свой локальный репозиторий и хочу полностью заменить его веткой из гитхаба.Но моя локальная считается master и не дает это сделать . Как принудительно заменить её?
>>1206689 (OP)Анон, недавно пришлось на работе писать на js и так уж вышло, что кроме меня тут на нём никто не пишет, кода на js у нас нет, поэтому стал вопрос о закладывании какого-то фундамента из стайлгайдов, а потом и обмазывания всевозможными линтерами.Какие требования к стилю написания js-кода используются в твоей компании, есть какие-то общие, вроде pep-8 в питоне? Поделись, если можно, ссылками.Пытался гуглить, но зашился в десятках статей, каждая из которых предлагает свой подход.
Кто-нибудь из вас работал в веб-игрострое? Я имею ввиду современный веб-игрострой, где используются всякие канвасы и WebGL. Насколько сложно туда вкатиться? Какие требования? Действительно ли там требуются яйцеголовые со знанием матана (и будут ли по нему драть на собеседовании) или это просто будет плюсом? У меня есть уверенность в своих знаниях по JS (3 года хорошего опыта), но нет уверенности в своей алгоритмической подготовке, ибо не особо налегал на математику во времена учёбы в своей шараге, поэтому в голове отложились жалкие крохи и те выветрились за 4 года после окончания. И ещё, какая зарплата в этой сфере считается приемлемой?
>>1208206git reset --hard origin/master
>>1208224так ты ж программист => ты яйцеголовый
>>1208224150-200 тыс руб для быдлокодерка на шарпе
Как на канвасе объекты двигать? пытался организовать D&P , создав событие onmousedown, а внутри его на mousemove и mouseup, но оно игнорирует внутренние события
>>1208651https://javascript.info/mouse-drag-and-drop>D&PПНХ>внутренние событияТак это не делается. Попробуй через глобальный флаг.let hold = false;onmousedown => hold = true;onmousemove => if (hold) do shit;onmouseup => hold = false;
>>1208213Ты прав, дело не из лёгких. Стоит понимать, что ЖС это лингва-франка и у нас тут нет никакого доброго диктатора.Короче, если хочешь прям из коробки, но хуёвенько, то просто поставь в Вскодhttps://marketplace.visualstudio.com/items?itemName=numso.prettier-standard-vscodeНо тыжеинженер.Инструмент для линтинга это однозначно Eslint:https://eslint.org/Он очень гибкий требует попердолиться.Есть васянская попытка навязать для него стандартные настройки:https://standardjs.com/Но они предлагают не использовать точку с запятой, что противоречит спеке языка, поэтому сразу идут на хуй.Есть годный обоснованный стайлгайд от Аирбнб:https://github.com/airbnb/javascriptЕсли запустишь в проектеnpx eslint initОн среди прочего предложит тебе этот конфиг. Это будет хороший выбор для начала.Дальше можно добавить плагинов для конкретных библиотек. Например, если ты используешь Джест для тестов, то найдёшьhttps://github.com/jest-community/eslint-plugin-jestПомимо линтинга ещё нужно форматирование. Это Притиер:https://prettier.io/Нужно будет подружить его с Еслинтом:https://prettier.io/docs/en/eslint.htmlОстаётся только подцепить это на прекоммит-хук, чтоб дерьмо не протекло:https://github.com/typicode/huskyи наслаждаться.Если будешь использовать create-react-app, то почти всё это будет сделано за тебя. Читай их ридми.Ну и для Вскод поставить шикарные плагины под это дело:https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslinthttps://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscodeподсветки, подсказки, автоматизация, все кайфы.
>>1208089просто ТС говно без задачв боьшинстве случаевОткроем твой первый пик:>document.getElementById('root') as HTMLElement>as HTMLElementСильно помогло? Без него бы руки отвалились, наверное, да?
>>1208213Лучше заложи фундамент из нормальной архитектуры, тестовой дисциплины и настроенного окружения. Всегда охуевал с людей, которые на полном серьезе дрочат на стайл гайды. Стайл гайд - это чтобы ньюфаги не писали совсем уж срань и для каких-то специфичных особенностей языка, но если у тебя есть любой опыт разработки, то ты и так знаешь 90% того, что тебе предложит стайлгайд, потому что это просто common sense. Особенно этим любят заниматься фронтенд-макаки почему-то. У него 0% тестового покрытия, нечитаемая реакт-залупа на 200 строк кода в файле, где логика идет вперемешку с шаблоном, а он на стайл-гайды дрочит. Один мне на полном серьезе затирал, что вот в прошлой компании у него писали как попало, а в текущей используют стайлгайд и ему сразу заебись стало. Это каких макак набирать надо и как не уметь их загонять в рамки, чтобы стиль кода на что-то влиял? Не говоря уж про то, что любая IDE с плагином тебе и так покажет основную хуйню.
На одном сайте есть скрипт вида:var a = true;if(a){ window.location = 'nahui eto suda';}Я пробовал в tampermonkey прописать что то типа const a = false;, но это не сработало. Можно как то избавиться от этого редиректа при этом не блокируя полностью выполнение яваскрипта?
>>1208755window.a = false;
>>1208757Лучше дажеObject.defineProperty(window, "a", {value: false});
>>1208197Спасибо). Красивый язык, я бы если бы и работал, то на жс, за еду
>>1208665спасибо, сейчас попробую
>>1208853>Красивый языкНе смеши.
>>1208757>>1208759В обоих случаях значение a перезаписывается и срабатывает условие: https://jsfiddle.net/qLtxsc6n/
Посоны, а где почитать про геттеры и сеттеры? Желательно на нормальных примерах с дом. Я нихуя не понимаю кантора, это пиздец какой-то. Какая блять есть альтернатива кантора?
>>1209095https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_settersМожет проблема не в Канторе?К тому моменту, когда (если вообще) тебе они понадобятся, ты уже забудешь их синтаксис. Так что пока тебе просто достаточно запомнить, что они есть.
>>1209185ну я только месяц как учу джс и мой ментор говорит мне , что сейчас мне мой код, в моем мини приложении надо переписать с ипользованием сеттеров и геттеров и почитать про протатипное наследие. Сижу с лицом грустной жабки и вообще слабо одупляю зачем на данном этапе моего вката вот это вот всё сейчас.Я бы еще бы каких-нибудь форм бы поклепал простых.
Есть короче проект, стак nodeJS, graphQL, typescript, postgresQL, sequelize, не хочу блять милиарды раз описывать ебучие типы, с таким стаком это: GraphQL типы,TS интерфейсы,Sequelize моделиВыглядит как полное говно, есть ли норм решение чтобы был один trust source?
>>1209228>зачем на данном этапе моего вката вот это вот всё сейчасЗатем, чтобы сделать трёхслойное приложение, где были бы Model, Controller и View. Как раз функции-геттеры нужны в т.н. «модели». А уже поверх неё — можно и форм поклепать простых.
>>1209228Чтоб твоему ментору поднасрать, скину тебе шизика светоча:https://www.youtube.com/watch?v=lfdAwl3-X_c
Посмотрел сейчас, что такое есть React Context.И как надлежит его юзать.Это какая-то лютая костыльная неюзабельная хуйня.Что-то как-то они перемудрили с чистотой.Напоминает стерильно-чистую бессмысленную собянинскую Москву, лол.Вообще, реакт как-то разочаровывает по мере углубления в него.И как-то снова начинает нравться Vue, лол.
>>1209352Используй один маппинг для объекта, а в остальное время работай с данными? То есть пришел тебе запрос с JSON-объектом, ты пропустил его через маппинг, который конвертирует все поля в нужные типы, а потом работаешь с уже конвертированным объектом, убираешь неразрешенные поля, валидируешь и т.д. Конкретно с этим стеком не работал, но обычно используют ДБ схемы для этого, там уже все типы проставлены.
подскажите, че сейчас на фрилансе актуально?2 месяца работал в офисе, но работать с 8 до 8 (с учетом пути) 5 дней в неделю меня доебало, не моё этодумаю попробовать вкатиться во фриланс, но проблема в том, что вся работа в офисе была построена на гугловском полимере и обычно он нахуй никому не нужен, поэтому я не уверен во что лучше тыкаться
>>1209515фулл стеки актуальны и cms. Забугор - WP, в Роиси битрикс
>>1206689 (OP)доброго времени)я хочу сделать мультируменый чат с использованием socket.io, что бы комнаты юзеры могли создавать сами на летуи думаю что лучше подойдет в socket.io для этогоnamespace или roomно не понимаю их различий .___.подтолкните, пожалуйста, в нужную сторону
>>1209492Так лол, это graphql делает, там стрикт тайпы. Мне просто пиздец как не хочется описывать эти же тайпы ещё и в тайпскрипте и в схеме для постгреса.
>>1209611Сделай генератор.И генерируй.
>>1209611Так а нахуя ты описываешь и там, и там? Цели какие?
>>1209701Хочу писать на тайпскрипте с автоподсветочкой и всеми плюшками. Для этого нужно тайпить. Ладно, нашел такую штуку, попробую ееhttps://github.com/19majkel94/type-graphql>>1209667ебанутый?
>>1209734>ебанутый?Сынок, ты, видимо, туповат.Поясню - типы у тебя описаны в одном месте, например, в TS.Для всей остальной хуйни можно описания типов генерировать по описаниям TS.Или TS типы генерировать ещё откуда-то.Я, например, генерирую их из Java классов, как и SQL схему.
>>1209743План хорош, но чета мне не нравится. Но план хорош.
Сап, формошлепы. Не дает покоя одна херь - вот есть родитель, есть у родителя сынка-корзинка. На сынку-корзинку вешается eventListener, срабатывает кулбэк, в нем удаляется родитель ( допустим body.removeChild(parent) ). И вот вопрос, удаляется ли сам eventListener с пездюка при этом? По идее должен, но сука как проверить. Удалять явно листенер впадлу, там именованная функция должна быть - впизду переписывать.
>>1209790Ответа на твой вопрос нет. Ты не контролируешь среду выполнения (бровзер у клиента). Раньше они текли на ровном месте. Сейчас даже куски замыканий выбрасывать умеют.Если будут неприемлемые тормоза в конкретном браузере, дампать память и смотреть.
>>1209851Понял, спасибо!
>>1209790Читни-ка стакца:https://stackoverflow.com/questions/12528049/if-a-dom-element-is-removed-are-its-listeners-also-removed-from-memory
>>1209933Ну, пожалуй впизду евентхендлеры. Пускай сидит в памяти, если такой пидор.
>>1209941В смысле?Там же написано, что всё убирается, в том числе и в jQuery (если и добавлял хендлер и удалял элемент через jQuery).
>>1209947При условии, что у тебя на эти элементы не осталось ссылок - в переменных, массивах и т.п.Если ссылки есть - надо им присвоить null.
Двач как мне заставить flow не выебываться на бинд эвент лиснера в конструкторе?
>>1209993отбой
Почаны, почему vue.js настолько меньше весит чем реакты и ангуляры? В чём подвох? Можно использовать его в проекте не беспокоясь о том, что может всплыть какая-то хуйня?
>>1209994Используй class properties (babel plugin).https://babeljs.io/docs/en/babel-plugin-transform-class-properties/И пиши просто в теле класса:handleChange = (e) => {...}И state тоже в теле класса можно определять.Т.е. конструктор получается просто не нужен.В современных гайдах по реакту везде так пишут.Включая авторов.
>>1210059Уточню - это чтобы this не биндить.Самый кошерный способ.
>>1210030Можно.Алсо - реакт и ангуляр - это очень разные вещи.Более разные, чем хуй и пизда, например.
>>1206689 (OP)Посоны, я принёс вам таскабельный PGP: https://username1565.github.io/pgp/Поддерживается:- генерация ключей RSA, ECC- цифровая подпись- проверка подписи- шифрование (с подписью или без)- дешифрование (с проверкой подписи или без)- шифрование файлов, в том числе и бинарных- закачка файлов, в том числе и бинарных.Исходник тут, можно скачать в ZIP-архиве: https://github.com/username1565/pgpМожет ещё чё-то исправить или допилить, а?
>>1210165Но ты же просто форкнул уже готовый проект и подправил стили с UI, что там еще делать?
>>1210165>форкнул чужой проект>поменял название с PGP Key Generator на PGP Suite>Посоны, я принёс вам таскабельный PGPУ нас тут Денис Попов выкатил свежий релиз Болженос 2.0
>>1210353Не нравится что-то — ну так не пользуйся и иди нахуй, пидораха. Или обязательно кукарекнуть надо, долбаёб?
>>1210363>пидорахаОх уж эти проекции.Алсо бамп обосратушкам :3
>>1210199Я пхнул туда верификацию отдельной вкладкой, и в декрипт, сунул её тоже.Base64 для файлов добавил и функции к закачке файлов.Что делать? Думал вы подскажете, после всяких тестов.Может, какой-нибудь Jasmine-тест прикрутить можно было бы ещё.Но есть несколько намеченных направлений для фиксов...1. Я не могу зашифровать сообщение на сайте https://smartninja-pgp.appspot.comиспользуя ключи, сгенерированные здесь.А вот ключи сгенерированные там - шифруют нормально.Это указывает на несовместимость генераторов, но я нифига не пойму при компарации kbpgp.Тот человек пишет, что эта версия - SSH-адаптирована.Возможно поэтому генераторы несовместимы, но у SSH - другие ключи. Пикрил.Возможно было бы выдавать и их.2. Когда сообщение зашифровано (публичным ключём RSA),да ещё и с подписью (другим приватным ECC), в зависимости от очерёдности,должно бы быть возможным либо дешифрование без проверки подписи,либо проверка подписи и возврат шифрованного сообщения с фингерпринтом.Ни первое, ни второе - не работает. Подозреваю подпись обоими ключами.3. Я видел ещё, там, внутри, Diffie-Hellman'a - его можно было бы вынести - отдельной вкладкой.
>>1210353А ты кто вообще, чё материшься и забей на него.>>1210353Ты там не прихуел?Ещё и картинку прилепил.Ты посмотри когда форк сделан, это во-первых.Во-вторых, пикрелейтед>>1210367Ой, ну не бампай себя.
>>1210385Прикрути ноду, разбей на нормальные компоненты и тестируй как человек.
Это JavaScript-тред? А то тут как-то тухло. Я думал во фронтенде всегда большая движуха. Хм.Объясните пожалуйста суть CORS. Вот допустим, запрещены в большинстве браузеров кроссдоменные XMLHttpRequest-ты.Чтобы его выполнить, такой запрос должен удовлетворять двум требованиям:1. Быть простым (т.е. POST/GET + 4 заголовка)2. Ответ сервера должен в заголовках содержать Access-Control-Allow-Origin заголовок, который как бы намекает о том, что сайт работает с междоменными запросами и всё ок.Если первое требование не выполняется, то, я так понял, запрос не совершается вовсе, что можно обойти с использованием предзапросов.А если второе, то запрос совершается, но при отсутствии необходимого заголовка ответа браузер не вызывает событие load.Но прикол в том, что запрос всё равно совершается! То есть, если по данному урлу есть какая-то логека, то она отрабатывает в любом случае, просто клиент получит ошибку.В чём суть этой йоба-защиты, если она ничего не меняет и не предотвращает сами запросы?
>>1210486> В чём суть этой йоба-защиты, если она ничего не меняет и не предотвращает сами запросы?Хацкер не получит данные.
>>1210491А, я понял. Защищают ведь не самого хацкера лол, а клиента, который посетит хацкеркий сайт.Ибо данные, которые были получены от такого запроса до клиента так и не дойдут (браузер их парежит), поэтому они далее никоим образом обработаны быть не смогут.Я видимо изначально неправильно понял. Благодарю.
Сап, программач. Нужно написать часы для сайта в которых будет 30 часов в сутках, минуты и секунды стандарт. Как это реализовать?
>>1210495> никоим образом обработаны быть не смогутИменно)Пожаловаться, анончик.
>>1210503Имеешь переменную, которую инкрементишь раз в секунду. И все.Дальше остатки от деления и деление без остатка.
>>1210506> Пожаловаться пожалуйста, самофикс
>>1210508>инкрементишь раз в секунду>jsРазве что это на ноде делать, а затем - по вебсокету гнать. Нет, правильнее таймстамп переводить с свой кастомный формат, и таки да, обновлять отображение раз в секунду.
Помогите разобраться с квантификатором или Вот отсюда первый абзац https://www.regular-expressions.info/captureall.html:When creating a regular expression that needs a capturing group to grab part of the text matched, a common mistake is to repeat the capturing group instead of capturing a repeated group. The difference is that the repeated capturing group will capture only the last iteration, while a group capturing another group that's repeated will capture all iterations. An example will make this clear.Let's say you want to match a tag like !abc! or !123!. Only these two are possible, and you want to capture the abc or 123 to figure out which tag you got. That's easy enough: !(abc|123)! will do the trick.Now let's say that the tag can contain multiple sequences of abc and 123, like !abc123! or !123abcabc!. The quick and easy solution is !(abc|123)+!. This regular expression will indeed match these tags. However, it no longer meets our requirement to capture the tag's label into the capturing group. When this regex matches !abc123!, the capturing group stores only 123. When it matches !123abcabc!, it only stores abc.This is easy to understand if we look at how the regex engine applies !(abc|123)+! to !abc123!.Открываю общий гайд, говорят, что + это 1 или больше повторений https://learn.javascript.ru/regexp-quantifiers:+Означает «один или более», то же что {1,}.Например, \d+ находит числа – последовательности из 1 или более цифр: var str = "+7(903)-123-45-67";alert( str.match(/\d+/g) ); // 7,903,123,45,67СООТВЕТСТВЕННО!В примере выше 'abc123blablabla' не будет матча !(abc|123)! Но если добавить плюс, то матч будет. Но почему?! Ведь когда гайд делает !(abc|123)+! - по этой логике должна матчиться ИЛИ группа абц, повторенная 1 и более раз, ИЛИ группа 123, повторенная 1 и более раз. Ни повторений группы абц, ни повторений группы 123 здесь нет, и нет их объединения в одну группу.Но по факту действительно матчится весь набор абц123 разом. КАК? Какого хуя! Ведь здесь нет ебаных повторений!?
>>1210736>с квантификатором "+" хз как так автозамена на или заменила.
>>1210736>по этой логике должна матчиться ИЛИ группа абц, повторенная 1 и более раз, ИЛИ группа 123, повторенная 1 и более разНу так оно и матчит группу, повторенную один и более раз. В строке 123abc123 группа (123|abc) повторяется три раза.
>>1210427Та, ну, я просто вкинул, думал вы лучше запилите. Хэххэх...
>>1210798Он путает матчинг и поиск, похоже.
>>1206689 (OP)цените че нашел
пацаны, чем ебаное модуло отличается от ремайндера?
В офисах как принято работать с Git? В VSC практикуют? Или принципиально важно выучить все эти ебучие консольные команды?
>>1211395В ЖС только ремайндер, который иногда тоже называют модуло. Знак у результата будет как у делимого.5 % 2 == 15 % -2 == 1-5 % 2 == -1Модуло есть в других языках. Там вроде знак от делителя.
>>1211444У нас вебшторм, откуда без консоли большей частью манипуляций занимаются. На сколько понимаю, в вс коде тоже самое есть и ты говоришь об этом, типа меню, где выбираешь команды, и все за тебя делается.То есть норма и без заучивания команд.
RxJS с реактом не используют? Вот я там увидел полезные фичи, а потом вспомнил, что я это обходил просто используя стейт, играя с тру\фолс, чтобы предотвратить ненужные действия. То есть мне такого и нужно придерживаться, а RxJS больше для ангуляра подходит, где уже все по-другому?И еще вопрос. Что используете из ramda? Какие мастхев методы есть и на какие стоит обратить внимание? Можно и из лодаша называть. Кроме пайпов и карринга.
>>1211444Вообще не представляю, как и нахуя работать с гитом через UI. Разве что изменения смотреть, а так в сто раз легче и быстрее написать команду. Что там учить-то? git add, git commit -m, git commit --amend, git checkout, git merge, git pull, git reset, git push, git status - все, что тебе понадобится в 90% случаев. Половина из них говорит сама за себя
>>1211554так-то две кнопочки в иде быстрее жать, чем скрывать иде, открывать консоль, писать три подряд команды, скрывать консоль. + без юи ты не видишь нормально кто сколько закоммитил, когда разошлись ветки, кто насрал в мердже и тд
>>1211558Интересно, как можно работать без открытого терминала? В динамическом языке, например, хуй настроишь нормальный test-runner в IDE, легче уж в терминале команду выполнить. И напечатать команду всегда быстрее, чем мышкой кликать по залупам, выбирать, что закоммитить, что заресетить, что выкинуть и т.д. UI нужно только чтобы визуализировать изменения.
>>1211561> Интересно, как можно работать без открытого терминала?Макаки же, ну
>>1211554Я не пойму, использовать циклы и if..else признак говнокодера? Какой бы курс не смотрел, все стараются избегать подобных конструкций
p.s. этот пост н кому не адресован, просто ответ приклеился
Сап, посоны.Не жава-программист и не программист вообще, но требуется запилить небольшой скрипт для браузера.Поясните, плз, как реализована вот эта ебала на пике. Не кукла, а именно форма и кнопки, которые бы появлялись при загрузке определённой страницы стороннего сайта. Это всё через изменение CSS-стилей страницы добавляется или как-то иначе?
>>1211689> иначеThis
>>1211690А подробнее немного? Или дай ссыль на какой-нибудь страницу какого-нибудь learn.javascript.ru , где я мог бы прочесть, как именно такую форму сделать.
>>1211692htmlbook.ru
>>1211693Конкретизировать можешь "что"/"чего". Встройка хтмл что ли?
>>1211695Да
>>1211696Но если сайт не мой, а сторонний, то как правильно встроить хтмл? Форму-то я создам, разберусь с отправкой данных из неё.
>>1211598if else не говнокод, на одних тернарниках не разрулишьсяциклы не очень по двум причинам, во-первых это зависимость от "внешних" переменных, типа каунтеров для for, либо условия для while, отсюда вытекает еще несколько грустных особенностей. во-вторых сейчас набирает популярность функциональный подход, а циклы - императивщина как есть.
>>1211598С чего ты взял? Если совсем простое выражение, то можно заменить if..else на тернарный оператор, циклы обычно обернуты в функции поудобнее, например map filter reduce у массивов, но это тот же самый цикл. Без for..in ты объект не переберешь.
>>1211703xss, либо ручками каждый раз встраивай свой html-код в страницу того сайта
>>1211710> Без for..in ты объект не переберешьможно пройтись по массиву ключей
>>1211598https://www.youtube.com/watch?v=P3fqetErxjAПризнак говнокодера — пытаться выёбываться в коде.https://jrsinclair.com/articles/2017/javascript-but-less-iffy/if есть, чем заменить. Но стоит стремиться к тому, чтоб код был человечным, походил на простые предложения. В таком случае if подходит лучше всего.Стоит избегать сложных условий. Если больше одного оператора или регулярка, то упаковать в функцию с понятным названием:if (isValid(email))Чаще всего можно избавиться от else. Тогда ветвление, перегружающее мозги, станет простой последовательностью:if (cond1())if (cond2())Код должен читаться как предложение, без подрубания интерпретатора в голове. Если такое внезапно помогут сделать свич или тернарник — настало их время.Циклы чаше всего нужны при работе с коллекциями.https://jrsinclair.com/articles/2017/javascript-without-loops/Опять же, методы коллекций дадут код, более похожий на человеческие предложения:отобразить пользователей как их айдишникиusers.map(user => user.id)Вспоминая прошлый абзац,кто-то из пользователей админusers.some(isAdmin)Если коллекция большая, а задача нетривиальная, может потребоваться для эффективности таки использовать циклы, ветвление, байтоёбство. Ты уже догадался, нужно инкапсулировать всё это дело в функции с читаемым названием:users.reduce(comlexData, store);function complexData(store, user) {for { for { switch {} }}}
>>1211732for...in и так проходится по массиву ключей, просто более удобный синтаксис.
>>1211716Оке, спасибо.
>>1211737>Чаще всего можно избавиться от else. Тогда ветвление, перегружающее мозги, станет простой последовательностью:>if (cond1())>if (cond2())Хуйня.
Если я хочу создать объект CSS класса, то let cell = document.createElement("cell");подойдет? Он создаст именно такой объект как на пике?
Почему джаваскриптобояре так любят рекурсию?
>>1211845Не создаст.
>>1211853Прост
>>1211855Как надо делать? Я весь вечер пытаюсь, но не дается мне.
>>1211857Ты создаешь пустой элемент, которого нет в стандарте, в структуре html. Тебе же необходимо генерировать класс.На жс это будет выглядеть совершенно иначе.
>>1211740мы вам перезвонимkeys берет только собственные свойства объекта, а for in лезет в прототип. Можно жидчайше сирануть в этом месте в определенных ситуациях.
>>1211861То есть придется создать один элемент и его помножить?
Поспорил с батей на косарь, что сделаю игру в крестики и нолики в которую он не сможет победить. У меня есть шансы получить КОСАРЬ?
>>1211867Если я не ошибаюсь, достаточно просто написать ИИ, который будет сводить любую партию к ничьей. В закреплённом треде попробуй спросить алгоритм.
>>1211867М И Н И М А К Сhttps://github.com/ahmadabdolsaheb/minimaxarticle/blob/master/index.js
>>1211875>>1211869Спасибо, батя уже готовит косарь.
>>1211716Хотя нет, погоди. Ты меня наёбываешь. Хочешь сказать, что с помощью JS нельзя изменить страницу какого-либо сайта, чтобы добавить какой-нибудь элемент? Я же не на стороне сервера это делаю, а на стороне своего компьютера.
Сап, хотел написать дампер файлов с треда, чтоб локально хранить дамп треда.Первую версию написал на nodejs, в хедеры добавлял примерно те же хедеры и куки что и отправляет мой браузер даже usercode_auth, но почему то небыло доступа к gg,h,e и прочем 18+ доскам. Я на это забил. Но почему то даже при дампинге с b треда у меня половина файлов бьётся. Код вот https://pastebin.com/6P700q00 .Сделал синхронную загрузку файлов и со sleep между файлов. Но все равно блять, они бьются. че за хуйня ? Делал синхронную загрузку чтоб время было между реквестами. Ибо получается ебучий дудос (5 реквестов в сек лол) и вдруг Абу посчитает что это дуос и заблочит
>>1211863Ну да, слава богу, что уже несколько лет можно не трогать руками кривейшие жс-прототипы, а использовать более-менее человеческий сахарок классов и забыть про эту хуйню как страшный сон.
>>1211925Я этого не говорил. Можешь и через js всё это делать.
>>1211863>>1211929Только посмотрите на эту блевоту.
>>1211929где еще пишут на ооп? Класов не видел уже на фронте милиард лет, на беке вот первый раз буду typeORM чекать, декораторы там все дела
>>1211933TypeScript йопта.
>>1211933Интересно, как ты собрался писать без ООП на ОО-языке? Нет, я понимаю конечно, что и на джаве можно в 100% функциональном стиле писать, но нахуя стрелять себе в ногу?
>>1211930Так как тогда добавить блок или редактировать, например, на том же mail.ru? Как правильно называется сие действие? Мне банально нужна форма с полем для ввода текста и кнопкой.
>>1211937вот как раз захожу в класы, на тсе уже года полтора пишу чисто в функциональном стиле. НА БЭКЕНДЕ :3
>>1211940Я не буду за тебя реализовывать твою хотелку.
>>1211946Где я тебя прошу её реализовывать за себя? Ни в одном посте с самого начала это не было. Я попросил дать ссылку на урок или хотя бы ключи для поиска.
>>1211689Бамп вопросу.
Котаны, а как перекатится в новомодный js после двух лет на ruby? С чего начать? Есть ли тут бывшие рубисты? Расскажите свои кулстори.
>>1211689https://msdn.microsoft.com/en-us/library/aa767736(v=vs.85).aspx
>>1211953Я хз, что ты этим сказать хотел. Выше я уже писал, что ни разу не программист. Ты можешь нормально сказать, что гуглить, а не кичиться тем. что ты знаешь js, а кто-то нет?
>>1211940Жмешь правой кнопкой на странице и выбираешь "Inspect Element", после чего редактируешь html-контент страницы как хочешь.
>>1211959https://habr.com/post/52346/ вот норм статья
>>1211962Бля. Я сделаю скрипт, вставлю его в хром, а именно в тэмперманки. Нахуя мне его руками каждый раз вставлять? Вопрос в том, какие теги/команды/функции/хуй знает, что ещё встраивают ту же хтмл разметку или ксс из этого скрипта на страницу, на которой он запускается.
>>1211976https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction
>>1211952Попробуй начать с прочтения документации.
>>1211979Это актуально, если бы на страницу был заранее встроен скрипт или путь к нему прописан.
>>1211986Если ты хочешь что-то вставить в дом, то тебе очевидно нужны методы работы с домом. Хоть как свой скрипт вставляй.
>>1212000> Хоть как свой скрипт вставляй.Так с этим вопросом я сюда и пришёл. Сколько ни гуглил так и не нашёл, как его вставить. Везде предлагается только <script></script>. Руками, естественно не подходит.
>>1211952>в жс с рубиТы че ебач чтоле?
>>1211952Берешь да перекатываешься. Язык даже попроще будет. Только готовься к функциональщине.
>>1211952Вообще-то, именно в JS и перекатились все хипстеры-смузихлёбы рубисты.Или ты думал откуда всё это в JS?
>>1212072Я перекатился(потенциально) в охуенный эликсир, а на жсе сделал пару простых серверов и сейчас перехуячиваю фронт для старого рельсо проекта на реакт, чтобы не было так больно работать с тем легаси-говном, что там накопилось в ассетах. Ну и сам проект перевожу на эликсир потихоньку, потому что давно нужен полный рефактор, так что хули бы и не переписать на новый стек. Надеюсь к концу года будут заметные результаты.рубист не-смузихлеб
>>1212186>несмузихлеб>эликсирАга.
>>1211952>Котаны, а как перекатится в новомодный js после двух лет на ruby? С чего начать? С понимания что нода - это однопоточный эвент-луп поверх восьмеры и libuv и весь твой код, который не из батареек, его нахуй блокирует. Потому что в батарейках, как правило, попердолились с асинхронностью за тебя. Чтобы не блокировал - тебе нужно чтобы твой код регулярно совершал антипаттерн многопоточного программирования - то бишь ложился нахуй спать каждые n итераций - в результате чего получается что пердак будет гореть только у одного клиента, который будет полтора часа дожидаться отчета о доходах/расходах компании в разрезе временных отрезков, а не у всех остальных, из за того что бабаманя из бухгалтерии положила весь твой бэкенд нахуй. Есть еще конечно,встроенный хластер, но он всего лишь запускает 8 отдельных экземпляров твоей аппликухи и обеспечивает свой маняраундробин-фейловер (с этой же задачей справляется гораздо лучше нужник и http на unix domain sockets), но его отличие от первого варианта в том, что таких бабмань-бухгалтерш понадобится для убивания апликухи не одна как в первом случае, а по количеству процессоров.ES6 и ES2015 в этом плане принесли возможность использовать промисы и yield, что несколько облегчит твою жизнь, но необходимость превращать свой код в лапшу из setTimeout() по прежнему остается, как только твоя бизнес логика вырастет за пределы "склеить батарейки по Readme.md".
>>1212207Большинство хипстоты ничего кроме >склеить батарейки по Readme.mdи не делает, потому что верх сложности проекта для них - это интернет-магазин, где самая тяжелая бизнес-логика это запросы для бд, которые в тамошних батарейках асинхронные по-умолчанию. А описанное тобой обычно на интырпрайзной жабе пишут.
>>1211933>где еще пишут на ооп? Класов не видел уже на фронте милиард летА реакт по-твоему что?
>>1212218Тот случай, когда ООП обусловлено сутью библиотеки (мапинг кусков хтмл в виджеты). Хуизнес-логика один хер - это асинхронные колбеки/асинк с промисами, с которыми ооп не дружит.
>>1212218В оригинале реакт вообще был на Standard ML написан.ООП интерфейс взяли при порте на JS чтобы народ не спугнуть, да для оптимизации под JS реалии
>>1212244>>1212277Охуеительное у вас представление об ООП уровня восторженного ньюфага "ФП хайпят, значит ФП это охуенно а ООП - говно". Объект - это набор методов с внутренним стейтом, только и всего. Если вы раньше хуячили наследование наследования наследования и называли это "ООП", то это не проблема ООП и вы так же будете хуярить говнокод в любом функциональном языке. На жсе писать в тру-функциональном стиле нерационально и практически невозможно. Композиция функций, лямбы, монады и т.д - это не ФП. Это его элементы, которые прекрасно уживаются с объектами и классами. Точно так же, как наследование, полиморфизм и прочие элементы ООП прекрасно применяются в функциональных языках. Хорошая программа должно использовать и то, и то.
>>1212289Мне-то ты что говоришь. Я прекрасно знаю об ML модулях, которые аналогичны ооп во многом, а так же о скале.
Объясните момент с регулярками.Вот есть какая-нибудь var string='abc123'.В этой стр, допустим, можно выделить (abc)(123) // $1$2 Вот так можно захватить группы в .test, .match, .replace.А вот как мне эти захваченные группы засторить в переменную?Т.е. грубо говоря1. Действие один - где-то захватываю группы (н-р var RegExp=(abc)(123) или хз2. Действие второе вынести группу $1 или группу $2 в переменную. Чтобы потом можно было реплейсить в стр переменной, в которую засторили группу 1 или группу 2 плюс совершили действие какое-то.
>>1212299
Объясните мне, котаны, чтому в вашем жабоскрипте такие хуёвые числа. Бабосик считать - рви пердак, числа больше сраного квадрилиона (может пилить экономическую стратегию хочу, или там круд для банка ZOG) - используй другие библиотеки и рви пердак .add(number2) вместо оператора сложения, и так блядь весь код потому что мне большие бабосики складывать надо. Чому такая хуета, да и вжабке обычной тоже, все пиздят за интырпрайз а как бабосики считать - так рви пердак, где ж этот ваш интырпрайз?
Решил через колбэк в реплейс.
>>1212313Спс буду иметь в виду. Но уже ебнул через колбэк в реплейс.
>>1212319BigInt скоро подъедет. Уже в последнем хроме есть.
>>1212319BigDecimal и BigInteger уже давно есть в джаве, долбаёб
>>1212379Ну так он и сказал, что нужно использовать .add вместо оператора
тест
Реактоблядки, поясните такую вещь.Есть stateful компонент item-editor, в нём два text input и кнопка save.И есть список items.При нажатии на строку этого списка в item-editor передаётся выбранный item как prop.При этом value у input'ов заданы из внутреннего стейта + onChange.И получается такая хуйня, что всё это не работает.Потому, что стейт не знает, что проп поменялся, и надо обновиться.Потому, что реакт - сюрприз - нихуя не реактивный, лол.getDerivedStateFromProps() - не то.Делать сайд-эффект в shouldComponentUpdate() - менять там state из нового prop?
Внимание вопрос знатокам.Задает полный нубас.Юзаю я значит Math.random(); и всплыл такой вопрос - по нему совсем малая погрешность, т.е. на 1000 итераций, если брать, скажем, 0.15 как пограничное число, выдаст что-то вроде 144 тру и 856 фолс.Это Node.js, почему у него ядро такое предсказуемое?Я сейчас еще запилю хвататель стриков, посмотрю сколько подряд выхлопов дает тру/фолса, но вангую что не много, при таких=то показателях.Вопрос в догонку, есть ли другие варианты рандома?
>>1212581Вынеси стейт инпутов в item-editor, раз ему нужно знать об этих изменения, очевидно.
>>1212588Он там и есть.Проблема в том, что он должен меняться при смене prop у item-editor - когда выбрали новый item.Но, нормально это можно сделать 1 раз - в конструкторе.
>>1212593>При этом value у input'ов заданы из внутреннего стейта + onChange.>Он там и есть.Че? Код давай
>>1212596https://pastebin.com/yqWuHPZA
>>1212586https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random>does not provide cryptographically secure random numbers.https://nodejs.org/dist/latest-v10.x/docs/api/crypto.html#crypto_crypto_randombytes_size_callback
>>1212608Мне не для безопасности, просто в Питоновском мате приходилось делать костыль для обрезания долгих стриков, при "шансе" в 1% могло выдать и 300 и 400 фолсов подряд.Сейчас почитаю что скинул, спасибо за внимание.Обезьяна конченная зачем ты прокси банишь на /pr/?
Какой метод перебирает массивы резче - файнд или фильтор?
>>1212635Фильтр
>>1212600https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.htmlИ ты каждый раз в конструкторе ставишь в state одни и те же статичные значения, а не полученные из props
>>1212662>И ты каждый раз в конструкторе ...Да неужели, лол.Естественно - на момент создания компонента редактируемый item не выбран.За ссылку - спасибо.Это именно то, что нужно.В итоге всё, как обычно, сводится к lifting state up.Реакт, конечно, лютая opinionated xyuta.Реально, прямо физически утомляет всё это.Одного китайца, похоже, так утомило, что он аж целый фреймворк написал, лол.
>>1212676Ну так поставь this.props.item.id || '', не? И defaultProps = { item: {} }
>>1212600>>1212676https://pastebin.com/ZgfbyWgv Так попробуй, должно работать.
>>1212679Да это понятно, но, проблема же не в этом.В итоге, при создании всё равно соответствующие поля в стейте будут пустые.Вопрос был - как менять state при изменении props.В принципе, componentWillReceiveProps() - это решение. (И getDerivedStateFromProps() - нихуя не замена ему, как они пишут.)Но, они говорят - это антипаттерн, выносите состояние (и обработку его изменений) выше.Алсо, умиляет, что тот блог-пост всего 10 дней назад написан.На самом деле - этот пример (и тот, что в блог-посте) - это самая мякотка Реакта, которая показывает всю глубину ебанизма.Снова вспоминаются всякие афоризмы на тему pure = poor, лол.
>>1212694Итем лист и item-editor обернуты в родительский компонент. Когда ты жмешь на итем в списке, родительский компонент апдейтит свой стейт {selectedItem: item} и соотвественно ре-рендерит все дочерние компоненты, включая item-editor, куда передает item={selectedItem}. editor инициализируется заново с новыми props и проставляет себе новый state, соотвественно перерендеривая все дочерние инпуты с нужными тебе значениями. В чем проблема, что я упускаю?
>>1212699Item-editor не создаётся заново при этом.Конструктор не вызывается.Стейт не меняется.Надо использовать componentWillReceiveProps(newProps).Или выносить стейт и onChange в род. компонент, а item-editor делать функцией, как в примере в том посте по ссылке. C getDerivedStateFromProps() у меня (вчера) не получилось, надо попозже ещё попробовать, возможно, я чего-то недопонял.Чтобы было понятно, зачем я со всем этим ебусь - я хочу понять, чего оно вообще стоит, в целом, прежде чем всерьёз в это ввязываться.Потому, что Vue мне кажется в разы более практичным.И кроме удовольствия других эмоций не вызывает.Но, у React мне нравится инструментальная поддержка, и вообще то, что это чистый JS.Но, если за эти ништяки надо заплатить слишком дорого - то пусть оно идёт на хуй.Потому, что для Vue инструментальная поддержка тоже неплоха (для single file components), а бойлерплейта там в разы меньше. И куча дополнительных ништяков. И можно даже писать в react-стиле на JSX (но неинтересно и не нужно, в большинстве случаев).
>>1212713>Потому, что Vue мне кажется в разы более практичным.Вьютух становится всё изобретательней. Уже целую многоходовочку с лифт-стейтом разыграл, как по нотам.
>>1212713Все, я разобрался. Да, думал, что конструктор вызывается при каждом рендере, потому что с реактом работаю недавно, но в принципе проблема понятна - ты пытаешься менять один и тот же логический стейт(значения инпутов) из двух разных мест, вот реакт и выебывается, потому что локальный стейт должен меняться только изнутри объекта, а не откуда попало.
>>1212738> ВьютухТы имеешь в виду некоего хуя, который по весне форсил тут Vue?Я не он, лол.>как по нотамПо хуётам.Просто у меня стиль работы такой - докапываться до самой мякотки. И я, похоже, её нашёл.Всегда есть какая-то одна проблема, которая тянет за собой остальные. Костыль в виде getDerivedStateFromProps() - это и есть попытка это исправить. Надо с этим разобраться, пока не понял, будет ли с этого толк.Что касается практичности, Vue - охуенно практичная вещь. И весьма сбалансированная.И значительно менее opinionated, чем реакт.Пока реактоблядки разбираются где паттерн, где антипаттерн и хуярят тонны бойлерплейта - на Vue просто пишут компактный работающий код.Тут главное, чтобы в будущем они не понаделали какой-нибудь хуйни, в попытке улучшить хорошее.А реакт имеет то преимущество, что ломать там просто нечего, лол.
>>1212848>Костыль в виде getDerivedStateFromProps()Это не костыль, это возможность для реализации edge-cases. Твой случай решается по-другому, выше ссылка уже была. Конкретно объясни, что в этом решении тебе не нравится и зачем ты хочешь менять стейт и снаружи компонента, и внутри, когда можно его вынести в одно место и сразу видеть, все случаи, как и из-за чего он может измениться, а не гадать по кофейной гуще с дебагером.
>>1212875>что в этом решении тебе не нравится и зачем ты хочешь менять стейт и снаружи компонента, и внутриРечь идёт о низкоуровневом, "техническом" стейте - необходимом для функционирования controlled input.И мне бы хотелось, чтобы он был инкапсулирован там, где он используется.И я не хочу его менять, я хочу его за-менять, полностью.А мне предлагают всё это говно тащить на самый верх, ибо иначе (через componentWillReceiveProps()) - "антипаттерн".И тут мы приходим к интересному выводу.Дело в том, что Реакт - это библиотека (не фреймворк).И делает она только view. Больше там нет нихуя.И совершенно _любой_ (встроенный) стейт в Реакте - технический, низкоуровневый. Предназначенный исключительно для функционирования внутренней механики view. И делать на нём какую-либо бизнес-логику совершенно неправильно.Но, большинство людей этого не понимает, и пытаются.Отсюда и все эти тучи разъяснений и поучений в интернетах, как надо и как не надо юзать Реакт.Короче, смысл в том, что в чистом виде Реакт _вообще_ не пригоден к использованию. К нему _обязательно_ , сразу же. надо наворачивать что-то для поддержки бизнес-логики. Редукс, МобИкс, event bus, что угодно.И это-то мне и не нравится.Хотя, этот недостаток, по сути - ни что иное, как продолжение достоинств.Короче, как я уже тут писал - слишком низкоуровнево и слишком затратно.
>>1212931Согласен, реакт _параша_ та еще.
>>1212931>Речь идёт о низкоуровневом, "техническом" стейте - необходимом для функционирования controlled input.У инпута единственный стейт - это его значение. То, что ты можешь его менять через onChange, не значит, что он технический. Просто браузер предоставляет тебе функционал для детекта ввода от юзера, который реализован через эвент. Если ты хочешь детектить другие эвенты(клик по списку итемов) и изменять значения инпута соотвественно, то тебе нужно каким-то образом связать инпут еще и с тем эвентом. Реакт считает, что все эвенты, которые влияют на стейт компонента, должны объявляться и триггериться в одном месте. Для этого и нужно lifting state up, чтобы обернуть связанные между собой компоненты и объявить эти эвенты. Я по UI не эксперт, так как работаю в основном с серверной частью, но по-моему это вполне здравая идея.>Дело в том, что Реакт - это библиотека (не фреймворк). И делает она только view. Больше там нет нихуя.Это должно было стать понятно сразу после прочтения доков. Из-за этого он мне и понравился, но понятное дело, что если ты начинаешь в любых вьюхах(не только реактовских) хуячить что-то кроме презентативной логики "взять то, поставить туда", то рано или поздно останешься с кучей неподдерживаемой хуйни. Об этом знает любой, кто работал с каким-то популярным MVC фреймворком.
Реакт-компоненты это View.Стор это Model.Reducers = Controllers. Всё так?
>>1213136MVC в современном понимании - это полная хуйня, которая не работает, как только твое приложени становится чуть сложнее палки. Ну нельзя всю логику запихнуть в модели/контролеры/вьюхи и не остаться с кучей говнокода, который не принадлежит ни к чему
>>1213136>Всё так?Ну, это очень вольное толкование, лол.Вообще-то, Redux (Flux) - это альтернатива MVC.https://habr.com/company/tuturu/blog/321820/http://tech.toptable.co.uk/blog/2015/01/01/explaining-flux-architecture-with-macgyver-dot-js/https://www.infoq.com/news/2014/05/facebook-mvc-fluxgoogle: flux architecture vs mvc>>1213138Всё так и есть.
>>1212931>>1213071Я тут переосмыслил эту тему.На самом деле, то, что я пытался делать с Реактом - это как раз таки попытка сделать классическое "клиентское" MVC.Там, как раз, бизнес-логика вперемешку со техническим стейтом.Взять, хотя-бы, Java Swing.Вот тут эта проблема хорошо описана:https://habr.com/company/tuturu/blog/321820/А Реакт для MVC не годится.Т.е. можно, но некрасиво получается.Да и незачем, лол.Конкретная же описанная проблема решается через ресет стейта под новый item в componentWillReceiveProps(). Всё работает просто замечательно.
Ребята, кто с джава работает и сам из Новосибирска отпишитесь, нужно написать бота для лайв ставок как расширение хрома, пример бота рабочего есть, исходный код можно посмотретьПрофит с этой темы ооооочень хороший
Почему хроманя с последней версии неправильно конвертирует строку в дату? Какой еще часовой пояс +03:06, они там совсем ебанулись в своем гугле? В лисе все нормально.
>>1213213Нехуй было в футбол России проигрывать.
>>1213216Но я в России, хуй пойми откуда он берет Саудовскую Аравию.
>>1213213Это санкции против России. А вообще попробуй добавить .toLocaleString()
Есть такая json DB, какой должен быть запрос для изменения например комментария отдельного элемента?
>>1213283Джаваскрипт и джава разные вещи, для справки.
>>1213284В этой проге скорее всего джава скрипт
>>1206689 (OP)Зацените охуенную штуку:https://vimsical.com/Пишешь код (+ чтмл, цсс), он его исполняет и делает из него интерактивный скринкаст. Может я слоупок, но я охуел, даже не думал, что так можно, лол.Попенсорсно (код на кложе+кложескрипте): https://github.com/vimsical/vimsical
>>1213283prakop@mail.ru
>>1213325Проебался.prakop29@mail.ru
>>1213326Напиши в телегу @igergg
JSAnon, подскажи плз нормально ли так сохранять контекст для TypeScript - https://jsfiddle.net/1b68eLdr/24496/ все работает, но нет ли какого оверхэда, а то я нуб, по сравнению с такой реализацией https://jsfiddle.net/1b68eLdr/24501/ ?
>>1213360Вопрос только - нахуя его сохранять в классе? У тебя при каждом созданном объекте This.self будет перезаписываться.
>>1213368Точно, спасибо, анон. Как то провтыкал это. Как тогда лучше следить за этим this, есть какой то лайфхак?
>>1213387Я не очень понял, чего ты хочешь?Зачем следить за this?Это ссылка объекта на себя, она не меняется.Ты хочешь создавать объекты и запоминать их ссылки? Тогда это называется Factory pattern.
>>1213396>Это ссылка объекта на себя, она не меняется.Это в других языках, в JS же this ссылается на контекст, а не на инстанс объекта.А мне вызывать потом в колбеке нужно будет пару методов, в итоге все поломается, потому что this будет хер знает что
>>1213402Понятно.Тебе надо self = this.Это руками, везде, где this может быть неправильным.Напр. тебе из метода объекта надо вызвать колбек, и внутри колбека обратиться к объекту.Тогда в методе перед вызовом колбека пишешь const self = this. А потом уже в колбеке self.someProp ...Также, можно привязывать колбек к this объекта.Точнее, создавать новый колбек, привязаный к нужному this:this.boundCallback = someCallback.bind(this);В реакте так делают - в конструкторе класса.
>>1213409>Тогда в методе перед вызовом колбека пишешь const self = this. кстати, мое изобретение :^)
>>1213413Дед, ты же умер в 2009.
>>1213409Можно ещё и делать someCallback.call(this, arg1, arg2, ...) или someCallback.apply(this, argsArray).Так что, в большинстве случаев использовать self = this просто не нужно.
Анон, я совсем даун. Объясните как работает обработка ошибок в callback-функциях в контексте резервации первого аргумента для ошибок. Вот на примере это не могу понять нихуя https://stackoverflow.com/a/19739899
Как на имиджбордах через js загрузить изображение в пост?
>>1213477ну, при ероре у тебя функция вернет ерор, при результате, результат. ты тупа смотришь, не ерор ли это
>>1212848Vue не "менее opinionated", а намешивает ангуляр с реактом, чтобы ублажить и тех и тех, без своего видения или идеи.
>>1213495Да просто надо писать по книге «Vuex Concepts» (Daniel Schmitz & Daniel Pedrinha Georgii), а не скрещивать бульдога с носорогом. Получится тот же React/Redux, но более быстрый, за счёт отсутствия VirtualDOM.Вот она:https://bit-ly/2K5Yw6p
>>1213483бамп неужели никто не знает
>>1213501Тут вместо «-ly» набрать «.ly»
>>1213502Из браузера - никак, js не имеет доступа к файлам системы. Можешь искать API борды, скорее всего там есть такая возможность, сможешь на ноде скрипт написать.
>>1213501>ПедринаСка лол.
>learn.javascript.ru - Самый главный русскоязычный сайт по JavaScript. Других таких подробных уроков не найти. Начинать строго с него.Пиздец, ну и говнина этот кантор, нихуя толком не объясняется и вообще какая-то ебанина.Сейчас читаю одну книжку (на английском) про жс, и охуеваю с того, как я жил раньше и не знал основ.
>>1213640Ну а хули делать, вкатывальщики обычно английский знают на уровне бе ме, а потом уже подтягивают хотя бы до чтения технической литературы. Им кантор самое то.
>>1213501>Vue>но более быстрый, за счёт отсутствия VirtualDOM.>отсутствия VirtualDOMТы, я смотрю, просто эксперт.В пионерлагерь-то чего не поехал?Или прямо оттуда двачуешь>>1213495>намешивает ангуляр с реактомТы, вообще, понимаешь, что такое ангуляр?Видел его?Сходи, посмотри, лол.>без своего видения или идеиТам есть охуенная идея. Весьма необычная для фронтенда в наши дни.Она в том, чтобы не заставлять людей натягивать сову на глобус и и потом дрочить вприсядку, как в реакте и ангуляре.А дать им возможность плодотворно работать в том стиле, который они предпочитают.И там компоненты - это именно компоненты, в том смысле, в каком их понимает нормальный человек, а не просто кусочки хуйни, как в реакте.
>>1213640>Пиздец, ну и говнина этот кантор, нихуя толком не объясняется и вообще какая-то ебанина.Приятно встретить понимающего человека.Реально заебали уже это говно форсить.
Почему Infinity при любых(кроме степени) мат. операциях с целым дает Infinity, а при возведении в степень Infinity обращается в 1?
>>1213666Альтернатива на инглише какая?
>>1213695Книг полно.В том числе и хороших.http://eloquentjavascript.nethttps://addyosmani.com/resources/essentialjsdesignpatterns/book/(эти две читать прямо на сайте)http://www.allitebooks.com/secrets-of-the-javascript-ninja-2nd-edition/http://www.allitebooks.com/the-principles-of-object-oriented-javascript/http://www.allitebooks.com/understanding-ecmascript-6/http://www.allitebooks.com/functional-javascript/http://www.allitebooks.com/reactive-programming-with-rxjs/Вот ещё нестареющая классика:http://www.allitebooks.com/javascript-the-good-parts/JavaScript Allonge погугли ещё.Курсы и прочее подобное - гугли.
>>1213695Алсо - вот Eloquent Javascript на русском:https://habr.com/post/240219/Это в шапке, в материалах для изучения, кстати.Не пренебрегайте.
>>1213543Ну а если файлы брать не из системы а из самого треда? Где ссылка на изображение должна прописываться?
>>1213689Ты наверное путаешь степень с https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Bitwise_XOR_assignment Чтобы возвесть в степень используй Math.pow
>>1213761В теле POST-запроса. И не ссылка, а base64encoded image data, сформированная через BOM API.
>>1213771Да, да, я проебался конечно. Простите. Привычка.
>>1213640дай угадаю: ты долго ковырял Кантора, потом бросил, начал читать книжку, все стало усваиваться лучше и ты сразу такой: бляя) кантор хуйня какаято непонятная, книга лучше оказывается)Расскрою секрет - если бы ты сначала ковырял книгу, а потом начал Кантора, тебе бы второй ресурс показался понятнее, потому-что ты уже пришел туда с какими-то знаниями, и начал просто их раскладывать по полочкам и систематизировать. Просто, я часто смотрю видосики на ютубе, и там всегда находится какой-нибудь восторженный долбоёб который напишет: спасибо автор!! я уже на трёх разных ресурсах учил <<хуйнянейм>> и только у тебя я понял, потому-что ты лучший!!!!. Нет бля, он не лучший, просто тебе долбоёбу нужно четыре раза объяснить всё с разных сторон, чтобы ты понял.А вообще, я считаю именно книги хорошим способом упорядочить знания, а для первых шагов лучше использовать метод теория+практика в одинаковых дозах, а Кантор для этого подходит лучше
>>1213761По-моему браузер вообще не позволяет жсу хоть как-то менять значение файл инпутов. Можно разве что самому составить кастомную формдату, куда и включить эти файлы, после чего запостить.
>>1213716>>1213756Что-то меня тоже от кантора поблёвывать тянет малоть. Какой раз пробую читать и как-то не идет. Попробую Eloquent JavaScript, уже не первый раз её вижу.
>>1213779Кантор хорошо когда нет опыта вообще.
Спецификации и MDN хватает за глаза.
>>1213789Человеку который уже знает какой-нибудь другой ЯП, конечно
>>1213790Изучал веб-стек php, js, html, css (ну и периферию в виде протоколов, бд, етк) руководствуясь лишь спеками и справочниками. С нуля. До этого не знал ничего вообще.
>>1213794Из книг считаю вообще напрасной тратой времени читать что-то по конкретным языкам. Читать можно лишь что-то монументальное по алгоритмам, по операционкам, архитектуре, сетям, или философское, по типу Раскина или Макконела, если любопытно. А языки изучать по книжкам, это это от лени какой-то.
>>1213798>монументальное фундаментальное*
>>1213779Двачую вот этого дядю.
>>1213780позволяет только сбросить значение пустой строкой. а что измениться если заменить форму? то есть в ней же тоже будет инпутфайл, которому нельзя задать значение програмно.
>>1213798А я Гарри Поттера любил читать, это по-твоему тоже трата времени?
двач меня сегодня приняли на позицию фронтендщика. Первый раз в офис завтра пойду !!111!
>>1213906какой лвл? опыт какой-нибудь работы есть?
>>121390821> опытне самый успешный опыт фриланса и на рубях пара пет прожектов
>>1213912Нормально, чо. Легко устроился-то?
>>1213925да не я думал меня сольют, начали задавать вопросы аля как происходит процесс рендеренга страницы чем прототипная парадигма отличиается от ОО и я чет поплыл. Что даже для меня удивительно т.к. большинство ответов на большинство вопросов я знал.Сидел мямлил что-то невнятное.
>>1213931Что еще спрашивали, довай подробностей
>>1213640Всё там нормально объясняется.
>>1214058Хуёво там объясняется.Тот, кому такие объяснения норм, тот в них не нуждается, как правило.
Тоже не понимаю обвинений Кантора, вполне годно описаны многие стороны языка.
Какая версия Кантора актуальнее: русская (learn.javascript.ru) или английская(javascript.info)
>>1214342Английская
>>1214415Не сильно он тех. терминами перегружен? Со словарём осилить можно? А кто попробовал Выразительный Javascript и охуел и от абстракций и афоризмов разных.
>>1214434Не знаю, не читал. Попробуй.
>>1214252Что там хуево объясняется?
>>1214415Кантор же русич, чем английская версия лучше, если русский - оригинал?
>>1214462Актуальная. Тут тебе сразу про стелочки расскажут, про let, про const. В русиче дай бог отдельно есть, если есть вообще инфа конкретно от него про всё это.
Кантор вообще не нужен, ибо сть freecodecamp, который лучше по всем параметрам
>>1214454>Что там хуево объясняется?Хуёво - это не "что", это "как".Информации куча, да. И она достоверная.Но, в качестве учебника с нуля, для человека, не умеющего программировать - хуёво.А его именно в таком качестве и пытаются использовать.Чтобы было понятно о чём я - посмотри серию книг "Grokking ..." или тот же "Head First ...".Или совершенно охуенную митовскую "Once Upon an Algorithm".
>>1214481>constНикогда кстати не использовал эту залупу, и не могу представить юзкейс, где она бы решала какую-то проблему, а печатать на два символа больше - идите нахуй. Особенно умиляет, что во всех гайдах теперь пишут const hui = require("penis"). В жс-манямире серьезно есть макаки, которые переписывают внешние переменные внутри функции?
Как сделать onclick fetch?Хочу чтоб было так:// какая-то кнопка<input type="submit" onclick="showJSON()">// на клик мой json прилетаетfunction showJSON() { fetch('my.json') .then(function(response) { return response.json(); }) .then(function(myJson) { console.log(myJson); }); }console.log для примера, там конечно иной функционал.
>>1214513Именно поэтому ты никогда не вкатишься в ойти
>>1214514не понял что ты хочешь? Ты хочешь что бы вместо стандартного сабмита был аякс?Тогда просто отмени стандартное действие браузера - event.preventDefault()
>>1214529Я уже пять лет тута, наркоман.
>>1214532>Тогда просто отмени стандартное действие браузера - event.preventDefault()Или пусть type="button" использует.
Правда ли, что операторы - это функции?Например, + это не знак сложения, а функция, которая принимает два аргумента и возвращает одно?Т.е.:var a = b+c;Это:var a = function +(b,c){ return //сумма b и c}
>>1214533В этом треде пять лет сидишь? Я ж говорю, что никогда не вкатишься.
>>1214540Логически - да. Практически - зависит от языка. Обычно +/*- и т.д реализованы как специальный оператор, а не функция.
>>1214550>Практически - зависит от языка>жс-тред
>>1214550Чувак на видео говорит, как я описал выше, что это функция.Но нигде в интернетах я не нашёл подтверждения, вот я и запутался - прав он или нет?
>>1214557Функция это инкапсулированная часть кода. + в контекст инкапсулированного кода никак не вписывается. Конкретно в жс, + это оператор, а какой любой другой оператор он возвращает значение. По итогу выполнения инструкции да, похоже на функцию. Семантически нет, это не функция.
>>1214561А если по русски?
>>1214562Это не функция. Про функции тебе чувак потом расскажет.
>>1214564>расскажет.Почему тогда он говорит, что это функция?Ты вообще видео смотрел?
>>1214565Если мои слова для тебя пиздеж тупой, иди на википедию, читай, что такое функция и сравни её с оператором +.
>>1214567Даже видео называет Операторы, а не функции.
>>1214568>Даже видео называет Операторы, а не функции.Смог всё-таки перевести название через гугл транслейт, молодец. Жаль только, что содержимое не осилил.
>>1214570Ну куда уж мне до тебя.
Аноны, помогите разобраться. Выдали мне ТЗ: 1) Сделать сайт. Стиль и содержание не важно.2) Разместить на всех страницах меню для перехода по страницам с использованием javascript XMLHttpRequest. переход по страницам без перезагрузки)3) Для реализации не использовать сторонние js плагины, только нативный js.Так это первый сайт в моей жизни очень туплю. Результат 15ти часов мозговых усилий работает так:Со стартовой страницы localhosta переход действительно выполняется без обновления странички. Однако затем наступает крах. Т.е. перешёл с main на, скажем, 1 - всё ок. А уже обратно - нет. Впрочем, если затем перейти, допустим, с 2 на 3, то код тоже не сработает, но зато сработает ОБРАТНО. Короче, я запутался совсем.КТО ПОМОЖЕТ РАЗОБРАТЬСЯ - СКИНУ 100 РУБЛЕЙ НА ТЕЛЕФОН
>>1214513>const>не могу представить юзкейс, где она бы решала какую-то проблемуЕсть такая вещь, как стиль.В смысле - хороший.Или его отсутствие, вот, как в твоём случае.
>>1214540Это в лиспе и в схеме так.
>>1214588>Это в лиспе и в схеме так.А в жс?Я же выше видео даже скинул ёпт
>>1214589Погуглил, нихуя не нашёл такого.Видео не смотрел.
>>1214589Бегло просмотрел видео без звука.Так про другое, лол.Но, если тебя возбуждают такие вещи, тебе обязательно надо открыть для себя LISP (Scheme).Кстати, есть такая точка зрения, что JS - это Scheme с сишным синтаксисом, лол. Только не надо понимать это буквально.
>>1214598>Так про другое, лол.Чего?
>>1214600>ТакТам
Всем привет! Уже год пишу на java. Могу в android. Знаю spring и другие мелкие библеотеки. Ближе к делу. Перед тем как начать изучать яву, я прошел коротенький бесплатный курс по javascript на geekbrains, мне он тогда не очень зашел кстати почему он мне не понравился я так и не понял, но сейчас загорелся желанием писать и на js тоже. Как мне следует начать его учить? В программирование в целом я уже могу, поэтому Марейн Хавербек - "Выразительный JavaScript" мне наверное не подойдет? Если так, то сможет ли Дэвид Фленеган - "JavaScript: Подробное руководство" научить меня, как новичка в js его синтаксису и особенностям? Может быть есть какие-либо годные видео курсы при изучении java читал книгу и паралельно смотрел нужные видео туториалы . Какие книги читали вы, в самом начале изучения?
>>1214627А чем ява отличается от яваскрипта? Это же одно и то же.
>>1214634java - сильно типизированный языкjs - слабо типизированный язык
>>1214634>ява>яваскриптС козырей зашёл, содомит.
>>1214634Ява это сигареты. А яваскрипт вовсе неведомая хуета какая-то тобою выдуманная.
>>1214689Тогда чому челик выше про яву пишет?
Аноны, объясните глупому: почему при оборачивании вызова в функцию контекст не теряется и берется по замыканию? Разве обычный вызов не так же работает, т.е. сначала переменная ищется внутри, а потом - снаружи? С меня как обычно.
>>1214627Читай Кантора в самый раз будет.
>>1214698Ты про возврат функции в return и с помощью этого последующий доступ в закрытую функцию замыканием?
>>1214698Ты пример кода покажи, нихуя же не понятно, о чём ты.Лучше в JS Fiddle или типа того.
>>1214705Я как раз это и делаю и че-то не совсем понимаю пример этот: https://learn.javascript.ru/bind#решение-1-сделать-обёртку
>>1214716Аххахахах, ты не можешь в карринг? Ебать лох!
>>1214716Ну блин. Привыкай.У нас тут коллбеки, замыкания, контексты. Можем явно указывать, что является this...Я сам с джавы пересел на джваскрипт, некоторые моменты показались очень странными.
>>1214719Я не про это скинул.Карринг вроде понял.
>>1214724Крч смотри.Ты передал функцию, в которой есть обращение к контексту (this). Ты передал саму функцию, отдельно от объекта user, потому что user.sayHi не более, чем переменная.
>>1214716Отличный пример того, что этот ваш кантор - полное говно в качестве учебника.Если ты о первом блоке кода в подразделе, о том, где написано "Теперь код работает, так как user достаётся из замыкания." - то смысла в нём нет вообще никакого, поэтому искать его бесполезно.
>>1214726>Если ты о первом блоке кода в подразделе, о том, где написано "Теперь код работает, так как user достаётся из замыкания." - то смысла в нём нет вообще никакого, поэтому искать его бесполезно.Два чаю.Я всегда говорил, что этот ваш кантор говнище полное.
>>1214732>>1214726Именно это я и имел в виду. А что тогда человеческое есть из учебников (не сраные курсы)?>>1214725Ок, поебал пример этот туда-сюда. Работает же нормально, если тупо написать setTimeout(user.sayHi(), 1000);. Зачем ебля с врапперами?
>>1214733> setTimeout(user.sayHi(), 1000);Не будет работать, потому что функция выполнится сразу же, ибо скобки, а для таймера нужно «без скобок».
>>1214733В setTimeout нужно передавать функцию, которая выполнится через время во втором аргументе.Если передавать в setTimeout функцию(), то функция выполняется сразу, а setTimeout будет пытаться выполнить уже результат выполнения функции через указанное время.
>>1214741Хорошо, тогда вариант user.sayHi.bind(user) будет правильно работать?
Есть тут те, кто пишет/писали серьёзный бэкэнд на жс? Или серьёзного бэкэнда на жс не бывает?
>>1214747будет
Чему равно a?a = 3 < 2 < 1;
>>1214749У меня на работе 9 проектов, на каждом своя тима пишет фронт и бэк на джс.
>>1214747Бинд будет работать, бинд возвращает из себя функцию.Апплай и колл не будут, они выполняют функцию сразу.
>>1214752Что за проекты? Микросервисы какие-нибудь? Какой стек?
>>1214762Пожалуй, не буду отвечать, извини.
>>1214764Чё, даже стек зажал? Или просто не знаешь?
>>1214767Он сам сидит на шее у мамки, и всё нафантазировал
>>1214586Парни, две сотки!
>>1214751>3 < 2 < 1;Свою тупость пришел показать? JS не поддерживает комбинированные сравнения. Правильно писать такa = 3 < 2 && 2 < 1;
>>1214751>a = 3 < 2 < 1;>a = (3 < 2) < 1;>a = false < 1;>a = trueЧто тебе не понятно? Не осилил неявное приведение типов?
>>1214767Соре, вылетело из головы. Про других не скажу, но у нас: react, react native, koa, mongoDB, sockets.io, doker, ansible, drone CI.>>1214769маняпроекции
>>1214774> JS не поддерживает комбинированные сравненияЭто как-раз таки ты тупой.>>1214777А почему ты берёшь 3 и 2 в скобки?
>>1214779Мерси за стек. А с реакт нейтивом проблем много? Нативные компоненты для реакт нейтива специальные ведро/ябло-программисты пишут?
>>1214779>doker
>>1214787Особых проблем нет, как обычный реакт, различий минимум. У нас апликуха чисто под андройд, и я иногда предлагал ПМу некоторые нативные вещи писать самому (хорошо знаю джава), но он отказывается, говорит, проще найти готовые решения, и пока все находили.Я на самом деле много вещей из стека пропустил, их так и не упомнишь. Redux, postcss... много чего используем.
>>1214788Я помню в коде в дофига местах написал "parrent", охренел потом исправлять...
>>1214791Ну ты индус)replace all & find all для кого сделали?
>>1214733На самом деле, им можно пользоваться как учебником, но, при условии, что ты не воспринимаешь его как истину в последней инстанции.Непонятно что-то - загугли.Думай сам, короче.В любых учебниках и книгах всегда есть ошибки или неудачные примеры. Поэтому, всегда надо сравнивать в сомнительных случаях.В данном случае, проблема в том, что он, желая проиллюстрировать идею замыканий, карринга и прочего, привёл совершенно негодный пример. Даже анти-пример.И даже ньюфагу, вроде тебя, это понятно.Если интересно, что ещё бывает из учебных материалов - читни этот тред за последние пару дней, хотя-бы. Ну и шапку, конечно.
>>1214786Это не я беру. Это я тебе показываю, в каком порядке происходит вычисление.
>>1214838Но ты же взял в скобки на втором шаге.Ок, а почему именно в таком порядке?
>>1206689 (OP)Жду оценок парсера16лвл 2года программирования, стаж - 1год фронт и бэк(React/Node)
a^bЧто это за оператор?
>>1214930https://repl.it/repls/ConsciousFirsthandHexagon
>>1214930пиздабол
>>1214933Бля тебе скрин проекта на котором работаю кинуть, лол
>>1214934давай, пиздюк малолетний
>>1214935Вот ветка в которой только мои изменения, перенес функционал чата (личный кабинет) с jquery на реакт(не весь еще) и верстку (готовую) по компонентам разбросал
>>1214932хуйня, я делал парсер, который пиздил цп у роскомнадзора
>>1214936То есть по сути ты нихуя не сделал, а только слепил из одного говна другое, макака?
>>1214938Лол, думай как хочешь , я дохуя чего сделал, мне то по кайфу в 16лет рубить доухя бабла
>>1214939>доухя бабла150$
>>1214940Хех, если для тебя 150 зеленых это дохуя, то...
>>1214941Я немного больше получаю (в 10 раз), но все равно мало. А ты дальше хуярь свое говно на джиквери
>>1214942>Я немного больше получаю (в 10 раз)Ну, знаешь не намного больше меня(850).А ты дальше хуярь свое говно на джиквери>Соре, реакт онли
>>1214943Налажал с ">" ))
>>1214943У тебя еще все с математикой хуево, ясно
>>1214946>У тебя еще все с математикой хуево, ясноче ты до математики доебался, лол. Я к тому что тебе за 20, а мне 16 и относительно этого разница небольшая. Ты сказал 1500, лол, а че так мало?? Нормальные кодеры по 2500+ берут, я еще джун со мной все ясно, а ты ??
>>1214930>16лвл>>1214939>16лет>>1214948>мне 16Да мы поняли, что ты свое скудоумие возрастом оправдываешь.У меня в компании в год +500 к зп, пока не будет 3000, такие дела. Так что через 1.5 годика буду нормальным кодером в твоем манямирке.
>>1214950>Да мы поняли, что ты свое скудоумие возрастом оправдываешь.Я не тупой
>>1214952И то верно, незачем тупых обижать.Ты не тупой, ты малолетний визгливый олигофрен.
>>1214719Кантор тоже не может в карринг.Потому, что то, что он называет каррингом, на самом деле называется partial application.А карринг - это немножко другое.
>>1214961>Кантор тоже не может в карринг.Та как так? Он же кумир молодежи. Идол вкатывальщиков. Учился в самом МГУ, защитил кандидатскую диссертацию. Неужели правда не может? Неужели? Неужели правда? Я не верю! Слышите! Не верю!
>>1214916>почему именно в таком порядке?Потому что в соответствии со спецификацией.
Javascript — костыльно-ориентированный язык программирования.
3 главных принципа костыльно-ориентированного программирования, а именно инкостыляция, костылирование и поликостылизм, полностью поддерживаются Javascript.
>>1215044>>1215046это мемы из 2008-го?))
>>1214984>в соответствии со спецификацией.Какая ещё спецификация, лол?Ты ответь на вопрос, зачем ты взял в скобки 3 и 2?
>>1215074Это что, троллинг тупостью? Иди нахуй, долбаёб.
>>1215095Всё ясно с тобой, школолошка.Скорее бы у вас уже каникулы закончились.Ещё и сажу прилепил в тематике, лол.
>>1215074>зачем ты взял в скобки 3 и 2?Тебе ответили выше. Ты дурак? Тебе показали порядок вычислений. Дечись.
Бля, чем бы такого написать, что бы один раз и потом вообще ничего не писать и получать пассивный доход тысяч 100 в мес?
>>1215118Это ты дурак, если не знаешь, что скобки - это ВНЕЗАПНО тоже оператор, и не можешь объяснить, почему там такой как ты скОзал порядок.
>>1215140Ты сумашедший, чувак.
>>1215140> не можешь объяснить, почему там такой как ты скОзал порядокТебе так же ответили, почему там именно такой порядок.
>>1215141>сумашедшийНе надо лести, обычный дебил.Как и принято среди веб-дегенератов (вас).
>>1215142И почему же?>>1215149Вот только я знаю ответ, а ты нет. И кто из нас после этого дебил?Люблю спрашивать на собесах этот вопрос, и всякие вкатывальщики начинают бубнеть под нос что-то несуразное - ведь они учились по кантору и кокодемии, где их учили формочки шлепать, а как устроен язык они не знают.
>>1215155На каких собесах, шизик? Ты опять таблетки забыл принять? Ты же, блядь, унитазы чистишь в Макдаке!
>>1215155>как устроен языкКак говно.И хорошо что хотя бы не как goвно.
Нужно расширение для jq ищущие ближайший подходящий элемент, не .parent(), .children(), .closest(). А именно ближайший подходящий, поебать на удаление, пусть он хоть на другом краю DOMа лежит, чет загуглить не получается, я хз как такую годноту не заделали, а самому писать влом.
>>1215256Годнота довольно сомнительна, мне кажется.И операция очень затратная была бы.У тебя, скорее всего, что-то не то с постановкой задачи или со структурой дома.
>>1215138Борду
Готов отсосать у каждого в этом треде. Обожаю крутых программистов.
>>1215306>и потом вообще ничего не писать и получать пассивный доход>пассивный доходПерекатиться в гей-шлюхи, очевидно же.
>>1215327>>1215346-> /ga/Зарепортил
Не могу загуглить вопрос, не получается сформулировать просто. Нужна помощь. Скажем есть строка, пускай будет 'Hello, World'. Есть еще одна строка, пускай будет 'Hello, Wo'. Каким образом мне найти оставшуюся часть второй строки до первой? То есть rld?Спасибо.
>>1215370Пока курил придумал, что если тупо взять из разности длинны строк индексы и найти что надо? Не совсем хуйня получается?
>>1215374Это если ты 100% уверен, что одна строка является началом другой.Т.е. надо добавить проверку sA.startsWith(sB).
>>1215377>sA.startsWithВот за это спасибо. То, что надо!
>>1215370О регулярках не слышал?>>1215299Написал рекурсивный обход вверх, ограничил 5ю уровнями, чтоб не сильно много жрало.
Господавры, помогите пожалуйста сделать так, чтобы первый пункт меню (Меню1) была активной по умолчанию. https://codepen.io/anon/pen/XYYWLKс меня сотни нефти
>>1215490добавь к меню1 класс menu-item--active, а в стилях пропиши .menu-item--active .submenu {display: block}
>>1215396>О регулярках не слышал?Слышал конечно. Но изучить как-то руки не доходили. Охуенная оказывается вещь, строку блядь менять можно как хочешь. на хую прямо вертеть!
>>1215495Спасибо большое. Немного по-другому сделал.Не подскажешь как сделать так, чтобы меню не пропадало, когда кликаешь вне меню?
>>1215555Попробуй запихнуть в условие кликера на документе что-то типа target.id! = 'nav' или target.tagName != 'body'
>>1215561Так?document.getElementById('nav').onclick= function(event) { var target = event.target; // где был клик? if (target.className == 'menu-item' && target.className!= 'result') { var s=target.getElementsByClassName('submenu'); closeMenu(); s[0].style.display='block'; }}не выходит что-то.
>>1215363остальные поддержали
Можно в реакт завязывать начальное состояние state, на получаемых props? state = { value: this.props.value }
>>1215621дополню: через какой хук теперь отлавливать новые props, если componentwillreceiveprops обьявили устаревшим?
>>1215621Можно>>1215622Читай notehttps://reactjs.org/docs/react-component.html#unsafe_componentwillreceiveprops
>>1215621https://reactjs.org/docs/react-component.html#static-getderivedstatefrompropshttps://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
>>1215627>>1215628Спасибо братцы, в api reference не углублялся до этих пор
>>1215575Не, в другой кликер, который на документ вешается
>>1215629>componentwillreceiveprops обьявили устаревшим?Да, реакт ни разу не opinionated, lol.На самом деле, они делают всё это из-за сервер-сайд рендеринга и прочих оптимизаций, имеющих значение для сайтов типа фейсбука, с десятками миллионов посетителей.Типа - да, надо дрочить вприсядку, но зато ...А на простого васю из мухосранска им глубоко поебать.
Можно ли в реакте мап в мапе вызвать для рендера, например, строки таблицы и ячеек? { rows.map((row) => ( <TableRow key={row.id}> { row.map((cell) => ( <TableCell>{cell}</TableCell> )) } </TableRow> )) }Так делаю, но выдает row.map is not a function.
>>1215744У тебя row - массив?
>>1215751Точно, там объект.
Можно ли писать функции в stateless компонентах? Если нет, то как тогда поступить, если нужна функция, например, для форматирования вывода?
>>1215768Stateless компонент - это функция.Может ли быть функция в функции?Конечно, может.Вот прямо только что такую написал, и именно в функциональном компоненте, лол.>>1215744Тэги JSX - это вызовы функций, возвращающие значения. Аттрибуты = параметры.Исходя из этого и определяется, что можно, что нельзя.
>>1215774Ну т.е. это не говнокод и все так делают?
>>1215780Да, так и делают.Но, в твоём случае row.map((cell) => ... выглядит как-то сомнительно. Не в смысле говнокода, а вообще. Хотя, выше уже написали.Вообще - посмотри примеры в интернетах, их же полно.
>>1215781Я про функции в функциях
>>1215782Это не просто не говнокод.Это ровно наоборот, лол.Особенно, если ты используешь лямбды (толстые стрелки). Только нужно иметь в виду, что у них нет своего this.
>>1215782Вот тебе, кстати, пример (хотя, немного на другую тему):const add = a => b => c => a + b + c;Это функция - функция - функция.В middleware к редуксу такие вещи можно увидеть, например.В данном случае - это каррированая функция сложения трёх аргументов.Вызывается так:const result = add(1)(2)(3);Или так:const add1 = add(1);const add1and2 = add1(2);const result = add1and2(3);Т.е. можно получать промежуточные специализированные варианты.Напоминает наследование в ООП.
>>1215787Он же не про это. Он в своих функциональных-компонентах хочет просто обьявлять функции-помощники. Он не собирается их возвращать. Он хочет их использовать просто как использует методы в классах-компонентахЯ сам правда не знаю принято ли так делать, или лучше функции обьявлять не в самом компоненте, а вне его.
>>1215794Я же написал - это пример немного на другую тему.А перед этим ответил ему, что да, так делают.И это не говнокод.Объявлять ли функцию отдельно, если она специализированная для этого компонента - дело вкуса. Если она большая, то да, это имеет смысл.Смысл того, что я хотел сказать, в том, что функция в JS - это ровно такой же объект, как число или массив.Ты же используешь числа в функциях?Ну и вот.
Какие существуют игровые движки на основе verlet.js?
>>1215787Бля, какой же уебанский стиль.
>>1215817А как бы ты хотел это записывать?Нормальный стиль, лучше не бывает, на самом деле, ты просто не привык, лол.Ты пытаешься в голове что-то наворачивать поверх этих стрелок, в то время, как их надо просто читать буквально.
Парин, я умираю, я не могу, как заставить говно работать с нескольики вебсокетами? Пилю парашу webgl С# и не могу сука сделать номральное взаимодействие с вебсокетами. Ну с одним заработало, а с нескольими хуй, я скачал jslib, но что там внутри не могу понять. Почему-то SocketCreate возвращает всегда ноль, и происходит какая-то поебата, не могу номрально разделить. В общем может кто поможет или ссылчоек на готовыйе примеры накидает. Пиздец.https://github.com/realtime-framework/unity3d-plugin/blob/master/lib/WebSocket.jslib
>>1215817Это просто дерьмовый упрощенный пример прямиком из статеек "ФП в жисе это круто мне так сказали но на функциональных языках я не писал", вот он и нечитабелен. >>1215787Это называется композиция и в ООП она прекрасно применяется.
>>1215821Ох ебать, маня прошла пару курсов говнокекслета и всем поясняет про то как надо читать и воспринимать блять.
>>1212010Перекатиться из мертворожденного языка для смузихлебов в один популярнейших и востребованных языков мира.Все правильно делает.
Какой же говеный тред.
>>1215994Нихуя себе, у тебя дар телепатии, лол.>>1215905Это не называется композиция.И что там не читабельно, лол? Дети, идите на хуй в /бэ.
Подскажите, где я обосрался? Есть веб-приложение на чистом реакте, в нем - корневой компонент, как полагаться - es6 class. У этого класса есть метод, componentWillMount, где я открываю вебсокет. JSON с сервера обновляет стейт, что позволяет отображать данные в реальном времени, а JSON с клиента обновляет определенные данные на сервере. Всё работает, но только на десктопе. В мобильном браузере - не работает ws. При том что поддержка ws у него есть. react-websocket не подходит, т.к. нужна двухсторонняя передача данных, а у него нет метода send, AJAX параллельно сокету выглядит костыльно.
>>1216056Какой язык, такой и тред.
>>1216056>>1216186Сам написал, и сам ответил?
Пойдет ли моча и чай для юнит тестов под ноду?
>>1216201Если у вас не пишут тесты нахрена тебе это надо? Ведь речь идет о вебне?
>>1216202Да я для своего проекта. Слишком много говна накопилось чтобы руками тестить
>>1216202Нарыл гайд, но там еще дженкинс, а он мне пока нах не нужен. Думаю как этот индус сделать.https://medium.com/prismapp/10-steps-how-to-automate-your-api-testing-effectively-af866fba942f
приветствую господ программистов!!подскажите плиз ньюфагу - как перемножить два больших числа так, что бы в результате не было что то типа такого 1.7588313343976082e+21 а было бы само числоего ведь можно как-то преобразовать, правильно? но как??
>>1216228num => Math.floor(num*1000)/1000.
>>1216230такой же результат получается - 1.7588313343976082e+21что я делаю не так?
>>1216228Это троллинг тупостью?
>>1216228Используй сторонние библиотеки, например, https://www.npmjs.com/package/big-integer
Сука почему моча такой уебищный фреймворк для тестов. Пиздец просто! Почему вместо вот этого [CODE]describe('GET /user', function() { it('respond with json', function(done) { request(app) .get('/user') .set('Accept', 'application/json') .expect('Content-Type', /json/) .expect(200, done); });});[/CODE]не сделать json в котором описать все тесты, типо: [CODE]{ "name": "test login", "main": "server.js", "tests": { "test0": "foobar", "test1": "foobar", "test2": "foobar", "test3": "foobar", "test4": "foobar", "test5": "foobar", "test6": "foobar", "test7": "foobar", "test8":"foobar" },[/CODE]где foobar это конструкция вида [CODE]{ "request": "localhost:8080/api/login", "data": { "login" : "foo" "password":"bar" }, "headers": {...}, "positivecase": {...}, "negativecase": {...}}[/CODE]Скорее всего проебусь с разметкой, но суть вы поняли. Может в треде есть дохуя опытные автотестеры чтобы пояснить мне нубу, почему моча такая какая она есть?
>>1216284Возьми и напиши сам, увидишь к чему приведет.
>>1216300Да вот уже рука порывается, но ради своего проекта не хочется еще и движок для тестов писать 3 дня. Легче уже руками протестить, написав тест дизайн. Но бля... Че за черт эта моча?
>>1216302Не нравится — пиши своё, питух. разработчик Моки
>>1216284Мока лишь среда тестирования, она условно говоря проходит по файлам, ищет тесты среди них и запускает, а за синтаксис обычно отвечают всякие там Chai(или supertester судя по тому что ты скинул)
>>1216305Мочехлеб, плз.
>>1216309Не моча, а мокко.
>>1216306Т.е отдельно автотесты я написать не могу? Только в код интегрировать? А минифицировать потом файлы для прода можно будет? Просто ну пиздец если еще и тесты в коде будут, то получится гигант просто.
>>1216312А ты думал, что в сказку попал??
>>1216311Да понятно как оно по английски читается, но людям не англоговорящим сочетание ch читается как "ч" интуитивно.
>>1216313Не зря я отдельную ветку завел... Ну пиздец теперь... А где есть документация этого чуда? Просто на их сайте нет. Да и туториалы всяких васянов читать себе дороже
>>1216314Оно ещё и как "хэ" читается, и как "шэ".
>>1216319Да я то знаю, я говорю за большинство, просто у меня в детстве была чашка с принтом "mocha". Пока английским не занялся в плотную, думал что это чашка для мочи
>>1216312Тут недавно был чувак, который яростно топил за тесты в js.Перечитай прошлый тред, там много годных советов было.
>>1216323Ок. спс
>>1216232А, так у тебя число в 21 степени, оно хуй у тебя запишется просто так.
https://ideone.com/fynakgКак оно работает, может кто-нибудь тугому объяснить? Вот мы задаем значение num для функции, а как и откуда потом появляется acc, как на 7 строчке оно работает если не вводили никаких acc? С рекурсией все было намного понятнее.
>>1216384Так это и есть рекурсия.
>>1216384acc - это параметр внутренней функции iter.Сначала iter вызывается с параметром 2.А потом - рекурсивно, с уточнённым параметром.Пока не будет достигнуто одно из условий выхода из рекурсии (if'ы).Имя переменной acc - подразумевает аккумулятор (в рекурсивных функциях).num берётся из внешней функции.Тебе надо разобраться с замыканиями (closure) и рекурсией.
>>1216393acc - это параметр внутренней функции iter, а для чего ему параметр 2?https://jsfiddle.net/q6v79gnu/8/Вот меняю параметр и ничего не меняется, почему так, зачем он? в бесплотных на хеслете говорят что итеративное решение
>>1216393Например, надо найти наименьший делитель для числа 5. Это будет само число 5, естественно.Тогда будет такая цепочка вызовов:iter(2){iter(3){iter(4){iter(5)}}}Слово return я убрал, оно подразумевается.Т.е. iter(2) вернёт результат _позже_ всех, когда все внутренние вызовы вернут результаты в обратном порядке.Т.е., число 5 будет передано по цепочке вызовов наверх.
>>12163962 - это то, с чего начинают искать ответ.Это не параметр, а значение параметра.Можешь хоть с 100 начинать, только вот, что ты найдёшь таким образом?
>>1216396>говорят что итеративное решениеНет.Это рекурсия - функция вызывает сама себя с новым значением параметра.Другой вопрос, что рекурсия тут простейшая, и её можно просто заменить на цикл.
Всё ребята я разобрался, спасибо за такой быстрый фидбек!
Тупой нубский вопрос - допустим есть такой класс:class myClass { constructor(a){ this.a = a; this.b = this.a*2;} }let obj = new myClass(5);obj.a выдаст в консоли 5, а obj.b выдаст 10но при этом если присвоитьobj.a = 6то obj.b по-прежнему будет показывать 10! why?как эту срань перерассчитать?
>>1216478>как эту срань перерассчитать?Если тебе нужно именно это, надо делать геттер (гугол в помощь).Или просто метод getB() {return this.a * 2}
>>1216478Что тебя смущает? То, что значение переменным присваивается при создании объекта, или то, что b хранит значение переменной, а не ссылку на a?
>>1216487>что b хранит значение переменной, а не ссылку на aДа, вот это вот и смущает
>>1216495Насколько я знаю, в жс ссылочное присваивание идет только к объектам и функциям.
Ребята, потянет ли какое-нибудь из этих говн Jetbrains WebStorm без тормозов? Или без 16 Гб оперативки можно даже не мечтать?
>>1216487>>1216495Дело тут совсем не в том, ссылка это или нет.А в том, что _выражение_ вычисляется один раз в конструкторе, при создании данного объекта.Хочешь, чтобы оно каждый раз вычислялось - так и вычисляй каждый раз - в геттере или в методе.Короче, пойми разницу между значением и выражением, и т.п.
>>1216502SSD нужно ставить.И Core i5 + 8 Gb.Алсо, ноутбук для серьёзного кодинга - это не очень хорошая идея.Мобильный проц он такой мобильный, лол.Или ты думаешь на нормальном процессоре полкило меди просто так висит?Не надо смотреть на хипстеров в кофешопах, это просто картинки.А суровая реальность - сурова.
>>1216511Охуеть, я-то думал, что вы будете отвечать, мол, конечно, потянет, это же Вебсторм, а не Far Cry 5. А тут вон всё как печально. :(
>>1216505Да, разобрался, спасибо. Так и пришлось мутить сеттер, чтоб он "переустанавливал" заново нужные мне поля
>>1216511Посмотрел у себя.На десктопе i7 3770K + 16 Gb + SSD Samsung 850 Pro 256 Gb.Запущеа идея, в ней открыт большой java проект.И запущена виртуальная машина VmWare с сервером.Памяти израсходовано 5.1 Gb.Всё работает быстро и хорошо.JavaScript побольше отожрал бы, конечно.Но не думаю, что намного.Короче - ssd + проц решают.
>>1216520Можно и сеттер.Если читаешь много раз, а пишешь мало.Но, без нужды лучше лишнее состояние не хранить.>>1216517Он потянет.Особенно, если ты поставишь любой SSD.Я же говорил не о "потянет", а о получении удовольствия.
>>1216529И да, большой экран.Минимум 24" full hd.
Кто-нибудь знает, как правильно деплоить приложения с помощью PM2?Под правильно я подразумеваю, что установка зависимостей и конпеляция должны происходить на билд-сервере. То, что есть в документации PM2 — это какой-то пиздец: git clone, npm install, grunt dist выполняется на целевом сервере.Очевидное решение — копировать билд-артефакт с помощью rsync и вызывать "pm2 reload" через ssh, но вроде как PM2 уже предоставляет средства удаленного деплоя, так что странно им не воспользоваться, если он настраивается как надо.
>>1216502А нужен ли тебе жырный вебшторм, если в VS Code есть все необходимое?
сильно начинающий вопросПривет анон! подскажи пожалуйста по нескольким вопросам.Есть JS динамически генепирующий кучу контента типа статейЕсть директория к кучей изображений и текстов . Я к сожалению пока пишу только на JS и то новичок , поэтому не придумал ничего лучше чем забирать тексты из JSON ajax запросом и для каждой картинки прописывать URL и высоту- ширину . В общем кошмар . Задача "сгенерировать HTML считывая картинки и тексты из файлов" вообще решается только на JS с jquery ?Если нет скорее всего нет какой самый простой бекенд для этого нужен. Может джанго или rails
Аноны, че-то я туплю, как мне нормально сделать, чтобы в компоненте реакта одно поле стейста подсчитывало длину массива в другом поле? И нужно, чтобы она пересчитывалась каждый раз при обновлении массива. С меня как обычно.
>>1216602>стейта*
>>1216602componentDidUpdate
>>1216605Попробовал, но он срабатывает два раза: один раз с предыдущей длиной, второй - с новой. Так и должно быть?
>>1216613А массив у тебя как в компонент попадает?
Возможно ли вывести request headers как в дебагере во вкладке Network?
>>1216602>одно поле стейста подсчитывало длину массива в другом поле?Спрашивается, нахуя?Вычисляй вычисляемое прямо в render() или где ты там его используешь.Один из хороших принципов программирования - не храни лишние состояния без нужды.
Писал я, короче, маленькую йобу и дописался до того, что мне нужно из одного компонента поменять значение стейта другого. Естественно, все без редакса. Есть какой-то костыль для такого?
>>1216656Lifting state up + forwarding refs.
>>1216656Если они логически не связаны или общий родитель слишком далеко, то создай простенький стейт контейнер сам, это не сложно. Необязательно глобальный.
>>1216658А рефы тут причём?Общее состояние вынести наверх, в общий компонент, да.Если общего компонента нет - создать фейковый.В процессе можешь поймать себя на мысли, что уже пишешь редукс. В этот момент надо перестать - он уже есть готовый, лол.
>>1216064Практический смысл этой хуйни - именно композиция и ничто иное.
>>1216668Какая, блядь, композиция?Чего и с чем?Набери в гугле functional composition и почитай.
>>1216682Шизоид, не позорься хоть.
>>1216682>ШизоидЭто ты меня, типа, оскорбил, лол?Аргументы будут?У тебя очевидные проблемы с пониманием смысла слова "композиция" (и слова "шизоид", кстати).
Можно как-то анимировать закрытие модалки на реакте? Появление я сделал, а вот закрытие по кнопке хз.
>>1216502А почему у тебя на втором скрине цифра 8 отфотошоплена?
>>1216502> Jetbrains WebStormemacs js2-mode, нахуя тебе это говно-ide?
>>1216695Ну ты реально шизоид, сам себе отвечаешь.
>>1216737Ну, это аргумент, конечно.
>>1216719Потому что изначально там стояло 4 Гб, а я добавил ещё одну планку на 4 Гб.
Кто то там говорил, что я неудачник. Тот кто говорил - засунь себе свой поганый язык в анус, неудачник. У меня всё ништяк. Продолжаю саморазвитие, обретаю новые вещи. Успех, удача со мной всегда !!! Строю новые планы на будущее. (А ты продолжай мечтать об фирме своей в москве, о том как ты будешь там директором. Не надейся, мудак деревенский))))
Только что закончил читать первую часть кантора. хочется попрактиковаться и написать что-нибудь длиннее 100 строк. Где можно стырить практические задания без знания ДОМа?
>>1217214кодворс мбРебят, у меня задача сделать логаут, когда юзер нихуя не делает. Я почему-то думал, что это должно быть что-то сложное, а в итоге написал задачу за час.Подскажите, есть ли реализации лучше и почему моя может быть говном?
Когда реакт сдохнет?
Можно как-нибудь сделать так, чтобы функция byExtension возвращала значение resolve из промиса?Написал промисификацию readBook через асинхронный createReadStream. И вот теперь не знаю, как сделать ее синхронным. А это один из кусочков условия по расширению, и переписывать все из-за промиса не хочется.[code]let byExtension = function (filePath) { var ext = path.extname(filePath); if (ext === '.json') { return JSON.parse(fs.readFileSync(filePath)); } else { return readBook(filePath).then(function (value) { return value }); };};console.log(byExtension('./example1.xlsx'));[/code]
>>1217240вчера
>>1217243а сейчас что возвращает, ыт же зэн написал
>>1217255Он возвращает состояние Promise { <pending> }Пытался через async/await. Тоже самое.
>>1217257хуй знает.>твое лицо, когда кодишь на реакте, а не на жаваскрипте
Вопрос по DOM: как получить xpath от одного элемента до другого. Например, от инпута до связанного с ним через for лейбла? Чтобы на выходе получить что-то вроде ./../../div/huina/malafia/label
>>1217318querySelector
>>1217235По-хорошему разлогинивать надо на сервере. Разлогин по таймауту - это так-то для безопасности придумано, а в твоем случае если кто-то таки угонит сессию, то он совершенно точно позаботится над тем, чтобы твой клиентский код по разлогину не сработает.Ну и>mousemove>scrollты хоть debounce на это дело повесь.
>>1217338Квериселектор просто отбирает элемент по селектору. У меня уже отобраны элементы и нужно найти xpath между ними.
>>1217339>debounceОт маузмува лисенеры же все равно будут лисенить, запросов будет столько же, и одно присвоение переменной дела не сделает, разве нет?
ПЕРЕКАТ>>1217351 (OP)>>1217351 (OP)>>1217351 (OP)ПЕРЕКАТ
>>1217235Ебать меня залепило на кодворсе. Чому я раньше его не юзал. Спасибо.
>>1217339Сделал, как ты сказал, вышло круто!
Учусь погромировать на freecodecamp, дошел до легких алгоритмов, все довольно быстро решил, а с этой тупяк, помогите(только не решайте за меня, дайте наводку)Условие задачи:Return the lowest index at which a value (second argument) should be inserted into an array (first argument) once it has been sorted. The returned value should be a number.For example, getIndexToIns([1,2,3,4], 1.5) should return 1 because it is greater than 1 (index 0), but less than 2 (index 1).Likewise, getIndexToIns([20,3,5], 19) should return 2 because once the array has been sorted it will look like [3,5,20] and 19 is less than 20 (index 2) and greater than 5 (index 1).Как отсортировать массив - я узнал сразу - для этого уже есть встроенный метод sort. Но как сравнить элементы и найти приближенное число? Чёт не пойму.
Привет, друг анон. Объясни, почему не работает этот код? (не ленись, там две строчки)https://codepen.io/anon/pen/EROKMwспасибо.
>>1218704и этотhttps://codepen.io/anon/pen/rKQLVG
>>1218704>>1218712жквери забыл подключить
>>1206861Для маленьких проектов подходит тот "фреймворк", у которого больше комьюнити.Вкатываясь в новый проект на реакте, в первую очередь ты получаешь готовые свистелки-пердерлки с гита на все случае в жизни, а на Vue тебе придется стать инжинером велосипедостроителем
>>1206904Начни с того, что подумай о жизниТем ли ты вообще занимаешься?Динамическая типизация - это манна небесная, это клиллер фича JS'а
>>1208712Хуя ты настрочил, можно было ограничиться этой строчкой>airbnb
>>1219983ха ха ебать я чёрт. спасибо братуха
пацаны, как поставить бесконечный луп сюда? чтобы текст fadeout & fadein бесконечноhttps://codepen.io/anon/pen/PaVOxMспасибо.
>>1220919отбой
Анон , Я вот только поставил Node , начал изучать , подскажи какой самый простой способ работать с изображениями?Нужно все парсить все изображения из определенной директории , собирая их url , размеры и тд .В целом просто нужно выводить изображения из папки в DOM