[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.46281 Reply
File: main-qimg-2a7cef12cc63002b267d248611c76e58.png
Png, 782.27 KB, 572×861 - Click the image to expand
edit Find source with google Find source with iqdb
main-qimg-2a7cef12cc63002b267d248611c76e58.png
И мы продолжаем ликвидацию безграмотности, неспешные беседы и яростные дискуссии вокруг яваскрипта.

Предыдущий тред: >>40541
>> No.46294 Reply
Пустой тред. ОП, подставь в шапку список литературы и ссылки.
>> No.46295 Reply
ОП, не ставь, так хорошо.
>> No.46296 Reply
>>46281
> яваскрипт
> дурная кратинка
>> No.46324 Reply
Ищу друзей, для совместного обучения-общения на тему js.
>> No.46325 Reply
>>46324
Да вы, батенька, извращенец.
>> No.46326 Reply
>>46324
Друг друга в сракотан пороть будете?
>> No.46327 Reply
>>46324
Создавай.
>> No.46329 Reply
>>46327
Что есть за мессенджеры?
>> No.46330 Reply
>>46329
Вообще? Discord, telegram, slack, tox.
>> No.46343 Reply
>>46330
telegram mb?
>> No.46344 Reply
>>46343
Как удобно, туда кроме одной молчаливой конфо████ все равно никто не придет.
>> No.46345 Reply
>>46344
Можно делать то же самое тут. В этом треде или в новом.
>> No.46346 Reply
>>46344
И как обменяемся? Кстати по js, там достаточно обширное компьюнити.
>> No.46361 Reply
Посоны, как запилить глобальный flow?

Например:
$ cat lal.js
const add = (a: number, b: number): number => a + b;
console.log(add(5 + 7));
$ node --какие-то-опции ./lal.js
Должно вывести 12, а не "SyntaxError: Unexpected token :"
>> No.46363 Reply
>>46361
$> npm install -g flow-remove-types
$> flow-remove-types src/ --out-dir build/
Создаешь две директории. В src - фаил который нужно интерпретировать, в build - фаил после интерпретации.
Запускаешь как:
$> node ./build/name_script.js
>> No.46720 Reply
https://learn.javascript.ru
Комментарии под каждым уроком не оставят тебя одного даже если что-то не получается.

А касательно конфочек, я например есть в парочке таких. Они рано или поздно умирают из-за того что люди матереют и теряют интерес на общении в них, да и проблемы которые там обсуждаются не такие уж серьезные.
>> No.46755 Reply
Боженька, мои любимые простые и очевидные zsh-скрипты рили отсасывают у вебпака. Одним конфигом настроить сборку клиента и сервера? Изи. Ещё бы с HMR разобраться — и будет счастье.
>> No.46756 Reply
File: 1477636365555.png
Png, 1.95 KB, 300×20 - Click the image to expand
edit Find source with google Find source with iqdb
1477636365555.png
Пацаны, тут вот есть promise-loader.

Но с ним надо делать так:

const foo = await require('foo')();

Можно как-то грузить зависимости с помощью промисов, но чтобы по-человечески:

const foo = await require('foo');

Разница небольшая, но бесит. Или проще подправить лоадер ручками?
>> No.46781 Reply
>>46330
Jabber уже не в моде?
>> No.46782 Reply
>>46781
Нет, не в моде.
>> No.46882 Reply
Какой самый популярный нынче стек при работе с React.js на более менее мейнстримовых работах? Часто ли используют Redux и Immutable.js?
>> No.46887 Reply
File: 1480684311473.png
Png, 1.24 KB, 300×20 - Click the image to expand
edit Find source with google Find source with iqdb
1480684311473.png
Анон, хочу научиться кодить на Java, денег ходить на курсы, к сожалению нет, но очень хочется выучить его и сменить своё место работы.
Мне подсказали какой-то сайт javarush, типа "отличный учебник по яве не такой как фсе", не сочтите за рекламу. Стоит ли пытаться выучить его на подобных сайтах или лучше не париться с ними, а просто брать мануал по Java и зубрить его? А ведь хочется как в школе, прочитал и закрепил практикой, чтобы какие-то задания были.
Или капча мне намекает, чтобы я не тратил время попусту?
>> No.46888 Reply
>>46887
Так жаба или жабаскрипт? У них ничего общего, кроме названия.
Но по обоим мануалов и учебников как говна за баней.
>> No.46889 Reply
>>46887
> не такой как фсе
Как же вы заебали. Ничего не такого, как все нет и не будет, блядь.
>> No.46894 Reply
>>46888
Таки жаба. Т.е., в принципе нет каких-то "получше" или "похуже" книг и учебников и можно свободно брать первый попавшийся и читать?

>>46889
Какой-то ты недобрый. Я же потому и написал с ошибкой, ибо тоже согласен, что таковых нет. Будь добрее.
>> No.46895 Reply
>>46894
> потому и написал с ошибкой, ибо тоже согласен, что таковых нет.
Не должен был ты вообще поднимать этот вопрос. На сайте написано, что он не такой как все?
>> No.46896 Reply
>>46894
> книг и учебников и можно свободно брать первый попавшийся и читать
Есть книги для начинающих, которые суть пересказ документации для читающего разной степени дебильности.
Есть практические книги, которые показывают всякие приемы, паттерны и рецепты конкретного языка.
Если ты в что-то уже можешь неплохо, то тебе надо именно документацию и всякие референсы-читшиты и что-то из второй категории. Если нет, то любую из первой.
>> No.46897 Reply
>>46896
А ещё есть дерьмовые книги, которые ничего не дают. Волшебных серебряных книг не существует. Есть книги как все и хуже чем все. Лучше поискать классические книги, которые больше всего хвалят. Просто, понимаешь, в чём дело. Не нужно думать, что всем известные классические книги, которые пиарят на каждом шагу - это туфта, а вместо них есть секретные сокрытые во тьме книги, которые лучше. Классика работает, она не сломана. А умудрённые опытом старые программисты не дураки.
>> No.46899 Reply
>>46882
Redux не для всего подходит, сам абрамов говорит. лучше всего ванильный флакс попробовать и т.д. Чтобы почувствовать для чего это все.

Нынешний стак знаний такой: vanilla, nodejs, koa, react, webpack ну и любой flux-методология для хранения модели.
>> No.46900 Reply
>>46899
Понимаешь, в чём дело. Я учавствую в разработке большого энтерпрайз-проекта для банка. И там иногда приходится тулить длинный и сложный джаваскрипт-код, который реализует какие-то очень сложные и запутанные формы, или какие-то редактируемые списки чего-то. И я чувствую, что упёрся во что-то. Я не знаю, какие применить паттерны и принципы для кода, чтобы легче было его менять и отлаживать. Код быстро и легко становится запутанным и непредсказуемым. Куча привязок к событиям, которые делают то, не знаю что, тогда, не знаю, когда. Никогда не знаешь, что произойдёт, после очередного события. Невозможно предугадать порядок, в котором выполняется код. Вечно что-то инициализируется слишком поздно или рано.
Да ещё эти долбанные jquery-плагины, будь они не ладны. Притули этот - заставь работать не так, как задуманно - не знаю как, но надо. По дороге вводим и обнаруживаем миллион багов - и так сойдёт.

Так программировать больше нельзя. Нужно делать что-то абсолютно по-другому. Именно фронтенд.
>> No.46901 Reply
>>46900
> Так осваивать бабло больше нельзя. Нужно делать что-то абсолютно по-другому. Именно откатпопил.
Купи гитару.
https://www.youtube.com/watch?v=y9sNXF-UnIQ
>> No.46903 Reply
>>46901
Объяснись.
>> No.46904 Reply
>>46900
Вот jquery-ui это просто край...
>> No.46905 Reply
>>46903
Научись играть на гитаре и расслабь моск, женщина.
>> No.46906 Reply
>> No.46907 Reply
File: giphy-(1).gif
Gif, 456.50 KB, 600×573 - Click the image to expand
edit Find source with google Find source with iqdb
giphy-(1).gif
>>46905
Но ведь... Технологии... Будущее... Производительность труда... Экономика... Доллар растёт...
>> No.46908 Reply
File: original_drawn_by_nakamura_sumikage__bf0937425ad09.jpg
Jpg, 532.53 KB, 689×972 - Click the image to expand
edit Find source with google Find source with iqdb
original_drawn_by_nakamura_sumikage__bf0937425ad09.jpg
>>46907
Автоматизацiя снижает порог вхождения в самые разные профессии, эт точно. Вот только к автоматизацiи банков это некокова ат-ношения не имеет.
https://www.youtube.com/watch?v=n6_pT4LX4tE
>> No.46909 Reply
>>46908
Ты это на каком языке написал, в /d/ на тебя накрысить?
>> No.46910 Reply
File: kousaka_honoka_love_live_and_love_live_school_idol.jpg
Jpg, 208.51 KB, 800×1122 - Click the image to expand
edit Find source with google Find source with iqdb
kousaka_honoka_love_live_and_love_live_school_idol.jpg
>>46909
1) Азмъ есть Создатель Энторнетов
2) Погромисты нинужны_
3) Купи гитару.

