Сохранен 555
https://2ch.hk/pr/res/1206689.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

JavaScript thread BigInt(106) /js/

 Аноним 09/06/18 Суб 22:07:06 #1 №1206689 
15275181425950.png
Ссылка на прошлый тред: >>1198383 (OP)

НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Для программирования на ХТМЛ https://codepen.io/pen/
Для программирования на алёртах https://jsfiddle.net/
Для фреймворков библиотек https://codesandbox.io/
Для живой странички из коробки https://repl.it/languages/web_project
Для Ноды с пакетами и консолькой https://repl.it/languages/nodejs

В этом треде собираются величайшие умы человечества – мастера валидации форм и специалисты по JSON-технологиям. Этот тред посвящён главному языку будущего – JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач – от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.

Часто задаваемые вопросы: https://github.com/vladimir37/js-thread/blob/master/Wiki/faq.md

Список материалов для изучения: https://github.com/vladimir37/js-thread/blob/master/Wiki/learn.md

Список инструментов и направления JS-разработки: https://github.com/vladimir37/js-thread/blob/master/Wiki/tools.md

Конфа /pr/ в Slack: https://slack-2chpr.herokuapp.com/
Аноним 09/06/18 Суб 23:22:43 #2 №1206765 
15a821ea79990bb7edd4eb058a510862--office-assistant-the-offi[...].jpg
В директории можно выполнить
npx live-server .
(точка в конце)
и получить сервер этой директории с живой перезагрузкой на изменениях.
https://www.npmjs.com/package/live-server
Аноним 10/06/18 Вск 00:13:33 #3 №1206804 
Stoxblockchain.jpg
>>1206689 (OP)
Всем здорово! Подскажите как вкатиться айти?
Мне тут кое-кто посоветовал начать с Кантора, это нормальная тема?
пикрандом
Аноним 10/06/18 Вск 00:52:46 #4 №1206820 
>>1206804
привет
Аноним 10/06/18 Вск 01:08:30 #5 №1206834 
>>1206804
Если с английским плохо, то начни с /fl
Начинаешь с
https://htmlacademy.ru/
Бесплатного хватит. Но если есть копейки, купи подписку на месяц, мотивирует.
Вместе с тем по вечерам внимательно смотришь
https://www.youtube.com/watch?v=Sy_wba7l1UU&list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5
После того, как закончишь академию
https://ru.hexlet.io/courses/introduction_to_programming
https://ru.hexlet.io/courses/intro_to_web_development

Теперь у тебя будет представление о программировании вообще и о вебе в частности. Тогда уже можно и Кантора навернуть или съебать в другом направлении.
Аноним 10/06/18 Вск 01:09:08 #6 №1206835 
>>1206208
>Реакт - это библиотека. Для рендеринга html. И больше в нем нет нихуя.
>Алсо, умиляет подход к передаче данных в компоненты. Сначала много разговоров про иммутабельность, пропсы, one-way, чистые функции, и прочее. Охуенно.
>А практически - что с этим всем делать? А-а-а, практически... Ну, практически - надо юзать редукс, который всё красиво сделает с чёрного хода, через недокументированные возможности.

Ну почему этот долбаный реакт взлетел, раз он особо нихуя не может?
Аноним 10/06/18 Вск 02:15:33 #7 №1206861 
>>1206835
React хорошо подходит для разработки большх проектов в больших профессиональных командах.
Оттуда и появился, собственно.

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

А вот Vue удачно вписывается в обе эти модели разработки.
Аноним 10/06/18 Вск 02:15:57 #8 №1206862 
>>1206835
наверн томушо ты цитируешь долбаеба)))
Аноним 10/06/18 Вск 02:38:04 #9 №1206867 
>>1206862
Нет, он процитировал не тебя.
Аноним 10/06/18 Вск 02:38:54 #10 №1206868 
>>1206867
вот и я о том)))
Аноним 10/06/18 Вск 05:26:39 #11 №1206902 
Снимок экрана2018-06-1005-18-36.png
Снимок экрана2018-06-1005-22-14.png
Снимок экрана2018-06-1005-22-51.png
Снимок экрана2018-06-1005-23-29.png
Сука этот ебаный вебпак с его publicPath'ом каждый раз заставляет меня возиться в конце проекта с ебучими путями до ассетов.
Что тут может не работать?
пик 1: относительный publicPath ( для gh-pages )
пик 2: лодеры
пик 3: зачем то добавляет еще раз /assets/assets/ к путям до шрифтов
пик 4: стили и js нормально подгружает используя относительный publicPath
Аноним 10/06/18 Вск 06:08:15 #12 №1206904 
Юзал реакт с обычным жс, решил перекатиться на тс, с чего начать? Стоит ли?
Аноним 10/06/18 Вск 11:08:09 #13 №1206931 
У мозиллы есть планы реализовать в квантухе поддержку FileSystem API на уровне хромиума?
Аноним 10/06/18 Вск 13:27:42 #14 №1206980 
>>1206904
Начни с Flow.
Аноним 10/06/18 Вск 13:41:03 #15 №1206991 
Подписался на эпичный тред
Аноним 10/06/18 Вск 17:33:17 #16 №1207189 
>>1206689 (OP)
Поделитесь ссылкой на торренты с интенсивом по свежему Angular от javascript.ru
Аноним 10/06/18 Вск 19:16:00 #17 №1207265 
/a{2}/.test('aab'); //true

Палит две А подряд

/a{2}/.test('aba'); //false

Как палить не подряд?
Аноним 10/06/18 Вск 20:03:29 #18 №1207303 
>>1207265
Не стоит вскрывать эту тему.
https://regex101.com/r/nO4sqP/3
Аноним 11/06/18 Пнд 13:34:43 #19 №1207667 
b31219da06152dee8e43b3847fc24969.png
Кто мне может объяснить эту хуиту, что там написано. Этот код.
http://bootstrap-4.ru/docs/4.1/components/forms/#custom-styles
Что это блять? Как этим пользоваться? Если я у меня какое-то приложение и валидация в нём это одна из функций, которай должна осуществляться, по нажатию на какой-то бтн. Как мне эту ебалу переписать и нормально пользоваться?
Аноним 11/06/18 Пнд 15:30:37 #20 №1207712 
>>1207667
>по нажатию на какой-то бтн
Тогда вся эта ёбала вообще не нужна - вызывай просто form.checkValidity().
https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation
(русский перевод там тоже есть, но неполный).

Что делает код на пике:
0. Запускается после полной загрузки страницы.
1. Находит все формы, имеющие класс 'требует-проверки' (видимо, ставится где-то в др. месте).
2. Добавляет каждой event-listener на событие submit (отправка):
......1. Проверяет, валидна ли форма.
......2. Если нет - останавливает отправку.
......3. В любом случае - добавляет класс 'было-проверено' (видимо, используется где-то ещё).

Учи джаваскрипт.
Не стесняйся заходить в гугол и искать там по кускам кода.
Аноним 11/06/18 Пнд 16:12:26 #21 №1207741 
>>1207712
>Тогда вся эта ёбала вообще не нужна
Но, если ты хочешь именно bootstrap-валидацию, и, тебя, почему-то, не устраивает валидация по submit (почему?), то тебе надо сделать так, как внутри обработчика на пике - добавлять класс 'was-validated' после вызова form.checkValidity().

Алсо, я тоже не делаю валидацию по submit - вызываю по кнопке, а потом делаю submit из js.
Но, я и встроенную html-валидацию не использую, и вообще большой затейник.
Аноним 11/06/18 Пнд 17:25:38 #22 №1207792 
>>1207712
Класс was-validated добавляется только в случае чекВалидати === true, а вовсе не "в любом случае"!
Аноним 11/06/18 Пнд 17:26:30 #23 №1207793 
Нахуя в проектах лепят es6-импорты, если они не поддерживаются в stable-версии ноды? Как это вообще работает? В ноде есть выстроенная экосистема, есть адекватное тестирование и куча библиотек. Как люди пишут любой js-код(даже на фронт) без ноды? Просто как? Сейчас хочу сделать простенький проект, который собирается в ассеты для браузера, но нужная мне библиотека принципиально не работает с commonJS модулями, видимо придется выбирать другую. Я не вижу смысла делать каждый пук в терминале через бабел ради одних импортов. В чем суть этой хуйни, кто и как ими пользуется?
Аноним 11/06/18 Пнд 18:05:25 #24 №1207827 
Я БОЛЬШЕ НЕ МОГУ, БЛЯТЬ
Пилил сайт на компе, перенёс всё на ноут и у меня ОТВАЛИЛАСЬ АВТОРИЗАЦИЯ, точнее, не работает ajax. На компе стоит ТОЧНО ТАКОЙ ЖЕ локальный сервак, файлы все ТОЧНО ТАКИЕ ЖЕ, я НИ СТРОЧКИ не поменял, но на компе всё работает, а тут нет, меня трясёт, блять, сука. Что здесь не так? НУ ЧТО?

$.ajax({
type: "POST",
url: "include/auth.php",
data: "login="+auth_login+"&pass="+auth_pass+"&rememberme="+auth_rememberme,
dataType: "html",
cache: false,
success: function(data) {

if (data == 'yes_auth')
{
location.reload();
}else
{
$("#message-auth").slideDown(400);
$(".auth-loading").hide();
$("#button-auth").show();

}

}
});
Ну всё же работает на компе, СУКАААААААА, я целый день с этим дерьмом вожусь.
Аноним 11/06/18 Пнд 18:11:36 #25 №1207829 
>>1207827
да что угодно может пойти пиздой, ты вкладку network в devtools покажи после того как кликнешь на кнопку чтоб сделать запрос, и в консоли что высвечивается тоже доставь.
Аноним 11/06/18 Пнд 18:13:15 #26 №1207830 
АХАХАХАХАХАХА
АААААААААААААААААААА
Всё, нахуй. Сюда написал и сразу всё решилось. Оказалось, что ебучая пыха сессию не стартовала. Но это не оменяет того факта, что НА КОМПЕ-ТО ВСЁ РАБОТАЛО. ЕБИСЬ ВСЁ КОНЁМ, ВЕРСИЯ ПЫХИ ОДНА И ТА ЖЕ, СУКА, НУ ЧТО ЭТО ТАКОЕ?!
Аноним 11/06/18 Пнд 18:24:22 #27 №1207837 
>>1207793
Если хочешь пользоваться - WebPack + Babel.

Некоторые большие библиотеки, типа реакта, vue, jquery, lodash etc - можно отмечать как external в вебпаке, и инклудить в браузере отдельно. Это работает, если библиотека предоставляет глобальный объект - React, Vue, $, _ etc.

Раскочегаривать всю эту механику ради одних импортов - бессмысленно. Но, есть ещё лямбды, классы, jsx, промисы, async, class properties и хуева туча js-фишек, которые появятся только в будущих стандартах языка.
Плюс - структурирование кода.

Без ноды - легко.
Не использовать импорты вообще, и писать просто так, на глобальных объектах. Т.е. просто используешь глобальную переменную Vue, и всё. Естественно, включив загрузку соотв. скрипта в html.

Аноним 11/06/18 Пнд 18:31:42 #28 №1207842 
>>1207792
Нет.
Читай код.
Аноним 11/06/18 Пнд 18:39:58 #29 №1207844 
>>1207837
Я знаю, как билдить ассеты, и весь es6 синтаксис, кроме импортов, доступен в текущей версии ноды. Проблема вообще в другом. Я хочу писать на ноде, тестить на ноде, и при этом не ебать себе мозги, подключая babel или --experimental-modules на любое телодвижение только из-за сраных несовместимых импортов, которые хуй знает зачем и кому сейчас нужны, раз они в ноде не поддерживаются из коробки. Собрать весь проект в ассет и отдать его браузеру - это задача на пять минут, я про нее не говорю.

>Не использовать импорты вообще, и писать просто так, на глобальных объектах.
Вопрос не в том "как писать", вопрос "нахуя так писать". Без быстрых тестов, без нормальной системы модулей, без нормально прописанных зависимостей и с постоянным засиранием глобалов. Я с этой хуйни и перешел на ноду для фронтенд-проектов в первую очередь.
Аноним 11/06/18 Пнд 18:45:29 #30 №1207848 
>>1207844
ES6 не поддерживается всеми браузерами.
Те, что поддерживают - поддерживают не полностью и с багами.
Нахуй он нужен вообще, если не поддерживается из коробки в стабильных версиях браузеров?

(это я пользуюсь твоей логикой, если что)
Аноним 11/06/18 Пнд 18:48:30 #31 №1207850 
>>1207830
>ВЕРСИЯ ПЫХИ ОДНА И ТА ЖЕ
А версии ОС, апача, модулей к нему - разные. А потом выясниться, что бд забыл поставить.
Аноним 11/06/18 Пнд 18:59:48 #32 №1207860 
>>1207848
В браузерный код ты в любом случае переводишь все через компилятор. И есть разница между сахарком классов и перехуячиванием всей устоявшейся системы импортов. Например, с импортами я не смогу использовать NODE_PATH в своем проекте и мне придется ебаться еще больше, чтобы оставить require("shared/utils"), который удобно указывает на lib/shared/utils.js, а не переделывать его в ебучий релативный импорт.
Аноним 11/06/18 Пнд 19:07:35 #33 №1207872 
>>1207860
>перехуячиванием всей устоявшейся системы импортов
С этого и надо было начинать.
У меня такой проблемы нет (т.к. или вообще без ноды, или бабель везде), посоветовать ничего не могу.
Кроме как погуглить - думаю ты не один такой расстроенный, возможно люди что-то придумали уже.

Ну, и, добро пожаловать в волшебный мир веб-фронтэнда, лол.
Аноним 11/06/18 Пнд 19:35:38 #34 №1207902 
>>1207850
ОС - да, другая, но всё остальное такое же, базу экспортировал.
Аноним 11/06/18 Пнд 19:41:14 #35 №1207906 
>>1207872
Так вопрос, каким образом люди тестируют в сетапе babel/webpack без ноды? Не в браузере же и не вручную, это долбоебизм. Или волшебный мир фронтенда до сих пор не научился в адекватное автоматическое тестирование?
Аноним 11/06/18 Пнд 19:48:45 #36 №1207909 
И опять же вопрос про es6 импорты, каким образом можно сделать адекватные не-релативные импорты без вебпак-костыля, чтобы работало в ноде? Например для CommonJS есть целая куча костылей: https://gist.github.com/branneman/8048520 Но в es6 динамические имена модулей использовать вроде как нельзя, NODE_PATH ни на что не влияет, так что почти все решения оттуда отпадают, а гугл нихуя не выдает.
Аноним 11/06/18 Пнд 22:31:43 #37 №1208013 
>>1207906
>babel/webpack без ноды
Это невозможно, и ты должен это понимать.
И чем тебе бабель не угодил?
Типа, вся остальная хуерга тебе норм, а бабель - это уже перебор, лол?

Вообще, такое ощущение, что ты чего-то недопонял, и ломишься в открытую дверь.
Аноним 12/06/18 Втр 01:26:42 #38 №1208083 
Снимок экрана2018-06-1201-25-42.png
Снимок экрана2018-06-1201-25-08.png
вот как вообще возможно что сраный хайль ворд не запускается?
Аноним 12/06/18 Втр 01:51:24 #39 №1208089 
Снимок экрана2018-06-1201-48-26.png
>>1208083
ну ладно, после получаса исследований максимум что мне предложили это то, что на пике ( типа опциональными поставь, но хули ж толку тогда вообще с ТС-а? ) Я в ахуе
пиздец, я половину базовых классов на ТС уже написал
Аноним 12/06/18 Втр 02:07:46 #40 №1208092 
>>1208089
Именно поэтому народ и использует Flow.

Аноним 12/06/18 Втр 03:05:59 #41 №1208107 
Снимок экрана2018-06-1203-04-29.png
>>1208092
https://github.com/facebook/flow/issues/5869
лел блядь сходу
тут предлагается такой обходной путь
Component<*>
Аноним 12/06/18 Втр 03:54:17 #42 №1208111 
>>1208107
Ты как-то выборочно там прочитал, лол.

https://flow.org/en/docs/react/components/

Алсо, не надо обходных путей.
Надо примерно как в TS:
Component<{propKeyA: string, propKeyB: number}, {stateKeyA: string}>
Аноним 12/06/18 Втр 05:36:34 #43 №1208118 
>>1208013
После нормальных языков это чувствуется как пиздец, когда мне нужно ставить отдельный сторонний компилятор и везде его использовать, чтобы мой нативный код просто выполнялся, причем не в каком-то ебанутом окружении браузера, где нужно поддерживать десять версий IE, и это оправдано, а в моем основном рабочем окружении(!!!). Еще сверху нахуячить пресеты для браузера, пресеты для окружения ноды, пресеты для пресетов, плагин бабела для тест-фреймворка, и это абсолютный минимум. Сейчас поигрался с бабелем в ноде и ну его нахуй, лучше возьму либу, которая поддерживает CommonJS модули.
Аноним 12/06/18 Втр 05:43:36 #44 №1208120 
>>1208118
Ниче, со временем у тебя вырабатается стокгольмский синдром.
Аноним 12/06/18 Втр 10:34:11 #45 №1208186 
>>1206689 (OP)
Нужно знать html и css, чтобы начать учить JavaScript?
Аноним 12/06/18 Втр 10:48:31 #46 №1208197 
>>1208186
Да, на все это у тебя уйдёт неделя или две, ничего сложного там нет, а потом будешь ебаться с жс, как я сейчас
Ууу сука зла не хватает, бросаю, и на следующий же день возвращаюсь, ничего с собой поделать не могу, надеюсь, через месяца два изучения, я все таки накатаю свою йобу.
Аноним 12/06/18 Втр 11:03:44 #47 №1208206 
15045600932920.png
Ребят , помогите дауну , я только недавно начал использовать git . Не понимаю еще механику , хотя читал .

Вот я последним коммитом (а возможно двумя) испортил свой локальный репозиторий и хочу полностью заменить его веткой из гитхаба.
Но моя локальная считается master и не дает это сделать .
Как принудительно заменить её?
Аноним 12/06/18 Втр 11:17:40 #48 №1208213 
osaexqdgdxpyaprzp9lladnwje.png
>>1206689 (OP)
Анон, недавно пришлось на работе писать на js и так уж вышло, что кроме меня тут на нём никто не пишет, кода на js у нас нет, поэтому стал вопрос о закладывании какого-то фундамента из стайлгайдов, а потом и обмазывания всевозможными линтерами.
Какие требования к стилю написания js-кода используются в твоей компании, есть какие-то общие, вроде pep-8 в питоне? Поделись, если можно, ссылками.
Пытался гуглить, но зашился в десятках статей, каждая из которых предлагает свой подход.
Аноним 12/06/18 Втр 11:33:24 #49 №1208224 
12321312323.jpg
Кто-нибудь из вас работал в веб-игрострое? Я имею ввиду современный веб-игрострой, где используются всякие канвасы и WebGL. Насколько сложно туда вкатиться? Какие требования? Действительно ли там требуются яйцеголовые со знанием матана (и будут ли по нему драть на собеседовании) или это просто будет плюсом? У меня есть уверенность в своих знаниях по JS (3 года хорошего опыта), но нет уверенности в своей алгоритмической подготовке, ибо не особо налегал на математику во времена учёбы в своей шараге, поэтому в голове отложились жалкие крохи и те выветрились за 4 года после окончания. И ещё, какая зарплата в этой сфере считается приемлемой?
Аноним 12/06/18 Втр 11:39:38 #50 №1208229 
>>1208206
git reset --hard origin/master
Аноним 12/06/18 Втр 12:15:27 #51 №1208257 
>>1208224
так ты ж программист => ты яйцеголовый
Аноним 12/06/18 Втр 13:05:47 #52 №1208287 
>>1208224
150-200 тыс руб для быдлокодерка на шарпе
Аноним 12/06/18 Втр 22:17:46 #53 №1208651 
Как на канвасе объекты двигать? пытался организовать D&P , создав событие onmousedown, а внутри его на mousemove и mouseup, но оно игнорирует внутренние события
Аноним 12/06/18 Втр 22:33:08 #54 №1208665 
>>1208651
https://javascript.info/mouse-drag-and-drop

