Это копия, сохраненная 11 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://jsfiddle.net
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Руководство для вката: https://developer.mozilla.org
Есть объект с списком объектов, как сделать чтобы при добавлении нового объекта с уже существующим именем свойства их значения объединялись. Пикрил пример проблемы.
это не проблема. это типичная задача кодера. хочешь быть кодером? научись самостоятельно решать такие задачи
Не можешь помочь - не пиши, не трать время. Я могу это решить как попало, создав какой-нибудь плохой велосипед. Но вдруг уже есть хорошее решение.
так ты блядь дебил ебаный получается и в голове твоей вместо мозгов дерьмо . съебись нахуй отсюда и не пиши мне ничего
640x360, 0:24
ди доку читай
блядь какой же ты жалкий и ничтожный я в ахуе. типичный вкатус жс треда образца 2021 года
ты даже сука не осознаешь насколько нелепы твои попытки меня уколоть. чего ты пытаешься добиться когда пишешь мне?чтобы последнее слово осталось за тобой или че? закрой свою вонючую пасть ,закрой эту вкладку и забудь про программирование навсегда. ты слишком туп жалкий кусок дерьма выблядок спидозной шлюхи
Спасибо, анон. Как надо получилось.
Для базового ознакомления норм, но покупать я бы не стал - Минин очень поверхностный, хоть и неплохо объясняет. Есть альтернативы получше.
Говноед всея ютуба, нахуй его, лучше купи на трекере петриченки или буру
Ебаную мелкобукву забыли спросить. Сразу видно пишешь на каком-нибудь жиквери и файлы стилй ставишь пакетами.
Какая там сам последняя версия, наркоман? Ты про ноду или браузерный жабаскрипт?
Прочитай и вникни.
Чел, просто забей. У тебя проблема будет как затащить людей в свою игру, а не как защититься от ддоса.
У меня игра будет такая, что не оторвёшься!
>Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос
Есть Инстаграм, я скачиваю оттуда сторис. Обычно я делаю F12, Ctrl + F и вбиваю в поиск "<video" (вбить "<video class" почему-то не получается, не находит), разворачиваю мышкой этот блок кода, и там уже есть ссылка на видео. Спокойно открываю, скачиваю.
Что именно мне нужно выучить чтобы это автоматизировать? Например чтобы рядом с видео появлялась кнопка, нажимая на которую я переходил по ссылке на это видео. Я знаю js на школьном уровне, а-ля "найти повторяющиеся элементы массива".
Я знаю что есть куча расширений, плагинов и просто сервисов чтобы скачивать с Инстаграма, не надо об этом писать.
Спасибо огромное
ну вообще всякие клаудфлеры, а так отслеживать кол-во запросов с ипшника и давать таймауты например
https://coderoad.ru/26306863/Как-ограничить-количество-запросов-на-ip-в-Node-JS
Интернетами пользоватся не научили
Ивент тригерит обработчики, они добавляются в очередь макрозадач. Как только задача-обработчик начинается выполнятся, так сразу срабатывает действие по умолчанию, если не вызван метод preventDefault
первая ссылка в жужле или я должен только раϟϟово правильными ресурсами пользовался?
При попытке скомпилировать проект вебпак вываливает ошибку с первого пика.
https://jsfiddle.net/hwcunkqt/ - конфиг вебпака.
Он ругается якобы на отсутствие сасс, но дело точно не в этом, я проверял. В самом test.module.scss нихуя страшного нет, только
.test {
color: pink
}
Задача: сделать сайт для детсада. Дешевле и лучше, как всегда
Это блог + лендос будет как я понял. Добавление новостей, галерея мб. Не хочу писать руками, а просто склепать и отдать. И чтоб уже контент менеджер какой-то заливал фотки деток на прогулке после какао, а со мной не связывались по поводу поменяйте нам ссылку внизу экрана
Могу в жс, реакт, и ноду ещё на уровне хэллоуворда
Думал о gatsby с готовым шаблоном, но сейчас смотрю в сторону wix
Советуйте
Модуль в этом контексте имеется в виду npm пакет, сасс лоадер - всего-лишь прослойка между сассом и вебпаком, без сасса он работать не будет.
а на чем ты его клепать собрался? инструменты бесполезны без знания технологий
Тогда тебе только вордпресс, он как раз для клепания бложиков создан.
на гетсби / wix. Ты мне задаёшь мои же вопросы, чел
>инструменты бесполезны
закрывайте вордпресс!
src:/
components:/
componentZaloopa:/
zaloopa.ts
componentZaloopaTypes:/
zaloopa.d.ts
П.С. Таких файлов потом будет много. То есть в папке componentZaloopa будет zaloopaForm.ts, zaloopaSearch.ts, zaloopaButton.ts и т.д. Соответственно будет много .d.ts, которые я планирую складывать в componentsZaloopaTypes:/
Вообще блять, вот такие моменты по структуре проекта нихуя не понятные. Нигде толком ничего не написано, а где-то я даже прочитал, что лучше вообще больше 5ти минут на такое не тратить. Не понятно что лучше делать, чего лучше не делать.
У меня нет папки dist. Билды складываются в build, при этом я знаю, что есть люди, которые билды ложат в dist. Мне типо сделать папку dist и там хранить только .d.ts?
Ты не пони, если ты пишешь на тс, то .d.ts файлы за тебя может и должен генерировать tsc. Поскольку ты пишешь на тс, то тебе самому эти .d.ts нахуй не нужны, а это значит что ты пидор что единственное им применение - отдать их вместе с js билдом внешним пользователям, а самый легкий способ это сделать - положить их рядом с js файлами
Мне d.ts нужны для модулей ксс. Через tsc в проекте ничего не компилируется. За все отвечает бабель. То есть мне тупо успокоиться на том, что у меня будет 20 ксс модулей, рядом с которыми будут лежать 20 .d.ts файлов?
Есть тулы которые генерит d.ts файлы по ксс модулям, там тебя научат куда куда такие файлы складывать
Ну а если все же руками, то надо их класть рядом с ксс файлами, потому что они изменяются вместе и по одной причине
Это зависит от того, будут ли у твоих типов сторонние потребители или нет. Стороннему потребителю в большинстве случаев похуй, что ты там в своём модуле намазал, ему нужны только типы. Соответственно для них нужно пихать все файлы типов в одну отдельную папку.
Для разработки же абсолютно похуй, где файлы лежат, ТС все .d.ts файлы, грубо говоря, пихает в глобал скоуп для проверки типов.
https://github.com/typestyle/typestyle
https://github.com/Quramy/typed-css-modules
их много, можешь погуглить прост
Спасибо.
А, ну первая ссылка это не про то
нахуя че-то гуглить если можно задать вопрос уровня "как объявить переменную" в жс треде и тебе ответят?
А что ты еще собираешься в этом треде делать? Сидеть и пердеж нюхать? Ну вот моего занюхни, мелкобуква.
Моноиды контравариантных функторов можно было бы пообсуждать
Или это только удел жавы и C#?
Я тут подумал. Неужели C# это единственный язык где есть нормальный мультитрединг и async/await?
>Есть ли в node многопоточность
да
>Или это только удел жавы и C#
ты охуел есть божественный эликсир, его система изолированных процессов даст отсосать жабе с решеткой вместе взятым
Она там есть костыльная, используется редко, в основном многопоточность на ноде заменяют кластеризацией. Т. е. в теории можно достичь примерной производительности шарпа, но на практике шарп даёт пососать. У шарпа асинхронные операции выполнятются несколькими потоками, в ноде асинхронность всегда в рамках одного потока.
Не знаю, детально я только про шарп и жс сказать могу, потому что работаю с ними длительное время, про Го только предположение о том что лучше чем в жс и местами лучше/хуже чем в шарпе. Но лично для меня синтаксис и стиль шарпа показался более удобным чем Го.
const onShevroneClick = () => {
const tm = setTimeout(() => {
if (document.body.scrollTop >= window.innerHeight)
return clearTimeout(tm);
document.body.scrollTop += 3;
return onShevroneClick();
}, 1);
};
Смысла в вызове clearTimeout(tm) нет, так как он у тебя вызывается из самого таймаута, т. е. когда этот таймаут уже сработал.
Само действие лучше делать через requestAnimationFrame.
Блять ну это же базовая вещь, почему я должен чтото писать?
Нахуя вообще числа как строки сравнивать?
Вка тун
спасибо
По такому принципу функция работает в большинстве языков, если не во всех
Оно везде так работает, наркоман. Сейчас бы пихать в стандартную либу миллион отдельных функций для сортировки разного говна.
Разве этично обьявлять классы прямо в аргументах? Если это жавакод, то как минимум тело было бы объявлено до этого сегмента.
Это инлайновые классы, чтобы как раз не создавать одноразовые-классы-ради-парадигмы. В 2021 конечно лямбды уже завезли, но тогда скрина не получилось бы
иногда и щас делают
Зайди да почитай ленивая ты жопа.
https://www.udemy.com/course/the-complete-javascript-course/
инфоцыгане буржуй эдишн
js fundametals 4:41:00 Hellp world and basic operation сука рот че там 5 часво жевать
Галопом по Европам. Самая поверхностная инфа на уровне первых частей первой главы Кантора. Но у Кантора углубление во всякие тех.детали, а там "пук, пишем функцию с аллертом, пук, если функцию с аллертом написать внутри класса, то это будет ООП."
Я не понимаю че там объяснять у жс легкий и читаемый базовый синтаксис, там один момент не пиши вар, пиши лет.
А тебя это ебать не должно.
for loop на ~8 часу (for of loop на 20+)
установка блокнота и нода на ~10 часу
видео про рефакторинг в разделе про дом евенты
первый рабочий counter app - на последнем часу курса
про behind the scenes норм наверно, но на этом все
У вас есть право вернуть значение из функции, если у вас нет значения, оно вам будет предоставлено
Бля, строчка, которую ты отправляешь в консоль - выражение. Результат объявления функции занешь?
Ты начинаешь что-то подозревать.
Напиши один и тот же фетч обоими способами и сравни, что легче воспринимается, когда когда видишь в первый раз.
В .then же можно отловить любые ошибки или нет? Есть try/catch но думаю это другое
Если статус ок payload должен писаться в одно поле, если не ок то он должен писаться в error, нихочу из api диспатчить экшены, как то по другому наверное можно?
Соображаешь.
Try/catch в асинке - сахарок над промисовыми аналогами.
Если такой вопрос вообще возник, то явно then.
Ну хорошо, значит ты неправильно определяешь статус
Но когда возникает - частая
Первый вопрос ,window.matchmedia это сам по себе эвентлистенер? Почему он работает сам по себе даже если я не создаю addEventListener resize в useffect, и туда не засовываю функцию содержащую window.matchmedia? Если он находится в useeffect, как он узнает, что нужно перезапустить проверку при изменении размера окна?
Второй вопрос, почему в реакте addEventListener работает вот в таком виде, а не просит изначально указать window.addEventListener? Если я в useEffect вешаю листенер единственный раз при маунте компонента, он все равно работает и без window. Почему так? Откуда он знает что я обращаюсь к window?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis
В js есть только объекты. Больше ничего.
Есть еще примитивы, но их можно тоже рассматривать в качестве синглтон объектов, потому как они боксятся, а сделаны разумеется для производительности. (тем более что сейчас ничего не мешает у примитивных добавить в цепочку прототипов прокси объект, отлавливащий сообщения, типа присваивания, и реалиховать поведение прототипов как полноценных объектов, но это ни к чему. проще воспринимать их как синглтоны. когда надо, любой примитив можно обернуть в полноценный независимый объект).
Так. Короче только объекты.
Все объекты делятся на callable и non-callable. Callable это функции, в понимании большинства. Но по факту это все те же объекты, со всеми свойствами что и у других.
Все объекты могут принимать всего несколько типов сообщений - get, set и call. При чем call может принимать только callable объект. при попытке послать call сообщение не-callable объекту будет исключение.
Сообщение get содержит один параметр, сообщение set два. Сообщение call параметром содержит кортеж аргументов, а так контекст this.
Если в объекте (а так же в цепочке прототипов) не назначены слушатели для get и set с определенными параметрами, ищутся слоты с такими именами в объекте и по цепочке. Если находится возвращается то, что в них лежит. Если в них лежит callable объект и ему посылают сообщние call сразу как получили его из слота, то у него будет перегружен контекст (this) на объект из чьего слота его получили. Если только этот объект не был сконструирован стрелочным синтаксисом, иначе контекст перегрузить нельзя. Если после получение callable объекта из слота его сразу не вызвать, а например положить ссылку на него в переменную, то контекст будет сброшен на тот, который был установлен у него в момент его создания (и это не обязательно будет тот же объект из чьего слота его получили).
У callable объектов есть scope (область видимости) и контекст (this) в момент посылки им сообщения call (вызова). scope средствами языка перегрузить нельзя, но некоторые окружения позволяют (например в ноде есть модеуль vm), this перегружается у callable объектов сконструированных не-стрелочным синтаксисом
Классов нет. Есть конструкторы. Любой конструктор принимает новый созданный объект, которому выставлен определенный прототип (другой объект). Оператор instanceof (someObject instanceof SomeClassName) проверяет лишь есть ли в цепочке прототипов у someObject объект который лежит у SomeClassConstructor в слоте с именем prototype. На сам конструктор ему поебать. Чтобы сменить класс, достаточно сменить цепочку прототипов. Даже если объект был сконструированным определенным конструктором.
Так же у объектов есть параметр ограничения доступа, контролирующие его расширяемость или изменяемость (sealed, extensible, frozen). У слотов объекта есть параметры configurable, enumerable, writable. Параметры слотов объекта не влияют на объекты, что в них лежат. Они лишь контролируют доступ к самим слотам.
Все. Никаких классов. Никаких интерфейсов. Как отдельных сущностей. По факту все есть объект и все строит из них.
наследование реализуется выстраиванием цепочки прототипов. Инкапсуляция только на уровне scope'в (читай замыканий).
В остальном все меняется и все динамично, если только специально все не зафризить в момент конструирования. Но обычно этим никто не заморачивается по причине оверхеда и бессмысленности. Разве только фанатики по иммутабельности, н это все из разряда те, кому надо чтобы им по рукам бил компилятор\рантайм\дядя петя. Все "привычные" понятия тянуться в язык для еще более простого вкатывания тех, кто приходит из других языков. Так уж сложилось, что есть куча литературы по привычному, статически классовому ООП, но очень мало по мессадж-пассинг\прототайп-базед\мета-программинг. Все эти притянутые понятия выливают в синтаксический сахар, который не делает ничего полезного, а даже наоборот, еще больше вносит путаницы и от того непонимамания многих вещей в языке. При этом часто этот синтаксический сахар дэже урезан и вспомнинают об этом лишь после (как например проебались с полями в конструкции class и тянут ее теперь только в proposol'ах будущих версий).
JS истинно объектный язык. В современный язык притащили много вкусных вещей для метапрограммирования. Нову примитивную сущность Symbol, и Proxy-объекты. С помощью которых можно еще больше и сильнее перегружать и менять поведение в динамике.
Другое дело, что почти никто не умеет этим пользоваться и не понимает, что такое объектное программирование на самом деле.
Им нужно не объектное, а статически типизированное. А какие именно структуры будут скрываться за этими типами, не собо важно. Важно что это просто структуры и функции, строго привязанные к ним, или иногда менее строго. То, что в Java\C++ это больше структурное программирование, нежели объектное. Объектное программирование не может существовать без динамической среды. Это противоречит самому понятию объекта. А динамическое программирование это слишком сложна и непанятна. И как бы не старались с пеной у рта фанатики кричать про низкий порог входа - низкий он именно что для входа, а не для всего остального. Модификация программ в рантайме всегда было уделом креативно мыслящих людей. Для большинства это слишком сложный уровень высокой абстракции.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis
В js есть только объекты. Больше ничего.
Есть еще примитивы, но их можно тоже рассматривать в качестве синглтон объектов, потому как они боксятся, а сделаны разумеется для производительности. (тем более что сейчас ничего не мешает у примитивных добавить в цепочку прототипов прокси объект, отлавливащий сообщения, типа присваивания, и реалиховать поведение прототипов как полноценных объектов, но это ни к чему. проще воспринимать их как синглтоны. когда надо, любой примитив можно обернуть в полноценный независимый объект).
Так. Короче только объекты.
Все объекты делятся на callable и non-callable. Callable это функции, в понимании большинства. Но по факту это все те же объекты, со всеми свойствами что и у других.
Все объекты могут принимать всего несколько типов сообщений - get, set и call. При чем call может принимать только callable объект. при попытке послать call сообщение не-callable объекту будет исключение.
Сообщение get содержит один параметр, сообщение set два. Сообщение call параметром содержит кортеж аргументов, а так контекст this.
Если в объекте (а так же в цепочке прототипов) не назначены слушатели для get и set с определенными параметрами, ищутся слоты с такими именами в объекте и по цепочке. Если находится возвращается то, что в них лежит. Если в них лежит callable объект и ему посылают сообщние call сразу как получили его из слота, то у него будет перегружен контекст (this) на объект из чьего слота его получили. Если только этот объект не был сконструирован стрелочным синтаксисом, иначе контекст перегрузить нельзя. Если после получение callable объекта из слота его сразу не вызвать, а например положить ссылку на него в переменную, то контекст будет сброшен на тот, который был установлен у него в момент его создания (и это не обязательно будет тот же объект из чьего слота его получили).
У callable объектов есть scope (область видимости) и контекст (this) в момент посылки им сообщения call (вызова). scope средствами языка перегрузить нельзя, но некоторые окружения позволяют (например в ноде есть модеуль vm), this перегружается у callable объектов сконструированных не-стрелочным синтаксисом
Классов нет. Есть конструкторы. Любой конструктор принимает новый созданный объект, которому выставлен определенный прототип (другой объект). Оператор instanceof (someObject instanceof SomeClassName) проверяет лишь есть ли в цепочке прототипов у someObject объект который лежит у SomeClassConstructor в слоте с именем prototype. На сам конструктор ему поебать. Чтобы сменить класс, достаточно сменить цепочку прототипов. Даже если объект был сконструированным определенным конструктором.
Так же у объектов есть параметр ограничения доступа, контролирующие его расширяемость или изменяемость (sealed, extensible, frozen). У слотов объекта есть параметры configurable, enumerable, writable. Параметры слотов объекта не влияют на объекты, что в них лежат. Они лишь контролируют доступ к самим слотам.
Все. Никаких классов. Никаких интерфейсов. Как отдельных сущностей. По факту все есть объект и все строит из них.
наследование реализуется выстраиванием цепочки прототипов. Инкапсуляция только на уровне scope'в (читай замыканий).
В остальном все меняется и все динамично, если только специально все не зафризить в момент конструирования. Но обычно этим никто не заморачивается по причине оверхеда и бессмысленности. Разве только фанатики по иммутабельности, н это все из разряда те, кому надо чтобы им по рукам бил компилятор\рантайм\дядя петя. Все "привычные" понятия тянуться в язык для еще более простого вкатывания тех, кто приходит из других языков. Так уж сложилось, что есть куча литературы по привычному, статически классовому ООП, но очень мало по мессадж-пассинг\прототайп-базед\мета-программинг. Все эти притянутые понятия выливают в синтаксический сахар, который не делает ничего полезного, а даже наоборот, еще больше вносит путаницы и от того непонимамания многих вещей в языке. При этом часто этот синтаксический сахар дэже урезан и вспомнинают об этом лишь после (как например проебались с полями в конструкции class и тянут ее теперь только в proposol'ах будущих версий).
JS истинно объектный язык. В современный язык притащили много вкусных вещей для метапрограммирования. Нову примитивную сущность Symbol, и Proxy-объекты. С помощью которых можно еще больше и сильнее перегружать и менять поведение в динамике.
Другое дело, что почти никто не умеет этим пользоваться и не понимает, что такое объектное программирование на самом деле.
Им нужно не объектное, а статически типизированное. А какие именно структуры будут скрываться за этими типами, не собо важно. Важно что это просто структуры и функции, строго привязанные к ним, или иногда менее строго. То, что в Java\C++ это больше структурное программирование, нежели объектное. Объектное программирование не может существовать без динамической среды. Это противоречит самому понятию объекта. А динамическое программирование это слишком сложна и непанятна. И как бы не старались с пеной у рта фанатики кричать про низкий порог входа - низкий он именно что для входа, а не для всего остального. Модификация программ в рантайме всегда было уделом креативно мыслящих людей. Для большинства это слишком сложный уровень высокой абстракции.
>Инкапсуляция только на уровне scope'в
Инкапсуляция же про то чтобы методы и данные лежали рядом, а не про видимость данных, можно просто на уровне соглашений, лол
>если только специально все не зафризить
Для дев тайма почему бы и нет
Хороший пост, поставил лойс
>Инкапсуляция же про то чтобы методы и данные лежали рядом
в жабе методы и классы разделены и ничего не случилось
Методы лежат в классах
Нахуя тебе дополнительные аргументы передавать в колбэки ивентов? Компонент не обосрётся от того, что функции в нём с сайд-эффектами.
Т.е. если у меня есть 10 кнопок, каждая из которых выводит один и тот же useState и выводит содержимое в каком-нибудь элементе на экране. То мне нужно создать 10 разных функций, каждая из которых будет по сути одинаковой, но менять стейт на разное значение?
changeText1 = () =>{
setText("text1")
}
...
button1 onClick={text1}
button1 onClick={text2}
button1 onClick={text3}
button1 onClick={text4}
Вроде такого? Ну при условии, что кнопок у меня может быть и меньше, это только для примера.
в тайпе есть перегрузка функций, в жске ток карирование но эт не то.
Блядь, имя функции перепутал, ну вы поняли в общем. Лучше создать отдельные функции для каждой кнопки или какой еще есть вариант?
Дело не в функции, а в том много из-за нее перерендерится или нет. В случае с кнопкой - видимо мало, можно не думать.
Но это все попадает в категории преждевременных оптимизаций. Сначала дождись/добейся плохой производительности, потом профилируй, потом оптимизируй.
>Но это все попадает в категории преждевременных оптимизаций. Сначала дождись/добейся плохой производительности, потом профилируй, потом оптимизируй.
О, вот про такое я не знал, спасибо
Потренироваться профилировать/оптимизировать можешь уже сейчас кстати, на своих кнопках. Потому что то вариант с десятью функциями эквивалентен просто передачи стрелочной функции в onClick, надо не только лишь создать функции, но и завернуть из в useCallback
> мдна и лёрнговноскрипта?
Ему говорять, читай проверенные и общепризнанные источники. Нет хочу жрать говно и качать инфоцыган.
:(
Годный пост. В этом и сила джса, что он не обязывает использовать всю подноготную. Сейчас хорошей практикой считается вообще игнорирование this и объектов (в классическом смысле), главная мощь джса это функции как значения, нужно быть глупцом, чтобы не использовать всю мощь замыканий, а хуярить сахарные классы и зисы.
С сахаром то классно, тут декораторы, там декораторы, везде декораторы
ты всего лишь предлагаешь писать в фп стиле, ориентрируясь на чистоту функций, что собсна и так делали так как ооп там тот еще огрызок
Как обычно у таких филосовских мань дальше раскладывания кубиков на столе дело не идет. За манкипатчиг реальные программисты ногами по печени бьют.
>сделать сайт для детсада
>Дешевле
>лучше, как всегда
>просто склепать и отдать
>чтоб уже контент менеджер какой-то заливал
Только Вротпресс с натянутым шаблоном!
>Думал о gatsby
Контент без ЦМС кто заливать буит?
>смотрю в сторону wix
Говно буит, но тоже вариант, разве что расходы большие (относительно)
>>Модификация программ в рантайме всегда было уделом креативно мыслящих людей.
Криворуких долбоебов, ты хотел сказать, которых все нормальные программисты гнали ссаными тряпками.
Все что ты описал - это конечно круто понимать. Только это не улучшает язык/процесс/продукт, а скорее наоборот. Твоя хвалёная динамичность всего и вся есть не мана небесная, а исторические издержки языка, которые все толковые евангелисты и авторы учебных пособий предпочитают ограничивать в сторону нормального ООП. Потому что никто не хочет стрелять себе в колено (причём в оба сразу), а хотят стремится к предсказуемости и стабильности среды.
Они все дерьмо которое работает только с костылями
Создай для этой кнопки отдельный компонент и прокидывай ему в пропсы значение состояния и колбэк.
Что-то типа:
function Button({ text, setText }) {
function handleClick(){
setText(text)
}
return (
<button type="button" onClick={handleClick}>Click me</button>
)
Зисы в сахарных классах как раз норм, вот за пределами их - это пiзда, потому что IDE не может в зисы, и приходиться гадать, в каком контексте они вызываются.
Пишу на функциях не вижу this
и как ты себе это представляешь?
Давай ещё серани про bind
Попробовал вывести сам массив: console.log("recvdata.bothp from ctrl: ", this.recvdata.bothp); - undefined
Попытался обратиться к полю внутри объекта массива: console.log("recvdata.bothp[0].id from ctrl: ", this.recvdata.bothp[0].id); - undefined
recvdata - это props; на скрине видно, что bothp - массив с длиной 5
Что за хуйня?
Берёшь и деструктурируешь this в теле метода.
Может потому что нужно обращаться как `this.props.recvdata.bothp`?
После того как ты открываешь в консоли объект, он показывает текущее значение а не то состояние когда ты его выводил. На тот момент когда ты пытаешься что-то сделать с массивом его не существует в объекте, и это подтверждается тем что recvdatat.bothp возвращает undefined.
Никогда. В жс преимущественно динамическое связывание. И будь ты поумнее и понимая это, не задавал бы таких вопросов.
Можешь попытаться понять почему отказались от коеструкции with (). Именно поэтому.
а если реакт будет только на сервере работать?
Двачую, докатились что на среакте можно быстрее захуячить статику нежели дрочится с ванилой кекнул
Нельзя.
В жопоскрипте в принципе и в реакт-окружении в частности, нет ничего, что можно записать в "хуяк-хуяк и готово", только мучительная настройка всего говна с нуля, либо копипаст этих настроек из своих старых проектов. Хуяк-хуяк и готово - это вордпресс.
Ну вот я первый раз в начале той неделе настраивал проект с нуля с вебпаком, с реактом, с тайпскриптом, с линтером со всей хуйней. В общей сложности часа 4 на настройку. И то это потому что вся инфа примерно годичной давности и актуальную инфу под 5й вебпак приходилось по курпицам выискивать. Зато теперь я неплохо разобрался во всех этих конфигах и за полчаса-час смог заново то же самое склепать. Или вообще ctrl+c ctrl+v. Если страницы статичные, то все дело сводится, по сути, к верстке на JSX.
Ну ты же понимаешь, что описанное тобой - это окружение разработки и если тебе его надо настраивать целый час прежде чем приступить к самой разработке причем к разработке только фронта, то ни о каком "хуяк-хуяк и готово" речи идти не может в принципе. За то время, пока ты свои линтеры-хуинтеры настраиваешь, на вордпрессе будет целый сайт готов и задеплоен.
Так тот анон вордпресса же не знает. Вот я тоже не знаю, и даже не представляю с какой стороны подойти. Нужно тратить время на изучения сомнительной технологии. А если уже знаешь реакт, то можно по-быстрому нахуячить. Пусть не за час, как там на вордпрессе шаблонов натыкать, пусть часа за 4. Но все равно, не так уж и долго. Дольше в этом вордпрессе разбираться.
>ты че дурак?
Ну а нахуя оно нужно? Я как не посмотрю на вакуху с битриксом\вордпрессом, так там всегда какой-нибудь анал-карнавал за 20к\месяц.
Учитывая, что ему нужно быстро склепать полностью готовое решение и отдать не-программистам, чтобы они ему дальше не ебали мозги, то легче и быстрее реально вордпресс с нуля освоить. Потому что разобраться в кастомном говнокоде на реакте и кастомном сервере на ноде даже у знающего человека займет время. А не-кастомных не бывает, это же жс без каких-либо устоявшихся практик, инфраструктуры и фреймворков, любой незнакомый проект на нем - это ящик пандоры, никогда не знаешь, что за хуйню найдешь внутри.
Написал свой велосипед, который внутри сделан из Map(v1 => Set (... v2))
В моей задаче это примерно в 2 раза быстрее конвертации пары значений в строку и складывания в обычный Set. Норм решение или говно?
gatsby это вообще graphql-ориентированный кал и серьезного обсуждения не заслуживает.
Graphql в нём на втором плане, это всего лишь средство, инструмент. Ориентирован gatsby на создание статичных сайтов.
Использовать useEffect для отслеживание состояние переменной это хуевая практика? Типа вешать его как eventListener только для переменной. И если переменная меняется, выполнять уже какую-то функцию
Ну так получится, что у него будет штук 20 useEffect для каждой переменной.
Я бы так сделал: переменные хранятся внутри объекта, когда происходит изменение переменной, то объект пересоздается заново со старыми ключами, записывается измененная переменная и ключ last, который содержит название переменной, которая изменила свое значение.
Какую фабрику, ты о чем?
Просто функция которая изменяет true на false или наоборот делает так: let variables = {...variables, changedVariable: "new", last: changedVariable}
П.С. Нет, если я обосрался и говно предложил, то ты мне скажи, мне же интересно. Но в любом случае, на мой взгляд, это выглядит лучше чем по хуку для каждой переменной.
О, классная идея, попробую так сделать.
Но тогда можно спросить по другому, как вообще можно запилить индикатор скролла страницы до определенного элемента? В данном случае я использовал хук, но это не принципиально.
Но для реактовиков пойдет, они же обычно макаки без тех бекграунда и даже рады процедурщине в верстке.
ну да одним расистам светит пятнаха за кокпитолий, а вторые обнесли все магазины на районе, пиздили ментов и они херои.
>Там плашка на весь экран нескрываемая
Какой-то странный способ сказать "я слишком тупой для rxjs"
зато есть прото и прототайп
>Ну так получится, что у него будет штук 20 useEffect для каждой переменной.
Лень проверять правильно или нет
let oldA = false;
let oldB = false;
const Triger = () => {
const [a, setA] = useState(false);
const [b, setB] = useState(false);
useEffect(() => {
if (a && a !== oldA) {
console.log("a", a);
}
if (b && b !== oldB) {
console.log("b", b);
}
oldA = a;
oldB = b;
}, [a, b]);
npm -> rate limit
Так берешь и вручную навешиваешь сеттеры на твой объект
Я уже сделал с https://www.npmjs.com/package/react-intersection-observer
но за вариант спасибо
Пиздец ты чмоха, еще больше зависимостей навешай, вместо использования нативных возможностей языка которые уже поддерживаются в 95% браузерах
Диванный вкатыш, ты? С каких пор rx стал процедурщиной? И rx намного популярнее в ангуляре, чем в реакте.
>rx
>говнокодно
Диванных экспертов полон тред. То что при помощи rxjs делается за пару строк, обычным функционалом делается за несколько десятков нечитаемых строк состоящих из циклов.
Там внутри нативные возможности и используются, просто без необходимости городить компактный хук, который проще использовать и читается лучше другими людьми
Ну да, мы же тут пиздец олимпиадным программированием, нахуй никому не нужным, заняты, а не решаем кабанчикозадачи ради деняк
GDPR
Твою фирму может отшпилить ЕС, если окажется, что она собирала данные о его гражданах без их ведома (и она не в конце списка виновных в этом). Ну или ушлый юрист может маляву написать.
Для своего пета можешь забить хуй, но большинство айти крутится в англосфере и, соответственно, ЕС вполне имеет влияние на неамериканские компании.
Эталонный говнокод, конечно. Несколько копий компонента на странице и все идет по пизде.
Что делать чтобы что? Показать состояние объекта на тот момент вывод? Используй JSON.stringify, например.
Нужен простой сайт визитка.
Заодно будут пробовать верстать потом стравнивать результат.
за нее же платить надо каждый месяц.
5к рублей и я сделаю тебе бесплатный сайт-визитку, верстать под него сможешь пока не обосрешься.
Реактовкатун
Ну скидывай так чего тебе надо, если не сильно заебно, то сделаю бесплатно.
Хуй знает что получилось.
https://pastebin.com/73drBMRf
Пароль: 2ch
Сейчас доступ к объектам массива bothp:
console.log(this.profiles.profiles.bothp[0].id);
Ну, хотя бы не ругается на отсутстующий массив, блядь...
Как мне поправить пропсы, чтобы доступ был console.log(this.profiles.bothp[0].id); ?
Нахуй мне односраничник с формой для отправки мыла в портфолио? Даже туду выглядит перспективней. Вот если бы он мне заплатил, то это был бы не просто односраничник с формой для мыла, а КОММЕРЧЕСКИ УСПЕШНЫЙ проект. Такое уже не стыдно и показывать.
Запрос по сети? Может у тебя компонент юзает значения, которые им еще не получены? Или эти profiles берутся локально?
>Запрос по сети?
Да, с ws-echo сервера.
Socket.$on("message", (json) => {
if ('bothp' in json) {
this.profiles.bothp = [];
json.bothp.forEach(curElem => {
this.profiles.bothp.push({
id: curElem.id,
name: curElem.name,
is_valid: curElem.is_valid,
temp: [...curElem.temp.split(',', 10)],
duration: [...curElem.duration.split(',', 10)]
});
});
//console.table(this.profiles);
}
}
>Может у тебя компонент юзает значения, которые им еще не получены? Или эти profiles берутся локально?
Если я правильно понял, то для пропса достаточно задать пустой массив \ объект как шаблон, а затем заполнить его. Впринципе, всё - пропс виден дочерним компонентам.
Ну собери блять хелловорлдный сервер на экспрессе. Тем более что в ноде опыт есть и экспресс служит для уменьшения бойлерплейта, которое ты оценишь.
Круд на Динамо дб и експерсс собрать могу. Просто интересно есть ли тонкости которые явно показывают работал ты с этим или нет
Там тонкости в основном в хуеве туче npm пакетов, ты это за 2 дня не познаешь.
Разработка на ноде один хуй мистицизм, если собеседующему надо будет тебя завернуть, то он это сделает даже если ты с экспрессом с первой версии работал.
Так от пакетоблядей надо самому сразу же подрываться и убегать... Если тебя на собесе спрашивают не за архитектуру и пайплайн, то сразу видно, что это говноконтора с тасками "чтобы было сделано уже вчера".
Следует много уметь
О, какие на пример бывают вопросы по архитектуре? Я вроде как достаточно опытен в этом, но не могу придумать как сформулировать какой то вопрос по этому, разве что только по выполнению какого то практического задания понять.
Сделай на бумажке свой гугл докс, от общего названия сервисов до описания основных классов, и какая инфраструктура под все нужна :))
Найс
Так мы говорим конкретно про знание экспресса, и как его будут проверять. А там без ёбли с пакетами никак.
Могут например показать код инициализации сервера со строчкой`var bodyParser = require("body-parser")` и спросят, что в нём не так.
Хотя подозреваю под знанием express подразумевается не обмякать при виде кода экспрессовского приложения, а не какие-то кишочки пакетов.
Думаешь там что-то сложное должно быть? Может быть простое, чтобы показать что ты можешь писать нормально. Касательно ноды и экспреса, можно спросить, как избавится от импорта всего в каждый модуль. При этом не прибегая к разным пакетам с реализацией DI. Как это облегчит тестирование и почему. Можно спросить для чего нужен мониторинг приложения на ноде, как ты его реализуешь.
Бамп, спецы.
Что ты не слышал? Импорт - прямая зависимость, инъекция в виде параметров в фабрику - обращеная зависимость.
Ладно, я тебя сначала не правильно понял, все так
Т. е используя фабрику из модуля, который ничего не импортирует, ты отделяешь бизнес логику от конфигурации. Конфигурация может быть реальной или созданой моками для тестирования
Хорошо поясняешь, если не секрет, какой опыт работы?
Плюс вопросу
понел)
Если пойдёшь на завод или водить такси, вряд ли. А вообще, задай вопрос конкретнее.
Хороший вопрос. Когда функция зависит от пропса или стейта. Её наверно для этого и придумали.
Жалко что в Реакте нет готовых computed-штук как в Vue. Было бы удобней и не было бы плясок с useMemo/useCallback/memo
>>33117
https://vuejs.org/v2/guide/components-props.html#Passing-the-Properties-of-an-Object
Сделал так.
Но вотчер в конечном дочернем компоненте (ctrl) не реагирует на обновление массива bothp в родительском компоненте, хотя должен: даже вывод в консоль profiles не отображается.
Когда нужна стабильная ссылка, очевидно
https://kentcdodds.com/blog/usememo-and-usecallback
>>33460
>Когда функция зависит от пропса или стейта.
Неверный ответ, который ведет к оверхеду на пустом месте
> <button onClick={() => setCandies(initialCandies)}>refill</button>
Что за долбаеб на эвент кидает коллбэк в jsx, когда в документации прямым текстом сказано, что это хуевая практика? Не читал твою хуйню, соре
я про перебор объектов и необходимость Symbol.iterator на практике
>Что за долбаеб
Ты не знаешь кто такой Кент Си Доддс что ли? Неплохое начало.
>на эвент кидает коллбэк в jsx
Давай, покажи нам как надо
>в документации прямым текстом сказано, что это хуевая практика
Не сказано там такого, ты это выдумал в угоду своим заблуждениям
>Не читал твою хуйню, соре
Да мне-то что? А вот в ты упустил шанс стать умнее и продвинуться в понимании Реакта.
>Ты не знаешь кто такой Кент Си Доддс что ли?
Зачем мне знать кого-либо из твоих протыков?
>Давай, покажи нам как надо
>Не сказано там такого
Дед, ты очки правильно одень. Они у тебя на затылке.
Может про это имелось ввиду
>Проблема этого синтаксиса в том, что при каждом рендере LoggingButton создаётся новый колбэк. Чаще всего это не страшно. Однако, если этот колбэк попадает как проп в дочерние компоненты, эти компоненты могут быть отрендерены снова. Мы рекомендуем делать привязку в конструкторе или использовать синтаксис полей классов, чтобы избежать проблем с производительностью.
https://ru.reactjs.org/docs/handling-events.html
Алсо, я просто тоже натыкался на то, что советуют не передавать коллбэки
>When we declare callback as onClick={this.fetchUsers} every render call will pass the same onClick reference to the button.
>At the time, when we use onClick={() => this.fetchUsers()} each render call will init new function () => this.fetchUsers() and will pass it to the button onClick prop. It means, that nextProp.onClick and prop.onClick won't be equal and even if we use a PureComponent instead of button it will be re-rendered.
Это точно касается классовых компонентов. Неизвестно как это работает в функциональных компонентах, но мне кажется таким же образом
мимо
Так а что там понимать? Вот тебе видео, понятнее некуда. Посмотришь и поймёшь куда дальше прыгать
https://youtu.be/T8EYosX4NOo
Забыл сказать, что речь про реакт...
Любое "быстрее-медленее" должно подкрепляться и основываться только на измерениях и бенчмарках. Если ты говоришь "мне кажется" и начинаешь теоретизировать про оптимизацию, то все эти рассуждения отправляются в помойку по умолчанию как маняфантазии и основывать на них какой-то код нельзя. Код пишут в первую очередь чтобы он выполнял поставленную задачу, во вторую чтобы он читался и только после этого , если ты вдруг увидишь некие конкретные просадки в производительности, то можно задуматься об оптимизации. Так что пиши свои онклики где хочешь или где читается лучше.
>Это точно касается классовых компонентов. Неизвестно как это работает в функциональных компонентах, но мне кажется таким же образом
Так же работает.
Очевидно что создавать функции на пустом месте не нужно, но если надо забиндить какие-то параметры, то особенных альтернатив и нет.
Понял. Попробую завтра пример какой нибудь накидать. Может получится посчитать. Просто в гугле не видел информации о подобном, вот и заинтересовался
>Если есть возможность писать функции вне компонента - то стоит их писать вне компонента
В целом, да, если им не нужны переменные из замыкания.
>По идее после каждого рендера они заново создаются, если не мемоизируешь их (хотя даже так они наверно заново создаются)
В обоих случаях заново создаются.
>отрисовка должна быстрее происходить
Нет. Отрисовка происходит 60 раз в секунду на большинстве мониторов. Чтобы она стала происходить быстрее нужно сначала добиться того чтобы Реакт начал дропать кадры. Это во-первых не так-то просто, во-вторых узкое место скорее всего будет в работе с DOM, а не в создании функций.
Единственный случае когда это реально может на что-то повлиять, это если компонент ререндерится каждый кадр, а функций очень много. Тогда теоретически может начать грустить GC. Но даже в такой ситуации надо это измерить сначала.
Тут проблема не в классас/функциях, а в том, что безымянные функции создают новый инстанс при каждом вызове. А в ванилле ивент листенер с безымянным колбэком не убрать через `removeEventListener()`.
Подписаться на window.resize это супер алгоритм?
Если ты вкатун и хочешь прочитать учебник, то читай дальше. Конкретно эта глава на том этапа на котором она стоит сложновата для вкатуна, но потом если захочешь вернуться к ней, она уже не будет тебе казаться чем-то экстра сложным.
спасибо, да кантор хуевенько объясняет некоторые моменты из es6, приходится обмазываться ютубом владилена залупинина, тот объясняет как боженька
Если ты в него хочешь запихнуть какой-нибудь фетч, то `getServerSideProps()` и `getStaticProps()` перестанут работать.
Бля какие же дегенераты вкатуны нынче.
часовые видео он смотреть не может.
А лекции в универах может тоже нахуй не нужны? просто взял методичку у пошел домой самообучаться.
как ты можешь понять что-то из кроткого и лаконичного дока, который написан разработчиком для разработчиков?
Ангуляр, при этом не просто круче из за того что порог вхождения выше, но и по быстродействию, функционалу, архитектуре.
Лекция это краткий пересказ того что в книге прочитал лектор, толку от неё только если ты освежаешь знания а не пытаешься получить их.
бля такие смешные вы тут. сретесь с каким бубмном лучше плясать, когда большинство тут никогда не имело дело с проектами, на которых может быть видна разница
Смотря для чего, если хочешь сделать одностраничник, то бери Angular, если тебе нужна крутая CRM с серьезным фронтом, то бери jQuery, главное ничего не перепутай
И? Каким боком это на твой высер про лекции влияет? Тебя попросили текстовый материал, а не его пересказ дегенератов с ютуба, а ты начал кукарекать про лекции в универе и их пользу. Вот тебе и говорят - польза от них стремится к нулю. Особенно в рашковузах с их нулевым общением с аудиторией.
Есть смысл в классовых только при условии что ты собираешься поддерживать и работать с этими компонентами и кодом длительное время .
ясно, очередной всратун из тракторного училища имени Сралина решил покорить айти
На ютубе так-то не только инфоцыгане и хайпожеры контент создают. Есть годные лекции по архитектуре софта. Этого не найти в доках, а книги это еще дольше
А что, есть видео материалы для вката в ноду? Кроме индийцев которые час пишут
http.createServer( (req, res) => {
- если гет то отдать индекс.жс
- если пост то запостить пейлоад в консоль
});
>А лекции в универах может тоже нахуй не нужны? просто взял методичку у пошел домой самообучаться.
Найс подрыв студентишки. Не поверишь, но не нужны. Ссуть вузов - выпускать верных государственности клерикалов и лекции выступают в роли НЛП для этого.
>как ты можешь понять что-то из кроткого и лаконичного дока, который написан разработчиком для разработчиков?
Да типичные видосики по лаконичности не длиннее текстовых гайдов, если убрать всякие мэканья и причмокивания.
Лекции нужны, если у тебя хороший лектор, который не читает по бумажке, а работает с аудиторией, смотрит, что им скучно, что им непонятно, и принимает для этого какие-то действия. Но к 99% лекторов в российских вузах это не относится, и уж тем более не относится к бубнежу на ютубе.
Ну если у тебя есть задача по обяазательной очистке тысячи строк, которая будет производится в симуляции мобильного устройства, то наверное 40 лишних миллисекунд это пиздец какая большая разница, ага.
Ну если у тебя есть задача по обяазательной очистке тысячи строк, которая будет производится в симуляции мобильного устройства, то наверное 40 лишних миллисекунд это пиздец какая большая разница, ага.
Однонаправленный потому что всё идёт через стейт менеджер, сначала передаешь в стейт, потом стейт передает по цепочке дальше. Напрямую от дочернего к родительскому ты передать не можешь
Как то быстро ты перешел с "лол" на стену текста "нинужнаяскозал".
Аноны, возможно ли сделать так, чтобы при наведении курсора на этот прямоугольник (fixed позиция) он не блокировал скролл айфрейма под ним?
Да вы тут все черви-пидоры ебаные.
На метаните кратко и понятно всё объясняется.
Мелкобукву забыли спросить про ЧСВ.
Ты ничего не передаёшь вниз или вверх. Передавая колбэк в пропсы ты просто передаёшь ссылку на колбэк, а дочерние компоненты вставляют в него нужные аргументы.
Юзай редакс не еби мозг себе
Так тебе его нужно распарсить. Думаешь макакен сохранял бы посты на дваче без эскейпа html-тегов?
На jQuery всегда будет работа. А с ангуляра на реакт заново переписывают.
Есть ли шансы на нем работать? Может стоит чуть подождать и вакансии полетят вверх?
Обязательно подожди ,
Не бухти, БОГАТЫЙ ГАРИС уже обкашливает все нужные вопросики с английской королевой. Тогда бабло для вакансий просто потечёт рекой, надо просто потерпеть и не раскачивать лодку.
Можешь кинуть какой-нибудь пример, который ты реализовываешь на .then()? Я бы тогда переписал тебе его на async/await и на примере бы ты понял в чем отличие.
В идеале хотелось бы получить чето типа такого: https://pastebin.com/k4frYQu7
Понимаю что такое можно и руками в принципе написать, на нет и суда нет как гритбся
var washingtonRef = db.collection("cities").doc("DC");
// Set the "capital" field of the city 'DC'
return washingtonRef.update({
capital: true
})
.then(() => {
console.log("Document successfully updated!");
})
.catch((error) => {
// The document probably doesn't exist.
console.error("Error updating document: ", error);
});
Опционал firebase. Я проверял, в аргумент колбека ничего не падает.
try {
await washingtonRef.update({...})
console.log('Document successfully updated!')
} catch (error) {
console.error("Error updating document: ", error);
}
Пожалуйста
Откуда ты там возвращаешь значение?
Сегмент с прописом выглядел бы так:
async () => {
try {
const doc = await washingtonRef.update({capital: true});
console.log("Document successfully updated!");
} catch (error) {
console.error("Error updating document: ", error);
}
}
Да
чтобы вкатится нужна не мотивация а ежедневный организованный процесс, если ты на мотивации потратишь целый день, а потом неделю будешь в доту гонять то грош цена твоим усилиям.
нужно каждый мать его день хотя бы часа по 3, лучше больше но без фанатизма а то выгоришь, уделять обучению и через полгодика будет какой-никакой результат.
>Аноны, возможно ли сделать так, чтобы при наведении курсора на этот прямоугольник (fixed позиция) он не блокировал скролл айфрейма под ним?
памагите
что значит с нуля вкатился? до 30 лет работал в пятерочке и потом стал погромистом? нет таких людей
Жопой жуй таких людей.
>книгу
Вот это кстати признак вкатуна, которого объебали инфоцыгане.
На самом деле в том, что ты вкатишься - ничего почетного не будет.
Ты вкатишься в днищепрограммирование и будешь работать там пол жизни, если повезет. Большинство будет работать всю жизнь в таком - а это стремная офисная работа.
Инфоцыгане вам там небось золотых гор наобещали, лол.
И еще это ебаное ощущение пустоты. Будто бы я ничего не знаю, ничего не умею, ничего не могу, хотя это объективно не так, я все-таки на что-то способен, но мне кажется, что еще столько всего предстоит изучить, что пиздец просто
сначала делаешь список технологий для проекта и дрочишь их
А про что писать книгу вкатившемуся вкатуну?
О том, как пофиксил первый баг и первый раз прод положил?
>Partially selected nodes include the parent tags necessary to make the document fragment valid.
Так в этом вся суть гей-либерализации. Если не будешь испытывать чувство пустоты, то не побежишь заРАБатывать многа денег, чтобы заполнить эту пустоту новым хайповым продуктом. Соответственно ценность капитала как источника силы упадёт, а это непозволительный исход для Федерального Резерва, ссуть которого - приумножать капитал ассимптотически.
А, все, понял. Можно не отвечать.
Array.from(str).map().reduce().filter()
А какого, собственно, члена? Почему в первом случае он не возвращает тру, а возвращает букву. 2 равно 1 ИЛИ 2 ----- ТРУ. ДА, 2 РАВНО 2. Логично же, не? Почему во втором случае тру, я могу себе представить. Типо прошла проверка, вернулось тру, все, дальше можно не выполнять. А почему при скобках блять фолс?
А, ну почему при скобках фолс, мне тоже ясно. Там не с чем сверять. Да? Тогда хуле бы первую букву не вернуть?
>Почему в первом случае он не возвращает тру, а возвращает букву
Потому что это false || "e"
>Почему во втором случае тру, я могу себе представить
Потому что это true || "e"
>А почему при скобках блять фолс?
Потому что это "e" === "o"
>Потому что это "e" === "o"
Блять, а каким это образом? Как выражение верни ПЕРВОЕ ТРУ из (ТРУ или ТРУ) превратилось в "e" === "o"? Я неправильно воспринимаю ||?
Потому что "o" || "e" вернет "o". 1 || 2 вернет 1. {a: 1} || {a: 2} вернет {a: 1}.
У тебя условие читается как элемент массива равен Х ИЛИ строка.
Логические операторы возвращают результаты сравнения выражений, а не что ты там думаешь. Сперва высчитывается значение сравнения, если результат ложный, переходит ко второму значению, которое всегда истинно, и его возвращает.
>>34743
Блять, все я понял. Я так затупил пиздос.
А есть способ сократить вот это бесконечное повторение (arr.toLowerCase() === "o") || (arr.toLowerCase() === "e")? Если мне, допустим, нужно проверить 600 китайских иероглифов, я же не буду 600 раз писать (arr.toLowerCase() === "o").
Без регулярных выражений, бтв.
А, ну заебись, спасибо.
>Без регулярных выражений, бтв.
Что-то уровня "как дрочить вприсядку не присядая". Альтернатива регуляркам - отдельная функция, которую будешь вызывать с возвратом сравнения аргументов.
Бля, а вот это круто получилось. Только я не понял, в строке, где ты новый метод в прототип строки пихаешь this там к чему относится? Какое у него значение будет?
Менять прототипы встроенных в язык классов - это что угодно, кроме "круто".
То есть просто С? Это ссылка на объект который вызывает метод? Без подвохи?
Просто стоило начинать с изучения программирования, а не с изучения языка программирования.
this будет относится к тому у чего ты этот метод вызываешь, в данном случае, так как это прототип строки, то будет равен строке, если это строка из одного символа, то будет один символ.
Хуя ты минификатор у мамки, правда "запихнуть всю логику в одну строку" не равно "укоротить алгоритм".
>короткая запись
>УКОРОТИТЬ АЛГОРИТМ ЯСКОЗАЛ!!
Проиграл с этих нелепых манёвров. Просто изучай ФП и не будешь баттхертом.
Засунуть в одну строку 5 логических переключателей - это то же самое, что переименовать все переменные до одной буквы и называть это "сокращенной записью". Нечитаемой, минифицированной, глупой(если ты писал это руками, а не прогнал через минификатор) - может быть, но не сокращенной.
попробуй другую
Ну ты и говнокодер.
Пиздец ты калич.
case + тебе не нужна пустая стринга, ты можешь её сразу возвращать через return в консоль.
Что ты сказать то хочешь? Что твоя императивная параша будет лаконичней божественной, декларативной? Нет, этого не будет за рамками твоих маняфантазий.
Раз уж твой мозг неспособен воспринимать тернарные операторы, то вот эту версию даже даун вроде тебя должен понять.
>засунул абсолютно ту же самую логику в нечитаемую однострочную функцию
>ты нипанимаешь эта лучши патаму чта дикларативна и тирнарный апиратор это не плохо читаемое иф елсе, ета фп!!!
Особенно серанул с is* функций, которые возвращают не-булевое значение.
Во-первых это не мой код, во-вторых суть в этом и заключается - ты сделал то же самое, что и в том посте, только в сто раз более нечитаемом виде, и почему-то гордишься этим. Засунуть в одну строку рекурсию и три вложенных друг в друга тернарных оператора - это книжное определение говнокода.
>это самая короткая запись
>макнули головой в унитаз за пиздеж и показали два варианта которые как минимум в 2 раза короче
>ДА Я НИПАНИМАЮ ШТО ТАМ НАПИСАНО РЕКУРСИЯ ЕТА СЛОЖНА ТАК НИСЧИТОВА ЯСКОЗАЛ
Не перестаю проигрывать с животного.
С понятия алгоритма, формальной логики и наивной теории множеств.
Ты не сделал код короче, ты его (плохо) минифицировал. Но почему-то минифицировал руками, а не специальным инструментом, и почему-то скинул свою минификацию в тред как пример написания кода.
тоесть каждый раз когда получаешь какие то данные, то браузер заходит на сайт https://example.com/api/huinya и возвращается данные json оттуда? или еще какие варианты есть? как например скрытые данные передать? типо количество денег на счету, чтоб только ты мог пройти по ссылке, а не кто то другой
кроме захода на сайт.ком/апи есть какие нибудь варианты?
Вам в секретный интернет
А авторизация на что, дурень?
К какой папке? Ты вообще про какой контекст говоришь? Если серверный, то пользователя ебать не должно, как у тебя файлы лежат. Для клиента же есть https://developer.mozilla.org/en-US/docs/Web/API/File
Ну папка на локальном диске пользователя. Мне надо чтобы можно было выбирать место где хранятся файлы на его диске
Ты так и не сказал контекст этой задачи: сервер или клиент. С сервера ты хуй получишь доступ к файловой системе клиента. А клиентский код может общаться с файловой системой только через браузерные апишечки типа FileReader, да и она тоже пути не сообщает:
> It cannot be used to read a file by pathname from a file system.
Цепочка такая: по нажатию кнопки подгружаются данные и передаются в дочерний компонент через пропс -> выбираем значение в v-select'e -> на основе выбранного значения селекта заполняется вся мишура.
Бяда в том, что изначально данных нет.
Читал, что пропсам можно задать дефолтное значение, но там такая мешанина - я не разобрался.
А что мешает делать условные рендеринг?
Накидал быстрый пример, хотя Vue от силы неделю знаю. Надеюсь это примерно то, что тебе нужно
https://codesandbox.io/s/green-sky-hcp90?fontsize=14&hidenavigation=1&theme=dark
Ага, работает. Спасибо.
Клиент. Мне надо чтобы скрипт брал файлы из указаной папки на компе юзера, это не upload, просто это взаимодействие, может можно как-то сделать чтобы пользователь нажимал на какой нибудь текстовый документ который в коде прописан и чтобы он путь передавался? Везде пишут что из-за безопасности нельзя, но я видел что такое возможно. У меня путь изначально прописан что у любого на компе он будет на диске /C. Но мнн нужно чтобы можно было изменить как вот в установщике программ/игр, чтобы выбираешь путь и он в строку прописывается
>Везде пишут что из-за безопасности нельзя, но я видел что такое возможно.
Где ты это видел? Без доступа к файловой системе не будет и путей.
>Но мнн нужно чтобы можно было изменить как вот в установщике программ/игр, чтобы выбираешь путь и он в строку прописывается
Установщики программ устанавливаются прямо в систему, сторонние скрипты же запускаются в браузере.
https://qna.habr.com/questions
https://stackoverflow.com
https://codewars.com
https://medium.com
https://2ch.hk/pr (М)
Какие еще прикольные есть?
Зачем ты даешь советы если сам не шаришь, что можно, а что нельзя и не следишь за развитием веб апи?
>Зачем ты даешь советы если сам не шаришь
От тебя я тоже советов не вижу.
>что можно, а что нельзя и не следишь за развитием веб апи?
W3 внезапно передумали и решили прямо в спеке дать рутовый доступ к машине клиента, а все вендоры побежали это реализовывать?
В крупных проектах разделяют вёрстку и работу с JS фреймворком. Задача работающего с фреймворком интегрировать вёрстку которую он получил от верстальщиков.
Ну ебать откуда тогда такая популярность этого материал юй? Это же нихуя не удобно? Или это другое?
Охуеть ржака, вью 7 лет, реакту 8
В адекватные проекты перегруженный bloatware типа materual-ui не тащат
А как ты закрывать убешь? Захуяришь невидимый инпут на весь вьюпорт что бы пользователь на него кликал?
>Нихуя ты советчик, сейчас бы экспериментальные апишечки таскать в прод
Хоспаде. Работает? Работает. Что ещё надо?
Как-будто я заставляю использовать весь функционал апишки и быть тестировщиком. Всего-то путь к файлу надо получить, а это не все возможности апи.
Удобно если тебе нужно 1 раз сделать и забыть, а так тебе либо нужно будет обертки свои городить, которые делают так как тебе нужно, либо менять свой сайт так чтобы материал уи работал без косяков.
Чекбокс переключается ассоциированным лейблом, который ты можешь хоть на свою мамашу налепить.
>Хоспаде. Работает? Работает.
Вот именно, что не работает. Абсолютных путей ты из него не получишь.
Почему это выглядит так ебануто? Это прям руками так пишут?
Что-то типа такого:
https://codepen.io/Jumpy_Bunny/pen/VwmjRyx
Если хочется совсем поизвращаться, то можно радиоинпуты для переключения табов пользовать по схожей логике.
Ну дебил, бургер должен сворачиваться при нажатии на любую область вне этого бургера, а он у тебя статичным остается даже при клике на один из пунктов меню этого бургера.
Не похоже не обфускацию, скорее на какую-то оптимизацию-транспиляцию. Я просто не в курсе, что там сейчас в жс в ходу.
Может кто узнает такую хуйню.
Но нахуя так делать?
Выглядит, как будто просто впихивалось в одну строчку. При кодогенерации в этом виден смысл, а руками?
Долбаю?
все, дошло, спасибо
>Ну дебил, бургер должен сворачиваться при нажатии на любую область вне этого бургера,
Это ты сам придумал. Бургер - меню, а любое меню должно закрываться по конкретному действию пользователя.
>а он у тебя статичным остается даже при клике на один из пунктов меню этого бургера.
В бургер пихают ссылки, которые ведут на другие страницы, то есть идёт перезагрузка.
Но всё равно добавил кнопки закрытия и автозакрытие при клике на пункты. Ссылка та же.
Да я не подумал просто, что 0 как false здесь юзается
>Выглядит, как будто просто впихивалось в одну строчку.
Нет. Не в строчку, а в выражение.
В приведенном сниппете одно единственное выражение в теле функции.
Для чего так писалось - это бессмысленный вопрос, в отрыве от контекста.
Это мог быть сниппет, чтобы показать логику кому-то. У человека может быть такой кодстайл и она максимально избегает использования instruction statement и отдает предпочтение expression statement.
>При кодогенерации в этом виден смысл, а руками?
Не понимаю твоего бугурта. Этот кусок кода легко читается и понимается, при условии, что ты знаешь язык.
Красава! Держи приз, ты выиграл.
Охуеть, вайтишники уже вкатываются в ангуреакты не зная что такое тернарное выражение
Тогда уж базовый жс. Я решил, что анон не понял .map
Это живой код с сайта, рендерит ответку от апи. Я тоже её качаю и приходится посматривать, что они там делают.
Нихуя не легко читается, хотя отдельные элементы все простые и понятные.
Команда/игрок a и b, норм.
бляяя
че делать? Прочитал эту тему на канторе, на мдн, один родик на ютубе и все равно нихуя не понял? Как понять эту тему сука?
бляя
WeakMap и WeakSet - ритуальные понятия, которые ты должен знать, чтобы пройти собес, потому что о них спросят. Никто их в проде не использует, так как неитерируемые коллекции нахуй не нужны.
Map и Set - подвиды объекта и массива соотвественно.
ZPAZIBO
Не был, просто тот кто его выложил нажал на автоформатирование, поэтому он выровнялся.
>Это ты сам придумал. Бургер - меню, а любое меню должно закрываться по конкретному действию пользователя.
Клик вне меню это и есть конкретное действие пользователя.
>В бургер пихают ссылки, которые ведут на другие страницы, то есть идёт перезагрузка.
Тыскозал? Это могут быть и модальные окна с настройками или формой обратной связи.
задавший вопрос даун - потому что вопрос даунский пздц
ответившие дауны потому что пытаются дауну ответить на даунский вопрос
я даун потому что трем даунам пытаюсь объяснить что они дауны
соснули все!
Просто изучать программирование нужно не с жопаскрипта, а с чего-то более основательного, хотя бы с Java или C#, но лучше с C++.
Я во фронтенд вкатываюсь, нахуй мне твой с и прочие..
Мне нужно как можно быстрее вкатиться, нет времени.
пирожка тоже нет, точнее он тоже ничего и все вокруг него и внутри него конечно же тоже ничего, потому что нет ничего кроме ничего потому что только ему чтобы быть достаточно небыть. от така хуйня малята
Нет.
>Никто их в проде не использует, так как неитерируемые коллекции нахуй не нужны
А в спеку их затащили шутки ради?
>Клик вне меню это и есть конкретное действие пользователя.
Юзер только кликами и взаимодействует со страницей. Охуенное у тебя конечно "конкретное" действие. Как ты мисклик детектишь с такой охуенной логикой?
>модальные окна
Да ты же говнодел. Модалы разве что только для аутентификации более менее подходят, потому что в большинстве случаев формы автозаполняются и пользователю только нужно кликнуть кнопку "отправить". Пихать в модалы формы с текстом, которые ещё нужно вручную заполнять - просто максимум уебанство. Настройки модала не требуют. Если это список чекбоксов, то достаточно обычного всплывающего меню. Если же там куча настроек с субсекциями - то это идёт в отдельный адрес, так как пользователю нахуй не всралось читать простыни настроек на той же странице, где он слушеает музыку/читает статью/смотрит порево/гоняет в донатную дрочильню.
а че так можно было
Вим сам по себе душная хуета, клавиши и формат управления кодом еще одно дело, на сама по себе как ide это махровый пиздец. Я сижу в вебшторме с клавишами вима, потому что мышка это от дьявола, и клавишами легче управлять и быстрее. Но вот остальые возможности современных ide в виме это пиздец. Вот бы все можно было управлять только клавиатурой. Но хуй там. Разве что пикрил с трекболоом или тачпадом, но не пробовал.
if(n <= 0) return 0
return f(arr, n - 1) + arr[n - 1]
}
это алгоритм для рекурсивной суммы массива
на последней итерации мы вызываем функцию, которая возвращает 0 и складываем её с кумулятивно-накопленным результатом, верно?
p.s. задачки с литкода уровня medium решаю, а с этой застрял уже на 30 минут...
здраво
я когда не с макбука - юзаю связку трекпад+клава, оче удобно, мышкой уже года два не пользовался
для игорей ps5
Игры для детей.
ПЕРЕКАТ >>1935813 (OP)
ПЕРЕКАТ >>1935813 (OP)
ПЕРЕКАТ >>1935813 (OP)
ПЕРЕКАТ >>1935813 (OP)
ПЕРЕКАТ >>1935813 (OP)
ПЕРЕКАТ >>1935813 (OP)
ПЕРЕКАТ >>1935813 (OP)
Да я вроде как считал, что представляю себе, что такое рекурсия. Но вот этот пример меня прям в ступор ввел. Буду читать.
почему только джейсон? можно сразу ответить хтмл файлом или вообще коммуницировать нон-стоп через сокеты
а нахуя ты наллы возвращаешь?
Не легче написать return {innerHeight: window?.innerHeight, ...};?
>Есть текстовые материалы для вката в бэкенд на ноде?
ДА, и представляешь, они ещё так круто называются... КНИГИ! И ВАУ, их даже можно перелистывать. Прикол, да?
Это сделано специально, чтобы на server-side стороне не выкинуло ошибку из-за отсутствия window. Почему не innerHeight: window ? window.innerHeight : null ? Так красивее. Зачем нужны нуллы? Чтобы было единообразие возвращаемого результата.
Через сеттер.
Это копия, сохраненная 11 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.