Программирование

Ответить в тред Ответить в тред
Check this out!
JSThread #186 /js/ Аноним # OP 02/12/20 Срд 15:42:39 18708851
image.png 89Кб, 1050x1050
1050x1050
Прошлый тред: >>1867518 (OP)

Больше пары строк кода в посте или на скриншоте ведут в Ад.

Для программирования на HTML https://jsfiddle.net/
Для Node.js с консолькой https://repl.it/languages/nodejs

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

Руководство для вката: https://developer.mozilla.org/
Аноним 02/12/20 Срд 15:43:50 18708872
- Напишите аналог функции console.count но вовзращающая число в виде результата, а не выводящая его в консоль
- Напишите ленивые map, reduce, filter, every, some, чтобы для цепочки вызовов этих методов, фактически происходила только одна итерация
- Напишите range(start, end, step) где step может быть нецелым, start и end как положительным так и отрицательным, и бесконечным в том числе
- Напишите класс итерируемой слабой коллекции, напримиер WeakSet, который был бы наследником оригинального WeakSet, имплементировал все его методы, но при этом по элементам множества можно было бы итерироваться.
Аноним 02/12/20 Срд 15:46:14 18708903
>>1870887
Не пишите. Этот мудила просто хочет спиздить ваш код себе в проект
Аноним 02/12/20 Срд 15:51:22 18708954
>>1870890
В предыдущем уже всё написали
Аноним 02/12/20 Срд 16:36:19 18709335
Каким образом лучше всего задрочить чистый JS, если я довольно неплохо знаю реакт? Просто книжки читать это пиздец, я вообще нихуя не запомню же. Лучше курсы какие-то проходить одновременно практикуясь, или лучше вообще просто начать что-то писать на чистом и там постепенно научишься? Ну а может лучше codewars? Еще был бы хороший вариант, это брать какие-нибудь проекты гитхабовские, и переписывать. Но есть такая проблема, что ты можешь уметь сделать что-то рабочее, но при этом не будешь знать каких-то нюансов. При этом без какой-то работы над большим проектом хуй что запомнишь же, сука. А пилить новый проект просто на ЖС без реакта я в рот ебал. Что делать?
Аноним 02/12/20 Срд 16:44:37 18709506
>>1870933
>Ну а может лучше codewars
Ты не будешь там изучать внутренности js, ну может только для code golf.
мимо околотоп codewars
Аноним 02/12/20 Срд 16:48:21 18709607
>>1870933
Если у тебя реакт, то зачем тебе чистый?
Правильно - для сервисов и редуксов различных.
Вот их и пиши.

Игрушку можешь попробовать написать.
https://scanlibs.com/roguelike-development-javascript-publish-phaser/

Но, лучше бы ты задрачивал чистый TypeScript для всего этого.
Аноним 02/12/20 Срд 17:01:24 18709778
>>1870960
>>1870950
Да потому что тут начали в прошлом треде писать, что тебе чуть ли не на ассемблере реверс инженирить нужно, чтобы джуном куда-то пойти. У меня изначально подход к изучению был практический. Сначала делал большой курс по реакту, и сделал несколько проектов паралельных. Потом думал сделаю то же самое с чистым жсом и все, можно катиться. Но тут блядь оказывается, что >>1870887, еще нашел какие-то тестывые задания у кого-то на ХХ, там вопросы из разряда чему равно +!NaN, или можно ли после Catch еще разок Then вписывать, ну вот как нахуй всю эту хуетристику можно в теории выучить? Я понимаю что конкретно эти вещи гугляться за 2.5 наносекунды, но получается же что ЭТО КЛАССИКА, ЭТО ЗНАТЬ НАДО. А я по сути придумываю себе задачи, и дальше начинаю ходить по докам, гитхабам и и стаковерфлоу. В итоге понимание происходит гораздо лучше, да еще и определенные патерны начинаешь понимать в практическом виде. А потом вот возьмут и ебанут какие-нибудь подобные вопросы. И выходит так, что ты можешь запилить какую-нибудь SPA с редаксом, а кто-то нихуя сделать не может, но зато знает блядь, что оказывается вот после catch можно еще раз then делать. И хули делать со всеми этими мелочами? Просто как стих выучить язык что ли нахуй?
Аноним 02/12/20 Срд 17:01:56 18709809
142531988291363[...].jpg 38Кб, 419x311
419x311
Добавляю элемент на странице где-то сверху над вьюпортом. Содержимое во вьюпорте съезжает вниз. Как этого избежать? Чтобы было незаметно, что сверху что-то добавилось, чтобы как-бы элементы отодвинул содержимое не под ним, а над ним.

Двигать вьюпорт? А если добавление с анимацией? Как синхронизировать?
02/12/20 Срд 17:04:41 187098610
>>1870977
>делал большой курс по реакту, spa, редуксы

Типичный набор говноеда, который нихуя не понимает и не знает, какие нахуй проекты вася, туду или буксервисы и старыарсбд от говноедов это крупные проекты? Ххарк пьфу в твое ебло
Аноним 02/12/20 Срд 17:08:20 187098911
>>1870986
Ой иди нахуй токсичная говнина, сначала тебе ответ нормальный написал, но потом подумал, что пошел ты нахуй просто, ублюдок
Аноним 02/12/20 Срд 17:09:08 187099012
>>1870977
>но зато знает блядь, что оказывается вот после catch можно еще раз then делать.
Это ты неудачный пример привёл. Такое надо знать, иначе ты не понимаешь сути промисов до конца.
Аноним 02/12/20 Срд 17:09:51 187099113
>>1870989
>токсичная
Сойбой, беги в сейфспейс.
Аноним 02/12/20 Срд 17:10:57 187099314
>>1870990
Да он нихуя не понимает. Если бы релаьно делал что-то на рякте, такое постоянно попадалосмь бы. А он тупо смакакил хуету с курсов и уверен, что вот все, теперь он про-реактёр.
Аноним 02/12/20 Срд 17:11:17 187099515
>>1870990
Да в том и дело, что таких мелочей овердохуя, и как это можно просто запомнить?
Аноним 02/12/20 Срд 17:13:43 187099816
firefox2020-12-[...].png 31Кб, 818x480
818x480
>>1870881 →
>А тебе справочник для имплементации каррирования нужен, или стак оверфлоу?

Да чета из башки тяжело вспомнить особенно когда на собесе ссидит чсв мудак анальник который бугуртит если одну строчку в коде надо повторять
Аноним 02/12/20 Срд 17:15:07 187099917
>>1870977
> как нахуй всю эту хуетристику можно в теории выучить?
А всё дело, что ее надо не выучивать, а изучать. Если ты что-то понимаешь, ты это блядь просто понимаешь. Это не надо как-то надрываться и помнить. Тебя не просят перечисялть названия методов библиотек и сигнатуры функицй, тебя про принципы спрашивают. Это азы, блядь.
Так же, как ты не силишься каждый раз вспоминая, по какому принципу работает сложение,и что умножение можно выразить через него, так же, ты не должен надрываться при вопросах почему при неявном приведение типов получилось именно так, а не иначе, и почему у тебя исключение в микротаксе не отловилось в основном потоке.

Ты вот спрашиваешь НУ КАК. Задайся вопросом, а откуда блядь все остальные это знают? Или по-твоему все сидят и дрочат отдельные кейсы какие-то?

Чтобы понять как работает жс, ДОСТАТОЧНО прочитать ебаную спеку от корки до корки, с дочитыванием непонятного в сопутсвующих источниках (хоть той же википедии, для определения терминов) Всё.
Но нихуя, никто, никогда, этого не делает. Всем хочется, чтобы все на блюдечке с голубой каемочкой. Увы и ах. Сверх-высококровневое программирвоание это высокие абстракции. И поясняют тебе принципы такими же высокими абстракциями, расчитыва на то, что ты сука такая,у же вкурил какого-нибудьТаненбаума или что-то в таком духе, и знаешь, как у тебя пекарня работает. А потому никто не ссылается в каждом абзаце на пояснение что такое control flow. Никто не разжевывает тебе в чем суть тех или иных концепций, потому чтов 2020 тебе уже написали целую энциклопедию, в которую ты можешь зайти на любой новый для тебя кейс с понятием и вкурить информацию, просерф все сопуствующие ссылки и темы. Поэтому когда от тебя просят написать ленивую реализацию какой-то хуйни, никто тебе в тз не вписывает четыре листа поясненяи с определениями концепции строгости вычсилений и чем вызов по имени отличается от вызовва по требованию или по значению. И все в таком духе.

У тебя, есть голова, и практически бесконечный, блядь, БЕСПЛАТНЫЙ, истоник знаний - целый, мать его нахуй, интернет. Но ты хочешь сидеть в треде, и вместо того, чтобы идти вбивать в гугл свои вопросы и ключевые слова, и ЧИТАТЬ, просить чтобы тебе дали что-то блядь почитать.

Как же вы заебали.
Аноним 02/12/20 Срд 17:16:50 187100118
firefox2020-12-[...].png 36Кб, 877x328
877x328
Ой блять это ДОРАСТИ нужно до ыункцианального пограмирования, уже блять дорасли без типизации что надо тайпскрип прикручивать если чтото сложнее туду делаешь
Аноним 02/12/20 Срд 17:16:58 187100319
>>1870990
Ну вот здесь, представим что я пусть даже наизусть выучу всё https://javascript.info/try-catch тут на всей странице ни единого примера с then после catch
Аноним 02/12/20 Срд 17:17:17 187100620
>>1870991
>это не я токсик, это все вокруг слишком нежные
Классика IT-элитки, хули.
Аноним 02/12/20 Срд 17:17:55 187100821
>>1870998
>вспомнить
Понятно.
Аноним 02/12/20 Срд 17:20:24 187100922
Аноним 02/12/20 Срд 17:20:49 187101023
>>1870999
>не выучивать, а изучать.

Ну да, охуенно, а работать то когда, или лучше очередной пиздец изучу из списка

https://habr.com/en/company/mailru/blog/335292/

console.log.call.call.call.call.call.apply(a => a, [1, 2])
Аноним 02/12/20 Срд 17:21:26 187101224
>>1871003
Не зря говорят, что главный навык пограмита - умение гуглить. Ты же не можешь на одном сайте найти нужную информацию.

https://javascript.info/promise-chaining
Аноним 02/12/20 Срд 17:21:34 187101325
>>1871008
>Понятно.

Да, не дай бог не напишешь как в википедии
Аноним 02/12/20 Срд 17:23:14 187101726
>>1871003
>е ни единого примера с then после catch

Примерно как в реакте ни единого примера как открыть модальное окно или программно нажать кнопку
Аноним 02/12/20 Срд 17:24:23 187101927
>>1871010
Тебе кажется что этот список огромен, потмоу что ты дальше собственного носа не видишь. В основе там лежит с гулькин хуй концепций, которые надо понять, а все остальное строится и выражается через них.
Уровни абстракций - ты понимаешь, твою мать, что это такое?

Ты понимаешь, что умножение - это блядь сложение?
Аноним 02/12/20 Срд 17:24:34 187102028
>>1870999
Куда больше заебали токсичные снобы, которые предлагают всем прочитать спеку JS, десять книг по паттернам и алгоритмам и собрать свой процессор из песка прежде чем что-то писать в треде.

устраивался на первую работу на 100к+ не зная что такое event loop, но умея что-то писать на реакте
Аноним 02/12/20 Срд 17:25:30 187102229
Аноним 02/12/20 Срд 17:25:33 187102430
>>1871020
Сойбой, где тебя такое предлагали?
Аноним 02/12/20 Срд 17:26:06 187102531
>>1871020
@
Вы не прошли mhrd, мы вам перезвоним
Аноним 02/12/20 Срд 17:26:30 187102632
Аноним 02/12/20 Срд 17:28:43 187102833
>>1870999
>
>У тебя, есть голова, и практически бесконечный, блядь, БЕСПЛАТНЫЙ, истоник знаний - целый, мать его нахуй, интернет. Но ты хочешь сидеть в треде, и вместо того, чтобы идти вбивать в гугл свои вопросы и ключевые слова, и ЧИТАТЬ, просить чтобы тебе дали что-то блядь почитать.
Да в том и дело, сука, что информации овердохуя. Начиная от всех тонкостей CSS, заканчивая различными изъебствами фреймворков, да чтобы сраную кнопку передвинуть тебе уже ноду надо запускать, чтобы у тебя sass работал, ты же блядь прекрасно понимаешь, что я имею ввиду. И проблма блядь в том нахуй, что даже написав несколько сайтов на JS ты можешь ни разу не столкнуться с какими-то мелочами, по которым тебя потом будут ебать раскаленной кочергой в жопу на собесе, ПРОСТО ПОТОМУ ЧТО ТЕБЕ КОНКРЕТНО ЭТО НЕ ПОПАДАЛОСЬ И ТЫ НЕ ШЕЛ В ДОКУ ЧИТАЬ О ТОМ, ЧТО ТАМ БЛЯДЬ ЕСТЬ И КАКИЕ ТАМ БЫВАЮТ ИСКЛЮЧЕНИЯ, А ПОТОМ ЕЩЕ ПОНЯТЬ ЧТО ЭТА ДОКА БЫЛА НАПИСАНА 10 МИНУТ НАЗАД И ЗА ПОСЛЕДНИЕ 9 ЭТА ФИЧА ОБНОВИЛАСЬ 30 РАЗ И ТЕПЕРЬ ТАК ВООБЩЕ НИКТО НЕ ДЛАЕТ УЖЕ ЦЕЛЫХ 8 МИНУТ. Я блядь целыми днями учусь нахуй последние 4 месяца пидор ты ебанный и выдрочил весь реакт, все что это говно окружает и верстку вдоль и поперек сука, да можешь пиздеть о том как это просто, все просто от лени же в кодеры не идут наверное, заебал уже этот высокомерный принебрежительный тон, сука ну вот просто 100%й детектор пидорахи поднявшей своё обосранное рыло из корзины с свинячим кормом, и возомнившим о себе уже хуй знает что. Так что не надо тут пиздеть мне о том, что я не могу найти в интернете инфу, и тем более пиздеть о том, в каокй последовательности нужно это всё учить, потому что сейчас у меня куда больше практического понимания о том, как проектируются приложения и как вообще всё это изнутри работает. Вопрос был исключительно в том, какой из вариантов наиболее эфективный. Блядь, чтоб я еше раз о чем-то тут спросил, пиздец
Аноним 02/12/20 Срд 17:29:28 187102934
Попоробал вуе, рякт, набросал странички. Вроде получается, но выглядит как говно. Все кривое, неровное.

Есть какие-нибудь современные гайды по грамотной верстке в плате расположения, отступов и т.п.?
Аноним 02/12/20 Срд 17:30:23 187103135
firefox2020-12-[...].png 1Кб, 193x94
193x94
Аноним 02/12/20 Срд 17:31:33 187103336
>>1871020
Ты тупой куско говна, который не обращает внимание на то, когда и в каких контекстах это предлагают сделать. Когда человек пиходит и спрашивате - а как блядь? А почему? Всем похуй на вас долбоёбов. Никого вообще не ебет будете вы что-то учить или нет. Ттут люди сидят и тратят сове время поясняя вам, что следовало бы сделать, а ваше право прислушивать или нет.

Ты можешь дальше бегать по тредам и сгорящей жопой проецировать свою ошибку выжевшего причитая -ррря, душнилы, снобы, ррряя. Это тоже твое право. Только ты на вопрос - а как понять почему это работает так - не отвечаешь. Ты лишь отрицаешь.
Ты - ебаный кукаретик, которому повезло залетеь на рутиное место и ты сидишь в нем не развиваясь. Ты никогда не поднимешься выше, ты - червь, которого можно заменить. А меня нельзя. И в этом разница между нами.
Аноним 02/12/20 Срд 17:31:40 187103437
>>1871012
БЛЯДЬ, да как я должен это загуглить, если это вообще НИ РАЗУ НИГДЕ мне не встретилось? Я что блядь телепатически должен был понять, что это вообще существует?
Аноним 02/12/20 Срд 17:31:58 187103738
>>1871028
>, по которым тебя потом будут ебать раскаленной кочергой в жопу на собесе
Ты же ебанько, сойбой. Твоя задача - не пройти ВСЕсобеседования, блядь. А пройти одно. Где-то спросят одно, где-то другое, а скорее всего вообще дадут тестовое - делай и все, никаких вопросов лишних.

Ты вообще хоть на одном собеседовании был-то, чтобы вот так решать?
Аноним 02/12/20 Срд 17:32:28 187103839
>>1871024
В посте, на который я отвечаю. Сидит какой-то дед в треде вкатывальщиков и пердит на всех мол «у вас есть целый интернет, хули вы сюда пришли, заставили меня бедного что-то писать, ох-ох». Хотя этот тред точно такая же часть интернета, как и Гугл со SO.
Аноним 02/12/20 Срд 17:33:14 187104240
>>1871033
>А меня нельзя.
Льзя
мимо
Аноним 02/12/20 Срд 17:33:22 187104341
>>1871038
Так все верно. Найти ответ в интренете куда проще и лучше, чем спрашивать на двощах.
Аноним 02/12/20 Срд 17:34:19 187104542
firefox2020-12-[...].png 10Кб, 441x288
441x288
>>1871034
>НИ РАЗУ НИГДЕ мне не встретилось?

Ну так когда на собеседованиипопросят написать is-odd не забудь вспомнить все edge case
Аноним 02/12/20 Срд 17:34:56 187104743
>>1871028
Я вот на это передергивание даже отвечать не буду. Ты просто не вникаешь даже в то, что тебе пишут.
Короче, мне похуй, сиди дальше. Задавайся вопросами.
Аноним 02/12/20 Срд 17:35:09 187104844
>>1871034
Если тебе это не встречалось, значит ты ровно нихуя не делал с асинхронностью и получением данных с сервера. А значить знаний по теме у тебя не более 30%. Просто сидишь дальше учишь, теребишь пет-проджект. Со временем встретится.
Аноним 02/12/20 Срд 17:37:23 187105245
>>1870977
>там вопросы из разряда чему равно +!NaN
1, потому что ! инверсит булевое значение NaN, которое равно false, которое становится true, которое благодаря унарному оператору + переводит true в числовое значение, которым является 1.

Как такое "в теории" выучить? Ну, например, читать книги.
Аноним 02/12/20 Срд 17:37:34 187105346
>>1871020
>заебали токсичные
А туда ли ты пришёл, мань?
Аноним 02/12/20 Срд 17:37:49 187105447
>>1871033
Подожди, ты правда думаешь что своими охуительным поучениями типа «иди прочитай спеку от корки до корки», или «прежде чем подходить к высоким абстракциям надо вкурить Таненбаума» кому-то помогаешь, лол?

>Ты никогда не поднимешься выше, ты - червь, которого можно заменить.
Ебать прорвало. Ну съеби с треда на годик, инфа 102%, что никто этого даже не заметит.
Аноним 02/12/20 Срд 17:37:51 187105648
>>1871048
>Если тебе это не встречалось, значит ты ровно нихуя не делал с асинхронностью