>D&P
ПНХ
>внутренние события
Так это не делается. Попробуй через глобальный флаг.
let hold = false;
onmousedown => hold = true;
onmousemove => if (hold) do shit;
onmouseup => hold = false;
Аноним 12/06/18 Втр 23:30:03 #55 №1208712 
>>1208213
Ты прав, дело не из лёгких. Стоит понимать, что ЖС это лингва-франка и у нас тут нет никакого доброго диктатора.

Короче, если хочешь прям из коробки, но хуёвенько, то просто поставь в Вскод
https://marketplace.visualstudio.com/items?itemName=numso.prettier-standard-vscode
Но тыжеинженер.

Инструмент для линтинга это однозначно Eslint:
https://eslint.org/
Он очень гибкий требует попердолиться.

Есть васянская попытка навязать для него стандартные настройки:
https://standardjs.com/
Но они предлагают не использовать точку с запятой, что противоречит спеке языка, поэтому сразу идут на хуй.

Есть годный обоснованный стайлгайд от Аирбнб:
https://github.com/airbnb/javascript
Если запустишь в проекте
npx eslint init
Он среди прочего предложит тебе этот конфиг. Это будет хороший выбор для начала.

Дальше можно добавить плагинов для конкретных библиотек. Например, если ты используешь Джест для тестов, то найдёшь
https://github.com/jest-community/eslint-plugin-jest

Помимо линтинга ещё нужно форматирование. Это Притиер:
https://prettier.io/
Нужно будет подружить его с Еслинтом:
https://prettier.io/docs/en/eslint.html

Остаётся только подцепить это на прекоммит-хук, чтоб дерьмо не протекло:
https://github.com/typicode/husky
и наслаждаться.

Если будешь использовать create-react-app, то почти всё это будет сделано за тебя. Читай их ридми.

Ну и для Вскод поставить шикарные плагины под это дело:
https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint
https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode
подсветки, подсказки, автоматизация, все кайфы.
Аноним 12/06/18 Втр 23:56:44 #56 №1208731 
>>1208089
просто ТС говно без задачв боьшинстве случаев
Откроем твой первый пик:
>document.getElementById('root') as HTMLElement
>as HTMLElement
Сильно помогло? Без него бы руки отвалились, наверное, да?
Аноним 13/06/18 Срд 00:48:19 #57 №1208752 
>>1208213
Лучше заложи фундамент из нормальной архитектуры, тестовой дисциплины и настроенного окружения. Всегда охуевал с людей, которые на полном серьезе дрочат на стайл гайды. Стайл гайд - это чтобы ньюфаги не писали совсем уж срань и для каких-то специфичных особенностей языка, но если у тебя есть любой опыт разработки, то ты и так знаешь 90% того, что тебе предложит стайлгайд, потому что это просто common sense.

Особенно этим любят заниматься фронтенд-макаки почему-то. У него 0% тестового покрытия, нечитаемая реакт-залупа на 200 строк кода в файле, где логика идет вперемешку с шаблоном, а он на стайл-гайды дрочит. Один мне на полном серьезе затирал, что вот в прошлой компании у него писали как попало, а в текущей используют стайлгайд и ему сразу заебись стало. Это каких макак набирать надо и как не уметь их загонять в рамки, чтобы стиль кода на что-то влиял? Не говоря уж про то, что любая IDE с плагином тебе и так покажет основную хуйню.
Аноним 13/06/18 Срд 01:19:44 #58 №1208755 
На одном сайте есть скрипт вида:
var a = true;
if(a){ window.location = 'nahui eto suda';}

Я пробовал в tampermonkey прописать что то типа const a = false;, но это не сработало. Можно как то избавиться от этого редиректа при этом не блокируя полностью выполнение яваскрипта?
Аноним 13/06/18 Срд 01:29:36 #59 №1208757 
>>1208755
window.a = false;
Аноним 13/06/18 Срд 01:38:17 #60 №1208759 
>>1208757
Лучше даже
Object.defineProperty(window, "a", {value: false});
Аноним 13/06/18 Срд 09:35:50 #61 №1208853 
>>1208197
Спасибо). Красивый язык, я бы если бы и работал, то на жс, за еду
Аноним 13/06/18 Срд 11:44:37 #62 №1208898 
>>1208665
спасибо, сейчас попробую
Аноним 13/06/18 Срд 12:05:44 #63 №1208910 
>>1208853
>Красивый язык
Не смеши.
Аноним 13/06/18 Срд 13:27:27 #64 №1208944 
>>1208757
>>1208759
В обоих случаях значение a перезаписывается и срабатывает условие: https://jsfiddle.net/qLtxsc6n/
Аноним 13/06/18 Срд 16:01:17 #65 №1209095 
Посоны, а где почитать про геттеры и сеттеры? Желательно на нормальных примерах с дом. Я нихуя не понимаю кантора, это пиздец какой-то. Какая блять есть альтернатива кантора?
Аноним 13/06/18 Срд 18:28:32 #66 №1209185 
>>1209095
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters

Может проблема не в Канторе?
К тому моменту, когда (если вообще) тебе они понадобятся, ты уже забудешь их синтаксис. Так что пока тебе просто достаточно запомнить, что они есть.
Аноним 13/06/18 Срд 19:00:33 #67 №1209228 
>>1209185
ну я только месяц как учу джс и мой ментор говорит мне , что сейчас мне мой код, в моем мини приложении надо переписать с ипользованием сеттеров и геттеров и почитать про протатипное наследие. Сижу с лицом грустной жабки и вообще слабо одупляю зачем на данном этапе моего вката вот это вот всё сейчас.Я бы еще бы каких-нибудь форм бы поклепал простых.
Аноним 13/06/18 Срд 21:39:10 #68 №1209352 
Есть короче проект, стак nodeJS, graphQL, typescript, postgresQL, sequelize, не хочу блять милиарды раз описывать ебучие типы, с таким стаком это:
GraphQL типы,
TS интерфейсы,
Sequelize модели
Выглядит как полное говно, есть ли норм решение чтобы был один trust source?
Аноним 13/06/18 Срд 22:01:55 #69 №1209378 
>>1209228
>зачем на данном этапе моего вката вот это вот всё сейчас
Затем, чтобы сделать трёхслойное приложение, где были бы Model, Controller и View. Как раз функции-геттеры нужны в т.н. «модели». А уже поверх неё — можно и форм поклепать простых.
Аноним 13/06/18 Срд 23:26:23 #70 №1209453 
>>1209228
Чтоб твоему ментору поднасрать, скину тебе шизика светоча:
https://www.youtube.com/watch?v=lfdAwl3-X_c
Аноним 13/06/18 Срд 23:50:20 #71 №1209475 
Посмотрел сейчас, что такое есть React Context.
И как надлежит его юзать.

Это какая-то лютая костыльная неюзабельная хуйня.
Что-то как-то они перемудрили с чистотой.
Напоминает стерильно-чистую бессмысленную собянинскую Москву, лол.

Вообще, реакт как-то разочаровывает по мере углубления в него.
И как-то снова начинает нравться Vue, лол.
Аноним 14/06/18 Чтв 00:32:05 #72 №1209492 
>>1209352
Используй один маппинг для объекта, а в остальное время работай с данными? То есть пришел тебе запрос с JSON-объектом, ты пропустил его через маппинг, который конвертирует все поля в нужные типы, а потом работаешь с уже конвертированным объектом, убираешь неразрешенные поля, валидируешь и т.д. Конкретно с этим стеком не работал, но обычно используют ДБ схемы для этого, там уже все типы проставлены.
Аноним 14/06/18 Чтв 01:34:48 #73 №1209515 
подскажите, че сейчас на фрилансе актуально?
2 месяца работал в офисе, но работать с 8 до 8 (с учетом пути) 5 дней в неделю меня доебало, не моё это
думаю попробовать вкатиться во фриланс, но проблема в том, что вся работа в офисе была построена на гугловском полимере и обычно он нахуй никому не нужен, поэтому я не уверен во что лучше тыкаться
Аноним 14/06/18 Чтв 09:44:59 #74 №1209571 
>>1209515
фулл стеки актуальны и cms. Забугор - WP, в Роиси битрикс
Аноним 14/06/18 Чтв 10:48:05 #75 №1209600 
>>1206689 (OP)
доброго времени)
я хочу сделать мультируменый чат с использованием socket.io, что бы комнаты юзеры могли создавать сами на лету
и думаю что лучше подойдет в socket.io для этого
namespace или room
но не понимаю их различий .___.
подтолкните, пожалуйста, в нужную сторону
Аноним 14/06/18 Чтв 11:13:26 #76 №1209611 
>>1209492
Так лол, это graphql делает, там стрикт тайпы. Мне просто пиздец как не хочется описывать эти же тайпы ещё и в тайпскрипте и в схеме для постгреса.
Аноним 14/06/18 Чтв 12:33:41 #77 №1209667 
>>1209611
Сделай генератор.
И генерируй.
Аноним 14/06/18 Чтв 13:14:13 #78 №1209701 
>>1209611
Так а нахуя ты описываешь и там, и там? Цели какие?
Аноним 14/06/18 Чтв 13:55:01 #79 №1209734 
>>1209701
Хочу писать на тайпскрипте с автоподсветочкой и всеми плюшками. Для этого нужно тайпить. Ладно, нашел такую штуку, попробую ее
https://github.com/19majkel94/type-graphql
>>1209667
ебанутый?
Аноним 14/06/18 Чтв 14:12:04 #80 №1209743 
>>1209734
>ебанутый?
Сынок, ты, видимо, туповат.
Поясню - типы у тебя описаны в одном месте, например, в TS.
Для всей остальной хуйни можно описания типов генерировать по описаниям TS.
Или TS типы генерировать ещё откуда-то.
Я, например, генерирую их из Java классов, как и SQL схему.
Аноним 14/06/18 Чтв 14:18:18 #81 №1209746 
>>1209743
План хорош, но чета мне не нравится. Но план хорош.
Аноним 14/06/18 Чтв 14:51:17 #82 №1209790 
Сап, формошлепы. Не дает покоя одна херь - вот есть родитель, есть у родителя сынка-корзинка. На сынку-корзинку вешается eventListener, срабатывает кулбэк, в нем удаляется родитель ( допустим body.removeChild(parent) ). И вот вопрос, удаляется ли сам eventListener с пездюка при этом? По идее должен, но сука как проверить. Удалять явно листенер впадлу, там именованная функция должна быть - впизду переписывать.
Аноним 14/06/18 Чтв 16:29:15 #83 №1209851 
it-разработка-3895880.png
>>1209790
Ответа на твой вопрос нет. Ты не контролируешь среду выполнения (бровзер у клиента). Раньше они текли на ровном месте. Сейчас даже куски замыканий выбрасывать умеют.
Если будут неприемлемые тормоза в конкретном браузере, дампать память и смотреть.
Аноним 14/06/18 Чтв 16:32:04 #84 №1209852 
>>1209851
Понял, спасибо!
Аноним 14/06/18 Чтв 19:28:32 #85 №1209933 
>>1209790
Читни-ка стакца:
https://stackoverflow.com/questions/12528049/if-a-dom-element-is-removed-are-its-listeners-also-removed-from-memory
Аноним 14/06/18 Чтв 20:05:43 #86 №1209941 
>>1209933
Ну, пожалуй впизду евентхендлеры. Пускай сидит в памяти, если такой пидор.
Аноним 14/06/18 Чтв 20:13:46 #87 №1209947 
>>1209941
В смысле?
Там же написано, что всё убирается, в том числе и в jQuery (если и добавлял хендлер и удалял элемент через jQuery).
Аноним 14/06/18 Чтв 20:38:36 #88 №1209963 
>>1209947
При условии, что у тебя на эти элементы не осталось ссылок - в переменных, массивах и т.п.
Если ссылки есть - надо им присвоить null.
Аноним 14/06/18 Чтв 21:31:55 #89 №1209993 
Снимок экрана2018-06-1421-31-17.png
Двач как мне заставить flow не выебываться на бинд эвент лиснера в конструкторе?
Аноним 14/06/18 Чтв 21:34:45 #90 №1209994 
Снимок экрана2018-06-1421-34-28.png
>>1209993
отбой
Аноним 14/06/18 Чтв 22:15:58 #91 №1210030 
LWtaBEU.jpg
Почаны, почему vue.js настолько меньше весит чем реакты и ангуляры? В чём подвох? Можно использовать его в проекте не беспокоясь о том, что может всплыть какая-то хуйня?
Аноним 14/06/18 Чтв 22:57:19 #92 №1210059 
>>1209994
Используй class properties (babel plugin).
https://babeljs.io/docs/en/babel-plugin-transform-class-properties/

И пиши просто в теле класса:
handleChange = (e) => {...}

И state тоже в теле класса можно определять.
Т.е. конструктор получается просто не нужен.

В современных гайдах по реакту везде так пишут.
Включая авторов.
Аноним 14/06/18 Чтв 23:00:58 #93 №1210064 
>>1210059
Уточню - это чтобы this не биндить.
Самый кошерный способ.
Аноним 14/06/18 Чтв 23:02:43 #94 №1210066 
>>1210030
Можно.

Алсо - реакт и ангуляр - это очень разные вещи.
Более разные, чем хуй и пизда, например.
Аноним 15/06/18 Птн 02:07:54 #95 №1210165 
pgpsuite.png
>>1206689 (OP)
Посоны, я принёс вам таскабельный PGP: https://username1565.github.io/pgp/

Поддерживается:
- генерация ключей RSA, ECC
- цифровая подпись
- проверка подписи
- шифрование (с подписью или без)
- дешифрование (с проверкой подписи или без)
- шифрование файлов, в том числе и бинарных
- закачка файлов, в том числе и бинарных.

Исходник тут, можно скачать в ZIP-архиве: https://github.com/username1565/pgp

Может ещё чё-то исправить или допилить, а?
Аноним 15/06/18 Птн 08:38:13 #96 №1210199 
>>1210165
Но ты же просто форкнул уже готовый проект и подправил стили с UI, что там еще делать?
Аноним 15/06/18 Птн 14:17:32 #97 №1210353 
Opera Снимок2018-06-15161453github.com.png
1356169502919.jpg
1331817656418.jpg
M-4gjsTSmfw.jpg
>>1210165
>форкнул чужой проект
>поменял название с PGP Key Generator на PGP Suite
>Посоны, я принёс вам таскабельный PGP
У нас тут Денис Попов выкатил свежий релиз Болженос 2.0
sageАноним 15/06/18 Птн 14:28:30 #98 №1210363 
>>1210353
Не нравится что-то — ну так не пользуйся и иди нахуй, пидораха. Или обязательно кукарекнуть надо, долбаёб?
Аноним 15/06/18 Птн 14:33:19 #99 №1210367 
>>1210363
>пидораха
Ох уж эти проекции.
Алсо бамп обосратушкам :3
Аноним 15/06/18 Птн 14:47:07 #100 №1210385 
configutilviewsshkey[2].png
>>1210199
Я пхнул туда верификацию отдельной вкладкой, и в декрипт, сунул её тоже.
Base64 для файлов добавил и функции к закачке файлов.

Что делать? Думал вы подскажете, после всяких тестов.
Может, какой-нибудь Jasmine-тест прикрутить можно было бы ещё.

Но есть несколько намеченных направлений для фиксов...
1. Я не могу зашифровать сообщение на сайте https://smartninja-pgp.appspot.com
используя ключи, сгенерированные здесь.
А вот ключи сгенерированные там - шифруют нормально.
Это указывает на несовместимость генераторов, но я нифига не пойму при компарации kbpgp.
Тот человек пишет, что эта версия - SSH-адаптирована.
Возможно поэтому генераторы несовместимы, но у SSH - другие ключи. Пикрил.
Возможно было бы выдавать и их.

2. Когда сообщение зашифровано (публичным ключём RSA),
да ещё и с подписью (другим приватным ECC), в зависимости от очерёдности,
должно бы быть возможным либо дешифрование без проверки подписи,
либо проверка подписи и возврат шифрованного сообщения с фингерпринтом.
Ни первое, ни второе - не работает. Подозреваю подпись обоими ключами.

3. Я видел ещё, там, внутри, Diffie-Hellman'a - его можно было бы вынести - отдельной вкладкой.
Аноним 15/06/18 Птн 14:55:56 #101 №1210396 
Hiscommit.png
>>1210353
А ты кто вообще, чё материшься и забей на него.
>>1210353
Ты там не прихуел?
Ещё и картинку прилепил.
Ты посмотри когда форк сделан, это во-первых.
Во-вторых, пикрелейтед
>>1210367
Ой, ну не бампай себя.
Аноним 15/06/18 Птн 15:34:59 #102 №1210427 
>>1210385
Прикрути ноду, разбей на нормальные компоненты и тестируй как человек.
Аноним 15/06/18 Птн 16:59:32 #103 №1210486 
Это JavaScript-тред? А то тут как-то тухло. Я думал во фронтенде всегда большая движуха. Хм.
Объясните пожалуйста суть CORS. Вот допустим, запрещены в большинстве браузеров кроссдоменные XMLHttpRequest-ты.
Чтобы его выполнить, такой запрос должен удовлетворять двум требованиям:
1. Быть простым (т.е. POST/GET + 4 заголовка)
2. Ответ сервера должен в заголовках содержать Access-Control-Allow-Origin заголовок, который как бы намекает о том, что сайт работает с междоменными запросами и всё ок.

Если первое требование не выполняется, то, я так понял, запрос не совершается вовсе, что можно обойти с использованием предзапросов.

А если второе, то запрос совершается, но при отсутствии необходимого заголовка ответа браузер не вызывает событие load.

Но прикол в том, что запрос всё равно совершается! То есть, если по данному урлу есть какая-то логека, то она отрабатывает в любом случае, просто клиент получит ошибку.
В чём суть этой йоба-защиты, если она ничего не меняет и не предотвращает сами запросы?
Аноним 15/06/18 Птн 17:03:17 #104 №1210491 
>>1210486
> В чём суть этой йоба-защиты, если она ничего не меняет и не предотвращает сами запросы?
Хацкер не получит данные.
Аноним 15/06/18 Птн 17:11:18 #105 №1210495 
>>1210491
А, я понял. Защищают ведь не самого хацкера лол, а клиента, который посетит хацкеркий сайт.
Ибо данные, которые были получены от такого запроса до клиента так и не дойдут (браузер их парежит), поэтому они далее никоим образом обработаны быть не смогут.

