Этого треда уже нет.
Это копия, сохраненная 27 апреля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
image.png89 Кб, 1050x1050
JSThread #186 /js/ # OP 1870885 В конец треда | Веб
Прошлый тред: >>1867518 (OP)

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

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

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

Руководство для вката: https://developer.mozilla.org/
2 1870887
- Напишите аналог функции console.count но вовзращающая число в виде результата, а не выводящая его в консоль
- Напишите ленивые map, reduce, filter, every, some, чтобы для цепочки вызовов этих методов, фактически происходила только одна итерация
- Напишите range(start, end, step) где step может быть нецелым, start и end как положительным так и отрицательным, и бесконечным в том числе
- Напишите класс итерируемой слабой коллекции, напримиер WeakSet, который был бы наследником оригинального WeakSet, имплементировал все его методы, но при этом по элементам множества можно было бы итерироваться.
3 1870890
>>70887
Не пишите. Этот мудила просто хочет спиздить ваш код себе в проект
4 1870895
>>70890
В предыдущем уже всё написали
5 1870933
Каким образом лучше всего задрочить чистый JS, если я довольно неплохо знаю реакт? Просто книжки читать это пиздец, я вообще нихуя не запомню же. Лучше курсы какие-то проходить одновременно практикуясь, или лучше вообще просто начать что-то писать на чистом и там постепенно научишься? Ну а может лучше codewars? Еще был бы хороший вариант, это брать какие-нибудь проекты гитхабовские, и переписывать. Но есть такая проблема, что ты можешь уметь сделать что-то рабочее, но при этом не будешь знать каких-то нюансов. При этом без какой-то работы над большим проектом хуй что запомнишь же, сука. А пилить новый проект просто на ЖС без реакта я в рот ебал. Что делать?
6 1870950
>>70933

>Ну а может лучше codewars


Ты не будешь там изучать внутренности js, ну может только для code golf.
мимо околотоп codewars
7 1870960
>>70933
Если у тебя реакт, то зачем тебе чистый?
Правильно - для сервисов и редуксов различных.
Вот их и пиши.

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

Но, лучше бы ты задрачивал чистый TypeScript для всего этого.
8 1870977
>>70960
>>70950
Да потому что тут начали в прошлом треде писать, что тебе чуть ли не на ассемблере реверс инженирить нужно, чтобы джуном куда-то пойти. У меня изначально подход к изучению был практический. Сначала делал большой курс по реакту, и сделал несколько проектов паралельных. Потом думал сделаю то же самое с чистым жсом и все, можно катиться. Но тут блядь оказывается, что >>70887, еще нашел какие-то тестывые задания у кого-то на ХХ, там вопросы из разряда чему равно +!NaN, или можно ли после Catch еще разок Then вписывать, ну вот как нахуй всю эту хуетристику можно в теории выучить? Я понимаю что конкретно эти вещи гугляться за 2.5 наносекунды, но получается же что ЭТО КЛАССИКА, ЭТО ЗНАТЬ НАДО. А я по сути придумываю себе задачи, и дальше начинаю ходить по докам, гитхабам и и стаковерфлоу. В итоге понимание происходит гораздо лучше, да еще и определенные патерны начинаешь понимать в практическом виде. А потом вот возьмут и ебанут какие-нибудь подобные вопросы. И выходит так, что ты можешь запилить какую-нибудь SPA с редаксом, а кто-то нихуя сделать не может, но зато знает блядь, что оказывается вот после catch можно еще раз then делать. И хули делать со всеми этими мелочами? Просто как стих выучить язык что ли нахуй?
1425319882913635591.jpg38 Кб, 419x311
9 1870980
Добавляю элемент на странице где-то сверху над вьюпортом. Содержимое во вьюпорте съезжает вниз. Как этого избежать? Чтобы было незаметно, что сверху что-то добавилось, чтобы как-бы элементы отодвинул содержимое не под ним, а над ним.

Двигать вьюпорт? А если добавление с анимацией? Как синхронизировать?
sage 10 1870986
>>70977

>делал большой курс по реакту, spa, редуксы



Типичный набор говноеда, который нихуя не понимает и не знает, какие нахуй проекты вася, туду или буксервисы и старыарсбд от говноедов это крупные проекты? Ххарк пьфу в твое ебло
11 1870989
>>70986
Ой иди нахуй токсичная говнина, сначала тебе ответ нормальный написал, но потом подумал, что пошел ты нахуй просто, ублюдок
12 1870990
>>70977

>но зато знает блядь, что оказывается вот после catch можно еще раз then делать.


Это ты неудачный пример привёл. Такое надо знать, иначе ты не понимаешь сути промисов до конца.
13 1870991
>>70989
>токсичная
Сойбой, беги в сейфспейс.
14 1870993
>>70990
Да он нихуя не понимает. Если бы релаьно делал что-то на рякте, такое постоянно попадалосмь бы. А он тупо смакакил хуету с курсов и уверен, что вот все, теперь он про-реактёр.
15 1870995
>>70990
Да в том и дело, что таких мелочей овердохуя, и как это можно просто запомнить?
firefox2020-12-0217-12-41.png31 Кб, 818x480
16 1870998
>>1870881 →

>А тебе справочник для имплементации каррирования нужен, или стак оверфлоу?



Да чета из башки тяжело вспомнить особенно когда на собесе ссидит чсв мудак анальник который бугуртит если одну строчку в коде надо повторять
17 1870999
>>70977

> как нахуй всю эту хуетристику можно в теории выучить?


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

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

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

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

Как же вы заебали.
17 1870999
>>70977

> как нахуй всю эту хуетристику можно в теории выучить?


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

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

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

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

Как же вы заебали.
firefox2020-12-0217-16-07.png36 Кб, 877x328
18 1871001
Ой блять это ДОРАСТИ нужно до ыункцианального пограмирования, уже блять дорасли без типизации что надо тайпскрип прикручивать если чтото сложнее туду делаешь
19 1871003
>>70990
Ну вот здесь, представим что я пусть даже наизусть выучу всё https://javascript.info/try-catch тут на всей странице ни единого примера с then после catch
20 1871006
>>70991

>это не я токсик, это все вокруг слишком нежные


Классика IT-элитки, хули.
21 1871008
>>70998

>вспомнить


Понятно.
22 1871009
23 1871010
>>70999

>не выучивать, а изучать.



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

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

console.log.call.call.call.call.call.apply(a => a, [1, 2])
24 1871012
>>71003
Не зря говорят, что главный навык пограмита - умение гуглить. Ты же не можешь на одном сайте найти нужную информацию.

https://javascript.info/promise-chaining
25 1871013
>>71008

>Понятно.



Да, не дай бог не напишешь как в википедии
26 1871017
>>71003

>е ни единого примера с then после catch



Примерно как в реакте ни единого примера как открыть модальное окно или программно нажать кнопку
27 1871019
>>71010
Тебе кажется что этот список огромен, потмоу что ты дальше собственного носа не видишь. В основе там лежит с гулькин хуй концепций, которые надо понять, а все остальное строится и выражается через них.
Уровни абстракций - ты понимаешь, твою мать, что это такое?

Ты понимаешь, что умножение - это блядь сложение?
28 1871020
>>70999
Куда больше заебали токсичные снобы, которые предлагают всем прочитать спеку JS, десять книг по паттернам и алгоритмам и собрать свой процессор из песка прежде чем что-то писать в треде.

устраивался на первую работу на 100к+ не зная что такое event loop, но умея что-то писать на реакте
29 1871022
>>71019

> что умножение - это блядь сложение?



https://www.youtube.com/watch?v=9esu95IhRWk
30 1871024
>>71020
Сойбой, где тебя такое предлагали?
31 1871025
>>71020
@
Вы не прошли mhrd, мы вам перезвоним
32 1871026
>>71022
Ноль
33 1871028
>>70999

>


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


Да в том и дело, сука, что информации овердохуя. Начиная от всех тонкостей CSS, заканчивая различными изъебствами фреймворков, да чтобы сраную кнопку передвинуть тебе уже ноду надо запускать, чтобы у тебя sass работал, ты же блядь прекрасно понимаешь, что я имею ввиду. И проблма блядь в том нахуй, что даже написав несколько сайтов на JS ты можешь ни разу не столкнуться с какими-то мелочами, по которым тебя потом будут ебать раскаленной кочергой в жопу на собесе, ПРОСТО ПОТОМУ ЧТО ТЕБЕ КОНКРЕТНО ЭТО НЕ ПОПАДАЛОСЬ И ТЫ НЕ ШЕЛ В ДОКУ ЧИТАЬ О ТОМ, ЧТО ТАМ БЛЯДЬ ЕСТЬ И КАКИЕ ТАМ БЫВАЮТ ИСКЛЮЧЕНИЯ, А ПОТОМ ЕЩЕ ПОНЯТЬ ЧТО ЭТА ДОКА БЫЛА НАПИСАНА 10 МИНУТ НАЗАД И ЗА ПОСЛЕДНИЕ 9 ЭТА ФИЧА ОБНОВИЛАСЬ 30 РАЗ И ТЕПЕРЬ ТАК ВООБЩЕ НИКТО НЕ ДЛАЕТ УЖЕ ЦЕЛЫХ 8 МИНУТ. Я блядь целыми днями учусь нахуй последние 4 месяца пидор ты ебанный и выдрочил весь реакт, все что это говно окружает и верстку вдоль и поперек сука, да можешь пиздеть о том как это просто, все просто от лени же в кодеры не идут наверное, заебал уже этот высокомерный принебрежительный тон, сука ну вот просто 100%й детектор пидорахи поднявшей своё обосранное рыло из корзины с свинячим кормом, и возомнившим о себе уже хуй знает что. Так что не надо тут пиздеть мне о том, что я не могу найти в интернете инфу, и тем более пиздеть о том, в каокй последовательности нужно это всё учить, потому что сейчас у меня куда больше практического понимания о том, как проектируются приложения и как вообще всё это изнутри работает. Вопрос был исключительно в том, какой из вариантов наиболее эфективный. Блядь, чтоб я еше раз о чем-то тут спросил, пиздец
34 1871029
Попоробал вуе, рякт, набросал странички. Вроде получается, но выглядит как говно. Все кривое, неровное.

Есть какие-нибудь современные гайды по грамотной верстке в плате расположения, отступов и т.п.?
firefox2020-12-0217-30-04.png1 Кб, 193x94
35 1871031
36 1871033
>>71020
Ты тупой куско говна, который не обращает внимание на то, когда и в каких контекстах это предлагают сделать. Когда человек пиходит и спрашивате - а как блядь? А почему? Всем похуй на вас долбоёбов. Никого вообще не ебет будете вы что-то учить или нет. Ттут люди сидят и тратят сове время поясняя вам, что следовало бы сделать, а ваше право прислушивать или нет.

Ты можешь дальше бегать по тредам и сгорящей жопой проецировать свою ошибку выжевшего причитая -ррря, душнилы, снобы, ррряя. Это тоже твое право. Только ты на вопрос - а как понять почему это работает так - не отвечаешь. Ты лишь отрицаешь.
Ты - ебаный кукаретик, которому повезло залетеь на рутиное место и ты сидишь в нем не развиваясь. Ты никогда не поднимешься выше, ты - червь, которого можно заменить. А меня нельзя. И в этом разница между нами.
37 1871034
>>71012
БЛЯДЬ, да как я должен это загуглить, если это вообще НИ РАЗУ НИГДЕ мне не встретилось? Я что блядь телепатически должен был понять, что это вообще существует?
38 1871037
>>71028

>, по которым тебя потом будут ебать раскаленной кочергой в жопу на собесе


Ты же ебанько, сойбой. Твоя задача - не пройти ВСЕсобеседования, блядь. А пройти одно. Где-то спросят одно, где-то другое, а скорее всего вообще дадут тестовое - делай и все, никаких вопросов лишних.

Ты вообще хоть на одном собеседовании был-то, чтобы вот так решать?
39 1871038
>>71024
В посте, на который я отвечаю. Сидит какой-то дед в треде вкатывальщиков и пердит на всех мол «у вас есть целый интернет, хули вы сюда пришли, заставили меня бедного что-то писать, ох-ох». Хотя этот тред точно такая же часть интернета, как и Гугл со SO.
40 1871042
>>71033

>А меня нельзя.


Льзя
мимо
41 1871043
>>71038
Так все верно. Найти ответ в интренете куда проще и лучше, чем спрашивать на двощах.
firefox2020-12-0217-33-43.png10 Кб, 441x288
42 1871045
>>71034

>НИ РАЗУ НИГДЕ мне не встретилось?



Ну так когда на собеседованиипопросят написать is-odd не забудь вспомнить все edge case
43 1871047
>>71028
Я вот на это передергивание даже отвечать не буду. Ты просто не вникаешь даже в то, что тебе пишут.
Короче, мне похуй, сиди дальше. Задавайся вопросами.
44 1871048
>>71034
Если тебе это не встречалось, значит ты ровно нихуя не делал с асинхронностью и получением данных с сервера. А значить знаний по теме у тебя не более 30%. Просто сидишь дальше учишь, теребишь пет-проджект. Со временем встретится.
45 1871052
>>70977

>там вопросы из разряда чему равно +!NaN


1, потому что ! инверсит булевое значение NaN, которое равно false, которое становится true, которое благодаря унарному оператору + переводит true в числовое значение, которым является 1.

Как такое "в теории" выучить? Ну, например, читать книги.
46 1871053
>>71020

>заебали токсичные