Может еще всякое говно типа Warning: a promise was created in a handler but was not returned from it.
Аноним 02/12/20 Срд 17:38:21 187105949
>>1871048
Блядь, всё что мне встречалось с асинхронностью в 6 курсах, каждый из которых больше 10 часов по длительност, и 4 гитхаб проекта которые я разбиралсь и переписывал самостоятельно это -
запросы уровня : fetch/axios.then.then.catch
И никаких нахуй ни разу я не встречал примеров с then.catch.then...
Но конечно я с ассинхронностью не работабл бялдь
Аноним 02/12/20 Срд 17:38:39 187106050
>>1871045
>pic
Я конечно хз что за isNumber, но разве в него не value стоило передать?
Аноним 02/12/20 Срд 17:39:15 187106351
>>1871054
Когда я съебал на месяц, у вас тред за 1,5к постов в бамплимит ушел, потому что вы мудаки его даже перекатить не можете, чем я уже не первый год занимаюсь. Так что соси хуй дальше.
Аноним 02/12/20 Срд 17:39:28 187106452
>>1871060

Это из библиотеки Weekly Downloads 422,306
Аноним 02/12/20 Срд 17:39:41 187106553
>>1871052
>булевое значение NaN, которое равно false,
Забыл, что оно тоже false
мимо
Аноним 02/12/20 Срд 17:39:57 187106754
Аноним 02/12/20 Срд 17:41:12 187107255
>>1871052
>булевое значение NaN, которое равно false

И еще 100500 забавных историй, еще может номер страницы из спецификации выучить, как студенты языковеды могут по иероглифу сказать какой у него номер в словаре
Аноним 02/12/20 Срд 17:41:56 187107356
>>1871064
>should work with strings
Тогда ладно. Тайпскрипт покарай их
Аноним 02/12/20 Срд 17:44:29 187108157
>>1871063
То есть ты съебал, а тред внезапно не умер, общение продолжилось и на вопросы людям отвечали? Oh well. Не хочешь повторить? Я перекачу, обещаю.
Аноним 02/12/20 Срд 17:45:15 187108258
Аноним 02/12/20 Срд 17:45:37 187108359
firefox2020-06-[...].png 72Кб, 644x327
644x327
>>1871052
>Как такое "в теории" выучить? Ну, например, читать книги.

Ну примерно как конкуренси в жаба выучить, надо еще знать много английских слов и разницу между acquire, lock, take и какой вызывается где
Аноним 02/12/20 Срд 17:47:51 187108660
>>1871072
Это базовые основы языка, и знаешь что самое смешное? Я даже не знаю что такое промисы сейчас. Не дочитал в спеке про это. То есть вот есть ты, макака которая учит язык по видеокурсикам каких-то даунов с Юдеми, а есть я, который учит язык по годным книжкам. И между нами девочками ты на стороне тех, кто не знает что NaN, undefined и null равны false. Может ты ещё и не знаешь про то какая разница между +0 и -0?
Аноним 02/12/20 Срд 17:48:37 187108861
>>1870995
Смысл в том, что catch может быть в любом месте (с оговорками, зависит от того, что у тебя там в цепочке).
Аноним 02/12/20 Срд 17:49:42 187109062
>>1871086
>какая разница между +0 и -0?

еще про оператор "пробел" вспомни задрот
Аноним 02/12/20 Срд 17:50:32 187109163
>>1871001
Он тоже не очень понял про лямбды.
Это не "усложнять концепцию". В математике у функции один аргумент. Несколько аргументов - это тоже один аргумент (кортеж).
Аноним 02/12/20 Срд 17:55:33 187109464
firefox2020-12-[...].png 5Кб, 347x252
347x252
>>1871086
> а есть я, который учит язык по годным книжкам

Много ума налилося
Аноним 02/12/20 Срд 17:55:53 187109565
>>1870995
Ну ничего себе мелочь, чейнинг прям на первой странице описания промисов есть, даже со схемой: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

Все помнить не надо. Основные вещи и так осядут в голове со временем, малоиспользуемая хуита выветрится. Вон как-то чел выше гордится знанием про +0 и -0, например, а я вообще не ебу в чем там отличия, хотя на JS уже почти 10 лет пишу.
Аноним 02/12/20 Срд 17:56:37 187109666
>>1870995
> оказывается вот после catch можно еще раз then делать
Для этого просто нужно знать, что у промисов catch это алиас для then(null, ...)
Аноним 02/12/20 Срд 17:57:06 187109767
>>1871001
>13 дней назад
Вот пиздить канделябрами надо пидоров, которые такое придумали.
Высосали из хуя user expirience, лол.
А потом смотришь на скриншот, и видишь фигу.
Аноним 02/12/20 Срд 17:57:16 187109868
>>1871094
Табличка, кстати, так себе, потому что показывает конкретные примеры, но ничего не говорит про принципы приведения.
Аноним 02/12/20 Срд 17:59:14 187110069
>>1871096
Это не обязательно (если вообще правда). Зависит от реализации.
Просто catch может быть объявлен в любом месте.
Я часто делаю просто в самом начале.

Аноним 02/12/20 Срд 17:59:42 187110270
>>1871095
Есть программисты на языке, а есть программисты использующие язык. Сам понял, куда относишься?
Аноним 02/12/20 Срд 18:01:16 187110471
>>1871098
Так это у него и не табличка, а хуета уровня wtf, которой ему подобные любят кичиться, не понимая, что все сводится к определенной логике этого самого приведения.
Аноним 02/12/20 Срд 18:01:43 187110572
>>1871098
>принципы приведения.

Тебе еще одну табличку надо к этой?
Аноним 02/12/20 Срд 18:03:07 187110673
>>1871094
>==
Даже не смешно тебя разъёбывать. Всё, что тебе нужно знать об этой картинке, это то что non strict equality operator имеет left-to-right ассоциативность.
Аноним 02/12/20 Срд 18:03:58 187110874
Аноним 02/12/20 Срд 18:19:52 187112175
>>1870999
>Поэтому когда от тебя просят написать ленивую реализацию какой-то хуйни,
Это легко, когда ты постоянно занимаешься реализациями "ленивой хуйни", скажем чтобы олимпиадные задачки решать. А если таким не занимаешься или занимался давно, то сложно. Магией с NaN, неявным приведением типов и т.п. лучше избегать, писать более чёткий и понятный код, не закладываясь на специфику языка. Иначе ты делаешь багоёмкий неподдерживаемый код.

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

>>1871059
>И никаких нахуй ни разу я не встречал примеров с then.catch.then...
>Но конечно я с ассинхронностью не работабл бялдь
Вообще совершенно нормальная ситуация, когда ты ожидаешь ошибку и продолжаешь какие-то осмысленные действия после неё.
Естественный workflow, если подумать. И в принципе, если нужен спец на чисто асинхронные задачи, вполне разумно эти вещи спрашивать. Это довольно базовая вещь для асинхронности. А это довольно большое направление.

Хотя сейчас, мне кажется, всё-таки больше уходят в async/await, чем then/catch.

ИМХО дрочево на специфику языка разумно, если твоя работа делать какой-нибудь фреймворк или библиотеку. Там уже хочется, чтобы разработчики действительно хорошо понимали язык, а не просто хорошо делали прикладные вещи.
Аноним 02/12/20 Срд 18:31:50 187113176
harold-hide-the[...].jpg 48Кб, 940x529
940x529
>>1870999
прочитал спеку
@
забыл все прочитанное через два дня
Аноним 02/12/20 Срд 18:32:09 187113277
>>1871121

проблема что без типов оно обмякнет в библиотеке is-odd, а не в месте гле ты NaN соединил со строкой и оно там еще дальше варилось
Аноним 02/12/20 Срд 18:33:33 187113578
>>1871094
Ну давай разберём по порядку:
"" == "0" - оператор проверяет два значения на типы. Если они одного типа, == оператор проверяет их "строго". "" - строка, и "0" - строка. "" строго не равно "0", значит false.
0 == "" - пустая строка преобразуется в число, true
0 == "0" - нумерическая строка преобразуется в число, которое равно 0, true
false == "false" - первое false преобразуется в 0, и т.к. слева стоит 0, == пытается преобразовать ненумерическое "false" в число, которое выдаёт NaN. 0 != NaN, false
false == "0" - ну тут всё понятно, true
false == undefined - очевидный false
false == null - false конвертится в 0, null равен лишь undefined
null == undefined - нутыпонел
" \t\r\n" == 0 - пустая строка становится нулем, true.

>>1871105
Да какая разница, что ты принесёшь. Это только скажем всем о твоём невежестве.
Аноним 02/12/20 Срд 18:33:56 187113679
>>1871131
>прочитал спеку

Потом забыл чем Map отличается от Dictionary
Аноним 02/12/20 Срд 18:34:57 187113880
>>1871135
>первое false преобразуется в 0

А че не в строку "false"
Аноним 02/12/20 Срд 18:35:01 187113981
>>1871136
>Dictionary
А оно существует?
Аноним 02/12/20 Срд 18:35:32 187114082
>>1871139

Реализуй, вот тебе маркер и доска
Аноним 02/12/20 Срд 18:36:09 187114183
Аноним 02/12/20 Срд 18:39:35 187114284
Аноним 02/12/20 Срд 18:41:07 187114385
>>1871138
false преобразуется в 0 по дефолту. true преобразуется в 1. Строки преобразуются в числа, если один из сравнимых типов является числом. Сначала false стал 0, "false" попытался конвертироваться в число, но это всё равно что попытаться конвертировать "zero" в 0.
Аноним 02/12/20 Срд 18:45:42 187114486
>>1871020
>устраивался на первую работу на 100к+ не зная что такое event loop, но умея что-то писать на реакте
Когда это было? Лет десять назад вообще достаточно было по html одну книжку полистать.
Аноним 02/12/20 Срд 18:46:22 187114587
говно в мочу можно преобразовать, но мочу в говно нельзя. Отсутствие говна не равно отсутствию мочи.
Аноним 02/12/20 Срд 19:02:55 187115188
>>1871144
Ага, а сейчас нужны только мегагении с 10-летним опытом. Спрашивают все - от программирования на перфокартах до эволюции ракоскорпионов.
Аноним 02/12/20 Срд 19:03:57 187115389
>>1871094
Только вот == почти не нужон, клован.
Аноним 02/12/20 Срд 19:05:20 187115590
А возможно через JS удалить например на ютубе все элементы, кроме первой строки с роликами? Тут суть именно в том, что по мере удаления, динамически будут подгружаться новые превьюхи видосов.
Вот пример удаления обычных элементов, например если их более 3-х в списке: https://qna.habr.com/q/405031
А реально ли удалить как на примере с тем же ютубом?

Я бы в теории сделал что-то вроде content.remove(); А потом подгрузил первую полоску. Только вот не знаю реально ли так сделать?
Аноним 02/12/20 Срд 19:06:22 187115691
>>1871153

Да я и PIVOT в sql запросах использую раз в 2 года загуглив как он работает, а вот на собесе спрашивают, еще и перечислить все оконные функции
Аноним 02/12/20 Срд 19:07:33 187115892
image.png 68Кб, 877x600
877x600
Аноним 02/12/20 Срд 19:08:06 187116093
>>1871151
А ты как хотел? На вакансию по сто-двести человек выстраивается, как думаешь кого возьмут, студня посмотревшего курс по реакту или господина способного пояснить за лямбда-исчисление и IEEE 754?
Аноним 02/12/20 Срд 19:08:26 187116294
>>1871156
> а вот на собесе спрашивают
Пруфы?
Аноним 02/12/20 Срд 19:09:23 187116395
>>1871158

13 пунктов лютой шизы лишь бы только обмякнуть на продакшене попозже
Аноним 02/12/20 Срд 19:10:04 187116496
>>1871160
>или господина способного пояснить за лямбда-исчисление и IEEE 754
А такие не выстраиваются. Таких немного. За таким компании сами охотятся. У них и требования будут, что обосрешься. Плюс такие задроты всегда немного ёбнутые и нужно под них подстраиваться, а не наоборот.
Аноним 02/12/20 Срд 19:12:01 187116597
>>1871164
>У них и требования будут, что обосрешься.
У таких тоже когда-то не было практического промышленного опыта, а только теория. Так что ты неправ.
Аноним 02/12/20 Срд 19:12:29 187116698
>>1871163
Что до сих пор не написал в коммитет, гений?
Аноним 02/12/20 Срд 19:12:43 187116799
>>1871144
Пять лет назад примерно.
Аноним 02/12/20 Срд 19:36:14 1871182100
>>1871166
> написал в коммитет

Зачем, когда есть тайпскрип
Аноним 02/12/20 Срд 19:48:32 1871198101
image.png 195Кб, 1920x1080
1920x1080
Как передать переменную из одного компонента в тимплейт другой ?
Аноним 02/12/20 Срд 20:08:46 1871209102
Аноним 02/12/20 Срд 20:10:18 1871210103
>>1871160
студня конечно. ему можно платить мало а задачи для бизнеса он будет делать, под присмотром конечно первое время.
Аноним 02/12/20 Срд 20:16:24 1871215104
>>1871198
Через emit в маму, через props в другую дочку.
Аноним 02/12/20 Срд 20:33:18 1871223105
У меня асинхронная функция делающая xmlrequset и вызывающая промис. В случае fullfilled делает одно, в случае rejected делает другое. И вот проблема. Я могу в процессе выполнения сделать xmlrequest.abort() и промис вернёт rejected. Но в случае если я остановил реквест, нужно делать совсем другое.
Аноним 02/12/20 Срд 21:14:25 1871257106
>>1871210
Он ощущался будто подгретый студень, я обернулся на него - да это ж Путин, ахуеть. Тот час затанцевали тараканы мураши, пока Владимир проникал в меня рывками я решил дробить себя на выдохе постыдно, лопотать, и тут он вынул хер и на лицо спустил мне, благодать.
Аноним 02/12/20 Срд 21:23:46 1871268107
>>1871223
> When a request is aborted, its readyState is changed to XMLHttpRequest.UNSENT (0) and the request's status code is set to 0
Надо тогда проверять вот на это и если выполняется, то не режектить а резолвить
Аноним 02/12/20 Срд 23:05:39 1871388108
Аноним 02/12/20 Срд 23:50:13 1871418109
image.jpeg 5Кб, 259x194
259x194
>>1870887
>ленивая цепочки вызовов
>map, reduce, filter, every, some
>фактически происходила только одна итерация
У тебя самого в голове всё сходится?
Аноним 02/12/20 Срд 23:56:58 1871424110
Аноним 02/12/20 Срд 23:57:37 1871427111
>>1871418
Что-не так-то, нарк?
Аноним 03/12/20 Чтв 00:18:08 1871441112
>>1871427
>только одна итерация
Тут не к месту
Аноним 03/12/20 Чтв 00:23:35 1871444113
Да как правильно то? Что за двузначность? Я не могу разобраться.

promise.then(succes,error) ;
или
promise
.then()
.catch();

Аноним 03/12/20 Чтв 01:01:23 1871470114
>>1871441
Так в том и суть задания, чтобы превратить цепочку методов, каждый из которых ебашит свою итерацию, только в одну эту самую итерацию.
Аноним 03/12/20 Чтв 01:24:39 1871477115
>>1871470
Думаю, это должно решаться путём функциональной композиции.
Аноним 03/12/20 Чтв 01:26:49 1871478116
>>1871470
Это называется ленивая композиция
Аноним 03/12/20 Чтв 06:55:13 1871521117
>>1871444
Ну посмотри в документацию и вопросов глупых задавать не будешь.
Аноним 03/12/20 Чтв 07:30:25 1871531118
Позвали на собес на следующей неделе, сверхвысоких практических знаний не нужно, но можете написать какие самые основные моменты нужно понимать хорошо? Помню в прошлых тредах были Reflow, Hoisting, Closure, CSRF, какие еще такие глоабальные базовые вещи необходимо знать, без особого вникания в детали? Особенно я думаю подтянуть то, что касается работы с сетью
Аноним 03/12/20 Чтв 08:04:57 1871536119
Аноним 03/12/20 Чтв 08:08:42 1871537120
Аноним 03/12/20 Чтв 10:09:15 1871566121
>>1871537
>npmjs.com/package/is-is-odd
Взорал нахуй. Как теперь остановиться?
Аноним 03/12/20 Чтв 10:12:40 1871572122
>>1871536
>>1871566
Он был включен в несколько очень популярных библиотек, при скачивании которых автоматически качается и is-odd.
Аноним 03/12/20 Чтв 10:26:51 1871580123
>>1871572
>Он был включен в несколько очень популярных библиотек
Нет, серьезно, кроме шуток, целый модуль, который просто проверяет x%2===0? Он что-то еще делает? Зачем ставить модули, которые настолько очевидные и простые? Какой в этом смысл? Есть вообще какие-то ограничения по использованию модулей, или можно делать с ними все что хочешь, и использовать их в любых количествах?
Аноним 03/12/20 Чтв 10:31:17 1871584124
>>1871580
>Зачем ставить модули, которые настолько очевидные и простые
>is-odd
>проверяет x%2===0
Аноним 03/12/20 Чтв 10:34:02 1871585125
var move = {
toT: (player) => {},
toCT: (player) => {}
}

пойдёт такое название для объекта муве? по сути это же объект, а не функция, а название глагол
Аноним 03/12/20 Чтв 10:35:33 1871586126
>>1871585
И почему не сделать moveToT() и modeToCT()?
Аноним 03/12/20 Чтв 10:37:39 1871587127
>>1871586
потому что у меня целый объект связанный с перемещением игроков
Аноним 03/12/20 Чтв 10:41:27 1871588128
Аноним 03/12/20 Чтв 11:01:29 1871594129
>>1870977
>там вопросы из разряда чему равно +!NaN
Все эти эти вопросы с подъёбами легко гуглятся по запросу "вопросы на собеседовании по js" или по типу того. Причём читать нужно и в рунете и в ангельском.
Вопросы могут казаться тупыми, но они отражают твоё погружение в язык. И да, они учатся.

Аноним 03/12/20 Чтв 11:12:50 1871600130
https://advanced.team/
Пожалуй это самый охуенный эффект, который я только видел на сайтах
Аноним 03/12/20 Чтв 11:23:52 1871605131
>>1871587
Что это за объект? Какое состояние он отражает? Это карта? Тогда какой это нахуй move?
Аноним 03/12/20 Чтв 11:24:42 1871608132
>>1871594
>И да, они учатся.
лол, нет.
Аноним 03/12/20 Чтв 11:25:08 1871609133
>>1871594
Как будешь выучив отвечать на вопрос - почему?
Аноним 03/12/20 Чтв 11:25:15 1871610134
Аноним 03/12/20 Чтв 11:37:07 1871614135
232875384-wtfam[...].jpg 38Кб, 600x632
600x632
>>1871609
>Как будешь выучив отвечать на вопрос - почему?
Ты вместо того чтобы такими тупыми вопросами в треде срать, лучше шёл бы учить язык, доболоёб.
А то если ты выучил, а на вопрос "почему" ответишь не можешь, означает, что ты инвалид.
Аноним 03/12/20 Чтв 11:37:19 1871615136
>>1871605
move to t
move to ct
move to s
move all to s