Я видимо изначально неправильно понял. Благодарю.
Аноним 15/06/18 Птн 17:24:35 #106 №1210503 
Сап, программач. Нужно написать часы для сайта в которых будет 30 часов в сутках, минуты и секунды стандарт. Как это реализовать?
Аноним 15/06/18 Птн 17:25:00 #107 №1210506 
>>1210495
> никоим образом обработаны быть не смогут
Именно)
Пожаловаться, анончик.
Аноним 15/06/18 Птн 17:27:14 #108 №1210508 
>>1210503
Имеешь переменную, которую инкрементишь раз в секунду. И все.
Дальше остатки от деления и деление без остатка.
Аноним 15/06/18 Птн 17:28:02 #109 №1210509 
>>1210506
> Пожаловаться
пожалуйста, самофикс
Аноним 15/06/18 Птн 18:01:39 #110 №1210527 
>>1210508
>инкрементишь раз в секунду
>js
Разве что это на ноде делать, а затем - по вебсокету гнать.
Нет, правильнее таймстамп переводить с свой кастомный формат, и таки да, обновлять отображение раз в секунду.
Аноним 16/06/18 Суб 01:33:35 #111 №1210736 
Помогите разобраться с квантификатором или

Вот отсюда первый абзац https://www.regular-expressions.info/captureall.html:
When creating a regular expression that needs a capturing group to grab part of the text matched, a common mistake is to repeat the capturing group instead of capturing a repeated group. The difference is that the repeated capturing group will capture only the last iteration, while a group capturing another group that's repeated will capture all iterations. An example will make this clear.

Let's say you want to match a tag like !abc! or !123!. Only these two are possible, and you want to capture the abc or 123 to figure out which tag you got. That's easy enough: !(abc|123)! will do the trick.

Now let's say that the tag can contain multiple sequences of abc and 123, like !abc123! or !123abcabc!. The quick and easy solution is !(abc|123)+!. This regular expression will indeed match these tags. However, it no longer meets our requirement to capture the tag's label into the capturing group. When this regex matches !abc123!, the capturing group stores only 123. When it matches !123abcabc!, it only stores abc.

This is easy to understand if we look at how the regex engine applies !(abc|123)+! to !abc123!.

Открываю общий гайд, говорят, что + это 1 или больше повторений https://learn.javascript.ru/regexp-quantifiers:

+
Означает «один или более», то же что {1,}.

Например, \d+ находит числа – последовательности из 1 или более цифр:

var str = "+7(903)-123-45-67";

alert( str.match(/\d+/g) ); // 7,903,123,45,67

СООТВЕТСТВЕННО!

В примере выше 'abc123blablabla' не будет матча !(abc|123)! Но если добавить плюс, то матч будет. Но почему?! Ведь когда гайд делает !(abc|123)+! - по этой логике должна матчиться ИЛИ группа абц, повторенная 1 и более раз, ИЛИ группа 123, повторенная 1 и более раз. Ни повторений группы абц, ни повторений группы 123 здесь нет, и нет их объединения в одну группу.

Но по факту действительно матчится весь набор абц123 разом. КАК? Какого хуя! Ведь здесь нет ебаных повторений!
?
Аноним 16/06/18 Суб 01:34:30 #112 №1210737 
>>1210736
>с квантификатором "+"
хз как так автозамена на или заменила.
Аноним 16/06/18 Суб 10:16:38 #113 №1210798 
>>1210736
>по этой логике должна матчиться ИЛИ группа абц, повторенная 1 и более раз, ИЛИ группа 123, повторенная 1 и более раз
Ну так оно и матчит группу, повторенную один и более раз. В строке 123abc123 группа (123|abc) повторяется три раза.
Аноним 16/06/18 Суб 13:37:20 #114 №1210921 
>>1210427
Та, ну, я просто вкинул, думал вы лучше запилите. Хэххэх...
Аноним 16/06/18 Суб 15:10:55 #115 №1210974 
>>1210798
Он путает матчинг и поиск, похоже.
Аноним 16/06/18 Суб 19:33:14 #116 №1211217 
yolo.png
>>1206689 (OP)
цените че нашел
Аноним 16/06/18 Суб 22:58:23 #117 №1211395 
пацаны, чем ебаное модуло отличается от ремайндера?
Аноним 17/06/18 Вск 00:19:02 #118 №1211444 
В офисах как принято работать с Git? В VSC практикуют? Или принципиально важно выучить все эти ебучие консольные команды?
Аноним 17/06/18 Вск 00:34:48 #119 №1211457 
>>1211395
В ЖС только ремайндер, который иногда тоже называют модуло. Знак у результата будет как у делимого.
5 % 2 == 1
5 % -2 == 1
-5 % 2 == -1
Модуло есть в других языках. Там вроде знак от делителя.
Аноним 17/06/18 Вск 01:08:11 #120 №1211485 
>>1211444
У нас вебшторм, откуда без консоли большей частью манипуляций занимаются. На сколько понимаю, в вс коде тоже самое есть и ты говоришь об этом, типа меню, где выбираешь команды, и все за тебя делается.
То есть норма и без заучивания команд.
Аноним 17/06/18 Вск 01:13:07 #121 №1211492 
RxJS с реактом не используют? Вот я там увидел полезные фичи, а потом вспомнил, что я это обходил просто используя стейт, играя с тру\фолс, чтобы предотвратить ненужные действия. То есть мне такого и нужно придерживаться, а RxJS больше для ангуляра подходит, где уже все по-другому?

И еще вопрос. Что используете из ramda? Какие мастхев методы есть и на какие стоит обратить внимание? Можно и из лодаша называть. Кроме пайпов и карринга.
Аноним 17/06/18 Вск 08:40:36 #122 №1211554 
>>1211444
Вообще не представляю, как и нахуя работать с гитом через UI. Разве что изменения смотреть, а так в сто раз легче и быстрее написать команду. Что там учить-то? git add, git commit -m, git commit --amend, git checkout, git merge, git pull, git reset, git push, git status - все, что тебе понадобится в 90% случаев. Половина из них говорит сама за себя
Аноним 17/06/18 Вск 08:57:36 #123 №1211558 
>>1211554
так-то две кнопочки в иде быстрее жать, чем скрывать иде, открывать консоль, писать три подряд команды, скрывать консоль. + без юи ты не видишь нормально кто сколько закоммитил, когда разошлись ветки, кто насрал в мердже и тд
Аноним 17/06/18 Вск 09:16:57 #124 №1211561 
>>1211558
Интересно, как можно работать без открытого терминала? В динамическом языке, например, хуй настроишь нормальный test-runner в IDE, легче уж в терминале команду выполнить. И напечатать команду всегда быстрее, чем мышкой кликать по залупам, выбирать, что закоммитить, что заресетить, что выкинуть и т.д. UI нужно только чтобы визуализировать изменения.
Аноним 17/06/18 Вск 10:46:33 #125 №1211579 
>>1211561
> Интересно, как можно работать без открытого терминала?
Макаки же, ну
Аноним 17/06/18 Вск 11:59:24 #126 №1211598 
>>1211554
Я не пойму, использовать циклы и if..else признак говнокодера? Какой бы курс не смотрел, все стараются избегать подобных конструкций
Аноним 17/06/18 Вск 12:00:38 #127 №1211599 
p.s. этот пост н кому не адресован, просто ответ приклеился
Аноним 17/06/18 Вск 14:17:01 #128 №1211689 
image.png
Сап, посоны.

Не жава-программист и не программист вообще, но требуется запилить небольшой скрипт для браузера.
Поясните, плз, как реализована вот эта ебала на пике. Не кукла, а именно форма и кнопки, которые бы появлялись при загрузке определённой страницы стороннего сайта. Это всё через изменение CSS-стилей страницы добавляется или как-то иначе?
Аноним 17/06/18 Вск 14:19:04 #129 №1211690 
>>1211689
> иначе
This
Аноним 17/06/18 Вск 14:21:04 #130 №1211692 
>>1211690
А подробнее немного? Или дай ссыль на какой-нибудь страницу какого-нибудь learn.javascript.ru , где я мог бы прочесть, как именно такую форму сделать.
Аноним 17/06/18 Вск 14:22:03 #131 №1211693 
>>1211692
htmlbook.ru
Аноним 17/06/18 Вск 14:23:53 #132 №1211695 
>>1211693
Конкретизировать можешь "что"/"чего". Встройка хтмл что ли?
Аноним 17/06/18 Вск 14:24:31 #133 №1211696 
>>1211695
Да
Аноним 17/06/18 Вск 14:31:43 #134 №1211703 
>>1211696
Но если сайт не мой, а сторонний, то как правильно встроить хтмл? Форму-то я создам, разберусь с отправкой данных из неё.
Аноним 17/06/18 Вск 14:33:33 #135 №1211708 
>>1211598
if else не говнокод, на одних тернарниках не разрулишься

циклы не очень по двум причинам, во-первых это зависимость от "внешних" переменных, типа каунтеров для for, либо условия для while, отсюда вытекает еще несколько грустных особенностей. во-вторых сейчас набирает популярность функциональный подход, а циклы - императивщина как есть.
Аноним 17/06/18 Вск 14:36:03 #136 №1211710 
>>1211598
С чего ты взял? Если совсем простое выражение, то можно заменить if..else на тернарный оператор, циклы обычно обернуты в функции поудобнее, например map filter reduce у массивов, но это тот же самый цикл. Без for..in ты объект не переберешь.
Аноним 17/06/18 Вск 14:38:45 #137 №1211716 
>>1211703
xss, либо ручками каждый раз встраивай свой html-код в страницу того сайта
Аноним 17/06/18 Вск 14:59:04 #138 №1211732 
>>1211710
> Без for..in ты объект не переберешь

можно пройтись по массиву ключей
Аноним 17/06/18 Вск 15:06:26 #139 №1211737 
>>1211598
https://www.youtube.com/watch?v=P3fqetErxjA
Признак говнокодера — пытаться выёбываться в коде.

https://jrsinclair.com/articles/2017/javascript-but-less-iffy/
if есть, чем заменить. Но стоит стремиться к тому, чтоб код был человечным, походил на простые предложения. В таком случае if подходит лучше всего.
Стоит избегать сложных условий. Если больше одного оператора или регулярка, то упаковать в функцию с понятным названием:
if (isValid(email))
Чаще всего можно избавиться от else. Тогда ветвление, перегружающее мозги, станет простой последовательностью:
if (cond1())
if (cond2())
Код должен читаться как предложение, без подрубания интерпретатора в голове. Если такое внезапно помогут сделать свич или тернарник — настало их время.

Циклы чаше всего нужны при работе с коллекциями.
https://jrsinclair.com/articles/2017/javascript-without-loops/
Опять же, методы коллекций дадут код, более похожий на человеческие предложения:
отобразить пользователей как их айдишники
users.map(user => user.id)
Вспоминая прошлый абзац,
кто-то из пользователей админ
users.some(isAdmin)
Если коллекция большая, а задача нетривиальная, может потребоваться для эффективности таки использовать циклы, ветвление, байтоёбство. Ты уже догадался, нужно инкапсулировать всё это дело в функции с читаемым названием:
users.reduce(comlexData, store);
function complexData(store, user) {for { for { switch {} }}}
Аноним 17/06/18 Вск 15:08:45 #140 №1211740 
>>1211732
for...in и так проходится по массиву ключей, просто более удобный синтаксис.
Аноним 17/06/18 Вск 15:28:29 #141 №1211750 
>>1211716
Оке, спасибо.
Аноним 17/06/18 Вск 16:17:12 #142 №1211783 
>>1211737
>Чаще всего можно избавиться от else. Тогда ветвление, перегружающее мозги, станет простой последовательностью:
>if (cond1())
>if (cond2())

Хуйня.
Аноним 17/06/18 Вск 17:39:40 #143 №1211845 
image.png
Если я хочу создать объект CSS класса, то
let cell = document.createElement("cell");
подойдет? Он создаст именно такой объект как на пике?
Аноним 17/06/18 Вск 17:46:19 #144 №1211853 
Почему джаваскриптобояре так любят рекурсию?
Аноним 17/06/18 Вск 17:46:53 #145 №1211855 
>>1211845
Не создаст.
Аноним 17/06/18 Вск 17:47:09 #146 №1211856 
>>1211853
Прост
Аноним 17/06/18 Вск 17:48:02 #147 №1211857 
>>1211855
Как надо делать? Я весь вечер пытаюсь, но не дается мне.
Аноним 17/06/18 Вск 17:51:25 #148 №1211861 
>>1211857
Ты создаешь пустой элемент, которого нет в стандарте, в структуре html. Тебе же необходимо генерировать класс.

На жс это будет выглядеть совершенно иначе.
Аноним 17/06/18 Вск 17:53:04 #149 №1211863 
>>1211740
мы вам перезвоним

keys берет только собственные свойства объекта, а for in лезет в прототип. Можно жидчайше сирануть в этом месте в определенных ситуациях.
Аноним 17/06/18 Вск 17:53:08 #150 №1211864 
>>1211861
То есть придется создать один элемент и его помножить?
Аноним 17/06/18 Вск 17:58:36 #151 №1211867 
Поспорил с батей на косарь, что сделаю игру в крестики и нолики в которую он не сможет победить. У меня есть шансы получить КОСАРЬ?
Аноним 17/06/18 Вск 18:02:42 #152 №1211869 
>>1211867
Если я не ошибаюсь, достаточно просто написать ИИ, который будет сводить любую партию к ничьей. В закреплённом треде попробуй спросить алгоритм.
Аноним 17/06/18 Вск 18:12:49 #153 №1211875 
>>1211867
М И Н И М А К С
https://github.com/ahmadabdolsaheb/minimaxarticle/blob/master/index.js
Аноним 17/06/18 Вск 18:48:31 #154 №1211912 
>>1211875
>>1211869
Спасибо, батя уже готовит косарь.
Аноним 17/06/18 Вск 19:03:47 #155 №1211925 
>>1211716
Хотя нет, погоди. Ты меня наёбываешь. Хочешь сказать, что с помощью JS нельзя изменить страницу какого-либо сайта, чтобы добавить какой-нибудь элемент? Я же не на стороне сервера это делаю, а на стороне своего компьютера.
Аноним 17/06/18 Вск 19:12:17 #156 №1211926 
Сап, хотел написать дампер файлов с треда, чтоб локально хранить дамп треда.
Первую версию написал на nodejs, в хедеры добавлял примерно те же хедеры и куки что и отправляет мой браузер даже usercode_auth, но почему то небыло доступа к gg,h,e и прочем 18+ доскам. Я на это забил. Но почему то даже при дампинге с b треда у меня половина файлов бьётся. Код вот https://pastebin.com/6P700q00 .
Сделал синхронную загрузку файлов и со sleep между файлов. Но все равно блять, они бьются. че за хуйня ? Делал синхронную загрузку чтоб время было между реквестами. Ибо получается ебучий дудос (5 реквестов в сек лол) и вдруг Абу посчитает что это дуос и заблочит
Аноним 17/06/18 Вск 19:16:21 #157 №1211929 
>>1211863
Ну да, слава богу, что уже несколько лет можно не трогать руками кривейшие жс-прототипы, а использовать более-менее человеческий сахарок классов и забыть про эту хуйню как страшный сон.
Аноним 17/06/18 Вск 19:17:29 #158 №1211930 
>>1211925
Я этого не говорил. Можешь и через js всё это делать.
Аноним 17/06/18 Вск 19:17:34 #159 №1211932 
95919123.jpg
>>1211863>>1211929
Только посмотрите на эту блевоту.
Аноним 17/06/18 Вск 19:17:37 #160 №1211933 
>>1211929
где еще пишут на ооп? Класов не видел уже на фронте милиард лет, на беке вот первый раз буду typeORM чекать, декораторы там все дела
Аноним 17/06/18 Вск 19:20:25 #161 №1211937 
>>1211933
TypeScript йопта.
Аноним 17/06/18 Вск 19:21:05 #162 №1211938 
>>1211933
Интересно, как ты собрался писать без ООП на ОО-языке? Нет, я понимаю конечно, что и на джаве можно в 100% функциональном стиле писать, но нахуя стрелять себе в ногу?
Аноним 17/06/18 Вск 19:22:22 #163 №1211940 
>>1211930
Так как тогда добавить блок или редактировать, например, на том же mail.ru? Как правильно называется сие действие? Мне банально нужна форма с полем для ввода текста и кнопкой.
Аноним 17/06/18 Вск 19:23:17 #164 №1211943 
>>1211937
вот как раз захожу в класы, на тсе уже года полтора пишу чисто в функциональном стиле. НА БЭКЕНДЕ :3
Аноним 17/06/18 Вск 19:24:00 #165 №1211946 
>>1211940
Я не буду за тебя реализовывать твою хотелку.
Аноним 17/06/18 Вск 19:25:57 #166 №1211947 
>>1211946
Где я тебя прошу её реализовывать за себя? Ни в одном посте с самого начала это не было. Я попросил дать ссылку на урок или хотя бы ключи для поиска.
Аноним 17/06/18 Вск 19:26:33 #167 №1211948 
>>1211689
Бамп вопросу.
Аноним 17/06/18 Вск 19:37:22 #168 №1211952 
14681105584450.jpg
Котаны, а как перекатится в новомодный js после двух лет на ruby? С чего начать? Есть ли тут бывшие рубисты? Расскажите свои кулстори.
Аноним 17/06/18 Вск 19:39:27 #169 №1211953 
>>1211689
https://msdn.microsoft.com/en-us/library/aa767736(v=vs.85).aspx
Аноним 17/06/18 Вск 19:43:36 #170 №1211959 
>>1211953
Я хз, что ты этим сказать хотел. Выше я уже писал, что ни разу не программист. Ты можешь нормально сказать, что гуглить, а не кичиться тем. что ты знаешь js, а кто-то нет?
Аноним 17/06/18 Вск 19:45:49 #171 №1211962 
>>1211940
Жмешь правой кнопкой на странице и выбираешь "Inspect Element", после чего редактируешь html-контент страницы как хочешь.
Аноним 17/06/18 Вск 19:47:06 #172 №1211963 
>>1211959
https://habr.com/post/52346/ вот норм статья
Аноним 17/06/18 Вск 20:10:40 #173 №1211976 
>>1211962
Бля. Я сделаю скрипт, вставлю его в хром, а именно в тэмперманки. Нахуя мне его руками каждый раз вставлять? Вопрос в том, какие теги/команды/функции/хуй знает, что ещё встраивают ту же хтмл разметку или ксс из этого скрипта на страницу, на которой он запускается.
Аноним 17/06/18 Вск 20:12:20 #174 №1211979 
>>1211976
https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction
Аноним 17/06/18 Вск 20:17:10 #175 №1211983 
>>1211952
Попробуй начать с прочтения документации.
Аноним 17/06/18 Вск 20:23:58 #176 №1211986 
>>1211979
Это актуально, если бы на страницу был заранее встроен скрипт или путь к нему прописан.
Аноним 17/06/18 Вск 20:43:35 #177 №1212000 
>>1211986
Если ты хочешь что-то вставить в дом, то тебе очевидно нужны методы работы с домом. Хоть как свой скрипт вставляй.
Аноним 17/06/18 Вск 20:46:02 #178 №1212003 
>>1212000
> Хоть как свой скрипт вставляй.
Так с этим вопросом я сюда и пришёл. Сколько ни гуглил так и не нашёл, как его вставить. Везде предлагается только <script></script>. Руками, естественно не подходит.
Аноним 17/06/18 Вск 21:05:57 #179 №1212010 
>>1211952
>в жс с руби
Ты че ебач чтоле?
Аноним 17/06/18 Вск 21:29:42 #180 №1212022 
>>1211952
Берешь да перекатываешься. Язык даже попроще будет. Только готовься к функциональщине.
Аноним 17/06/18 Вск 22:59:39 #181 №1212072 
>>1211952
Вообще-то, именно в JS и перекатились все хипстеры-смузихлёбы рубисты.
Или ты думал откуда всё это в JS?
Аноним 18/06/18 Пнд 07:08:50 #182 №1212186 
>>1212072
Я перекатился(потенциально) в охуенный эликсир, а на жсе сделал пару простых серверов и сейчас перехуячиваю фронт для старого рельсо проекта на реакт, чтобы не было так больно работать с тем легаси-говном, что там накопилось в ассетах. Ну и сам проект перевожу на эликсир потихоньку, потому что давно нужен полный рефактор, так что хули бы и не переписать на новый стек. Надеюсь к концу года будут заметные результаты.
рубист не-смузихлеб
Аноним 18/06/18 Пнд 07:17:41 #183 №1212187 
>>1212186
>несмузихлеб
>эликсир
Ага.
Аноним 18/06/18 Пнд 08:50:46 #184 №1212207 
>>1211952
>Котаны, а как перекатится в новомодный js после двух лет на ruby? С чего начать?

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

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

Есть еще конечно,встроенный хластер, но он всего лишь запускает 8 отдельных экземпляров твоей аппликухи и обеспечивает свой маняраундробин-фейловер (с этой же задачей справляется гораздо лучше нужник и http на unix domain sockets), но его отличие от первого варианта в том, что таких бабмань-бухгалтерш понадобится для убивания апликухи не одна как в первом случае, а по количеству процессоров.

ES6 и ES2015 в этом плане принесли возможность использовать промисы и yield, что несколько облегчит твою жизнь, но необходимость превращать свой код в лапшу из setTimeout() по прежнему остается, как только твоя бизнес логика вырастет за пределы "склеить батарейки по Readme.md".
Аноним 18/06/18 Пнд 08:56:02 #185 №1212210 
>>1212207

Большинство хипстоты ничего кроме

>склеить батарейки по Readme.md

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

А описанное тобой обычно на интырпрайзной жабе пишут.
Аноним 18/06/18 Пнд 09:34:03 #186 №1212218 
>>1211933
>где еще пишут на ооп? Класов не видел уже на фронте милиард лет
А реакт по-твоему что?
Аноним 18/06/18 Пнд 10:57:20 #187 №1212244 
>>1212218

Тот случай, когда ООП обусловлено сутью библиотеки (мапинг кусков хтмл в виджеты). Хуизнес-логика один хер - это асинхронные колбеки/асинк с промисами, с которыми ооп не дружит.
Аноним 18/06/18 Пнд 11:51:21 #188 №1212277 
>>1212218
В оригинале реакт вообще был на Standard ML написан.
ООП интерфейс взяли при порте на JS чтобы народ не спугнуть, да для оптимизации под JS реалии
Аноним 18/06/18 Пнд 12:11:00 #189 №1212289 
>>1212244>>1212277
Охуеительное у вас представление об ООП уровня восторженного ньюфага "ФП хайпят, значит ФП это охуенно а ООП - говно". Объект - это набор методов с внутренним стейтом, только и всего. Если вы раньше хуячили наследование наследования наследования и называли это "ООП", то это не проблема ООП и вы так же будете хуярить говнокод в любом функциональном языке.

На жсе писать в тру-функциональном стиле нерационально и практически невозможно. Композиция функций, лямбы, монады и т.д - это не ФП. Это его элементы, которые прекрасно уживаются с объектами и классами. Точно так же, как наследование, полиморфизм и прочие элементы ООП прекрасно применяются в функциональных языках. Хорошая программа должно использовать и то, и то.
Аноним 18/06/18 Пнд 12:14:15 #190 №1212291 
>>1212289
Мне-то ты что говоришь. Я прекрасно знаю об ML модулях, которые аналогичны ооп во многом, а так же о скале.
Аноним 18/06/18 Пнд 12:25:11 #191 №1212299 
Объясните момент с регулярками.

Вот есть какая-нибудь var string='abc123'.
В этой стр, допустим, можно выделить (abc)(123) // $1$2
Вот так можно захватить группы в .test, .match, .replace.

А вот как мне эти захваченные группы засторить в переменную?

Т.е. грубо говоря
1. Действие один - где-то захватываю группы (н-р var RegExp=(abc)(123) или хз
2. Действие второе вынести группу $1 или группу $2 в переменную. Чтобы потом можно было реплейсить в стр переменной, в которую засторили группу 1 или группу 2 плюс совершили действие какое-то.
Аноним 18/06/18 Пнд 12:44:26 #192 №1212313 
59129538124.jpg
>>1212299
Аноним 18/06/18 Пнд 12:53:32 #193 №1212319 
Объясните мне, котаны, чтому в вашем жабоскрипте такие хуёвые числа. Бабосик считать - рви пердак, числа больше сраного квадрилиона (может пилить экономическую стратегию хочу, или там круд для банка ZOG) - используй другие библиотеки и рви пердак .add(number2) вместо оператора сложения, и так блядь весь код потому что мне большие бабосики складывать надо. Чому такая хуета, да и вжабке обычной тоже, все пиздят за интырпрайз а как бабосики считать - так рви пердак, где ж этот ваш интырпрайз?
Аноним 18/06/18 Пнд 13:02:53 #194 №1212326 
Решил через колбэк в реплейс.
Аноним 18/06/18 Пнд 13:04:41 #195 №1212330 
>>1212313
Спс буду иметь в виду. Но уже ебнул через колбэк в реплейс.
Аноним 18/06/18 Пнд 13:14:41 #196 №1212339 
>>1212319
BigInt скоро подъедет. Уже в последнем хроме есть.
sageАноним 18/06/18 Пнд 14:07:51 #197 №1212379 
>>1212319
BigDecimal и BigInteger уже давно есть в джаве, долбаёб
Аноним 18/06/18 Пнд 16:41:48 #198 №1212558 
>>1212379
Ну так он и сказал, что нужно использовать .add вместо оператора
Аноним 18/06/18 Пнд 16:54:48 #199 №1212574 
тест
Аноним 18/06/18 Пнд 16:58:51 #200 №1212581 
Реактоблядки, поясните такую вещь.

Есть stateful компонент item-editor, в нём два text input и кнопка save.
И есть список items.
При нажатии на строку этого списка в item-editor передаётся выбранный item как prop.
При этом value у input'ов заданы из внутреннего стейта + onChange.

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

getDerivedStateFromProps() - не то.
Делать сайд-эффект в shouldComponentUpdate() - менять там state из нового prop?
Аноним 18/06/18 Пнд 17:01:33 #201 №1212586 
Внимание вопрос знатокам.
Задает полный нубас.
Юзаю я значит Math.random(); и всплыл такой вопрос - по нему совсем малая погрешность, т.е. на 1000 итераций, если брать, скажем, 0.15 как пограничное число, выдаст что-то вроде 144 тру и 856 фолс.
Это Node.js, почему у него ядро такое предсказуемое?
Я сейчас еще запилю хвататель стриков, посмотрю сколько подряд выхлопов дает тру/фолса, но вангую что не много, при таких=то показателях.
Вопрос в догонку, есть ли другие варианты рандома?
Аноним 18/06/18 Пнд 17:05:29 #202 №1212588 
>>1212581
Вынеси стейт инпутов в item-editor, раз ему нужно знать об этих изменения, очевидно.
Аноним 18/06/18 Пнд 17:10:24 #203 №1212593 
>>1212588
Он там и есть.

Проблема в том, что он должен меняться при смене prop у item-editor - когда выбрали новый item.
Но, нормально это можно сделать 1 раз - в конструкторе.
Аноним 18/06/18 Пнд 17:13:33 #204 №1212596 
>>1212593
>При этом value у input'ов заданы из внутреннего стейта + onChange.
>Он там и есть.
Че? Код давай
Аноним 18/06/18 Пнд 17:19:39 #205 №1212600 
>>1212596
https://pastebin.com/yqWuHPZA
Аноним 18/06/18 Пнд 17:32:08 #206 №1212608 
>>1212586
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random
>does not provide cryptographically secure random numbers.

https://nodejs.org/dist/latest-v10.x/docs/api/crypto.html#crypto_crypto_randombytes_size_callback
Аноним 18/06/18 Пнд 18:08:34 #207 №1212625 
>>1212608
Мне не для безопасности, просто в Питоновском мате приходилось делать костыль для обрезания долгих стриков, при "шансе" в 1% могло выдать и 300 и 400 фолсов подряд.
Сейчас почитаю что скинул, спасибо за внимание.
Обезьяна конченная зачем ты прокси банишь на /pr/?
Аноним 18/06/18 Пнд 18:36:16 #208 №1212635 
Какой метод перебирает массивы резче - файнд или фильтор?
Аноним 18/06/18 Пнд 18:38:09 #209 №1212637 
>>1212635
Фильтр
Аноним 18/06/18 Пнд 19:12:07 #210 №1212662 
>>1212600
https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
И ты каждый раз в конструкторе ставишь в state одни и те же статичные значения, а не полученные из props
Аноним 18/06/18 Пнд 19:37:38 #211 №1212676 
>>1212662
>И ты каждый раз в конструкторе ...
Да неужели, лол.
Естественно - на момент создания компонента редактируемый item не выбран.

За ссылку - спасибо.
Это именно то, что нужно.
В итоге всё, как обычно, сводится к lifting state up.

Реакт, конечно, лютая opinionated xyuta.
Реально, прямо физически утомляет всё это.
Одного китайца, похоже, так утомило, что он аж целый фреймворк написал, лол.
Аноним 18/06/18 Пнд 19:42:46 #212 №1212679 
>>1212676
Ну так поставь this.props.item.id || '', не? И defaultProps = { item: {} }
Аноним 18/06/18 Пнд 19:58:08 #213 №1212693 
>>1212600>>1212676
https://pastebin.com/ZgfbyWgv Так попробуй, должно работать.
Аноним 18/06/18 Пнд 19:58:39 #214 №1212694 
>>1212679
Да это понятно, но, проблема же не в этом.
В итоге, при создании всё равно соответствующие поля в стейте будут пустые.
Вопрос был - как менять state при изменении props.

В принципе, componentWillReceiveProps() - это решение.
(И getDerivedStateFromProps() - нихуя не замена ему, как они пишут.)
Но, они говорят - это антипаттерн, выносите состояние (и обработку его изменений) выше.

Алсо, умиляет, что тот блог-пост всего 10 дней назад написан.

На самом деле - этот пример (и тот, что в блог-посте) - это самая мякотка Реакта, которая показывает всю глубину ебанизма.
Снова вспоминаются всякие афоризмы на тему pure = poor, лол.
Аноним 18/06/18 Пнд 20:03:25 #215 №1212699 
>>1212694
Итем лист и item-editor обернуты в родительский компонент. Когда ты жмешь на итем в списке, родительский компонент апдейтит свой стейт {selectedItem: item} и соотвественно ре-рендерит все дочерние компоненты, включая item-editor, куда передает item={selectedItem}. editor инициализируется заново с новыми props и проставляет себе новый state, соотвественно перерендеривая все дочерние инпуты с нужными тебе значениями. В чем проблема, что я упускаю?
Аноним 18/06/18 Пнд 20:19:10 #216 №1212713 
>>1212699
Item-editor не создаётся заново при этом.
Конструктор не вызывается.
Стейт не меняется.

Надо использовать componentWillReceiveProps(newProps).
Или выносить стейт и onChange в род. компонент, а item-editor делать функцией, как в примере в том посте по ссылке.

C getDerivedStateFromProps() у меня (вчера) не получилось, надо попозже ещё попробовать, возможно, я чего-то недопонял.

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

Потому, что Vue мне кажется в разы более практичным.
И кроме удовольствия других эмоций не вызывает.
Но, у React мне нравится инструментальная поддержка, и вообще то, что это чистый JS.

Но, если за эти ништяки надо заплатить слишком дорого - то пусть оно идёт на хуй.
Потому, что для Vue инструментальная поддержка тоже неплоха (для single file components), а бойлерплейта там в разы меньше. И куча дополнительных ништяков. И можно даже писать в react-стиле на JSX (но неинтересно и не нужно, в большинстве случаев).
Аноним 18/06/18 Пнд 20:45:23 #217 №1212738 
ma.jpg
>>1212713
>Потому, что Vue мне кажется в разы более практичным.
Вьютух становится всё изобретательней. Уже целую многоходовочку с лифт-стейтом разыграл, как по нотам.
Аноним 18/06/18 Пнд 21:35:44 #218 №1212784 
>>1212713
Все, я разобрался. Да, думал, что конструктор вызывается при каждом рендере, потому что с реактом работаю недавно, но в принципе проблема понятна - ты пытаешься менять один и тот же логический стейт(значения инпутов) из двух разных мест, вот реакт и выебывается, потому что локальный стейт должен меняться только изнутри объекта, а не откуда попало.
Аноним 18/06/18 Пнд 22:47:16 #219 №1212848 
>>1212738
> Вьютух
Ты имеешь в виду некоего хуя, который по весне форсил тут Vue?
Я не он, лол.

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

Костыль в виде getDerivedStateFromProps() - это и есть попытка это исправить. Надо с этим разобраться, пока не понял, будет ли с этого толк.

Что касается практичности, Vue - охуенно практичная вещь. И весьма сбалансированная.
И значительно менее opinionated, чем реакт.
Пока реактоблядки разбираются где паттерн, где антипаттерн и хуярят тонны бойлерплейта - на Vue просто пишут компактный работающий код.

Тут главное, чтобы в будущем они не понаделали какой-нибудь хуйни, в попытке улучшить хорошее.

А реакт имеет то преимущество, что ломать там просто нечего, лол.
Аноним 18/06/18 Пнд 23:15:54 #220 №1212875 
>>1212848
>Костыль в виде getDerivedStateFromProps()
Это не костыль, это возможность для реализации edge-cases. Твой случай решается по-другому, выше ссылка уже была. Конкретно объясни, что в этом решении тебе не нравится и зачем ты хочешь менять стейт и снаружи компонента, и внутри, когда можно его вынести в одно место и сразу видеть, все случаи, как и из-за чего он может измениться, а не гадать по кофейной гуще с дебагером.
Аноним 19/06/18 Втр 00:10:45 #221 №1212931 
>>1212875
>что в этом решении тебе не нравится и зачем ты хочешь менять стейт и снаружи компонента, и внутри

Речь идёт о низкоуровневом, "техническом" стейте - необходимом для функционирования controlled input.
И мне бы хотелось, чтобы он был инкапсулирован там, где он используется.
И я не хочу его менять, я хочу его за-менять, полностью.
А мне предлагают всё это говно тащить на самый верх, ибо иначе (через componentWillReceiveProps()) - "антипаттерн".

И тут мы приходим к интересному выводу.
Дело в том, что Реакт - это библиотека (не фреймворк).
И делает она только view. Больше там нет нихуя.

И совершенно _любой_ (встроенный) стейт в Реакте - технический, низкоуровневый. Предназначенный исключительно для функционирования внутренней механики view.
И делать на нём какую-либо бизнес-логику совершенно неправильно.

Но, большинство людей этого не понимает, и пытаются.
Отсюда и все эти тучи разъяснений и поучений в интернетах, как надо и как не надо юзать Реакт.

Короче, смысл в том, что в чистом виде Реакт _вообще_ не пригоден к использованию. К нему _обязательно_ , сразу же. надо наворачивать что-то для поддержки бизнес-логики. Редукс, МобИкс, event bus, что угодно.

И это-то мне и не нравится.
Хотя, этот недостаток, по сути - ни что иное, как продолжение достоинств.

Короче, как я уже тут писал - слишком низкоуровнево и слишком затратно.
Аноним 19/06/18 Втр 08:27:42 #222 №1213027 
>>1212931
Согласен, реакт _параша_ та еще.
Аноним 19/06/18 Втр 10:54:34 #223 №1213071 
>>1212931
>Речь идёт о низкоуровневом, "техническом" стейте - необходимом для функционирования controlled input.
У инпута единственный стейт - это его значение. То, что ты можешь его менять через onChange, не значит, что он технический. Просто браузер предоставляет тебе функционал для детекта ввода от юзера, который реализован через эвент. Если ты хочешь детектить другие эвенты(клик по списку итемов) и изменять значения инпута соотвественно, то тебе нужно каким-то образом связать инпут еще и с тем эвентом. Реакт считает, что все эвенты, которые влияют на стейт компонента, должны объявляться и триггериться в одном месте. Для этого и нужно lifting state up, чтобы обернуть связанные между собой компоненты и объявить эти эвенты. Я по UI не эксперт, так как работаю в основном с серверной частью, но по-моему это вполне здравая идея.

>Дело в том, что Реакт - это библиотека (не фреймворк). И делает она только view. Больше там нет нихуя.
Это должно было стать понятно сразу после прочтения доков. Из-за этого он мне и понравился, но понятное дело, что если ты начинаешь в любых вьюхах(не только реактовских) хуячить что-то кроме презентативной логики "взять то, поставить туда", то рано или поздно останешься с кучей неподдерживаемой хуйни. Об этом знает любой, кто работал с каким-то популярным MVC фреймворком.
React + Redux = MVC? Аноним 19/06/18 Втр 12:58:42 #224 №1213136 
Реакт-компоненты это View.
Стор это Model.
Reducers = Controllers.
Всё так?
Аноним 19/06/18 Втр 13:01:54 #225 №1213138 
>>1213136
MVC в современном понимании - это полная хуйня, которая не работает, как только твое приложени становится чуть сложнее палки. Ну нельзя всю логику запихнуть в модели/контролеры/вьюхи и не остаться с кучей говнокода, который не принадлежит ни к чему
Аноним 19/06/18 Втр 13:19:51 #226 №1213148 
flux-react-mvc.png
flux-react.png
>>1213136
>Всё так?
Ну, это очень вольное толкование, лол.
Вообще-то, Redux (Flux) - это альтернатива MVC.

https://habr.com/company/tuturu/blog/321820/
http://tech.toptable.co.uk/blog/2015/01/01/explaining-flux-architecture-with-macgyver-dot-js/
https://www.infoq.com/news/2014/05/facebook-mvc-flux
google: flux architecture vs mvc

>>1213138
Всё так и есть.
Аноним 19/06/18 Втр 13:50:14 #227 №1213165 
>>1212931
>>1213071
Я тут переосмыслил эту тему.

На самом деле, то, что я пытался делать с Реактом - это как раз таки попытка сделать классическое "клиентское" MVC.
Там, как раз, бизнес-логика вперемешку со техническим стейтом.
Взять, хотя-бы, Java Swing.
Вот тут эта проблема хорошо описана:
https://habr.com/company/tuturu/blog/321820/

А Реакт для MVC не годится.
Т.е. можно, но некрасиво получается.
Да и незачем, лол.

Конкретная же описанная проблема решается через ресет стейта под новый item в componentWillReceiveProps(). Всё работает просто замечательно.
Аноним 19/06/18 Втр 16:06:01 #228 №1213203 
Ребята, кто с джава работает и сам из Новосибирска отпишитесь, нужно написать бота для лайв ставок как расширение хрома, пример бота рабочего есть, исходный код можно посмотреть

Профит с этой темы ооооочень хороший
Аноним 19/06/18 Втр 16:26:58 #229 №1213213 
хромог.PNG
Почему хроманя с последней версии неправильно конвертирует строку в дату? Какой еще часовой пояс +03:06, они там совсем ебанулись в своем гугле? В лисе все нормально.
Аноним 19/06/18 Втр 16:34:53 #230 №1213216 
>>1213213
Нехуй было в футбол России проигрывать.
Аноним 19/06/18 Втр 16:38:45 #231 №1213221 
>>1213216
Но я в России, хуй пойми откуда он берет Саудовскую Аравию.
Аноним 19/06/18 Втр 17:23:34 #232 №1213257 
>>1213213
Это санкции против России. А вообще попробуй добавить .toLocaleString()
Аноним 19/06/18 Втр 18:08:08 #233 №1213276 
Screenshot20180619200533.png
Есть такая json DB, какой должен быть запрос для изменения например комментария отдельного элемента?
Аноним 19/06/18 Втр 18:27:22 #234 №1213283 
Screenshot20180619-221747.png
Ребята, кто с джава работает и сам из Новосибирска отпишитесь, нужно написать бота для лайв ставок как расширение хрома, пример бота рабочего есть, исходный код можно посмотреть

Профит с этой темы ооооочень хороший
Аноним 19/06/18 Втр 18:28:23 #235 №1213284 
>>1213283
Джаваскрипт и джава разные вещи, для справки.
Аноним 19/06/18 Втр 19:07:02 #236 №1213306 
>>1213284
В этой проге скорее всего джава скрипт
Аноним 19/06/18 Втр 19:10:45 #237 №1213311 
>>1206689 (OP)
Зацените охуенную штуку:
https://vimsical.com/

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

Попенсорсно (код на кложе+кложескрипте): https://github.com/vimsical/vimsical
Аноним 19/06/18 Втр 19:23:23 #238 №1213325 
>>1213283
[email protected]
Аноним 19/06/18 Втр 19:23:53 #239 №1213326 
>>1213325
Проебался.
[email protected]
Аноним 19/06/18 Втр 19:33:58 #240 №1213330 
>>1213326

Напиши в телегу @igergg
Аноним 19/06/18 Втр 20:06:20 #241 №1213360 
JSAnon, подскажи плз нормально ли так сохранять контекст для TypeScript - https://jsfiddle.net/1b68eLdr/24496/ все работает, но нет ли какого оверхэда, а то я нуб, по сравнению с такой реализацией https://jsfiddle.net/1b68eLdr/24501/ ?
Аноним 19/06/18 Втр 20:16:24 #242 №1213368 
>>1213360
Вопрос только - нахуя его сохранять в классе? У тебя при каждом созданном объекте This.self будет перезаписываться.
Аноним 19/06/18 Втр 20:33:28 #243 №1213387 
>>1213368
Точно, спасибо, анон. Как то провтыкал это. Как тогда лучше следить за этим this, есть какой то лайфхак?
Аноним 19/06/18 Втр 20:49:04 #244 №1213396 
>>1213387
Я не очень понял, чего ты хочешь?
Зачем следить за this?
Это ссылка объекта на себя, она не меняется.

Ты хочешь создавать объекты и запоминать их ссылки? Тогда это называется Factory pattern.
Аноним 19/06/18 Втр 20:57:00 #245 №1213402 
>>1213396
>Это ссылка объекта на себя, она не меняется.
Это в других языках, в JS же this ссылается на контекст, а не на инстанс объекта.

А мне вызывать потом в колбеке нужно будет пару методов, в итоге все поломается, потому что this будет хер знает что
Аноним 19/06/18 Втр 21:08:52 #246 №1213409 
>>1213402
Понятно.
Тебе надо self = this.
Это руками, везде, где this может быть неправильным.

Напр. тебе из метода объекта надо вызвать колбек, и внутри колбека обратиться к объекту.
Тогда в методе перед вызовом колбека пишешь const self = this.
А потом уже в колбеке self.someProp ...

Также, можно привязывать колбек к this объекта.
Точнее, создавать новый колбек, привязаный к нужному this:
this.boundCallback = someCallback.bind(this);
В реакте так делают - в конструкторе класса.
Аноним 19/06/18 Втр 21:16:16 #247 №1213413 
>>1213409
>Тогда в методе перед вызовом колбека пишешь const self = this.
кстати, мое изобретение :^)
Аноним 19/06/18 Втр 21:51:59 #248 №1213427 
>>1213413
Дед, ты же умер в 2009.
Аноним 19/06/18 Втр 22:16:23 #249 №1213440 
>>1213409
Можно ещё и делать someCallback.call(this, arg1, arg2, ...) или someCallback.apply(this, argsArray).

Так что, в большинстве случаев использовать self = this просто не нужно.
Аноним 20/06/18 Срд 00:20:12 #250 №1213477 
Анон, я совсем даун. Объясните как работает обработка ошибок в callback-функциях в контексте резервации первого аргумента для ошибок. Вот на примере это не могу понять нихуя https://stackoverflow.com/a/19739899
Аноним 20/06/18 Срд 00:48:11 #251 №1213483 
14810770325230.jpg
Как на имиджбордах через js загрузить изображение в пост?
Аноним 20/06/18 Срд 01:19:07 #252 №1213489 
>>1213477
ну, при ероре у тебя функция вернет ерор, при результате, результат. ты тупа смотришь, не ерор ли это
Аноним 20/06/18 Срд 01:40:55 #253 №1213495 
>>1212848
Vue не "менее opinionated", а намешивает ангуляр с реактом, чтобы ублажить и тех и тех, без своего видения или идеи.
Аноним 20/06/18 Срд 02:23:23 #254 №1213501 
>>1213495
Да просто надо писать по книге «Vuex Concepts» (Daniel Schmitz & Daniel Pedrinha Georgii), а не скрещивать бульдога с носорогом. Получится тот же React/Redux, но более быстрый, за счёт отсутствия VirtualDOM.
Вот она:
https://bit-ly/2K5Yw6p

Аноним 20/06/18 Срд 02:24:24 #255 №1213502 
>>1213483
бамп неужели никто не знает
Аноним 20/06/18 Срд 02:25:07 #256 №1213503 
>>1213501
Тут вместо «-ly» набрать «.ly»
Аноним 20/06/18 Срд 09:09:39 #257 №1213543 
>>1213502
Из браузера - никак, js не имеет доступа к файлам системы. Можешь искать API борды, скорее всего там есть такая возможность, сможешь на ноде скрипт написать.
Аноним 20/06/18 Срд 12:41:34 #258 №1213611 
>>1213501
>Педрина
Ска лол.
Аноним 20/06/18 Срд 13:40:14 #259 №1213640 
>learn.javascript.ru - Самый главный русскоязычный сайт по JavaScript. Других таких подробных уроков не найти. Начинать строго с него.
Пиздец, ну и говнина этот кантор, нихуя толком не объясняется и вообще какая-то ебанина.

Сейчас читаю одну книжку (на английском) про жс, и охуеваю с того, как я жил раньше и не знал основ.
Аноним 20/06/18 Срд 13:55:22 #260 №1213652 
>>1213640
Ну а хули делать, вкатывальщики обычно английский знают на уровне бе ме, а потом уже подтягивают хотя бы до чтения технической литературы. Им кантор самое то.
Аноним 20/06/18 Срд 14:18:52 #261 №1213664 
>>1213501
>Vue
>но более быстрый, за счёт отсутствия VirtualDOM.
>отсутствия VirtualDOM
Ты, я смотрю, просто эксперт.
В пионерлагерь-то чего не поехал?
Или прямо оттуда двачуешь

>>1213495
>намешивает ангуляр с реактом
Ты, вообще, понимаешь, что такое ангуляр?
Видел его?
Сходи, посмотри, лол.

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

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

И там компоненты - это именно компоненты, в том смысле, в каком их понимает нормальный человек, а не просто кусочки хуйни, как в реакте.

Аноним 20/06/18 Срд 14:20:08 #262 №1213666 
>>1213640
>Пиздец, ну и говнина этот кантор, нихуя толком не объясняется и вообще какая-то ебанина.

Приятно встретить понимающего человека.
Реально заебали уже это говно форсить.
Аноним 20/06/18 Срд 14:50:42 #263 №1213689 
Почему Infinity при любых(кроме степени) мат. операциях с целым дает Infinity, а при возведении в степень Infinity обращается в 1?
Аноним 20/06/18 Срд 15:02:44 #264 №1213695 
>>1213666
Альтернатива на инглише какая?
Аноним 20/06/18 Срд 15:41:11 #265 №1213716 
>>1213695
Книг полно.
В том числе и хороших.

http://eloquentjavascript.net
https://addyosmani.com/resources/essentialjsdesignpatterns/book/
(эти две читать прямо на сайте)

http://www.allitebooks.com/secrets-of-the-javascript-ninja-2nd-edition/
http://www.allitebooks.com/the-principles-of-object-oriented-javascript/
http://www.allitebooks.com/understanding-ecmascript-6/
http://www.allitebooks.com/functional-javascript/
http://www.allitebooks.com/reactive-programming-with-rxjs/

Вот ещё нестареющая классика:
http://www.allitebooks.com/javascript-the-good-parts/

JavaScript Allonge погугли ещё.

Курсы и прочее подобное - гугли.
Аноним 20/06/18 Срд 16:36:01 #266 №1213756 
>>1213695
Алсо - вот Eloquent Javascript на русском:
https://habr.com/post/240219/

Это в шапке, в материалах для изучения, кстати.
Не пренебрегайте.
Аноним 20/06/18 Срд 16:42:03 #267 №1213761 
>>1213543
Ну а если файлы брать не из системы а из самого треда? Где ссылка на изображение должна прописываться?
Аноним 20/06/18 Срд 16:49:02 #268 №1213771 
>>1213689
Ты наверное путаешь степень с https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Bitwise_XOR_assignment

Чтобы возвесть в степень используй Math.pow
Аноним 20/06/18 Срд 16:49:25 #269 №1213772 
>>1213761
В теле POST-запроса. И не ссылка, а base64encoded image data, сформированная через BOM API.
Аноним 20/06/18 Срд 16:50:52 #270 №1213775 
>>1213771
Да, да, я проебался конечно. Простите. Привычка.
Аноним 20/06/18 Срд 16:52:37 #271 №1213779 
>>1213640
дай угадаю: ты долго ковырял Кантора, потом бросил, начал читать книжку, все стало усваиваться лучше и ты сразу такой: бляя) кантор хуйня какаято непонятная, книга лучше оказывается)
Расскрою секрет - если бы ты сначала ковырял книгу, а потом начал Кантора, тебе бы второй ресурс показался понятнее, потому-что ты уже пришел туда с какими-то знаниями, и начал просто их раскладывать по полочкам и систематизировать.
Просто, я часто смотрю видосики на ютубе, и там всегда находится какой-нибудь восторженный долбоёб который напишет: спасибо автор!! я уже на трёх разных ресурсах учил <<хуйнянейм>> и только у тебя я понял, потому-что ты лучший!!!!. Нет бля, он не лучший, просто тебе долбоёбу нужно четыре раза объяснить всё с разных сторон, чтобы ты понял.

А вообще, я считаю именно книги хорошим способом упорядочить знания, а для первых шагов лучше использовать метод теория+практика в одинаковых дозах, а Кантор для этого подходит лучше
Аноним 20/06/18 Срд 16:52:41 #272 №1213780 
>>1213761
По-моему браузер вообще не позволяет жсу хоть как-то менять значение файл инпутов. Можно разве что самому составить кастомную формдату, куда и включить эти файлы, после чего запостить.
Аноним 20/06/18 Срд 16:52:52 #273 №1213782 
>>1213716
>>1213756
Что-то меня тоже от кантора поблёвывать тянет малоть. Какой раз пробую читать и как-то не идет. Попробую Eloquent JavaScript, уже не первый раз её вижу.
Аноним 20/06/18 Срд 17:04:02 #274 №1213788 
>>1213779
Кантор хорошо когда нет опыта вообще.
Аноним 20/06/18 Срд 17:05:25 #275 №1213789 
Спецификации и MDN хватает за глаза.
Аноним 20/06/18 Срд 17:06:26 #276 №1213790 
>>1213789
Человеку который уже знает какой-нибудь другой ЯП, конечно
Аноним 20/06/18 Срд 17:09:48 #277 №1213794 
>>1213790
Изучал веб-стек php, js, html, css (ну и периферию в виде протоколов, бд, етк) руководствуясь лишь спеками и справочниками. С нуля. До этого не знал ничего вообще.
Аноним 20/06/18 Срд 17:14:27 #278 №1213798 
>>1213794
Из книг считаю вообще напрасной тратой времени читать что-то по конкретным языкам. Читать можно лишь что-то монументальное по алгоритмам, по операционкам, архитектуре, сетям, или философское, по типу Раскина или Макконела, если любопытно. А языки изучать по книжкам, это это от лени какой-то.
Аноним 20/06/18 Срд 17:15:14 #279 №1213799 
>>1213798
>монументальное
фундаментальное*

Аноним 20/06/18 Срд 17:39:00 #280 №1213815 
>>1213779
Двачую вот этого дядю.
Аноним 20/06/18 Срд 18:03:15 #281 №1213842 
>>1213780
позволяет только сбросить значение пустой строкой. а что измениться если заменить форму? то есть в ней же тоже будет инпутфайл, которому нельзя задать значение програмно.
Аноним 20/06/18 Срд 18:07:23 #282 №1213847 
>>1213798
А я Гарри Поттера любил читать, это по-твоему тоже трата времени?
Аноним 20/06/18 Срд 18:41:31 #283 №1213906 
двач меня сегодня приняли на позицию фронтендщика. Первый раз в офис завтра пойду !!111!
Аноним 20/06/18 Срд 18:43:07 #284 №1213908 
>>1213906
какой лвл? опыт какой-нибудь работы есть?
Аноним 20/06/18 Срд 18:45:24 #285 №1213912 
>>1213908
21
> опыт
не самый успешный опыт фриланса и на рубях пара пет прожектов

Аноним 20/06/18 Срд 18:57:33 #286 №1213925 
>>1213912
Нормально, чо. Легко устроился-то?
Аноним 20/06/18 Срд 19:01:02 #287 №1213931 
>>1213925
да не я думал меня сольют, начали задавать вопросы аля как происходит процесс рендеренга страницы чем прототипная парадигма отличиается от ОО и я чет поплыл. Что даже для меня удивительно т.к. большинство ответов на большинство вопросов я знал.
Сидел мямлил что-то невнятное.
Аноним 20/06/18 Срд 19:05:08 #288 №1213937 
>>1213931
Что еще спрашивали, довай подробностей
Аноним 20/06/18 Срд 21:34:57 #289 №1214058 
>>1213640
Всё там нормально объясняется.
Аноним 21/06/18 Чтв 00:51:01 #290 №1214252 
>>1214058
Хуёво там объясняется.
Тот, кому такие объяснения норм, тот в них не нуждается, как правило.
Аноним 21/06/18 Чтв 01:22:35 #291 №1214284 
Тоже не понимаю обвинений Кантора, вполне годно описаны многие стороны языка.
Аноним 21/06/18 Чтв 03:47:51 #292 №1214342 
Какая версия Кантора актуальнее: русская (learn.javascript.ru) или английская(javascript.info)
Аноним 21/06/18 Чтв 10:29:28 #293 №1214415 
>>1214342
Английская
Аноним 21/06/18 Чтв 11:26:29 #294 №1214434 
>>1214415
Не сильно он тех. терминами перегружен? Со словарём осилить можно? А кто попробовал Выразительный Javascript и охуел и от абстракций и афоризмов разных.
Аноним 21/06/18 Чтв 12:01:10 #295 №1214444 
>>1214434
Не знаю, не читал. Попробуй.
Аноним 21/06/18 Чтв 12:36:35 #296 №1214454 
>>1214252
Что там хуево объясняется?
Аноним 21/06/18 Чтв 12:53:14 #297 №1214462 
>>1214415
Кантор же русич, чем английская версия лучше, если русский - оригинал?
Аноним 21/06/18 Чтв 13:22:37 #298 №1214481 
>>1214462
Актуальная. Тут тебе сразу про стелочки расскажут, про let, про const. В русиче дай бог отдельно есть, если есть вообще инфа конкретно от него про всё это.
Аноним 21/06/18 Чтв 13:44:50 #299 №1214489 
Кантор вообще не нужен, ибо сть freecodecamp, который лучше по всем параметрам
Аноним 21/06/18 Чтв 14:11:42 #300 №1214502 
>>1214454
>Что там хуево объясняется?

Хуёво - это не "что", это "как".
Информации куча, да. И она достоверная.
Но, в качестве учебника с нуля, для человека, не умеющего программировать - хуёво.
А его именно в таком качестве и пытаются использовать.

Чтобы было понятно о чём я - посмотри серию книг "Grokking ..." или тот же "Head First ...".
Или совершенно охуенную митовскую "Once Upon an Algorithm".
Аноним 21/06/18 Чтв 14:30:26 #301 №1214513 
>>1214481
>const
Никогда кстати не использовал эту залупу, и не могу представить юзкейс, где она бы решала какую-то проблему, а печатать на два символа больше - идите нахуй. Особенно умиляет, что во всех гайдах теперь пишут const hui = require("penis"). В жс-манямире серьезно есть макаки, которые переписывают внешние переменные внутри функции?
Аноним 21/06/18 Чтв 14:34:42 #302 №1214514 
Как сделать onclick fetch?

Хочу чтоб было так:
// какая-то кнопка
<input type="submit" onclick="showJSON()">

// на клик мой json прилетает
function showJSON() {
fetch('my.json')
.then(function(response) {
return response.json();
})
.then(function(myJson) {
console.log(myJson);
});
}

console.log для примера, там конечно иной функционал.
Аноним 21/06/18 Чтв 15:04:29 #303 №1214529 
>>1214513
Именно поэтому ты никогда не вкатишься в ойти
Аноним 21/06/18 Чтв 15:06:47 #304 №1214532 
>>1214514
не понял что ты хочешь? Ты хочешь что бы вместо стандартного сабмита был аякс?
Тогда просто отмени стандартное действие браузера - event.preventDefault()
Аноним 21/06/18 Чтв 15:07:26 #305 №1214533 
>>1214529
Я уже пять лет тута, наркоман.
Аноним 21/06/18 Чтв 15:09:00 #306 №1214536 
>>1214532

>Тогда просто отмени стандартное действие браузера - event.preventDefault()

Или пусть type="button" использует.
Аноним 21/06/18 Чтв 15:13:01 #307 №1214540 
Правда ли, что операторы - это функции?

Например, + это не знак сложения, а функция, которая принимает два аргумента и возвращает одно?

Т.е.:
var a = b+c;
Это:
var a = function +(b,c){
return //сумма b и c
}
Аноним 21/06/18 Чтв 15:13:50 #308 №1214542 
>>1214533
В этом треде пять лет сидишь? Я ж говорю, что никогда не вкатишься.
Аноним 21/06/18 Чтв 15:29:09 #309 №1214550 
>>1214540
Логически - да. Практически - зависит от языка. Обычно +/*- и т.д реализованы как специальный оператор, а не функция.
Аноним 21/06/18 Чтв 15:38:33 #310 №1214555 
15068308354950.jpg
>>1214550
>Практически - зависит от языка
>жс-тред
Аноним 21/06/18 Чтв 15:40:24 #311 №1214557 
Operators.mp4
>>1214550
Чувак на видео говорит, как я описал выше, что это функция.
Но нигде в интернетах я не нашёл подтверждения, вот я и запутался - прав он или нет?
Аноним 21/06/18 Чтв 15:45:55 #312 №1214561 
>>1214557
Функция это инкапсулированная часть кода. + в контекст инкапсулированного кода никак не вписывается. Конкретно в жс, + это оператор, а какой любой другой оператор он возвращает значение. По итогу выполнения инструкции да, похоже на функцию. Семантически нет, это не функция.
Аноним 21/06/18 Чтв 15:48:15 #313 №1214562 
>>1214561
А если по русски?
Аноним 21/06/18 Чтв 15:49:03 #314 №1214564 
>>1214562
Это не функция. Про функции тебе чувак потом расскажет.
Аноним 21/06/18 Чтв 15:49:58 #315 №1214565 
>>1214564
>расскажет.
Почему тогда он говорит, что это функция?
Ты вообще видео смотрел?
Аноним 21/06/18 Чтв 15:53:54 #316 №1214567 
>>1214565
Если мои слова для тебя пиздеж тупой, иди на википедию, читай, что такое функция и сравни её с оператором +.
Аноним 21/06/18 Чтв 15:55:00 #317 №1214568 
>>1214567
Даже видео называет Операторы, а не функции.
Аноним 21/06/18 Чтв 15:57:51 #318 №1214570 
>>1214568
>Даже видео называет Операторы, а не функции.
Смог всё-таки перевести название через гугл транслейт, молодец. Жаль только, что содержимое не осилил.
Аноним 21/06/18 Чтв 15:59:00 #319 №1214573 
>>1214570
Ну куда уж мне до тебя.
Аноним 21/06/18 Чтв 16:23:50 #320 №1214586 
code.png
code2.png
code3.png
Аноны, помогите разобраться. Выдали мне ТЗ:


1) Сделать сайт. Стиль и содержание не важно.
2) Разместить на всех страницах меню для перехода по страницам с использованием javascript XMLHttpRequest.
переход по страницам без перезагрузки)
3) Для реализации не использовать сторонние js плагины, только нативный js.



Так это первый сайт в моей жизни очень туплю. Результат 15ти часов мозговых усилий работает так:

Со стартовой страницы localhosta переход действительно выполняется без обновления странички. Однако затем наступает крах. Т.е. перешёл с main на, скажем, 1 - всё ок. А уже обратно - нет. Впрочем, если затем перейти, допустим, с 2 на 3, то код тоже не сработает, но зато сработает ОБРАТНО. Короче, я запутался совсем.

КТО ПОМОЖЕТ РАЗОБРАТЬСЯ - СКИНУ 100 РУБЛЕЙ НА ТЕЛЕФОН
Аноним 21/06/18 Чтв 16:26:16 #321 №1214587 
>>1214513
>const
>не могу представить юзкейс, где она бы решала какую-то проблему
Есть такая вещь, как стиль.
В смысле - хороший.
Или его отсутствие, вот, как в твоём случае.
Аноним 21/06/18 Чтв 16:27:17 #322 №1214588 
>>1214540
Это в лиспе и в схеме так.
Аноним 21/06/18 Чтв 16:28:50 #323 №1214589 
>>1214588
>Это в лиспе и в схеме так.
А в жс?
Я же выше видео даже скинул ёпт
Аноним 21/06/18 Чтв 16:35:20 #324 №1214594 
>>1214589
Погуглил, нихуя не нашёл такого.
Видео не смотрел.
Аноним 21/06/18 Чтв 16:44:45 #325 №1214598 
>>1214589
Бегло просмотрел видео без звука.
Так про другое, лол.

Но, если тебя возбуждают такие вещи, тебе обязательно надо открыть для себя LISP (Scheme).

Кстати, есть такая точка зрения, что JS - это Scheme с сишным синтаксисом, лол. Только не надо понимать это буквально.
Аноним 21/06/18 Чтв 16:45:18 #326 №1214600 
>>1214598
>Так про другое, лол.
Чего?
Аноним 21/06/18 Чтв 16:50:23 #327 №1214601 
>>1214600
>Так
Там
Изучение js для разработчика на Java Васян 21/06/18 Чтв 17:44:23 #328 №1214627 
изображение.png
Всем привет! Уже год пишу на java. Могу в android. Знаю spring и другие мелкие библеотеки. Ближе к делу. Перед тем как начать изучать яву, я прошел коротенький бесплатный курс по javascript на geekbrains, мне он тогда не очень зашел кстати почему он мне не понравился я так и не понял, но сейчас загорелся желанием писать и на js тоже. Как мне следует начать его учить? В программирование в целом я уже могу, поэтому Марейн Хавербек - "Выразительный JavaScript" мне наверное не подойдет? Если так, то сможет ли Дэвид Фленеган - "JavaScript: Подробное руководство" научить меня, как новичка в js его синтаксису и особенностям? Может быть есть какие-либо годные видео курсы при изучении java читал книгу и паралельно смотрел нужные видео туториалы . Какие книги читали вы, в самом начале изучения?
Аноним 21/06/18 Чтв 17:50:26 #329 №1214634 
>>1214627
А чем ява отличается от яваскрипта? Это же одно и то же.
Васян 21/06/18 Чтв 17:57:00 #330 №1214638 
>>1214634
java - сильно типизированный язык
js - слабо типизированный язык
Аноним 21/06/18 Чтв 18:32:53 #331 №1214672 
>>1214634
>ява
>яваскрипт

С козырей зашёл, содомит.
Аноним 21/06/18 Чтв 18:55:53 #332 №1214689 
>>1214634
Ява это сигареты. А яваскрипт вовсе неведомая хуета какая-то тобою выдуманная.
Аноним 21/06/18 Чтв 19:16:51 #333 №1214697 
>>1214689
Тогда чому челик выше про яву пишет?
Аноним 21/06/18 Чтв 19:18:42 #334 №1214698 
Аноны, объясните глупому: почему при оборачивании вызова в функцию контекст не теряется и берется по замыканию? Разве обычный вызов не так же работает, т.е. сначала переменная ищется внутри, а потом - снаружи? С меня как обычно.
Аноним 21/06/18 Чтв 19:38:00 #335 №1214705 
>>1214627
Читай Кантора в самый раз будет.
Аноним 21/06/18 Чтв 19:38:02 #336 №1214706 
>>1214698
Ты про возврат функции в return и с помощью этого последующий доступ в закрытую функцию замыканием?
Аноним 21/06/18 Чтв 19:40:24 #337 №1214710 
>>1214698
Ты пример кода покажи, нихуя же не понятно, о чём ты.
Лучше в JS Fiddle или типа того.

Аноним 21/06/18 Чтв 19:46:28 #338 №1214716 
>>1214705
Я как раз это и делаю и че-то не совсем понимаю пример этот: https://learn.javascript.ru/bind#решение-1-сделать-обёртку
Аноним 21/06/18 Чтв 19:48:50 #339 №1214719 
>>1214716
Аххахахах, ты не можешь в карринг? Ебать лох!
Аноним 21/06/18 Чтв 19:51:30 #340 №1214723 
>>1214716
Ну блин. Привыкай.
У нас тут коллбеки, замыкания, контексты. Можем явно указывать, что является this...
Я сам с джавы пересел на джваскрипт, некоторые моменты показались очень странными.
Аноним 21/06/18 Чтв 19:51:33 #341 №1214724 
>>1214719
Я не про это скинул.
Карринг вроде понял.
Аноним 21/06/18 Чтв 19:54:14 #342 №1214725 
>>1214724
Крч смотри.
Ты передал функцию, в которой есть обращение к контексту (this). Ты передал саму функцию, отдельно от объекта user, потому что user.sayHi не более, чем переменная.
Аноним 21/06/18 Чтв 19:54:27 #343 №1214726 
>>1214716
Отличный пример того, что этот ваш кантор - полное говно в качестве учебника.

Если ты о первом блоке кода в подразделе, о том, где написано "Теперь код работает, так как user достаётся из замыкания." - то смысла в нём нет вообще никакого, поэтому искать его бесполезно.

Аноним 21/06/18 Чтв 20:00:33 #344 №1214732 
>>1214726
>Если ты о первом блоке кода в подразделе, о том, где написано "Теперь код работает, так как user достаётся из замыкания." - то смысла в нём нет вообще никакого, поэтому искать его бесполезно.
Два чаю.
Я всегда говорил, что этот ваш кантор говнище полное.
Аноним 21/06/18 Чтв 20:03:48 #345 №1214733 
>>1214732
>>1214726
Именно это я и имел в виду. А что тогда человеческое есть из учебников (не сраные курсы)?
>>1214725
Ок, поебал пример этот туда-сюда. Работает же нормально, если тупо написать setTimeout(user.sayHi(), 1000);. Зачем ебля с врапперами?
Аноним 21/06/18 Чтв 20:15:24 #346 №1214737 
>>1214733
> setTimeout(user.sayHi(), 1000);
Не будет работать, потому что функция выполнится сразу же, ибо скобки, а для таймера нужно «без скобок».
Аноним 21/06/18 Чтв 20:21:51 #347 №1214741 
>>1214733
В setTimeout нужно передавать функцию, которая выполнится через время во втором аргументе.
Если передавать в setTimeout функцию(), то функция выполняется сразу, а setTimeout будет пытаться выполнить уже результат выполнения функции через указанное время.
Аноним 21/06/18 Чтв 20:30:01 #348 №1214747 
>>1214741
Хорошо, тогда вариант user.sayHi.bind(user) будет правильно работать?
Аноним 21/06/18 Чтв 20:31:28 #349 №1214749 
Есть тут те, кто пишет/писали серьёзный бэкэнд на жс? Или серьёзного бэкэнда на жс не бывает?
Аноним 21/06/18 Чтв 20:31:56 #350 №1214750 
>>1214747
будет
Аноним 21/06/18 Чтв 20:32:25 #351 №1214751 
Чему равно a?

a = 3 < 2 < 1;
Аноним 21/06/18 Чтв 20:33:03 #352 №1214752 
>>1214749
У меня на работе 9 проектов, на каждом своя тима пишет фронт и бэк на джс.
Аноним 21/06/18 Чтв 20:33:16 #353 №1214753 
>>1214747
Бинд будет работать, бинд возвращает из себя функцию.
Апплай и колл не будут, они выполняют функцию сразу.
Аноним 21/06/18 Чтв 20:42:15 #354 №1214762 
>>1214752
Что за проекты? Микросервисы какие-нибудь? Какой стек?
Аноним 21/06/18 Чтв 20:45:50 #355 №1214764 
>>1214762
Пожалуй, не буду отвечать, извини.
Аноним 21/06/18 Чтв 20:48:40 #356 №1214767 
>>1214764
Чё, даже стек зажал? Или просто не знаешь?
Аноним 21/06/18 Чтв 20:53:13 #357 №1214769 
>>1214767
Он сам сидит на шее у мамки, и всё нафантазировал
Аноним 21/06/18 Чтв 20:56:10 #358 №1214772 
>>1214586
Парни, две сотки!
Аноним 21/06/18 Чтв 20:58:21 #359 №1214774 
>>1214751
>3 < 2 < 1;
Свою тупость пришел показать? JS не поддерживает комбинированные сравнения. Правильно писать так
a = 3 < 2 && 2 < 1;

Аноним 21/06/18 Чтв 21:00:43 #360 №1214777 
>>1214751
>a = 3 < 2 < 1;
>a = (3 < 2) < 1;
>a = false < 1;
>a = true
Что тебе не понятно? Не осилил неявное приведение типов?
Аноним 21/06/18 Чтв 21:02:04 #361 №1214779 
>>1214767
Соре, вылетело из головы. Про других не скажу, но у нас: react, react native, koa, mongoDB, sockets.io, doker, ansible, drone CI.
>>1214769
маняпроекции
Аноним 21/06/18 Чтв 21:08:36 #362 №1214786 
>>1214774
> JS не поддерживает комбинированные сравнения
Это как-раз таки ты тупой.

>>1214777
А почему ты берёшь 3 и 2 в скобки?
Аноним 21/06/18 Чтв 21:09:01 #363 №1214787 
>>1214779
Мерси за стек. А с реакт нейтивом проблем много? Нативные компоненты для реакт нейтива специальные ведро/ябло-программисты пишут?
Аноним 21/06/18 Чтв 21:09:38 #364 №1214788 
1356169502919.jpg
>>1214779
>doker
Аноним 21/06/18 Чтв 21:12:39 #365 №1214790 
>>1214787
Особых проблем нет, как обычный реакт, различий минимум. У нас апликуха чисто под андройд, и я иногда предлагал ПМу некоторые нативные вещи писать самому (хорошо знаю джава), но он отказывается, говорит, проще найти готовые решения, и пока все находили.

Я на самом деле много вещей из стека пропустил, их так и не упомнишь. Redux, postcss... много чего используем.
Аноним 21/06/18 Чтв 21:15:16 #366 №1214791 
>>1214788
Я помню в коде в дофига местах написал "parrent", охренел потом исправлять...
Аноним 21/06/18 Чтв 21:36:05 #367 №1214814 
>>1214791
Ну ты индус)
replace all & find all для кого сделали?
Аноним 21/06/18 Чтв 22:02:27 #368 №1214834 
>>1214733
На самом деле, им можно пользоваться как учебником, но, при условии, что ты не воспринимаешь его как истину в последней инстанции.

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

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

Если интересно, что ещё бывает из учебных материалов - читни этот тред за последние пару дней, хотя-бы. Ну и шапку, конечно.

Аноним 21/06/18 Чтв 22:06:14 #369 №1214838 
>>1214786
Это не я беру. Это я тебе показываю, в каком порядке происходит вычисление.
Аноним 22/06/18 Птн 00:15:17 #370 №1214916 
>>1214838
Но ты же взял в скобки на втором шаге.

Ок, а почему именно в таком порядке?
 Аноним 22/06/18 Птн 00:42:36 #371 №1214930 
>>1206689 (OP)
Жду оценок парсера
16лвл 2года программирования, стаж - 1год фронт и бэк(React/Node)
Аноним 22/06/18 Птн 00:42:41 #372 №1214931 
a^b

Что это за оператор?
 Аноним 22/06/18 Птн 00:43:20 #373 №1214932 
>>1214930
https://repl.it/repls/ConsciousFirsthandHexagon
Аноним 22/06/18 Птн 00:43:44 #374 №1214933 
>>1214930
пиздабол
 Аноним 22/06/18 Птн 00:45:40 #375 №1214934 
>>1214933
Бля тебе скрин проекта на котором работаю кинуть, лол
Аноним 22/06/18 Птн 00:46:19 #376 №1214935 
>>1214934
давай, пиздюк малолетний
 Аноним 22/06/18 Птн 00:51:15 #377 №1214936 
image.png
>>1214935
Вот ветка в которой только мои изменения, перенес функционал чата (личный кабинет) с jquery на реакт(не весь еще) и верстку (готовую) по компонентам разбросал
Аноним 22/06/18 Птн 00:51:17 #378 №1214937 
>>1214932
хуйня, я делал парсер, который пиздил цп у роскомнадзора
Аноним 22/06/18 Птн 00:52:24 #379 №1214938 
>>1214936
То есть по сути ты нихуя не сделал, а только слепил из одного говна другое, макака?
 Аноним 22/06/18 Птн 00:53:46 #380 №1214939 
>>1214938
Лол, думай как хочешь , я дохуя чего сделал, мне то по кайфу в 16лет рубить доухя бабла
Аноним 22/06/18 Птн 00:55:12 #381 №1214940 
>>1214939
>доухя бабла
150$
 Аноним 22/06/18 Птн 00:57:15 #382 №1214941 
>>1214940
Хех, если для тебя 150 зеленых это дохуя, то...
Аноним 22/06/18 Птн 00:58:47 #383 №1214942 
>>1214941
Я немного больше получаю (в 10 раз), но все равно мало. А ты дальше хуярь свое говно на джиквери
 Аноним 22/06/18 Птн 01:00:31 #384 №1214943 
>>1214942
>Я немного больше получаю (в 10 раз)
Ну, знаешь не намного больше меня(850).
А ты дальше хуярь свое говно на джиквери
>Соре, реакт онли
 Аноним 22/06/18 Птн 01:00:49 #385 №1214944 
>>1214943
Налажал с ">" ))
Аноним 22/06/18 Птн 01:02:07 #386 №1214946 
>>1214943
У тебя еще все с математикой хуево, ясно
 Аноним 22/06/18 Птн 01:05:41 #387 №1214948 
>>1214946
>У тебя еще все с математикой хуево, ясно

че ты до математики доебался, лол. Я к тому что тебе за 20, а мне 16 и относительно этого разница небольшая.

Ты сказал 1500, лол, а че так мало?? Нормальные кодеры по 2500+ берут, я еще джун со мной все ясно, а ты ??
Аноним 22/06/18 Птн 01:10:35 #388 №1214950 
>>1214930
>16лвл
>>1214939
>16лет
>>1214948
>мне 16
Да мы поняли, что ты свое скудоумие возрастом оправдываешь.
У меня в компании в год +500 к зп, пока не будет 3000, такие дела. Так что через 1.5 годика буду нормальным кодером в твоем манямирке.
 Аноним 22/06/18 Птн 01:16:21 #389 №1214952 
image.png
>>1214950
>Да мы поняли, что ты свое скудоумие возрастом оправдываешь.

Я не тупой
Аноним 22/06/18 Птн 01:29:19 #390 №1214957 
>>1214952
И то верно, незачем тупых обижать.
Ты не тупой, ты малолетний визгливый олигофрен.
Аноним 22/06/18 Птн 01:36:10 #391 №1214961 
>>1214719
Кантор тоже не может в карринг.
Потому, что то, что он называет каррингом, на самом деле называется partial application.
А карринг - это немножко другое.
Аноним 22/06/18 Птн 02:27:05 #392 №1214974 
>>1214961
>Кантор тоже не может в карринг.
Та как так? Он же кумир молодежи. Идол вкатывальщиков. Учился в самом МГУ, защитил кандидатскую диссертацию. Неужели правда не может? Неужели? Неужели правда? Я не верю! Слышите! Не верю!
Аноним 22/06/18 Птн 03:41:30 #393 №1214984 
>>1214916
>почему именно в таком порядке?
Потому что в соответствии со спецификацией.
sageАноним 22/06/18 Птн 09:23:06 #394 №1215044 
Javascript — костыльно-ориентированный язык программирования.
sageАноним 22/06/18 Птн 09:26:13 #395 №1215046 
3 главных принципа костыльно-ориентированного программирования, а именно инкостыляция, костылирование и поликостылизм, полностью поддерживаются Javascript.
Аноним 22/06/18 Птн 09:37:10 #396 №1215049 
>>1215044
>>1215046
это мемы из 2008-го?))
Аноним 22/06/18 Птн 10:47:30 #397 №1215074 
>>1214984
>в соответствии со спецификацией.
Какая ещё спецификация, лол?
Ты ответь на вопрос, зачем ты взял в скобки 3 и 2?
sageАноним 22/06/18 Птн 11:21:23 #398 №1215095 
>>1215074
Это что, троллинг тупостью? Иди нахуй, долбаёб.
Аноним 22/06/18 Птн 11:47:12 #399 №1215107 
>>1215095
Всё ясно с тобой, школолошка.
Скорее бы у вас уже каникулы закончились.

Ещё и сажу прилепил в тематике, лол.
Аноним 22/06/18 Птн 12:04:21 #400 №1215118 
>>1215074
>зачем ты взял в скобки 3 и 2?
Тебе ответили выше. Ты дурак?
Тебе показали порядок вычислений. Дечись.
Аноним 22/06/18 Птн 12:23:16 #401 №1215138 
Бля, чем бы такого написать, что бы один раз и потом вообще ничего не писать и получать пассивный доход тысяч 100 в мес?
Аноним 22/06/18 Птн 12:23:38 #402 №1215140 
>>1215118
Это ты дурак, если не знаешь, что скобки - это ВНЕЗАПНО тоже оператор, и не можешь объяснить, почему там такой как ты скОзал порядок.
Аноним 22/06/18 Птн 12:25:25 #403 №1215141 
>>1215140
Ты сумашедший, чувак.
Аноним 22/06/18 Птн 12:26:24 #404 №1215142 
>>1215140
> не можешь объяснить, почему там такой как ты скОзал порядок
Тебе так же ответили, почему там именно такой порядок.
Аноним 22/06/18 Птн 12:31:00 #405 №1215149 
>>1215141
>сумашедший
Не надо лести, обычный дебил.
Как и принято среди веб-дегенератов (вас).
Аноним 22/06/18 Птн 12:35:56 #406 №1215155 
>>1215142
И почему же?

>>1215149
Вот только я знаю ответ, а ты нет. И кто из нас после этого дебил?
Люблю спрашивать на собесах этот вопрос, и всякие вкатывальщики начинают бубнеть под нос что-то несуразное - ведь они учились по кантору и кокодемии, где их учили формочки шлепать, а как устроен язык они не знают.
sageАноним 22/06/18 Птн 12:52:00 #407 №1215164 
>>1215155
На каких собесах, шизик? Ты опять таблетки забыл принять? Ты же, блядь, унитазы чистишь в Макдаке!
Аноним 22/06/18 Птн 12:53:25 #408 №1215165 
>>1215155
>как устроен язык
Как говно.
И хорошо что хотя бы не как goвно.
Аноним 22/06/18 Птн 15:05:28 #409 №1215256 
Нужно расширение для jq ищущие ближайший подходящий элемент, не .parent(), .children(), .closest(). А именно ближайший подходящий, поебать на удаление, пусть он хоть на другом краю DOMа лежит, чет загуглить не получается, я хз как такую годноту не заделали, а самому писать влом.
Аноним 22/06/18 Птн 16:07:38 #410 №1215299 
>>1215256
Годнота довольно сомнительна, мне кажется.
И операция очень затратная была бы.

У тебя, скорее всего, что-то не то с постановкой задачи или со структурой дома.
Аноним 22/06/18 Птн 16:33:59 #411 №1215306 
>>1215138
Борду
Аноним 22/06/18 Птн 17:15:49 #412 №1215327 
люблю.jpg
Готов отсосать у каждого в этом треде. Обожаю крутых программистов.
Аноним 22/06/18 Птн 18:05:37 #413 №1215346 
>>1215306
>и потом вообще ничего не писать и получать пассивный доход
>пассивный доход

Перекатиться в гей-шлюхи, очевидно же.
sageАноним 22/06/18 Птн 18:28:46 #414 №1215363 
>>1215327
>>1215346
-> /ga/

Зарепортил
Аноним 22/06/18 Птн 18:38:49 #415 №1215370 
Не могу загуглить вопрос, не получается сформулировать просто. Нужна помощь.

Скажем есть строка, пускай будет 'Hello, World'. Есть еще одна строка, пускай будет 'Hello, Wo'. Каким образом мне найти оставшуюся часть второй строки до первой? То есть rld?

Спасибо.
Аноним 22/06/18 Птн 18:42:31 #416 №1215374 
>>1215370
Пока курил придумал, что если тупо взять из разности длинны строк индексы и найти что надо? Не совсем хуйня получается?
Аноним 22/06/18 Птн 18:44:34 #417 №1215377 
>>1215374
Это если ты 100% уверен, что одна строка является началом другой.
Т.е. надо добавить проверку sA.startsWith(sB).
Аноним 22/06/18 Птн 18:50:06 #418 №1215384 
>>1215377
>sA.startsWith
Вот за это спасибо. То, что надо!
Аноним 22/06/18 Птн 19:16:43 #419 №1215396 
>>1215370
О регулярках не слышал?
>>1215299
Написал рекурсивный обход вверх, ограничил 5ю уровнями, чтоб не сильно много жрало.
Аноним 22/06/18 Птн 22:39:34 #420 №1215490 
Господавры, помогите пожалуйста сделать так, чтобы первый пункт меню (Меню1) была активной по умолчанию.

https://codepen.io/anon/pen/XYYWLK

с меня сотни нефти
Аноним 22/06/18 Птн 22:53:38 #421 №1215495 
>>1215490
добавь к меню1 класс menu-item--active, а в стилях пропиши .menu-item--active .submenu {display: block}
Аноним 22/06/18 Птн 23:58:04 #422 №1215530 
>>1215396
>О регулярках не слышал?
Слышал конечно. Но изучить как-то руки не доходили. Охуенная оказывается вещь, строку блядь менять можно как хочешь. на хую прямо вертеть!
Аноним 23/06/18 Суб 01:21:01 #423 №1215555 
>>1215495
Спасибо большое. Немного по-другому сделал.
Не подскажешь как сделать так, чтобы меню не пропадало, когда кликаешь вне меню?

Аноним 23/06/18 Суб 01:38:45 #424 №1215561 
>>1215555
Попробуй запихнуть в условие кликера на документе что-то типа target.id! = 'nav' или target.tagName != 'body'
Аноним 23/06/18 Суб 02:50:38 #425 №1215575 
>>1215561
Так?
document.getElementById('nav').onclick= function(event) {
var target = event.target; // где был клик?
if (target.className == 'menu-item' && target.className!= 'result') {
var s=target.getElementsByClassName('submenu');
closeMenu();
s[0].style.display='block';
}
}

не выходит что-то.
Аноним 23/06/18 Суб 03:51:04 #426 №1215590 
>>1215363
остальные поддержали
Аноним 23/06/18 Суб 09:10:49 #427 №1215621 
Можно в реакт завязывать начальное состояние state, на получаемых props?

state = { value: this.props.value }
Аноним 23/06/18 Суб 09:34:42 #428 №1215622 
>>1215621
дополню: через какой хук теперь отлавливать новые props, если componentwillreceiveprops обьявили устаревшим?
Аноним 23/06/18 Суб 09:47:45 #429 №1215627 
>>1215621
Можно

>>1215622
Читай note
https://reactjs.org/docs/react-component.html#unsafe_componentwillreceiveprops
Аноним 23/06/18 Суб 09:48:28 #430 №1215628 
>>1215621
https://reactjs.org/docs/react-component.html#static-getderivedstatefromprops
https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
Аноним 23/06/18 Суб 09:59:10 #431 №1215629 
>>1215627
>>1215628
Спасибо братцы, в api reference не углублялся до этих пор
Аноним 23/06/18 Суб 12:52:59 #432 №1215700 
>>1215575
Не, в другой кликер, который на документ вешается
Аноним 23/06/18 Суб 12:53:25 #433 №1215701 
>>1215629
>componentwillreceiveprops обьявили устаревшим?

Да, реакт ни разу не opinionated, lol.

На самом деле, они делают всё это из-за сервер-сайд рендеринга и прочих оптимизаций, имеющих значение для сайтов типа фейсбука, с десятками миллионов посетителей.

Типа - да, надо дрочить вприсядку, но зато ...

А на простого васю из мухосранска им глубоко поебать.
Аноним 23/06/18 Суб 13:53:29 #434 №1215744 
Можно ли в реакте мап в мапе вызвать для рендера, например, строки таблицы и ячеек?
{
rows.map((row) => (
<TableRow key={row.id}>
{
row.map((cell) => (
<TableCell>{cell}</TableCell>
))
}
</TableRow>
))
}
Так делаю, но выдает row.map is not a function.
Аноним 23/06/18 Суб 13:57:56 #435 №1215751 
>>1215744
У тебя row - массив?
Аноним 23/06/18 Суб 14:02:44 #436 №1215755 
>>1215751
Точно, там объект.
Аноним 23/06/18 Суб 14:24:55 #437 №1215768 
Можно ли писать функции в stateless компонентах? Если нет, то как тогда поступить, если нужна функция, например, для форматирования вывода?
Аноним 23/06/18 Суб 14:28:13 #438 №1215774 
>>1215768
Stateless компонент - это функция.
Может ли быть функция в функции?
Конечно, может.
Вот прямо только что такую написал, и именно в функциональном компоненте, лол.

>>1215744
Тэги JSX - это вызовы функций, возвращающие значения. Аттрибуты = параметры.
Исходя из этого и определяется, что можно, что нельзя.
Аноним 23/06/18 Суб 14:35:23 #439 №1215780 
>>1215774
Ну т.е. это не говнокод и все так делают?
Аноним 23/06/18 Суб 14:41:35 #440 №1215781 
>>1215780
Да, так и делают.

Но, в твоём случае row.map((cell) => ... выглядит как-то сомнительно. Не в смысле говнокода, а вообще. Хотя, выше уже написали.

Вообще - посмотри примеры в интернетах, их же полно.
Аноним 23/06/18 Суб 14:43:10 #441 №1215782 
>>1215781
Я про функции в функциях
Аноним 23/06/18 Суб 14:48:04 #442 №1215784 
>>1215782
Это не просто не говнокод.
Это ровно наоборот, лол.

Особенно, если ты используешь лямбды (толстые стрелки). Только нужно иметь в виду, что у них нет своего this.
Аноним 23/06/18 Суб 15:03:58 #443 №1215787 
>>1215782
Вот тебе, кстати, пример (хотя, немного на другую тему):

const add = a => b => c => a + b + c;

Это функция - функция - функция.
В middleware к редуксу такие вещи можно увидеть, например.
В данном случае - это каррированая функция сложения трёх аргументов.

Вызывается так:
const result = add(1)(2)(3);

Или так:
const add1 = add(1);
const add1and2 = add1(2);
const result = add1and2(3);

Т.е. можно получать промежуточные специализированные варианты.
Напоминает наследование в ООП.

Аноним 23/06/18 Суб 15:10:48 #444 №1215794 
>>1215787
Он же не про это. Он в своих функциональных-компонентах хочет просто обьявлять функции-помощники. Он не собирается их возвращать. Он хочет их использовать просто как использует методы в классах-компонентах
Я сам правда не знаю принято ли так делать, или лучше функции обьявлять не в самом компоненте, а вне его.
Аноним 23/06/18 Суб 15:18:37 #445 №1215798 
>>1215794
Я же написал - это пример немного на другую тему.
А перед этим ответил ему, что да, так делают.
И это не говнокод.

Объявлять ли функцию отдельно, если она специализированная для этого компонента - дело вкуса. Если она большая, то да, это имеет смысл.

Смысл того, что я хотел сказать, в том, что функция в JS - это ровно такой же объект, как число или массив.
Ты же используешь числа в функциях?
Ну и вот.
Аноним 23/06/18 Суб 15:38:21 #446 №1215802 
Какие существуют игровые движки на основе verlet.js?
Аноним 23/06/18 Суб 15:53:23 #447 №1215817 
>>1215787
Бля, какой же уебанский стиль.
Аноним 23/06/18 Суб 16:01:34 #448 №1215821 
>>1215817
А как бы ты хотел это записывать?

Нормальный стиль, лучше не бывает, на самом деле, ты просто не привык, лол.
Ты пытаешься в голове что-то наворачивать поверх этих стрелок, в то время, как их надо просто читать буквально.
Аноним 23/06/18 Суб 16:40:33 #449 №1215850 
Парин, я умираю, я не могу, как заставить говно работать с нескольики вебсокетами? Пилю парашу webgl С# и не могу сука сделать номральное взаимодействие с вебсокетами. Ну с одним заработало, а с нескольими хуй, я скачал jslib, но что там внутри не могу понять. Почему-то SocketCreate возвращает всегда ноль, и происходит какая-то поебата, не могу номрально разделить. В общем может кто поможет или ссылчоек на готовыйе примеры накидает. Пиздец.

https://github.com/realtime-framework/unity3d-plugin/blob/master/lib/WebSocket.jslib
Аноним 23/06/18 Суб 18:21:51 #450 №1215905 
>>1215817
Это просто дерьмовый упрощенный пример прямиком из статеек "ФП в жисе это круто мне так сказали но на функциональных языках я не писал", вот он и нечитабелен.
>>1215787
Это называется композиция и в ООП она прекрасно применяется.
Аноним 23/06/18 Суб 22:08:49 #451 №1215994 
>>1215821
Ох ебать, маня прошла пару курсов говнокекслета и всем поясняет про то как надо читать и воспринимать блять.
Аноним 23/06/18 Суб 23:12:43 #452 №1216053 
>>1212010
Перекатиться из мертворожденного языка для смузихлебов в один популярнейших и востребованных языков мира.
Все правильно делает.
23/06/18 Суб 23:27:41 #453 №1216056 
Какой же говеный тред.
Аноним 23/06/18 Суб 23:39:58 #454 №1216064 
>>1215994
Нихуя себе, у тебя дар телепатии, лол.

>>1215905
Это не называется композиция.
И что там не читабельно, лол?

Дети, идите на хуй в /бэ.
Аноним 24/06/18 Вск 10:15:17 #455 №1216183 
Подскажите, где я обосрался?
Есть веб-приложение на чистом реакте, в нем - корневой компонент, как полагаться - es6 class.
У этого класса есть метод, componentWillMount, где я открываю вебсокет. JSON с сервера обновляет стейт, что позволяет отображать данные в реальном времени, а JSON с клиента обновляет определенные данные на сервере. Всё работает, но только на десктопе. В мобильном браузере - не работает ws. При том что поддержка ws у него есть. react-websocket не подходит, т.к. нужна двухсторонняя передача данных, а у него нет метода send, AJAX параллельно сокету выглядит костыльно.
Аноним 24/06/18 Вск 10:17:57 #456 №1216186 
>>1216056
Какой язык, такой и тред.
Аноним 24/06/18 Вск 11:00:27 #457 №1216197 
>>1216056
>>1216186
Сам написал, и сам ответил?
Аноним 24/06/18 Вск 11:26:07 #458 №1216201 
Пойдет ли моча и чай для юнит тестов под ноду?
Аноним 24/06/18 Вск 11:32:57 #459 №1216202 
>>1216201
Если у вас не пишут тесты нахрена тебе это надо? Ведь речь идет о вебне?
Аноним 24/06/18 Вск 11:34:05 #460 №1216204 
>>1216202
Да я для своего проекта. Слишком много говна накопилось чтобы руками тестить
Аноним 24/06/18 Вск 11:35:56 #461 №1216205 
>>1216202
Нарыл гайд, но там еще дженкинс, а он мне пока нах не нужен. Думаю как этот индус сделать.
https://medium.com/prismapp/10-steps-how-to-automate-your-api-testing-effectively-af866fba942f
Аноним 24/06/18 Вск 12:21:36 #462 №1216228 
приветствую господ программистов!!
подскажите плиз ньюфагу - как перемножить два больших числа так, что бы в результате не было что то типа такого 1.7588313343976082e+21 а было бы само число
его ведь можно как-то преобразовать, правильно? но как??
Аноним 24/06/18 Вск 12:24:19 #463 №1216230 
>>1216228
num => Math.floor(num*1000)/1000.
Аноним 24/06/18 Вск 12:29:42 #464 №1216232 
>>1216230
такой же результат получается - 1.7588313343976082e+21
что я делаю не так?
Аноним 24/06/18 Вск 12:44:48 #465 №1216239 
>>1216228
Это троллинг тупостью?
Аноним 24/06/18 Вск 13:25:01 #466 №1216276 
>>1216228
Используй сторонние библиотеки, например, https://www.npmjs.com/package/big-integer
Аноним 24/06/18 Вск 13:33:54 #467 №1216284 
14963021184540.jpg
Сука почему моча такой уебищный фреймворк для тестов. Пиздец просто! Почему вместо вот этого
[CODE]
describe('GET /user', function() {
it('respond with json', function(done) {
request(app)
.get('/user')
.set('Accept', 'application/json')
.expect('Content-Type', /json/)
.expect(200, done);
});
});
[/CODE]

не сделать json в котором описать все тесты, типо:

[CODE]
{
"name": "test login",
"main": "server.js",
"tests": {
"test0": "foobar",
"test1": "foobar",
"test2": "foobar",
"test3": "foobar",
"test4": "foobar",
"test5": "foobar",
"test6": "foobar",
"test7": "foobar",
"test8":"foobar"
},
[/CODE]

где foobar это конструкция вида
[CODE]
{
"request": "localhost:8080/api/login",
"data": {
"login" : "foo"
"password":"bar"
},
"headers": {...},
"positivecase": {...},
"negativecase": {...}
}
[/CODE]

Скорее всего проебусь с разметкой, но суть вы поняли. Может в треде есть дохуя опытные автотестеры чтобы пояснить мне нубу, почему моча такая какая она есть?
Аноним 24/06/18 Вск 13:46:32 #468 №1216300 
>>1216284
Возьми и напиши сам, увидишь к чему приведет.
Аноним 24/06/18 Вск 13:52:22 #469 №1216302 
>>1216300
Да вот уже рука порывается, но ради своего проекта не хочется еще и движок для тестов писать 3 дня. Легче уже руками протестить, написав тест дизайн. Но бля... Че за черт эта моча?
sageАноним 24/06/18 Вск 13:54:27 #470 №1216305 
>>1216302
Не нравится — пиши своё, питух.
разработчик Моки
Аноним 24/06/18 Вск 13:54:51 #471 №1216306 
>>1216284
Мока лишь среда тестирования, она условно говоря проходит по файлам, ищет тесты среди них и запускает, а за синтаксис обычно отвечают всякие там Chai(или supertester судя по тому что ты скинул)
Аноним 24/06/18 Вск 13:57:07 #472 №1216309 
>>1216305
Мочехлеб, плз.
Аноним 24/06/18 Вск 13:59:49 #473 №1216311 
>>1216309
Не моча, а мокко.
Аноним 24/06/18 Вск 14:00:27 #474 №1216312 
>>1216306
Т.е отдельно автотесты я написать не могу? Только в код интегрировать? А минифицировать потом файлы для прода можно будет? Просто ну пиздец если еще и тесты в коде будут, то получится гигант просто.
sageАноним 24/06/18 Вск 14:01:25 #475 №1216313 
>>1216312
А ты думал, что в сказку попал??
Аноним 24/06/18 Вск 14:01:41 #476 №1216314 
>>1216311
Да понятно как оно по английски читается, но людям не англоговорящим сочетание ch читается как "ч" интуитивно.
Аноним 24/06/18 Вск 14:03:05 #477 №1216316 
>>1216313
Не зря я отдельную ветку завел... Ну пиздец теперь... А где есть документация этого чуда? Просто на их сайте нет. Да и туториалы всяких васянов читать себе дороже
Аноним 24/06/18 Вск 14:04:40 #478 №1216319 
>>1216314
Оно ещё и как "хэ" читается, и как "шэ".
Аноним 24/06/18 Вск 14:06:13 #479 №1216321 
>>1216319
Да я то знаю, я говорю за большинство, просто у меня в детстве была чашка с принтом "mocha". Пока английским не занялся в плотную, думал что это чашка для мочи
Аноним 24/06/18 Вск 14:07:17 #480 №1216323 
>>1216312
Тут недавно был чувак, который яростно топил за тесты в js.
Перечитай прошлый тред, там много годных советов было.
Аноним 24/06/18 Вск 14:10:41 #481 №1216325 
>>1216323
Ок. спс
Аноним 24/06/18 Вск 14:17:30 #482 №1216329 
>>1216232
А, так у тебя число в 21 степени, оно хуй у тебя запишется просто так.
Аноним 24/06/18 Вск 15:11:43 #483 №1216384 
https://ideone.com/fynakg
Как оно работает, может кто-нибудь тугому объяснить? Вот мы задаем значение num для функции, а как и откуда потом появляется acc, как на 7 строчке оно работает если не вводили никаких acc? С рекурсией все было намного понятнее.
Аноним 24/06/18 Вск 15:29:01 #484 №1216391 
>>1216384
Так это и есть рекурсия.
Аноним 24/06/18 Вск 15:31:36 #485 №1216393 
>>1216384
acc - это параметр внутренней функции iter.
Сначала iter вызывается с параметром 2.
А потом - рекурсивно, с уточнённым параметром.
Пока не будет достигнуто одно из условий выхода из рекурсии (if'ы).

Имя переменной acc - подразумевает аккумулятор (в рекурсивных функциях).

num берётся из внешней функции.

Тебе надо разобраться с замыканиями (closure) и рекурсией.
Аноним 24/06/18 Вск 15:40:38 #486 №1216396 
>>1216393
acc - это параметр внутренней функции iter, а для чего ему параметр 2?
https://jsfiddle.net/q6v79gnu/8/
Вот меняю параметр и ничего не меняется, почему так, зачем он? в бесплотных на хеслете говорят что итеративное решение
Аноним 24/06/18 Вск 15:43:50 #487 №1216398 
>>1216393
Например, надо найти наименьший делитель для числа 5. Это будет само число 5, естественно.

Тогда будет такая цепочка вызовов:
iter(2){iter(3){iter(4){iter(5)}}}

Слово return я убрал, оно подразумевается.
Т.е. iter(2) вернёт результат _позже_ всех, когда все внутренние вызовы вернут результаты в обратном порядке.
Т.е., число 5 будет передано по цепочке вызовов наверх.
Аноним 24/06/18 Вск 15:46:04 #488 №1216402 
>>1216396
2 - это то, с чего начинают искать ответ.
Это не параметр, а значение параметра.
Можешь хоть с 100 начинать, только вот, что ты найдёшь таким образом?
Аноним 24/06/18 Вск 15:48:19 #489 №1216404 
>>1216396
>говорят что итеративное решение

Нет.
Это рекурсия - функция вызывает сама себя с новым значением параметра.
Другой вопрос, что рекурсия тут простейшая, и её можно просто заменить на цикл.


Аноним 24/06/18 Вск 15:55:17 #490 №1216407 
Всё ребята я разобрался, спасибо за такой быстрый фидбек!
Аноним 24/06/18 Вск 17:28:58 #491 №1216478 
Тупой нубский вопрос - допустим есть такой класс:

class myClass { constructor(a){ this.a = a; this.b = this.a*2;} }

let obj = new myClass(5);
obj.a выдаст в консоли 5, а obj.b выдаст 10

но при этом если присвоить
obj.a = 6
то obj.b по-прежнему будет показывать 10!
why?
как эту срань перерассчитать?
Аноним 24/06/18 Вск 17:34:34 #492 №1216486 
>>1216478
>как эту срань перерассчитать?

Если тебе нужно именно это, надо делать геттер (гугол в помощь).
Или просто метод getB() {return this.a * 2}
Аноним 24/06/18 Вск 17:34:42 #493 №1216487 
>>1216478
Что тебя смущает? То, что значение переменным присваивается при создании объекта, или то, что b хранит значение переменной, а не ссылку на a?
Аноним 24/06/18 Вск 17:43:32 #494 №1216495 
>>1216487
>что b хранит значение переменной, а не ссылку на a
Да, вот это вот и смущает
Аноним 24/06/18 Вск 17:46:12 #495 №1216498 
>>1216495
Насколько я знаю, в жс ссылочное присваивание идет только к объектам и функциям.
Аноним 24/06/18 Вск 17:55:42 #496 №1216502 
image.png
image.png
Ребята, потянет ли какое-нибудь из этих говн Jetbrains WebStorm без тормозов? Или без 16 Гб оперативки можно даже не мечтать?
Аноним 24/06/18 Вск 17:57:35 #497 №1216505 
>>1216487
>>1216495
Дело тут совсем не в том, ссылка это или нет.
А в том, что _выражение_ вычисляется один раз в конструкторе, при создании данного объекта.

Хочешь, чтобы оно каждый раз вычислялось - так и вычисляй каждый раз - в геттере или в методе.

Короче, пойми разницу между значением и выражением, и т.п.
Аноним 24/06/18 Вск 18:01:38 #498 №1216511 
>>1216502
SSD нужно ставить.
И Core i5 + 8 Gb.

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

Не надо смотреть на хипстеров в кофешопах, это просто картинки.
А суровая реальность - сурова.
Аноним 24/06/18 Вск 18:04:08 #499 №1216517 
>>1216511
Охуеть, я-то думал, что вы будете отвечать, мол, конечно, потянет, это же Вебсторм, а не Far Cry 5. А тут вон всё как печально. :(
Аноним 24/06/18 Вск 18:06:08 #500 №1216520 
>>1216505
Да, разобрался, спасибо. Так и пришлось мутить сеттер, чтоб он "переустанавливал" заново нужные мне поля
Аноним 24/06/18 Вск 18:08:11 #501 №1216524 
>>1216511
Посмотрел у себя.
На десктопе i7 3770K + 16 Gb + SSD Samsung 850 Pro 256 Gb.

Запущеа идея, в ней открыт большой java проект.
И запущена виртуальная машина VmWare с сервером.
Памяти израсходовано 5.1 Gb.
Всё работает быстро и хорошо.

JavaScript побольше отожрал бы, конечно.
Но не думаю, что намного.

Короче - ssd + проц решают.
Аноним 24/06/18 Вск 18:10:42 #502 №1216529 
>>1216520
Можно и сеттер.
Если читаешь много раз, а пишешь мало.
Но, без нужды лучше лишнее состояние не хранить.

>>1216517
Он потянет.
Особенно, если ты поставишь любой SSD.
Я же говорил не о "потянет", а о получении удовольствия.
Аноним 24/06/18 Вск 18:13:21 #503 №1216532 
>>1216529
И да, большой экран.
Минимум 24" full hd.
Аноним 24/06/18 Вск 18:26:40 #504 №1216543 
Кто-нибудь знает, как правильно деплоить приложения с помощью PM2?

Под правильно я подразумеваю, что установка зависимостей и конпеляция должны происходить на билд-сервере. То, что есть в документации PM2 — это какой-то пиздец: git clone, npm install, grunt dist выполняется на целевом сервере.

Очевидное решение — копировать билд-артефакт с помощью rsync и вызывать "pm2 reload" через ssh, но вроде как PM2 уже предоставляет средства удаленного деплоя, так что странно им не воспользоваться, если он настраивается как надо.
Аноним 24/06/18 Вск 18:28:14 #505 №1216545 
>>1216502
А нужен ли тебе жырный вебшторм, если в VS Code есть все необходимое?
Аноним 24/06/18 Вск 18:45:39 #506 №1216562 
14463967080240.png
сильно начинающий вопрос
Привет анон! подскажи пожалуйста по нескольким вопросам.
Есть JS динамически генепирующий кучу контента типа статей
Есть директория к кучей изображений и текстов .
Я к сожалению пока пишу только на JS и то новичок , поэтому не придумал ничего лучше чем забирать тексты из JSON ajax запросом и для каждой картинки прописывать URL и высоту- ширину . В общем кошмар .

Задача "сгенерировать HTML считывая картинки и тексты из файлов" вообще решается только на JS с jquery ?
Если нет скорее всего нет какой самый простой бекенд для этого нужен. Может джанго или rails
Аноним 24/06/18 Вск 19:30:29 #507 №1216602 
Аноны, че-то я туплю, как мне нормально сделать, чтобы в компоненте реакта одно поле стейста подсчитывало длину массива в другом поле? И нужно, чтобы она пересчитывалась каждый раз при обновлении массива. С меня как обычно.
Аноним 24/06/18 Вск 19:30:48 #508 №1216603 
>>1216602
>стейта*
Аноним 24/06/18 Вск 19:31:39 #509 №1216605 
>>1216602
componentDidUpdate
Аноним 24/06/18 Вск 19:45:08 #510 №1216613 
>>1216605
Попробовал, но он срабатывает два раза: один раз с предыдущей длиной, второй - с новой. Так и должно быть?
Аноним 24/06/18 Вск 20:10:38 #511 №1216629 
>>1216613
А массив у тебя как в компонент попадает?
Аноним 24/06/18 Вск 20:37:48 #512 №1216650 
Возможно ли вывести request headers как в дебагере во вкладке Network?
Аноним 24/06/18 Вск 20:52:59 #513 №1216655 
>>1216602
>одно поле стейста подсчитывало длину массива в другом поле?

Спрашивается, нахуя?
Вычисляй вычисляемое прямо в render() или где ты там его используешь.

Один из хороших принципов программирования - не храни лишние состояния без нужды.
Аноним 24/06/18 Вск 20:53:49 #514 №1216656 
1.jpg
Писал я, короче, маленькую йобу и дописался до того, что мне нужно из одного компонента поменять значение стейта другого. Естественно, все без редакса. Есть какой-то костыль для такого?
Аноним 24/06/18 Вск 20:55:03 #515 №1216658 
>>1216656
Lifting state up + forwarding refs.
Аноним 24/06/18 Вск 20:59:10 #516 №1216660 
>>1216656
Если они логически не связаны или общий родитель слишком далеко, то создай простенький стейт контейнер сам, это не сложно. Необязательно глобальный.
Аноним 24/06/18 Вск 21:02:39 #517 №1216665 
>>1216658
А рефы тут причём?
Общее состояние вынести наверх, в общий компонент, да.
Если общего компонента нет - создать фейковый.

В процессе можешь поймать себя на мысли, что уже пишешь редукс. В этот момент надо перестать - он уже есть готовый, лол.
Аноним 24/06/18 Вск 21:06:13 #518 №1216668 
>>1216064
Практический смысл этой хуйни - именно композиция и ничто иное.
Аноним 24/06/18 Вск 21:20:25 #519 №1216682 
>>1216668
Какая, блядь, композиция?
Чего и с чем?

Набери в гугле functional composition и почитай.
Аноним 24/06/18 Вск 21:34:12 #520 №1216691 
>>1216682
Шизоид, не позорься хоть.
Аноним 24/06/18 Вск 21:39:35 #521 №1216695 
>>1216682
>Шизоид
Это ты меня, типа, оскорбил, лол?

Аргументы будут?

У тебя очевидные проблемы с пониманием смысла слова "композиция" (и слова "шизоид", кстати).
Аноним 24/06/18 Вск 21:57:56 #522 №1216705 
Можно как-то анимировать закрытие модалки на реакте? Появление я сделал, а вот закрытие по кнопке хз.
Аноним 24/06/18 Вск 22:18:03 #523 №1216719 
>>1216502
А почему у тебя на втором скрине цифра 8 отфотошоплена?
Аноним 24/06/18 Вск 22:38:41 #524 №1216736 
>>1216502
> Jetbrains WebStorm
emacs js2-mode, нахуя тебе это говно-ide?
Аноним 24/06/18 Вск 22:39:05 #525 №1216737 
>>1216695
Ну ты реально шизоид, сам себе отвечаешь.
Аноним 24/06/18 Вск 22:55:10 #526 №1216758 
>>1216737
Ну, это аргумент, конечно.
Аноним 24/06/18 Вск 22:58:42 #527 №1216765 
>>1216719
Потому что изначально там стояло 4 Гб, а я добавил ещё одну планку на 4 Гб.
Аноним 25/06/18 Пнд 02:01:29 #528 №1216912 
Кто то там говорил, что я неудачник. Тот кто говорил - засунь себе свой поганый язык в анус, неудачник. У меня всё ништяк. Продолжаю саморазвитие, обретаю новые вещи. Успех, удача со мной всегда !!! Строю новые планы на будущее. (А ты продолжай мечтать об фирме своей в москве, о том как ты будешь там директором. Не надейся, мудак деревенский))))
Аноним 25/06/18 Пнд 16:55:06 #529 №1217214 
изображение.png
Только что закончил читать первую часть кантора. хочется попрактиковаться и написать что-нибудь длиннее 100 строк. Где можно стырить практические задания без знания ДОМа?
Аноним 25/06/18 Пнд 18:16:07 #530 №1217235 
image.png
>>1217214
кодворс мб

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

Подскажите, есть ли реализации лучше и почему моя может быть говном?
Аноним 25/06/18 Пнд 18:47:54 #531 №1217240 
Когда реакт сдохнет?
Аноним 25/06/18 Пнд 18:51:43 #532 №1217243 
Можно как-нибудь сделать так, чтобы функция byExtension возвращала значение resolve из промиса?

Написал промисификацию readBook через асинхронный createReadStream. И вот теперь не знаю, как сделать ее синхронным. А это один из кусочков условия по расширению, и переписывать все из-за промиса не хочется.

[code]
let byExtension = function (filePath) {
var ext = path.extname(filePath);
if (ext === '.json') {
return JSON.parse(fs.readFileSync(filePath));
}
else {
return readBook(filePath).then(function (value) { return value });
};
};

console.log(byExtension('./example1.xlsx'));
[/code]
Аноним 25/06/18 Пнд 19:05:14 #533 №1217253 
>>1217240
вчера
Аноним 25/06/18 Пнд 19:07:08 #534 №1217255 
>>1217243
а сейчас что возвращает, ыт же зэн написал
Аноним 25/06/18 Пнд 19:11:36 #535 №1217257 
>>1217255
Он возвращает состояние Promise { <pending> }

Пытался через async/await. Тоже самое.
Аноним 25/06/18 Пнд 19:21:13 #536 №1217261 
>>1217257
хуй знает.
>твое лицо, когда кодишь на реакте, а не на жаваскрипте
Аноним 25/06/18 Пнд 20:33:24 #537 №1217318 
Вопрос по DOM: как получить xpath от одного элемента до другого. Например, от инпута до связанного с ним через for лейбла? Чтобы на выходе получить что-то вроде ./../../div/huina/malafia/label
Аноним 25/06/18 Пнд 20:50:41 #538 №1217338 
>>1217318
querySelector
Аноним 25/06/18 Пнд 20:51:56 #539 №1217339 
>>1217235
По-хорошему разлогинивать надо на сервере. Разлогин по таймауту - это так-то для безопасности придумано, а в твоем случае если кто-то таки угонит сессию, то он совершенно точно позаботится над тем, чтобы твой клиентский код по разлогину не сработает.
Ну и
>mousemove
>scroll
ты хоть debounce на это дело повесь.
Аноним 25/06/18 Пнд 20:59:21 #540 №1217345 
>>1217338
Квериселектор просто отбирает элемент по селектору. У меня уже отобраны элементы и нужно найти xpath между ними.
Аноним 25/06/18 Пнд 21:05:15 #541 №1217348 
>>1217339
>debounce
От маузмува лисенеры же все равно будут лисенить, запросов будет столько же, и одно присвоение переменной дела не сделает, разве нет?
Аноним 25/06/18 Пнд 21:12:05 #542 №1217352 
618015htmlm70404ffe.png
ПЕРЕКАТ

>>1217351 (OP)
>>1217351 (OP)
>>1217351 (OP)

ПЕРЕКАТ
Аноним 25/06/18 Пнд 23:21:02 #543 №1217436 
>>1217235
Ебать меня залепило на кодворсе. Чому я раньше его не юзал. Спасибо.
Аноним 26/06/18 Втр 08:25:04 #544 №1217549 
image.png
>>1217339
Сделал, как ты сказал, вышло круто!
Аноним 27/06/18 Срд 15:55:03 #545 №1218327 
Учусь погромировать на freecodecamp, дошел до легких алгоритмов, все довольно быстро решил, а с этой тупяк, помогите(только не решайте за меня, дайте наводку)

Условие задачи:
Return the lowest index at which a value (second argument) should be inserted into an array (first argument) once it has been sorted. The returned value should be a number.

For example, getIndexToIns([1,2,3,4], 1.5) should return 1 because it is greater than 1 (index 0), but less than 2 (index 1).

Likewise, getIndexToIns([20,3,5], 19) should return 2 because once the array has been sorted it will look like [3,5,20] and 19 is less than 20 (index 2) and greater than 5 (index 1).

Как отсортировать массив - я узнал сразу - для этого уже есть встроенный метод sort. Но как сравнить элементы и найти приближенное число? Чёт не пойму.
Аноним 28/06/18 Чтв 09:34:21 #546 №1218704 
Привет, друг анон. Объясни, почему не работает этот код? (не ленись, там две строчки)
https://codepen.io/anon/pen/EROKMw

спасибо.
Аноним 28/06/18 Чтв 09:43:13 #547 №1218712 
>>1218704
и этот
https://codepen.io/anon/pen/rKQLVG
Аноним 30/06/18 Суб 07:23:40 #548 №1219983 
>>1218704
>>1218712

жквери забыл подключить
sageАноним 30/06/18 Суб 12:13:25 #549 №1220034 
>>1206861
Для маленьких проектов подходит тот "фреймворк", у которого больше комьюнити.
Вкатываясь в новый проект на реакте, в первую очередь ты получаешь готовые свистелки-пердерлки с гита на все случае в жизни, а на Vue тебе придется стать инжинером велосипедостроителем
sageАноним 30/06/18 Суб 12:15:37 #550 №1220035 
>>1206904
Начни с того, что подумай о жизни
Тем ли ты вообще занимаешься?

Динамическая типизация - это манна небесная, это клиллер фича JS'а
sageАноним 30/06/18 Суб 12:19:34 #551 №1220042 
>>1208712
Хуя ты настрочил, можно было ограничиться этой строчкой
>airbnb
Аноним 01/07/18 Вск 17:47:23 #552 №1220868 
>>1219983
ха ха ебать я чёрт. спасибо братуха
Аноним 01/07/18 Вск 19:00:50 #553 №1220919 
пацаны, как поставить бесконечный луп сюда? чтобы текст fadeout & fadein бесконечно
https://codepen.io/anon/pen/PaVOxM
спасибо.
Аноним 02/07/18 Пнд 00:18:23 #554 №1221056 
>>1220919
отбой
Аноним 08/07/18 Вск 19:35:36 #555 №1224683 
15045600932920.png
Анон , Я вот только поставил Node , начал изучать , подскажи какой самый простой способ работать с изображениями?
Нужно все парсить все изображения из определенной директории , собирая их url , размеры и тд .
В целом просто нужно выводить изображения из папки в DOM
comments powered by Disqus

Отзывы и предложения