https://www.youtube.com/watch?v=aVH6aR3VaJU&index=22&list=PLAqnFfqOQXqWDUjMD6hGnpWIlwZgJdFg6
>> No.46911 Reply
>>46909
Русский язык с с добавлениями двух i в случайно выбранных местах, и только. Если бы это был настоящий украинский в соответствии с украинской нормой, то ты бы ничего не понял.
>> No.46912 Reply
>>46900
> энтерпрайз
С говном лучше не связываться.
>> No.46913 Reply
>>46912
Ага, брошу всё и открою свою студию по клепанию игр в стиле пиксель-нуар. К чёрту банки и заводы, кому они нужны.
Это всего лишь, мать его, задача. Типичные проблемы разработки никуда не денутся от того, что я куда-то перейду, даже если сменю язык.
Сам то ты что делаешь?
>> No.46915 Reply
>>46913
Ну в энерпрайзе легаси уже зашквар.
>> No.46921 Reply
>>46917
Если бы это был настоящий украинский, то этот монголоид писал бы украинские i.

>>46905
> моск
> некокова
> Энторнетов
>> No.46922 Reply
>>46913
Сам-то он мамкин супер-ученый-питонист-байтоёб, очевидно же. Не слушай никого, работай там где нравится. В промышленном софтописании хотя бы стабильные и, зачастую, хорошие деньги платят.
>> No.46923 Reply
>>46922
Я всё знаю о супер-учёных. В 11-м классе они супер-учёные, а все полные идиоты. На втором курсе они посредственные студенты. Потом отчисление, разочарование, никто меня не понимает, капиталисты мешают жить, не хватает на гречку, общество потребления.
>> No.46943 Reply
File: 856124e6-835f-4e94-8e40-2c9593b1a2b7.jpg
Jpg, 390.14 KB, 1280×1863 - Click the image to expand
edit Find source with google Find source with iqdb
856124e6-835f-4e94-8e40-2c9593b1a2b7.jpg
>>46922
>>46923
К сожалению энтерпрайзу со старой системой управления не выжить в нынешнем фронтенде не будучи поглощенным в легаси говно. Для этого нужны медленно-развивающиеся языки, жава или питон, например. Так что не злитесь, я не пришел вас обманывать.

Так что если ты фронтендер, а не просто балуешься, так как заставили дяди, обязательно беги из любого энтерпрайза, чтобы не стоять на месте и шагать в технологическую сингулярность с другими фронтендерами!
>> No.46992 Reply
>>46296
> дурной тред
> хоть картинка нормальная
>> No.46993 Reply
>>46943
> Для этого нужны медленно-развивающиеся языки, жава или питон, например.
Обоснование их медленного развития у тебя есть? На сколько хорошо ты знаешь все эти мавены, хайбернейты и спринги? Вообще всё это развитие выглядит только как попытки догнать Джаву, у которой уже всё это есть. Жс только недавно научился просто создавать ёбаные классы и до сих пор не может это делать без кучи зависимостей. Пых 7.1 заново изобретает статическую типизацию! До сих пор джаваскриптеры не могут просто так брать и управлять своими зависимостями. Это пиздец какой-то.
>> No.46994 Reply
>>46993
> Пых 7.1 заново изобретает статическую типизацию
Клторой никто там всё равно пользоватся нибудиит.
>> No.46997 Reply
>>46900
В общем, ты совершенно прав, ты действительно упёрся. Хорошо известно, во что именно: в сложность, с которой средствами джаваскрипта и фреймворков нельзя справиться (по разным причинам, выходящим за рамки треда).
Многие люди живут с этим всю жизнь, как раз в "энтерпрайзе". Проекты пишутся, портятся, выкидываются, переписываются на новых "технологических стеках" и т.д., уже десятки лет.
Если ты действительно решил, что так программировать больше нельзя, то добро пожаловать в волшебный мир computer science! Тебе понадобится базовое образование, знание других языков, а также понимание математики, на которой они основываются. Но, из моего опыта, после возникновения чувства "так больше нельзя", это единственный путь к внутреннему спокойствию.
>> No.47003 Reply
>>46997
Реакт частично основан на CS, нет? Не просто фреймворк, а он и его методология. Если нет, расскажи, какие именно разделы CS ты имеешь в виду?
>> No.47016 Reply
> именно разделы CS
1.6
>> No.47048 Reply
>>46993
> Жс только недавно научился просто создавать ёбаные классы
которые все равно остались Java-wannabe маскировкой прототипного наследования
>> No.47050 Reply
>>46993
Ну на ноде все почти как у нормальных языков. Только на жс.
>> No.47051 Reply
>>46993
> Пых 7.1 заново изобретает статическую типизацию
На самом деле там аннотации типов не является статической типизацией. Язык интерпретируемый и динамический, проверка типов аргументов функции происходит в ран-тайме, для статической типизации нужен компайл-тайм.
>> No.47057 Reply
File: heroin_hero_de.jpg
Jpg, 21.67 KB, 500×333 - Click the image to expand
edit Find source with google Find source with iqdb
heroin_hero_de.jpg
>>46943
Уже освоил тайпскрипт/элм/пьюрскрипт и сделал своё приложение на реакте/преакте/снабдоме? Может быть, не фанат и сделал всё на вью/мифриле/метеоре? Или загниваешь на древнем ангуляре?

А галп/грант/вебпак/бауер/нпм солянку скриптов круто поддерживать ведь, правда? Шутки про фреймворк недели, остались, конечно, в 2015, но как же это утомляет. Нельзя догнать этого сраного дракона. И уж тем более нельзя за ним гоняться так просто. Если есть проблемы какие-то - надо решать, а подбирать фреймворк месяца, чтоб не быть как тупой энтерпрайз, а то пацаны на коворкинге засмеют, это дрочево какое-то.

Ненависть.
>> No.47083 Reply
>>47057
> Если есть проблемы какие-то - надо решать
И вот ты решил проблему. Что явилось её решением? Очередной набор каких-то изощрений, который повлёк за собой новые абстракции и кучу общего кода. И вот ты написал свой собственный фреймворк недели. Весь выбор, который у тебя есть - это сделать решение самому или найти его где-то. Фреймворк или очередной скрипт - это и есть решение какой-то конкретной проблемы, не больше, не меньше. Скрипт становится легче поддерживать из-за того, что у него нет звучного названия?
Шутки и ненависть то у нас есть, а что по рациональным аргументом? Теорема Пифагора верна, так как это смешно, если это не так, и я ненавижу когда квадрат гипотенузы не равен сумме квадратов катетов. Нет, таких доказательств ни один препод не принял бы. Да и вообще, жизнь жестока, с чего тебе не ненавидеть свою работу?
> Нельзя догнать этого сраного дракона. И уж тем более нельзя за ним гоняться так просто.
Мультиварки и автомобили каждый год выпускают новые. А мы что, лысые? В одну реку не войти дважды. Да, мы бежим. И будем бежать.
> а то пацаны на коворкинге засмеют
Никаких пацанов в коворкинге, только аргументация и опыт, только хардкор.
>> No.47095 Reply
>>47057
Почему не хочешь перейти на rails?
>> No.47096 Reply
>>47095
При чём здесь рейлз? В чём смысл этого комментария?
>> No.47106 Reply
File: свое-уноси-с-собой.jpg
Jpg, 136.32 KB, 960×677
Your censorship settings forbid this file.
r-18g
>>47096
Тот аутист скорее всего имел ввиду то, что в рельсах glue относительно готовый и стабильный, в отличие он жс инфраструктуры. С другой стороны ты конечно можешь туда интегрировать все это webpack-npm-grunt-петушение, и оно после пары матюгов тоже будет работать по командочке rake assets:precompile
>> No.47107 Reply
>>46281
холодильник прикольны
>> No.47110 Reply
Доброкодеры, выручите ньюфажину. Подскажите учебник по node.js, где всё разжёвывается более-менее понятно
>> No.47111 Reply
>>47110
Node.js the Right Way - Jim R. Wilson
Интуиция говорит мне, что ты влез в нод без достаточно хорошего знания js и смежных вещей. Если это так, то надо сначала разобраться с js.
>> No.47112 Reply
>>47111
Ну почему без достаточного. В js более-менее могу, а вот node почему-то никак не идёт
>> No.47113 Reply
>>47112
> более-менее могу
Этого мало.
>> No.47114 Reply
>>47113
Это я прекрасно понимаю. И, конечно же, буду учить и практиковаться дальше. Иных вариантов я не вижу
>> No.47115 Reply
>>47111
А в чем именно там разбираться? В новых стандартах? ES6 и тд.
>> No.47116 Reply
>>47115
Ну да, хитрый неожиданный синтаксис, возможно пара каких-то ещё технологий.
>> No.47261 Reply
File: 2Uyim7.jpg
Jpg, 151.81 KB, 960×720 - Click the image to expand
edit Find source with google Find source with iqdb
2Uyim7.jpg
>>47057
тайпскрипт/флоу
реакт
рамда/лодаш
ридукс
вебпак
ярн

по всему есть годная документация с самыми простыми примерами + экземпляры апсов

остальное излишество и необязательно учить, тот же преакт для хипстеров, которые скучают
>> No.47782 Reply
Пробовали уже ts?
>> No.47783 Reply
>>47782
Пару лет назад.
>> No.47993 Reply
https://pastebin.com/3VB4m39K
На отправке сообщения с файлом кидает ошибку "Can't set headers after they are sent"
Вроде бы я разобрался, мол, ошибка в res.redirect('/section1');, который ставит хедер, поэтому если я что-то уже отправил, то новые поля уже нельзя добавлять. Но как тогда всё это чинить?
>> No.48111 Reply
File: Без-названия.png
Png, 2.85 KB, 306×164 - Click the image to expand
edit Find source with google Find source with iqdb
Без-названия.png
Зачем нужен node.js? Зачем? Чем это лучше java? Серьёзный вопрос. Вроде бы что-то в этом есть, но, блин, сам язык имеет столько проблем и нормальной статической типизации нету вообще. Он как будто из 95-го года к нам прибыл, но в 2017 почему-то поднимается вверх. И он нихрена не простой как php, эта путаница с this и эти цепочки прототипов -- это ещё та наркомания.
>> No.48112 Reply
>>48111
Джаваскрипт уже не так маразматичен как был n лет назад. Подлатали наследование, колбэки->промисы->async/await, лямбды. Джаваскрипт задумывался и развивался как скриптовый язык с динамической типизацией. Не любишь и хочешь статику? Используй надмоск типа тайпскрипта или пройди в любую доступную альтернативу.

Поднимается вверх по инерции и доступности. Он уже собрал серьезное сообщество и библиотеки находясь только лишь в браузере. После этого пытаться его заменить было бы бесконечно сложно (смотри dart), а node.js был лишь вопросом времени.

Общую сложность пониманию/вкатывания ты преувеличиваешь. По крайней мере в сравнениями с уровнями абстракций в той же джаве (aka проблемы есть у всех).

Из плюсов джаваскрипта, его асинхронная натура, event loop искаропки с зарождения. Все библиотеки с возможными блокирующими вызовами сразу были написаны подчиняясь одному стандартному циклу. Когда в классической модели тебе по быстрому понадобиться распараллелить какую-то задачу, ты стартуешь тред, и тут не с того не сего тебе нужно заботиться о синхронизации ресурсов и всех прелестях мультипотокового программирования.
Еще можно добавить возможность в джаваскрипте скрещивать экспрессивность функционального подхода со всем понятным императивным. Операции над коллекциями с [].map/reduce/every/filter/find например.
>> No.48113 Reply
>>48112
> Подлатали
Но оно теперь держится на заплатках, именно что. Как-то ну, блин, не удобно, вот не полностью всё правильно. "Я думал, лучше будет".
> в сравнениями с
Но там это для чего-то нужно и имеет обоснования, а тут нету обоснований. На доках Мозилы написано, что "на самом деле прототипы ещё более "powerful" чем классы". И ни одного примера в подтверждение этому тезису. Просто скажите, зачем. Но нет. Почему js такой загадошный? Я реально хочу, чтобы кто-то мне пояснил за эти прототипы, зачем оно вообще. Зачем они так сделали?
>> No.48114 Reply
>>48113
Само по себе прототипное наследование не такой сложный концепт каким ты его малюешь. Все в названии - eсть прототип в классическом понимании слова, ты клонируешь и мутируешь этот прототип реализуя наследование, а можешь работать прямо с ним до тех пор пока ничего другого не надо. Идея не была привнесена джаваскриптом. Предположу, что причинами по которым был выбран этот путь были простота реализации по сравнению с классикой, большая динамичность, отсутствие декларативности. Лучше спроси у Брендона Айка. Положу, они тогда не догадывались о последующем росте языка, и что у масс обученных на классику будут такие проблемы с пониманием прототипов. Другое дело, что реализации действительно была так себе и могла запутать понимание.

> теперь держится на заплатках
Обернули прототипы в сахар классов дабы помочь массам закрыть глаза на альтернативный подход без ломающих изменений. Кто знает и привык к прототипам продолжает работать с ними т.к. в библиотеках написанных на классах, классы все равно мапятся в прототипы. Кто пришел с классов и хочет писать на них - пожалуйста, вот вам обертки. Оптимальное решение.
>> No.48123 Reply
File: jinrui-pinterest.jpg
Jpg, 21.69 KB, 236×349 - Click the image to expand
edit Find source with google Find source with iqdb
jinrui-pinterest.jpg
>>48113
> Почему js такой загадошный? Я реально хочу, чтобы кто-то мне пояснил за эти прототипы, зачем оно вообще. Зачем они так сделали?
Его писал лиспер, понимаешь? И похоже что-то лисподушу в язык ему вложить немножко удалось, ведь жс в своем развитии ведет себя прямо по заветам скобочников - любую фигнюшку, которая тебе нужна в языке "можно сделать". Только разница с лиспом в том, что жс более обласкан вниманием и там эти фигнюшки таки делают. Хотя само ядро язычка довольно таки невзрачное, че уж там спорить.
>> No.48124 Reply
>>48114
> были простота реализации
V8 реализует через классику, когда может и переключается на полную реализацию прототипов, когда что-о идёт не так. Простоты реализации нет, эта херня мешает и замедляет. Классика проще и быстрее работает. Разработчики V8 много говорили об этом и о том, что лучше мыслить классами в V8.
>> No.48125 Reply
>>48124
Но вообще вопрос даже не в том, почему js такой. Вопрос, почему они не выкинут его и не сделают что-то лучше на замену? Я же знаю, что они могут.
>> No.48130 Reply
>>48123
Я где-то читал что js придумал не лиспер, а смолтолкист.
>> No.48148 Reply
>>48130
Там много всего намешано, еще говорят, что он пытался сделать scheme, замаскировав под джаву. Но вот эта лисповая изворотливость в жс чувтствуется. Я думаю нормальные дизайнеры языка не стали бы предусматривать конструкции вида "подсунуть функции другой контекст и выполнить в нем", лямбды и замыкания в 95 году. Жили бы как все с классами всем таким.
>> No.48175 Reply
>>48113
> Почему js такой загадошный? Я реально хочу, чтобы кто-то мне пояснил за эти прототипы, зачем оно вообще.
Меня больше интересует то, почему в JS нет целочисленных типов, и все считается в double-ах
>> No.48187 Reply
Хочу сделать бутстрапную страницу с всплывающими менюшками. Для этого нужна библиотека popper.js, её новый бутстрап требует. Если библиотека берётся и CDN, то всё работает нормально. Тот же файл, сохранённый локально, бутстрап не видит. Почему?
>> No.48195 Reply
File: Screenshot_20171027_210409.png
Png, 185.90 KB, 1476×1055 - Click the image to expand
edit Find source with google Find source with iqdb
Screenshot_20171027_210409.png
Котаны, я тут запилил юзерскриптовую транслитерацию.

Норм или можно что-то улучшить/исправить?

https://pastebin.com/cYaxaeZv
>> No.48198 Reply
>>48195
Он обрабатывает динамически добавляемый текст?
>> No.48201 Reply
>>48198
Нет, это было бы слишком напряжно для браузера, как мне кажется.
>> No.48206 Reply
>>48201
Мне так не кажется, но в любом случае советую исследовать этот вопрос самостоятельно. Обрати вниимание на DOM Mutation Events, собери метрику если можешь, будет потом что рассказать на собеседовании.
>> No.48277 Reply
Хочу схоронять инкрементальные снапшоты профилей втентаклика тех, за кем сталкерю, и нужна морда, чтобы потом их показывать. Как бы так ловко рипнуть морду и загружать в неё жсон?
>> No.48278 Reply
>>48277
И желательно, чтобы это работало и оффлайн, да.
>> No.48279 Reply
File: top_10.jpg
Jpg, 56.79 KB, 397×500 - Click the image to expand
edit Find source with google Find source with iqdb
top_10.jpg
>> No.48280 Reply
>>48279
Сударь, вы ебанулись.
>> No.48287 Reply
>>48277
Ты шизик.
>> No.48297 Reply
File: zzzzzzzzzzzzzzzzzz.jpg
Jpg, 173.03 KB, 1391×808 - Click the image to expand
edit Find source with google Find source with iqdb
zzzzzzzzzzzzzzzzzz.jpg
>>46281
Добрый день, доброняшоскриптеры.
надежда на вас.
Подскажите мне, пожалуйста, в чём ошибка моего кода?
песенку не выводит, консолелог вообще не включается чего-то, раньше работал. Я просто программирование забрасывал на год, сейчас типо вернулся.
Всё скопировал по книге, а эффекта нет.
Пол-вечера сижу гадаю, в чём дело.
Надежда на вас.
там внизу в отладчике он мне какую-то странную ошибку выдаёт мол я пропустил скобку после какой-то группы.
Я проверил - все скобки на месте.
Или я туплю дико?
Заранее благодарю за ответ.
>> No.48298 Reply
>>48297
console.log(count + " " word + "of beer on the wall");
Тут похоже плюс нужно добавить, перед словом word
>> No.48299 Reply
>>48298
Спс, сча попробую.
>> No.48424 Reply
>>48277
Самое простое решение - расширение для хрома или лисы, чем ты там пользуешься. Но готовся к пердолингу, ибо вк постоянно допиливают и парсер постоянно будет отваливаться.
Если же делать по уму, то использовать андроид-эмулятор и писать бота, используя официальный сдк - тогда инфа будет в наиболее удобном виде, и никаких отвалов.
>> No.48531 Reply
File: photo_2018-02-12_02-09-54.jpg
Jpg, 28.55 KB, 640×640 - Click the image to expand
edit Find source with google Find source with iqdb
photo_2018-02-12_02-09-54.jpg
Стал путаться в закладках браузера и прочих заметках, поэтому в качестве записной книжки с тегами запилил себе канал в телеграмме, куда начал скидывать все ссылки с кратким описанием и тегами, ну и прочий полезный контент. Основная тематика react, angular 2, typescript. Не реклама, подписчиков там почти нет, никакой раскрутки не хочу, просто вдруг кому пригодится.
@node_modules
>> No.48553 Reply
File: java.png
Png, 19.94 KB, 240×240 - Click the image to expand
edit Find source with google Find source with iqdb
java.png
Ламерский вопрос: яваскрипт это уже прораммирование или ещё вёрстка?
>> No.48554 Reply
>>48553
Вы шо же не слыхали? Уже и CSS нынче туринг комплит. Да.
>> No.48725 Reply
>>48553
Почти программирование (если ты завяз в паршивом веб-деве, где роль js исключительно в том, чтобы добавить динамики в статичный интерфейс) и наверное да (если ты завяз в бэкэнде (node.js) или ссаненьком WebGL).

ЗЫ.: не путай JavaScript и Java. Очень разные вещи с похожим синтаксисом.
>> No.48749 Reply
File: 123.jpg
Jpg, 44.37 KB, 1391×820
edit Find source with google Find source with iqdb
123.jpg
File: sdfdf.jpg
Jpg, 153.57 KB, 1030×790
edit Find source with google Find source with iqdb
sdfdf.jpg

Добрый день.
Подскажите, где косяк?
Чот ничего на странице не выходит, а должно, пока пробую по книге хоть.
И да, подскажите хороший разметчик помимо нотепад ++.
Вообще, такое ощущение, будто сам браузер код не видит, хотя всё верно.
Мб косяк в нотепад ++?
>> No.48750 Reply
>>48749
Всё, сам косяк нашёл, пробел между знаком равенства поставил.
>> No.48821 Reply
Бамп. Жава скрипт совсем не нужен никому, чтоле?
>> No.48822 Reply
>>48821
Ну я его уже почти месяц осваиваю, ажно калькулятор накодил30 строк чистой логики, ещё столько же стилей. Всё ещё не до конца понимаю зачем он, половину из его возможностей уже добавили в css, с другой стороны этот мерзкий js повсюду, значит кому-то нужен, надо освоить, потому что простая вёрстка никому нахрен не нужна: либо фасад делай послностью, либо серверную часть, а лучше всё вместе.
>> No.48823 Reply
>>48822
у меня проект, делаю почти три недели.
2500 строк, и это только начало.
Чото думаю тысяч на 30 выйду к концу лета.
>> No.48824 Reply
>>48823
Как будет неудобно, если люди станут отключать жаваскрипт у себя в браузере.
>> No.48825 Reply
>>48824
Так я для себя же делаю.
Да потом мб перекачусь в си шарп или еще куда.
>> No.48826 Reply
>>48825
> перекачусь в си шарп или еще куда
> яваскрипт
Лучше не затягивай с перекатом. Как показала практика, перекатиться будет ооочень слоооожно.
>> No.48827 Reply
>>48826
Конкретно с жавы или конкретно на сисярп?
>> No.48829 Reply
>>48827
Конкретно с яваскриптов.
>> No.48830 Reply
File: 15245598745470.jpg
Jpg, 116.98 KB, 633×807 - Click the image to expand
edit Find source with google Find source with iqdb
15245598745470.jpg
>>48823
Я один раз на ваниле за один день нахуячил 6к строк...
>> No.48831 Reply
>>48830
Что-то мне не верится, что руками можно за день столько написать.
>> No.48856 Reply
>>48831
Руками-то как раз, наверное, можно. Главное мозг не включать.
>> No.48860 Reply
File: комменты.png
Png, 82.71 KB, 1071×850 - Click the image to expand
edit Find source with google Find source with iqdb
комменты.png
Почитал комменты на javascript.ru.
Нет, конечно, замыкания довольно мозголомная темадля новичка как я, но две недели?..
>> No.48861 Reply
>>46281
Что такое замыкания? Я сам тереблю свой Питон, но уже много раз видел это прикольно слово, хочу узнать, что это у вас такое.
>> No.48862 Reply
>>48861
Функция с её областью видимости.
>> No.48867 Reply
function sum(a) {

var currentSum = a;

function f(b) {
currentSum += b;
return f;
}

f.toString = function() {
return currentSum;
};

return f;
}

alert( sum(1)(2) ); // 3
alert( sum(5)(-1)(2) ); // 6
alert( sum(6)(-1)(-2)(-3) ); // 0
alert( sum(0)(1)(2)(3)(4)(5) ); // 15
Почему тут не будет бесконечной рекурсии?я понимаю, что это связано с тем, что алерт преобразует выражение в строку, но базового случая рекурсии всё равно нет
>> No.48868 Reply
>>48867
Почему должна быть? Ты генерируешь функции и сразу их исполняешь, как цепочка кончается, последняя возвращенная функция отбрасывается и идет алерт с тустрингом.
>> No.48869 Reply
>>48868
> как цепочка кончается
Как? Как она кончается? Ну и что, что аргумента нет, функция-то вызывает себя независимо от того, есть аргумент или нет.
>> No.48870 Reply
>>48869
Она не вызывает себя, она возвращает ссылку на функцию, а ты вызываешь её скобочками.
>> No.48871 Reply
>>48870
function f(b) {
currentSum += b;
return f();
}
То есть вот так рекурсия будет?
>> No.48872 Reply
>>48871
Ну да, но тогда уж с b. Только она уже не выберется с второго вызова твоей цепочки.
>> No.48873 Reply
>>48872
Так, теперь то же самое, но медленно. Интерпретатор видит строку
> alert( sum(5)(-1)(2) );
и дальше он делает что?
>> No.48874 Reply
>>48873
sum(5) -> f(-1) -> f(2) -> f -> tostring -> alert
>> No.48875 Reply
>>48874
То есть
> sum() -> sum(5) -> f -> f(-1) -> f -> f(2) -> f -> tostring -> alert
так?
Ладно, думаю, привыкну.
Что не так здесь?

function Calculator() {
var a = 0, b = 0;
function f() {
read: function(){
a = Number(prompt('Введите первое число'));
b = Number(prompt('Введите второе число'));
},
sum: function(){
return a + b;
},
mul: function(){
return a*b;
}
};
return f;
};
var calculator = Calculator();
calculator.read();
alert('Сумма: '+calculator.sum());
alert('Произведение: '+calculator.mul());
Консоль пишет, что SyntaxError: function statement requires a name и показывает пальцем на методы f. Но где настоящая ошибка?
у меня очень плохо с пониманием снитаксиса, даже самый подробный из найденных учебников с javascript.ru этот момент почти никак не освещает и иногда просто преподносит вещи типа "так вот тоже можно писать, просто запомните"
>> No.48876 Reply
>>48875
> так?
Да, только sum(5) это прямой вызов, дальше как у тебя.

Со вторым примером вообще непонятка. Зачем ты определяешь проперти у функции? Тут нужен объект, т.е. var f={huita: function(){}};return f; и т.д.
>> No.48878 Reply
Вообще у тебя довольно странные проблемы, чисто синтаксические, лол.
Первый раз такое встречаю. Это первый язык, или ты на чем-то экзотическом писал раньше?
>> No.48879 Reply
File: DE56FQjWAAE3yi9.jpg_large.jpg
Jpg, 62.84 KB, 718×639 - Click the image to expand
edit Find source with google Find source with iqdb
DE56FQjWAAE3yi9.jpg_large.jpg
>>48878
Да.:3да, первый
>>48876
Затем, что функция ведь тоже объект, почему у неё не может быть своих методов?
То есть
function Calculator() {
var a = 0, b = 0;
return {
read: function(){
a = Number(prompt('Введите первое число'));
b = Number(prompt('Введите второе число'));
},
sum: function(){
return a + b;
},
mul: function(){
return a*b;
}
};
};
И всё? Вроде работает, но почему первый вариант не работал? Функция же это объект, а вызов функции по имени возвращает её код. Что не так?
>> No.48880 Reply
>>48879
> вызов функции по имени
В смысле без скобок.
>> No.48881 Reply
>>48879
Результат-то объект, но он создается через function, там другой синтаксис.
Можно навешать через function.property = ''.
>> No.48882 Reply
>>48881
Да, но почему? Это прямо в спецификации написано?
Что вообще можно почитать, чтобы там синтаксис разжёвывался?
>> No.48883 Reply
>>48882
Вот это годная книга, рекомендую.
https://eloquentjavascript.net/
>> No.48884 Reply
Кстати, как ситуация с use strict? Его сейчас всё ещё нужно писать отдельно или старые стандарты больше не поддерживаются?
>> No.48894 Reply
Проблемы с синтаксисом...
Проблемы с людьми, которые не умеют составлять учебнки!
> Фигурные скобки считаются объектом, только если они находятся в контексте выражения.
Эта информация находится примерно в середине учебника. До этого так же были оговорки насчёт вызова функции со скобакми и без и всякое друое. Вот почему бы просто не посвятить отдельную главу синтаксису, к которой, если что, можно было бы вернуться и перечитать, а не разыскивать крупицы информации по мегабайтам текста?.. И ведь это уже третий сайт с курсом js, а проблемы те же.
>> No.48897 Reply
>>48894
Смирись. Просто читай учебник целиком. Сожри всю информацию, а уже потом она у тебя в башке переварится.
>> No.48898 Reply
File: 14274344617810.jpg
Jpg, 50.45 KB, 660×440
edit Find source with google Find source with iqdb
14274344617810.jpg
File: ооооооооооооооооо...
Png, 13.45 KB, 675×349
edit Find source with google Find source with iqdb
ооооооооооооооооооооооооооооооооо.png

>> No.48926 Reply
.bind, .apply/.call

Насколько я понял байнд просто привязывает контекст, возвращая обёртку, а апплай и колл вызывают функцию немедленно с передачей контекстапо крайней мере так утверждает мозила. Но. У Кантора код, в котором он ставит функцию апплаем на таймаут сарбатывает по таймеру, а у меня - немедленно. Есть какие-то вещи, которые неочевидны и должны быть сохранены от профанов?
>> No.48935 Reply
File: BlXl1EAHVSg.jpg
Jpg, 91.68 KB, 604×585 - Click the image to expand
edit Find source with google Find source with iqdb
BlXl1EAHVSg.jpg
>>48926
Что неочевидного в apply? Причем тут таймаут? Таймаут просто вызывает функцию. Если ты хочешь вызывать функцию с заданным контекстом, то используй apply и передавай в него контекст. Если ты хочешь вызывать функцию без передачи контекста, то можешь работать с функцией с уже ранее заданным контекстом с помощью bind

https://gist.github.com/nanodesu88/1bc42da7ffd5782dd3f0a82d854c3ff1

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

https://gist.github.com/nanodesu88/30739fe3da3e93ed8b372b4b5b53a5b6
>> No.48938 Reply
File: 1298203382184.jpg
Jpg, 44.06 KB, 600×600 - Click the image to expand
edit Find source with google Find source with iqdb
1298203382184.jpg
>> No.48939 Reply
Кстати, что с интерпретатором бледной луны?
В лисе вот это
function sayMyName ({
firstName = 'Zell',
lastName = 'Liew'
} = {}) {
console.log(firstName + ' ' + lastName);
} работает нормально, а луна утверждает SyntaxError: missing : after property id
>> No.49002 Reply
Вы тут живые?
>> No.49003 Reply
>>48939
function sayMyName({firstName, lastName} = {firstName: 'Zell', lastName: 'Liew'})
>> No.49004 Reply
>>49002
Ну ячеловек, учащий жавоскрипт устал и на пару недель взял перерыв. А что?
>> No.49013 Reply
>>49004
Просто проверяю вас.
>> No.49014 Reply
File: De8HhOqWAAEfuVf.jpg_large.jpg
Jpg, 119.74 KB, 640×797 - Click the image to expand
edit Find source with google Find source with iqdb
De8HhOqWAAEfuVf.jpg_large.jpg
>> No.49118 Reply
XMLHttpRequest суть хитро обмазанный методами общения с сервером промис?
>> No.49176 Reply
>>49118
В твоем сообщении неправильно все.

XMLHttpRequest появился гораздо раньше промисов. И работает он через колбэки.
Его можно промисифицировать. Но можно воспользоваться функцией fetch.
>> No.49187 Reply
Анон, объясни, как работает стэк, очередь и прочие внутренности в ЖС. А то максимум, что я понял, так это то, что асинхронные функции "выпадают" из главного (он же вроде единственный?) потока. Желательно попроще, хоть на примере мужика, срущего с дерева, как в треде о сопротивлении электричества.
>> No.49207 Reply
>> No.49208 Reply
>>49187
Хуле тут вообще сложного? Просто функции дергают другие функции как обычно. Когда это закончилось, внешний цикл смотрит нет ли еще каких событий которые нужно обработать и запускает обработку следующего. Ничего не упустил? Может сэкономлю кому 26 минут.
>> No.49224 Reply
>>49207
>>49208
Вот спасибо, друзья. Наконец-то всё понял!
Но теперь есть следующий вопрос. Есть проект на Vue с Router и Vuex. Проект, естественно, не в одном файле, как новички делают, а в .vue- и .js-файлики (ибо сгенерирован командой vue create).
А теперь вопрос: можно ли взять что-то из Vuex.Store да использовать в .vue-файле (например, переменную из state в качестве счётчика)? Потому что единственное, что я нашёл, это передавать через props, и то - такая цепочка вырастет, что любой новый русский удавится.
капча "знающих скрипт" намекаэ
>> No.49240 Reply
>>49224
> Проект, естественно, не в одном файле, как новички делают
Так вот почему любая современная перделка рассирается минимум по десяти тысячам файлам - ведь просто складвать код в один файлик - это не тру-супер-про-какир-вей.
>> No.49241 Reply
1) Если я хочу что-то сохранить между сессиями я пихаю это в localStorage? Или в cache? Или в AppCache? Или в IndexedDB? Я думал есть только localStorage и печенье, а их вон как дохуя. И каждый из браузеров поддерживает какие-то из них, но не все вместе? И что из этого выбрать?
2) Везде где читал про жс говорили, что весь жс из всех скриптов выполняется в одной глобальной луже, и в итоге все попадает в глобальный объект window. Так что не так с service worker'ами? Почему у них какие-то ServiceWorkelGlobalScope? Почему self а не window?
>> No.49243 Reply
>>49241
> Если я хочу что-то сохранить между сессиями я пихаю это в localStorage?
Да. Везде работает и все про него знают.

> и в итоге все попадает в глобальный объект window
Это если ты, ну... не очень умный и разводишь однофайловую помойку с процедурщиной, думая "а, всё равно недоязык", как, к сожалению, и делает подавляющее большинство особенно всякие доморощенные писатели параше-движков за уважуху в конфе. Если организовать код в виде классов (уточнение: конструкторов), в window попадут только сами классы, и то — если только ты не засунешь их в подобие неймспейса, соорудив последнее из объектов, изнутри какого-нибудь локального скопа.
var Foo = new Object();

(function() {
  Foo.Bar = function() {
    this.baz = 1448;
    this.qux = function() { return 1337 };
  };
})();

// Elsewhere...
var instance = new Foo.Bar();
doSomething( instance.baz, instance.qux() );
Ещё глянь на browserify и webpack, в серьёзных проектах без них всё равно никуда.

> Почему self а не window?
self будет ссылкой на воркер. Колбэки для эвентов типа fetch, statechange и прочих (тебя же это смутило?) ты вешаешь именно на него, а не на объект окна, у которого таких эвентов просто нет. window — это не какая-то там самая супер-глобальная и универсальная зарезервированная переменная джаваскрипта, это просто объект, репрезентующий окно браузера.
И зачем тебе воркеры вообще, если не секрет?
>> No.49244 Reply
>>49240
Анон прав, так гораздо удобнее: поделил по смыслу и функционалу - и работа в разы легче идёт.
>> No.49253 Reply
>>49243
Вот вроде сам задал вопрос, а теперь разобравшись, сам отвечаю..

> не очень умный и разводишь однофайловую
По твоему, разные файлы получат разные глобальные объекты, умный? Нет, не получат. Сколько бы файлов не выполнялось, все нормальные файлы не воркеры исполняются в одном и том же глобальном объекте.

> классы, iife
И они попадают в глобальный объект.

> window — это не какая-то там самая супер-глобальная
Именно ей window и является. А у воркеров это WorkerGlobalScope, получающийся через self.
https://developer.mozilla.org/en-US/docs/Glossary/Global_object

В этом и был весь мой вопрос: 'у воркеров отдельный глобальный объект от остальных скриптов?'. И ответ, очень простой, да.

> И зачем тебе воркеры вообще, если не секрет?
Чтобы моя хуйня работала оффлайн: https://jan-white.github.io/my-works/005%20notebook/build/
Может кто умный оценить? Сделал и воркеры, и классы, и iife для динамического определения функций, и промисы, и async функции, в общем, использовал вроде все, что есть в джаваскрипте. Может покидайте, что дальше почитать, чтобы делать лучше. Пока я думаю реакт учить.
Больше всего я хочу узнать, как нормально делать интерактив. У меня это все сделано на data- атрибутах. И это работало нормально до тех пор, пока я не захотел, чтобы одна кнопка закрывала текущую модалку и потом делала кое-что. В итоге надо было повесить на кнопку два атрибута data-action, что невозможно. А даже когда я это обошел, не соблюдалась очередность - сначала срабатывал обработчик на кое-что, а потом закрывалась текущая модалка. Так что понятно, что нормальные люди делают это по-другому. Вопрос - как.
>> No.49285 Reply
>>49253
> исполняются в одном и том же глобальном объекте.
> исполняются
> в объекте
> файлы
Серьёзно? Ну ладно.

> Именно ей window и является.
Нет, не является. Ты путаешь джаваскрипт и дом апи.
$ node
> console.log(window);
ReferenceError: window is not defined
>

> моя хуйня
404
> думаю реакт учить
Разберись сначала с основами, чтобы не делать таких заявлений, как выше. Серьёзно тебе говорю. Даже если ты просто хочешь деняк поднять - уверенное знание языка будет серьёзным плюсом перед макаками.
Да, и насчёт реакта (и не только). Вот такой https://github.com/Jan-White/my-works/tree/master/004%20catEnergy/source подход организации исходников для реактов не годится. Технически возможен, но не нужен. Не разбивай по технологиям, это бессмысленно. Логичнее будет разбить на компоненты, как в бэм.
>> No.50074 Reply
File: unnamed.jpg
Jpg, 55.26 KB, 512×512 - Click the image to expand
edit Find source with google Find source with iqdb
unnamed.jpg
>>46281
Почему я нажал на ссылке Java, и перешел в тред JavaScript?
>> No.50084 Reply
File: image.png
Png, 230.55 KB, 2048×1536
edit Find source with google Find source with iqdb
image.png
File: image.png
Png, 182.62 KB, 2048×1536
edit Find source with google Find source with iqdb
image.png

Чёт я тугой. Не могу разобраться для каких целей используется this в параметрах функции тайпскрипта. В хендбуке мелкософта настолько огрызачно написано, что я аж не поверил. Предыдущие ревизии смотрел, там чуть больше, но один хрен не очень понятно.
Те по данному маркеру на уровне синтаксического анализа происходит верификация привязки функции к объекту?

Запись вида function foo(callback:(this:Bar, param: number)): void будет принимать параметром колбэка только методы объекта Bar с одним числовым параметром?
>> No.50085 Reply
>>50084
> callback: (this: Bar, param: number)
callback: (this: Bar, param: number) => void
проморгал тип возвращаемого значения


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]