А туда ли ты пришёл, мань?
47 1871054
>>71033
Подожди, ты правда думаешь что своими охуительным поучениями типа «иди прочитай спеку от корки до корки», или «прежде чем подходить к высоким абстракциям надо вкурить Таненбаума» кому-то помогаешь, лол?

>Ты никогда не поднимешься выше, ты - червь, которого можно заменить.


Ебать прорвало. Ну съеби с треда на годик, инфа 102%, что никто этого даже не заметит.
48 1871056
>>71048

>Если тебе это не встречалось, значит ты ровно нихуя не делал с асинхронностью



Может еще всякое говно типа Warning: a promise was created in a handler but was not returned from it.
49 1871059
>>71048
Блядь, всё что мне встречалось с асинхронностью в 6 курсах, каждый из которых больше 10 часов по длительност, и 4 гитхаб проекта которые я разбиралсь и переписывал самостоятельно это -
запросы уровня : fetch/axios.then.then.catch
И никаких нахуй ни разу я не встречал примеров с then.catch.then...
Но конечно я с ассинхронностью не работабл бялдь
50 1871060
>>71045

>pic


Я конечно хз что за isNumber, но разве в него не value стоило передать?
51 1871063
>>71054
Когда я съебал на месяц, у вас тред за 1,5к постов в бамплимит ушел, потому что вы мудаки его даже перекатить не можете, чем я уже не первый год занимаюсь. Так что соси хуй дальше.
52 1871064
>>71060

Это из библиотеки Weekly Downloads 422,306
53 1871065
>>71052

>булевое значение NaN, которое равно false,


Забыл, что оно тоже false
мимо
54 1871067
55 1871072
>>71052

>булевое значение NaN, которое равно false



И еще 100500 забавных историй, еще может номер страницы из спецификации выучить, как студенты языковеды могут по иероглифу сказать какой у него номер в словаре
56 1871073
>>71064

>should work with strings


Тогда ладно. Тайпскрипт покарай их
57 1871081
>>71063
То есть ты съебал, а тред внезапно не умер, общение продолжилось и на вопросы людям отвечали? Oh well. Не хочешь повторить? Я перекачу, обещаю.
58 1871082
>>71081
Окей.
firefox2020-06-2313-32-20.png72 Кб, 644x327
59 1871083
>>71052

>Как такое "в теории" выучить? Ну, например, читать книги.



Ну примерно как конкуренси в жаба выучить, надо еще знать много английских слов и разницу между acquire, lock, take и какой вызывается где
60 1871086
>>71072
Это базовые основы языка, и знаешь что самое смешное? Я даже не знаю что такое промисы сейчас. Не дочитал в спеке про это. То есть вот есть ты, макака которая учит язык по видеокурсикам каких-то даунов с Юдеми, а есть я, который учит язык по годным книжкам. И между нами девочками ты на стороне тех, кто не знает что NaN, undefined и null равны false. Может ты ещё и не знаешь про то какая разница между +0 и -0?
61 1871088
>>70995
Смысл в том, что catch может быть в любом месте (с оговорками, зависит от того, что у тебя там в цепочке).
62 1871090
>>71086

>какая разница между +0 и -0?



еще про оператор "пробел" вспомни задрот
63 1871091
>>71001
Он тоже не очень понял про лямбды.
Это не "усложнять концепцию". В математике у функции один аргумент. Несколько аргументов - это тоже один аргумент (кортеж).
firefox2020-12-0217-54-50.png5 Кб, 347x252
64 1871094
>>71086

> а есть я, который учит язык по годным книжкам



Много ума налилося
65 1871095
>>70995
Ну ничего себе мелочь, чейнинг прям на первой странице описания промисов есть, даже со схемой: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

Все помнить не надо. Основные вещи и так осядут в голове со временем, малоиспользуемая хуита выветрится. Вон как-то чел выше гордится знанием про +0 и -0, например, а я вообще не ебу в чем там отличия, хотя на JS уже почти 10 лет пишу.
66 1871096
>>70995

> оказывается вот после catch можно еще раз then делать


Для этого просто нужно знать, что у промисов catch это алиас для then(null, ...)
67 1871097
>>71001

>13 дней назад


Вот пиздить канделябрами надо пидоров, которые такое придумали.
Высосали из хуя user expirience, лол.
А потом смотришь на скриншот, и видишь фигу.
68 1871098
>>71094
Табличка, кстати, так себе, потому что показывает конкретные примеры, но ничего не говорит про принципы приведения.
69 1871100
>>71096
Это не обязательно (если вообще правда). Зависит от реализации.
Просто catch может быть объявлен в любом месте.
Я часто делаю просто в самом начале.
70 1871102
>>71095
Есть программисты на языке, а есть программисты использующие язык. Сам понял, куда относишься?
71 1871104
>>71098
Так это у него и не табличка, а хуета уровня wtf, которой ему подобные любят кичиться, не понимая, что все сводится к определенной логике этого самого приведения.
72 1871105
>>71098

>принципы приведения.



Тебе еще одну табличку надо к этой?
73 1871106
>>71094

>==


Даже не смешно тебя разъёбывать. Всё, что тебе нужно знать об этой картинке, это то что non strict equality operator имеет left-to-right ассоциативность.
74 1871108
>>71100

>Зависит от реализации


Не-а. Это именно алиас, причем в оригинальной спеке промисов кроме then ничего нет

https://github.com/promises-aplus/promises-spec
75 1871121
>>70999

>Поэтому когда от тебя просят написать ленивую реализацию какой-то хуйни,


Это легко, когда ты постоянно занимаешься реализациями "ленивой хуйни", скажем чтобы олимпиадные задачки решать. А если таким не занимаешься или занимался давно, то сложно. Магией с NaN, неявным приведением типов и т.п. лучше избегать, писать более чёткий и понятный код, не закладываясь на специфику языка. Иначе ты делаешь багоёмкий неподдерживаемый код.

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

>>71059

>И никаких нахуй ни разу я не встречал примеров с then.catch.then...


>Но конечно я с ассинхронностью не работабл бялдь


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

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

ИМХО дрочево на специфику языка разумно, если твоя работа делать какой-нибудь фреймворк или библиотеку. Там уже хочется, чтобы разработчики действительно хорошо понимали язык, а не просто хорошо делали прикладные вещи.
harold-hide-the-pain-meme-03.jpg48 Кб, 940x529
76 1871131
>>70999
прочитал спеку
@
забыл все прочитанное через два дня
77 1871132
>>71121

проблема что без типов оно обмякнет в библиотеке is-odd, а не в месте гле ты NaN соединил со строкой и оно там еще дальше варилось
78 1871135
>>71094
Ну давай разберём по порядку:
"" == "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.

>>71105
Да какая разница, что ты принесёшь. Это только скажем всем о твоём невежестве.
79 1871136
>>71131

>прочитал спеку



Потом забыл чем Map отличается от Dictionary
80 1871138
>>71135

>первое false преобразуется в 0



А че не в строку "false"
81 1871139
>>71136

>Dictionary


А оно существует?
82 1871140
>>71139

Реализуй, вот тебе маркер и доска
83 1871141
>>71140
Сажусь на маркер.
84 1871142
>>71141
Пишу аноном
85 1871143
>>71138
false преобразуется в 0 по дефолту. true преобразуется в 1. Строки преобразуются в числа, если один из сравнимых типов является числом. Сначала false стал 0, "false" попытался конвертироваться в число, но это всё равно что попытаться конвертировать "zero" в 0.
86 1871144
>>71020

>устраивался на первую работу на 100к+ не зная что такое event loop, но умея что-то писать на реакте


Когда это было? Лет десять назад вообще достаточно было по html одну книжку полистать.
87 1871145
говно в мочу можно преобразовать, но мочу в говно нельзя. Отсутствие говна не равно отсутствию мочи.
88 1871151
>>71144
Ага, а сейчас нужны только мегагении с 10-летним опытом. Спрашивают все - от программирования на перфокартах до эволюции ракоскорпионов.
89 1871153
>>71094
Только вот == почти не нужон, клован.
90 1871155
А возможно через JS удалить например на ютубе все элементы, кроме первой строки с роликами? Тут суть именно в том, что по мере удаления, динамически будут подгружаться новые превьюхи видосов.
Вот пример удаления обычных элементов, например если их более 3-х в списке: https://qna.habr.com/q/405031
А реально ли удалить как на примере с тем же ютубом?

Я бы в теории сделал что-то вроде content.remove(); А потом подгрузил первую полоску. Только вот не знаю реально ли так сделать?
91 1871156
>>71153

Да я и PIVOT в sql запросах использую раз в 2 года загуглив как он работает, а вот на собесе спрашивают, еще и перечислить все оконные функции
image.png68 Кб, 877x600
92 1871158
93 1871160
>>71151
А ты как хотел? На вакансию по сто-двести человек выстраивается, как думаешь кого возьмут, студня посмотревшего курс по реакту или господина способного пояснить за лямбда-исчисление и IEEE 754?
94 1871162
>>71156

> а вот на собесе спрашивают


Пруфы?
95 1871163
>>71158

13 пунктов лютой шизы лишь бы только обмякнуть на продакшене попозже
96 1871164
>>71160

>или господина способного пояснить за лямбда-исчисление и IEEE 754


А такие не выстраиваются. Таких немного. За таким компании сами охотятся. У них и требования будут, что обосрешься. Плюс такие задроты всегда немного ёбнутые и нужно под них подстраиваться, а не наоборот.
97 1871165
>>71164

>У них и требования будут, что обосрешься.


У таких тоже когда-то не было практического промышленного опыта, а только теория. Так что ты неправ.
98 1871166
>>71163
Что до сих пор не написал в коммитет, гений?
99 1871167
>>71144
Пять лет назад примерно.
100 1871182
>>71166

> написал в коммитет



Зачем, когда есть тайпскрип
image.png195 Кб, 1920x1080
101 1871198
Как передать переменную из одного компонента в тимплейт другой ?
102 1871209
>>71198
Через сервис.
103 1871210
>>71160
студня конечно. ему можно платить мало а задачи для бизнеса он будет делать, под присмотром конечно первое время.
104 1871215
>>71198
Через emit в маму, через props в другую дочку.
105 1871223
У меня асинхронная функция делающая xmlrequset и вызывающая промис. В случае fullfilled делает одно, в случае rejected делает другое. И вот проблема. Я могу в процессе выполнения сделать xmlrequest.abort() и промис вернёт rejected. Но в случае если я остановил реквест, нужно делать совсем другое.
106 1871257
>>71210
Он ощущался будто подгретый студень, я обернулся на него - да это ж Путин, ахуеть. Тот час затанцевали тараканы мураши, пока Владимир проникал в меня рывками я решил дробить себя на выдохе постыдно, лопотать, и тут он вынул хер и на лицо спустил мне, благодать.
107 1871268
>>71223

> When a request is aborted, its readyState is changed to XMLHttpRequest.UNSENT (0) and the request's status code is set to 0


Надо тогда проверять вот на это и если выполняется, то не режектить а резолвить
108 1871388
Бамп вопросу: >>71155
image.jpeg5 Кб, 259x194
109 1871418
>>70887

>ленивая цепочки вызовов


>map, reduce, filter, every, some


>фактически происходила только одна итерация


У тебя самого в голове всё сходится?
110 1871424
>>71155
Возможно. Реально.
111 1871427
>>71418
Что-не так-то, нарк?
112 1871441
>>71427

>только одна итерация


Тут не к месту
113 1871444
Да как правильно то? Что за двузначность? Я не могу разобраться.

promise.then(succes,error) ;
или
promise
.then()
.catch();
114 1871470
>>71441
Так в том и суть задания, чтобы превратить цепочку методов, каждый из которых ебашит свою итерацию, только в одну эту самую итерацию.
115 1871477
>>71470
Думаю, это должно решаться путём функциональной композиции.
116 1871478
>>71470
Это называется ленивая композиция
117 1871521
>>71444
Ну посмотри в документацию и вопросов глупых задавать не будешь.
118 1871531
Позвали на собес на следующей неделе, сверхвысоких практических знаний не нужно, но можете написать какие самые основные моменты нужно понимать хорошо? Помню в прошлых тредах были Reflow, Hoisting, Closure, CSRF, какие еще такие глоабальные базовые вещи необходимо знать, без особого вникания в детали? Особенно я думаю подтянуть то, что касается работы с сетью
119 1871536
>>71132

>is-odd


https://www.npmjs.com/package/is-odd
Я думал это местный мемес, пиздец, нахуй оно нужно? Я чего-то не понимаю?
120 1871537
>>71536
https://www.npmjs.com/package/is-is-odd
Всё нормально, это npm
121 1871566
>>71537

>npmjs.com/package/is-is-odd


Взорал нахуй. Как теперь остановиться?
122 1871572
>>71536
>>71566
Он был включен в несколько очень популярных библиотек, при скачивании которых автоматически качается и is-odd.
123 1871580
>>71572

>Он был включен в несколько очень популярных библиотек


Нет, серьезно, кроме шуток, целый модуль, который просто проверяет x%2===0? Он что-то еще делает? Зачем ставить модули, которые настолько очевидные и простые? Какой в этом смысл? Есть вообще какие-то ограничения по использованию модулей, или можно делать с ними все что хочешь, и использовать их в любых количествах?
124 1871584
>>71580

>Зачем ставить модули, которые настолько очевидные и простые


>is-odd


>проверяет x%2===0

125 1871585
var move = {
toT: (player) => {},
toCT: (player) => {}
}

пойдёт такое название для объекта муве? по сути это же объект, а не функция, а название глагол
126 1871586
>>71585
И почему не сделать moveToT() и modeToCT()?
127 1871587
>>71586
потому что у меня целый объект связанный с перемещением игроков
128 1871588
>>71566
Никак, всё нормально https://www.npmjs.com/package/is-eq-four/v/1.1.0
129 1871594
>>70977

>там вопросы из разряда чему равно +!NaN


Все эти эти вопросы с подъёбами легко гуглятся по запросу "вопросы на собеседовании по js" или по типу того. Причём читать нужно и в рунете и в ангельском.
Вопросы могут казаться тупыми, но они отражают твоё погружение в язык. И да, они учатся.
130 1871600
https://advanced.team/
Пожалуй это самый охуенный эффект, который я только видел на сайтах
131 1871605
>>71587
Что это за объект? Какое состояние он отражает? Это карта? Тогда какой это нахуй move?
132 1871608
>>71594

>И да, они учатся.


лол, нет.
133 1871609
>>71594
Как будешь выучив отвечать на вопрос - почему?
134 1871610
>>71608
Хуле нет?
232875384-wtfamireadingvisor.jpg38 Кб, 600x632
135 1871614
>>71609

>Как будешь выучив отвечать на вопрос - почему?


Ты вместо того чтобы такими тупыми вопросами в треде срать, лучше шёл бы учить язык, доболоёб.
А то если ты выучил, а на вопрос "почему" ответишь не можешь, означает, что ты инвалид.
136 1871615
>>71605
move to t
move to ct
move to s
move all to s

короче мувы одни
137 1871618
>>71614
Это значит, что ты языка родного не знаешь. Выучить - это вызубрить. А то, что ты имеешь ввиду - это изучить. Выучивая ты ничего волшебным образом понимать не начинаешь, хуесос.
138 1871619
>>71614
Это не я тебе ответил, чел
15694022403270.jpg34 Кб, 550x412
139 1871620
>>71588

> Dependencies (8)


> is-eq-three is-number is-string is-undefined is-null jquery jquery-basic-arithmetic-plugin is-true

Screenshot1.png41 Кб, 998x492
140 1871621
>>71618

>ко-ко-ко


>не хочу выучивать язык


>хочу срать о русском языке в треде

141 1871626
>>71621
Удачи тебе с синонимом выучить<->сделать, шиз.
142 1871628
>>71621
Мне конечно похуй на ваш срач, но отвечаешь вообще не тому человеку, который этот ворос изначально задавал, так что не понятно, о чем вы тут вообще спорите
143 1871645
>>71572

> несколько очень популярных библиотек,



половина этих библиотек это китайцы, вот и раздутые номера
144 1871655
Встречаю иногда такие функции, которые называются типа handle или handling. Что это означает?
145 1871658
>>71655
Это ручки и они ручкают
146 1871714
>>70885 (OP)
Так блин, зашел на один сайт, захотел посмотреть что в консоли будет выводиться при общении с сервером, через chrome dev tools отредачил главный жс-файл (там ванильный жс был) и поставил лог в одну из js-функций типо processServerResponse
Но по факту нихрена не произошло, лог не работал будто его не было. Что за хрень, мне казалось так можно вносить изменения в жс-код на клиенте
147 1871718
>>71714
Плагин нужен, наверное.
Grease Monkey или типа того.
148 1871724
>>71718
Но ведь редактирование жс кода по идее должно вызывать изменения, нет же? Редактирование html-разметки мгновенно показывает изменения
149 1871729
>>70887
Для всего этого есть куча говна типа рыксы и итерабл экстеншс от тех же создателей. В JS дефакто нет ленивости в классическом понимании (рантайм не обеспечивает), есть генераторы и механизм подписок (висит в пропозалах спеки уже который год, если не считать кастомных решений).
150 1871732
>>71655
handle = обработать
handler = обработчик
handling = обработка
Событий, ошибок, прочей хуйни.
151 1871735
>>71724
Думаю, что дело в том, что жс уже загружен из кода.
Т.е. (пере)определить в консоли фукнцию или переменную, например, ты можешь.
И она будет (пере)загружена в этот момент.
А когда ты редактируешь скрипт в тексте страницы - он не перезагружается.
Но, это не точно.
152 1871799
Есть ли смысл коммитить каждый хеллоуворд на гитхаб, или лучше что повменяемее туда сохранять? Просто хочется чтобы там показывалась какая-то активность, чтобы было видно что я не в доту гонял всё это время, но и в то же время как будто бы смысла особого в этом нет для меня. Хотя может быть так будет потом проще вспомнить что я там учил
153 1871809
>>71424
Как?
154 1871810
>>71799

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



Да сразу сохраняй как пакет в npm
155 1871821
>>71799
Можно, потом удали совсем позорное.
156 1871822
>>71799
>>71810
Пилите сразу is-hello-world
157 1871828
>>71822

Лол, сейчас с помощью npm вирусы доставляют

https://www.youtube.com/watch?v=CDVDWJ5HE2k
158 1871829
159 1871832
>>71829
is-hello-world должна проверять, является ли package-name программой Hello world
160 1871836
>>71832

Ну делай, только не забудь кейсы чтобы обмякнуть когда тебе передают всякие массивы, NaN
161 1871841
>>71828
Просто нужно установить isTrojan
162 1871846
Есть список с объектами вида:
{"objectType": "", "name": ""}

Мне надо чтобы в начале такого списка всегда были объекты с "objectType": "action" а если таких нет то ничего не делать. Как это наиболее изящно в жс сделать?
163 1871859
>>71822
Нужен скрипт который будет генерить is-n и постить новый каждый день.
164 1871860
>>71846
Сортировкой?
165 1871865
>>71846
Не слушай этого ебаклака >>71860 т.е. меня. Просто два фильтра и одна конкатенация
166 1871866
>>71846
list = [{"objectType": "", "name": ""}, ...].sort((x, y) => -(x.objectType === 'action'))
167 1871903
Если бы вам нужно разрабатывать новую веб-морду, то angular или react?

И почему?
168 1871929
169 1871939
>>71903
Самописный фреймворк.
170 1871947
>>71903
Vue.

Потому, что без говна, вот почему.
171 1871950
>>71903
Ангуляр, конечно. Остальные фреймворки слишком запутанные и не понятные. Ангуляр, помимо адеватной структуры, еще и заточен под работу с тайпскриптом, что не может не радовать.
172 1871963
>>71903
Реакт только если какая-нибудь совсем простая хуйня с графкулем. Ну или если фронт на кложе какой-нибудь
Ангулар единственный полноценный веб фреймворк сегодня
173 1872004
Вот что мне делать дальше, как изучать JS когда я знаю основы и умею в реакт? Делать проекты сложнее и по мере реализации разных фич читать подбробно и разбирать как что работает? Или вообще забить на реакт и проекты, и какую-нибудь книгу навернуть? Трудно понять в каком направлении эффективнее всего будет двигаться дальше, с одной стороны без практики трудно что-то запоминать. С другой просто практиковаться не очень хорошо, потому что можешь сделать что-то рабочее, не зная о том, сколько там на самом деле уязвимостей и возможных ошибок
174 1872025
>>71903
Слишком мало вводных данных
175 1872030
>>72004
Делай своё, после чего смотри на чужое и сравнивай оба, стремись чтобы твоё превратилось в чужое, с поправкой на то что чужой код это код грамотных и опытных специалистов.
176 1872038
>>72004
Делай проекты по тому что знаешь
Не нравится или не получается - перекатывайся в другой язык, хотя бы средненькие знания жса уже будет большим плюсом
177 1872039
>>72004

>как изучать JS когда я знаю основы


https://www.ecma-international.org/ecma-262/
От начала до конца читаешь
@
ЖС изучаешь
178 1872049
>>72030
>>72038
Все больше прихожу к тому, что нужно продолжать учить так, как я учил до этого -> практикой и просмотром кода на гитхабе.

>>72039
Это всё прекрасно, я бы и вопросов не задавал, проблема тут только одна, без практики, т.е. хоть сколько-нибудь реального применения знаний на проекте это всё выветривается так же просто как и прочитывается.
179 1872051
>>72049

>без практики, т.е. хоть сколько-нибудь реального применения знаний на проекте это всё выветривается так же просто как и прочитывается.


А ты уверен, что это не надуманная мантра, которую ты повторяешь сам себе?
180 1872064
>>72051
Эту мантру подтвердит любой человек хоть сколько-нибудь знакомый с процессом обучения.
181 1872068
>>72051
Ну я не первый день учусь же. Кроме того, прочитывание всего того, что ты скинул никак не конфликтует с практикой само по себе. Но за ресурс спасибо, я до этого только MDN считал официальной докой ЖСа, эту не видел
182 1872082
>>72049
Всё так
Если тебе в реальном проекте на реальной задаче и понадобится какая-то теория, полностью осозновая цель ты осилишь любую хуергу вплоть до вышмата за пару дней
Только еще одна хуйня: барахтаясь на галерном дне за бутерброды на самом деле проекты могут быть даже легче твоих петов, так что не перенапрягайся сильно
183 1872092
>>72082

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


Как же хочется править размер кнопок на крудоформах и получать 300ксек, эхх.
изображение.png623 Кб, 960x540
184 1872103
Как же мне сложно структурировать код, давать правильные обозначения и разделять код на логические разделы. Чувствую себя пикрилом
185 1872120
>>72039
Фреймы уже стали немодные и ширину навигации слева не изменить. С, значит Современные технологии.
186 1872128
>>72120
Через инспектор поменяй, тыж программист!
187 1872129
>>72082

>полностью осозновая цель ты осилишь любую хуергу вплоть до вышмата за пару дней


Кек, нет.
>>72064
Расскажи мне про "процесс обучения", ибо я на 100% уверен что под этим набором букв нет никакого смысла, и ты используешь его как баззворд.
>>72068

>Ну я не первый день учусь же


Практика и просмотр кода на гитхабе это далеко не "учусь". +!NaN, как мы выяснили в этом треде, на практике понять ты не сможешь.
188 1872168
>>72129

>Расскажи мне про "процесс обучения"



https://www.youtube.com/watch?v=vd2dtkMINIw

Не благодари.
image.png60 Кб, 1200x1040
189 1872286
Анон, как ты вкатывался в vue? Читал тутор на их сайте или мб какие видеоуроки можешь посоветовать?
190 1872290
>>72103
Приди на большой проект, побеседуй с большими дядями, у каждого из которых большая пися. Они научат уму-разуму
191 1872292
>>72286
Документация на сайте охуенна.
Куча инфы в интернете.
Куча курсов, видео и т.п. - гуглишь vue tutorial 2020
Например - https://scrimba.com/topic/vue

Тут всё зависит от того, что ты на данный момент знаешь.
И насколько тебе понятны основные идеи.
192 1872340
>>70885 (OP)
Когда говорят про React, то везде, начиная с его документации, заканчивая собесом в веб студию в Бердянске, будут говорить (спрашивать) о его эффективности. Типа виртуал дом, перерисовка, вау. Когда я только начинал учить, то думал, что речь идёт о сравнении с Ванилой (лол), потом оказалось, что с фреймворками того времени (2013) Но поясните, зачем сейчас ставить это в главу угла, если тот же Ангуляр и вью обгоняет Реакт в разных ситуациях? Логичней было бы на месте фейсбука рассказывать про его мобильность и легкообучаемость, что так завлекает всех от вайтишников до умелых спецов, которым просто лень сидеть за докой.
193 1872349
>>72340
У Реакта маркетинг. Мы всеголишь библиотека. Посмотрите как мы мало весим и вообще какой мы гибкий инструмент. То что на этой либе нихуя вообще нельзя сделать умалчивается конечно.
194 1872350
>>72290
дяди с большими писями управляют кодерками и в душе не ебут за код
195 1872352
>>72340

>Когда говорят про React, то везде, начиная с его документации, заканчивая собесом в веб студию в Бердянске, будут говорить (спрашивать) о его эффективности.


Реакт создавался с фокусом не на производительность, а на удобной и предсказуемой модели преобразования стейта в DOM. С чем он собсна и справляется. Хуй знает откуда ты взял эту телегу про его невероятную эффективность.
196 1872355
>>72340
Потому что в фаанговых поделках хватает ебовости архитектуры для выстраивания однонаправленного флоу на фронте
Или ты думаешь что 250к$/год жс инженер редаксы к реакту коннектят?
197 1872380
>>72340

>а на удобной и предсказуемой модели преобразования стейта в DOM


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

Единственно правильный ответ, почему люди продолжают использовать реакт - хуй знает почему, вот почему.
198 1872429
Для игры понасоздавал разных объектов с разными собственными функциями. Все они самостоятельны и не используют другие объекты. Работают только сами с собой. Например объект информации об игроках и объект, отвечающий за перемещение игроков в команды.

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

move.allToSpectators( players.getCtTeam() );

Что делать? Писать функции теперь?
199 1872442
>>72429
Теперь тебе нужен объект, который будет представлять собой модель игры. Он должен управлять другими объектами.
200 1872454
>>72068
Как ты мог считать mdn официальной докой, если на странице википедии написано ровно обратное. Или ты даже википедию не додумался прочесть?
201 1872455
>>72103
В программироаании только две полблемы, мань, это именнование сущностей и инвалидация кэша. Соси жопу. Жуй репеник.
202 1872456
Такая проблема.

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

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

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

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

Анимацию убирать тоже не хотелось бы.
203 1872459
>>72286

>Анон, как ты вкатывался в vue?


Придумываешь себе пет-проект нормальной сложности не очередной туду-лист и начинаешь его делать, попутно читая документацию и пользуясь гуглом для решения проблем. Видеоуроки для вкатывания хуйня - без практики все равно ничего не запомнишь.
204 1872461
>>72456
Не начинай анимацию одного, пока не закончена анимация другого.
205 1872462
>>72459

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


Хуйня не видеоуроки, а обрывочные уроки вне контекста. Лучше проходить какой-нибудь большой курс, где объясняется все от основ до продвинутых тем. Дальше проходишь какой-то большой блок курса и делаешь свой проект, в котором применяешь полученные знания. Дальше снова делаешь проект по уроку, и снова в своем применяешь знания придумывая себе задачи. Ну это именно для охватывания какой-то технологии с нуля
206 1872496
Тред не читал, конечно же.
Устроился тут на новую работку не связанную с погромированием.
Госструктура и очевидно работы особо и нет, сидишь ебланишь целыми днями, отсюда вкатился в изучение новых языков, выбрал JS, тк он самый популярный и самый распространенный, собственно если у меня какие-то проблемы возникнут - я с большой долей вероятности смогу ее только найти решение, но и описание почему и как это решение работает. В общем, чтобы вкатиться, мне показался этот язык - идеальным. Обоссыте если не прав.
После JS укачвсь на следующий язык, пока не знаю какой, но знаю, что по итогу я хочу в бэкэнд укатиться, но и фронт знать, поэтом начал с js.

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

>На практике - стало не очень удобно, и не очень предсказуемо.


И что же поменялось? Модель все та же.
image.png374 Кб, 506x507
208 1872538
>>70960

>Если у тебя реакт, то зачем тебе чистый?


>Правильно - для сервисов и редуксов различных.


Вот щас проходил собес, думал щас меня по реакту спрашивать начнут и я их разъебу. А у меня спросили чем отличается var от let и const, и я жидко обосрался поняв, что ни разу нахуй не пользовался var, потому что он нахуй не нужен, и я вообще блядь ничего про var не помню, не знаю и не знал, кроме того, что он имеет глобальную область видимости, и это старое говно и им вообще не нужно пользоваться. Прооритесь с меня нахуй, таким куском говна сейчас себя чувствую, хоть в петлю нахуй лезь хоть я потом конечно немного реабилитировался начав рассказывать про реакти вроде бы не обосрался ни в одном вопросе, но все равно это был пиздец, я в ближайшие 20 лет вообще нахуй ни на один собес больше не пойду пока не смогу по памяти написать свой свой браузер на c++, внутри которого будет открываться полностью самописный алиэкспресс, внутри которого будет продаваться вся документация js написанная по памяти
16060938858540.png273 Кб, 720x583
209 1872548
>>72103
TypeScript поможет тебе в этом
210 1872550
>>72548
Всё лучше чем is-odd
211 1872554
>>72538
Привет, я в жизни не учил никаких языков, кроме английского и ссу тебе на ебало, потому что var это variable, т.е переменная, т.е

> var TvoiHui x


Который ты задаешь

Let - это ПУСТЬ

> let TvoiHui 5



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

Этим они и отличаются, в остальном это глобальные операторы и нихуя более
212 1872555
>>72554
АХ ДА Я ПРОЕБАЛ ''
213 1872558
>>72538

>кроме того, что он имеет глобальную область видимости


Нет, он имеет локальную область видимости.
214 1872559
>>72554
Ну видно что ты нихуя и не учил
215 1872563
>>72538
var имеет локальную область видимость, let и const блочную.

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

let и const имеют блочную область видимости. Они объявляются и инициализируются по месту, и за пределами блока, в котором они объявлены их не видно.
216 1872564
>>72538

>щас меня по реакту спрашивать начнут и я их разъебу


Почему React не реактивен? Какая модель распространения значений в react?
217 1872565
>>72563
Вот этому можно и перезвонить. А что если не указать модификатор переменной, тупо насрать `op = "khui"`?
218 1872566
>>72550
Разве в тайпскрипте можно сделать целочисленный тип, принимающий только нечетные значения, чтобы обойтись без is-odd ?
219 1872567
>>72563

>Они объявляются и инициализируются по месту


Справедливости ради, TDZ работает благодаря подъему, но кого это ебет, когда в userland коде все равно это никак не использовать.
220 1872568
>>72566

>Разве в тайпскрипте можно сделать целочисленный тип


Да, гугли branded types и гарды/кодеки.
221 1872573
>>72565
Будет попытка присвоить переменную на уровень выше по цепочке наследования областей видимости, пока не дойдет до самого верха. В случае если код выполняется
в строгом редиме и переменная в итоге не объявлена нигде будет эксшепшен, в противном случае будет присвоено поле в globalThis. Все модули выполняются в строгом режиме, так что там всегда будет экспшен при попытке присвоить необъявленную ранее переменную.
222 1872576
>>72573
>>72567
>>72563
>>72554

>JavaScript простой язык


>22 строки о том, что такое var


>при это все равно остаются какие-то нюансы

223 1872578
>>72576
Он просто душный, простое объяснения выглядит в виде наглядного примера:

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

В консоль выведется 10, а потом вылетит эксепшн который скажет тебе, что переменная "y" не определенна, если поменять y и z местами, то будет тоже самое.
224 1872579
>>72576
Да ладно, это почти все легаси или нужно раз в год, все в 95% случаев делается на const. Типичный вопрос для собеса короче.
225 1872581
>>72576
Он действительно очень простой. В основе всего яызка лежит абстракция объекта (описанного в спецификации) который имеет слоты, которые дергаются при каждом геттер, сеттере, и вызвое некоторых операторов. Все взаимодействие со всеми сузностями происхоит через дерганье этих слотов. Области видимости - это тоже объекты, которые так же связаны в цепочку, по типу протипной, с единственной разницей в том, что переменная это не поле, а аксессор - при сеттере переменной она присваивается в той области где объявлена в ецпочке, а не в текущей, а объявление переменной - это объявление акссесора у текущей области видимости в случае если это блочная переменная, или локальной, в случае если это var.

Абсолютно все операии - это дерганье слотов через отправку сообщений get\set\call\getProperty\hasOwnProperty и так далее. Если понять как это устроено все с низу, то никаких сложностей нет вообще вс понимаием как это сустроено сверух. Сверху у тебя много сущностей - всякие контексты, модификаторы, операторы, хуяторы - которые на деле выражаются одними и теми же конструкциями и операциями на нижнем.
226 1872582
>>72581
Заходи почаще в JS треды. Здесь котострофически не хватает адекватов.
227 1872585
>>72578
В отличии от тебя он пояснил, что будет при объявлении var за пределами функциии, в строгом и нестрогом режиме, и почему hasOwnProperty - это глобальная переменная.
228 1872587
>>72582
Я ОП этого треда последние пять лет.
229 1872589
>>72585

>что будет при объявлении var за пределами функциии



Проиграл с дебила. В JS функция это объект, твои "за пределом функции" это тоже самое что и в пределах функции. Как вы вообще код пишете, если таких основ не понимаете? Для вас это не написание кода, а магия?
230 1872591
>>72589
Что несешь блядь.
231 1872593
Ну все понятно в общем нахуй блядь, 10 постов, считай целая статья с нюансами одного только var. Осталось только все то же самое выучить наизусть для примерно 10000 остальных сущностей в js и всё, можно бежать устраиваться за 30 тарелок гречи в месяц.
232 1872595
>>72593
Тебе пояснили, что можно вызубрить 10000 сущностей по отедльности, а можно изучить несколько простых принципов и понять разом всё. Но ты, как я вижу, сделал свой выбор.
233 1872601
>>72595
Где можно узнать об основных принципах? Вот что нужно читать чтобы понять основные принципы? В основном все начинается от перечисления переменных и заканчивается всякими асинк авайтами. Ну а дальше сам по мере необходимости. Причем еще и ор в том, что все, что ты пишешь может прекрасно работать и без всех этих нюансов. Так что в конечном итоге все выливается в то, что ты чуть ли не до уровня сеньера должен доучиться, чтобы на тебя как на говно не смотрели
234 1872602
>>72589
Функция это callable объект. У которого пределен хэндлер на сообщение call. Еще есть конструкторы - это обхекты у которых определен хэндлер на сообщение construct. Области видимости не являются вызываемыми объектами, и конструкторами они тже не являются. Они вообще относятся к типу Exotic Object.
Ни глобальный скоуп в которм выполняются простые скрипты, ни модули не являются функциями. Исходный код скриптов и модулей выполняется в контекстах vm.
В общем, ты несешь чушь.
235 1872609
>>72568
let n = 2 as Brand<number, 'odd'> // пук кек
236 1872610
>>72601
Нигде это полноценно и всеобъемлюще в одном месте не расписано. Или во всяком случае я ничего такого не читал. Я просто 20 лет пишу на жс, и помню его еще со времен es3.

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

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

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

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

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

>as


Ты же сам берешь на себя ответственность, выполняя принудительное приведение типов, в чем проблема?
Ассершены, по-хорошему, должны быть запрещены на проекте, исключение отводится только на "as const".
238 1872614
>>72568

>гарды/кодеки


Всё равно нужен is-odd, чтобы запилить гарду
2020-12-0413h5133.png157 Кб, 288x254
239 1872618
240 1872619
>>72610
Спасибо, буду учить если не вздернусь нахуй
241 1872622
>>72619
Если есть в тг пиши нам в самый токсичный чат dynamicult
242 1872623
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
243 1872634
>>72601

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


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

От тебя никто не требует всего этого понимания, если единственная твоя цель это на работу устроиться. У тебя есть тот самый путь - заучивать отдельные кейсы и не задаваться лишними вопросами. Возможно он для тебя действительно будет проще (даже точно будет проще. в случае если тебе программирование как таковое не интересно)
244 1872635
>>72634

>От тебя никто не требует всего этого понимания


Да в пизду, чтобы я еще раз на какой-то собес пошел пока все это знать не буду
245 1872638
>>72634

>цель не формочки клепать, а созидать


Но ведь конечная цель языка и есть решение прикладных задач. В чем созидательность глубокого понимания его работы?
246 1872648
>>72638
Прикладные задачи не ограничиваются клепанием формочек. У всего прикладного есть разные сферы применения. Ты, как программист - тоже пользователь. Для тебя пишут инструменты другие программисты, для которых эти задачи являются прикладными.
Есть еще такие вещи, как написание транспиляторов и компиляторов. Тех же самих линтеров, и language серверов. Пользовательских рантаймов, и в конечном счете просто библиотек. Ты же не думаешь, что все это появляется само по себе?
А еще есть такие вопросы как развитие языка. Чтобы протащить в спеку новый пропозал, тебе не будет достаточно понимать, чем var отличается от const.
247 1872656
>>72638
От уровня твоего понимания зависит то, что именно ты способен созидать. Все люди различаются между собой лишь широтой знаний\взглядов\эрудицией. Кем быть именно тебе выбираешь исключительно ты сам.
248 1872662
>>72442
И как бы его назвать? game management? И ещё в конце игры нужно будет очищать всякие переменные. Как это обычно называют?
249 1872664
>>72648

>Ты же не думаешь, что все это появляется само по себе?


Конечно, не думаю, просто не понимаю с чем связан изначальный снобизм. Мол написать линтер это созидание, а написать, например фронт CRM для КЦ — формошлепство. Там же тоже нужны знания, просто другой предметной области. Причем не сказать что одна из них как-то особенно лучше или сложнее другой. Правда первое, как правило, оплачивается звездочкой на гитхабе и стабильным потоком ишьюс, а второе деньгами, страховкой и оплачиваемым отпуском.
250 1872670
>>72662
Зависит от твой архитектуры. Скорее всего у тебя будет куча разных менеджеров, типа PlayerManager, SceneManager, и т.д. которые объединяют простые строительные блоки. И всем управляет какой-нибудь GameManager.

>И ещё в конце игры нужно будет очищать всякие переменные. Как это обычно называют?


Зачем их в конце очищать? Иногда делают в каждом менеджере или объекте метод destroy, который подчищает за собой. Но это далеко не всегда надо.
251 1872672
>>72662
Бля, ну почитай ты наконец про подход Entity Component System, многие вопросы сразу отпадут.
252 1872673
>>72664
Как правило те. кто способен писать линтеры, способны писать и CRM, а обратное не верно. При этом первые не испытывают никаких wtf разрабатывая с использованием любого языка или технологии, в отличии от вторых. Это не та разница предметных областей (как писать круды или графические редакторы, сервер-сайд или гуй, игры или нейросети). Это перманентная широта специализации. У людей глубоко-эрудированных нет сложности с вопросами написания фронта или бека, консольных утилит или десктопа, писать на жс или на си - они разберутся во всем и очень быстро, потому что умеют это делать. Умеют изучать, а не заучивать.
253 1872680
>>72673

>Как правило те. кто способен писать линтеры, способны писать и CRM, а обратное не верно.


Не очень понятно на чем вообще основаны эти измышления. Из хорошего знания языка и умения изучать вещи еще не следует хороший код и уж тем более хороший продукт. Нужно знание предметной области, представления о том как работают люди, вкус и другие вещи. Есть штуки созданные прекрасными разработчиками которыми невозможно пользоваться без слез и есть продукты написанные плохими разработчиками, которые работают прекрасно.
254 1872686
>>72623
Почему люди ставят нпм модуль, а не пишут его от руки?
255 1872718
>>72686
Они ставят библиотеку какую-то. А она уже тянет все это говно мелкое, потому что разраб библиотеки поленился написать.
345345.jpg9 Кб, 489x287
256 1872741
Как на флексах сделать так как на пике? Красный - один блок, синий - другой. Получается только через float.
257 1872747
>>72741
Ты хочешь странного, зачем тебе блок хитровыебанной формы да еще с пересечением с другими? На флексах такое не делается.
258 1872755
>>72623
А при чём здесь тайпскрипт, долбоеб? Тайпскрипт за тебя не проверит пришло ли тебе в ответе на запрос строка или объект, несмотря на то что ты прописал, что должна была прийти строка.
259 1872756
>>72741
.синийБлок {
margin-left: auto;
}
260 1872757
>>72623
Просто вся эта ебатура ставится вместе с npm пакетам как зависимости.
261 1872758
>>72755
Тип > json-схема > ajv. Изи.
262 1872768
>>72741
На флоатах? А че на на таблицах?

https://jsfiddle.net/k1zoxcyq
263 1872771
>>72758
Это и без твоего тайпскрипта делается.
264 1872772
>>72768
Чел, ты не понял этого наркомана. Открой картинку и посмотри на красную обводку внимательнее
carbon.png49 Кб, 940x632
265 1872774
>>72768
Мне вот такая структура нужна.
266 1872779
>>72774
Что это изменит, наркоман?
45654.jpg15 Кб, 772x361
267 1872783
>>72779
Тоже самое, один в один.
268 1872786
Можете посянить по стилистике как правильно
(a) => {
if (a) {
return a
}

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

return 42
}

Либо

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

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

return 42
}
}

Записи эквивалентные просто по стилю как правильнее
269 1872791
>>72783
Скотина тупорылая, зачем тебе по отдельным блокам разбивать, если разницы в отображении не будет?
270 1872795
>>72786
Главное, что
Больше пары строк кода в посте или на скриншоте ведут в Ад.
271 1872797
>>72791
Может потому что так надо? Ты еще предложи фоновой картинкой поставить, разницы в отображении тоже не будет, хуле.
Screenshot3.png2 Кб, 267x120
272 1872801
273 1872808
>>72801
Понял. Спс.
274 1872809
>>72797

>Может потому что так надо?



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

>фоновой картинкой поставить,


>разницы в отображении тоже не будет, хуле.


>разницы не будет



Ты правда настолько тупой или просто от безысходности начал бред нести?
275 1872811
>>72786
const func = a => a ?? process(a);
276 1872813
>>72809

>зачем тебе так надо


Затем надо. Вопрос был конкретный. Обосрался - обтекай.
277 1872817
>>72811

>a ?? process(a);


Чейто? А вообще конечно так проще.

const func = a ? a : 42
278 1872820
>>72817
А если a === 0? А действия нужны, только если нету a?
279 1872823
>>72820

>=== 0


Говнокод, импортируй is-zero, сука
280 1872831
>>72817
тогда уж
const func = a ? fn(a) : 42

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

>>72811
А что делает ?? ?
281 1872832
>>72801
function func(a) {return a || 42;}
или
const func = (a) => { return a || 42; }

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

Вот этот вариант лично мне не нравится >>72801
Если в конце блока if есть return, или continue/break внутри цикла, то делать else не нужно, получается немного противоречивая логика, при этом конструкция if-return довольно типовая, воспринимается без напряга, чтобы дополнительный else делать. Но return должен быть сдвинут на одном уровне с операторами if-else, тогда легко читается, в том числе поэтому код на картинке не нравится, всего 4 строки, а читается тяжело.
282 1872834
>>72817
>>72831
Казалось бы, если ты вкатыш, то постоянно следишь за новостями языка, должен знать все новые свистоперделки. Хуевые вкатыши получаются. Ладно бы старье не знали бы какое-нибудь, а тут...
283 1872835
>>72741
Сначала ответь зачем.
99% ебнутых запросов от того, что ты делаешь что-то неправильно. Твой яркий тому пример.
284 1872842
>>72835
Синяя кнопка скрывает\открывает красный красный блок.
285 1872852
>>72842

>Синяя кнопка скрывает\открывает красный красный блок.


Что будет с красным блоком, когда он скрыт? Как будет использоваться место слева от синей кнопки в этом случае? Там будет пустое место или туда заедет какой-то текст?
286 1872853
>>72832
Спс за развернутый ответ
287 1872854
>>72852

>Что будет с красным блоком, когда он скрыт?


Он будет скрыт.

>Там будет пустое место


Да
288 1872860
>>72783
Сдвинь зеленую залупу через position: relative
289 1872863
>>72860
Так делал, но флоат проще.
290 1872869
>>72834
Выебнулся, молодец. Вот только цель этого оператора проверить на отсутствие значения, а false он пропустит как true.
291 1872870
>>72869
А false - это не отсутствие значения. Это присвоенное булево значение.
292 1872872
>>72854
Ну тогда там скорее будет красный блок со скрытым содержимым. Соответственно твоя кнопка не должна убирать родительский блок, она должна скрывать его содержимое, кроме синей кнопки.

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

Если тебе нужно, чтобы текст обтекал синюю кнопку, тогда нужен float по идее. Если нет, там слева заголовок, тогда тупо вложенные флексы
293 1872877
>>72869
Из однострочников самый корректный вариант
return a ? a : 42;

Другие меняют тип возвращаемого значения, например "" превратят в 0, что иногда может быть некорректным поведением.
294 1872881
>>72877
Что не так с a || 42 ?
295 1872883
>>72877
Не, пожалуй я туплю. Пойду дальше работать.
296 1872886
>>72870
>>72877
С проверкой на нулевое значение, тогда можно вообще сократить всё до.
const a ??= 42
297 1872905
>>72881
Если a === 0, будет 42.
298 1872910
>>72886
Проебался с const. Но вы поняли.
299 1872915
Бля, какое же Вуй костыльное говно, реакт по сравнению с этим просто ванильный жс. Настало время ставить плагины на модули, модули на плагины сами не поставятся.
300 1872917
>>72905

>return a ? a : 42;


>Если a === 0, будет 42.


Да, мы же однострочниками меряемся
301 1872931
>>72673
Ты забыл упомянуть, что для программирования нужны специальные гены, причём разные под отдельные языки.
302 1872940
>>72931

>гены, причём разные

303 1872951
>>72931
Даже гены не помогут, если не начать специализированное обучение с 12 лет. Ну по аналогии с другими областями, не будешь нормально кормить пиздюка - вырастает низкорослый дебил-коммунист.
304 1872993
>>72915
Ты явно чего-то не понял.
Никаких костылей и говна там нет.

>реакт по сравнению с этим просто ванильный жс


Это, типа, комплемент, лол?
305 1873010
>>72993

>Никаких костылей и говна там нет.


Ну тебе норм, это понятно.
# OP 306 1873013
>>72931
У меня 47 хромосом, например.
307 1873021
>>73013
Мединский? Что ты здесь делаешь?
308 1873042
Я так пынимаю, вакансии все. Работающие, в ваши компании нанимают в декабре, или вы уже оливьешку с шампусиком и мандаринками наворачиваете?
309 1873048
>>73042
Если очень нужен - нанимают.
У нас вот - наняли.
Но, большинство - уходит в спячку.

Также, умные люди понимают, что это время года не очень хорошо для принятия важных решений - можно совершить ошибку, т.к. мозг работает в довольно своеобразном режиме. Надо перетерпеть до конца января.
310 1873049
>>73042
Думаю что на пару месяцев уже все.
311 1873060
Дёргать XHR на window.unload норм тема, проблем не будет? (Про sendBeacon в курсе, но у нас IE11)
312 1873064
>>73060
Надо использовать pagehide а не unload
https://habr.com/ru/company/domclick/blog/530590/
313 1873068
>>73064

>pagehide а не unload


Хуита какая-то. Если вешаю на него обработчик, то он не срабатывает при закрытии вкладки. Если дополнительно вешаю на unload, то срабатывают оба
314 1873077
Как проверить существует ли вообще сейчас определенный объект или его нет? Вот например у меня в том случае, если приходит ошибка от сервера создается в редаксе такое поле state.user.error.message, а если ошибки нет, то изначально объект user у меня пустой, соответственно и error и message у него вообще не объявлены. Что в этом случае можно сделать? Каким образом можно проверить, появился ли объект если изначально на него никак невозможно сослаться? Либо в любом случае нужно создать всю структуру объекта с пустыми полями, и потом уже проверять что в них пришло?
315 1873090
>>73077
Старый добрый
if (state.user && state.user.error) { return state.user.error.message }
316 1873091
317 1873101
>>73077
if(state?.user?.error?.message) return state.user.error.message
318 1873106
>>73101
>>73091
>>73090
Спасибо, все варианты работают, но про ?. вообще не знал, и читается охуенно
319 1873124
у меня есть класс Игрок

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

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

В класс что ли? Игрок.всехводноместо()
320 1873125
можно выполнить в консоли
document.body.animate([{filter:'hue-rotate(0deg)'},{filter:'hue-rotate(360deg)'}],{duration:5000,iterations:Infinity});
image.png570 Кб, 680x340
321 1873126
Я так понимаю документация по vue v3 написана с расчетом на то, что я знаком с vue v2, т.е. для вкатывания с нуля не подходит?
322 1873130
>>73124
Тебе же сказали - у тебя должен быть класс, являющийся моделью игры. Вот там и должна быть эта функция.
Потому, что Игрок у тебя не должен знать, в каком он месте.
Это должна знать модель игры.
323 1873131
>>73126
На оф. сайте?
Там же с нуля всё расписано, просто отдельная докуметация.

Картинка полностью отражает современные процессы, лол.
324 1873133
>>73125
Разрешаю.
325 1873134
>>73133
ты где-то вопрос увидел?
326 1873136
>>73131

>Картинка полностью отражает современные процессы, лол


wishful thinking https://www.npmtrends.com/angular-vs-react-vs-vue
327 1873137
>>73126
Почему реакт всё время ставят рядом с vue? vue — фреймворк, реакт — нет. vue надо сравнивать с фреймворками на реакте.
328 1873138
>>73136
Загибается же в конце.

>>73137
Под "реактом" имеют в виду всю систему этого лохотрона.
Реакт - Редукс - Хуюкс - ...
329 1873140
>>73136
И да, он пока только засмотрелся, самое интересное будет потом.
330 1873141
>>73138
реакт - редукс - хуюкс — тоже не фреймворк, их руками дружить дорого. Фреймворк на реакте — Next.js, он круче Vue.
331 1873143
>>73141
Это фуллстак. Он не нужен.
332 1873147
Есть пустой объект const emptyUser = {id: "", username""}, как лучше делать его копии когда надо гдето его копию подставить чтоб сам пустой объект никогда нельзя было изменить.

[...emptyUser] сойдет или надо там через new emptyObject(), или object.assign?
333 1873148
>>73131

>На оф. сайте?


Да

>Там же с нуля всё расписано, просто отдельная докуметация.


Я начинал сначала читать документацию по vue v2, потом узнал что есть v3 и начал изучать ее, только вот она на англ и ее труднее понять и самое главное что там примеры кода уже не такие полные как в туторе второй версии.

Я вкатываюсь с нуля, это мой первый фреймворк, если чё.
334 1873149
>>73147
{id: "", username""} — но это же не пустой объект
335 1873150
Как писать код где в теории идут запросы на сервер если я фронт учу? Я ж ничего в бекэнде не понимаю толком.
Ну типо, мне еще учить какой нить пхп или ноду надо что бы во фронт залезть?
336 1873151
>>73150
Бэк должен предоставить тебе апи, то есть какие есть запросы, какие параметры они принимают, и что возвращают
337 1873153
>>73148
Читай по v2 на русском.
Отличий много, но, для полного ньюфага они не принципиальны.
Более того, v2 - проще.

>>73147
Тебе лучше сделать так, чтобы твой рендерер, и другие части программы, нормально воспринимали именно пустой объект {}.
Т.е., чтобы не надо было явно пустые поля задавать. Обычно так делают.
338 1873154
>>73149

>не пустой объект



Пустой в смысле у него есть структура, но ниче не заполнено чтобы очистить формочку
339 1873155
>>73150
Используй публичные тестовые апи пока, чтобы не делать свой сервер.
См. https://reqres.in
340 1873158
>>73126
Если собираешься что-то кроме петов делать, то забей на v3. Один хуй будешь ковырять проекты на v2, которые ещё и не факт будут мигрировать на новую версию.
341 1873159
>>73137
А nuxt.js тогда что? Фреймворк фреймворка?
342 1873161
>>73159
Vue на столько плохой фреймворк, что над ним приходится строить ещё один фреймворк
343 1873173
>>73151
>>73153
>>73155
>>73158
Спасиб котаны
344 1873175
>>70895
Ага
121.png51 Кб, 1834x410
345 1873177
Есть элемент VUE. Он отрисовывается, только если метод возвращает нужное значение. Также возвращаемое методом значение используется, чтобы задать элементу аргумент и само содержимое элемента.

Немного не догоняю, как здесь можно не запускать три раза метод, а один раз? Вычисляемое свойство не подходит.
346 1873182
>>73177
Вызовом метода присваивать значение `this.param`, а дальше сравнивать и проставлять значение как {{ param }}.
347 1873189
>>73177
Там где-то выше должон быть хук, который срабатывает при изменении param, и делает methodParam = method(param), а в шаблоне заменить method(param) на methodParam
348 1873210
>>73177
1. Так делать точно не надо, это лютейший говнокод. Просто эссенция говнокода.
2. Как надо? Это зависит от того, что такое твой param, и нахуя тебе сайд-эффекты при рендеринге. Что-то у тебя там не то.
349 1873218
>>73210
Нужно добавить элементы в ячейки таблицы. В param данные слота по текущей строке. Метод рассчитывает значения в зависимости от этих данных.
350 1873222
>>73218
Всё равно не очень понятно.
Но, если что-то реально хитрое, то, возможно, стоит использовать не шаблонный рендеринг, а рендер-функцию, как в реакте.
JSX|TSX прикручивается несложно, но, один раз можно и без него.

Ну, или запоминай в переменной в data, и используй не вызов метода, а эту переменную во всех случаях, кроме первого, как советует >>73189
Причём, как-то так:
v-if="method(param) && methodResult != 'ass'" :arg="methodResult" ...
Т.е. method(param) просто возвращает true, а реальный результат записывается в this.methodResult.
Назвать это всё надо по-человечески, разумеется.
351 1873225
>>73222
И да, делать method(param) && methodResult != 'ass'
надо чтобы ясно дать понять тому, кто это будет читать, что тут происходит. Т.е. чётко выразить намерение.
352 1873237
>>73222
https://codepen.io/DrDrDr/pen/dypGxpK

Вот, например, как избежать дублирования getColor?
353 1873242
>>73177

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

https://github.com/react-bootstrap/react-bootstrap/issues/3518
354 1873260
>>73237
https://pastebin.com/02v9N3CP

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

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

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

Вычислять такое в шаблоне - не очень хорошо, и не очень быстро, кстати. И, самое важное - все оптимизации Vue при этом идут по пизде.
Так что - делай лучше сразу в данных.
355 1873267
>>73237
>>73260
Собственно, вот, color добавлен в модель:
https://pastebin.com/UrPqBVsq

Выглядит намного лучше, понятнее, легче дорабатывать и т.д.
Можно и остальные вычисления тоже заменить таким образом.
356 1873281
>>73267
А если нету даты и данные из пропсов берутся? Создавать дату дату с этими данными только для рендеринга?
357 1873289
>>73281
Можно и так.
От задачи зависит.

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

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

И, более общее соображение - если уж у тебя MVC|MVVM фреймворк, надо это использовать, по возможности.
358 1873290
>>73177

VUE же умер после выхода 3 версии.
359 1873291
>>73281
>>73289
Но, тут есть нюанс.

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

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

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

Короче, всё зависит от задачи.
360 1873309
>>73138

>Загибается же в конце.


>>73136
Ну там загибы и посильнее были, сказать, что реакт вот прям взял и умер это уж совсем толстота, тем более вы забыли про бульён native, тут vue просто пинает труп
361 1873360
Анонче, делаю простенькие на жаве. Нужно прикрутить фронтенд. Что выбрать: вью или реакт?
362 1873366
>>73360

> Анонче, делаю простенькие на жаве. Нужно прикрутить фронтенд. Что выбрать: вью или реакт?



Похуй что

https://www.primefaces.org/
14462897801140.jpg167 Кб, 803x1024
363 1873507
Помогите начинающему долбоебу.
У меня в ангуляре есть кнопка, на которой висят 2 метода, один работает на подсчет кликов по кнопке, другой - запускает таймер с setinterval-ом, после которого кнопка станет disabled. Как сделать так, чтобы не плодились setinterval-ы? С меня нефть и все такое.
364 1873510
>>73507
Запихни вызов интервала в именованную функцию и её вызывай.
attempt.png5 Кб, 422x200
365 1873523
>>73510
Сейчас у меня так, в чем ошибка?
366 1873549
>>73523
В начале функции добавь:
if (this.timerId !== undefined) return;
367 1873561
>>73549
Ого, вот это я даун. Спасибо большое.
image.png35 Кб, 613x406
368 1873697
сап погромач, изучаю потихоньку реакт и вот пытаюсь сделать простое создание пользователя. у меня локально крутится только реакт, шлю запрос на удаленный 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. как фиксить? я запутался
image.png56 Кб, 969x677
369 1873700

> VSCode, Vetur


Как сделать что бы в .vue файлах при наведении курсором на цвет #545288 всплывало окошко с выбором цвета.
370 1873701
>>73697
Если через postman проходит, то на серваке всё у них норм. Значит ты должен отправить CORS заголовок в запросе.
371 1873702
>>73700
Уверен, что у тебя плагин не тупит? Переключись на scss и посмотри подсветку синтаксиса, так как сейчас у тебя по сути всё одним цветом выделено.
372 1873709
>>73697
На серве пусть посмотрят. Ну или сделай в боаузере отдельный профиль без проверки корсов, это ж игрушка, а не на прод.
image.png217 Кб, 1423x731
373 1873713
>>73702

>Переключись на scss


Переключился на scss - работает. На sass автокомплит работает, но цвета нет. Странно.
374 1873716
>>73701
>>73709
так куда в итоге смотреть лол? у себя или у них? алсо какой заголовок в итоге то подставлять? пробовал 'Access-Control-Allow-Origin': '*' второй строчкой добавить - в итоге такая же хуйня
375 1873726
>>73291

>Но, в таком случае, почему бы не вычислить всё, что нужно, в parent компоненте?


А если повесить эту функцию добавления в дату на mounted, она же второй раз рендеринг вызовет? Это норм?
376 1873727
>>73697
Сервер находится на другом домене и должен поддерживать CORS, а он этого не делает. Об этом собсна в ошибке и написано.

>я шлю абсолютно такой же запрос через postman то получаю success


Конечно, постман же не браузер, там нет этих политик безопасности.
377 1873731
>>73716
Эта строчка должна в ответе приезжать. Пиздуй гуглить зачем корсы вообще придумали, а то на собесе за такое мигом мы вам перезвоним получишь.
378 1873737
>>73697
Добавь опциях fetch mode: "no-cors"
379 1873748
Я придумал свою модель голосований и создал для него класс.

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

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

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

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

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

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

>расторжении


>расположении

381 1873761
Как на vue перерисовать элемент на уже загруженной странице?
Например, у меня в mounted отработала функция которая поменяла статус какого то элемента.
382 1873763
>>73748
Создаёшь класс, который отвечает за список игроков и всякие их подсчёты, и перекидываешь счётчики голосовалке в виде примитивов. А голосовалка в свою очередь прокидывает примитивы списку.
Условно говоря если твой класс начинает включать в свойства массивы, особенно если это массивы объектов, то настало время создавать новый класс.
kmzvri1n.jpg17 Кб, 223x223
383 1873788
Почему мало кто любит Angular и много кто любит React? Обидно :(
384 1873789
>>73788
Потому что никто не любит жабапарашу, где в основном и используется ангуляр.
385 1873792
>>73789
что такое жабапараша?
386 1873793
>>73788
Потому что толпа хомячков не осилившая типизацию сказала, что ангуляр это сложно и запутанно, а теперь дружно наворачивает среакт и вуе
15211670377860.jpg287 Кб, 925x1032
387 1873794
>>73789
Я люблю жабапарашу...
388 1873804
>>73793

>сложно = хорошо, просто = плохо


У Терри есть для тебя новости
https://www.youtube.com/watch?v=k0qmkQGqpM8
389 1873837
>>73726
Да, лучше это делать в created.
390 1873849
>>73726
>>73837
Однако, не всё так однозначно:

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 в том примере (>>73267).
Думаю, дело в том, что реальный рендеринг происходит асинхронно, после nextTick.
Вообще, надо попробовать задебажить это дело и убедиться, что конкретно там происходит.
391 1873864
>>73849
Вы там уже 10 постов не можете разобраться где сайд-эффект вызывать? Vue это просто и понятно, кек. One true way.
392 1873867
>>73726
>>73849
Проверил только что.
Сделал компонент с render-функцией, чтобы была 100% уверенность когда там что рендерится.
Результат такой:

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

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

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

>>73864
Но, Vue - это действительно просто и понятно.
Двухминутный эксперимент - и все ответы получены.
Подобный же вопрос в реакте/ангуляре выебал бы мозги по-взрослому.
393 1873877
>>73867

>Подобный же вопрос в реакте/ангуляре выебал бы мозги по-взрослому.


Вопрос «где вызвать сайд-эффект» выебал бы мозги? Или «как отрендерить пропсы с вычисляемыми параметрами»? Не знаю как там в Ангуляре, конечно, но в Реакте они давно уже не стоят.
394 1873880
>>73877
Речь давно уже не про сайд-эффект.
Да и изначально это можно было назвать сайд-эффектом весьма условно. Перечитай, если интересно, там не так много.

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

>в Реакте они давно уже не стоят


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

Алсо, в Реакте, насколько я помню, вообще вопросы лишних рендерингов стоят мощно, как конский хуй от конского же возбудителя.
395 1873893
>>73880
Конечно, я прочитал ваш диалог, перед тем как отвечать. В реакте это делается прямо в рендере, если что, потому что мало данные один раз вычислить и записать на маунте — они же могут обновиться и производные, очевидно, надо будет пересчитать. Может в этих ваших вью какая-то другая магия, но я не понимаю зачем вообще нужен сайд-эффект если операция полностью синхронная и чистая.

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


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

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


Не знаю, у меня не стоят. Если у тебя с этим были проблемы, могу посоветовать пару приемов.
396 1873906
>>73893
Там "сайд-эффект" (если это можно так назвать) был для кеширования вызова метода, путём записи результата в реактивную переменную в data.
После первого ответа (>>73260) речь уже была о том, как без этого обойтись.

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

Но, конкретно та проблема с color в реакте вообше не встала бы, т.к. рендеринг делается не по шаблону, а в коде. В vue тоже так можно (через render-функцию), но это нетипично, и требует прикручивания JSX/TSX, иначе неудобно.
397 1873909
Кто-нибудь по-серьёзному пользовался Strapi? Как оно?
В инете попадаются статейки за 2019 год, где пишут, что довольно удобная вещь в качестве headless CMS, но ещё попадаются баги. Как сейчас с этим дела обстоят?
398 1874000

> outatimed7.000webhostapp.com


Наговнокодил свой первый to do list на vue, еще никогда собой так не гордился
399 1874014
>>73804

>веб-макака не может вырваться из своего манямирка в котором типизация усложняет, а не облегчает

15855935722820.png21 Кб, 626x265
400 1874016
>>74000
Гордишься тем что ты криворукая макака, которая срёт себе в штаны даже делая тудушку?
401 1874023
>>74000
Найс туду ЛИСТ без ul/ol.
vue-todo.png4 Кб, 599x138
402 1874025
>>74000
Ну и шрефты у добавляемого элемента отличные от начальных.
403 1874029
>>74023

>Найс туду ЛИСТ без ul/ol.


Зачем они нужны? Я понимаю что HTML это семантика и все такое, но постоянно выключать стиль и убирать отступы заебывает.
404 1874041
>>74029
Не пробовал на базовом элементе отключать стиль и отступы?
405 1874042
>>74029
У тебя кстати в туду листе нет никакой возможности отметить действие как выполненное
406 1874088
Колупаююсь в реакте. И вот такая проблема в главном App я выстраиваю роутинги:
<Route exact path="/users">
<Users users={this.state.users}></Users>
</Route>
<Route exact path="/users/:id">
<ShowUser/>
</Route>
Когда захожу на страницу пользователей то все загружается корректно и один раз, а когда захожу на страницу определенного юзера, тогда у меня компонент вызывается бесконечное количество раз. В чем мб проблема? Юзера т.е. информацию о нем при этом корректно отображает
407 1874108
>>74088
А вне роута нормально работает? Возможно что ошибка в самом компоненте ShowUser, которые вызывает бесконечный луп ререндеров.
image.png29 Кб, 530x305
408 1874114
>>74108
что значит "вне роута"? то есть когда я не по линку с /users перехожу а напрямую ?

>ошибка в самом компоненте


а че в нем такого может быть? пик прилагаю.
409 1874118
>>74114
Вопрос #4: когда вызывается useEffect?
410 1874133
>>74114
Ну да, как и я говорил, бесконечный луп ререндеров. Иди читай как пользоваться useEffect.
image.png22 Кб, 868x323
411 1874191
>>74025
>>74016
Завтыкал что таски могут вылазить за верстку. Как лучше сделать перенос?
Мне в голову приходит только grid-template-colums: 2% auto 2%

>>74016

>Гордишься тем что ты криворукая макака


Чё такой злой, дядь, я почитал документацию vue и посмотрел как сделана тудушка у них, дошел до момента на пикрелейтед и понял что нихуя не понял. Пришлось делать как могу.
Может я тупой скорее всего, но у них в документации проскакивают вещи, которые не упоминались ранее, например почти в самом начале был момент с watch, хотя его перед этим тоже не объясняли, а я ж не вундеркинд нахуй.
412 1874195
>>74118

>useEffect?


Вот этот ублюдк - единственная причиная по которой я не перекатился в хуки, видимо я еще не постиг дзен хуков, но это просто лютый ебанный пиздец каждый раз, не указал завимость - жди засранный лог. Указал - улетел в бесконечность. Понятно что код говно, но в этом смысле в классами гораздо проще работать. Указал условия для ререндера, и всё
413 1874198
>>74133
Луп из тысячи залуп.
Enjoy your React.
414 1874205
>>74195
Так пока не перекатишься - не постигнешь дзен. Думай эффектами (тм).
415 1874254
>>74191
Перенос это `word-break`. Сейчас бы сетку пихать для переносов, вообще охуеть, да она бы и не помогла, так как количество элементов не изменяется.
416 1874262
>>74191

>дошел до момента на пикрелейтед и понял что нихуя не понял.


А чего именно ты не понял?
Там выдаётся событие (emit event = выдать событие).
Событие - это способ сообщить родительскому компоненту, что нужно что-то сделать. В данном случае - удалить этот item. Событие имеет тип (название), в данном случае - 'remove'.
В родительском компоненте, соответственно - обработчик @remove (т.е. at-remove, т.е. при-удалить).
В событии ещё могут быть параметры, но, в данном случае - это не нужно, родитель и так знает, какой это item.
417 1874281
>>74262
>>74254
Спасибо аноны

Как средствами Vue реализовать этот ванильный js скрипт https://jsfiddle.net/qv7gxtbf/21/ ?
Не понимаю почему в Vue событие по клику вносит изменение в html код, а по интервалу - хуй.
418 1874320
>>74281
Если только фон покрасить, то вообще жс не нужен, делается через `@keyframes` в CSS и там же можно задавать длительность и тип цикла. Плюс выглядит намного плавнее.
https://jsfiddle.net/9yotaqLk/1/
419 1874329
>>74191
Так надо было в на ангуляре делать, там такой хуерги нет, всё ясно и понятно.
420 1874401
>>74329

>Так надо было в на ангуляре делать, там такой хуерги нет, всё ясно и понятно.


Так все в один голос заявляли, что Vue лучшее решение для новичка, особенно тупого.
421 1874457
>>74401
Они просто ничего кроме вуе/реакта не пробовали и живут слухами.
422 1874489
>>74401
Всё правильно тебе заявляли.
Но, "лучшее" - не значит "бесплатное" или "вообще не требующее усилий".
423 1874500
>>74281

>Не понимаю почему в Vue ...


Vue - реактивный фреймворк.
Т.е. шаблон рендерится из модели (данных), и автоматически обновляется при изменении данных.

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

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

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

И да, для анимации в Vue есть специальные средства, но, лучше бы ты, для начала, разобрался с основами.
424 1874549
Докер заменит виртуалку?
425 1874550
>>74500
Пик1, нажимаю на кнопку, жду 3 секунды и нихуя, класс из data не прилетает в свойства класса.
Пик2, нажимаю на кнопку без таймаута и все работает.
426 1874553
>>74550

>Пик1


this куда указывает?
427 1874555
>>74550
console.log(this)
428 1874605
>>74550
Тебе уже сказали, но я добавлю пиздюлей, лол:
У тебя там function() {...}. Оно имеет свой this.
Сделай вместо этого () => {...}.

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

Можно и сейчас так сделать, но, лучше стрелку.
image.png290 Кб, 1920x1080
429 1874615
>>74553

>this куда указывает?


windows

this.testDivClass = "first" судя по console.log работает, просто оно почему то не попадает из data в template, не обновляется класс.
430 1874617
>>74615

>windows


Ну во первых window, во вторых тебе нужен не он.
431 1874618
>>74133
так если я его убираю и оставляю голую функцию то все равно оставляется луп из рендеров
432 1874619
>>70885 (OP)
Насколько длинными могут быть название функций? По стилю, как принято? Если допустим у меня для нормального описания выходит 45 символов это норм?
433 1874621
>>74617

>во вторых тебе нужен не он.


Таки да, истинный testDivClass что в data по прежнему null. А как к нему достать?
434 1874623
>>74621
>>74605
Тебе уже написали, что именно ты не понял?
435 1874628
>>74619
Нет, уебывай в жаботред.
436 1874631
>>74605
>>74623
Спасибо аноны, работает.
Безымянный.jpg98 Кб, 645x1108
437 1874634
Или если более конкретно как бы вы назвали функцию, которая получает на входе блок метода формата openApi а возвращает объект в формате Json Schema, блока содержащего параметры запроса.
438 1874639
>>74628
Ну так не удивительно, жаба же энтерпрайз стандарт, пишут сложные программы, а JS так, для макак. Визитку сделать для сайта, запрос в базу сделать, так что можно просто функцию x назвать, все равно это говно потом кому то переписывать
439 1874640
>>74634
Ну, например:
openApiToJsonSchema(a)
makeJsonSchema(oapiDef)
toJsonSchema(oapiDef)
И так далее
Можно сокращать oapi, jssch.

Я бы выбрал вариант 2 или 3, т.к. название параметра является говорящим, и нет необходимости удлинять название функции.
440 1874642
>>74640
Только будут еще функции для парсинга тела запроса, параметров в path и возможно в header, нужно конкретизировать.
441 1874645
>>74640
makeQueryJSchema тогда так назову, спасибо за подсказку.
442 1874658
443 1874692
>>74195
Просто надо сначала читать доку и статьи, а потом начинать кодить. useEffect - простой.
image.png362 Кб, 600x568
444 1874771
>>74692

>Просто надо сначала читать доку и статьи, а потом начинать кодить

445 1874772
>>74692

>useEffect - простой


Вообще конечно добавлю, что абсолютно всё кажется простым, после того как ты поймешь как оно работает. Я вот сейчас даже вспомнить не могу, почему у меня возникали какие-то проблемы в прошлом, над которыми я бился по нескольку дней подряд
446 1874796
>>74772
Что, ксли я теье скажу, бывает так, когда вообще не возникает таких проблем в фундаментальных вопросах, над которыми ты бьешься несколько дней.
image.png28 Кб, 200x203
447 1874801
>>74796

>проблем в фундаментальных вопросах


Я не понял к чему ты это вообще? Что язык лучше учить и знать хорошо, чем не учить и знать плохо? Совет из разряда - выучи наизусть весь CS, всю доку Js, всю доку реакта, все существующие паттерны, алгоритмы, тонкости, жирности и имей опыт работы с этим более 10 лет и всё. Как будто я блядь и без тебя этого не знаю
448 1874813
>>74796
Динамикоговноед не палится.
449 1874823
Короче такая ситуация, есть компонент который отрисовывает список в корзине. Тот же самый компонент отрисовывает списки товаров, которые отображаются на странице в поиске. Как сделать так, чтобы только когда список товаров отрисовывался в корзине, добавлялись кнопки "удалить" на каждом товаре? Есть ли какая-то возможность менять существующий компонент? Либо просто банально добавить внутрь самого компоненты отрисовщика пропс, который бы принимал снаружи что-то вроде inBasket и тогда уже добавлял кнопку? Какой вариант более правильный? Знаю что есть cloneElement но я до конца не могу понять как он работает, из доки пример его использования не совсем понятен
450 1874838
>>74823
Фреймворк-то какой у тебя?
451 1874839
>>74838
Блжат, Реукт, я почему-то забыл об этом написать
452 1874844
>>74823
Господи Иисусе, зачем cloneElement? Добавь проп isInBasket.
453 1874845
>>74844
Ок, думал просто может есть возможность взять текущий компонент и добавить в него новые какие-то возможности, чтобы у меня был один исходный компонент, но который в ненужных местах был по логике проще, ну ок, сделаю так
454 1874849
>>74845
Такая возможность, разумеется, есть и даже не одна, но зачем усложнять?
455 1874852
>>74849
Можешь сказать на будущее, в какую сторону гуглить?
456 1874861
>>74852
Если есть лишние 180 баксов, то в сторону epic react. Какого-то другого места, где были бы собраны и хорошо описаны продвинутые паттерны я не знаю. Твою задачу можно решить кучей разных путей: через передачу ноды в пропсах, через композицию, через clone elements и еще кучей более извращенных.
457 1874967
>>70885 (OP)
Анон, подскажи, пожалуйста, бесплатную IDE под Angular. Советуют Atom, но это же ёбаное убожество, даже после this. не работает автоподстановка. Ну и ошибки не подчеркивает.
458 1874972
>>74967
VSCode жеж
459 1874973
>>74967
Качай вебшторм, активируй триал на 30 дней. Потом гугли webstorm infinite trial / reset webstorm trial, что-то такое. Вуаля, у тебя бесплатный вебшторм. Он самый топовый для Ангуляра.

Ну или как вариант vs code, но там надо накатывать плагины, такое себе...
460 1874999
>>74967
В виме пиши, нахуй тебе иде? Ошибки линтер и тесты^W рантайм покажут.
attempt.png23 Кб, 581x717
461 1875001
Подскажите снова глупому, что я делаю не так, почему не работает мой clearInterval?
462 1875011
>>75001
На вид все ок вроде. Только ты все равно чем-то не тем занят, гейм луп должен через requestAnimationFrame работать и учитывать дельту времени в анимациях. Гугли как его делать на JS.
463 1875017
>>75001
С чего ты взял, что не работает?
464 1875023
>>75001
ClearInterval не меняет айдишник таймера в переменной.
465 1875024
>>75001
В Angular обычно не юзают setInterval. Лучше через RxJs создай timer и работай с ним.
466 1875026
>>70885 (OP)
Джвач, а почему в реакте перестают использовать class-based components?

class olol extends Component
467 1875027
>>75011
>>75017
>>75023
Ошибка была в другом месте, вроде как пофиксил.
>>75024
Спасибо, посмотрю.
468 1875031
>>75026
Мелочь удобнее на хуках делать. Я что-то нетривиальное по старинке предпочитаю делать.
469 1875032
>>75026
Функциональные удобнее и лаконичнее. А useEffect так вообще прекрасный швейцарский нож — заменяет сразу пачку методов жизненного цикла и убирает кучу выражений типа if (props.foo !== prevProps.foo) { ... }.
470 1875038
>>75026
Тому шо они не минимифицируются.
471 1875051
Я тут сделал себе приложение небольшое на реакте для портфолио, заодно учился. В общем подключается к tmdb апишке я вообще не ебал, что есть курсы с примером этой на апишке, делал сам, мне об этом на собесе сказали, лол, в нем выводятся популярные фильмы, есть регистрация и логин, есть возможность добавлять фильмы в избранное с общей страницы поиска и если внутри перейти к фильму то изнутри тоже можно добавить, после добавления кнопка меняет внешний вид, все это сохраняется в базе firebase, даже обновляется все синхронно если с телефона зайти и с компа одновременно. Все сделано вроде бы вполне грамотно, с редаксом, роутером и рабочими ссылками, с переиспользованием компонентов, с HOC и всеми такими штуками, пагинацией и даже поиск работает вживую, обновляя результаты каждую секунду при вводе, еще использован бутстрап и material ui ну тут я скорее учился просто, можно было только на последнем делать. Собственнов вопрос - это совсем днищенская ссанина, или норм для порфолио? С таким вообще можно куда-то соваться? Выложил на хероку, мог бы конечно скинуть показать, чтобы вы потыкали, но мне стыдно пиздец.

Дальше конечно я сейчас хочу все основы по чистому ЖСу задрочить, а то обосрался на собесе на этой почве. Но вот само портфолио для джуна, что там прям такого крутого должно быть? Подразумевается ведь, что ты не должен вроде бы совсем лютое что-то там делать? Просто я даже на это потратил примерно 3 недели, занимался по 9-12 часов в день, вообще без выходных, ну много хуйни переделывал, когда понимал что не совсем элегантно получилось и если что-то новое пилить, опять времени дохуя уйдет, лучше вместо этого голый Js потеребить?
472 1875052
>>75026

> почему в реакте перестают использовать



Чего только не перестали в реакте использовать
image.png206 Кб, 500x298
473 1875053
>>75051
Пиздец уже пишу как шиз, надо пробздеться немного, сильно уж не бейте
474 1875072
>>74967
В торрентах недорого покупается WebStorm.
Это топовая иде для веба.
Ангуляр - сложная вещь, и лучше иметь нормальную иде, а не хуиту типа VSCode.

>>74999
Чувак, те, кто может писать в vim, не задают таких вопросов.
И ангуляр лучше таки писать в иде.
Да и вообще современный веб.
475 1875074
>>75072
Лучше всего писать в вебшторме используя горячие клавиши вима+все возможности шторма
476 1875128
Как правильно

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

или

const a = class {
constructor() {
this.a = 1;
}
doSmth() {}
}
477 1875130
>>75128

>const a = class {



>const a = new class {



Быстрая фиксация.
478 1875139
>>75130
Если ты не знаешь, зачем тебе класс, скорее всего он тебе не нужен.
479 1875141
>>75128
>>75130
Можешь забыть про классы пока пишешь на JS. Вспомнишь о них когда будешь писать на TS, если вообще будешь.
480 1875148
>>75139
Бля. Не помню где прочитал, что нужно не this.doSmth() писать, а нью класс делать, будто бы так правильнее.
481 1875149
>>75128
Разница - она не здесь, а дальше.
Когда у тебя есть класс - ты можешь потом создавать много его экземпляров.
В жс (фронтенде) такое очень редко нужно.
Если тебе нужен всего один объект - то это 1-й вариант.
482 1875159
>>75141
А че на тс обязательно наяривать на классах?
483 1875169
>>75159
Совсем не обязательно.
Он - ангулярщик, скорее всего.

В TS - важнее интерфейсы.
А реализацией может быть любой объект, хоть литерал (как вариант 1 выше), хоть экземпляр класса.
484 1875173
>>75130

>new class ...


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

>>75149 - кун.
485 1875193
>>75159
В TS они обретают смысл, когда тебе нужно описать какую-то сущность и гарантировать что в коде ты не будешь обращаться к методам/полям которых у этой сущности нет, а также типизировать методы и функции, что позволит определять их предназначение без необходимости чтения кода тела функции/метода.
изображение.png13 Кб, 521x325
486 1875204
Я правильно реализовал? Можете подсказать ошибки может в названии, расположении переменных, в стиле кода.
Мне нужно чтобы совершенствоваться. Помогите.
487 1875211
>>75204
Нет, не правильно.
488 1875220
>>75204
voteIds -> voteTimers

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

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

Вообще смысл того, что ты хочешь сделать, не очень понятен.
489 1875273
Дико бесят фрейворки элементов (как ряктовые, так вуйные) из-за уродства элементов. Стоит писать свой или стилизовать готовый?
490 1875304
>>75273
Библиотеки, ты хотел сказать?
Дико уёбищный material design, который нормально выгляди только на мобилах и больше ни для чего не годен?
Понимаю.

>Стоит писать свой или стилизовать готовый?


Смотря какова цель. Можно даже совместить.
491 1875314
>>75273
Пиши свой, все готовые хуйня — то стилизуются косоебо, то работают криво.

написал уже штук шесть для разных проектов
492 1875339
Имею код с первого пика. Пытаюсь установить данные которые прилетают я точно знаю что они не пустые. В консоли хуйня со второго пика. почему он мне по нормальному устанавливать не хочет ?
493 1875348
>>75339
Все там нормально устанавливается. В консоли пустой массив потому что замыкания в JS так работают. Реакт же не мутирует products.
494 1875350
>>75339
Мне кажется, так нельзя смотреть products.
Попробуй сделать setInterval(()=> console.log(products), 0), например.
495 1875367
>>75348
>>75350
а почему тогда на другой странице у меня спокойно нормально работало? такой момент интересует.
496 1875385
>>75367
Что блин значит «нормально»? С моей точки зрения то как оно у тебя работает на скриншотах это и есть нормально — в products был пустой массив и выводится пустой массив. Стейт в Реакте иммутабелен, я не понимаю чего от него ждешь. Поставь console.log прямо в компоненте, и увидишь, что триггернулся рендер с новыми данными. Что у тебя там в другом компоненте происходило я понятия не имею.
497 1875412
пацаны, где тред по реакту?
498 1875417
>>75412
В пизде. Пошел на хуй.
499 1875505
>>75339
Не ебу что ты там делаешь,, но скорее всего у тебя получение этих данных не происходит мгновенно, а после обновления они у тебя уже не обновляются, потому что ты пустой массив у юзэффекта
500 1875531
>>75339
Потому что setState() асинхронный, иди читай доку реакта от корки до корки.
501 1875532
>>75531
Зачем читать? Это же не роман, нужно наизусть выучить
hook.png14 Кб, 657x133
502 1875556
>>75531

>setState() асинхронный


Одна история охуитильней другой.
503 1875572
>>75532
>>75531
>>75556
дристанул
>>75505
>>75385
ну понял тогда
504 1875582
>>75531
И изменение стейта и сам рендер очень даже синхронные, в чем легко убедиться, вызывав в эффекте последовательно setState и лог в setTimeout с 0. Коллбэк в setTimeout приедет в консоль уже после рендера с новыми данными.
505 1875584
Я не пойму, 7-е издание этой книги уже вышло на русском языке или нет? Вот оригинал https://www.oreilly.com/library/view/javascript-the-definitive/9781491952016/
Вот якобы перевод http://www.combook.ru/product/12023280/ но на торрентах нет, и сайт какой-то хуйпоймический, на озонах нет
506 1875585
>>75531
Вот и вся суть всех этих доко-спекочитальщиков
507 1875629
Как найти все объекты созданные классом?

Сразу в статик написать allobjects и добавлять туда при создании?
508 1875633
>>75629
Создаёшь абстрактную фабрику классов и в неё скидываешь инфу о созданных объектах каждого класса.
509 1875635
>>75633
Мне нужно ресетнуть все объекты созданные определённым классом.

Я вот думаю:

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

И чтобы ресетнуть, нужно будет просто пройтись по массиву. Хуня?
510 1875654
заспредь
511 1875666
>>75629

>Сразу в статик написать allobjects и добавлять туда при создании?


И сразу скажи досвидос памяти. Тут нужен WeakSet

>>75635

> let a = new MyClass();


> MyClass.allobjects.push(a)


Без фабрики заебешься после каждого new делать push, где-нибудь обязательно забудешь это сделать, а когда надо будет поменять поведение так же заебешься везде менять
512 1875683
>>75666

>И сразу скажи досвидос памяти.


Почему? Там же только ссылки.

>Тут нужен WeakSet


Как это поможет? По нему даже итерироваться нельзя.
513 1875686
ПЕРЕКАТ >>1875685 (OP)
ПЕРЕКАТ >>1875685 (OP)
ПЕРЕКАТ >>1875685 (OP)
ПЕРЕКАТ >>1875685 (OP)
ПЕРЕКАТ >>1875685 (OP)
ПЕРЕКАТ >>1875685 (OP)
ПЕРЕКАТ >>1875685 (OP)
ПЕРЕКАТ >>1875685 (OP)
ПЕРЕКАТ >>1875685 (OP)
ПЕРЕКАТ >>1875685 (OP)
514 1875744
>>75585
Чувак, он имел в виду, очевидно, то, что эффект от его выполнения будет виден после обработки всей текущей очереди событий.
Т.е., чтобы увидеть результат, надо делать setTimeout(..., 0);
515 1875763
>>75629
Создаешь статичное поле-массив у этого класса, в конструкторе класса пишешь MyClass.StaticArrayOfInstances.push(this);
В дополнении к этому создаешь статичный метод ResetInstances который будет делать что то вроде: MyClass.StaticArrayOfInstances.forEach(e=>e.reset());
516 1875774
>>75763
Что только не велосипедят, лишь бы EventEmitter не использовать
517 1875849
>>75763
Так конструктор выше делается, чем объявляется статическая переменная.
снимок.png36 Кб, 1288x1485
518 1875958
>>70885 (OP)
Помогите новичку в React, пожалуйста. Есть родительский компонент, который содержит несколько дочерних компонентов-форм, которые можно добавлять и удалять по нажатию кнопки в родительском компоненте. Изначально количество компонентов зависит от того, какие данные пришлет сервер. В родительском компоненте есть еще кнопка "Отправить", по нажатию которой нужно забрать данные из всех дочерних форм и отправить на сервер.
Как получить доступ к данным в дочерних формах из родительского компонента? Я хотел создать для каждого дочернего компонента стейт в родительском и передать его в пропсах, но React не позволяет использовать useState в цикле.
519 1876174
>>75958
Редукс.
520 1876303
>>75556
Ну и? Функция то не синхронно обновляет стейт, а ставит в очередь, пиздец дожили фронтендеры читать разучились.
521 1876304
>>75582

>И изменение стейта и сам рендер очень даже синхронные


>в чем можно убедится вызвав асинхронную функцию которая поставит колбек сеттаймаута в конец очереди эвентлупа


Чел, ты сам себе противоречишь, иди читай что такое евент луп и что такое асинхнонные действия и синхронные.
522 1876313
>>75958
А зачем тебе useState в цикле если ты можешь в главном компоненте динамически создать объект по данным с бека в useEffect и уже его положить в useState? Редукс можно использовать конечно если у тебя приложуха немаленькая, но если у тебя в приложении ничего кроме этой формы нет то никакой редукс там не нужен, можно вполне обойтись пропсами.
523 1876904
А куда из шапки делся learn.javascript.ru? Неужто осознали что он говно?
524 1877043
>>70885 (OP)
Есть какой-нибудь список задач на UI на которых можно реакт тренировать? А то чёт я кроме todo листа никаких идей не нахожу.
525 1877049
>>76904
Лол, лучшее, что есть в ру сегменте
526 1877584
>>70885 (OP)
Бля, на проекте подрузили js abac (Attribute Based Access Control) типо так пизже, но у меня уже глаза вытекают, что это за хрень и нафига нужна? Без нее ж нормально жили
527 1877810
>>75417
быстро порвался, безкомпонентный
528 1878113
>>70885 (OP)
Возможно ли, на скриптах, реализовать минимальный функционал переводчика веб-страниц, в виде какого-нибудь расширения, чтобы просто задать там дефолтный язык - русский, и не пихать каждый раз копипасты в тренслейт гуголь ком?
Чтобы оно переводило абы-как, а что не переводится (например код) - оставляло как есть.
529 1878115
>>78113
Да, да. И главное, чтобы база для перевода и автозамены - хранилась локально, а не чтобы в сеть куда-то утекала инфа.
530 1878515
mobx
Тугой Орех 531 1878970
Есть ли вариант заменить всю коллекцию в базе данных одним HTML реквестом? Проходится по каждому элементу с помощью PUT пздец как влом, хотелось бы что-то типа axios.PUT(localhost:8080/notes, newNotes) но мне выдает 404.
2.PNG103 Кб, 1047x1115
532 1879354
Как это сделать без юз стейта?
А то реакт ругается, когда я вызываю эту функцию...
Мол инфинити луп, много ререндеров
533 1879696
Аноны, подскажите, мне нужен какой нибудь небольшой клиентский шаблонизатор для JS. Что бы разные данные, которые AJAX запрос возвращает отрисовывать удобно.
534 1879710
Mobx
535 1879891
Подскажет кто-нибудь по верстке? Я в этом совсем не специалист.
Наверстал галлерею изображений - аж самому нравится.
Я не умею в адаптивную верстку и поэтому поставил бутстрап. Все красиво, но галлерея пошла по пизде, вместо красивой секти, которая даже на телефонах смотрится нормально, там одно изображение на весь экран. Можно ли как-то отменить правило коллапса бутстрапа для контейнера и его потомков?
Первый пик - без бутстрапа.
Второй - с ним.
Вот и хотелось бы как-то отменить ресайз для контейнера. Я второй раз так наверстать не смогу прост.
536 1879979
Господа жсобояре, мне лень идти регистрироваться на стаковерфлове, поэтому печатаю здесь.

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

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

Буду рад любой помощи
537 1880159
В стандартной библиотеке (или как там у вас это называется) есть структура данных стек? Или его всегда нужно самому пилить на массиве? Я просто с плюсов
538 1880170
>>80159
Cори, я не знал, что у массива есть push/pop
539 1880241
Ананас. Поясни на пальцах плс. Какая нахуй разница между интерфейсом HTMLElement и Node? Я квериселектором получаю элемент. Квериселектор не может вернуть конкретно только элемент, подходящий к интерфейсу Node (только если так HTMLElement Node | null, а так не подходит следующей функции) . Дальше мне этот элемент нужно вкинуть в функцию, которая ожидает элемент, подходящий только под интерфейс Node. Как это соединить вместе? Может хуёво объяснил, но я только недавно начал ковырять тс.
540 1880244
>>80241
Дорогой, дневник.
Вопрос, снимается. Нужна была проверка, что в переменной не null. Алсо, почитал доку HTMLElement интерфейс наследует интерфейс Element, а тот наследует Node.
541 1880812
Парни, как в юнит тестах проверить что метод из дочернего класса вызвал родительский метод внутри себя с таким же самым названием (через super) ?
image.png37 Кб, 865x458
542 1880836
Кто может объяснить, почему объект window так странно работает?

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

JSBin: https://jsbin.com/futoramexe/edit?js,console
543 1880837
>>80836

Быстрофикс: Объект window это такой же объект как и объект b
544 1880839
>>80836

>Кто может объяснить, почему объект window так странно работает?


Так любой скоуп работает
545 1880943
>>70885 (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

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

В общем, гляньте, посмотрите код, может всё-таки не всё можно перепилить, а может и всё. Бггыы.
545 1880943
>>70885 (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

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

В общем, гляньте, посмотрите код, может всё-таки не всё можно перепилить, а может и всё. Бггыы.
546 1880945
>>80943
Опционально, наверняка, серверную часть, можно было бы на Node.JS перепилить, но это уже на крайняк как-бы, если на клиенте нельзя сделать. Потому что такая зависимость как Node.JS это был бы огромный минус для cliet-side софтины, которую можно таскать в zip-архиве, на флешке.
photo2020-10-3018-33-59.jpg121 Кб, 1072x949
547 1881068
Вот вам джуновское задание. Решайте.
548 1881099
>>81068
Сам получил, сам решай
549 1881156
mobx
550 1881172
Помогите, пажаламста, начинающему, который перелез и не понимает рекурсию от слова совсем.

Задание:

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

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

Заранее, пасиба любому неравнодушному.
551 1881173
>>81172
Так и с чем тебе помочь? Ты хоть попытайся сам подумать, а там подскажем
552 1881177
>>81173

Я вообще не вдупляю, как работает рекурсия. Терроризировал и препода, и видосы, и учебники. Вот прям максимально не укладывается в голову, хз. Хотя всё остальное отлично идёт.
553 1881184
>>81177
В чём проблема из функции f вызвать функцию f, для какого-то "меньшего" аргумента?
554 1881186
>>81184

То есть мне нужно просто создать "функцию в функции"?
555 1881190
>>81186

>создать


Вызвать
556 1881437
>>81177

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

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

Подозреваю, что и эта метафора с нуля может не дойти.
557 1881461
>>81186
Вот тебе рекурсивная сумма массива.
С хвостовой рекурсией.
Смотри и вывод в консоль тоже.
https://jsfiddle.net/hgznmycj/
558 1881467
>>81461

>С хвостовой рекурсией.


В js её нет, но по идее норм.

А мутировать массивы - это пиздец
559 1881478
>>81461
Чувак, хвостовая рекурсия просто есть или нет.
Она не в js, она сама по себе.
А то, чего нет в js - называется tail call elimination (tail call optimisation).

А мутация там - для наглядности и простоты кода.
Это пример.
560 1881480
>>81478 --> >>81467
быстрофикс
561 1881488
>>81437

Спасибо. В принципе, это совсем на пальцах. Засейвлю и буду подглядывать, подставляя под синтаксис.
562 1881490
>>81461

Огромное спасибо, чувак. Искренне благодарен.
563 1881496
>>81478
Никогда не приходилось думать о хвостовой рекурсии вне контекста tco, но ты прав, да.
564 1881506
>>81496
Ну, думать о ней вне контекста tco имеет смысл для ручной оптимизации.
Т.е. некоторые вещи удобно осмысливать в рекурсивном виде, а потом просто превратить в цикл.
Тред утонул или удален.
Это копия, сохраненная 27 апреля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски