Двач.hk не отвечает.
Вы видите копию треда, сохраненную 4 октября 2017 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
JavaScript #86 #1052010 В конец треда | Веб
Ссылка на прошлый тред: >>1043979 (OP)

Этот тред посвящён главному языку будущего - 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

Инструмент для визуализации и экспериментов со связями между объектами в JavaScript:
http://www.objectplayground.com/

Конфа /pr/ в Slack:
https://slack-2chpr.herokuapp.com/

JS-конфа в телеграме:
https://telegram.me/jsthread

НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
#2 #1052016
>>1052010 (OP)
Cажи джава-скрипт макакам
#3 #1052017
sage #4 #1052021
Ну чё, жс макаки, когда вам там нормальное ооп завезут? Ахахахах, никогда))
#5 #1052031
>>1052021
И слава богам Египта!
#6 #1052035
>>1052021

1. В JavaScript нет классов — есть конструкторы
2. Цепь прототипов — база на которую опирается все наследование в JavaScript
3. Свойство объекта получается с использованием цепи прототипов
4. __proto__ — это ссылка на прототип конструктора(prototype)
5. Оператор new создает пустой объект с единственным свойством __proto__, которое ссылается на F.prototype, выполняет конструктор F в котором this — созданный ранее объект и возвращает объект
6. Оператор instanceof не проверяет порожден ли данный объект «Object» конструктором «ObjectsConstoructor», для своего вердикта он использует цепь прототипов
7. В JavaScript значение this определяется вызывающей стороной по форме вызова
8. void — это оператор, а не функция. undefined, null — примитивные значения
45 Кб, 389x259
#7 #1052041
>>1052035

>В JavaScript значение this определяется вызывающей стороной по форме вызова

#8 #1052042
>>1052041

В JavaScript значение this определяется вызывающей стороной по форме вызова. Правило по которому определяется то, что будет в this такое объясню по-простому:

1. Если метод вызывается напрямую (без new, call, apply, bind, with, try catch), то значением this будет тот объект, который стоит перед точкой, слева от имени метода.
2. Если точки нет (функция вызывается напрямую), то this будет приравнен к undefined, null или window(global), в зависимости от среды и «use strict».
3. Если выражение представляет из себя не ссылку, а значение, то применяется пункт 2
sage #9 #1052045

>нет нормальных классов


>нет абстрактных классов и интерфейсов


>наследование через жопу


>нет модификаторов доступа

#10 #1052046
>>1052045
Зато есть TypeScript и пиздатый event-loop
24 Кб, 211x214
#11 #1052050
>>1052045

>нет нормальных классов


>нет абстрактных классов и интерфейсов


>наследование через жопу


>нет модификаторов доступа



всё давно есть

#1 https://ilikekillnerds.com/2015/06/abstract-classes-in-javascript/
#2 https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Inheritance
#3 https://scotch.io/bar-talk/4-javascript-design-patterns-you-should-know
#12 #1052051
>>1052010 (OP)

в ЖС уже и машинное обучение подвезли https://pair-code.github.io/deeplearnjs/
#13 #1052052
>>1052050
ебать ты конченный, убей себя нахуй
#14 #1052055
>>1052052

боль неосилятора бесценна:3
#15 #1052059
Есть два массива, состоящие из строк.
Написал функцию, которая лексикографически сравнивает один массив с другим и если строка первого массива присутствует в какой-либо строке другого массива, тогда она становится часть нового массива и далее выводится.

Использую метод instanceOf, который всегда выдает -1, кроме полного совпадение элементов массива.
Что я делаю не так?
https://jsfiddle.net/ax24rbsx/
#16 #1052062
>>1052051
Добавил в закладки.
Кстати, интересно, а можно ли из ноды задействовать гпу для ресурсоемких вычислений?
sage #17 #1052068
>>1052062
Ишь чего захотел! Жри что дают мразь!
#18 #1052077
Отписался в трапо треде
#19 #1052078
>>1052059

так работает?

>if (array2.indexOf(word) !== -1)

#20 #1052081
>>1052059

>лексикографически


>я умный


Нет.
#21 #1052082
>>1052042
Ты забыл про this в событиях типа onclick
#22 #1052087
>>1052021
>>1052045
Нормальные на другом языке - не нормальные на JS.
Тугодумам непонятно, что это другой язык и у него другое строение, философия и приемы программирования?
И заберите свои сраные классы обратно, а то понаехали со своим уставом в чужой монастырь, задроты.
#23 #1052095
>>1052078
Нет
#24 #1052096
>>1052081
Подскажи, что не так в коде?
#26 #1052101
>>1052100
Замени startsWith на includes если нужно частичное совпадение.
#27 #1052110
>>1052101
Не понял. Ни один из этих методов не использовал, они и не подходят.
В первом массиве есть строка 'op', во втором 'pop' и так как первая строка полностью имеется в строке второго массива она должна передаваться в новый.
#28 #1052113
>>1052110
https://jsfiddle.net/6be5zhy0/1/
Не сохранилось.
#29 #1052118
#30 #1052157
>>1052113
Спасибо!
"Лексикографически" это из задания. Я думал это о сравнение строк, хоть и гуглив слово. Оказалось надо было по алфавиту отсортировать.
И в этом решении работает indexOf. Видимо я пытаясь сначала уменьшить вероятность появления ошибки использовал цикл, вместо высшей функции, получил только проблемы
#31 #1052165
В вакансии дотнет-джуна требуются базовые знания JS. Что они под этим понимают и как их оптимальнее получить за пару дней? Помогите советом мудрым
#32 #1052173
>>1052165
Манипуляции с HTML, синтаксис, представление о ООП в JS, базовое понимание о замыканиях, AJAX.
#33 #1052177
>>1052165
https://learn.javascript.ru/first-steps

открываешь это и ебошишь, за два-три дня вполне реально осилить и понять все разделы. В ES2015 не лезь только, это уже не базовое.
27 Кб, 638x359
#34 #1052184
>>1052010 (OP)

>CouchDB



спросил уже ответ тут >>1052141 но там похоже все умерли давно.

спрошу еще и здесь, так как CouchDB тесно связана с ЖС.

мб юзал кто CouchDB для продакшина, какие подводные камни?
#35 #1052185
>>1052173
>>1052177
Спасибо. Ещё вопрос: мне чувак сказал, мол, раз знаешь шарп, то тут особо проблем не будет, потому что язык си-подобный. Это верно?
#36 #1052186
>>1052185
Нет, полная хуйня. Шарп это жаба с традиционным говно ооп уровня крестов. Впрочем если ты linq-мастер, то тебе будет норм.
#37 #1052194
>>1052184
Кауч в продкшне юзали Meebo, хотя ты, наверное, и не застал, что это за сервис был такой.
Гугли их юзкейс.
#38 #1052208
>>1052194

>Meebo



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

Мне их идея с документами, которые могут быть одновременно приложениями доставляет, но там вроде как не всё гладко с записью большого количества простых документов и потреблением места на диске.
#39 #1052210
>>1052208

>*их идея = идея создателей Кауч


>fix

#40 #1052212
>>1052185
Отчасти верно.
#41 #1052224
Анон, подскажи. JS недавно обмазываюсь, тут странное дело.
Отправляю ajax-запрос через jQuery на php-обработчик в формате json (JSON.stringify). Всё ок, пхп получает и тоже возвращает json (json_encode). Обычно раньше, я в JS использовал JSON.parse, однако сейчас увидел, что ответ уже приходит в виде массива JS, то есть уже распарсеный. Это всё из-за того, что указан type: 'json', верно? До этого использовал type: 'html'.
#42 #1052229
>>1052224
Перечитал свой вопрос (и посмотрел на сайте jQuery) и понял, что спросил о том, что и так очевидно. Стыдно.
447 Кб, 948x526
#43 #1052277
Читаю про ноду и там через каждое предложение - handle request. Как это переводиться? Управление реквестом, разбирательство с реквестом?
#44 #1052291
>>1052277
Обработай запрос.
61 Кб, 604x414
#45 #1052298
>>1052291
Почему учебник Node на сайте Мазилы сразу мне жестко поясняет за шмот за Express? Почему сначала подучить Ноду, а не сразу дрочить фреймвоки?У меня от этой хуйни дедушка заулыбался, блять написали учебник Express
#46 #1052312
>>1052298

>подучить Ноду


Нахуя зубрить стандартную библиотеку?
#47 #1052361
>>1052185
Пишется похоже, но идеология другая.
Основа - прототипы, в них разбирайся в первую очередь, чтобы не тормозить.
#48 #1052372
антоны помогите сделать следующее:
пишешь ник и игру
тупо проверяется список зрителей каждого стрима и ищет этот ник
как оно должно работать? чисто схематически с запросами\парсами и всякой такой шляпой
#49 #1052391
>>1052312

>нахуя зубрить JavaScript когда есть jQuery?



Чтобы писать божественное

jQuery.extend(anchor,{href,'about:blank'})

вместо устаревшего

anchor.href='about:blank'
#50 #1052394
>>1052298
У этого дедушки геморрой
#51 #1052398
>>1052361
В догонку - еще важное отличие от строгих языков - в JS нельзя быть уверенным в значении переменной и вообще в ее наличии, то же самое с аргументами функций. Так что перед использованием переменные нужно проверять на существование и тип значения в них.

Это сперва очень непривычно для классических программистов, и потому порождает кучу элементарных ошибок.
#52 #1052399
>>1052372
Ты похоже не умеешь программировать? Тогда для решения такой задачи тебе ой как далеко. Если срочно - попроси кого-то сделать. А если хочешь сам - приступай к изучению JS (или Python/PHP/Ruby)
#53 #1052552
Node.js, Express. Мне надо в темплейт Pug передавать JSON объект для рендеринга (ссылки для навбара, а также саб-меню для этих ссылок). Навбар будет открываться на любой странице, так что я не вижу смысла передавать с каждого контроллера одинаковый JSON файл. Неужели мне нужно определять объект в самом файле Pug? Есть какой-нибудь красивый способ это сделать? Например, определить JSON файл на стадии запуска сервера, и чтобы Pug имел доступ к этому JSON файлу.
#54 #1052640
>>1052552
Я разобрался. Через app.locals закидываю прочитанный JSON файл, а потом в рендер передаю request.app.locals.переменная.
sage #55 #1052772
>>1052186
Говно — это ваш недоязык, который отчаянно пытается походить на нормальный, но каждый раз обсирается всё сильнее и сильнее.
125 Кб, 265x287
#56 #1052871
на третьи сутки выяснилось что top - зарезервированное слово
6 Кб, 375x375
#57 #1052955
Изучаю Vue. Пока все норм, в отличие от Angular и React все просто и олдскульно, не надо ставить ноду, npm и прочий хайп. Просто восторг для ретрограда, аж прямо на 10 лет назад вернулся в эпоху Delphi и диал-апа.

Но возник вопрос, а где брать готовые компоненты? Раньше брали jQueryUI/ExtJS + Bootstrap для стилизации и тем. Но у Vue свой виртуальный DOM вместо браузерного, и jQuery с ним работать не умеет (а значит, и эти фреймворки не будут). Так что, неужели придется самому писать всякие панели, деревья, сплиттеры и т.д.? Или есть какие-нибудь готовые наборы?
#58 #1052998
Я не понимаю, почем у меня такая боль от редакса? Бойлерплейт на бойлерплейте.
#59 #1053005
Вот интересно как сделать счетчик времени вперед. счетчик обратного полно в инете. то есть нужно задать дату когда фапал последний раз и счетчик отсчитывал сколько дней часов и тд прошло от этой даты, stopwach типа.
Вроде задача тривиальная. Можете накидать примерно как это будет выглядить?
#60 #1053006
>>1053005

>выглядеть

#61 #1053137
Котаны, обьясните нубу как сделать кастомное событие на JS

Вот:
https://jsfiddle.net/xwghvkyw/

событие таково - допустим когда в die появляется текстовая строка "www", - это считается событием, и запускается обработчик, допустим с алертом.
Нихуя логику не пойму. А у кантора мудреный пример.

Обьясните, как нибудь попроще нубу.
#62 #1053148
аноны, смотрите: есть такой вот пример
https://jsfiddle.net/jm0vbtnz/1/
как можно получить доступ к data-id не навешивая обработчик на div, потому что div в будущем будет перерисовываться.
#64 #1053156
>>1053150
Повесь обработчик на body.
#65 #1053158
>>1053156
но обработчик и так на body Навешен
#66 #1053160
>>1053158
Вот я слепошарый(
#67 #1053162
>>1053160
https://jsfiddle.net/jm0vbtnz/4/
уже сам разобрался
#68 #1053164
>>1052998
Ну и юзай бойлерплейты, две строчки в терминале и готово, в чем проблема?
#69 #1053179
>>1053137

Аноны, помогите! Я аж чешусь бладж!!!

вот обновленный код с комментариями:
https://jsfiddle.net/v9nyga5p/
#70 #1053244
>>1053164
Это мудацкая хуйня. Нахуя блять эти модные фреймворки, если они заставляют генерить тонны бойлерплейта?
#71 #1053247
>>1053179
Можешь переписать сеттер innerHTML, чтобы тот в добавок к присвоению нового значения еще и вызывал нужное тебе событие, или добавить новый метод/сеттер элементу, чтобы тот присваивал innerHTML и вызывал твое событие, или использовать прокси, или реагировать на событие DOMSubtreeModified, или использовать MutationObserver (не уверен), или либу какую найти, которая упрощает это дело, но любое событие где-то да нужно вызывать вручную, ты можешь только замаскировать и спрятать это подальше. Могу ошибаться.
#72 #1053253
Как можно обрабатывать евенты срабатывания скролла вверх и вниз на ванильном js? (хочу без библиотек попробовать сделать) Я хочу сделать просмотр картинки такой же как на двощах, и хз как евенты скролла обрабатывать.
#73 #1053262
>>1052010 (OP)
Здравствуйте, есть один браузер хром(60.0.3112.107) для андроида и мне нужно смотреть куки. До недавнего времени я использовал "javascript:alert(document.cookie)" и все бы ничего пока не настал лимит отображения, то есть новые куки я не вижу.

Задачи:
1. Вытянуть по названию(я его знаю)
2. Удалить первые.

И как это сделать я не знаю. Вот допустим должна быть куки с названием Gay_porn_id что мне нужно написать что бы увидеть ее значение?
#74 #1053266
>>1053262
Попробуй так:

>javascript:(function del(cookie){setTimeout(() => {del();del();del()})})()

#75 #1053270
>>1053262
Подключить телефон к пека и смотреть через инструменты разработчика, предварительно настроив удаленную отладку. Или я тебя не правильно понял.
#76 #1053302
Короче намутил фигни и похоже печнька что мне нужна уже безвозвратно удалилась. Печально, но жить можно. как оказалось их скрыто больше одной

Немного почитал здесь:
https://learn.javascript.ru/cookie
И вот смотрите javascript:alert( document.cookie ); у меня работает и для этого сайта отображает куки usercode_auth

А вот когда я javascript:function getCookie(usercode_auth) то ничего.

>>1053266

> del


> {del();del();del


Не хочу тебя обидеть но оставлю это на потом, все равно буду удалить все что бы очистить "кеш отображения" на следующие разы.

>>1053270
Я вообще не программист, даже телефон не рутирован. С рутом похоже есть программы что могут читать куки... То что ты написал для меня это уровень расшифровки https трафика на мощности какой нибуть криптофермы, ради несчастной печеньки(Ну вы поняли).
#77 #1053314
>>1053247
Спасибо бро за развернутый ответ. Я сидел и горевал по поводу того что я тупой, что то что мне требуется лежит на поверхности, а я понять не могу.

>>Можешь переписать сеттер innerHTML


Не хочется ковырятюся в нативных методах.

>>добавить новый метод/сеттер элементу


А вот это уже реальнее. Добавить метод элементу, которое будет реагировать на изменение innerHTML и вызывать кастомное событие.
Шпасибо!
#78 #1053319
Получилось
Как итог мне нужен был всего-то такое

javascript: getCookie("Gay_porn_id");

Теперь я явапрограмист?
#79 #1053355
>>1053319

>>getCookie("Gay_porn_id")


>>Теперь я явапрограмист?



Никаких сомнений
#80 #1053408
Анончики, глупый нубяра снова с вами.
Снова пример от кантора.
Снова прошу хелпа!

https://jsfiddle.net/Lcrz4pzp/

комментарии внутри
#82 #1053451
>>1053412
Бука!
#83 #1053628
Анон, помоги.
Такой пример.
Есть сайт, на котором прогружаются div-ки с баннером (на каждой странице домена) и каждый раз, когда я захожу на какую-либо страницу сайта, у меня подгружается эта div'ка.
Вручную я удалить ее могу через панель разработчика (просто hide element в chrome), но если я обновлю страницу или зайду на другую, дивка снова подгрузится. Можно ли как-то автоматом зашить удаление этой div в браузере?
#84 #1053647
Есть готовые костыли для уменьшения размера JSON для однотипных объектов? Объекты чтобы заменял на массивы, а схему восстановления имён хранил в единичном экземпляре.
#85 #1053649
>>1053647
deflate и не еби мозг
#86 #1053696
Уважаемые Котаны, скажите пожалуйста, можно ли, зная лишь хтмл цсс и жс написать например борду объявлений, подобно данной, а так же некую биржу, куда юзеры будут запихивать свои товары например, а другие будут устанавливать фильтры и искать то что им нужно? Понимаю, что второе наверное проще делать на пхп, но в планах пхп нет. И возможно ли написать на сайте-бирже мини-чатики, где каждый зашедшиq сможет быстро поболтать конкретно с разместившим данную объяву? Что за связка потребуется минимум для таких больших дел?
#87 #1053699
>>1053696
только если для взаимодействия с бд ты возьмешь ноду.
#88 #1053726
>>1053696
Для всего хватит хтмл цсс жс, если нода на беке устраивает.
#89 #1053793
>>1053696

связка не проблема, экшен будет когда тебе начнёт не хватать ресурсов и все это нужно будет как-то срочно растянуть на несколько машин
#90 #1053870
>>1053005
Псевдокод
var fappedLastTime = userinput;
var daysSinceFapped;
for (var i=0; i<100; /все равно больше не продержишься / i++) {
daysSinceFapped++
}
Время берешь через Date().getTime()
#93 #1054054
Решил изучить js, помимо codeacademy и eloquent js читаю курс на http://learn.javascript.ru. Вот на последнем я дошёл до вычисления факториалов и числа Фибоначчи через рекурсию и мне тяжело, я едва понимаю логику кода в примерах. До этого программированием не занимался.

Вопрос: это у всех так? Может, просто не моё? Мне 30 и я гуманитарий, может дело в этом.
#94 #1054059
>>1054054
Люди делятся на два типа.
Одни понимают указатели, другие нет.
Одни понимают рекурсию, другие нет.
Одни понимают трансформеры монад, другие нет.
#96 #1054179
>>1054059
Итого 6 типов насчитал
#97 #1054181
>>1054179
Это все одни и те же люди. Одни тупые, другие нет.
#98 #1054182
>>1054054
Ну так тут не в программировании дело, а в математике.
Но вообще-то если гуманитарий, то каким хером тебя в программирование понесло? Деньги?
#99 #1054183
>>1052955
Вот здесь https://vuejs.org/v2/guide/plugins.html в конце написано:

>Checkout awesome-vue for a huge collection of community-contributed plugins and libraries.


> https://github.com/vuejs/awesome-vue#user-content-components--libraries

100 Кб, 640x882
#100 #1054192
>>1054182
Кратко: да, деньги
Последние 6 лет я работаю не по специальности на тупиковой должности. Работа вахтовая, много свободного времени, решил как-то его занять.

>>1054142
Спасибо, буду изучать
#101 #1054198
>>1054192

>не по специальности на тупиковой должности


Как и почти вся страна. А почему сразу в техвуз не пошел, математику не учил? Какие-то другие планы были, артистом например стать?
#102 #1054199
>>1054198
Почти. Дипломатом c:
#103 #1054206
так блет, я пришел к понимаю того что вебдевелоперу нужен линух
с чего начать ?
#104 #1054230
>>1054206
Купи макбук.
#105 #1054236
>>1054054
Как чувак который осилил почти весь учебник кантора скажу - это ебанное начало только. Будет тяжелее.
Очень высок уровень абстракции. И должно выработаться специфическое мышление.

>>1054192

>>Кратко: да, деньги


Честно, не уверен что это разумно. Суть в том что программирование "должно зайти", когда ты сидишь до часу ночи разбирая какую нибудь хуиту, забесплатно, тупо потому что нравится. И второе - когда ты осилишь учебник кантора - ты вдруг поймешь как мало ты знаешь. Хочешь пилить полноценные сайты на сервере - изволь учить node.js, что бы самостоятельно верстать быстро - бутстрап. И куча еще всяких технологий.
И при всем этом пиздице ты через месяцев 6-7, когда все осилишь, потратив дохуя часов - ты пойдешь каким нибудь джуном за 40 тыщщ.
И ток через пару лет вьеба ты доползешь до сильных ЗП. Наверное.
К сожалению в россиюшке программирование привлекательно единственно тем, что гипотетически ЗП могут прийти к европейскому уровню ЗП, ну или прямо работать с заграницей не поднимая сраки с родного дивана.
Я лично перекатываюсь потому что я по образованию "сисюадмин", но уже 5 лет работаю в информационной безопасности, а это настолько бумажная специализация что пиздец. Тошнит уже.
Я мог бы в какой нибудь банк уползти и там кидать акты на заключения. Но заебло. Я хочу технической работы.

Мой совет - научись блядь штукатурку нормально класть. Через пару месяцев будешь подмастерьем, через год будешь хуярить на себя. И поднимать нихуя не меньше, если работать и не бухать.
#106 #1054274
>>1054199
Странно - раньше это считалось выгодной профессией, куда там каким-то кодерам.
31 Кб, 437x344
#107 #1054311
>>1054274
Да это шутка была.
#108 #1054420
Нужны сильные прохромисты на js в проект с перспективой https://pastebin.com/m2xD8nkW
#109 #1054422
>>1054420
Подробности сразу давай. Скока денег?
#110 #1054424
>>1054420
Жму лежа 175, достаточно сильный?
#111 #1054425
>>1053628
Можешь поставить расширение для браузера, которое применяет пользовательские стили к сайту (для хрома - User CSS, например). Тогда можно просто к селектору этого баннера `display: none` применить.
#112 #1054428
>>1054420
ой я что-то засмущалась и вышла. там столько мальчиков. ._.
#113 #1054430
Аноны, сейчас устраиваюсь фронт-энд джуном на реакт/редакс. Учу эту связку дай бог два месяца, но вроде что-то уже начинаю схватывать. Может кто мельком чекнуть мой код на наличие совсем уж дичайших обосрамсов? Вот приложуха которую пилю около месяца. Вкратце - сервис для хранения иностранных слов. Создаешь список - добавляешь туда слова которые хочешь выучить - прогоняешь тесты по нему (тесты конфигурируешь сам, там довольно много настроек) - по окончании теста слова, которые правильно решил, отмечаются как выученные. Есть еще переводчик (просто надстройка над яндексовским, работает так же), слова прямо из него можно добавлять в списки. Показать как работает пока не могу, это и не важно, просто гляньте код кому не лень.

https://github.com/sorfeai/vocabulary
#114 #1054432
>>1054430
Самое главное забыл. Могу ли я сейчас претендовать на джуна в не самой опущенной команде?
#115 #1054433
>>1054432
Можешь.
#116 #1054434
>>1054433
Это из серии встань и иди?
#117 #1054435
>>1054434
Глянул твой код мельком. Можешь встать и идти, у тебя уже лучше чем у 80% тут.
#118 #1054438
>>1054435
Учитывая что я не понимаю 80% процентов того о чем тут говорят это странно, лол.
#119 #1054588
>>1054438
Лол, помню тебя, ты выкладывал резюме во фронтенд треде полгода назад. Тебя что, не приняли тогда на работу, или что? Что то у тебя прогресс медленно идёт, я за это время уже дохуя приложений высрал.
#120 #1054592
Как сделать вот такое:
имеется большой массив вида [[a: 1, param: 2], [b: 2, param: 3]]
Как функционально реализовать следующую задачу - обработать каждый элемент массива (как в map();) плюс вставить после обрабатываемого элемента дополнительные?
Императивный алгоритм у меня есть, может есть какие то методы для этого?

Например:
[[a: 1, param: 2], [b: 2, param: 3]]
// Умножить первый подэлемент на 2, вставить дополнительный соответственно подэлементу param
[[a: 2, param: 2], [new: 1], [new: 1], [b: 4, param: 3], [new: 1], [new: 1], [new: 1]]
#121 #1054662
>>1054588
Приняли, я дропнул потому что НЕ МОЕ и работал год дизайнером/иллюстратором, заебало и опять пересел на фронт. Поэтому я можно сказать на том же уровне что и год назад.
#123 #1054664
>>1054592

>может есть какие то методы для этого?


Reduce.
#124 #1054667
>>1054664
Редьюсом обходишь массив, внутри коллбэка умножаешь текущий элемент и вставляешь новый по методу что анон кинул >>1054663
#125 #1054713
Помогите с регуляркоблядством. Есть строка, типа
'abcabcabcxyzabcabcxyzxyz'
Над из этой хуйни одним оператором получить:
['abcabcabc','xyz','abcabc','xyzxyz']
#126 #1054868
>>1053408
Короче анон, в данном примере я до определенных вещей дошел сам.
спасибо, пидоры, помогли бладж
впрочем зато сам покопротивлялся, туда сюда учебник полистал, и по итогу понял сам, что оже полезно
Но есть вопросик.
https://jsfiddle.net/Lcrz4pzp/3/
#127 #1054875
>>1054868

>спасибо, пидоры, помогли бладж


Нахуй пошел, очередному тупому дауну помогать еще.
#128 #1054879
>>1054430
- а чего это у тебя редакс и промисы в дев-депенденси?
- ах ты уёба, еще и react-create-app используешь (не делай так, иначе тебя девопс отхуярит)
- "открой каталог layout и охуей", ебать ты наркоман.
- используй автопрефиксер, ёпт, https://github.com/sorfeai/vocabulary/blob/master/src/styles/global.css

Итого, поработай джуном в обоссаной команде годик(-другой), а потом уже иди в нормальную.
#129 #1054886
>>1054868
ты до какой-то хуйни похоже дошел и пропустил кейворд new перед Menu
#130 #1054888
#131 #1054901
>>1054879
Что не так с react-create-app?
#132 #1054968
Объясните, пожалуйста, почему в главном языке будущего два идентичных участка кода (за исключением имени одного свойства) выдают разный результат?
https://jsfiddle.net/jcg44ukd/1/
#133 #1054978
>>1054968
this при вызове этих функций равен window, а у window есть своё свойство name.
#134 #1054980
>>1054968
потому что ты мудень, не читавший спецификацию.
функции твои срабатывают не в контексте объектов userOne, userTwo, а в контексте window
в первом случае у window нет свойства 'firstname', поэтому ты получаешь undefined, если его присвоить все становится очевидно
во втором случае, внезапно, свойство 'name' у window есть и оно равно пустой строке.
#135 #1054981
>>1054968
При "use strict" коллбэку который ты передаешь в setTimeout не передается контекст, в обычном режиме передается.

>>1054978
Что? И оно равно "anon"?
#136 #1054983
>>1054981
Ааа, я хуйню написал, анон выше прав.
#137 #1054986
>>1054981
Спасибо.
#138 #1054990
#139 #1055025
Сколько времени уходит у новичка на первую часть книги кантора?
А то чувствую себя дауном ибо уже второй день ковыряюсь в разделе Замыкания, область видимости
#140 #1055026
>>1055025
Ты как-то слишком быстро идёшь. Проверь свои знания: https://gist.github.com/codedokode/ce30e7a036f18f416ae0#Задачки-на-js/
Кантора месяцами проходят.
#141 #1055030
>>1055025
это сложная тема, поебаться с ней как следует это нормально
#142 #1055046
>>1055026

>Кантора месяцами проходят.


Ну до этого раздела там всё легко было.

>Проверь свои знания: https://gist.github.com/codedokode/ce30e7a036f18f416ae0#Задачки-на-js/


ок
#143 #1055259
>>1052010 (OP)
Анон, есть вопрос. Пишу на node.js. Есть ли разница для работодателей, какой стандарт языка ты используешь?
Обычно это не указывают в вакансиях, но мб это само собой подразумевается? Стоит ли вообще использовать старый синтаксис?
#144 #1055267
Сап, анон. Есть одна задача из учебника.

Суть такова: декоратор, который кеширует результаты функций. И есть два кода.

Номер раз) https://codepen.io/anon/pen/wqNBgE?editors=0012
Номер два) https://codepen.io/anon/pen/XaOJNJ?editors=0012

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

Вопрос: как это победить?

В принципе, можно привести аргументы к строке, но тогда и смысла в мапе немного - можно в объекте хранить.
#145 #1055269
>>1055267
сериализуй/хешируй
#146 #1055279
>>1055259
Обычно пишут es6 или es5 нет?
#147 #1055290
>>1055279
крочи, если твое знание ес6 ограничено тем что ты вместо вар стал писать лет то нет смысла, а если разобрался с промисами то да.
#148 #1055305
>>1054980
Если ты хочешь вывести "anon" то тебе просто нужно вызвать функции, а не сослаться на них. Зачем кукарекать, если ты не знаешь сам что делаешь?
setTimeout(userOne.sayHi(), 1000); // anon
setTimeout(userTwo.sayHi(), 1000);// anon
#149 #1055306
>>1055305
Ошибка. Это ему: >>1054968
#150 #1055322
>>1055305

>setTimeout(userOne.sayHi(), 1000); // anon


>setTimeout(userTwo.sayHi(), 1000);\t// anon


ох ты и мудило, блет, сам нубяра а лезет кого-то учить. ты вообще соображаешь что сделал? ты немедленно без задержки вызвал функцию и передал в сеттаймаут ее результат в виде говнища
чтобы сделать то что он хочет нужно прибиндить контекст к функции так
setTimeout(userOne.sayHi.bind(userOne), 2000);
setTimeout(userTwo.sayHi.bind(userTwo), 2000);
#151 #1055472
>>1055322
И нахуй такую хуйню разводить, когда можно через анонимную функцию сделать?

setTimeout(() => userOne.sayHi(), 1000);
16 Кб, 658x298
#152 #1055482
>>1055472

>хуйню разводить


это не хуйня, а классика, блядь, это знать надо
с помощью байнда можно взять любую функцию и вызвать ее в любом контексте, не копируя и не передавая как параметр
твоя ссаная лямбда так умеет, мм?
sage #153 #1055505
Поцы, есть ли способ нормально распаралелить математические вычисления, нагружающие CPU? Речь о NodeJS.
#154 #1055585
>>1055025
На весь учебник, с процентов 80 решенных заданий ушло 5 месяцев. Это с ноля. Правда я много проебывался, и месяца полтора почти подряд проебал. Думаю что если заниматься часов по 5 ежедневно, то месяца три займет.
#155 #1055722
>>1055482
var не завезли?
#156 #1055845
>>1055482
а bind считает коллбеком?
#157 #1055868
>>1055845
коллбек в данном случае это сейхай.
бинд - это метод прототипа Function, который декорирует коллбек
#158 #1055909
Как можно красиво транспонировать двумерный массив? Цикл в цикле с созданием нового массива выглядит как-то совсем уж уебищно.
#159 #1055911
>>1055868
Бладж, я и имел ввиду что сейхай с привязанным контекстом.
эх, вот бы в 2017 внятно излагать свои мысли
Спасибо
#160 #1055917
Что вы тут вообще обсуждаете?
Что за хуйня блядь, КАК СДЕЛАТЬ ЗАЛУПУ ПО МАССИВУ ПИСЕК.
Вы урод?
Почему вы не разрабатываете приложения? Почему я захожу и вижу залетных даунов с гугловопросами-1-секунда?
А ну-ка пиздуйте!
#161 #1055927
>>1055917
Мы не умеем. Подскажи годных туториалов по созданию сложных SPA на реакте с ООП. И чтоб стек из 9-10 перделок.
инбифо тудулист
#162 #1055928
>>1055927
Смысл копировать туториалы ничего не понимая?
Ставь задачу, - реализуй. И лучше освой немного ООП и модульность, это делается за день.
Дальше ставь фановые задачи и реализуй. Все придет.
#163 #1055965
>>1052010 (OP)
Скриптач, как бы мне создать DOMElement из строки? При этом строка должна не в innerHTML помещаться, а как бы целиком превращаться в объект.
#164 #1055979
>>1055965
убей себя, мамкин погромизд, бляю
#165 #1055994
Есть строка: '000000'. Как в ней мне заменить третий 0 на 1?
#166 #1056003
>>1055994
Превратить строку в массив, заменить нужное, и пропарсить обратно.
#167 #1056004
>>1056003
А я тут пытался с RegExp что нибудь нашаманить. Спасибо, сейчас попробую.
#169 #1056157
>>1056004
a.replace(/^(.{2}).{1}?(.*)$/, '$1a$2')
#170 #1056160
>>1056157
'000000'.replace(/^(.{2}).{1}?(.*)$/, '$11$2')
#171 #1056185
Слоупок в треде, советую всем вкатчикам, метающимся между фреймворками, посмотреть этот доклад от соавтора Redux и React Hot Loader: https://www.youtube.com/watch?v=nwtQMSFikUk
Аноним #172 #1056306
Как работает такое выражение:
[].concat(...arr);
В частности интересует оператор ...
#174 #1056406
Довайте померяемся хуями, подонки.
Напишите в одну строку функцию, которая принимает на вход строку вида

>"brown black black"


или

>"brown black brown gold"


Четвертый цвет может встретиться, а может и нет
Что c ней надо сделать.
Есть словарь:
black: 0, brown: 1, red: 2, orange: 3, yellow: 4, green: 5, blue: 6, violet: 7, gray: 8, white: 9
Это кодирование цветом сопротивления резисторов, но это значения не имеет.
Первые два цвета путем сложения их цифр как строк дают число, например
"yellow violet ..."
дадут
'4'+'7' = '47' // а не 4+7=11
Третий кусок переводится в число по тому же словарю и служит экспонентой для возведения в степень числа 10, например
"... ... black"
даст нам
10 в степени 0 = 1
Четвертый опциональный кусок добавит в конец итоговой строки проценты. Если этого куска нет - 20%, иначе если
silver: 10%
gold: 5%
Теперь первый промежуточный результат переводится в число и перемножается со вторым, получаем 47х1=47
Теперь нужно вернуть строку по следующим правилам
-если результат<1000 вернуть строку "47 ом, 20%"
-если 1000<результат<1000000 вернуть строку "4.7k ом, 20%", то есть результат/1000
-если 1000000<результатвернуть строку "4.7M ом, 20%", то есть результат/1000000
Примеры
"brown black black" // "10 ом, 20%"
"brown black brown gold" // "100 ом, 5%"
"red red brown" // "220 ом, 20%"
"orange orange brown gold" // "330 ом, 5%"
"yellow violet brown silver" // "470 ом, 10%"
"yellow violet orange gold" // "47k ohms, 5%"
"brown black yellow gold" // "100k ohms, 5%"
"orange orange yellow gold" // "330k ohms, 5%"
#174 #1056406
Довайте померяемся хуями, подонки.
Напишите в одну строку функцию, которая принимает на вход строку вида

>"brown black black"


или

>"brown black brown gold"


Четвертый цвет может встретиться, а может и нет
Что c ней надо сделать.
Есть словарь:
black: 0, brown: 1, red: 2, orange: 3, yellow: 4, green: 5, blue: 6, violet: 7, gray: 8, white: 9
Это кодирование цветом сопротивления резисторов, но это значения не имеет.
Первые два цвета путем сложения их цифр как строк дают число, например
"yellow violet ..."
дадут
'4'+'7' = '47' // а не 4+7=11
Третий кусок переводится в число по тому же словарю и служит экспонентой для возведения в степень числа 10, например
"... ... black"
даст нам
10 в степени 0 = 1
Четвертый опциональный кусок добавит в конец итоговой строки проценты. Если этого куска нет - 20%, иначе если
silver: 10%
gold: 5%
Теперь первый промежуточный результат переводится в число и перемножается со вторым, получаем 47х1=47
Теперь нужно вернуть строку по следующим правилам
-если результат<1000 вернуть строку "47 ом, 20%"
-если 1000<результат<1000000 вернуть строку "4.7k ом, 20%", то есть результат/1000
-если 1000000<результатвернуть строку "4.7M ом, 20%", то есть результат/1000000
Примеры
"brown black black" // "10 ом, 20%"
"brown black brown gold" // "100 ом, 5%"
"red red brown" // "220 ом, 20%"
"orange orange brown gold" // "330 ом, 5%"
"yellow violet brown silver" // "470 ом, 10%"
"yellow violet orange gold" // "47k ohms, 5%"
"brown black yellow gold" // "100k ohms, 5%"
"orange orange yellow gold" // "330k ohms, 5%"
sage #175 #1056410
Ребят, можете пояснить за JSDoc, кто использует, как впечатления?
Я сам сторонник идеи самодокументирующегося кода, стараюсь обычно писать так, чтобы из названия переменных и функций и предельно простой/плоской структуры кода было понятно без комментариев что там где. Не помню у кого из писак было: "если вы ставите в коде комментарий, то это явный знак, что ваш код неочевиден и лучше бы его переписать попроще".
Но идея JSDoc'а мне понравилась, подсмотрел это дело на бэкенде у джавистов, плюс вижу что многие JS-ные библиотеки или сайты с публичным API предоставляют документацию, явно автоматически сгенерированную из этого добра.
Попробовал, пока не особо радует. Плюсы которые получил:
- какой-никакой автокомплит
- корректные сигнатуры методов
Минусы:
- сигнатуры на самом деле нифига не корректные; чтобы хоть как-то себе представлять, что там на входе и на выходе, надо заморачиваться с @typedef'ами, если их писать сверху от методов, то коммент к одной функции на четыре строки занимает ебучие полэкрана. Приходится все typedef'ы оставлять в шапке файла.
- typedef'ы работают локально в пределах файла, но у меня полно примитивных типов типа Range { start: number, end: number }, Color { B: number, G: number, R: number, A: number} и прочей хуйни, не писать же это все в каждом файле. Доки на сам JSDoc говорят что поддерживается что-то типа неймспейсов и можно ссылаться на модули, но VSCode нихуя этого не воспринимает, это из-за того что у меня IDE курильщика и надо переходить на IDE здорового человека?
- если я допустим в каком-то контексте объявил переменную, которой присвоил значение во внутренней функции (beforeAll допустим в Jest'е), то в другой функции VSCode уже нихуя не знает про автоподстановку и сигнатуры.

Что вообще стоит покрывать JSDoc'ом, если основной стек React + Redux? Стоит ли от всех этих головняков перекатываться в Typescript или Flow?
#176 #1056422
Котоны, посоветуйте совет.
Осваиваю JS. Сталкиваюсь с тем, что имею проблемы с алгоритмами.
Вот пример:

Допустим есть список:
<ul>
<li></li>
...
<ul>
он рандомен полностью.

Нужно написать код, который допустим обежит все ветви списка, и к примеру считает из каждого элемента текст.
Сделать на JS это с помощью рекурсивного вызова функции - это я могу.
Но как это сделать лишь с помощью циклов и условйи логических? Короче без рекурсии.
Я принципиально хочу сам догнать - все утро парюсь и не выкупаю.
Какую хорошую книгу по алгоритмам можно почитать?
sage #177 #1056426
>>1056422
У HTMLElement'ов (типа <ul>) есть свойство children, которое возвращает тебе коллекцию дочерних элементов. Соответственно надо:
1) Обратиться к ul (по id, по css-классу или еще как)
2) Взять его свойство children
3) Построить цикл, зная, что HTMLCollection предоставляет свойство длины коллекции length и метод обращения к элементу коллекции item()
типа for (let i = 0; i < element.children.length; i++)
4) В теле цикла обращаться к отдельным элементам по индексу element.children.item(i)
#178 #1056446
>>1056426
Лол, зачем? Почему бы просто селектором не забрать всех li? Array.from(element.querySelectorAll('li'))
sage #179 #1056450
>>1056446
Можно и так, но мне показалось, что если нет опыта в разработке вообще - а его нет, раз для такой задачи спрашивают "что почитать по алгоритмам" - то лучше начать с базовых конструкций.
#180 #1056508
>>1056426
>>1056446
>>1056450
Чуваки, вы меня не поняли.
Вопрос не в обращении к DOM элементам и их методам или свойствам.
Проблем в создании алгоритма обхода всех ветвей дерева без рекурсии.
Вот задача с сайта кантора:

https://jsfiddle.net/wsfzkLxt/

Эту задачу без проблем я решил рекурсивной функцией.
Но как ее решить не используя рекурсию?
Где то я прочем что любой рекурсивный способ можно превратить в способ использующий циклы и условия.
Поэтому я и прошу что то фундаментальное по алгоритмам.
Хочется всеже разбираться, пусть я и вэб макака.
29 Кб, 687x504
#181 #1056512
Никак не могу понять почему в подобных примерах JSON.parse запихивают в отдельный then? Это жи не асинхронная операция.
#182 #1056515
>>1056508

> Где то я прочем что любой рекурсивный способ можно превратить в способ использующий циклы и условия.


Да, используя стек. В JS у тебя уже есть массив и методы pop() и push() на нём, этого достаточно. (Так и гугли "замена рекурсии стеком")
И не надо макакой себя называть.
#183 #1056551
>>1056512
JSON.parse - синхронная операция, потому вынесли в отдельный блок then, чтобы логически и визуально её отделить от остальной асинхронной поеботы.
#184 #1056572
>>1056551
А в третьем блоке then тогда почему Кантор не стал выносить ее?
#185 #1056578
>>1056572
upd: хотя я догнал почему, спасибо
47 Кб, 720x720
#186 #1056601
Кто-нибудь разбирается в Angular 4? У меня от этой хуйни уже жопа детонирует.
1) Как вставлять скрипты? Не могу даже сраный пост из вк вставить на страничку. Точнее я его вставил, а он исчезает если перейти на другой компонент и вернуться, потому что скрипт срабатывает только один раз.
2) Какого хуя не работает ссылка-тэг на определенную часть страницы?

На стаковерфлоу кроме тысячи строк костылей никаких вменяемых ответов не нашел.

Почему этот ангулар такой ебанутый?
#187 #1056617
>>1056601
Просто ты необучаемая js-макака. Смирись.
https://stackoverflow.com/questions/42993859/twitter-widget-on-angular-2
sage #188 #1056623
>>1055505
Бамп
38 Кб, 460x520
#189 #1056640
>>1056617
Я только начал изучать это все. Т.е. для того чтобы вставить сраный твит или пост из вк мне надо эту всю еболу писать?
#190 #1056671
>>1056406
Тебе задали задачку и ты так помощи просишь?
#191 #1056674
>>1056406
У меня есть скрипты в несколько сотен килобайт, написанные в одну строчку. Какие сложности?
#192 #1056681
>>1056410
Опыт HTML как бы намекает на вынос постороннего оформления в отдельный файл CSS.
Так что загаживание кода длинными комментариями, содержащими еще один (да еще и неочевидый) язык - ошибка. Что бы там очередные восхищенные бандерлоги не укали, как это клево и модно.
#193 #1056682
>>1056508

>Проблем в создании алгоритма обхода всех ветвей дерева без рекурсии.


>


Используй nested set
#194 #1056686
>>1056515
Вообще-то рекурсия как раз и использует стёк, поэтому на неё косо и смотрят - из-за переполнения стёка.
Ты имел в виду ручную имитацию стёка с помощью массива.
#195 #1056690
>>1056640
А просто конвертнуть в HTML через .outerHTML и потом просто в innerHTML вставить этот кусок кода - не прокатывает?
#196 #1056693
ребятки, появилась срочная необходимость вкатиться в Node.js
был опыт на шарпах, яве, плюсах
с чего начать изучение, посоветуйте макулатуру
#197 #1056696
>>1056693
Гугли курс кантора
58 Кб, 1839x404
#198 #1056698
>>1056671
Не, я решил. Прост с братюнями захотел поделиться годной задачкой
>>1056674
Я не говорю что это рокет сайнс, но если ты про ужатый минификатором iife, то это не то.
#199 #1056714
>>1056698
У тебя неймспейс порвался от глобальных переменных
sage #200 #1056719
>>1056681

> Опыт HTML как бы намекает на вынос постороннего оформления в отдельный файл CSS.



Ну, во-первых, многие сейчас тянут мазу за то, чтобы писать стили скриптом и держать в одном файле с модулем. Я сам стараюсь так не делать, но не могу не заметить, что это сейчас очень распространенная практика, так что опыт HTML'а получается сделал полный круг. Где-то это официально рекомендуемый документацией подход, а где-то тебя просто нагибают, выставляя наружу компоненты игнорирующие className - чтобы стилизовать такие через отдельный .css-файл, приходится забуриться в детали реализации. Особенно весело, если библиотечка все стили инлайнит - после этого твой .css файл выглядит как говно со всеми этими !important. Вроде кто-то упарывается JSS'ом, который хотя бы это решает..

Во-вторых, это по-моему не совсем одно и то же - css из html'а вынести можно, а JSDoc из модуля - нельзя (ну или я не знаю как). Что предлагается-то, не писать его вообще? А если автодокументирование все-таки нужно? Ну или хотя бы вот видеть перед глазами, какой формы объект метод возвращает
#201 #1056744
>>1056686
Ну и еще потому что в JS будет заздана цепочка объектов переменных и цепочка запусков функций. Которые будут жарт память.
Кстати, котаны, при рекурсивном вызове создается только новый обьект переменных, или еще в довесок задаются дополнительные экземпляры обьектв function?
#202 #1056749
>>1056515
>>1056682
Ну иожыны-сбажины, ну дайте сурс на годный учебник по алгоритмам.
#203 #1056769
>>1056749
Кнут - искусство программирования
#204 #1056772
>>1056769

>Кнут - искусство программирования


Хех, спасибо. Но там чет примеры на асемблерах.
Хотя почитаю попробую конечно.
#205 #1056795
>>1056772

>почитаю


>четырёхтомная монография


Ебать ты гений
#206 #1056803
>>1056795
Так о том и речь, лол)
#207 #1056806
>>1052010 (OP)
Ребята, есть сервак на Node.js. ка лучше всего организовать поиск собеседника для чата, по заданым параметрам?
sage #208 #1056873
>>1056693
В документации к nodejs есть и примеры и все что нужно для старта, рекомендую
sage #209 #1056874
>>1056806
Ты бы хоть рассказал что за сервак, а то вопрос звучит как "У меня есть строительные материалы, как построить дом?"
#210 #1056906
Как дату вывести в формате dd.mm.yyyy?
#211 #1056907
Как авторизоваться с помощью ноды? Есть форма с полями name и pass. Мне их нужно направить на адрес как данные форм. Но как их подготовить как будто они из формы взяты?
#212 #1056980
>>1056719

>это сейчас очень распространенная практика, так что опыт HTML'а получается сделал полный круг.


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

А еще - проблема в средствах разработки, которые до сих пор нормально не интегрируют файлы в "пакеты" и занимаются редактированием отдельных plain файлов вместо их виртуальной интеграции.

>А если автодокументирование все-таки нужно?


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

Меня удивляет такая тормознутость разработчиков IDE.
#213 #1056982
Подскажите что выбрать для фронтенда? Желательно что-нибудь такое, что можно на ходу изучать и потихоньку пилить фронт.
Собираюсь написать небольшой сайт в качестве тестового проекта.
Сам сайт что-то вроде онлайн блокнота, с авторизацией.
Бэкенд будет на джаве со спрингом (опыт в джаве уже есть), а вот фронтенд - хз.
На жс я писал всего несколько простеньких скриптов без использования библиотек.
#214 #1056983
>>1056744

> заздана цепочка


Это и называется стёком.
#215 #1056984
>>1056806
Собеседники регистрируюся на сервере, и среди тех сессий, с которыми есть коннект, можно искать.
#216 #1056986
>>1056906
new Date().toLocaleFormat("%d.%m.%Y")
#217 #1056987
>>1056907
encodeURIComponent
#218 #1056988
>>1056982
Ruby on Rails ;)
1019 Кб, 500x263
#219 #1057006
Пацаны, хэлп. Как тестировать https в локалке? Например, я в проде собираюсь накатить nginx с сертом от let's encrypt + certbot и чтобы было Безапаснасць. Как это сэмулировать 1:1 в локалке?
Например чтобы решить dns можно инжектить адрес с именем в /etc/hosts при запуске. Но как решить сертификат? Умею в докер.
#220 #1057014
>>1056873
https://github.com/workshopper/learnyounode
можешь потыкать интерактивный курс
#221 #1057015
>>1056693
>>1057014
сука ёбаный аутист не туда ответил
#222 #1057049
>>1057006
Бамп вопросу, тоже интересно SSL на локальном серваке сделать.
#223 #1057052
>>1057006
Ты что тестировать собрался, наркоман?
#224 #1057128
>>1057006
Накатывать нжиникс с сертом на локалке пробовал? Если брезгуешь - виртуалка и докер.
#225 #1057143
>>1057049
>>1057128
вобщем я погуглил, конфиг сертбота можно протестить с помощью их стейдж-сервера а https в локалке - только самоподписанный сертификат и браузер будет ворнинги показывать в любом случае.
#226 #1057144
>>1057052
хочу сделать образ проекта - настроить все на этапе дева, потом просто его дропнуть на vps и ниче в проде не ковырять
#227 #1057209
Когда моя самооценка как программиста начинает падать я заглядываю в исходники дешёвых одностраничников http://prostitutka-zakaz.kiev.ua/sript.js
#228 #1057299
>>1056986

>toLocaleFormat is not a function

68 Кб, 487x700
#229 #1057332
Подскажите, какую книгу по JS можно купить в России за вменяемые деньги? Учу язык с нуля. Можно и на английском!
Пикрил стоит тысячу рублей, норм книга?
#230 #1057333
>>1057332
спизди в интернете все книги, которые только захочешьпрограммистом от этого ты все равно не станешь
#231 #1057343
>>1057333
Вопрос был про физическую копию. Тебе-то какая разница, стану я кем-то или нет?
#232 #1057349
>>1057332

>на английском


>в России


Оу бой хир ви гоу!
#233 #1057368
>>1057332
Пикрил есть у меня, и это не книга, а просто справочник по функциям.
#234 #1057369
Котаны, у меня есть два вопроса.

Вот есть такое понятие, как состояние (в контексте реакта). Реакт я не знаю, пишу только на vue, хоть и для него есть либа, добавляющая состояния.

Что это вообще такое? Я с трудом понимаю в чем суть. Это что-то вроде централизованного хранилища данных, не зависимое ни от каких компонентов, верно? И что там нужно по-хорошему хранить? Объясните простыми словами, пожалуйста.
#235 #1057389
>>1057369
Есть на сайтк кнопка +1, нажимая её рисуется результат 123456...
Это состояние. Хранится в памяти. Корявый код может привести к утечке.
#236 #1057399
>>1057332
это бесполезная херня, просто пересказ документации, причем устаревающий каждый день, зачем он нужен если под рукой есть https://developer.mozilla.org я понятия не имею
#237 #1057421
>>1057389

>опка +1, нажимая её рисуется результат 12



То есть получается, что состояние - это данные о том, что пользователь сам сделал в процессе работы с веб-приложением в настоящий момент. В то время как данные, получаемые в процессе загрузки приложения, будь то что-то из базы данных или что-то еще состоянием не являются?
#238 #1057428
>>1057421
В общем случае да. В реакте компонент отвечает за свое состояние. Сам спросил, сам поменял. В то время как props отвечают за изменение компонента извне.
#239 #1057574
Сап, /prограммач, пытался гуглить, но не знаю как правильно сформулировать вопрос, поэтому нихуя не гуглится.

Есть одна страничка с книгой, необходимо, чтобы при ее повторном открытии юзер возвращался на то же место, где он оставался при ее закрытии. Делается это джаваскриптом или есть методы полегче?

С меня как обычно нихуя
#240 #1057576
>>1057428

Ага, значит получается я всегда использовал эти самые состояния в контексте vue, сам того не подозревая. Ладно, спасибо
#241 #1057597
>>1057299

> new Date().toLocaleFormat("%d.%m.%Y")



> "05.09.2017"

#242 #1057607
>>1057574
Копай в сторону диалогов "Are you sure to leave this page?" - это если при закрытии странички нужно запомнить положение. Но можно это делать при каждом скроллинге страничек - тогда гугль про события скроллинга.
#243 #1057748
А обязательно учить перед JS верстку если планирую во фронтенд вкатываться (уже вкатываюсь)? Тошнит уже от этих тегов и скобок треугольных, хочу кодом заняться, а это существенно тормозит ибо в верстке реально большой стек технологий, адаптивная верстка и прочее, что надо обязательно освоить. Нельзя как-то совместить/после JS выучить?
#244 #1057755
>>1057748
Нахера тогда во фронт вкатываешься, если тебя тошнит. Учить - не учить, все равно по работе придется всем заниматься. Ты будешь выморажвать коллег в дедлайне своими - а я это не знаю, а я то не буду.
#245 #1057766
>>1052010 (OP)
Как учить жс, если уже немного умеешь программировать, базовые принципы понимаешь, либо если это не первый твой язык? жопошкрипьт.ру? Фланаган? КодАкадеми? Как правильнее. быстрее, эффективнее, лучше?
#247 #1057791
>>1057772
А по существу?
#248 #1057808
Вопрос по стандартному методу массивов Reduce. Передаю ему первое значение, но он его не принимает. Укажите на ошибку
https://jsfiddle.net/4z1obzvc/
#250 #1057847
>>1057808
>>1057812
Идти по этой ссылке
#252 #1057869
>>1057748
само ядро языка(синтаксис, кейворды, типы данных, ооп) можно спокойно учить в отрыве от окружения. у кантора так и сделано, первая часть учебника это язык, второе это браузер.

>Тошнит уже от этих тегов и скобок треугольных


в стеке верстки есть перделки с синтаксическим сахаром
80 Кб, 665x670
#253 #1057925
#254 #1057932
>>1057862
Спасибо, Антош.
Спасибо всем Антошам, всегда помогаете решить мои вопросы
#255 #1057955
Сап. Начал изучать JS и возник такой вопрос:

В каких случаях лучше использовать "switch", а в каких "else if"? Потому что в данный момент, они для меня одинаковы.
#256 #1057982
Я не этот >>1057748 анон, если что. Такой вопрос:

Куда бы можно вкатиться, зная JS, кроме как делать сайты? Не то что бы очень сам по себе фронт-энд вдохновлял. Можно ли делать мобильные приложения? Где вообще можно применять жс?
Сам думаю вкатиться все-таки сначала во фронт, т.к. процесс не должен быть слишком долгим, а там поднаберусь опыта и хоть каких-то средств и попробую заняться чем-то поинтересней.
#257 #1057995
>>1057982

>Куда бы можно вкатиться, зная JS, кроме как делать сайты?


Для начала бы неплохо знать гугл.
#258 #1058001
>>1057995
Ты такой умный)))) Можно сделать тебе сасай))))
#259 #1058046
сосоны, читаю кантора и почти уже дошёл до ооп и подумал что он ненужен как и во многих других языках. загуглил - ну народ примерно такое и пишет.
ну дак и чо? просто хочу уже хуярить второй раздел учебника.
может в жс есть хуйня которую можно освоить уже походу дела либо ваще только когда понадобится %%если понадобится%
#260 #1058049
>>1058046

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


Ты верно выхватил тренд последних лет, теперь функциональщина в моде.
#261 #1058052
>>1058049
Что такое вообще функциональщина, кроме
data.func2(func3,func4(func5){return func6})
?
#262 #1058055
>>1058052
Главное отличии в том, какой элемент является основным строительным блоком. в ФП это функции, в ООП это объект, есть слепленый воедино комок данных и методов.
27 Кб, 491x320
#263 #1058063
Объясните почему прототипный метод sayHi не имеет доступа к свойсва функции-конструктора Animal?
#264 #1058065
>>1058063
Потому что ты пиздоглазый? У тебя водном месть name, в другом _name
#265 #1058088
>>1058065
Да, это так.
#266 #1058095
>>1057955
Тонкий намек: switch часто используется в связке с break. Наличие или отсутствие break в нужных местах может давать поведение, которое обычными условиями достичь сложнее.
Ну и лично по мне если сравниваешь одну переменную, то свич интуитивнее, чем нагромождение if-else.
#267 #1058096

>npm install -g module


>echo "require('module');" >> file.js


>node file.js


>


>sudo node file.js


>Error: Cannot find module 'module'



Чому так? С sudo нода в какой-то другой залупе модули ищет, что ли? Или просто у sudo меньше прав, чем без судо, и ему даже /usr/local/lib нельзя?
#268 #1058102
>>1058096
npm root # куда установил пакеты как пользователь
sudo npm root # где sudo npm ищет пакеты
#269 #1058112
>>1058102
Оно только локальный node_modules показывает (грубо говоря, $(pwd)/node_modules получается), даже если нет такой директории.
12 Кб, 250x250
#270 #1058166
Пацаны-ребята, подключил через cdn bootstrap/4.0.0-beta и libs/jquery/3.2.1
Для адаптивности к плагину carousel хотел прописать скрипт для свайпа пальцем, но ни 1 не работает.
Что я сделал не так?
Может bootstrap 4 не поддерживает swipe? читал доки, про свайп ни слова
Аноним #271 #1058170
>>1058166
долбаебы не могут в debug ?
#272 #1058179
>>1058170
и причем тут инспектор элементов?
#273 #1058228
Где почитать про Статические и фабричные методы.
Тут https://learn.javascript.ru/static-properties-and-methods нихуя непонятно. Даже в ютубе про это нихуя нет. Есть видосы просто про конструкторы.
#274 #1058246
>>1058228
все там доступно разжевано
#275 #1058252
>>1058246
Нет. Мне не нравятся примеры.
20 Кб, 709x614
#276 #1058356
>>1052010 (OP)
Ребзя, что у Кантора за неточности, как это понимать? Какой из вариантов правильный?
#277 #1058358
>>1058356
Тема: Модули через замыкание
#278 #1058359
>>1058356
Вбей оба примера да попробуй. Разницы никакой.
#279 #1058361
>>1058356
оба правильные, используй какой хочешь. первый больше распространен
#280 #1058372
>>1058361

>оба правильные, используй какой хочешь.


Плохой совет.
Хороший совет: Не используй вообще, уже 2 года как let есть.
26 Кб, 432x480
#281 #1058420
Т-щи программисты прошу в вас помощи в написании скрипта.
Сам я не программист и как делать не знаю, придумал такой порядок действий, но реализовать его не смог.

Мне нужно удалить все свои посты и комментарии в чужой группе.
Захожу группу, запускаю скрипт.
1. Скрипт должен долистать стену до определённой даты, например 3 месяца назад, дату ввожу я сам.
2. Из всего, что он нашёл на стене выбрать мои посты и удалить их. Остальные посты развернуть и удалить оттуда мои коменты.

Буду оче благодарен тем, кто напишет такой скрипт и расскажет как он работает.
#282 #1058433
>>1052010 (OP)
Ребят, как привязать Onclick к картинке, чтобы считала клики, и показывала клики внутри фрейма, ну или блока.
#283 #1058506
Начал тыкать в Go
Почему почти все последние изменения в js напоминают синтаксис гоферов?
Или мне по нюфажеству так кажется?
#284 #1058510
>>1058506
По нюфажеству.
91 Кб, 929x527
#285 #1058522
Почему не 18?
#286 #1058524
>>1058522

>costructor

3,8 Мб, 1280x1024
#287 #1058711
Очевидно очень простое решение, которое не могу уловить. Но меня в первую очередь волнует недостаток своей реализации -- если радиус не целое число, то пустые клетки квадрата по которому проходит двойной цикл считаются за частично заполненные (distr). Вижу только один выход, сравнивать с расстояние от центра и радиуса не только крайней точки кирпичика, но и ближайшей. Но это совсем не кошерно по-моему.
#288 #1058713
>>1057766
Learn javascript сайт, там читаешь всё\скипаешь очевидные моменты
34 Кб, 480x277
#289 #1058715
У меня уже каша в голове от вашего погромирования. Почему js такой запутанный. Тут так, тут вот так, а тут если поставить точку то вот так, а если вынести сюда то ваще вот так, а ещё вот так и так тоже можно, на самом деле это не это, а вот то просто название другое и ваще всё это вот это. уууу
Чем дальше тем больше пиздец.
Да это мой первый язык. Да я дрочу его меньше месяца.
44 Кб, 617x736
#290 #1058722
Какую книжку по JS почитать новичку, если пока я знаю только Python?
#291 #1058729
>>1058711
Все-таки добавил вторую проверку. Посмотрел лучшее решение других людей и оно оказалось практически таким же как и мое. Мне казалось есть какая-то простая формула, а может она действительно есть.

>>1058722
Рекомендую "Выразительный JavaScript" охренительная книга, но застрял на одном месте, скоро с новыми силами и знаниями снова наброшусь на нее.
Все остальные книги похожи на справочники.
(остановился на 6 главе. позор)
#292 #1058739
>>1058715
Надо было начинать с ликвидации компьютерной безграмотности и чистого С.
Хуёвая идея вкатываться не понимая не типов и структур данных.
#293 #1058743
>>1058739
Ну твоя идея куда лучше - учить два языка.
#294 #1058752
>>1058743
это он так тралит, а сам по ночам рыдает в подушку осозновая нинужность своего мертвого языка. биты-то не попереставлять
#295 #1058794
Почему в браузер не встроят еще один движок наподобие JS только улучшенный и глубоко переработаный html и сss? Например на обычных сайтах браузер использует старый движок при переходе на новый сайт использует новые возможности.
#296 #1058810
>>1058715
Ну так, ты начни с изучения языков программирования, а не фрейворка для формошлепов. Не С, но там та же scheme по SICP, паскаль по школьным учебникам, может Lua по книжке с оф сайта.
Это те языки, которые разрабатывались академиками, а не слесарями, в них не всегда удобно ебашить проект в миллионы строк, и библиотек для генерации днявочек может не быть, но они сделаны так, чтобы их можно было описать небольшим количеством правил, а не тысячей исключений, а это как раз то что нужно личинке погромиста.
#297 #1058815
>>1058810
В Гарварде учат на примере C, да и популярные языки - сиподобные.
#298 #1058826
>>1058096
Так что, никто не знает? Как же мне запускать сервер на портах <1000, держа кучу дерьма в локальном node_modules, что ли, как последний дегенерат?
#299 #1058834
>>1058794
В какой браузер? Яндекс-браузер?
#300 #1058836
>>1058834
Хром, фирефокс,
#301 #1058838
>>1058794
Но зачем? Если так приспичило писать в браузер свою особую идеальную дрисню, то проще сделать очередное транспилер, который будет выплёвывать православную троицу после переварки твоих закорючек.
#302 #1058842
>>1058838

>Но зачем?


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

>Если так приспичило писать в браузер свою особую идеальную дрисню, то проще сделать очередное транспилер, который будет выплёвывать православную троицу после переварки твоих закорючек.


Накопленные знания и опыт помогут написать намного лучший браузерное ядро чем поддерживать старое глючное говно.
#303 #1058894
>>1052010 (OP)
Ребята, а скринкаст Кантора по node.js (его первая часть) ещё считается актуальной? А то там версия 0.0.1, когда на дворе уже версия 6.9 несколько лет как LTS. Из личной практики заметил что некоторые модули что он проповедует уже давно не поддерживаются и не используются. Есть что-то более актуальное, но не уступающее по качеству, в виде скринкаста?
#304 #1058896
>>1058894
Именно не разработка сайта на экспрессе, а пояснение нативных функций и возможностей Node.js, чтобы когда на собеседовании спросят, было что ответить. Документацию пока осилить не могу, а вот посмотреть видео с обьяснениями и примерами, было бы очень кстати...
Анон #305 #1058966
>>1058729
Дэвид Флэнаган - JavaScript Подробное руководство
ну и http://learn.javascript.ru канеш
Анон #306 #1058969
>>1058722
ошибся блэд, вот книжка >>1058966
#307 #1059066
>>1058810
Да вы ебанутые! Нахуя мне учить дидовский язык если за это время я всё же смогу осилить кривой js.
#308 #1059094
>>1059066
Не слушай их. Раньше в гейропке учили хардовою латынь, а потом уже брались за другие языки. Объясняли тем что латынь стоит у истоков и его сложность только в помощь, потому что выучив его, ты точно осилишь какой-нибудь французский. Бред. Люди часто не могли его осилить и в итоге не знали никакой язык кроме родного.
Сам в начале пути, но уверен что у меня получится несмотря на незнание ассемблера
#309 #1059095
Котаны братишки, нужно срочно выпиливаться с текущей работы, учу js по кантору, сейчас еще пытаюсь осилить Явное указание this: "call", "apply". Может кто то подскажет реально путь с самим высоким КПД, типа заканчивай кантора, потом читай вот это и потом учи (что?) ангуляр/реакт/ноду по вот этой книге. Цель как можно быстрее вкатится хоть куда.
#310 #1059132
>>1059066
>>1059094
Попытка учить скриптуху без знания основ байтолюбства - сродни попытке заняться дайвингом, при этом тупо не умея плавать.
#311 #1059134
>>1059095
вкатывайся в Хаскель, базарю не пожалеешь
#312 #1059137
Node.js-господа, имеется проблема с cluster + express.
https://pastebin.com/6RkMLvsZ
Почти всегда часть файлов в папке public не загружаются с 404, а быстродействие даже хуже, чем с одним потоком.
#313 #1059143
Метод toString при использовании для перевода в двоичную систему исчисления отбрасывает впереди стоящие нули. Можно ли получить двоичное число со всеми нулями не прибегая к циклу с ручным добавлением?
#314 #1059145
>>1059143
Сам то понял что сказал? С какими "всеми" нулями?
#315 #1059154
>>1059143
код покажи
#316 #1059160
>>1059145
Если с помощью этого метода переведём число 7 в бинарную систему, получим "111" что на самом деле будет являть 00000111. Мне нужны эти опускаемые нули
#319 #1059168
>>1059167
Спасибо, крутое решение
#320 #1059170
>>1059168
Костыль, а не крутое решение.
8 Кб, 1058x152
#321 #1059172
еще моднее
#322 #1059174
>>1059170
Можно ли обойтись без этого костыля?
4 Кб, 335x72
#323 #1059176
#324 #1059200
Блять, как же все же сука пиздато, когда блять целый день решаешь эту ебаную Канторовскую задачу, и уже блять смотреть на нее не можешь, а потом хуяк и решил.
770 Кб, 598x960
#325 #1059213
закину сюда свой тред
Dumpach board
https://2ch.hk/pr/res/1057223.html (М)

Можете обоссать, но конструктивная критика будет лучше, ну и еще потестить милости прошу
#326 #1059223
Хочу я раздробить большой компонент на кучу маленьких, положить их в отдельные репозитории и подключать с помощью npm, не складывая все в одну кучу.

Создаю формочку с помощью create-react-app. Пишу сам компонент yobaForm.js, пишу базовые стили и подключаю в yobaForm.js простым import from "./yobaStyle.css". Запускаю с помощью npm start, проверяю — все збс.
Создаю так же еще кучу компонентов. Все удобно, все легко запускаются и тестируются.

Проблема возникает дальше.
Создаю само приложение с помощью create-react-app, подключаю зависимости, пишу import "yobaForm"; — сам компонент подключается, но вебпак отказывается найти "./yobaStyle.css", импортированный в этой форме. Если прописать пути в webpack.config.js — стили находятся, но этого хочется избежать. Как быть?
79 Кб, 703x573
#327 #1059227
Допускается вынесения разметки из компонентов реакт или все должно находится внутри реакта?
#328 #1059233
>>1059200
Переосмысление задачи обычно происходит после перерыва. Нужно иногда переключаться между задачами.
#329 #1059284
>>1059227
Ты это что, в ручную всё прописывал?
#330 #1059286
>>1059284
Нее, только начиная от первого div, кроме root.
#331 #1059289
Какого хуя все и везде подряд используют binding over arrow function в классах?
#332 #1059293
>>1059289

> arrow function


arrow function не bind'ит от слова совсем.
Но какая-то тупая макака решила, что таки биндит волшебно, пошел слух. Так и живем.
#333 #1059300
>>1059293

>


>Но какая-то тупая макака решила, что таки биндит волшебно, пошел слух. Так и живем.


Да ты чо? Использую их в классах, всё биндится к родительскому объекту. А макаки зачем то биндят в конструкторе. Нахуя?
#334 #1059320
Доки, вот кароч выполнил я тестовое задание по фронтенду, адаптивная верстка формы для мобилок и десктопов с проверкой формы на валидность. Рецензент пишет мол переменная i в глобальной видимости ты типо переменные пиши не var a let. Ну как бы да крутая фича, но ведь скрипты с let не работают на мобилах ( ucbrowser, android browser, safari).
Обратной совместимости вроде как нет никаким полифилом или библиотекой это не пофиксить. Кто из нас нуб?
sage #335 #1059355
>>1059300
Не очень понимаю, про какой биндинг через стрелки идет речь. Если это просто анонимная функция в рендере как это в туториалах часто показывают, то это вызывает проблемы с пересозданием функции на каждый ререндер.

Биндинг в конструкторе, помимо привязки контекста, еще полезен при кэррировании, чтоб не плодить однотипных методов.
10 Кб, 778x241
#336 #1059357
>>1059355
он имеет ввиду то что стрелочные функции объявленные в конструкторе уже прибиндены к экземпляру класса и в дальнейшем их уже нельзя перебиндить. а вот чо ты хочешь донести я тоже не пойму.
#337 #1059369
>>1059320

> никаким полифилом или библиотекой это не пофиксить.


Ты на острове живёшь? Почитай про babel

> Рецензент пишет мол переменная i в глобальной видимости ты типо переменные пиши не var a let.


Претензия мне не очень понятна, обычно i используется только внутри циклов. Но в целом лучше использовать let. Например этот код: https://jsfiddle.net/Lmfdp0o3/
по задумке должен выводить цифры от 0 до 9 с промежутком в одну секунду, но вместо этого 10 раз выводиться число 10. Если поменять var на let - то всё ок. Ещё хорошая идея использовать const для переменных, которые не собираешь перезаписывать.
sage #338 #1059373
>>1059357
Понятно. Ну, такой подход кмк не очень катит, если методы не однострочники, а по
5-10 строк, а то и какой-нибудь кусок рендера.
#339 #1059413
Поцоны, как элегантней отфильтровать массив массив вроде такого:
input: [[0,0], [0,1], [0, 0], [1,1], [1,1], [1,1], [2, 2]]
output: [[0, 0], [0, 1], [1,1],[2,2]]

Я пока использую uniqBy из lodash:
uniqBy(arr, (cell) => `${cell[0]}${cell[1]}`)

Но это костыль какой-то.
#340 #1059417
>>1059413

> const result = [...new Map(input.map(x => [JSON.stringify(x), x])).values()];



Замени JSON.stringify на подходящую проверку, например на _.eq
#341 #1059458
>>1059137
Никто с node.js не имеет дела, серьезно?
#342 #1059463
>>1059458

>express


>2k17


Подумай.
#343 #1059467
>>1059463
А шо с ним не так? Какие альтернативы?
#344 #1059484
>>1059467
koa, который не осилят 90% этого треда :)
#345 #1059487
>>1059484
В чем принципиальное отличие? Почему я должен хотеть эту штуку?
#346 #1059496
>>1059487

> В чем принципиальное отличие?


ШАЙНИ НЬЮ.
#347 #1059572
>>1059467
Тут ещё Фастифай подъехал, ЖСОН-ориентированный. Хеллоу-ворлдами в три раза быстрей кидается, чем Экспресс.
https://thenewstack.io/introducing-fastify-speedy-node-js-web-framework/
#348 #1059575
Нормальный полностью функциональный на промисах/стримах/чистых функциях серверный фреймворк, без костылей вроде async-await еще не придумали?
7 Кб, 233x208
#349 #1059621
Почему this в var1 указывает на window?
#350 #1059624
>>1059621
this за пределами function указывает куда угодно - стандарт не регламентирует. В браузерах это window.
#351 #1059627
А у меня 21 репутация на стаковерфлоу по тэгу javascript ^^
#352 #1059631
>>1059627
А на отв:iRетыANUSmailEIiPUNCTUMr_M~u какая репа?
#353 #1059636
>>1059631
стак - это стильно модно и молодежно.
#354 #1059639
ебать, антоши, что-то я никак тему промисов не раскурю(
#355 #1059723
>>1059627
а я в топ-400 на кодварсах
#356 #1059792
Как через node.js получить на сервере ID нажатой кнопки? Да и возможно ли вообще такое?
#357 #1059857
>>1059200

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


И в чём смысл решения этих ебанутых задач? Да ещё и тратить на них целый день. Я помню как первым языком решил дрочить питон и там тоже были ебанутые задачки, а потом в книге дошёл до реальных задач которые не имели нихуя общего с теми говнозадачками про подсчёты анусов и прочей еболы.
#358 #1059870
>>1059857
Канторовские задачи максимально приближены к боевым условиям.
#359 #1059933
>>1059792

>Да и возможно ли вообще такое


Без помощи фронта нет, ни нодой ни чем другим на беке.

>Как через node.js получить на сервере ID нажатой кнопки


Смотри по обстановке, если сабмитишь форму по клику на кнопку, можешь ее id записывать в поле hidden перед сабмитом. Если просто кнопка, то навешивай обработчик события клика, посылай ajax запрос.
#360 #1059966
this это своего рода self?
#361 #1059968
>>1059966
Можно поинтересоваться? Почему ответ на этот вопрос не ищешь в документации?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this
#362 #1060017
кто из отцов жс хочет нормально поебаться с одной задачкой?
#363 #1060018
>>1060017
Сук, а сразу задачу описать не судьба?
#364 #1060020
>>1060018
написать функцию, которая возвращает строку 'Hello, world!' не используя в коде символы: h e l o w r d x
#365 #1060025
>>1060020
Унылая хуйня с вытаскиванием символов из undefined и прочего говна через [].
#366 #1060040
>>1060020

>не используя в коде символы: h e l o w r d x


() => "\u0048\u0065\u006c\u006c\u006f\u002c\u0020\u0077\u006f\u0072\u006c\u0064\u0021"
#367 #1060041
Котаны, рассчитайте сложность изучения ангуляр/реакт от сложности изучения нативного жс по кантору, если взять его за 100%
#368 #1060042
>>1060040
мм, да, я всрал условие, этот способ тоже забанен должен быть, идея там эта >>1060025
#369 #1060046
Как достучатся до отдельного элемента массива ListE.
На 2 и 3 пикчах почему то две ссылки не работают, хотя должны как исправить?
#370 #1060048
>>1060046
Еще добавлю.
Я хочу через метод PUT обновить нужный элемент в массиве но он нихрена не может достучатся.

Или наверно нужно массив ListE отдельно чтобы был?
#371 #1060077
Что посоветуете для асинхронного рендеринга (ajax-call -> render)?
#372 #1060085
>>1060041
Реакт прост как нечего-делать. Ангуляр — энтерпрайзный монстр, естественно посложнее.
#373 #1060195
Репост из /web/

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

Вроде бы всё работает, но в сравнении с http://online-timer.ru/ и таймером на моём телефоне наблюдается рассинхрон. Каждые минуты 2 увеличивают отставание моего таймера где-то на секунду. С чем это связано? Где косяк? Если вместо 1000 поставить 999 на интервал, то отставание начнется позже и будет более медленным, но тем не менее будет.

Я правильно понимаю, что дело в том, что коду тоже нужно какое-то время на выполнение и из-за этого копятся сдвиги на 1-2 мс? И если нужна нормальная точность, то нужно какой-то хак придумать, который, допустим, раз в минуту будет проверять сколько времени прошло с момента запуска таймера, сколько времени прошло по мнению таймера и фиксить.
#374 #1060198
>>1052010 (OP)
Двач, как же я заебался, где можно найти годную инфу по докеру и node.js? Везде, блеать даже в официальной документации node.js и даже в ёбаной официальной документации докера (где примеры на Python) есть пример только с запуском ОДНОГО контейнера, да как так то, а? Как так?
Сама идеология говорит о том, что нужно запускать много контейнеров, чтобы было ништяково, а они в оффициальных гайдах запускают по одному контейнеру и нигде нет инфы как правильно запустить несколько докеров и связать их между собой, чтобы было ништяково, отсюда реквест, братики, пожалуйста, скиньте мб уже какие-то примеры реализованых приложений на гитхабе с node.js+express+mongo (или любым другим стеком), где будет показано как нужно написать своё приложение, чтобы запустить его в докере с НЕСКОЛЬКИМИ контейнерами. Или видео с гайдом или текст с гайдом, а то я в полнейшем замешательстве, один контейнер запустить могу, с базой данных на втором, а что делать дальше с ним - непонятно. Как например доппилить авторизацию на другом контейнере или какую-то ещё фичу, типу API.
#375 #1060206
>>1058356

релейт https://stackoverflow.com/a/939412/2337281

можно так и так, потому что спека языка это не запрещает.

но первый вариант как у кантора норм, так как он четко показывает, что там будет возвращен результат, а не инстанция
#376 #1060207
>>1060206

>но первый вариант как у кантора норм



*второй
#377 #1060213
>>1060198
Проще говоря, как создавать новые сервисы и подключаться к уже существующим? Просто писать в приложуху и вызывать из папок, добавляя строки в Dockerfile или писать много разных приложух со своими package.json, хостить их в докер контейнерах по отдельности, а потом заставить как-то взаимодействовать, если да, то как?
6 Кб, 513x104
#378 #1060270
Выбираем вместе второй язык для глубокого изучения.
Присвоил коэффициент по шкале от 1 до 5 в трех категориях.
Под новизной понимается то что я не просто выучу JS-2, а какие-то новые парадигмы, как статическая типизация, полноценный ООП. Синтаксис напротив хотелось бы JS-подобный хотя питоньи отступы выглядят хорошо. Востребованность на основе анализа вакансий в моем ДС-4.
Все ли правильно сделал?
#379 #1060272
>>1060270
Учи либо си, либо хаскель.
#380 #1060273
>>1060272
И что я с ними на сервере буду делать?
#381 #1060275
>>1060270
Руби, питон, пхп — ничего нового после js, наоборот, меньше концепций (более императивные языки). Никаких новых парадигм, типизации, саморазвития.

Для развития глянь F#, Haskell, хотя можешь начать и с C#
#382 #1060276
>>1060270
Жабу учи, если ещё даже со статической типизацией и нормальным ООП не сталкивался.
#383 #1060277
>>1060273
Ты уж определись, хочешь ты развития или инструмент на продажу. Если второе, учи пхп, вакансий тьма.
#384 #1060279
Сап, вкатываюсь в JS. Есть отпуск и много свободного времени. Сколько понадобится времени чтобы изучить до уровня джуна с нуля, если я весь отпуск не буду выходить из квартиры и только и делать что учить JS? Я это буду делать по шапке.
#385 #1060281
>>1060277
Ну хотелось бы и то и то. Но если прям выбирать между сидеть без работы и быть макакой то второе.
>>1060275
А что в шарпе кроме ООП и статики? В руби вот насколько я знаю есть концепция что все является выражением, как в лиспе, там можно ифы присваивать, а в жс нельзя - круто, нет?
#386 #1060283
>>1060281
В жсе для этого есть тернарный оператор.
#387 #1060285
>>1060283
Но внутри ? нельзя вставлять стейтменты, например ретурн, а внутри ифов можно. Понятно что переписать по-другому можно всегда.
#388 #1060286
>>1060285
Ну ты уж определись, либо все есть выражение, и ты за чистоту, либо ты согласен на чуть-более удобный синтаксис, но по прежнему не против того, чтобы функция по вычислению процента по кредиту вызывала коллекторов.
#389 #1060292
>>1060281

> все является выражением


Да, это очень интересная фича, странно как она забрела в руби.
Но в любом случае так можно писать и JS, нужны для этого только тернарный оператор и функции. То, что остальные конструкции языка — стейтменты — не имеет значения, потому как они не нужны при написании в фп стиле.
11 Кб, 458x131
#390 #1060296
#391 #1060301
>>1060292

>нужны для этого только тернарный оператор и функции


А как перегнать в экспрешн такое например?
const f = x => {
if(x) {throw 'error'} else {return 1}
}
такое не катит
const f = x => x?(_=>throw 'error')():1
#392 #1060302
А все, вот так работает. Да, клево
const f = x => x?(_=>{throw 'error'})():1
#393 #1060308
>>1060301
При большой необходимости можно и так, но по хорошему как я сказал — не нужны, как и остальные statements с сайд эффектами.
#394 #1060319
Посоны, а бабель-то в 2017 году еще нужен?
#395 #1060325
>>1060319
для JSX, IE6 и прочих выкрутасов и если не использовать Typescript.

Просто писать на ES2015-2016 можно и нативно.
#396 #1060326
>>1060325
Блять, совсем про jsx забыл
#397 #1060375
Двочик, у меня есть вопрос про такую штуку как объект переменных LexicalEnvironment. Читаю сайтик лерн джаваскрипт.

Сначала они говорят: "В конце выполнения функции объект с переменными обычно выбрасывается и память очищается. ... Через некоторое время мы рассмотрим более сложные ситуации, при которых объект с переменными сохраняется и после завершения функции."

От чего именно это зависит - объект пропадет или останется?

Алсо, такой код:

function makeCounter() {
var currentCount = 1;

return function() {
return currentCount++;
};
}

var counter = makeCounter(); // [[Scope]] -> {currentCount: 1}

alert( counter() ); // 1, [[Scope]] -> {currentCount: 1}
alert( counter() ); // 2, [[Scope]] -> {currentCount: 2}
alert( counter() ); // 3, [[Scope]] -> {currentCount: 3}
alert( counter2() ); // 1, счётчики независимы

И объясняют происходящее: "В примере выше было создано несколько счётчиков. Они независимы, потому что при каждом запуске makeCounter создаётся свой объект переменных LexicalEnvironment, со своим свойством currentCount, на который новый счётчик получит ссылку [[Scope]]."

Вопрос: почему после каждого вызова объект не исчез, а продолжил существовать так что мы могли каждый раз увеличивать переменную на один?
#398 #1060393
>>1060375
Функция makeCounter создает локальную переменную, а потом создает и возвращает функцию, которая смотрит на эту переменную и может ее модифицировать.

В обычной ситуации, локальные переменные сгорают после завершения функции. Но в данном случае объявляется другая функция и завязывается на нее. Это называется замыканием. В итоге переменная count будет жить столько, сколько живет функция ее замкнувшая.

Соответственно каждый раз вызывая makeCounter, создается новая функция с новой переменной внутри.
#399 #1060414
>>1060375

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


1. ты написал в коде что-то вроде
function hitler() {
var x=1
return x
}
2. под капотом интерпретатора, незаметно для тебя создался невидимый объект lexical environment. его нельзя получить в коде, но он существует. представь что это что-то вроде
hitler.lexicalEnvironment
в этот объект записалось два свойства {x:1, [[scope]]:window} // или другая функция внутри которой создан гитлер
3. если ты про просто запустишь функцию hitler() то очевидно что после отработки ее lexicalEnvironment больше нахрен не нужен и интерпретатор его затирает, так как его никто не использует. но если внутрь гитлера добавить другую функцию, которая обращается к иксу
function hitler() {
var x=1
return function() { return x+1 }
}
то станет очевидно что этот объект надо сохранять, так как он используется. причем для каждой отдельно отработавшей функции будет создаваться и храниться отдельный объект с независимыми значениями икса.
это сложная тема, посоветовал бы почитать спецификацию, но ты ж не будешь.
#400 #1060416
>>1060393
Ясноньо, спасибо. Если хотите что-то добавить, говорите, я прочитаю.
#401 #1060420
>>1060414
Может и буду, если руки дойдут. Спасибо за объяснение.
#402 #1060444
>>1060270
Elixir/Phoenix
#403 #1060451
>>1060444
Двачую. Это реально, что в эликсире сборка мусора происходит без stop the world?
#404 #1060452
>>1060451
только вчера по нему книгу открыл, боюсь пиздануть лишнего. но, вроде как да.
гугли за девять девяток у эрланга, на котором базируется эликсир.
#405 #1060459
Что хочется:
Пишу "create-foo-app component-x", прописываю в нем компонент с использованием современного синтаксиса и scss, запускаю через npm start. Создаю второй компонент с помощью "create-foo-app y-component", в нем импортирую component-x со всеми стилями и радуюсь.

Что есть:
Пишу "create-react-app component-x", создаю компонент, запускаю через npm start. Создаю второй компонент, но не радуюсь, потому что без eject не удастся подключить стили из component-x, да и поддержки es2017 по умолчанию нет — приходится прописывать пути в конфиге вебпака.

С nwb такая же проблема.

Есть ли какой-нибудь тулкит, который позволяет удобно создавать независимые компоненты?
11 Кб, 480x360
#406 #1060514
Простите за глупый вопрос, но ничего не гуглится. Как сделать partial application функции get лодаша, чтобы конечная функция при вызове вставляла аргумент в середину. На примере:
без partial application
_.get(obj, ['huy', 'id'])

c partial application должно быть так (huy динамичный)
_.get(obj, [ЧТОБЫ ВОТ СЮДА СУКА, 'id'])
#407 #1060547
>>1060514
Никак ты частично не применишь массив.
hui => _.get(obj, [hui, "id"])
#408 #1060558
Поясните за TypeScript. Почему все на него так надрачивают, но за всю свою карьеру в 8 лет, я так и не смог найти никого кто на нём писал бы что-то больше чем хеллоу ворлд? Им реально кто-то пользуется или это легенда типа Хаскеля?
#409 #1060600
>>1060514
const partial => arg => (obj, arr) => _.get(obj, arg.concat(arr))

Но я не очень понял, что ты там городишь, объясни лучше
#410 #1060610
>>1060558

>Им реально кто-то пользуется


Нет, MS просто деньги вникуда спускает чтобы на двачике холивары были.

>карьеру в 8 лет


>не задуматься о типизации в JS

#411 #1060612
>>1060610
Что ты имеешь ввиду под

>не задуматься о типизации в JS


Мне например это вообще никак не мешает. И не мешало никогда. Я даже специально не могу придумать пример когда это чему-то помешает.
#412 #1060614
>>1060275

>питон


>Никаких новых парадигм, типизации, саморазвития


Лол, async for, async yield, async nebo, async allah
#413 #1060619
>>1060612
Забей, никто им не пользуется, просто студенческая поделка какого-то Хайлсберга, который ничего в программировании не понимает.
#414 #1060659
>>1060558
Конечно пользуемся. Простой JS только в совсем старых проектах.
#415 #1060665
>>1060619

>мой дед писал и ты пиши.


>>1060659
Так профит то в чём?
#416 #1060714
>>1060665

>>мой дед писал и ты пиши.


Ну видимо ты и есть дед либо переигрывающая php-макака, раз не понимаешь профита статической типизации.
#417 #1060716
>>1060714

>Поясните за TypeScript. Почему все его звалят


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


>Поясните тогда за типизацию


>Забей, никто им не пользуется, просто студенческая поделка какого-то Хайлсберга,


>Так профит то в чём?


>Ну видимо ты и есть дед либо переигрывающая php-макака


А есть кто-нибудь не токсичный и агрессивный?
#418 #1060718
Котаны, если я все же осилю всего кантора, и потом реакт, я буду успешным? Ну или хотя бы средне-успешным? 28 лет.
А php после всей этой фигни с js "за неделю" осилю?
#419 #1060719
>>1060716

>А есть кто-нибудь не токсичный и агрессивный?


Да, твоя мамка.
#420 #1060721
>>1060718
после дайва инто жс ты уже не захочешь пердолиться в некропшп
#421 #1060726
>>1060721

> не захочешь пердолиться в некропшп

#422 #1060727
>>1060726

>Система типов


>Утиная

#423 #1060728
>>1052010 (OP)
Привет.
От делать нечего пишу парсер flac файлов на ноде. Ломаю голову над асинхронщиной. Есть код: https://jsfiddle.net/g6gjdxqj/
Задача пока простая - чекаем файл на то, является ли файл флаком: по спекам в начале файла закодированы символы 'fLaC'. Но в ноде чтение файлов и прочие операции синхронные. Вопрос, как мне получить из промиса или асинхронной функции результат так, чтобы до его получения программа не прерывалась? Ну и вообще сохранить его для последующего использования...
#424 #1060729
>>1060728

>парсер flac файлов на ноде.


А завтра ты в жопу давать будешь?
#425 #1060730
>>1060729
Как будто что-то плохое
#426 #1060737
>>1060279
Полгода-год. Языки разметки еще не забудь.
#427 #1060739
>>1060737
Так долго? Это просто JS или JS + фрэймворки?

>Языки разметки еще не забудь.


Я их знаю чуток.
#428 #1060744
>>1060739
Долго? Ты хотел сказать "быстро" может все же?
Это просто базовый жс до состояния, когда какой-нибудь фреймворк просто берешь и юзаешь.
#429 #1060748
>>1060744
Ладно, попытаюсь посильнее налегать на материалы из шапки.
#430 #1060750
>>1060744
Спасибо за ответы анон.
#431 #1060758
>>1060665
Когда пишешь js, можешь быть увереным в отсутствии случайных ошибок только покрыв все тестами на 100%.
(Для наглядности взгляни на повальный фанатизм к тестированию в руби сообществе.)

В TS такие обишки просто не совершаешь, потому что IDE тебе все подчеркивает красным. Сильно развязывает руки, позволяет все редактировать, рефакторить настолько глубоко, насколько хочется. Ускоряет прототипирование, скорость разработки ну и как там модно говорить про модные языки.

Как легкий бонус — вплывающая документация, автодополнение и прочие прелести IDE.
#432 #1060760
>>1060758
Круто. Спасибо за развёрнутый ответ анон.
#433 #1060762
>>1060758
При этом иногда система типов бьет тебе по ебалу. Еще часто тайпингсы для сторонних либ кривые или их вообще нет. Долгая компиляция вместо ф5 прилагается.
#434 #1060773
Сап, в JS Можно обернуть if в другой if?
Выполняю пример из Eloquent который немного усложнил и сразу понят что что-то не так.
https://jsfiddle.net/e0k6y8un/
#435 #1060783
>>1060773
имя переменной
#436 #1060787
>>1060783
Чувствую себя тупым. Спасибо анон.
https://jsfiddle.net/e0k6y8un/3/
23 Кб, 767x376
#437 #1060792
>>1060787
этого не случилось бы если бы ты не писал код в этой срани
#438 #1060795
>>1060792
В этой срани я просто поделился. Как и написано в оп посте. А так я пишу в IDE.
#439 #1060835
>>1060762

>система типов бьет тебе по ебалу


Для этого есть any

> тайпингсы для сторонних либ кривые или их вообще нет


Если нет в @typings/libaName ну шо поделать, значит твоей библиотекой пользуется полтора замлекопа.

>Долгая компиляция вместо ф5


webpack --watch
#440 #1060873
Что лучше на будущее - вешать на кнопку onclick или addEventListener?
#441 #1060884
>>1060873
Сколько одинаковых онкликов на одном элементе ты можешь сделать? А динамически?
#442 #1060904
А зачем нужен koa, может кто по хардкору пояснить? А то я думал свой сервер типа как человек написать, не на голой ноде, а тут от того самого Express'а (не пользовался).
Скачал, потыкал — а там ж нихуя нет, кроме обёртки над запуском http.server и перетаскиванием данных из request в context, абсолютно.
#443 #1060925
Объясните плиз что делает этот чувак.

Было бы неверно предположить, что цепочки областей видимости отличаются для пяти функций в массиве result. Вместо этого каждое обновление переменной i обновляет область видимости, которую делят между собой все пять анонимных функций. Это можно исправить путём добавления нового контекста исполнения, в котором копия значения i поступит извне как параметр функции.

И потом код:

var result = [];

for (var i = 0; i < 5; i++) {
result = >(function inner(x) {
// additional enclosing context
return function() {
console.log(x);
}
>})(i);
}

result[0](); // 0, expected 0
result[1](); // 1, expected 1
result[2](); // 2, expected 2
result[3](); // 3, expected 3
result[4](); // 4, expected 4

Собсна вопрос: что это за скобочки и почему они решили проблему, если без них было result[0](); // 5, expected 0
result[1](); // 5, expected 1
result[2](); // 5, expected 2
result[3](); // 5, expected 3
result[4](); // 5, expected 4

Скобочки выделил зеленым.
#443 #1060925
Объясните плиз что делает этот чувак.

Было бы неверно предположить, что цепочки областей видимости отличаются для пяти функций в массиве result. Вместо этого каждое обновление переменной i обновляет область видимости, которую делят между собой все пять анонимных функций. Это можно исправить путём добавления нового контекста исполнения, в котором копия значения i поступит извне как параметр функции.

И потом код:

var result = [];

for (var i = 0; i < 5; i++) {
result = >(function inner(x) {
// additional enclosing context
return function() {
console.log(x);
}
>})(i);
}

result[0](); // 0, expected 0
result[1](); // 1, expected 1
result[2](); // 2, expected 2
result[3](); // 3, expected 3
result[4](); // 4, expected 4

Собсна вопрос: что это за скобочки и почему они решили проблему, если без них было result[0](); // 5, expected 0
result[1](); // 5, expected 1
result[2](); // 5, expected 2
result[3](); // 5, expected 3
result[4](); // 5, expected 4

Скобочки выделил зеленым.
#444 #1060926
>>1060925
Они не выделись. Ну вы понели?
Это я отсюда взял https://medium.com/@sshambir/осваиваем-замыкания-в-javascript-5b83267ef7d1
#445 #1060929
>>1060835

>webpack --watch


Который не ускоряет компиляцию, а лишь чаще разогревает пекарню. В больших проектах что обновление через watch, что ручной рестарт — время теряется.

Flow в этом плане получше. Анализ кода идет независимо от сборки проекта. Бабель просто вырезает типы и все происходит чуть быстрее.
67 Кб, 718x936
#446 #1060955
>>1060926
Я сделал скриншот.
#447 #1060980
>>1060925
Гугли self execution function. Скобочки эти позволяют вызвать анонимную функцию сразу же после её объявления.
#448 #1060981
>>1060980
executing
fix
#449 #1060982
>>1060980
Ушел гуглить, спасибо!
112 Кб, 900x900
#450 #1061031
>>1052010 (OP)
Решили внедрить Webpack в легаси проект - и сразу же начались проблемы с интеграцией существующего кодбейза. Проблема в том, что нынешний JS код представляет собой:
- Россыпь древних плагинов, местами использующих функции, которые уже давно убрали из актуальной версии jQuery. Интеграция плагинов в единое целое была реализована с помощью expose-loader, что делать с вызовом удаленных методов - понятия не имею. Есть ли какие-то заглушки, возвращающие старый API?
- Один здоровенный main.js и кучу инлайнового говна, ссылающегося на глобалки из этого самого скрипта. Вот что тут делать - совершенно не знаю, можно ли заставить Webpack просто минифицировать этот файл и сконкатенировать с bundle.js, без инкапсуляции?
Буду благодарен за любые советы.
#451 #1061065
>>1061031
Зачем тебе вебпак для этого? Напиши паур тасков для галпа
#452 #1061094
Я тут глянул в ТС, короче если вы знаете ЖС то считайте и ТС тоже знаете. Разница только в том что можно дописывать типы данных к параметрам функций и всякую ненужную парашу типа приват/паблик. Нахуй для этого отдельный "язык" нужен со всякой ебаторией с перегонкой бабелем я хз, почему не завезти чото типа 'use super strict'
#453 #1061095
>>1061094
Это не для школоты сделано, а для серьезных дядей, которые жирнософт пишут
#454 #1061134
>>1060980
Устоявшееся название для этого IIFE — Immediately Invoked Function Expression
#455 #1061135
>>1061094
Действительно. Зачем все эти строгие и надежные языки, давайте говнокодить на js и python, жить в дебаггере и бояться изменять код. Что однажды написано изменению не поддлежит.
#456 #1061165
>>1061135
для этого и пишут тесты, хотя кому я это говорю :)
#457 #1061166
>>1061094
Двачую, придумали какой-то ссаный костыль для лечения проблемы которую сами же себе и придумали.
>>1061135
Если у тебя опыта в программировании меньше 10 часов, то ты и HTML испугаешься поменять.
#458 #1061167
>>1052010 (OP)
Ребзя, вопрос, как лучше всего найти совпадающие строки или словосочетания на javascript?
Ну например:
var text_a = "Lorem ipsum dolor sit amet";
var text_b = "Dolor lorem ipsum amet";
Результат: ["lorem ipsum", "dolor", "amet"]
Неужели нет готового алгоритма для такого задания?
#459 #1061172
>>1061167
сравнивая посимвольно каждое словосочетание со строкой.
#460 #1061190
>>1061167
у тебя условие непонятное, что с кейс сенситив?
если считается что "lorem ipsum" входит в обе строки то почему просто "lorem" не входит?
28 Кб, 1896x211
#461 #1061196
ну кроч если все кейс инсенситив то тип того
126 Кб, 635x948
#462 #1061221
Что он имеет в виду под pass? И вообще, зачем он передает глобальный объект как параметр, что за хрень? Если он хочет что бы там было хоть что-нибудь, что потом можно заменить на условное А в минификаторе, то мочему бы и не написать А?
67 Кб, 960x640
#463 #1061222
x + (y × width) Как это понять?
#464 #1061228
>>1061221

>pass


передать ссылку на глобальный объект
он это делает чтобы внутри модуля записать в шиндош единственную переменную, в которой уже лежат все функции его библы. это и происходит на десятой строчке
например в джквери это переменная $ и когда ты пишешь
$('#id').. //чото там
ты фактически пишешь
window.$... //чото там
56 Кб, 627x328
#465 #1061230
>>1061228
Тааак, понял. А вот так тоже работает, в чем отличие?
#466 #1061231
>>1061230
В смысле, что мешает написать window.$ = blalbalba без параметра? Ведь функция просто полезет искать такое имя на уровень выше в сам шиндош и найдет его?
#467 #1061232
>>1061222
Ебать ты гуманитарий.
Двумерный массив заменили на одномерный (все "строки" двумерного выстроили в одну большую "строку"). Для того чтобы взять X элемент в Y строке тебе нужно добраться до Y строки (Y WIDTH) и в ней взять X элемент (+ X). Итого (Y WIDTH) + X.
#469 #1061236
>>1061230
чисто для минификации. в первом случае будет такое
(function(x){
alert(x)
alert(x)
alert(x)
})(window)
а во втором ты всегда должен писать window
(function(){
alert(window)
alert(window)
alert(window)
})()
ну и еще доступ к локальным переменным быстрее чем лезть в замыкание
#470 #1061241
>>1061236
Вот теперь совсем все понял, спасибо анончик!
#471 #1061250
>>1061232
Большое человеческое СПАСИБО!
#472 #1061254
Почему сравнение с нулем быстрее, чем с любым другим числом?
#473 #1061255
>>1061254
Даже в машкоде, прикинь!
#474 #1061265
>>1061255
Так почему
#475 #1061309
>>1060929
Хз, с ssd не замечаю проблем.
#476 #1061310
>>1061094

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


Генерики, енумы, декораторы и прочие ништяки мы тактично опустим.
#477 #1061335
Не совсем по теме.
Прошу совет насчёт правильной траты мыслетоплива/правильного обучения.
Работаю 5/2 по 9 часов. Работа физическая. После работы и после душа, туалета, кухни сажусь учить js. Ложусь в 9:00, просыпаюсь в 5:00, чтобы основное время дома потратить на обучение свежей головой. Во время работы иногда появляется свободное время и я пытаюсь тратить эти крупицы не напрасно. Сконцентрироваться сложно. Попытки не очень удачный.
В редкие дни весь день сижу в месте с тв с непродолжительными подергиваниями. Телевизор регулярно захватывает внимание, что усиливает неспособность к обучению.
Эти жалкие попытки почитать с телефона на работе с постоянными отвлечениями, кажется, влияют на моё состояние дома.
Замечаю что в дни когда работаю как обычно, со средней загруженностью, то есть не устаю физически и нет времени сидеть без дела, занимаюсь дома с максимальной эффективностью.
Вопрос: стоит ли вообще пытаться не тратить впустую время на работе? Намного ли меньше растрачиваются силы при сёрфинге и при чтении учебников, с постоянными отвлечениями? Чем вообще лучше заняться в свободное время? Ничего не делать?
#478 #1061338
>>1061335
Иди сторожем, дежурным электриком в поликлинику, курьером (хуже), посменная работа (очень плохо), тяжелая физ работа плохо сказывается на обучении
#479 #1061340
>>1061338
Тяжелая работа приводит к тому, что после трудового дня организм вбрасывает в кровь уйму эндорфинов, чтобы уменьшить мышечную боль и мозг засыпает вместе с ним.
#480 #1061343
>>1061340
Еще добавлю, чем плоха посменная работа - это то, что для эффективного обучения нужен регулярный полноценный сон
#481 #1061360
>>1061338
Но нагрузки стали нормой и я не чувствую усталости после рабочего дня. Сторожем пошёл бы, но разве берут туда, кого-нибудь младше сорока? И могу ли я на этих работка получать хотя бы те 25к, что я получаю?700к город
Работу специально выбирал чтобы забывать о ней, как окончится рабочий день. Этот пункт выполнен. Думал о подработках, на выходных грузить мебель про переездах, но тогда бы я совсем разума лишился бы
137 Кб, 958x875
#482 #1061364
>>1052010 (OP)

нода стала как пых, что радует
#483 #1061365
>>1061364
Типичное непонимание как пользоваться async/await. Эх.
#484 #1061366
>>1061365

как там в 2013? они для этого и были сделаны, что бы ты их мог использовать в любом месте, спека это не ограничевает
#485 #1061367
>>1061360

> 25к


Студни занимающиеся по 16 часов в день и жрущие один пакет доширака в месяц обгонят тебя за 1 год в несколько раз

>я не чувствую усталости после рабочего дня


Тогда вкатывайся пока молодой, это быстро пройдет.
#486 #1061368
>>1061366
Мань, я говорю тебе о том, что ты совершаешь типичную ошибку и неправильно пользуешься async/await в js.
Почитай: http://2ality.com/2016/10/async-function-tips.html
1,8 Мб, webm, 640x360, 0:07
#487 #1061370
>>1061335

>Телевизор регулярно захватывает внимание

#488 #1061372
>>1061368

ну ты и мудило. по твоей же ссылке:

>Another option is an Immediately Invoked Async Arrow Function:


>(async () => {


> console.log(await asyncFunction());


>})();

#489 #1061373
>>1061372
Твоя проблема в том, что ты делаешь два независимых запроса в бд синхронно.
Вместо
r1 = await db.q1()
r2 = await db.q2()
return {r1, r2}
надо делать
r1 = db.q1()
r2 = db.q2()
return {r1: await r1, r2: await r2}
или через Promise.all
#490 #1061375
>>1061367
Не верю что кто-то может заниматься по 16 часов в день.
Думаю аноны из этого треда занимаются по часов пять
#491 #1061377
Бля заебался. Начинающий кодер и пытаюсь сделать портфолио. Решил сделать небольшой ИМ. Нашел скрипт simpleCart, разобрался как оно работает, сделал свой велосипед, но все не то. Там все на дата атрибутах. Цены и т.д. поменял в консоли его на любое число с ним и полетел заказ. Может кто объяснить как это делается по правильному. Я понимаю что там сервер нужен, но хоть принцип. А то кажется что хуйней страдаю.
#492 #1061378
>>1061375
Аноны из этого итт треда уже свое отзанимались. Теперь рубят свои 300кк/час.
1 Кб, 261x40
#493 #1061379
Обожаю жабоскрипт
#494 #1061381
>>1061379
Очердное необразованное мудло, которое не знает как работает компьютер. Читай про IEEE754
#495 #1061382
>>1061379
При чем тут жабоскрипт? Любой язык тебе выдаст неточный результат при вычислении с десятичными дробями.
#496 #1061384
>>1061382
На пыхе такой хуйни нет, там на уровне языка всё сделано
#498 #1061386
Нахуя нужен class expression?
14 Кб, 799x441
#499 #1061387
>>1061385
поминуты на унижение пыхоребенка его собственной спекой
http://php.net/manual/en/language.types.float.php
#500 #1061389
>>1061385
Внутреннее представление всё равно не точное.
#501 #1061390
>>1061385
>>1061384
Фантазер ебучий. http://php.net/manual/en/language.types.float.php
В пыхе у тебя все зависит от системы, то есть ты нихуя не знаешь как оно сработает, если не влепишь проверку.
В жсе в стандарте прописано: 64bit iee754
https://www.ecma-international.org/ecma-262/5.1/#sec-4.3.19
#503 #1061392
>>1061391
>>1061390
>>1061387
Ну ладно, че вы сразу так :(
#504 #1061395
>>1061386
Посоны?
#505 #1061401
>>1061395
Можно переопределять класс.
94 Кб, 378x480
#508 #1061410
Перекот мне запилил блеять.
190 Кб, 500x684
#509 #1061425
>>1061373

да, не ок, не заметил даже, конечно из БД лучше параллельно забрать результаты, завтра буду копать в сторону await Promise.all, добра
#510 #1061442
перекот >>1061439 (OP)
перекот >>1061439 (OP)
перекот >>1061439 (OP)
перекот >>1061439 (OP)
перекот >>1061439 (OP)
#511 #1061447
Шпасите! Я больше не могу быть фронтером.
#512 #1061465
>>1060714
В PHP как раз есть интерфейсы, тайп-хинтинг (в 7-й версии ещё и для скалярных типов), нормальные классы со спецификаторами доступа. PHP таки умеет хоть и в рантайме, но падать с читабельной ошибкой вроде "Ожидаю класс Foo, получил null", что позволяет быстрее обнаруживать баги. А если статический анализатор для JS что-нибудь пропустит, то JS, в силу его динамичности, не упадёт сразу, а пролезет ещё через кучу строк и упадёт с невнятной ошибкой. Я сам пользуюсь Flow, всем советую, а вот TypeScript мне когда-то показался бесполезным - он отлавливал только самые очевидные ошибки.
#513 #1061568
>>1061165
Легкая пометка ": string" избавит от необходимости в 95% тестов.
Хотя это не актуально для тех, кому платят за строки кода и 100%-ое покрытие.
#514 #1061587
Анон, create-react-app под винды вообще ставится или нет? Не могу разобраться.
#515 #1063233
>>1052955
Гугли ты еблашик мой тупой.
Buefy пример
#516 #1063245
Господа котоны, мотивации мне плиз, хочу стори "сделал кантора, выучил реакт, 300к/сек"
#517 #1063288
Есть возможность сначала выучить JS, а потом html и css? Хочу в идеале в бек на ноде вкатиться, но пугает что надо реально много знать в html и css (фреймворки, адаптивная верстка, кроссбраузерная, кроссплатформенная и т.д)? Как бы не проблема выучить все это, просто кодить мне нравится, а верстка отбивает все желание сидеть за компом и писать что-то.
#518 #1063571
>>1052010 (OP)
Братики, как вы думаете, стоит ли припиздеть о своих умениях (когда ты джун), чтобы устроится на работу (на джуна)? Вот требуются какие-то ебанутые технологии, я посомтрел видосы, вроде всё понятно, но опыта работы с нгими нет. СТоит ли сказать что я это всё умею и имею опыт?
#519 #1063582
>>1052010 (OP)
Пацаны, что можно пиздатого сделать за 1-2 дня, чтобы было не стыдно на гитхаб залить?
Моя специализация: бэк на Node.JS (умею в вебсокеты, парсеры, лямбда функции) и фронт на HTML+CSS+Jquery/React.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 4 октября 2017 года.

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

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