короче мувы одни
Аноним 03/12/20 Чтв 11:38:53 1871618137
>>1871614
Это значит, что ты языка родного не знаешь. Выучить - это вызубрить. А то, что ты имеешь ввиду - это изучить. Выучивая ты ничего волшебным образом понимать не начинаешь, хуесос.
Аноним 03/12/20 Чтв 11:39:45 1871619138
>>1871614
Это не я тебе ответил, чел
Аноним 03/12/20 Чтв 11:41:26 1871620139
15694022403270.jpg 34Кб, 550x412
550x412
>>1871588
> Dependencies (8)
> is-eq-three is-number is-string is-undefined is-null jquery jquery-basic-arithmetic-plugin is-true
Аноним 03/12/20 Чтв 11:42:29 1871621140
Screenshot1.png 41Кб, 998x492
998x492
>>1871618
>ко-ко-ко
>не хочу выучивать язык
>хочу срать о русском языке в треде
Аноним 03/12/20 Чтв 11:48:51 1871626141
>>1871621
Удачи тебе с синонимом выучить<->сделать, шиз.
Аноним 03/12/20 Чтв 11:50:13 1871628142
>>1871621
Мне конечно похуй на ваш срач, но отвечаешь вообще не тому человеку, который этот ворос изначально задавал, так что не понятно, о чем вы тут вообще спорите
Аноним 03/12/20 Чтв 12:54:51 1871645143
>>1871572
> несколько очень популярных библиотек,

половина этих библиотек это китайцы, вот и раздутые номера
Аноним 03/12/20 Чтв 13:07:45 1871655144
Встречаю иногда такие функции, которые называются типа handle или handling. Что это означает?
Аноним 03/12/20 Чтв 13:14:44 1871658145
>>1871655
Это ручки и они ручкают
Аноним 03/12/20 Чтв 14:00:54 1871714146
>>1870885 (OP)
Так блин, зашел на один сайт, захотел посмотреть что в консоли будет выводиться при общении с сервером, через chrome dev tools отредачил главный жс-файл (там ванильный жс был) и поставил лог в одну из js-функций типо processServerResponse
Но по факту нихрена не произошло, лог не работал будто его не было. Что за хрень, мне казалось так можно вносить изменения в жс-код на клиенте
Аноним 03/12/20 Чтв 14:09:51 1871718147
>>1871714
Плагин нужен, наверное.
Grease Monkey или типа того.
Аноним 03/12/20 Чтв 14:13:48 1871724148
>>1871718
Но ведь редактирование жс кода по идее должно вызывать изменения, нет же? Редактирование html-разметки мгновенно показывает изменения
Аноним 03/12/20 Чтв 14:18:40 1871729149
>>1870887
Для всего этого есть куча говна типа рыксы и итерабл экстеншс от тех же создателей. В JS дефакто нет ленивости в классическом понимании (рантайм не обеспечивает), есть генераторы и механизм подписок (висит в пропозалах спеки уже который год, если не считать кастомных решений).
Аноним 03/12/20 Чтв 14:21:20 1871732150
>>1871655
handle = обработать
handler = обработчик
handling = обработка
Событий, ошибок, прочей хуйни.
Аноним 03/12/20 Чтв 14:26:58 1871735151
>>1871724
Думаю, что дело в том, что жс уже загружен из кода.
Т.е. (пере)определить в консоли фукнцию или переменную, например, ты можешь.
И она будет (пере)загружена в этот момент.
А когда ты редактируешь скрипт в тексте страницы - он не перезагружается.
Но, это не точно.
Аноним 03/12/20 Чтв 15:35:02 1871799152
Есть ли смысл коммитить каждый хеллоуворд на гитхаб, или лучше что повменяемее туда сохранять? Просто хочется чтобы там показывалась какая-то активность, чтобы было видно что я не в доту гонял всё это время, но и в то же время как будто бы смысла особого в этом нет для меня. Хотя может быть так будет потом проще вспомнить что я там учил
Аноним 03/12/20 Чтв 15:41:04 1871809153
Аноним 03/12/20 Чтв 15:43:30 1871810154
>>1871799
> коммитить каждый хеллоуворд на гитхаб, или лучше что повменяемее туда сохранять?

Да сразу сохраняй как пакет в npm
Аноним 03/12/20 Чтв 15:50:05 1871821155
>>1871799
Можно, потом удали совсем позорное.
Аноним 03/12/20 Чтв 15:50:24 1871822156
Аноним 03/12/20 Чтв 16:01:00 1871828157
Аноним 03/12/20 Чтв 16:04:38 1871829158
Аноним 03/12/20 Чтв 16:08:15 1871832159
>>1871829
is-hello-world должна проверять, является ли package-name программой Hello world
Аноним 03/12/20 Чтв 16:13:25 1871836160
>>1871832

Ну делай, только не забудь кейсы чтобы обмякнуть когда тебе передают всякие массивы, NaN
Аноним 03/12/20 Чтв 16:23:15 1871841161
>>1871828
Просто нужно установить isTrojan
Аноним 03/12/20 Чтв 16:27:59 1871846162
Есть список с объектами вида:
{"objectType": "", "name": ""}

Мне надо чтобы в начале такого списка всегда были объекты с "objectType": "action" а если таких нет то ничего не делать. Как это наиболее изящно в жс сделать?
Аноним 03/12/20 Чтв 16:36:27 1871859163
>>1871822
Нужен скрипт который будет генерить is-n и постить новый каждый день.
Аноним 03/12/20 Чтв 16:38:24 1871860164
Аноним 03/12/20 Чтв 16:39:28 1871865165
>>1871846
Не слушай этого ебаклака >>1871860 т.е. меня. Просто два фильтра и одна конкатенация
Аноним 03/12/20 Чтв 16:40:10 1871866166
>>1871846
list = [{"objectType": "", "name": ""}, ...].sort((x, y) => -(x.objectType === 'action'))
Аноним 03/12/20 Чтв 17:19:55 1871903167
Если бы вам нужно разрабатывать новую веб-морду, то angular или react?

И почему?

Аноним 03/12/20 Чтв 17:41:15 1871929168
Аноним 03/12/20 Чтв 17:51:39 1871939169
>>1871903
Самописный фреймворк.
Аноним 03/12/20 Чтв 18:00:48 1871947170
>>1871903
Vue.

Потому, что без говна, вот почему.
Аноним 03/12/20 Чтв 18:04:30 1871950171
>>1871903
Ангуляр, конечно. Остальные фреймворки слишком запутанные и не понятные. Ангуляр, помимо адеватной структуры, еще и заточен под работу с тайпскриптом, что не может не радовать.
Аноним 03/12/20 Чтв 18:15:10 1871963172
>>1871903
Реакт только если какая-нибудь совсем простая хуйня с графкулем. Ну или если фронт на кложе какой-нибудь
Ангулар единственный полноценный веб фреймворк сегодня
Аноним 03/12/20 Чтв 18:55:27 1872004173
Вот что мне делать дальше, как изучать JS когда я знаю основы и умею в реакт? Делать проекты сложнее и по мере реализации разных фич читать подбробно и разбирать как что работает? Или вообще забить на реакт и проекты, и какую-нибудь книгу навернуть? Трудно понять в каком направлении эффективнее всего будет двигаться дальше, с одной стороны без практики трудно что-то запоминать. С другой просто практиковаться не очень хорошо, потому что можешь сделать что-то рабочее, не зная о том, сколько там на самом деле уязвимостей и возможных ошибок
Аноним 03/12/20 Чтв 19:08:49 1872025174
>>1871903
Слишком мало вводных данных
Аноним 03/12/20 Чтв 19:13:24 1872030175
>>1872004
Делай своё, после чего смотри на чужое и сравнивай оба, стремись чтобы твоё превратилось в чужое, с поправкой на то что чужой код это код грамотных и опытных специалистов.
Аноним 03/12/20 Чтв 19:21:29 1872038176
>>1872004
Делай проекты по тому что знаешь
Не нравится или не получается - перекатывайся в другой язык, хотя бы средненькие знания жса уже будет большим плюсом
Аноним 03/12/20 Чтв 19:21:38 1872039177
Аноним 03/12/20 Чтв 19:28:40 1872049178
>>1872030
>>1872038
Все больше прихожу к тому, что нужно продолжать учить так, как я учил до этого -> практикой и просмотром кода на гитхабе.

>>1872039
Это всё прекрасно, я бы и вопросов не задавал, проблема тут только одна, без практики, т.е. хоть сколько-нибудь реального применения знаний на проекте это всё выветривается так же просто как и прочитывается.
Аноним 03/12/20 Чтв 19:29:32 1872051179
>>1872049
>без практики, т.е. хоть сколько-нибудь реального применения знаний на проекте это всё выветривается так же просто как и прочитывается.
А ты уверен, что это не надуманная мантра, которую ты повторяешь сам себе?
Аноним 03/12/20 Чтв 19:37:00 1872064180
>>1872051
Эту мантру подтвердит любой человек хоть сколько-нибудь знакомый с процессом обучения.
Аноним 03/12/20 Чтв 19:39:06 1872068181
>>1872051
Ну я не первый день учусь же. Кроме того, прочитывание всего того, что ты скинул никак не конфликтует с практикой само по себе. Но за ресурс спасибо, я до этого только MDN считал официальной докой ЖСа, эту не видел
Аноним 03/12/20 Чтв 19:44:49 1872082182
>>1872049
Всё так
Если тебе в реальном проекте на реальной задаче и понадобится какая-то теория, полностью осозновая цель ты осилишь любую хуергу вплоть до вышмата за пару дней
Только еще одна хуйня: барахтаясь на галерном дне за бутерброды на самом деле проекты могут быть даже легче твоих петов, так что не перенапрягайся сильно
Аноним 03/12/20 Чтв 19:51:48 1872092183
>>1872082
>на самом деле проекты могут быть даже легче твоих петов
Как же хочется править размер кнопок на крудоформах и получать 300ксек, эхх.
Аноним 03/12/20 Чтв 20:00:19 1872103184
изображение.png 623Кб, 960x540
960x540
Как же мне сложно структурировать код, давать правильные обозначения и разделять код на логические разделы. Чувствую себя пикрилом
Аноним 03/12/20 Чтв 20:13:50 1872120185
>>1872039
Фреймы уже стали немодные и ширину навигации слева не изменить. С, значит Современные технологии.
Аноним 03/12/20 Чтв 20:22:40 1872128186
>>1872120
Через инспектор поменяй, тыж программист!
Аноним 03/12/20 Чтв 20:25:37 1872129187
>>1872082
>полностью осозновая цель ты осилишь любую хуергу вплоть до вышмата за пару дней
Кек, нет.
>>1872064
Расскажи мне про "процесс обучения", ибо я на 100% уверен что под этим набором букв нет никакого смысла, и ты используешь его как баззворд.
>>1872068
>Ну я не первый день учусь же
Практика и просмотр кода на гитхабе это далеко не "учусь". +!NaN, как мы выяснили в этом треде, на практике понять ты не сможешь.
Аноним 03/12/20 Чтв 21:04:06 1872168188
Аноним 03/12/20 Чтв 22:46:49 1872286189
image.png 60Кб, 1200x1040
1200x1040
Анон, как ты вкатывался в vue? Читал тутор на их сайте или мб какие видеоуроки можешь посоветовать?
Аноним 03/12/20 Чтв 22:56:34 1872290190
>>1872103
Приди на большой проект, побеседуй с большими дядями, у каждого из которых большая пися. Они научат уму-разуму
Аноним 03/12/20 Чтв 22:57:26 1872292191
>>1872286
Документация на сайте охуенна.
Куча инфы в интернете.
Куча курсов, видео и т.п. - гуглишь vue tutorial 2020
Например - https://scrimba.com/topic/vue

Тут всё зависит от того, что ты на данный момент знаешь.
И насколько тебе понятны основные идеи.

Аноним 04/12/20 Птн 00:11:04 1872340192
>>1870885 (OP)
Когда говорят про React, то везде, начиная с его документации, заканчивая собесом в веб студию в Бердянске, будут говорить (спрашивать) о его эффективности. Типа виртуал дом, перерисовка, вау. Когда я только начинал учить, то думал, что речь идёт о сравнении с Ванилой (лол), потом оказалось, что с фреймворками того времени (2013) Но поясните, зачем сейчас ставить это в главу угла, если тот же Ангуляр и вью обгоняет Реакт в разных ситуациях? Логичней было бы на месте фейсбука рассказывать про его мобильность и легкообучаемость, что так завлекает всех от вайтишников до умелых спецов, которым просто лень сидеть за докой.
Аноним 04/12/20 Птн 00:21:48 1872349193
>>1872340
У Реакта маркетинг. Мы всеголишь библиотека. Посмотрите как мы мало весим и вообще какой мы гибкий инструмент. То что на этой либе нихуя вообще нельзя сделать умалчивается конечно.
Аноним 04/12/20 Птн 00:22:38 1872350194
>>1872290
дяди с большими писями управляют кодерками и в душе не ебут за код
Аноним 04/12/20 Птн 00:24:14 1872352195
>>1872340
>Когда говорят про React, то везде, начиная с его документации, заканчивая собесом в веб студию в Бердянске, будут говорить (спрашивать) о его эффективности.
Реакт создавался с фокусом не на производительность, а на удобной и предсказуемой модели преобразования стейта в DOM. С чем он собсна и справляется. Хуй знает откуда ты взял эту телегу про его невероятную эффективность.
Аноним 04/12/20 Птн 00:26:42 1872355196
>>1872340
Потому что в фаанговых поделках хватает ебовости архитектуры для выстраивания однонаправленного флоу на фронте
Или ты думаешь что 250к$/год жс инженер редаксы к реакту коннектят?
Аноним 04/12/20 Птн 01:02:15 1872380197
>>1872340
>а на удобной и предсказуемой модели преобразования стейта в DOM
Но, потом что-то пошло не так, лол.
На практике - стало не очень удобно, и не очень предсказуемо.

Единственно правильный ответ, почему люди продолжают использовать реакт - хуй знает почему, вот почему.
Аноним 04/12/20 Птн 04:29:07 1872429198
Для игры понасоздавал разных объектов с разными собственными функциями. Все они самостоятельны и не используют другие объекты. Работают только сами с собой. Например объект информации об игроках и объект, отвечающий за перемещение игроков в команды.

Теперь мне нужно чтобы эти объекты взаимодействовали друг с другом, типа:

move.allToSpectators( players.getCtTeam() );

Что делать? Писать функции теперь?
Аноним 04/12/20 Птн 05:09:12 1872442199
>>1872429
Теперь тебе нужен объект, который будет представлять собой модель игры. Он должен управлять другими объектами.
Аноним 04/12/20 Птн 06:11:56 1872454200
>>1872068
Как ты мог считать mdn официальной докой, если на странице википедии написано ровно обратное. Или ты даже википедию не додумался прочесть?
Аноним 04/12/20 Птн 06:13:49 1872455201
>>1872103
В программироаании только две полблемы, мань, это именнование сущностей и инвалидация кэша. Соси жопу. Жуй репеник.
Аноним 04/12/20 Птн 06:18:45 1872456202
Такая проблема.

Есть блок. В нем два элемента. Оба скрыты. Одновременно показать можно только один. Каждый элемент показывается и скрывается с анимацией.

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

Нужно как-то это исправить.

Добавить max-heigth родительскому блоку нельзя, так как в блоках есть растягиваемая textarea и max-heigth будет мешать ее тянуть.

Анимацию убирать тоже не хотелось бы.
Аноним 04/12/20 Птн 06:42:07 1872459203
>>1872286
>Анон, как ты вкатывался в vue?
Придумываешь себе пет-проект нормальной сложности не очередной туду-лист и начинаешь его делать, попутно читая документацию и пользуясь гуглом для решения проблем. Видеоуроки для вкатывания хуйня - без практики все равно ничего не запомнишь.
Аноним 04/12/20 Птн 06:47:15 1872461204
>>1872456
Не начинай анимацию одного, пока не закончена анимация другого.
Аноним 04/12/20 Птн 06:53:30 1872462205
>>1872459
>Видеоуроки для вкатывания хуйня - без практики все равно ничего не запомнишь.
Хуйня не видеоуроки, а обрывочные уроки вне контекста. Лучше проходить какой-нибудь большой курс, где объясняется все от основ до продвинутых тем. Дальше проходишь какой-то большой блок курса и делаешь свой проект, в котором применяешь полученные знания. Дальше снова делаешь проект по уроку, и снова в своем применяешь знания придумывая себе задачи. Ну это именно для охватывания какой-то технологии с нуля
Аноним 04/12/20 Птн 08:42:32 1872496206
Тред не читал, конечно же.
Устроился тут на новую работку не связанную с погромированием.
Госструктура и очевидно работы особо и нет, сидишь ебланишь целыми днями, отсюда вкатился в изучение новых языков, выбрал JS, тк он самый популярный и самый распространенный, собственно если у меня какие-то проблемы возникнут - я с большой долей вероятности смогу ее только найти решение, но и описание почему и как это решение работает. В общем, чтобы вкатиться, мне показался этот язык - идеальным. Обоссыте если не прав.
После JS укачвсь на следующий язык, пока не знаю какой, но знаю, что по итогу я хочу в бэкэнд укатиться, но и фронт знать, поэтом начал с js.

Ткните носом где взять нормальную литературу с задачами, которые помогут закреплять усвоенные знания, потому что ебаный codeacademy все понятно объясняет, но даже сейчас я сижу и далеко не все помню из того, что изучил а это мало, там научился в case, else if и не более короч.

Аноним 04/12/20 Птн 10:46:28 1872513207
>>1872380
У меня все так идет, не знаю в чем твоя проблема.

>На практике - стало не очень удобно, и не очень предсказуемо.
И что же поменялось? Модель все та же.
Аноним 04/12/20 Птн 11:28:55 1872538208
image.png 374Кб, 506x507
506x507
>>1870960
>Если у тебя реакт, то зачем тебе чистый?
>Правильно - для сервисов и редуксов различных.
Вот щас проходил собес, думал щас меня по реакту спрашивать начнут и я их разъебу. А у меня спросили чем отличается var от let и const, и я жидко обосрался поняв, что ни разу нахуй не пользовался var, потому что он нахуй не нужен, и я вообще блядь ничего про var не помню, не знаю и не знал, кроме того, что он имеет глобальную область видимости, и это старое говно и им вообще не нужно пользоваться. Прооритесь с меня нахуй, таким куском говна сейчас себя чувствую, хоть в петлю нахуй лезь хоть я потом конечно немного реабилитировался начав рассказывать про реакти вроде бы не обосрался ни в одном вопросе, но все равно это был пиздец, я в ближайшие 20 лет вообще нахуй ни на один собес больше не пойду пока не смогу по памяти написать свой свой браузер на c++, внутри которого будет открываться полностью самописный алиэкспресс, внутри которого будет продаваться вся документация js написанная по памяти
Аноним 04/12/20 Птн 11:51:08 1872548209
16060938858540.png 273Кб, 720x583
720x583
>>1872103
TypeScript поможет тебе в этом
Аноним 04/12/20 Птн 11:56:21 1872550210
Аноним 04/12/20 Птн 11:58:22 1872554211
>>1872538
Привет, я в жизни не учил никаких языков, кроме английского и ссу тебе на ебало, потому что var это variable, т.е переменная, т.е
> var TvoiHui x
Который ты задаешь

Let - это ПУСТЬ
> let TvoiHui 5

Const - константа.

Этим они и отличаются, в остальном это глобальные операторы и нихуя более
Аноним 04/12/20 Птн 11:59:00 1872555212
Аноним 04/12/20 Птн 12:00:53 1872558213
>>1872538
>кроме того, что он имеет глобальную область видимости
Нет, он имеет локальную область видимости.
Аноним 04/12/20 Птн 12:04:14 1872559214
>>1872554
Ну видно что ты нихуя и не учил
Аноним 04/12/20 Птн 12:08:13 1872563215
>>1872538
var имеет локальную область видимость, let и const блочную.

Если ты объявляешь var в глобальном скоупе - то у тебя globalThis и есть локальная область видимость. Все области видимости в жс - это объекты, а переменные это поля этих объектов, именно поэтому поле в глобальном объекте (или любом из его прототипов) - это глоабльная переменная. Если ты объявишь var в пределах модуля - поле в глобальном объекте присвоено не будет, потому что у модуля своя локальная область видимости. Если ты объявишь var в теле функции - то ее локальная область видимости будет ограничена этой функцией. Объявления var всплывают, но инициализация происъодит по месту.

let и const имеют блочную область видимости. Они объявляются и инициализируются по месту, и за пределами блока, в котором они объявлены их не видно.
Аноним 04/12/20 Птн 12:09:43 1872564216
>>1872538
>щас меня по реакту спрашивать начнут и я их разъебу
Почему React не реактивен? Какая модель распространения значений в react?
Аноним 04/12/20 Птн 12:11:45 1872565217
>>1872563
Вот этому можно и перезвонить. А что если не указать модификатор переменной, тупо насрать `op = "khui"`?
Аноним 04/12/20 Птн 12:12:01 1872566218
>>1872550
Разве в тайпскрипте можно сделать целочисленный тип, принимающий только нечетные значения, чтобы обойтись без is-odd ?
Аноним 04/12/20 Птн 12:12:15 1872567219
>>1872563
>Они объявляются и инициализируются по месту
Справедливости ради, TDZ работает благодаря подъему, но кого это ебет, когда в userland коде все равно это никак не использовать.
Аноним 04/12/20 Птн 12:12:47 1872568220
>>1872566
>Разве в тайпскрипте можно сделать целочисленный тип
Да, гугли branded types и гарды/кодеки.
Аноним 04/12/20 Птн 12:16:40 1872573221
>>1872565
Будет попытка присвоить переменную на уровень выше по цепочке наследования областей видимости, пока не дойдет до самого верха. В случае если код выполняется
в строгом редиме и переменная в итоге не объявлена нигде будет эксшепшен, в противном случае будет присвоено поле в globalThis. Все модули выполняются в строгом режиме, так что там всегда будет экспшен при попытке присвоить необъявленную ранее переменную.
Аноним 04/12/20 Птн 12:19:18 1872576222
>>1872573
>>1872567
>>1872563
>>1872554
>JavaScript простой язык
>22 строки о том, что такое var
>при это все равно остаются какие-то нюансы
Аноним 04/12/20 Птн 12:23:34 1872578223
>>1872576
Он просто душный, простое объяснения выглядит в виде наглядного примера:

function scope() {
      {
            var x = 10;
            let y = 11;
            const z = 12;
      }
console.log(x);
console.log(y);
console.log(z);
}

В консоль выведется 10, а потом вылетит эксепшн который скажет тебе, что переменная "y" не определенна, если поменять y и z местами, то будет тоже самое.
Аноним 04/12/20 Птн 12:23:41 1872579224
>>1872576
Да ладно, это почти все легаси или нужно раз в год, все в 95% случаев делается на const. Типичный вопрос для собеса короче.
Аноним 04/12/20 Птн 12:24:59 1872581225
>>1872576
Он действительно очень простой. В основе всего яызка лежит абстракция объекта (описанного в спецификации) который имеет слоты, которые дергаются при каждом геттер, сеттере, и вызвое некоторых операторов. Все взаимодействие со всеми сузностями происхоит через дерганье этих слотов. Области видимости - это тоже объекты, которые так же связаны в цепочку, по типу протипной, с единственной разницей в том, что переменная это не поле, а аксессор - при сеттере переменной она присваивается в той области где объявлена в ецпочке, а не в текущей, а объявление переменной - это объявление акссесора у текущей области видимости в случае если это блочная переменная, или локальной, в случае если это var.

Абсолютно все операии - это дерганье слотов через отправку сообщений get\set\call\getProperty\hasOwnProperty и так далее. Если понять как это устроено все с низу, то никаких сложностей нет вообще вс понимаием как это сустроено сверух. Сверху у тебя много сущностей - всякие контексты, модификаторы, операторы, хуяторы - которые на деле выражаются одними и теми же конструкциями и операциями на нижнем.
Аноним 04/12/20 Птн 12:26:44 1872582226
>>1872581
Заходи почаще в JS треды. Здесь котострофически не хватает адекватов.
Аноним 04/12/20 Птн 12:27:43 1872585227
>>1872578
В отличии от тебя он пояснил, что будет при объявлении var за пределами функциии, в строгом и нестрогом режиме, и почему hasOwnProperty - это глобальная переменная.
Аноним 04/12/20 Птн 12:28:04 1872587228
>>1872582
Я ОП этого треда последние пять лет.
Аноним 04/12/20 Птн 12:30:12 1872589229
>>1872585
>что будет при объявлении var за пределами функциии

Проиграл с дебила. В JS функция это объект, твои "за пределом функции" это тоже самое что и в пределах функции. Как вы вообще код пишете, если таких основ не понимаете? Для вас это не написание кода, а магия?
Аноним 04/12/20 Птн 12:31:14 1872591230
Аноним 04/12/20 Птн 12:32:10 1872593231
Ну все понятно в общем нахуй блядь, 10 постов, считай целая статья с нюансами одного только var. Осталось только все то же самое выучить наизусть для примерно 10000 остальных сущностей в js и всё, можно бежать устраиваться за 30 тарелок гречи в месяц.
Аноним 04/12/20 Птн 12:33:37 1872595232
>>1872593
Тебе пояснили, что можно вызубрить 10000 сущностей по отедльности, а можно изучить несколько простых принципов и понять разом всё. Но ты, как я вижу, сделал свой выбор.
Аноним 04/12/20 Птн 12:36:38 1872601233
>>1872595
Где можно узнать об основных принципах? Вот что нужно читать чтобы понять основные принципы? В основном все начинается от перечисления переменных и заканчивается всякими асинк авайтами. Ну а дальше сам по мере необходимости. Причем еще и ор в том, что все, что ты пишешь может прекрасно работать и без всех этих нюансов. Так что в конечном итоге все выливается в то, что ты чуть ли не до уровня сеньера должен доучиться, чтобы на тебя как на говно не смотрели
Аноним 04/12/20 Птн 12:36:50 1872602234
>>1872589
Функция это callable объект. У которого пределен хэндлер на сообщение call. Еще есть конструкторы - это обхекты у которых определен хэндлер на сообщение construct. Области видимости не являются вызываемыми объектами, и конструкторами они тже не являются. Они вообще относятся к типу Exotic Object.
Ни глобальный скоуп в которм выполняются простые скрипты, ни модули не являются функциями. Исходный код скриптов и модулей выполняется в контекстах vm.
В общем, ты несешь чушь.
Аноним 04/12/20 Птн 12:43:48 1872609235
>>1872568
let n = 2 as Brand<number, 'odd'> // пук кек
Аноним 04/12/20 Птн 12:45:06 1872610236
>>1872601
Нигде это полноценно и всеобъемлюще в одном месте не расписано. Или во всяком случае я ничего такого не читал. Я просто 20 лет пишу на жс, и помню его еще со времен es3.

Я бы порекомендовал просто прочесть спеку es5 (она самая простая и при этом актальна, потому что уже описывает текущие принципы, но не полностю, потому как ей болле пяти лет и язык сильно развился) У кантора есть отличный перевод https://es5.javascript.ru/

Потом плотно изучить такие вещи как Symbol (в том числе well-known symbols) и Proxy (поняв, как работают хэндлеры сообщений из юзерспейса модно придти с пониманию всего чисто интуитивно). Еще очень рекомендую почитать статьи про устройства самих движков (хотя бы v8 - есть отличный блог v8.dev и куча переводов на хабре - так же есть конфы от разрабов самого v8 в том числе рускоязыные).

Ну и попутно все шлифовать просто добирая материал (изуя те же символы заглянуть в актуальную спеку). Изучить финализаторы и слабые ссылки. Можно почитать сорцы движков, котя бы изучить runtime built-in functions в v8, которые весьма низкоуровневы, доступны из жс кода за флагом, и позволяют формировать все структру жс в ручную (словно ты пишешь на высокоурвневом ассемблеере).

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

Ну и попутно просто играйся с сами жс, у тебя он прямо под рукой, достаточно нажать f12.

Аноним 04/12/20 Птн 12:46:33 1872612237
>>1872609
>as
Ты же сам берешь на себя ответственность, выполняя принудительное приведение типов, в чем проблема?
Ассершены, по-хорошему, должны быть запрещены на проекте, исключение отводится только на "as const".
Аноним 04/12/20 Птн 12:47:51 1872614238
>>1872568
>гарды/кодеки
Всё равно нужен is-odd, чтобы запилить гарду
Аноним 04/12/20 Птн 12:51:54 1872618239
2020-12-0413h51[...].png 157Кб, 288x254
288x254
Аноним 04/12/20 Птн 12:51:57 1872619240
>>1872610
Спасибо, буду учить если не вздернусь нахуй
Аноним 04/12/20 Птн 12:54:31 1872622241
>>1872619
Если есть в тг пиши нам в самый токсичный чат dynamicult
Аноним 04/12/20 Птн 12:55:54 1872623242
isobject >31 000 000 Weekly Downloads
is-string >8 000 000 Weekly Downloads
is-primitive >2 000 000 Weekly Downloads
is-undefined >5 000 Weekly Downloads

@
ТАЙПСКРИПТ НИНУЖЕН
@
ТВЁРДО И ЧОТКО
@
isobject >31 000 000 Weekly Downloads
@
is-string >8 000 000 Weekly Downloads
@
is-primitive >2 000 000 Weekly Downloads
@
is-undefined >5 000 Weekly Downloads
Аноним 04/12/20 Птн 13:01:25 1872634243
>>1872601
>что ты чуть ли не до уровня сеньера должен доучиться, чтобы на тебя как на говно не смотрели
Все эти знания вовсе не сениорские. Подобное не является необходимыми скиллами для промышленных градций ждун\мидл\сениор. Ждуны\мидлы\сениоры - это кодомакаки.
Вся эта беллетристика это удел евангеистов, language hackers и прочих людей, у которых цель не формочки клепать, а созидать. Или быть как минимум умнее пробки и понимать что как работает и почему именно так.

От тебя никто не требует всего этого понимания, если единственная твоя цель это на работу устроиться. У тебя есть тот самый путь - заучивать отдельные кейсы и не задаваться лишними вопросами. Возможно он для тебя действительно будет проще (даже точно будет проще. в случае если тебе программирование как таковое не интересно)
Аноним 04/12/20 Птн 13:02:57 1872635244
>>1872634
>От тебя никто не требует всего этого понимания
Да в пизду, чтобы я еще раз на какой-то собес пошел пока все это знать не буду
Аноним 04/12/20 Птн 13:05:59 1872638245
>>1872634
>цель не формочки клепать, а созидать
Но ведь конечная цель языка и есть решение прикладных задач. В чем созидательность глубокого понимания его работы?
Аноним 04/12/20 Птн 13:11:03 1872648246
>>1872638
Прикладные задачи не ограничиваются клепанием формочек. У всего прикладного есть разные сферы применения. Ты, как программист - тоже пользователь. Для тебя пишут инструменты другие программисты, для которых эти задачи являются прикладными.
Есть еще такие вещи, как написание транспиляторов и компиляторов. Тех же самих линтеров, и language серверов. Пользовательских рантаймов, и в конечном счете просто библиотек. Ты же не думаешь, что все это появляется само по себе?
А еще есть такие вопросы как развитие языка. Чтобы протащить в спеку новый пропозал, тебе не будет достаточно понимать, чем var отличается от const.

Аноним 04/12/20 Птн 13:22:30 1872656247
>>1872638
От уровня твоего понимания зависит то, что именно ты способен созидать. Все люди различаются между собой лишь широтой знаний\взглядов\эрудицией. Кем быть именно тебе выбираешь исключительно ты сам.
Аноним 04/12/20 Птн 13:32:06 1872662248
>>1872442
И как бы его назвать? game management? И ещё в конце игры нужно будет очищать всякие переменные. Как это обычно называют?
Аноним 04/12/20 Птн 13:33:00 1872664249
>>1872648
>Ты же не думаешь, что все это появляется само по себе?
Конечно, не думаю, просто не понимаю с чем связан изначальный снобизм. Мол написать линтер это созидание, а написать, например фронт CRM для КЦ — формошлепство. Там же тоже нужны знания, просто другой предметной области. Причем не сказать что одна из них как-то особенно лучше или сложнее другой. Правда первое, как правило, оплачивается звездочкой на гитхабе и стабильным потоком ишьюс, а второе деньгами, страховкой и оплачиваемым отпуском.
Аноним 04/12/20 Птн 13:39:16 1872670250
>>1872662
Зависит от твой архитектуры. Скорее всего у тебя будет куча разных менеджеров, типа PlayerManager, SceneManager, и т.д. которые объединяют простые строительные блоки. И всем управляет какой-нибудь GameManager.

>И ещё в конце игры нужно будет очищать всякие переменные. Как это обычно называют?
Зачем их в конце очищать? Иногда делают в каждом менеджере или объекте метод destroy, который подчищает за собой. Но это далеко не всегда надо.
Аноним 04/12/20 Птн 13:39:44 1872672251
>>1872662
Бля, ну почитай ты наконец про подход Entity Component System, многие вопросы сразу отпадут.
Аноним 04/12/20 Птн 13:40:13 1872673252
>>1872664
Как правило те. кто способен писать линтеры, способны писать и CRM, а обратное не верно. При этом первые не испытывают никаких wtf разрабатывая с использованием любого языка или технологии, в отличии от вторых. Это не та разница предметных областей (как писать круды или графические редакторы, сервер-сайд или гуй, игры или нейросети). Это перманентная широта специализации. У людей глубоко-эрудированных нет сложности с вопросами написания фронта или бека, консольных утилит или десктопа, писать на жс или на си - они разберутся во всем и очень быстро, потому что умеют это делать. Умеют изучать, а не заучивать.
Аноним 04/12/20 Птн 13:51:25 1872680253
>>1872673
>Как правило те. кто способен писать линтеры, способны писать и CRM, а обратное не верно.
Не очень понятно на чем вообще основаны эти измышления. Из хорошего знания языка и умения изучать вещи еще не следует хороший код и уж тем более хороший продукт. Нужно знание предметной области, представления о том как работают люди, вкус и другие вещи. Есть штуки созданные прекрасными разработчиками которыми невозможно пользоваться без слез и есть продукты написанные плохими разработчиками, которые работают прекрасно.
Аноним 04/12/20 Птн 14:04:14 1872686254
>>1872623
Почему люди ставят нпм модуль, а не пишут его от руки?
Аноним 04/12/20 Птн 14:49:50 1872718255
>>1872686
Они ставят библиотеку какую-то. А она уже тянет все это говно мелкое, потому что разраб библиотеки поленился написать.
Аноним 04/12/20 Птн 15:35:57 1872741256
345345.jpg 9Кб, 489x287
489x287
Как на флексах сделать так как на пике? Красный - один блок, синий - другой. Получается только через float.
Аноним 04/12/20 Птн 15:43:38 1872747257
>>1872741
Ты хочешь странного, зачем тебе блок хитровыебанной формы да еще с пересечением с другими? На флексах такое не делается.
Аноним 04/12/20 Птн 15:54:55 1872755258
>>1872623
А при чём здесь тайпскрипт, долбоеб? Тайпскрипт за тебя не проверит пришло ли тебе в ответе на запрос строка или объект, несмотря на то что ты прописал, что должна была прийти строка.
Аноним 04/12/20 Птн 15:58:35 1872756259
>>1872741
.синийБлок {
margin-left: auto;
}
Аноним 04/12/20 Птн 15:59:41 1872757260
>>1872623
Просто вся эта ебатура ставится вместе с npm пакетам как зависимости.
Аноним 04/12/20 Птн 15:59:59 1872758261
>>1872755
Тип > json-схема > ajv. Изи.
Аноним 04/12/20 Птн 16:14:17 1872768262
Аноним 04/12/20 Птн 16:18:32 1872771263
>>1872758
Это и без твоего тайпскрипта делается.
Аноним 04/12/20 Птн 16:20:06 1872772264
>>1872768
Чел, ты не понял этого наркомана. Открой картинку и посмотри на красную обводку внимательнее
Аноним 04/12/20 Птн 16:21:54 1872774265
carbon.png 49Кб, 940x632
940x632
>>1872768
Мне вот такая структура нужна.
Аноним 04/12/20 Птн 16:23:52 1872779266
>>1872774
Что это изменит, наркоман?
Аноним 04/12/20 Птн 16:25:58 1872783267
45654.jpg 15Кб, 772x361
772x361
>>1872779
Тоже самое, один в один.
Аноним 04/12/20 Птн 16:27:39 1872786268
Можете посянить по стилистике как правильно
(a) => {
if (a) {
return a
}

Какие то вычисления

return 42
}

Либо

(a) => {
if (a) {
return a
} else {

Какие то вычисления

return 42
}
}

Записи эквивалентные просто по стилю как правильнее
Аноним 04/12/20 Птн 16:30:01 1872791269
>>1872783
Скотина тупорылая, зачем тебе по отдельным блокам разбивать, если разницы в отображении не будет?
Аноним 04/12/20 Птн 16:31:09 1872795270
>>1872786
Главное, что
Больше пары строк кода в посте или на скриншоте ведут в Ад.
Аноним 04/12/20 Птн 16:31:32 1872797271
>>1872791
Может потому что так надо? Ты еще предложи фоновой картинкой поставить, разницы в отображении тоже не будет, хуле.
Аноним 04/12/20 Птн 16:33:07 1872801272
Screenshot3.png 2Кб, 267x120
267x120
Аноним 04/12/20 Птн 16:36:00 1872808273
Аноним 04/12/20 Птн 16:36:53 1872809274
>>1872797
>Может потому что так надо?

Вот тебя и спрашивают зачем тебе так надо, хуесосина.

>фоновой картинкой поставить,
>разницы в отображении тоже не будет, хуле.
>разницы не будет

Ты правда настолько тупой или просто от безысходности начал бред нести?
Аноним 04/12/20 Птн 16:37:18 1872811275
>>1872786
const func = a => a ?? process(a);
Аноним 04/12/20 Птн 16:38:10 1872813276
>>1872809
>зачем тебе так надо
Затем надо. Вопрос был конкретный. Обосрался - обтекай.
Аноним 04/12/20 Птн 16:41:46 1872817277
>>1872811
>a ?? process(a);
Чейто? А вообще конечно так проще.

const func = a ? a : 42
Аноним 04/12/20 Птн 16:44:11 1872820278
>>1872817
А если a === 0? А действия нужны, только если нету a?
Аноним 04/12/20 Птн 16:45:05 1872823279
>>1872820
>=== 0
Говнокод, импортируй is-zero, сука
Аноним 04/12/20 Птн 16:48:41 1872831280
>>1872817
тогда уж
const func = a ? fn(a) : 42

Но это не всегда целесообразно, функция на пустом месте дополнительная.
Когда получается использую

>>1872811
А что делает ?? ?
Аноним 04/12/20 Птн 16:49:12 1872832281
>>1872801
function func(a) {return a || 42;}
или
const func = (a) => { return a || 42; }

Хорошо по стилю оборачивать блок if в скобки, даже если один оператор. Некоторые стандарты кодирования явно требуют.

Вот этот вариант лично мне не нравится >>1872801
Если в конце блока if есть return, или continue/break внутри цикла, то делать else не нужно, получается немного противоречивая логика, при этом конструкция if-return довольно типовая, воспринимается без напряга, чтобы дополнительный else делать. Но return должен быть сдвинут на одном уровне с операторами if-else, тогда легко читается, в том числе поэтому код на картинке не нравится, всего 4 строки, а читается тяжело.
Аноним 04/12/20 Птн 16:50:27 1872834282
>>1872817
>>1872831
Казалось бы, если ты вкатыш, то постоянно следишь за новостями языка, должен знать все новые свистоперделки. Хуевые вкатыши получаются. Ладно бы старье не знали бы какое-нибудь, а тут...
Аноним 04/12/20 Птн 16:52:01 1872835283
>>1872741
Сначала ответь зачем.
99% ебнутых запросов от того, что ты делаешь что-то неправильно. Твой яркий тому пример.
Аноним 04/12/20 Птн 16:55:28 1872842284
>>1872835
Синяя кнопка скрывает\открывает красный красный блок.
Аноним 04/12/20 Птн 17:01:49 1872852285
>>1872842
>Синяя кнопка скрывает\открывает красный красный блок.
Что будет с красным блоком, когда он скрыт? Как будет использоваться место слева от синей кнопки в этом случае? Там будет пустое место или туда заедет какой-то текст?
Аноним 04/12/20 Птн 17:02:28 1872853286
>>1872832
Спс за развернутый ответ
Аноним 04/12/20 Птн 17:03:06 1872854287
>>1872852
>Что будет с красным блоком, когда он скрыт?
Он будет скрыт.

>Там будет пустое место
Да
Аноним 04/12/20 Птн 17:05:35 1872860288
>>1872783
Сдвинь зеленую залупу через position: relative
Аноним 04/12/20 Птн 17:06:44 1872863289
>>1872860
Так делал, но флоат проще.
Аноним 04/12/20 Птн 17:08:56 1872869290
>>1872834
Выебнулся, молодец. Вот только цель этого оператора проверить на отсутствие значения, а false он пропустит как true.
Аноним 04/12/20 Птн 17:11:10 1872870291
>>1872869
А false - это не отсутствие значения. Это присвоенное булево значение.
Аноним 04/12/20 Птн 17:11:43 1872872292
>>1872854
Ну тогда там скорее будет красный блок со скрытым содержимым. Соответственно твоя кнопка не должна убирать родительский блок, она должна скрывать его содержимое, кроме синей кнопки.

Если сделаешь на float, то туда какой-нибудь мусор залезет.

Если тебе нужно, чтобы текст обтекал синюю кнопку, тогда нужен float по идее. Если нет, там слева заголовок, тогда тупо вложенные флексы
Аноним 04/12/20 Птн 17:16:19 1872877293
>>1872869
Из однострочников самый корректный вариант
return a ? a : 42;

Другие меняют тип возвращаемого значения, например "" превратят в 0, что иногда может быть некорректным поведением.
Аноним 04/12/20 Птн 17:17:32 1872881294
Аноним 04/12/20 Птн 17:18:57 1872883295
>>1872877
Не, пожалуй я туплю. Пойду дальше работать.
Аноним 04/12/20 Птн 17:20:00 1872886296
>>1872870
>>1872877
С проверкой на нулевое значение, тогда можно вообще сократить всё до.
const a ??= 42
Аноним 04/12/20 Птн 17:31:45 1872905297
Аноним 04/12/20 Птн 17:33:54 1872910298
>>1872886
Проебался с const. Но вы поняли.
Аноним 04/12/20 Птн 17:36:32 1872915299
Бля, какое же Вуй костыльное говно, реакт по сравнению с этим просто ванильный жс. Настало время ставить плагины на модули, модули на плагины сами не поставятся.
Аноним 04/12/20 Птн 17:38:01 1872917300
>>1872905
>return a ? a : 42;
>Если a === 0, будет 42.
Да, мы же однострочниками меряемся
Аноним 04/12/20 Птн 17:44:04 1872931301
>>1872673
Ты забыл упомянуть, что для программирования нужны специальные гены, причём разные под отдельные языки.
Аноним 04/12/20 Птн 17:47:37 1872940302
images.jpg 6Кб, 284x177
284x177
527a43c9-3a86-4[...].jpg 68Кб, 1024x714
1024x714
>>1872931
>гены, причём разные
Аноним 04/12/20 Птн 17:55:16 1872951303
>>1872931
Даже гены не помогут, если не начать специализированное обучение с 12 лет. Ну по аналогии с другими областями, не будешь нормально кормить пиздюка - вырастает низкорослый дебил-коммунист.
Аноним 04/12/20 Птн 18:14:54 1872993304
>>1872915
Ты явно чего-то не понял.
Никаких костылей и говна там нет.

>реакт по сравнению с этим просто ванильный жс
Это, типа, комплемент, лол?
Аноним 04/12/20 Птн 18:22:46 1873010305
>>1872993
>Никаких костылей и говна там нет.
Ну тебе норм, это понятно.
Аноним # OP 04/12/20 Птн 18:25:09 1873013306
>>1872931
У меня 47 хромосом, например.
Аноним 04/12/20 Птн 18:27:52 1873021307
>>1873013
Мединский? Что ты здесь делаешь?
Аноним 04/12/20 Птн 18:37:15 1873042308
Я так пынимаю, вакансии все. Работающие, в ваши компании нанимают в декабре, или вы уже оливьешку с шампусиком и мандаринками наворачиваете?
Аноним 04/12/20 Птн 18:44:21 1873048309
>>1873042
Если очень нужен - нанимают.
У нас вот - наняли.
Но, большинство - уходит в спячку.

Также, умные люди понимают, что это время года не очень хорошо для принятия важных решений - можно совершить ошибку, т.к. мозг работает в довольно своеобразном режиме. Надо перетерпеть до конца января.
Аноним 04/12/20 Птн 18:44:58 1873049310
>>1873042
Думаю что на пару месяцев уже все.
Аноним 04/12/20 Птн 18:58:44 1873060311
Дёргать XHR на window.unload норм тема, проблем не будет? (Про sendBeacon в курсе, но у нас IE11)
Аноним 04/12/20 Птн 19:04:14 1873064312
Аноним 04/12/20 Птн 19:13:00 1873068313
>>1873064
>pagehide а не unload
Хуита какая-то. Если вешаю на него обработчик, то он не срабатывает при закрытии вкладки. Если дополнительно вешаю на unload, то срабатывают оба
Аноним 04/12/20 Птн 19:24:11 1873077314
Как проверить существует ли вообще сейчас определенный объект или его нет? Вот например у меня в том случае, если приходит ошибка от сервера создается в редаксе такое поле state.user.error.message, а если ошибки нет, то изначально объект user у меня пустой, соответственно и error и message у него вообще не объявлены. Что в этом случае можно сделать? Каким образом можно проверить, появился ли объект если изначально на него никак невозможно сослаться? Либо в любом случае нужно создать всю структуру объекта с пустыми полями, и потом уже проверять что в них пришло?
Аноним 04/12/20 Птн 19:38:49 1873090315
>>1873077
Старый добрый
if (state.user && state.user.error) { return state.user.error.message }
Аноним 04/12/20 Птн 19:40:59 1873091316
Аноним 04/12/20 Птн 20:03:28 1873101317
>>1873077
if(state?.user?.error?.message) return state.user.error.message
Аноним 04/12/20 Птн 20:13:39 1873106318
>>1873101
>>1873091
>>1873090
Спасибо, все варианты работают, но про ?. вообще не знал, и читается охуенно
Аноним 04/12/20 Птн 20:31:11 1873124319
у меня есть класс Игрок

Игрок
переместить туда
переместить сюда
переместить ещё куда-то

Куда запихнуть фукнцию перемещения всех игроков в одно место?

В класс что ли? Игрок.всехводноместо()
Аноним 04/12/20 Птн 20:32:40 1873125320
можно выполнить в консоли
document.body.animate([{filter:'hue-rotate(0deg)'},{filter:'hue-rotate(360deg)'}],{duration:5000,iterations:Infinity});
Аноним 04/12/20 Птн 20:35:51 1873126321
image.png 570Кб, 680x340
680x340
Я так понимаю документация по vue v3 написана с расчетом на то, что я знаком с vue v2, т.е. для вкатывания с нуля не подходит?
Аноним 04/12/20 Птн 20:47:08 1873130322
>>1873124
Тебе же сказали - у тебя должен быть класс, являющийся моделью игры. Вот там и должна быть эта функция.
Потому, что Игрок у тебя не должен знать, в каком он месте.
Это должна знать модель игры.
Аноним 04/12/20 Птн 20:48:35 1873131323
>>1873126
На оф. сайте?
Там же с нуля всё расписано, просто отдельная докуметация.

Картинка полностью отражает современные процессы, лол.
Аноним 04/12/20 Птн 20:51:40 1873133324
Аноним 04/12/20 Птн 20:53:41 1873134325
>>1873133
ты где-то вопрос увидел?
Аноним 04/12/20 Птн 20:54:55 1873136326
Аноним 04/12/20 Птн 20:55:40 1873137327
>>1873126
Почему реакт всё время ставят рядом с vue? vue — фреймворк, реакт — нет. vue надо сравнивать с фреймворками на реакте.
Аноним 04/12/20 Птн 21:04:13 1873138328
>>1873136
Загибается же в конце.

>>1873137
Под "реактом" имеют в виду всю систему этого лохотрона.
Реакт - Редукс - Хуюкс - ...
Аноним 04/12/20 Птн 21:06:11 1873140329
>>1873136
И да, он пока только засмотрелся, самое интересное будет потом.
Аноним 04/12/20 Птн 21:07:46 1873141330
>>1873138
реакт - редукс - хуюкс — тоже не фреймворк, их руками дружить дорого. Фреймворк на реакте — Next.js, он круче Vue.
Аноним 04/12/20 Птн 21:12:32 1873143331
>>1873141
Это фуллстак. Он не нужен.
Аноним 04/12/20 Птн 21:21:44 1873147332
Есть пустой объект const emptyUser = {id: "", username""}, как лучше делать его копии когда надо гдето его копию подставить чтоб сам пустой объект никогда нельзя было изменить.

[...emptyUser] сойдет или надо там через new emptyObject(), или object.assign?
Аноним 04/12/20 Птн 21:23:06 1873148333
>>1873131
>На оф. сайте?
Да
>Там же с нуля всё расписано, просто отдельная докуметация.
Я начинал сначала читать документацию по vue v2, потом узнал что есть v3 и начал изучать ее, только вот она на англ и ее труднее понять и самое главное что там примеры кода уже не такие полные как в туторе второй версии.

Я вкатываюсь с нуля, это мой первый фреймворк, если чё.
Аноним 04/12/20 Птн 21:24:37 1873149334
>>1873147
{id: "", username""} — но это же не пустой объект
Аноним 04/12/20 Птн 21:25:30 1873150335
Как писать код где в теории идут запросы на сервер если я фронт учу? Я ж ничего в бекэнде не понимаю толком.
Ну типо, мне еще учить какой нить пхп или ноду надо что бы во фронт залезть?
Аноним 04/12/20 Птн 21:27:26 1873151336
>>1873150
Бэк должен предоставить тебе апи, то есть какие есть запросы, какие параметры они принимают, и что возвращают
Аноним 04/12/20 Птн 21:28:49 1873153337
>>1873148
Читай по v2 на русском.
Отличий много, но, для полного ньюфага они не принципиальны.
Более того, v2 - проще.

>>1873147
Тебе лучше сделать так, чтобы твой рендерер, и другие части программы, нормально воспринимали именно пустой объект {}.
Т.е., чтобы не надо было явно пустые поля задавать. Обычно так делают.
Аноним 04/12/20 Птн 21:29:36 1873154338
>>1873149
>не пустой объект

Пустой в смысле у него есть структура, но ниче не заполнено чтобы очистить формочку
Аноним 04/12/20 Птн 21:29:53 1873155339
>>1873150
Используй публичные тестовые апи пока, чтобы не делать свой сервер.
См. https://reqres.in
Аноним 04/12/20 Птн 21:31:19 1873158340
>>1873126
Если собираешься что-то кроме петов делать, то забей на v3. Один хуй будешь ковырять проекты на v2, которые ещё и не факт будут мигрировать на новую версию.
Аноним 04/12/20 Птн 21:32:48 1873159341
>>1873137
А nuxt.js тогда что? Фреймворк фреймворка?
Аноним 04/12/20 Птн 21:35:14 1873161342
>>1873159
Vue на столько плохой фреймворк, что над ним приходится строить ещё один фреймворк
Аноним 04/12/20 Птн 21:51:27 1873173343
Аноним 04/12/20 Птн 21:52:31 1873175344
Аноним 04/12/20 Птн 21:54:28 1873177345
121.png 51Кб, 1834x410
1834x410
Есть элемент VUE. Он отрисовывается, только если метод возвращает нужное значение. Также возвращаемое методом значение используется, чтобы задать элементу аргумент и само содержимое элемента.



Немного не догоняю, как здесь можно не запускать три раза метод, а один раз? Вычисляемое свойство не подходит.
Аноним 04/12/20 Птн 22:05:38 1873182346
>>1873177
Вызовом метода присваивать значение `this.param`, а дальше сравнивать и проставлять значение как {{ param }}.
Аноним 04/12/20 Птн 22:10:56 1873189347
>>1873177
Там где-то выше должон быть хук, который срабатывает при изменении param, и делает methodParam = method(param), а в шаблоне заменить method(param) на methodParam
Аноним 04/12/20 Птн 22:50:20 1873210348
>>1873177
1. Так делать точно не надо, это лютейший говнокод. Просто эссенция говнокода.
2. Как надо? Это зависит от того, что такое твой param, и нахуя тебе сайд-эффекты при рендеринге. Что-то у тебя там не то.
Аноним 04/12/20 Птн 22:59:32 1873218349
>>1873210
Нужно добавить элементы в ячейки таблицы. В param данные слота по текущей строке. Метод рассчитывает значения в зависимости от этих данных.
Аноним 04/12/20 Птн 23:11:07 1873222350
>>1873218
Всё равно не очень понятно.
Но, если что-то реально хитрое, то, возможно, стоит использовать не шаблонный рендеринг, а рендер-функцию, как в реакте.
JSX|TSX прикручивается несложно, но, один раз можно и без него.

Ну, или запоминай в переменной в data, и используй не вызов метода, а эту переменную во всех случаях, кроме первого, как советует >>1873189
Причём, как-то так:
v-if="method(param) && methodResult != 'ass'" :arg="methodResult" ...
Т.е. method(param) просто возвращает true, а реальный результат записывается в this.methodResult.
Назвать это всё надо по-человечески, разумеется.
Аноним 04/12/20 Птн 23:13:40 1873225351
>>1873222
И да, делать method(param) && methodResult != 'ass'
надо чтобы ясно дать понять тому, кто это будет читать, что тут происходит. Т.е. чётко выразить намерение.
Аноним 04/12/20 Птн 23:41:47 1873237352
Аноним 04/12/20 Птн 23:50:33 1873242353
>>1873177

Ты еще не пробовал в реакте программно выделить строку в таблице и показать, закрыть модальное окно с анимацией. react-bootstrap последней версии ждут каких-то новых api чтобы transition работал без ошибок

https://github.com/react-bootstrap/react-bootstrap/issues/3518
Аноним 05/12/20 Суб 00:48:32 1873260354
>>1873237
https://pastebin.com/02v9N3CP

Там я сделал просто явный вызов метода, как сайд-эффекта при рендеринге:
{{getColor(item.calories)}}
Метод возвращает пустую строку, т.е. не рендерится ничего.

Можно сделать иначе:
<v-chip :color="getColor(item.calories) + itemColor" dark>

Но, мне кажется, лучше бы сделать цвет частью данных.
Т.е. ты с бека получил эту хуергу, и далее, через map и через extend или композицию добавляешь свойство color к каждому элементу.

Вычислять такое в шаблоне - не очень хорошо, и не очень быстро, кстати. И, самое важное - все оптимизации Vue при этом идут по пизде.
Так что - делай лучше сразу в данных.

Аноним 05/12/20 Суб 01:09:29 1873267355
>>1873237
>>1873260
Собственно, вот, color добавлен в модель:
https://pastebin.com/UrPqBVsq

Выглядит намного лучше, понятнее, легче дорабатывать и т.д.
Можно и остальные вычисления тоже заменить таким образом.
Аноним 05/12/20 Суб 02:21:16 1873281356
>>1873267
А если нету даты и данные из пропсов берутся? Создавать дату дату с этими данными только для рендеринга?
Аноним 05/12/20 Суб 03:03:04 1873289357
>>1873281
Можно и так.
От задачи зависит.

Если нет массива, можно и как в первом варианте: >>1873260
Тут смысл в том, что метод (результат вызова) не кешируется, в отличие от computed property.
И таким образом его можно кешировать вручную.

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

И, более общее соображение - если уж у тебя MVC|MVVM фреймворк, надо это использовать, по возможности.
Аноним 05/12/20 Суб 03:03:20 1873290358
>>1873177

VUE же умер после выхода 3 версии.
Аноним 05/12/20 Суб 03:12:57 1873291359
>>1873281
>>1873289
Но, тут есть нюанс.

Если у тебя массив поступает через prop, то мутировать его нельзя.
И получишь warning.
Т.е. надо создавать новый - а это накладно, так лучше не делать.
Поэтому, наверное, лучше просто закэшировать вызов метода.

Но, в таком случае, почему бы не вычислить всё, что нужно, в parent компоненте?
Это зависит от задачи. Если у тебя всегда заранее известен child компонент, который это использует, то да, лучше вычислить в parent или ещё раньше.

>>1873237
Вообще, в этом примере с цветом есть принципиальный дизайнерский просчёт.
Дело в том, что там должен быть не цвет, а некий тэг, признак - низко-средне-высоко-калорийный продукт.
И этот признак и надо рендерить - в цвет и ли ещё какую фигню.
Поэтому, это лучше вычислить ещё на беке.
Иначе получается, что в шаблоне заданы бизнес-правила, а это очень плохо.

Короче, всё зависит от задачи.

Аноним 05/12/20 Суб 06:35:44 1873309360
>>1873138
>Загибается же в конце.
>>1873136
Ну там загибы и посильнее были, сказать, что реакт вот прям взял и умер это уж совсем толстота, тем более вы забыли про бульён native, тут vue просто пинает труп
Аноним 05/12/20 Суб 11:44:28 1873360361
Анонче, делаю простенькие на жаве. Нужно прикрутить фронтенд. Что выбрать: вью или реакт?
Аноним 05/12/20 Суб 11:57:16 1873366362
>>1873360
> Анонче, делаю простенькие на жаве. Нужно прикрутить фронтенд. Что выбрать: вью или реакт?

Похуй что

https://www.primefaces.org/
Аноним 05/12/20 Суб 15:17:37 1873507363
14462897801140.jpg 167Кб, 803x1024
803x1024
Помогите начинающему долбоебу.
У меня в ангуляре есть кнопка, на которой висят 2 метода, один работает на подсчет кликов по кнопке, другой - запускает таймер с setinterval-ом, после которого кнопка станет disabled. Как сделать так, чтобы не плодились setinterval-ы? С меня нефть и все такое.
Аноним 05/12/20 Суб 15:18:53 1873510364
>>1873507
Запихни вызов интервала в именованную функцию и её вызывай.
Аноним 05/12/20 Суб 15:38:30 1873523365
attempt.png 5Кб, 422x200
422x200
>>1873510
Сейчас у меня так, в чем ошибка?
Аноним 05/12/20 Суб 15:58:33 1873549366
>>1873523
В начале функции добавь:
if (this.timerId !== undefined) return;
Аноним 05/12/20 Суб 16:04:43 1873561367
>>1873549
Ого, вот это я даун. Спасибо большое.
Аноним 05/12/20 Суб 18:44:23 1873697368
image.png 35Кб, 613x406
613x406
сап погромач, изучаю потихоньку реакт и вот пытаюсь сделать простое создание пользователя. у меня локально крутится только реакт, шлю запрос на удаленный REST API сервак в конторе сделали обучающие попрактиковаться, все данные валидные но я ловлю ошибку Access to fetch at 'http://my.servak/api/v1/register' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
и вот вопрос как такое фиксить? по статьям в инете вроде как понял что это должны фиксить люди сами на серваке, но при этом если я шлю абсолютно такой же запрос через postman то получаю success. как фиксить? я запутался
Аноним 05/12/20 Суб 19:00:17 1873700369
image.png 56Кб, 969x677
969x677
> VSCode, Vetur
Как сделать что бы в .vue файлах при наведении курсором на цвет #545288 всплывало окошко с выбором цвета.
Аноним 05/12/20 Суб 19:04:05 1873701370
>>1873697
Если через postman проходит, то на серваке всё у них норм. Значит ты должен отправить CORS заголовок в запросе.
Аноним 05/12/20 Суб 19:06:22 1873702371
>>1873700
Уверен, что у тебя плагин не тупит? Переключись на scss и посмотри подсветку синтаксиса, так как сейчас у тебя по сути всё одним цветом выделено.
Аноним 05/12/20 Суб 19:16:37 1873709372
>>1873697
На серве пусть посмотрят. Ну или сделай в боаузере отдельный профиль без проверки корсов, это ж игрушка, а не на прод.
Аноним 05/12/20 Суб 19:32:05 1873713373
image.png 217Кб, 1423x731
1423x731
>>1873702
>Переключись на scss
Переключился на scss - работает. На sass автокомплит работает, но цвета нет. Странно.
Аноним 05/12/20 Суб 19:40:40 1873716374
>>1873701
>>1873709
так куда в итоге смотреть лол? у себя или у них? алсо какой заголовок в итоге то подставлять? пробовал 'Access-Control-Allow-Origin': '*' второй строчкой добавить - в итоге такая же хуйня
Аноним 05/12/20 Суб 20:04:30 1873726375
>>1873291
>Но, в таком случае, почему бы не вычислить всё, что нужно, в parent компоненте?
А если повесить эту функцию добавления в дату на mounted, она же второй раз рендеринг вызовет? Это норм?
Аноним 05/12/20 Суб 20:04:33 1873727376
>>1873697
Сервер находится на другом домене и должен поддерживать CORS, а он этого не делает. Об этом собсна в ошибке и написано.

>я шлю абсолютно такой же запрос через postman то получаю success
Конечно, постман же не браузер, там нет этих политик безопасности.
Аноним 05/12/20 Суб 20:05:53 1873731377
>>1873716
Эта строчка должна в ответе приезжать. Пиздуй гуглить зачем корсы вообще придумали, а то на собесе за такое мигом мы вам перезвоним получишь.
Аноним 05/12/20 Суб 20:14:25 1873737378
>>1873697
Добавь опциях fetch mode: "no-cors"
Аноним 05/12/20 Суб 20:41:56 1873748379
Я придумал свою модель голосований и создал для него класс.

Голосование
конструктор {
количество голосов
текст уведомления = количество проголосовавших за что-то
винколбэк = функция(){}
}

--проголосовать()
----увеличить количество голосов на 20 секунд
----вывести уведомление в чат
----если набралось достаточно голосов
------выполнить винколбэк

Проблема в том, где логично будет расположить переменные которые будут отвечать за уменьшение голосов через 20 сек (иды таймаутов) и айди проголосовавших голосов.

Так в конструкторе и писать что ли?
зис.айдиигроков
зис.иды таймаутов

Правильно ли ставить вспомогательные переменные и переменные отвечающие за количество? И текст вроде как тоже вспомогательный.

Помогите. И дайти пожалуйста что почитать о расторжении переменных.



Аноним 05/12/20 Суб 20:45:45 1873751380
>>1873748
>расторжении
>расположении
Аноним 05/12/20 Суб 21:02:52 1873761381
Как на vue перерисовать элемент на уже загруженной странице?
Например, у меня в mounted отработала функция которая поменяла статус какого то элемента.
Аноним 05/12/20 Суб 21:06:05 1873763382
>>1873748
Создаёшь класс, который отвечает за список игроков и всякие их подсчёты, и перекидываешь счётчики голосовалке в виде примитивов. А голосовалка в свою очередь прокидывает примитивы списку.
Условно говоря если твой класс начинает включать в свойства массивы, особенно если это массивы объектов, то настало время создавать новый класс.
Аноним 05/12/20 Суб 21:49:03 1873788383
kmzvri1n.jpg 17Кб, 223x223
223x223
Почему мало кто любит Angular и много кто любит React? Обидно :(
Аноним 05/12/20 Суб 21:52:03 1873789384
>>1873788
Потому что никто не любит жабапарашу, где в основном и используется ангуляр.
Аноним 05/12/20 Суб 21:57:22 1873792385
>>1873789
что такое жабапараша?
Аноним 05/12/20 Суб 22:01:55 1873793386
>>1873788
Потому что толпа хомячков не осилившая типизацию сказала, что ангуляр это сложно и запутанно, а теперь дружно наворачивает среакт и вуе
Аноним 05/12/20 Суб 22:03:08 1873794387
15211670377860.jpg 287Кб, 925x1032
925x1032
>>1873789
Я люблю жабапарашу...
Аноним 05/12/20 Суб 22:18:50 1873804388
Аноним 05/12/20 Суб 22:59:22 1873837389
>>1873726
Да, лучше это делать в created.
Аноним 05/12/20 Суб 23:17:41 1873849390
>>1873726
>>1873837
Однако, не всё так однозначно:

However the official Vue documentation uses the mounted() lifecycle hook in example code for integration API calls with axios: https://vuejs.org/v2/cookbook/using-axios-to-consume-apis.html

Both lifecycle hooks mounted() and created() are widely used for fetching API data and considered as good practice.


https://stackoverflow.com/questions/51554083/vue-js-which-component-lifecycle-should-be-used-for-fetching-data
https://blog.logrocket.com/advanced-data-fetching-techniques-in-vue/

Я, собственно, из этих соображений и сделал это в mounted в том примере (>>1873267).
Думаю, дело в том, что реальный рендеринг происходит асинхронно, после nextTick.
Вообще, надо попробовать задебажить это дело и убедиться, что конкретно там происходит.
Аноним 05/12/20 Суб 23:47:34 1873864391
>>1873849
Вы там уже 10 постов не можете разобраться где сайд-эффект вызывать? Vue это просто и понятно, кек. One true way.
Аноним 06/12/20 Вск 00:02:22 1873867392
>>1873726
>>1873849
Проверил только что.
Сделал компонент с render-функцией, чтобы была 100% уверенность когда там что рендерится.
Результат такой:

mounted: Если в mounted делать синхронное или асинхронное изменение data, то рендеринг вызывается второй раз.
Почему же рекомендуют делать fetch в mounted? Потому, что рендерится пустой компонент (быстро), а потом уже наполняется данными. Т.е. проигрыша в производительности нет, ибо виртуальный дом, и медленные операции рендеринга в настоящий DOM делаются только на child-компонентах.
Думаю это подходит не для всех случаев. Но, для таблиц данных и т.п. - нормально.
Также, можно ставить флаг "данные загружены" и без данных рендерить пустой див.

created: Если в created делать _синхронное_ изменение data, то рендеринг _не_ вызывается повторно.
И для каких-то случаев это может быть предпочтительнее.
А если делать асинхронное (даже с timeout = 0), то - вызывается 2-й раз.
Т.е., если делать fetch, то нет разницы, где.

Итого, по данному примеру с цветами - вычисление свойства color для всех элементов массива там - синхронная операция, и его надо делать в created.

>>1873864
Но, Vue - это действительно просто и понятно.
Двухминутный эксперимент - и все ответы получены.
Подобный же вопрос в реакте/ангуляре выебал бы мозги по-взрослому.
Аноним 06/12/20 Вск 00:23:43 1873877393
>>1873867
>Подобный же вопрос в реакте/ангуляре выебал бы мозги по-взрослому.
Вопрос «где вызвать сайд-эффект» выебал бы мозги? Или «как отрендерить пропсы с вычисляемыми параметрами»? Не знаю как там в Ангуляре, конечно, но в Реакте они давно уже не стоят.
Аноним 06/12/20 Вск 00:35:12 1873880394
>>1873877
Речь давно уже не про сайд-эффект.
Да и изначально это можно было назвать сайд-эффектом весьма условно. Перечитай, если интересно, там не так много.

Сейчас речь была про то, где трансформировать (реактивные) данные, синхронно и асинхронно, чтобы это не вызвало лишний рендеринг.

>в Реакте они давно уже не стоят
Вот в прошлом треде неоднократно жаловались, что хуй его знает, где вообще делать асинхронные вещи в этих ваших редуксах. И что Абрамов молчит на эту тему, как партизан.

Алсо, в Реакте, насколько я помню, вообще вопросы лишних рендерингов стоят мощно, как конский хуй от конского же возбудителя.
Аноним 06/12/20 Вск 00:50:41 1873893395
>>1873880
Конечно, я прочитал ваш диалог, перед тем как отвечать. В реакте это делается прямо в рендере, если что, потому что мало данные один раз вычислить и записать на маунте — они же могут обновиться и производные, очевидно, надо будет пересчитать. Может в этих ваших вью какая-то другая магия, но я не понимаю зачем вообще нужен сайд-эффект если операция полностью синхронная и чистая.

>Вот в прошлом треде неоднократно жаловались, что хуй его знает, где вообще делать асинхронные вещи в этих ваших редуксах. И что Абрамов молчит на эту тему, как партизан.
Дэн написал вместе с редаксом redux-thunk и выпустил по всем этому бесплатный курс на egghead, так что обвинять его в этом как-то совсем уж странно. В редаксе что-то асинхронное вообще можно только в одном месте делать (экшен криэйторе), так что странно, что такой вопрос вообще возникает.

>Алсо, в Реакте, насколько я помню, вообще вопросы лишних рендерингов стоят мощно, как конский хуй от конского же возбудителя.
Не знаю, у меня не стоят. Если у тебя с этим были проблемы, могу посоветовать пару приемов.
Аноним 06/12/20 Вск 01:20:41 1873906396
>>1873893
Там "сайд-эффект" (если это можно так назвать) был для кеширования вызова метода, путём записи результата в реактивную переменную в data.
После первого ответа (>>1873260) речь уже была о том, как без этого обойтись.

Вообще, проблема там совершенно типичная для фронтенда:
У тебя есть голые данные с бека.
Тебе надо к каждому элементу привязать (вычисляемые) свойства, влияющие на его отображение и работу с ним в UI.
Простейший пример - выбор строк в таблице, например, товаров.
Нужно свойство selected для каждого товара, привязанное к чекбоксу, но, чтобы и программно выбирать можно было.

Но, конкретно та проблема с color в реакте вообше не встала бы, т.к. рендеринг делается не по шаблону, а в коде. В vue тоже так можно (через render-функцию), но это нетипично, и требует прикручивания JSX/TSX, иначе неудобно.
Аноним 06/12/20 Вск 01:29:18 1873909397
Кто-нибудь по-серьёзному пользовался Strapi? Как оно?
В инете попадаются статейки за 2019 год, где пишут, что довольно удобная вещь в качестве headless CMS, но ещё попадаются баги. Как сейчас с этим дела обстоят?
Аноним 06/12/20 Вск 05:52:55 1874000398
> outatimed7.000webhostapp.com
Наговнокодил свой первый to do list на vue, еще никогда собой так не гордился
Аноним 06/12/20 Вск 07:26:11 1874014399
>>1873804
>веб-макака не может вырваться из своего манямирка в котором типизация усложняет, а не облегчает

Аноним 06/12/20 Вск 07:31:07 1874016400
15855935722820.png 21Кб, 626x265
626x265
>>1874000
Гордишься тем что ты криворукая макака, которая срёт себе в штаны даже делая тудушку?
Аноним 06/12/20 Вск 07:41:34 1874023401
>>1874000
Найс туду ЛИСТ без ul/ol.
Аноним 06/12/20 Вск 07:46:58 1874025402
vue-todo.png 4Кб, 599x138
599x138
>>1874000
Ну и шрефты у добавляемого элемента отличные от начальных.
Аноним 06/12/20 Вск 08:00:26 1874029403
>>1874023
>Найс туду ЛИСТ без ul/ol.
Зачем они нужны? Я понимаю что HTML это семантика и все такое, но постоянно выключать стиль и убирать отступы заебывает.
Аноним 06/12/20 Вск 08:38:56 1874041404
>>1874029
Не пробовал на базовом элементе отключать стиль и отступы?
Аноним 06/12/20 Вск 08:39:41 1874042405
>>1874029
У тебя кстати в туду листе нет никакой возможности отметить действие как выполненное
Аноним 06/12/20 Вск 11:40:11 1874088406
Колупаююсь в реакте. И вот такая проблема в главном App я выстраиваю роутинги:
<Route exact path="/users">
<Users users={this.state.users}></Users>
</Route>
<Route exact path="/users/:id">
<ShowUser/>
</Route>
Когда захожу на страницу пользователей то все загружается корректно и один раз, а когда захожу на страницу определенного юзера, тогда у меня компонент вызывается бесконечное количество раз. В чем мб проблема? Юзера т.е. информацию о нем при этом корректно отображает
Аноним 06/12/20 Вск 11:58:23 1874108407
>>1874088
А вне роута нормально работает? Возможно что ошибка в самом компоненте ShowUser, которые вызывает бесконечный луп ререндеров.
Аноним 06/12/20 Вск 12:13:25 1874114408
image.png 29Кб, 530x305
530x305
>>1874108
что значит "вне роута"? то есть когда я не по линку с /users перехожу а напрямую ?
>ошибка в самом компоненте
а че в нем такого может быть? пик прилагаю.
Аноним 06/12/20 Вск 12:24:37 1874118409
>>1874114
Вопрос #4: когда вызывается useEffect?
Аноним 06/12/20 Вск 12:44:21 1874133410
>>1874114
Ну да, как и я говорил, бесконечный луп ререндеров. Иди читай как пользоваться useEffect.
Аноним 06/12/20 Вск 13:44:01 1874191411
image.png 22Кб, 868x323
868x323
>>1874025
>>1874016
Завтыкал что таски могут вылазить за верстку. Как лучше сделать перенос?
Мне в голову приходит только grid-template-colums: 2% auto 2%

>>1874016
>Гордишься тем что ты криворукая макака
Чё такой злой, дядь, я почитал документацию vue и посмотрел как сделана тудушка у них, дошел до момента на пикрелейтед и понял что нихуя не понял. Пришлось делать как могу.
Может я тупой скорее всего, но у них в документации проскакивают вещи, которые не упоминались ранее, например почти в самом начале был момент с watch, хотя его перед этим тоже не объясняли, а я ж не вундеркинд нахуй.
Аноним 06/12/20 Вск 13:51:11 1874195412
>>1874118
>useEffect?
Вот этот ублюдк - единственная причиная по которой я не перекатился в хуки, видимо я еще не постиг дзен хуков, но это просто лютый ебанный пиздец каждый раз, не указал завимость - жди засранный лог. Указал - улетел в бесконечность. Понятно что код говно, но в этом смысле в классами гораздо проще работать. Указал условия для ререндера, и всё
Аноним 06/12/20 Вск 13:59:35 1874198413
>>1874133
Луп из тысячи залуп.
Enjoy your React.
Аноним 06/12/20 Вск 14:08:08 1874205414
>>1874195
Так пока не перекатишься - не постигнешь дзен. Думай эффектами (тм).
Аноним 06/12/20 Вск 15:21:22 1874254415
>>1874191
Перенос это `word-break`. Сейчас бы сетку пихать для переносов, вообще охуеть, да она бы и не помогла, так как количество элементов не изменяется.
Аноним 06/12/20 Вск 15:36:15 1874262416
>>1874191
>дошел до момента на пикрелейтед и понял что нихуя не понял.
А чего именно ты не понял?
Там выдаётся событие (emit event = выдать событие).
Событие - это способ сообщить родительскому компоненту, что нужно что-то сделать. В данном случае - удалить этот item. Событие имеет тип (название), в данном случае - 'remove'.
В родительском компоненте, соответственно - обработчик @remove (т.е. at-remove, т.е. при-удалить).
В событии ещё могут быть параметры, но, в данном случае - это не нужно, родитель и так знает, какой это item.

Аноним 06/12/20 Вск 16:00:01 1874281417
>>1874262
>>1874254
Спасибо аноны

Как средствами Vue реализовать этот ванильный js скрипт https://jsfiddle.net/qv7gxtbf/21/ ?
Не понимаю почему в Vue событие по клику вносит изменение в html код, а по интервалу - хуй.
Аноним 06/12/20 Вск 16:54:01 1874320418
>>1874281
Если только фон покрасить, то вообще жс не нужен, делается через `@keyframes` в CSS и там же можно задавать длительность и тип цикла. Плюс выглядит намного плавнее.
https://jsfiddle.net/9yotaqLk/1/
Аноним 06/12/20 Вск 17:02:12 1874329419
>>1874191
Так надо было в на ангуляре делать, там такой хуерги нет, всё ясно и понятно.
Аноним 06/12/20 Вск 17:48:07 1874401420
>>1874329
>Так надо было в на ангуляре делать, там такой хуерги нет, всё ясно и понятно.
Так все в один голос заявляли, что Vue лучшее решение для новичка, особенно тупого.
Аноним 06/12/20 Вск 18:25:37 1874457421
>>1874401
Они просто ничего кроме вуе/реакта не пробовали и живут слухами.
Аноним 06/12/20 Вск 18:41:55 1874489422
>>1874401
Всё правильно тебе заявляли.
Но, "лучшее" - не значит "бесплатное" или "вообще не требующее усилий".
Аноним 06/12/20 Вск 18:49:22 1874500423
>>1874281
>Не понимаю почему в Vue ...
Vue - реактивный фреймворк.
Т.е. шаблон рендерится из модели (данных), и автоматически обновляется при изменении данных.

Т.е. класс - это должна быть переменная в data, привязанная к нужному элементу как :class=... Меняй её, и всё будет меняться.

Менять данные ты можешь как изнутри, так и снаружи, из внешнего скрипта, если это нужно. Для этого нужна ссылка на vue-компонент, т.е. при создании надо присвоить результат переменной.

Как ты пытаешься задавать интервал?

И да, для анимации в Vue есть специальные средства, но, лучше бы ты, для начала, разобрался с основами.


Аноним 06/12/20 Вск 19:57:57 1874549424
Докер заменит виртуалку?
Аноним 06/12/20 Вск 20:03:42 1874550425
image.png 56Кб, 661x841
661x841
image.png 56Кб, 663x833
663x833
>>1874500
Пик1, нажимаю на кнопку, жду 3 секунды и нихуя, класс из data не прилетает в свойства класса.
Пик2, нажимаю на кнопку без таймаута и все работает.
Аноним 06/12/20 Вск 20:09:34 1874553426
>>1874550
>Пик1
this куда указывает?
Аноним 06/12/20 Вск 20:10:39 1874555427
Аноним 06/12/20 Вск 21:06:24 1874605428
>>1874550
Тебе уже сказали, но я добавлю пиздюлей, лол:
У тебя там function() {...}. Оно имеет свой this.
Сделай вместо этого () => {...}.

Либо, если бы ты писал без бабеля-хуябеля, а прямо в html, то, перед вызовом setTimeout(...) надо сделать:
const self = this;
А потом в function() сделать self.testDivClass = ...

Можно и сейчас так сделать, но, лучше стрелку.

Аноним 06/12/20 Вск 21:15:08 1874615429
image.png 290Кб, 1920x1080
1920x1080
>>1874553
>this куда указывает?
windows

this.testDivClass = "first" судя по console.log работает, просто оно почему то не попадает из data в template, не обновляется класс.
Аноним 06/12/20 Вск 21:17:09 1874617430
>>1874615
>windows
Ну во первых window, во вторых тебе нужен не он.
Аноним 06/12/20 Вск 21:24:52 1874618431
>>1874133
так если я его убираю и оставляю голую функцию то все равно оставляется луп из рендеров
Аноним 06/12/20 Вск 21:25:33 1874619432
>>1870885 (OP)
Насколько длинными могут быть название функций? По стилю, как принято? Если допустим у меня для нормального описания выходит 45 символов это норм?
Аноним 06/12/20 Вск 21:29:56 1874621433
>>1874617
>во вторых тебе нужен не он.
Таки да, истинный testDivClass что в data по прежнему null. А как к нему достать?
Аноним 06/12/20 Вск 21:31:28 1874623434
>>1874621
>>1874605
Тебе уже написали, что именно ты не понял?
Аноним 06/12/20 Вск 21:36:25 1874628435
>>1874619
Нет, уебывай в жаботред.
Аноним 06/12/20 Вск 21:39:08 1874631436
photo2019-10-31[...].jpg 119Кб, 700x1048
700x1048
photo2019-10-31[...].jpg 118Кб, 717x1280
717x1280
Аноним 06/12/20 Вск 21:41:40 1874634437
Безымянный.jpg 98Кб, 645x1108
645x1108
Или если более конкретно как бы вы назвали функцию, которая получает на входе блок метода формата openApi а возвращает объект в формате Json Schema, блока содержащего параметры запроса.
Аноним 06/12/20 Вск 21:53:01 1874639438
>>1874628
Ну так не удивительно, жаба же энтерпрайз стандарт, пишут сложные программы, а JS так, для макак. Визитку сделать для сайта, запрос в базу сделать, так что можно просто функцию x назвать, все равно это говно потом кому то переписывать
Аноним 06/12/20 Вск 21:55:02 1874640439
>>1874634
Ну, например:
openApiToJsonSchema(a)
makeJsonSchema(oapiDef)
toJsonSchema(oapiDef)
И так далее
Можно сокращать oapi, jssch.

Я бы выбрал вариант 2 или 3, т.к. название параметра является говорящим, и нет необходимости удлинять название функции.
Аноним 06/12/20 Вск 21:57:19 1874642440
>>1874640
Только будут еще функции для парсинга тела запроса, параметров в path и возможно в header, нужно конкретизировать.
Аноним 06/12/20 Вск 22:00:12 1874645441
>>1874640
makeQueryJSchema тогда так назову, спасибо за подсказку.
Аноним 06/12/20 Вск 22:12:07 1874658442
Аноним 06/12/20 Вск 23:44:05 1874692443
>>1874195
Просто надо сначала читать доку и статьи, а потом начинать кодить. useEffect - простой.
Аноним 07/12/20 Пнд 07:27:02 1874771444
image.png 362Кб, 600x568
600x568
>>1874692
>Просто надо сначала читать доку и статьи, а потом начинать кодить
Аноним 07/12/20 Пнд 07:28:35 1874772445
>>1874692
>useEffect - простой
Вообще конечно добавлю, что абсолютно всё кажется простым, после того как ты поймешь как оно работает. Я вот сейчас даже вспомнить не могу, почему у меня возникали какие-то проблемы в прошлом, над которыми я бился по нескольку дней подряд
Аноним 07/12/20 Пнд 09:04:28 1874796446
>>1874772
Что, ксли я теье скажу, бывает так, когда вообще не возникает таких проблем в фундаментальных вопросах, над которыми ты бьешься несколько дней.
Аноним 07/12/20 Пнд 09:40:57 1874801447
image.png 28Кб, 200x203
200x203
>>1874796
>проблем в фундаментальных вопросах
Я не понял к чему ты это вообще? Что язык лучше учить и знать хорошо, чем не учить и знать плохо? Совет из разряда - выучи наизусть весь CS, всю доку Js, всю доку реакта, все существующие паттерны, алгоритмы, тонкости, жирности и имей опыт работы с этим более 10 лет и всё. Как будто я блядь и без тебя этого не знаю
Аноним 07/12/20 Пнд 09:58:55 1874813448
>>1874796
Динамикоговноед не палится.
Аноним 07/12/20 Пнд 10:14:38 1874823449
Короче такая ситуация, есть компонент который отрисовывает список в корзине. Тот же самый компонент отрисовывает списки товаров, которые отображаются на странице в поиске. Как сделать так, чтобы только когда список товаров отрисовывался в корзине, добавлялись кнопки "удалить" на каждом товаре? Есть ли какая-то возможность менять существующий компонент? Либо просто банально добавить внутрь самого компоненты отрисовщика пропс, который бы принимал снаружи что-то вроде inBasket и тогда уже добавлял кнопку? Какой вариант более правильный? Знаю что есть cloneElement но я до конца не могу понять как он работает, из доки пример его использования не совсем понятен
Аноним 07/12/20 Пнд 10:33:54 1874838450
>>1874823
Фреймворк-то какой у тебя?
Аноним 07/12/20 Пнд 10:35:58 1874839451
>>1874838
Блжат, Реукт, я почему-то забыл об этом написать
Аноним 07/12/20 Пнд 10:48:52 1874844452
>>1874823
Господи Иисусе, зачем cloneElement? Добавь проп isInBasket.
Аноним 07/12/20 Пнд 10:54:10 1874845453
>>1874844
Ок, думал просто может есть возможность взять текущий компонент и добавить в него новые какие-то возможности, чтобы у меня был один исходный компонент, но который в ненужных местах был по логике проще, ну ок, сделаю так
Аноним 07/12/20 Пнд 10:57:43 1874849454
>>1874845
Такая возможность, разумеется, есть и даже не одна, но зачем усложнять?
Аноним 07/12/20 Пнд 10:59:24 1874852455
>>1874849
Можешь сказать на будущее, в какую сторону гуглить?
Аноним 07/12/20 Пнд 11:20:52 1874861456
>>1874852
Если есть лишние 180 баксов, то в сторону epic react. Какого-то другого места, где были бы собраны и хорошо описаны продвинутые паттерны я не знаю. Твою задачу можно решить кучей разных путей: через передачу ноды в пропсах, через композицию, через clone elements и еще кучей более извращенных.
Аноним 07/12/20 Пнд 15:46:55 1874967457
>>1870885 (OP)
Анон, подскажи, пожалуйста, бесплатную IDE под Angular. Советуют Atom, но это же ёбаное убожество, даже после this. не работает автоподстановка. Ну и ошибки не подчеркивает.
Аноним 07/12/20 Пнд 15:53:24 1874972458
Аноним 07/12/20 Пнд 15:53:29 1874973459
>>1874967
Качай вебшторм, активируй триал на 30 дней. Потом гугли webstorm infinite trial / reset webstorm trial, что-то такое. Вуаля, у тебя бесплатный вебшторм. Он самый топовый для Ангуляра.

Ну или как вариант vs code, но там надо накатывать плагины, такое себе...
Аноним 07/12/20 Пнд 16:31:25 1874999460
>>1874967
В виме пиши, нахуй тебе иде? Ошибки линтер и тесты^W рантайм покажут.
Аноним 07/12/20 Пнд 16:34:05 1875001461
attempt.png 23Кб, 581x717
581x717
Подскажите снова глупому, что я делаю не так, почему не работает мой clearInterval?
Аноним 07/12/20 Пнд 16:48:23 1875011462
>>1875001
На вид все ок вроде. Только ты все равно чем-то не тем занят, гейм луп должен через requestAnimationFrame работать и учитывать дельту времени в анимациях. Гугли как его делать на JS.
Аноним 07/12/20 Пнд 16:51:48 1875017463
>>1875001
С чего ты взял, что не работает?
Аноним 07/12/20 Пнд 17:05:41 1875023464
>>1875001
ClearInterval не меняет айдишник таймера в переменной.
Аноним 07/12/20 Пнд 17:07:20 1875024465
>>1875001
В Angular обычно не юзают setInterval. Лучше через RxJs создай timer и работай с ним.
Аноним 07/12/20 Пнд 17:09:47 1875026466
>>1870885 (OP)
Джвач, а почему в реакте перестают использовать class-based components?

class olol extends Component
Аноним 07/12/20 Пнд 17:09:56 1875027467
Аноним 07/12/20 Пнд 17:13:57 1875031468
>>1875026
Мелочь удобнее на хуках делать. Я что-то нетривиальное по старинке предпочитаю делать.
Аноним 07/12/20 Пнд 17:16:44 1875032469
>>1875026
Функциональные удобнее и лаконичнее. А useEffect так вообще прекрасный швейцарский нож — заменяет сразу пачку методов жизненного цикла и убирает кучу выражений типа if (props.foo !== prevProps.foo) { ... }.
Аноним 07/12/20 Пнд 17:36:19 1875038470
>>1875026
Тому шо они не минимифицируются.
Аноним 07/12/20 Пнд 18:00:40 1875051471
Я тут сделал себе приложение небольшое на реакте для портфолио, заодно учился. В общем подключается к tmdb апишке я вообще не ебал, что есть курсы с примером этой на апишке, делал сам, мне об этом на собесе сказали, лол, в нем выводятся популярные фильмы, есть регистрация и логин, есть возможность добавлять фильмы в избранное с общей страницы поиска и если внутри перейти к фильму то изнутри тоже можно добавить, после добавления кнопка меняет внешний вид, все это сохраняется в базе firebase, даже обновляется все синхронно если с телефона зайти и с компа одновременно. Все сделано вроде бы вполне грамотно, с редаксом, роутером и рабочими ссылками, с переиспользованием компонентов, с HOC и всеми такими штуками, пагинацией и даже поиск работает вживую, обновляя результаты каждую секунду при вводе, еще использован бутстрап и material ui ну тут я скорее учился просто, можно было только на последнем делать. Собственнов вопрос - это совсем днищенская ссанина, или норм для порфолио? С таким вообще можно куда-то соваться? Выложил на хероку, мог бы конечно скинуть показать, чтобы вы потыкали, но мне стыдно пиздец.

Дальше конечно я сейчас хочу все основы по чистому ЖСу задрочить, а то обосрался на собесе на этой почве. Но вот само портфолио для джуна, что там прям такого крутого должно быть? Подразумевается ведь, что ты не должен вроде бы совсем лютое что-то там делать? Просто я даже на это потратил примерно 3 недели, занимался по 9-12 часов в день, вообще без выходных, ну много хуйни переделывал, когда понимал что не совсем элегантно получилось и если что-то новое пилить, опять времени дохуя уйдет, лучше вместо этого голый Js потеребить?
Аноним 07/12/20 Пнд 18:01:22 1875052472
>>1875026
> почему в реакте перестают использовать

Чего только не перестали в реакте использовать
Аноним 07/12/20 Пнд 18:02:03 1875053473
image.png 206Кб, 500x298
500x298
>>1875051
Пиздец уже пишу как шиз, надо пробздеться немного, сильно уж не бейте
Аноним 07/12/20 Пнд 18:24:58 1875072474
>>1874967
В торрентах недорого покупается WebStorm.
Это топовая иде для веба.
Ангуляр - сложная вещь, и лучше иметь нормальную иде, а не хуиту типа VSCode.

>>1874999
Чувак, те, кто может писать в vim, не задают таких вопросов.
И ангуляр лучше таки писать в иде.
Да и вообще современный веб.
Аноним 07/12/20 Пнд 18:27:55 1875074475
>>1875072
Лучше всего писать в вебшторме используя горячие клавиши вима+все возможности шторма
Аноним 07/12/20 Пнд 19:56:32 1875128476
Как правильно

const a = {
a: 1,
doSmth() {}
}

или

const a = class {
constructor() {
this.a = 1;
}
doSmth() {}
}
Аноним 07/12/20 Пнд 19:57:41 1875130477
>>1875128
>const a = class {

>const a = new class {

Быстрая фиксация.
Аноним 07/12/20 Пнд 20:02:25 1875139478
>>1875130
Если ты не знаешь, зачем тебе класс, скорее всего он тебе не нужен.
Аноним 07/12/20 Пнд 20:03:47 1875141479
>>1875128
>>1875130
Можешь забыть про классы пока пишешь на JS. Вспомнишь о них когда будешь писать на TS, если вообще будешь.
Аноним 07/12/20 Пнд 20:14:51 1875148480
>>1875139
Бля. Не помню где прочитал, что нужно не this.doSmth() писать, а нью класс делать, будто бы так правильнее.
Аноним 07/12/20 Пнд 20:15:25 1875149481
>>1875128
Разница - она не здесь, а дальше.
Когда у тебя есть класс - ты можешь потом создавать много его экземпляров.
В жс (фронтенде) такое очень редко нужно.
Если тебе нужен всего один объект - то это 1-й вариант.
Аноним 07/12/20 Пнд 20:21:39 1875159482
>>1875141
А че на тс обязательно наяривать на классах?
Аноним 07/12/20 Пнд 20:31:48 1875169483
>>1875159
Совсем не обязательно.
Он - ангулярщик, скорее всего.

В TS - важнее интерфейсы.
А реализацией может быть любой объект, хоть литерал (как вариант 1 выше), хоть экземпляр класса.
Аноним 07/12/20 Пнд 20:34:21 1875173484
>>1875130
>new class ...
Бля, я этого сразу не заметил.
Вот такую хуйню точно никогда не надо делать - это не просто бессмыссленно, это лютый антипаттерн.
Класс - отдельно, создание экземпляров (нескольких!) - отдельно.

>>1875149 - кун.
Аноним 07/12/20 Пнд 20:49:41 1875193485
>>1875159
В TS они обретают смысл, когда тебе нужно описать какую-то сущность и гарантировать что в коде ты не будешь обращаться к методам/полям которых у этой сущности нет, а также типизировать методы и функции, что позволит определять их предназначение без необходимости чтения кода тела функции/метода.
Аноним 07/12/20 Пнд 20:58:29 1875204486
изображение.png 13Кб, 521x325
521x325
Я правильно реализовал? Можете подсказать ошибки может в названии, расположении переменных, в стиле кода.
Мне нужно чтобы совершенствоваться. Помогите.
Аноним 07/12/20 Пнд 21:01:44 1875211487
Аноним 07/12/20 Пнд 21:09:41 1875220488
>>1875204
voteIds -> voteTimers

pushForThirtySec - очень плохо.
К-во секунд должно передаваться как параметр.
И, ни в коем случае нельзя делать подобное частью названия, это пиздец вообще.

Слово push имеет вполне определённый смысл. В коде у тебя ничего подобного не происходит.

Вообще смысл того, что ты хочешь сделать, не очень понятен.

Аноним 07/12/20 Пнд 21:42:15 1875273489
Дико бесят фрейворки элементов (как ряктовые, так вуйные) из-за уродства элементов. Стоит писать свой или стилизовать готовый?
Аноним 07/12/20 Пнд 22:09:47 1875304490
>>1875273
Библиотеки, ты хотел сказать?
Дико уёбищный material design, который нормально выгляди только на мобилах и больше ни для чего не годен?
Понимаю.

>Стоит писать свой или стилизовать готовый?
Смотря какова цель. Можно даже совместить.
Аноним 07/12/20 Пнд 22:18:10 1875314491
>>1875273
Пиши свой, все готовые хуйня — то стилизуются косоебо, то работают криво.

написал уже штук шесть для разных проектов
Аноним 07/12/20 Пнд 22:41:41 1875339492
image.png 18Кб, 477x277
477x277
image.png 15Кб, 631x162
631x162
Имею код с первого пика. Пытаюсь установить данные которые прилетают я точно знаю что они не пустые. В консоли хуйня со второго пика. почему он мне по нормальному устанавливать не хочет ?
Аноним 07/12/20 Пнд 22:57:17 1875348493
>>1875339
Все там нормально устанавливается. В консоли пустой массив потому что замыкания в JS так работают. Реакт же не мутирует products.
Аноним 07/12/20 Пнд 23:03:05 1875350494
>>1875339
Мне кажется, так нельзя смотреть products.
Попробуй сделать setInterval(()=> console.log(products), 0), например.
Аноним 07/12/20 Пнд 23:26:43 1875367495
>>1875348
>>1875350
а почему тогда на другой странице у меня спокойно нормально работало? такой момент интересует.
Аноним 08/12/20 Втр 00:00:04 1875385496
>>1875367
Что блин значит «нормально»? С моей точки зрения то как оно у тебя работает на скриншотах это и есть нормально — в products был пустой массив и выводится пустой массив. Стейт в Реакте иммутабелен, я не понимаю чего от него ждешь. Поставь console.log прямо в компоненте, и увидишь, что триггернулся рендер с новыми данными. Что у тебя там в другом компоненте происходило я понятия не имею.
Аноним 08/12/20 Втр 00:47:59 1875412497
пацаны, где тред по реакту?
Аноним 08/12/20 Втр 00:58:29 1875417498
>>1875412
В пизде. Пошел на хуй.
Аноним 08/12/20 Втр 05:49:49 1875505499
>>1875339
Не ебу что ты там делаешь,, но скорее всего у тебя получение этих данных не происходит мгновенно, а после обновления они у тебя уже не обновляются, потому что ты пустой массив у юзэффекта
Аноним 08/12/20 Втр 07:08:24 1875531500
>>1875339
Потому что setState() асинхронный, иди читай доку реакта от корки до корки.
Аноним 08/12/20 Втр 07:13:28 1875532501
>>1875531
Зачем читать? Это же не роман, нужно наизусть выучить
Аноним 08/12/20 Втр 09:19:58 1875556502
hook.png 14Кб, 657x133
657x133
>>1875531
>setState() асинхронный
Одна история охуитильней другой.
Аноним 08/12/20 Втр 09:58:58 1875572503
Аноним 08/12/20 Втр 10:35:01 1875582504
>>1875531
И изменение стейта и сам рендер очень даже синхронные, в чем легко убедиться, вызывав в эффекте последовательно setState и лог в setTimeout с 0. Коллбэк в setTimeout приедет в консоль уже после рендера с новыми данными.
Аноним 08/12/20 Втр 10:35:51 1875584505
Аноним 08/12/20 Втр 10:36:38 1875585506
>>1875531
Вот и вся суть всех этих доко-спекочитальщиков
Аноним 08/12/20 Втр 11:58:18 1875629507
Как найти все объекты созданные классом?

Сразу в статик написать allobjects и добавлять туда при создании?
Аноним 08/12/20 Втр 12:06:26 1875633508
>>1875629
Создаёшь абстрактную фабрику классов и в неё скидываешь инфу о созданных объектах каждого класса.
Аноним 08/12/20 Втр 12:12:22 1875635509
>>1875633
Мне нужно ресетнуть все объекты созданные определённым классом.

Я вот думаю:

let a = new MyClass();
MyClass.allobjects.push(a);

И чтобы ресетнуть, нужно будет просто пройтись по массиву. Хуня?
Аноним 08/12/20 Втр 12:45:17 1875654510
заспредь
Аноним 08/12/20 Втр 12:59:07 1875666511
>>1875629
>Сразу в статик написать allobjects и добавлять туда при создании?
И сразу скажи досвидос памяти. Тут нужен WeakSet

>>1875635
> let a = new MyClass();
> MyClass.allobjects.push(a)
Без фабрики заебешься после каждого new делать push, где-нибудь обязательно забудешь это сделать, а когда надо будет поменять поведение так же заебешься везде менять
Аноним 08/12/20 Втр 13:19:40 1875683512
>>1875666
>И сразу скажи досвидос памяти.
Почему? Там же только ссылки.

>Тут нужен WeakSet
Как это поможет? По нему даже итерироваться нельзя.
Аноним 08/12/20 Втр 13:24:49 1875686513
Аноним 08/12/20 Втр 14:57:07 1875744514
>>1875585
Чувак, он имел в виду, очевидно, то, что эффект от его выполнения будет виден после обработки всей текущей очереди событий.
Т.е., чтобы увидеть результат, надо делать setTimeout(..., 0);
Аноним 08/12/20 Втр 15:11:30 1875763515
>>1875629
Создаешь статичное поле-массив у этого класса, в конструкторе класса пишешь MyClass.StaticArrayOfInstances.push(this);
В дополнении к этому создаешь статичный метод ResetInstances который будет делать что то вроде: MyClass.StaticArrayOfInstances.forEach(e=>e.reset());
Аноним 08/12/20 Втр 15:17:27 1875774516
>>1875763
Что только не велосипедят, лишь бы EventEmitter не использовать
Аноним 08/12/20 Втр 16:16:23 1875849517
>>1875763
Так конструктор выше делается, чем объявляется статическая переменная.
Аноним 08/12/20 Втр 17:48:39 1875958518
снимок.png 36Кб, 1288x1485
1288x1485
>>1870885 (OP)
Помогите новичку в React, пожалуйста. Есть родительский компонент, который содержит несколько дочерних компонентов-форм, которые можно добавлять и удалять по нажатию кнопки в родительском компоненте. Изначально количество компонентов зависит от того, какие данные пришлет сервер. В родительском компоненте есть еще кнопка "Отправить", по нажатию которой нужно забрать данные из всех дочерних форм и отправить на сервер.
Как получить доступ к данным в дочерних формах из родительского компонента? Я хотел создать для каждого дочернего компонента стейт в родительском и передать его в пропсах, но React не позволяет использовать useState в цикле.
Аноним 08/12/20 Втр 22:09:00 1876174519
Аноним 09/12/20 Срд 04:34:08 1876303520
>>1875556
Ну и? Функция то не синхронно обновляет стейт, а ставит в очередь, пиздец дожили фронтендеры читать разучились.
Аноним 09/12/20 Срд 04:41:32 1876304521
>>1875582
>И изменение стейта и сам рендер очень даже синхронные
>в чем можно убедится вызвав асинхронную функцию которая поставит колбек сеттаймаута в конец очереди эвентлупа
Чел, ты сам себе противоречишь, иди читай что такое евент луп и что такое асинхнонные действия и синхронные.
Аноним 09/12/20 Срд 06:35:27 1876313522
>>1875958
А зачем тебе useState в цикле если ты можешь в главном компоненте динамически создать объект по данным с бека в useEffect и уже его положить в useState? Редукс можно использовать конечно если у тебя приложуха немаленькая, но если у тебя в приложении ничего кроме этой формы нет то никакой редукс там не нужен, можно вполне обойтись пропсами.
Аноним 09/12/20 Срд 20:42:43 1876904523
А куда из шапки делся learn.javascript.ru? Неужто осознали что он говно?
Аноним 10/12/20 Чтв 00:29:53 1877043524
>>1870885 (OP)
Есть какой-нибудь список задач на UI на которых можно реакт тренировать? А то чёт я кроме todo листа никаких идей не нахожу.
Аноним 10/12/20 Чтв 00:45:43 1877049525
>>1876904
Лол, лучшее, что есть в ру сегменте
Аноним 10/12/20 Чтв 20:44:24 1877584526
>>1870885 (OP)
Бля, на проекте подрузили js abac (Attribute Based Access Control) типо так пизже, но у меня уже глаза вытекают, что это за хрень и нафига нужна? Без нее ж нормально жили
Аноним 11/12/20 Птн 03:01:38 1877810527
>>1875417
быстро порвался, безкомпонентный
Аноним 11/12/20 Птн 15:21:01 1878113528
>>1870885 (OP)
Возможно ли, на скриптах, реализовать минимальный функционал переводчика веб-страниц, в виде какого-нибудь расширения, чтобы просто задать там дефолтный язык - русский, и не пихать каждый раз копипасты в тренслейт гуголь ком?
Чтобы оно переводило абы-как, а что не переводится (например код) - оставляло как есть.
Аноним 11/12/20 Птн 15:22:08 1878115529
>>1878113
Да, да. И главное, чтобы база для перевода и автозамены - хранилась локально, а не чтобы в сеть куда-то утекала инфа.
Аноним 12/12/20 Суб 00:18:07 1878515530
mobx
Тугой Орех 12/12/20 Суб 22:21:19 1878970531
Есть ли вариант заменить всю коллекцию в базе данных одним HTML реквестом? Проходится по каждому элементу с помощью PUT пздец как влом, хотелось бы что-то типа axios.PUT(localhost:8080/notes, newNotes) но мне выдает 404.
Аноним 13/12/20 Вск 16:27:44 1879354532
2.PNG 103Кб, 1047x1115
1047x1115
Как это сделать без юз стейта?
А то реакт ругается, когда я вызываю эту функцию...
Мол инфинити луп, много ререндеров
Аноним 13/12/20 Вск 22:57:39 1879696533
Аноны, подскажите, мне нужен какой нибудь небольшой клиентский шаблонизатор для JS. Что бы разные данные, которые AJAX запрос возвращает отрисовывать удобно.
Аноним 13/12/20 Вск 23:09:44 1879710534
Mobx
Аноним 14/12/20 Пнд 01:23:58 1879891535
IMG3494.PNG 191Кб, 750x1334
750x1334
IMG3495.PNG 2680Кб, 750x1334
750x1334
Подскажет кто-нибудь по верстке? Я в этом совсем не специалист.
Наверстал галлерею изображений - аж самому нравится.
Я не умею в адаптивную верстку и поэтому поставил бутстрап. Все красиво, но галлерея пошла по пизде, вместо красивой секти, которая даже на телефонах смотрится нормально, там одно изображение на весь экран. Можно ли как-то отменить правило коллапса бутстрапа для контейнера и его потомков?
Первый пик - без бутстрапа.
Второй - с ним.
Вот и хотелось бы как-то отменить ресайз для контейнера. Я второй раз так наверстать не смогу прост.
Аноним 14/12/20 Пнд 04:29:40 1879979536
Господа жсобояре, мне лень идти регистрироваться на стаковерфлове, поэтому печатаю здесь.

Пишу на TypeScript и у меня есть класс с большим количеством перегруженных методов.
Декларации перегрузок в полтора экрана меня заебали, и я хочу вынести их куда-нибудь в другое место, а в классе оставить только имплементацию, и разумеется, хочу я это сделать так, чтобы все перегрузки были видны и проверялись компилятором (иначе зачем перегрузки нужны, собственно).

Вопрос таков: могу ли я это как-нибудь сделать, и если могу, то как?

Буду рад любой помощи
Аноним 14/12/20 Пнд 12:58:14 1880159537
В стандартной библиотеке (или как там у вас это называется) есть структура данных стек? Или его всегда нужно самому пилить на массиве? Я просто с плюсов

Аноним 14/12/20 Пнд 13:10:17 1880170538
>>1880159
Cори, я не знал, что у массива есть push/pop
Аноним 14/12/20 Пнд 15:20:14 1880241539
Ананас. Поясни на пальцах плс. Какая нахуй разница между интерфейсом HTMLElement и Node? Я квериселектором получаю элемент. Квериселектор не может вернуть конкретно только элемент, подходящий к интерфейсу Node (только если так HTMLElement Node | null, а так не подходит следующей функции) . Дальше мне этот элемент нужно вкинуть в функцию, которая ожидает элемент, подходящий только под интерфейс Node. Как это соединить вместе? Может хуёво объяснил, но я только недавно начал ковырять тс.
Аноним 14/12/20 Пнд 15:27:08 1880244540
>>1880241
Дорогой, дневник.
Вопрос, снимается. Нужна была проверка, что в переменной не null. Алсо, почитал доку HTMLElement интерфейс наследует интерфейс Element, а тот наследует Node.
Аноним 15/12/20 Втр 01:25:23 1880812541
Парни, как в юнит тестах проверить что метод из дочернего класса вызвал родительский метод внутри себя с таким же самым названием (через super) ?
Аноним 15/12/20 Втр 02:24:40 1880836542
image.png 37Кб, 865x458
865x458
Кто может объяснить, почему объект window так странно работает?

На скриншоте описал вопрос. Извините за больше чем пару строк кода.

JSBin: https://jsbin.com/futoramexe/edit?js,console
Аноним 15/12/20 Втр 02:26:13 1880837543
>>1880836

Быстрофикс: Объект window это такой же объект как и объект b
Аноним 15/12/20 Втр 02:30:01 1880839544
>>1880836
>Кто может объяснить, почему объект window так странно работает?
Так любой скоуп работает
Аноним 15/12/20 Втр 09:42:42 1880943545
>>1870885 (OP)
Кому делать нехуй, но есть опыт, и время - могу предложить идею.

Наверняка, можно взять, короче,
и перепилить всю серверную часть этой вот наноборды:
https://github.com/nanoboard/nanoboard/releases
на pure JavaScript.

Полностью всю, или по большей части,
вынести всё возможное - на клиентскую сторону,
чтобы всё client-side работало, в браузере.

Парсинг, можно было бы реализовать, парся контейнеры, после конвертации PNG в dataURL.
Стеганографию, тоже можно было бы реализовать client-side,
с помощью async-функций или promise.
Базу данных, и контейнеры, можно было бы сохранять, используя FileSystem API,
с возможностью конвертации базы данных в JSON-формат,
с последующим сливом базы в JSON из браузера.

Если чо, то даже каптчу - можно нарезать, и в браузере, client-side юзать:
https://github.com/username1565/nanoboard-javascript-captcha

Всё равно, всё это вместе: серверная часть (локального сервера) + клиентская сторона (скрипты) -
всё это вместе, одна большая локальная - читалка нанопостов.
Почему бы не сделать её клинтской?

В общем, гляньте, посмотрите код, может всё-таки не всё можно перепилить, а может и всё. Бггыы.
Аноним 15/12/20 Втр 09:45:43 1880945546
>>1880943
Опционально, наверняка, серверную часть, можно было бы на Node.JS перепилить, но это уже на крайняк как-бы, если на клиенте нельзя сделать. Потому что такая зависимость как Node.JS это был бы огромный минус для cliet-side софтины, которую можно таскать в zip-архиве, на флешке.
Аноним 15/12/20 Втр 14:14:07 1881068547
photo2020-10-30[...].jpg 121Кб, 1072x949
1072x949
Вот вам джуновское задание. Решайте.
Аноним 15/12/20 Втр 15:24:10 1881099548
>>1881068
Сам получил, сам решай
Аноним 15/12/20 Втр 16:29:32 1881156549
mobx
Аноним 15/12/20 Втр 16:47:14 1881172550
Помогите, пажаламста, начинающему, который перелез и не понимает рекурсию от слова совсем.

Задание:

Разработать "чистую" функцию treeSum, которая получает массив, элементы которого могут быть числами или снова массивами, и так до любого уровня. Функция должна рассчитать и вернуть сумму всех числовых элементов массива со всех уровней. При написании функции не описывать каких-либо вложенных в неё функций. Проверить работу можно на следующем массиве (сумма 50):

[ 5, 7,
[ 4, [2], 8, [1, 3], 2],
[ 9, [] ],
1, 8
]

Заранее, пасиба любому неравнодушному.
Аноним 15/12/20 Втр 16:50:08 1881173551
>>1881172
Так и с чем тебе помочь? Ты хоть попытайся сам подумать, а там подскажем
Аноним 15/12/20 Втр 16:53:09 1881177552
>>1881173


Я вообще не вдупляю, как работает рекурсия. Терроризировал и препода, и видосы, и учебники. Вот прям максимально не укладывается в голову, хз. Хотя всё остальное отлично идёт.
Аноним 15/12/20 Втр 16:57:14 1881184553
>>1881177
В чём проблема из функции f вызвать функцию f, для какого-то "меньшего" аргумента?
Аноним 15/12/20 Втр 16:58:58 1881186554
>>1881184

То есть мне нужно просто создать "функцию в функции"?
Аноним 15/12/20 Втр 17:06:40 1881190555
Аноним 15/12/20 Втр 21:45:05 1881437556
>>1881177

Посмотри вот это: >>1871004 →
Но, как показало последующее обсуждение, для восприятия этой метафоры тоже нужно иметь некоторую базу, для тёти маши с улицы она не подходит.

Вот тебе ещё одна метафора рекурсивного алгоритма, из той же книги:
Рекурсия - это делегирование решения.
Т.е. ты не можешь решить задачу сам, потому, что она слишком большая для тебя.
Ты делегируешь решение части задачи своему другу.
Ты не должен думать, как он её решит - он решит, это точно.
Затем - смотришь, можешь ли ты её решить оставшуюся часть?
Нет - снова делегируешь кусочек другому приятелю.
И так далее, пока задача не станет достаточно маленькой, чтобы ты решил её (оставшийся кусочек) сам.
А потом ты собираешь у друзей решения всех кусочков, которые ты им делегировал, и получаешь полное решение задачи.

Подозреваю, что и эта метафора с нуля может не дойти.
Аноним 15/12/20 Втр 22:11:57 1881461557
>>1881186
Вот тебе рекурсивная сумма массива.
С хвостовой рекурсией.
Смотри и вывод в консоль тоже.
https://jsfiddle.net/hgznmycj/
Аноним 15/12/20 Втр 22:13:52 1881467558
>>1881461
>С хвостовой рекурсией.
В js её нет, но по идее норм.

А мутировать массивы - это пиздец
Аноним 15/12/20 Втр 22:21:54 1881478559
>>1881461
Чувак, хвостовая рекурсия просто есть или нет.
Она не в js, она сама по себе.
А то, чего нет в js - называется tail call elimination (tail call optimisation).

А мутация там - для наглядности и простоты кода.
Это пример.
Аноним 15/12/20 Втр 22:22:38 1881480560
Аноним 15/12/20 Втр 22:32:15 1881488561
>>1881437


Спасибо. В принципе, это совсем на пальцах. Засейвлю и буду подглядывать, подставляя под синтаксис.
Аноним 15/12/20 Втр 22:32:49 1881490562
>>1881461

Огромное спасибо, чувак. Искренне благодарен.
Аноним 15/12/20 Втр 22:40:50 1881496563
>>1881478
Никогда не приходилось думать о хвостовой рекурсии вне контекста tco, но ты прав, да.
Аноним 15/12/20 Втр 22:55:49 1881506564
>>1881496
Ну, думать о ней вне контекста tco имеет смысл для ручной оптимизации.
Т.е. некоторые вещи удобно осмысливать в рекурсивном виде, а потом просто превратить в цикл.
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов