Вы видите копию треда, сохраненную 24 мая 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Часто задаваемые вопросы:
https://github.com/xxxwww/js-thread/blob/master/Wiki/faq.md
Список материалов для изучения:
https://github.com/xxxwww/js-thread/blob/master/Wiki/learn.md
Список инструментов и направления JS-разработки:
https://github.com/xxxwww/js-thread/blob/master/Wiki/tools.md
Конфа /pr/ в Slack:
https://invite-me-to-2chpr.herokuapp.com/
JS-конфа в телеграме:
https://telegram.me/jsthread
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
Был у меня друг один. Всё на JavaScript писал. И клиента и бэкенд и десктоп даже. И базы данных на джаваскрипте делал и игрушки клепал. Говорил удобно, быстро, клёво. Всё работает, всё устраивает.
Ну, потом его в дурку сдали конечно…
Баян
- Что это такое?
- Это современный Javascript и сейчас я научу тебя программировать
- Я же верстальщик
- Ставишь на комп ноду и npm
- Ставишь ...
- Затем ставишь ... и пишешь ... config
- Ставишь ...
- Я попытался вспомнить как верстал свои первые странички
- Это лучший язык программирования, а ты даже не слушаешь
- Дальше webpack, пишешь два конфига
- Один под продакшен, второй под dev
- На dev'e не забываешь поставить webpack.dev.server и настроить ...
- На проде не забудь бить код на чанки, uglify, critical CSS
- Инициализируешь git
Анон, что он говорит в местах где у меня стоят многоточния?
>- Что это такое?
>- Это современный Javascript и сейчас я научу тебя программировать
>- Я же верстальщик
>- Ставишь на комп ноду и npm
>- Ставишь yarn и ...
>- Затем ставишь babel и пишешь babel config
>- Ставишь eslint и экстендишь конфиг от ...
>- Я попытался вспомнить как верстал свои первые странички
>- Это лучший язык программирования, а ты даже не слушаешь
>- Дальше webpack, пишешь два конфига
>- Один под продакшен, второй под dev
>- На dev'e не забываешь поставить webpack.dev.server и настроить hot reload
>- На проде не забудь бить код на чанки, uglify, critical CSS
>- Инициализируешь git
Только два места непонятно.
https://github.com/C2FO/fast-csv
var ws= fs.createWriteStream('PlayerStats.csv');
csv.write ([
["Name","Team", "Position","Apps"],
[name, team,position,apps]
], {headers:true, delimiter: ';'})
.pipe(ws);
Так создаю и записываю данные в файл. Как мне дописать в уже существующий PlayerStats.csv новые строки вида [name, team,position,apps] (начиная с пустой строки)
У меня выходить только перезаписать существующий файл изменяя уже имеющиеся данные.
Я думаю так и надо, лил. Читаешь все в массивчик, потом пишешь новый файл. Лучшее решение просто.
иммутабельность, все дела)
У меня будет данных на 400 строк, каждая из которых будет добавлять по очереди друг за другом, алсо время от времени эту таблицу будет нужно обновлять и заполнять по новой. В таком случае твой способ выглядит не самым удобным. Хотя информация я принял.
Но не неужели просто добавление новой строки в csv файл так сложно реализовать?
Я вообще не понимаю нахер нужен пакет для записи в csv файл. Ты планируешь использовать там какие-то странные строки с запятыми или кавычками?
Нет, но мне нужно хранить данные в удобном формате с возможностью что-то изменять/дописывать вручную.
Алсо с этими данными нужно будет потом работать и производить мат. расчеты на их основе.
Csv показалось удобным форматом под это дело.
Я к тому что csv файл пишется кодом уровня
print(a); print(','); print(b); print('\n');
Соответственно и дописывается кодом такой же сложности, просто открытием файла в режиме append. Другое дело если тебе в середине что-то менять надо - тогда лучше пакет использовать. Но там же просто: прочитал, засунул в массив, дописал/изменил, сохранил.
Как дела? Что нибудь выучил? Куда нибудь устроился?
>а что должно быть из коробки в библиотеке для вьюх ? какой библиотеки и для чего тебе не нашлось ?
Как для библиотеки для вьюх все есть, но как основы для серьезного проекта, там маловато всего, а точнее нихуя и хуй бы с ним, если бы комьюнити писало что-то полезное, так нет, кинешься, а типовые задачи(например, мне нужна была либа для работы с табличными данными, огромными данными) не решены, и пишешь сам все. Это минус. На ангуляре таких проблем не было. например.
http://stackoverflow.com/questions/26773767/purpose-of-installing-bootstrap-through-npm
я посмотрел package.json файлы для bootstrap и еще одного npm пакета, у них есть аттрибуты: main, style -- пути к стилям и js.
как с помощью gulp скопировать эти main, style в мою public директорию?
или это устарело? везде вебпак советуют. есть для новичков современное руководство?
main, style - т.е. что не прописывать node_modules/bootstrap/dist/bootstrap.css, а что-то вроде:package.main
руководство по организации, а не по вебпак.
Зависит от того на сколько сложен твой js. Если у тебя больше верстка, то галп норм. А так всякие модули-компонентики собирать, обрабатывать уже лучше вебпаком, да. Он потому и называется module bundler, в отличие от галпа, который просто task runner. Ты их вообще при желании можешьмсовместить, лол
После при инициализации редьюсера для конкретного компонента берется готовый набор, подставляются названия и готово.
Взлетит такое?
В слаке жива. В телеграме не очень.
>>972342
Осильте шапку хотя бы. Гальп и вебпак - совершенно разные вещи. Зачастую вебпак запускают через гальп. Их постоянно используют вместе.
Осиль прочитать еще раз мой ответ, умник.
https://pastebin.com/P7GyvrYc
у меня есть список нод
nodes = ["ddd", "aaa",...];
у них есть статус и он проверяется посредством выполнения скрипта
мне нужно получить список всех нод со статусом
я написал в менеджере метод (getNodeStatus()), который дергает скрипт и выполняет функцию переданную в successAction (Executor это моя обертка для выполнения скриптов).
все нормально работает, но я не понимаю как мне вернуть мои статусы
>status => { return status; }
вот сюда они доходят, я выводил их в консоль
но return я так понимаю возвращает их вникуда и на выходе у меня ничего нет
как сделать чтоб по-нормальному было?
А что там было не так?
ставишь на комп ноду и нпм
ставишь ярн
ставишь бабел и пишешь бабелконфиг
ставишь еслинт эхкстендишь конфиг от эирбиэнби и пишешь еслинтконфиг, вешаешь хук на прекоммит
ставишь вебпак и пишешь два конфига один под прод второй под дев, на деве не забываешь поставвить вебпакдевсервер и настроить хатрелоад, на проде не забудь бить код на чанки, углифай, критикал си эс эс
инитишь гит, добавляешь гитигнор
не забудь ярн лок в репу
потом корочи ставишь дев зависимости бабель-кор, бабель-лоадер, бабель-плагин-трансформ-обджект-рест-сприд, бабель-пресет-2015, бабель-пресет-реакт, вебпак, вебпак-дев-сервер, сиэсэс-лоадер, стайл-лоадер, стайл-экст-эйчтиэмэль-вебпак-плагин, лесс или сасс, лесс или сасс лоадер, еслинт, еслинт-конфиг-эирбиэнби, еслинт-плагин-импорт, еслинт-плагин-реакт, экстракт-текст-вебпак-плагин, эйчтиэмэль-вебпак-плагин
потом корочи зависимости материал-юай или реакт-мдл-юай или бутстрап, нормалайзр, реакт, реакт-дом, редакс, реакт-редакс, реакт-роутер, реакт-тэп-эвент-плагин, редакс-тсанк, дабльюашэйтидаблюджи-фетч
для удобства в нпм скрипты алиасы, но вызывай все через ярн потому тчо так круче
короче делаешь папочки там контейнеры компоненты экшены стор миддлверы, редбюсеры еще и утилзы и понеслась короче пиши код твори пили сайт который будет через апи другого сервиса брать определенные данные и выводить их у тебя, строй его.
Вкатываюсь в первую работу с жс и вебом.
На какой стул сесть: ангуляр2+пхп, либо метеор+реакт, либо фронт на первом ангуляр.
По деньгам лучше всего платят во третьей конторе.
По метеору я 0, но тимлид убеждал что ничего не стоит вкатиться в него.
Я бы выбирал либо 1 либо 2 с личным приоритетом на 2.
убейти миня.
Котаны, на чём можно сделать такую карусель? Желательно без jQuery, и не особенно тяжёлую.
https://en.wikipedia.org/wiki/React_(JavaScript_library)
>Initial releaseMarch 2013; 4 years ago
Ты хотел сказать набрал популярность он год назад
и ведь никогда не знаешь, какое говноподелие внезапно взлетит до хайпа.
Старичек. Хайп реакта с 2015. Год - это про хайп вью.
лёрн жаваскрипт рекурсия.
Как блядь ебаная хуйня фибоначчи вычисляется то тут? Всё остальное с рекурсией понятно.
Допустим, я беру fib(16) и получается 987.
Как эта поношенная блядь вычисляет это говно поэтапно?
16-1 + 16 - 2 = 29 +
15-1 + 15 - 2 = 27 и так далее?
или как? Что происходит я не пойму, я сначала подумал что вызов функции просто закольцовывает действие, а не подразумевает собой цифру.
Гандонство ебаное, все задания нормально делал сам, долез до этой выблядской ебалы, сначала хуй понял в чем суть ряда этого ебаного, потом нихуя не мог нормально написать код и в конце концов чувствую себя конченным дегенератом из-за того, что не смог сам решить это говно.
Неужели есть 14-15 летние выблядки для которых с первого раза решать эту поебалу легко? Сначала ведь очень близко написал, но ответы хуелу выдавали, боже.
Есть ли какой-то склад пидорского ума, что ли, чтобы это легко давалось или это просто говняная практика как и всё остальное? Я НЕ ВЕРЮ ЧТОБЫ КТО-ТО СДЕЛАЛ ЭТО ГОВНО СРАЗУ БЛЯДЬ
блядь что за нахуй ? 6 лет учу жс/html/css
eloquent javascript
cunt'ора три книги
секреты ниндзя
все гниги ю донт ноу жс включая ес6
не имею высшего не могу никуда устроится, хиккую.
скоро со съемной хаты погонят
а тут бля сообщения в духе народ я устроился в офис на 300к/сек как добавить класс к элементу на ноджс
Чувак, все дело в рекурсивных гномах.
Они магическим образом вычисляют fib(16-1) и fib(16-2) а потом ты складываешь эти два числа.
А вообще ты правильно их разгадал. Пока никто не видит, эти рекурсивные гномы друг друга в очко пежат. У них это называется tail call, можешь загуглить картинки.
Бро, а ты не думал, что нужно в контору на собеседование сходить, а не сутками над мамкиным борщом сычевать? А?а?А?
мухосрань же, крепостное право совсем недавно отменили. В местных конторах надо либо modX либо WP либо 1С знать
Сколько вообще таких вот подводных нужно знать для хорошей работы ?
var max = 0;
var maxName = "";
for (var name in salaries) {
if (max < salaries[name]) {
max = salaries[name];
maxName = name;
>Метеор
Реакт это заебок, конечно, но вот с этой парашей я бы не связывался. Сейчас работаю с ним, наблюдая паралельно его предсмертные судорги. Могу долго рассказывать, что там плохо, но ограничусь пока простой рекомендацией держаться подальше.
Ну и от себя вопрос - охуенно получилось оседлать реактовский хайп, зп взлетела, вакансий море. Как считаете, можно и дальше дрочить его? С моей колокольни выглядит так, что еще пару лет его ничто не перегонит, но может я зашорен и уже пора потихоньку готовить перекат? И если да, то куда именно? Часто слишу про второй ангуляр и вью, что сильнее укрепит мои позиции на жоп маркете?
upwork же, делай фотку, делай портфолио, пиши какой ты охуенный и бери заказы, js самый лучший язык для фриланса
Думаю что еще пару лет как минимум реакт будет всё ебать, а потом подкатится какой-нибудь React Fiber
В любом случае все самое многообещающее так или иначе использует наработки реакта, даже тот же Вуе (который многие хвалят но я еще не тыкал)
От ангуляра у всех баттхёрт. Второй может вытянет но ощущение что шанс проебан и им надо очень постараться чтобы завоевать доверие снова.
Я лично планирую дальше использовать реакт и потыкать Вуе
>От ангуляра у всех баттхёрт. Второй может вытянет но ощущение что шанс проебан и им надо очень постараться чтобы завоевать доверие снова.
А что там? Что там? Я последние полгода на реакте работаю, пока доволен, но раньше со вторым сталкивался, вроде норм был. Что случилось?
Там еще от первой баттхерт не остыл.
>Angular’s ngFor uses a microsyntax. I’ve never seen another templating language that needs a DSL for for loops.
Кекнул.
>а потом подкатится какой-нибудь React Fiber
так он уже, с 16 версии будет
Ошибок уже нет, только варнинги
http://isfiberreadyyet.com/
пусть свой фреймворк напишет
Бамп.
Мне удалось нагуглить проблему, но смущает ее решение. А именно установка сторонней библиотеки для этого (npm install async).
Честно сказать, немного в шоке, что рядовую задачу нельзя решить встроенными средствами, это вообще нормально?
Вообще у меня были кое-какие догадки запилить это через EventEmitter, но я не написал, просто хотел удостоверится, что тут мне это и посоветуют. Но на stackoverflow не нашел, чтобы кто-то такое предлагал.
Т.е. я учу пхп, джиэс, циэсэс на уровне гостевух и получаю 40к в месяц джуном?
Сап двоще, расскажи про фронтенд. Это норм, если я зная хтмл и цсс на уровне нарисовать список и сделать его зеленым, знаниями чистого JS, про который написано в книжке с носорогом, возьму React и буду его дрочить. Или есть подводные?
Что посоветуешь анон?
пс: опыт программирования других вещей на других не JS языках имеется, не имеется только с браузером.
пс2: я не хочу становиться прям пиздец фронденд на фуллтайм, просто хочу знать и немного уметь че там как работает, ну и для своих проектов
Упустишь, обязательно упустишь. И не раз. Со временем наверстаешь.
Строю проект, там используются слайдеры для задания параметров поиска, в стиле google material design, но проблема в том, что они глючат на мобилках, а также значение из них нельзя получить сразу при изменении, кто знает есть ли подобные слайдеры, которые хорошо работают на мобилках и без этого бага
http://vk.finder.ecsv.org.ua/search
Да, в принципе переписал все заново
Ноду не юзал, но как вариант хорошая связка это PostgreSQL + Mongo/Redis
В PostgreSQL хранить данные которые не часто записываются. Вроде данных юзеров и какой нибудь истории/архива
А в Mongo/Redis всякие счетчики, временные данные, кэш, результаты промежуточных вычислений и т.д
Понятно, просто думаю, раз уж вкатываюсь в js, может сразу в full stack метить, на одном языке все писать неплохо должно быть.
Ну хз, юзаю 3 языка и вполне неплохо чувствую себя.
Можешь выучить любой более-менее серьезный серверный язык, а JS юзать для клиентской части. Лично мне так проще, один язык серверный, другой на клиенте, чтобы не смешивать все в кучу
Алсо, если просто парсить хедерсы- её там нет.
скачал на комп html страницу-исходник, на которой и подгружаются все эти данные аяксом со страницы, которой я отправляю хедерсы и нашёл там:
<script type="text/javascript"
$.ajaxSetup({
headers: { 'Model-last-Mode': 'yEDXSuK4yI8xJCVG0IW+sxp0Yvp2WmyxDuVo+ibRMxI=' } });
</script>
Тот самый хедерс, который нужен для запроса на страницу с инфой.
Каким образом я могу его выдрать отсюда? запись выглядит как json, но json parse вроде не подходит т.к сама страница в другом формате
Это прибыльнее пыхпыха? Почему его не выучишь?
Да
Ноу, без пхп в нашем мире вот вообще никак. Все кто не знает пхп не специалисты и ценности не представляют. Такие дела))
Хочу сделать йоба-эффект как на сайте айфона 7 с помощью привязки видео к скроллу. Типа, когда скроллишь до какого-то места, параллельно видео тоже мотается само.
Сделал прямо на <video> (по этому принципу: https://codepen.io/anon/pen/GxDJg ), но у меня таких видосов несколько, поэтому подлагивает, запросов в секунду в три раза больше. Вопрос: как сделать оптимизированней, чтобы не лагало? Что быстрее будет работать, напрямую элемент <video>, или рендерить источник видоса на <canvas>?
На сайте Эппла вроде кэнвас используется, но их реализацию я пока так и не понял (код разбирать надо).
Ссу тебе в рот, полтора года разрабатываю проекты на джс + реакт/ангуляр. Не касаюсь пыхоговна даже в перчатках палкой. По деньгам норм.
Гоните его, насмехайтесь над ним.
Есть два поля.
В одном слова вводятся.
Во втором числа.
И выводиться слово столько раз, сколько число во втором поле.
В какое поле сам отобразишься, в какое мать отобразишь
Потому что он долбоеб и не понимает, что такое замыкание. Хуесос считает замыканием то как он его применяет, а не само замыкание. Пиздец, еще и учебники строчат. Шли его нахуй.
Ну это учебник от O'Reilly поэтому я склонен доверять материалу, возможно я просто неправильно понял автора, вот и попросил уточнить.
В переводе часто порят ошибки, базарю. Читал Крокфорда в переводе, вот так же смутился из-за какой-то фразы. Открыл оригинал, а там фразу перевели натурально ОБРАТНО ПО СМЫСЛУ ФРАЗЕ ОРИГИНАЛА. Так что найди английскую версию и чекни че там.
кинь ссылку на страницу, возможно 'Model-last-Mode' указывается при загрузке страницы каким то серверным языком
Потыкался в него: глобальные пакеты ставятся через жопу, при вызове из вложенных в проект директорий он разваливается нахуй -- нахуй он нужен-то в итоге?
Берешь значение из первого поля, разбиваешь строку на слова, потом для каждого разбитого слова, как пример можешь юзать это
String.prototype.repeat = function(times) {
return (new Array(times + 1)).join(this);
};
var s = "yoba;".repeat(3);
говорят, шустрее работает. сам не пробовал, мне и на npm норм
Это сейчас конечно вброс некомпетентности на вентилятор будет, но я как-то разворачивал здоровый проект на рабочей машине и нпм постоянно падал с какими-то ошибками - то ему прав не хватало, то то, то сё. Дело было к ночи, подумал я -чем черт не шутит и натравил ярн на проект. Все поставилось с первого раза, начал колбасить. После этого свичнулся и начал жить.
Данные подгружаются отсюда:
https://www.whoscored.com/StatisticsFeed/1/GetPlayerStatistics?category=summary&subcategory=all&statsAccumulationType=0&isCurrent=true&playerId=83532&teamIds=&matchId=&stageId=&tournamentOptions=&sortBy=Rating&sortAscending=&age=&ageComparisonType=&appearances=&appearancesComparisonType=&field=Overall&nationality=&positionOptions=&timeOfTheGameEnd=&timeOfTheGameStart=&isMinApp=false&page=&includeZeroValues=true&numberOfPlayersToPick=
Сюда и нужно передавать этот model-last-mode
Нужно просто запомнить как правило что функции переданные как параметры не будут выполняться на каждой итерации цикла, а только в конце самого цикла? Немного непонятно почему это работает именно так.
Я тоже не из рашки. Но ты же понимаешь что для такого стэка это копейки или джуниорская зп?
Потому что setTimeout - это специальная функция, которая по сути является врапером для web api.
Для того чтобы понять это надо понять что есть такое event loop. Гугли event loop и смотри видео https://www.youtube.com/watch?v=8aGhZQkoFbQ
https://github.com/azat-io/you-dont-know-js-ru/blob/master/scope & closures/ch5.md#Циклы--замыкание - кстати вот ссылка на данный текст.
>>973488
>вызывается в своей же лексическом контексте
Но какая разница где она вызывается если она использует переменную из области видимости что ВНЕ этой функции, а на уровень выше (в глобальной области), не это ли называется замыканием? Кантор вроде именно об этом говорил, странно как-то.
Пиздец, я ещё JS нихуя не знаю и не понимаю что такое модули, а в ебаной книге уже какие-то примеры ебанутые с подобными вещами. Хотя подразумевается что это книга для тех людей которые даже не понимают что такое замыкания...
а ты не зеленый часом?
в том примере, функция находит переменную в контексте ИСПОЛНЕНИЯ (не лексическом контексте), который находится выше в стеке, то есть в том, который и вызвал эту функцию. Замыкания - это совсем другое. Тебе надо взять другую книгу или прочитать ещё раз.
Если можешь в английский, то в данном курсе подробно это описано https://www.udemy.com/understand-javascript/learn/v4/overview
Куда лучше чем тот высер, что ты читаешь, так ещё и переведенный.
>в контексте ИСПОЛНЕНИЯ
Ну я к сожалению не знаю как работает этот контекст исполнения, учился по кантору немного, потом не понял про this и замыкания и решил почитать данную книгу, но сейчас какая-то хуйня всплывает которую я даже не знаю и которая мешает нормальному пониманию.
>>973498
С английским крайне хуево (но я над этим работаю), поэтому читаю только на русском.
Замыкание это функция со своим лексическим окружением, так что долбоеб ты. Любая функция имеет его, про стрелочные только точно не скажу. Съебал нахуй. Еще один уебан, который путает применение замыканий и их сущность. Пздц.
Советую побыстрей учить английский, потому что ссаный русский крайне не совместим с программированием. Когда ты оперируешь терминами на английском, то всё становится куда понятней.
>>973507
И не вздумай вскукарекнуть про внешнее ЛО, потому как ссылка на него лежит в скоупе собственном самой функции и это будет лишь софистика, а она для пидоров. Вроде тебя.
Я другой анон, но ты троллишь или в манямире? Сейчас в джспарашу вкатиться легче, чем когда-либо. Педаль свой говнокод левой пяткой, а тулзы его превратят сами в идеал стиля и производительности. Думать уже не надо, основные архитектурные решения за тебя приняли, сиди программируй мышкой. Это я к чему - сейчас в джс джуниорская зп - это плевок в лицо.
Это оче мало, это совсем не 80к деревянных. Тебе нужно поискать больше с таким-то опытом.
не стоит вскрывать эту тему.
функция не может иметь замыкание, т.к. замыкание - это и есть функция, только не просто функция, а которая имеет ссылки на внешние переменные.
Не ебу сколько там у хуесосов сейчас валюта. Мне 20ки на все хватает, никаких проблем + скорое повышение зп, так что все ок - жопа в тепле, проект интересный, чего дергаться?
Ты в Киеве? Своя хата? Жопа жопой, тепло теплом, но я с таким же опытом пришел и 40к попросил, дали без вопросов.
Стараюсь, но у меня не очень быстро это получается ибо я даун какой-то, слишком много времени трачу чтобы понять простейший материал.
Ну вот что вычитал в Итоге в конце статьи, наверное более правильное понятие замыкания: Замыкание — это когда функция может запомнить и иметь доступ к своей лексической области видимости даже тогда, когда она вызывается вне своей лексической области видимости.
Хотя Кантор для простоты вещей вроде говорит как-то иначе, но я думаю что всем похуй на формулировку, главное понимать что функции имеют ссылки на свои области видимости даже если вызываются где-то в жопе, вот и всё.
Да, именно так.
Метод get не подходит, так как джейсон иногда бывает слишком длинным.
Реально ли это как-то postом сделать?
Не в Киеве, в Хуевом, что-то ты пиздишь за 40-к с полутора годами стажа на джс или в Киеве реально крутые зп, потому как знакомые крутые джависты с 6+ лет не получают столько.
post-ом же
Хочешь нотариально заверенный скриншот банковского счета? Пиздец, про крутого джависта, который даже 1.5 зелени не получает это страшилка какая-то.
Ну опыта у меня два года было, но я честно сказал, что первые полгода только верстал. То есть в сухом остатке 1.5 на джс. Но у меня даже не средняя температура по больнице. Я откуда взял эту цифру - зашел на джинни, посмотрел, сколько просят с мои опытом. Баксов 200 отминусовал, потому что была нпуверенность в своих силах. Сейчас думаю зря даже.
20к гривен - это меньше штуки баксов. Правильно говорят, что джуновская зарплата. Я меньше полугода проработал 14к получаю.
И 80к рублей - это не 20к гривен, а где-то 37к.
>1.5 зелени
Вот на этом моменте я понял что спиздел и считать нужно учиться снова. Знакомый джавист поднимает 2+ евро. Но то джава + тимлид + синьор помидор, как на джс можно 1000 мидлов брать - не верю нихуя, в 700 поверил бы, но 1000, хм, делать меня задуматься.
На 1.5 тысячи, реально пиздец у тебя с валютами, бро.
Норм для аутсорса, в аутстафе нормальном и того больше бывает.
Алсо проведи исследование с зарплатным вмджетом на доу - заметно, что основной рост зп происходит на втором и третьем году карьеры. После 4-5 лет зарплата вообще растет едва ли не у единиц.
Ну интересует есть ли вообще такие люди или для этого нужно быть хотя бы миддлом? И насколько сложно вкатиться в такой фриланс (нужно ли запилить пару своих проектов или возможно по мелочам будут и так брать) ?
Только вкатился недавно в веб-кодинг, на фрилансе не работал, но работаю удаленно, одна работа постоянная, правда там оплата маленькая так как сейчас задач мало. Вот недавно вторую нашел, через группу вк
Поговорили по скайпу, все обсудили. Закончил первые 2 задания и вот буквально в течении пару часов сегодня получу оплату.
Так и живем. Там в общем разработка модуля общей стоимость 8к рублей
Когда вкатывался на первую в портфолио был лишь один Open Source проект: http://czvl.org.ua
Сейчас же довольно много могу чего показать
Ну я джуном на апворке зарегался. Работу чисто джсную сложно найти с небольшим скиллом, но много разного говна где джс в том числе нужно пердолить. Например у меня был проект, где ангуляр на клиенте прикрученный к богомерзкому вордпресу. Минимальные примеры кода на гитхабе лучше иметь, могут чисто ради приличия затребовать, хотя заказчики такого говна редко понимают, что ты там наговнокодил. Денег не много, но баксов на 7 в час можно найти, если не даун.
Вот недавно хотел вкатиться на Upwork, чтобы доп. работа была, скиллы есть, портфолио есть, тест нужный прошел на 4 из 5
Рассылаю всем сообщение с этим всем. Но никто не отзывается. Может дело в том, что я это сообщение рассылаю одинаковое всем подряд?Лень каждый раз заново строчить.
Рассылай активнее, там на несложные проекты большая конкуренция. Выхватывай баззворды и пиши в сообщениях, что вот с этой штукой я много работал (конечно лучше иметь представление о ней, если пишешь). Если долго никто не будет отзываться - демпингуй, всяко лучше хоть пару проектов за еду сделать, чем сидеть с пустым профайлом.
Вопрос: Анон подкинь мне тренировочное задание на nodejs чтобы можно было этим похвастаться. Сам думаю сделать вебсокет чат для начала (хотя вроде как звучит изи) , вдруг ты еще что подскажешь.
Слушай, а регуляркой не получиться выдрать?
Вроде этой
var last_mode_header_name = 'Model-Last-Mode'
var pattern = last_mode_header_name + "': '(.*)' }")
Где-то был тренировочный таск, в котором нужно было ( используя билиотеки, офк ) сделать приложушку, в которую можно фотки из браузера загружать, а она бы находила лица на них, вырезала и возвращала с сервера пикчи со всеми лицами. Как-то так. На github это лежало где-то, как репка называлась не помню. Тоже хуйня по сути, но выглядеть должно прикольно и хоть надрочишься с файлами манипулировать в ноде
>
>Где-то был тренировочный таск, в котором нужно было ( используя билиотеки, офк ) сделать приложушку, в которую можно фотки из браузера загружать, а она бы находила лица на них, вырезала и возвращала с сервера пикчи со всеми лицами. Как-то так. На github это лежало где-то, как репка называлась не помню. Тоже хуйня по сути, но выглядеть должно прикольно и хоть надрочишься с файлами манипулировать в ноде
Звучит неплохо!
https://www.sitepoint.com/face-detection-nodejs-opencv/
тут вот что-то похожее, но я точно помню, что была репка, тестовое какой-то компании и там натурально расписано какие фичи у него должны быть.
Уже сам нашел ответ, который упустил: "Они независимы, потому что при каждом запуске makeCounter создаётся свой объект переменных LexicalEnvironment, со своим свойством currentCount, на который новый счётчик получит ссылку [[Scope]]."
В дополнении опять же к этому посту должен сказать что на мой взгляд, Кантора стоит читать по 2-3 раза, обращая внимание на всякие мелочи, ибо он их особо не выделяет жирным шрифтом (зато какую-нибудь хуйню - выделяет). И не всегда материал с первого раза запоминается даже если после теории выполнил какие-то задания.
И что это? Я такую хуйню и так вижу в тексте, скачивая страницу, как мне проще достать это из неё?
>протипное наследование - это конечно что-то с чем-то
Я сначала тоже так думал, но разобравшись там оказалось все просто.
Да надо привыкнуть походу, после питона/джавы пугает та простота, с которой можно любому объекту записать или переписать любые свойства и методы прямо в рантайме
Пока использую 2 параллельно запущенные задачи (webpack-dev-server, webpack:watch). Но это не очень удобно. А вместе через одну задачу работает только либо watch, либо dev-server, в зависимости что раньше запустилось.
Если я прочитаю основной курс отсюда https://learn.javascript.ru/
и разберусь со всеми задачами по ходу дела,
то же сделаю и с этим учебником https://karmazzin.gitbooks.io ,
и прежде я не программировал никогд ав жизни совсем - что я смогу сделать на джаваскрипте? Смогу ли запилить небольшую двухмерную игру? Приложение для поиска партнеров по гей-сексу? Или свой фейсбук с блекджеком и шлюхами?
Главное задания все делай, особенно во втором учебнике, сам его прохожу, но до этого си учил, питон и джаву и я скажу, учебник клевый, но не для начинающих.
Очень желательно, что бы юзер мог и через месяц вновь использовать сайт, при условии что токен не истек. Сам пишу на ангуляре, но не думаю что это очень важно.
Ахах, так ты не знаешь?
Вот читай про эту мощную штуку https://learn.javascript.ru/regular-expressions-javascript
Потом сможешь выдирать все что угодно и откуда угодно
Там все очень просто, допустим валидировать email таким паттерном можно
(?:(?:\r\n)?[ \t])(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:
\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
\t]))"(?:(?:\r\n)?[ \t])))@(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\
](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:
(?:\r\n)?[ \t])))|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)
?[ \t]))\<(?:(?:\r\n)?[ \t])(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[
\t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]
)))(?:,@(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])
)(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))))
:(?:(?:\r\n)?[ \t]))?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r
\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))"(?:(?:\r\n)?[ \t])))@(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](
?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?
:\r\n)?[ \t])))\>(?:(?:\r\n)?[ \t]))|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))"(?:(?:\r\n)?[ \t])):(?:(?:\r\n)?[ \t])(?:(?:(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t])))@(?:(?:\r\n)?[ \t]
)(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?
:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))|(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t]))\<(?:(?:\r\n)?[ \t])(?:@(?:[^()<>@,;
:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([
^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\"
.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\
]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))(?:,@(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\
[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\
r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]
|\\.)\](?:(?:\r\n)?[ \t])))):(?:(?:\r\n)?[ \t]))?(?:[^()<>@,;:\\".\[\] \0
00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\
.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,
;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?
:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t])))@(?:(?:\r\n)?[ \t])
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[
^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]
]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))\>(?:(?:\r\n)?[ \t]))(?:,\s(
?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t]))(?:\.(?:(
?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t
])))@(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?
:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))|(?:
[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t]))\<(?:(?:\r\n)
?[ \t])(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)
?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))(?:,@(?:(?:\r\n)?[
\t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t]
)(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))):(?:(?:\r\n)?[ \t]))?
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t]))(?:\.(?:(?:
\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
"()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t])
))@(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\
.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))\>(?:(
?:\r\n)?[ \t]))))?;\s)
Там все очень просто, допустим валидировать email таким паттерном можно
(?:(?:\r\n)?[ \t])(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:
\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
\t]))"(?:(?:\r\n)?[ \t])))@(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\
](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:
(?:\r\n)?[ \t])))|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)
?[ \t]))\<(?:(?:\r\n)?[ \t])(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[
\t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]
)))(?:,@(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])
)(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))))
:(?:(?:\r\n)?[ \t]))?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r
\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))"(?:(?:\r\n)?[ \t])))@(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](
?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?
:\r\n)?[ \t])))\>(?:(?:\r\n)?[ \t]))|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))"(?:(?:\r\n)?[ \t])):(?:(?:\r\n)?[ \t])(?:(?:(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t])))@(?:(?:\r\n)?[ \t]
)(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?
:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))|(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t]))\<(?:(?:\r\n)?[ \t])(?:@(?:[^()<>@,;
:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([
^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\"
.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\
]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))(?:,@(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\
[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\
r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]
|\\.)\](?:(?:\r\n)?[ \t])))):(?:(?:\r\n)?[ \t]))?(?:[^()<>@,;:\\".\[\] \0
00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\
.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,
;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?
:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t])))@(?:(?:\r\n)?[ \t])
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t])(?:[
^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]
]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))\>(?:(?:\r\n)?[ \t]))(?:,\s(
?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t]))(?:\.(?:(
?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t
])))@(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?
:\.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))|(?:
[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t]))\<(?:(?:\r\n)
?[ \t])(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)
?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))(?:,@(?:(?:\r\n)?[
\t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\.(?:(?:\r\n)?[ \t]
)(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))):(?:(?:\r\n)?[ \t]))?
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t]))(?:\.(?:(?:
\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
"()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))"(?:(?:\r\n)?[ \t])
))@(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t]))(?:\
.(?:(?:\r\n)?[ \t])(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)\](?:(?:\r\n)?[ \t])))\>(?:(
?:\r\n)?[ \t]))))?;\s)
Ок, еще вопрос:
Оба примера выше взяты из пасты в шапке. Но там указано ооочень много книг. Что и в каком порядке учить? Напоминаю, я совсем не знаком с программированием.
Здравствуй, программач.
Сорян, что влезаю в этот уютный тред с нубским вопросом почти не по темею Если так- перенаправь в нужный тред. Но тем не менее.
Есть один мэйл ру. В почте есть сраный рекламный баннер слева, который уже нифига не блочится аддблоком.
Нанл инспектировать через браузер, что за эту срань отвечает. Вроде как некий скрипт //js.imgsmail.ru/mail/e/utf/ts/1492094275/ru_RU/images/js/ru/build/v2.js, добавление которого в адблок не принесло никаких результатов. Пожалуйста, подскажи, как эту срань убрать- портит весь внешний вид.
Браузер огнелис. сможет ли какой-нибудь ю-матрикс это говно выпилить?
Благодарю за внимание и терпимость.
Поставь ублок. В нем выбери фильтры. Если и это не поможет, пипеткой уберешь любой рандомный элемент.
Так вы ответите, кто-нибудь?
Первым читать learnjavascript, либо если совсем-совсем ньюфаня, то JavaScript for Kids (не шучу)
После Кантора надо поделать всякие мини штуки (javascript30 в помощь) и почитать что-нибудь по es2015+ поплотнее (например exploring es6, exploring es2016-es2017)
После садишься за вещи типа node, gulp, webpack
И потом выбираешь фреймворк: React/Angular/Vue и пишешь уже на нем, погружаясь в экосистему.
После этого уже можешь начинать упарываться всякой функциональщиной если будет желание или смотреть в сторону сервера (express, koa, sails) или здесь подставь все что хочешь...
>всякой функциональщиной
Это ты про immutable.js?
>>974312
Ублок не помог. Пипетка элемент видит, но вот незадача: при каждом обновлении страницы скрипт генерирует новое имя для баннера вроде ###e0Q1G-3h. Таким образом, постоянно блочить его невозможно.
>>974303
Поставил, нашел стили для маилсру, которые, по идее, должны убирать все лишнее. Однако, не робит. В т.ч. при отключенных адблоке и ублоке.
Написать свой- пожалуй, для этого следует знать джаву. Увы, с программированием как-то не срослось.
Уматрикс эту штуку не берет. В общем, основательно программеры мейлру напердолили.
Большое спасибо тебе, анончик!
Я, безусловно нуб, но залез в один из тем для мэйла, которые, по крайней мере, активируются в мэйл.сру, выдрал там кусок кода и заодно впихнул туда тот джаваскрипт, что подозреваю:
@-moz-document domain("e.mail.ru") {
#leftcol-banners {opacity: 0!important; pointer-events:none!important;}
.b-datalist__head__item_rb > div[class^="b-rb"], .b-letter__head__rb > div[class^="b-rb"] {margin-top: -33px!important;}
/Директ в отчёте об отправке/
.message-sent__hr.message-sent__hr_big, message-sent__hr.message-sent__hr_small,
#preload_banner_1, .message-sent__ads, .message-sent__wrap:nth-of-type(4), .js-helper.direct-state
.js.imgsmail.ru/mail/e/utf/ts/1492094275/ru_RU/images/js/ru/build/v2.js:26
.js.imgsmail.ru/mail/e/utf/ts/1492094275/ru_RU/images/js/ru/build/v2.js:21
.js.imgsmail.ru/mail/e/utf/ts/1492094275/ru_RU/images/js/ru/build/ajs.js:2
{display: none!important; opacity: 0!important; pointer-events:none!important; height: 0!important;}
Пардон, поторопился с отправкой.
Так вот, тема возможна к выбору на странице, но результатов, увы, не приносит. Как сама оригинальная тема автора, так и мои попытки что-то такое интуитивно напердолить.
Писец ты меня озадачил. Я не поленился даже вложенность посчитал - так они ее меняют при генерации
>>974380
>>974378
Короче попробуй поставить tempermonkey и написать следующее в скрипт
http://jsbin.com/vazahudayi/edit?js
точнее tampermonkey
Благодарю за помощь, братюнь.
а аддон работает с версией лисы от 46 и выше. А тут 43. Ороро. Похоже, пришло время обновить браузер
разобрался с @ViewChild
Инфы вообще нарыть не смог. Фронтом в жизни не занимался. Помогите, пожалуйста.
Цель: собственный (махонький такой) фреймворк-велосипед чтобы общаться существующим РЕСТ-ом. Я ж студент. Велосипеды — моя жизнь.
Как я понимаю до появление новомодных фреймворков на js, были приложения например на RoR, который формировал хтмл на сервере и отправлял клиенту, потом появились ангуляры и реакты, которые работают на клиенте, снижают нагрузку с сервера, а теперь есть фреймворки основанные на фронтенд фреймворках, которые рендерят хтмл опять на сервере(next.js/nuxt.js), ибо бандлы получаются большими, что нехорошо для медленного мобильного интернета и лучше в плане сео. И вот собственно вопрос. Нахуя?
>И вот собственно вопрос. Нахуя?
У меня вот другой овпрос.
Насколько я понимаю, JS жутко простая вещь.
В виду чего, наличие к нему "фремворков" немного обескураживает.
Js в бравзере это итак фреймворк. Что там еще фремворкать?
если ты пишешь простой одностраничный лендинг с двумя функциями, которые на сервер отправляют формы то хуйня. если тебе нужен сайт сложнее вроде сервисов гуглопочты, то на чистом жс ты охуеешь это все писать. а при помощи фреймворков такие вещи делать проще и расширять в разы проще.
плюс вещи вроде es2015 браузерами еще нативно не поддерживаются. а там столько охуенностей, что обратно возвращаться не захочешь.
Больной, вернитесь в палату.
>JS жутко простая вещь
>Js в бравзере это итак фреймворк
ЖСаны, у нас тут залётный.
Ты ещё успеешь охуеть, насколько этот жс простой.
>ЖСаны, у нас тут залётный.
>Ты ещё успеешь охуеть, насколько этот жс простой
Ну, я парочку простых сайтиков(веб приложений, как щас модно) на нем сделал, общаясь с сервером через xml.
Там же логика вся элементарная, скрыть нарисовать кнопочку изменить размер цвет эдемента вписать текст в елемент итд.
Тоесть, Js в бравзере и так на уровне визуального редактора форм в шарпе кокомнибудь. И даже лучше местами.
ES7 уже нативно поддерживается, покайся.
>json быстрее, правильно xml хуесосят.
Тупой вопрос.
Как запросить\отослать json с сервера из JS в бравзере?
Братишки, я герой этого ролика. У меня бэкграунд дизайнера, в том числе в полиграфии, хуже меня не было. Я начал верстать, освоил gulp, jade(pug), sass и тд. И теперь почти не включаю фотошоп, т.е. дизайн-верстка теперь один процесс. У меня огромный гап в области JS, я потихоньку начал вкатываться. И знаете чего не понимаю, нахуя мне вообще JS, как я буду зарабатывать 300к в секунду? Для меня JS это подключить owlcarousel.js, нампример. Какие профиты для таких верстал как я?
>>974789
Парни, че вы как пидоры отвечаете. Вы подсобите, епта. Как перестать верстать на HTML, а начать по-модному react-хуякт, angular-хуиляр.
Прочитай "выразительный javascript" - книгу, все встанет на свои места, только задания делай.
https://karmazzin.gitbooks.io/eloquentjavascript_ru/index.html
сажа приклеилась
>>973550
>>973412
Пиздец.
Я с 4 годами опыта JS + PHP + Oracle получаю ебучие 45к рублей, пребывая в перманентной депрессии. Наверное, пора по собеседованиям походить, а лучше уёбывать.
Есть набор данных. Термин = Определение. Хочу что бы страница со списком терминов, кликаешь на элемент списка и появляется его определение.
На php спокойно бы запилил, но вот есть такая ультрагодная вещь как github pages, а там как я понял только js.
Собственно вопрос - как из массива терминов автоматом запилить список и с помощью каких функций можно осуществить вывод конкретного определения на страницу?
Лолблять, это ж днище
У меня, ссаного верстальщика, зп 25к грн выходит, думал перекачусь во фронтенды - будет выше
Хотя если для фронтенда с опытом 20 - нормальная миддловская зп, то всё грустно
Хотя, может ты не из Киева?
Не стукайте сильно
Добра.
От текста или от сути вопроса? Я платину спросил, что ли?
Ты туториал пройти можешь?
У нас среди хипстеров за такие вопросы угощают в кафе маффинами блядь и поят чаем.
А что там осиливать? Налил и пей
Не дожидается, конечно.
Ты правильно про $(document).ready написал, потому react как и любая другая библиотека не работает без jquery.
Да ты шо! Еще, небось, DOMContentLoaded и ивент лиснеры тоже только в джиквери есть. Браузер, должно быть, без джиквери даже не запустится. Говорят, даже в центральный процессор встроен маленький хардварный джиквери.
XMLHttpRequest
Вот сидишь, пишешь фронт для реста на asp.net web api.
И если запросы асинхронные, то гарантировано ловишь еблом ексепшн. Вот, что происходит, когда запрашиваешь несуществующий ресурс:
1. АСП не находит твой ебучий ресурс. И шлёт 404
2. XMLHttpRequest.send() в случае 404 пытается, кажется, что-то достать из поля, которое в этом случае null и высирает.
3. + АСП на 404 ответ не крепит заголовков для поддержки cors, от этого жс ещё больше высирает
4. сидишь обосранный
Тут три стула.
Реализовать для моего сервера метод Head, чтобы проверять на 404 (стул с хуями).
Делать асинхронные запросы, которые, вроде, позвляют делать проверки (или нет). (мистический стул)
Трайкетчить метод, который высирает ексепшн и так обрабатывать 404 от сервера (стул с пиками).
Влез в ЖС день назад.
Не вкурил до сих пор ни стиля, ни назначения языка. Сижу обосранный.
У кого первое знакомство было веселее?
даун блять. тебе уже писали про fetch, но ты все равно несешь свое говно в тред, необучаемый.
>даун блять. тебе уже писали про fetch, но ты все равно несешь свое говно в тред, необучаемый.
Это мне писали.
А ты шизик с паранойей.
Ты только что заруинил очевидный сарказм.
>если запросы асинхронные, то гарантировано ловишь еблом ексепшн
Ну это уже говнокод как есть.
https://github.com/acdlite/redux-actions
Зачем нужны прототипы? Я сколько не использую js, мне в реальной жизни они ни разу не пригодились.
То есть если мне нужны новые объекты, я просто создаю их с уникальными свойствами. Если мне нужно наследование я просто добавляю примеси в эти же объекты и вот уже другие объекты, которые могут как наследовать, так и терять ненужные им свойства.
Тогда как прототипы мало того что портят весь код своим синтаксисом с этими ебанутыми потчёркиваниями, так ещё и выглядят как костыль.
По мне так это абсолютно ненужное говно, которое можно смело выпиливать из языка.
Более того протипирование нарушает логику.
Если обычно мы создаём объект и на его основе потомков, то прототипирование используется в любом месте кода и очень легко превратить код в спагетти напрототипировав уже существующие объекты.
По ебанутости это даже хуже goto, который можно использовать дисциплинировано, тогда как прототипы это всегда наглое изменение структуры объекта в любом месте кода и в любой момент исполнения, что часто приводит к существованию разных объектов одного и того же класса и ошибкам вида отсутствия метода до прототипирования.
Короче пишите юзаете ли вы прототипы и как вы себе это оправдываете? Как живёте в мире со своей совестью?
У меня тайпскрипт, мне похуй на прототипы
Классы - это сахар, у которого под капотом работают прототипы.
Юзаю реакт там компоненты экстендятся от реакт компонент, значит я юзаю прототипы.
Далее, делаешь какие-нибудь манипуляции с дом - тоже полагаешься на работу прототипов. Вызываешь встроенный метод например массива - тоже задействуешь прототип... такие дела. Короче вообще ненужны))
Лесс переменную. Лучше решение годное кинь.
Спасибо
Какие нормальные есть?
С++ всегда будет актуальным, учи его.
Киньте годный линк с жирным списков вопросов к собеседованию и ответами, чтобы стать умным и ушлым
Мимо не фронтендер, попросили помочь.
Ну так в фильтрах и ищи, дебаггером стопани на ошибке интерпретатор и в скоупах ищи переменные. Какой-то из них не присвоено значение.
Сап джаваскриптач, объясни пожалуйста - нахуя в событиях onClick пишут что-то вроде onClick="func(args); return false/true"? Зачём там что-то возвращается?
Ты дурак?
Когда функцию вызываешь, электроны уходят в стек. Если ничего не вернуть, электроны не возвращаются и у тебя нагревается процессор, он даже сгореть может от этого.
front-end architect на галере
У меня от тебя КОРОТКОЕ ЗАМЫКАНИЕ.
Пример тестового кода, ничего не выводится:
function main() {
var x = myFunction(4, 3);
alert(x);
}
function myFunction(a, b) {
return a * b;
}
Но если всё сделать в main, то алерт появляется. Это какое-то анальное ограничение greasemonkey или что?
Всё, разобрался, это, видимо, из-за grant было.
return false отменяет действие браузера по умолчанию, например переход по ссылке.
Опыт работы обязателен.
Мои контакты soni~%gvebaANUSyany>0dexPUNCTUMr& /u
Зарплата от 500зеленых в месяц. В перспективе рост зп
В письме рассказать немного о себе, о своих проектах и т.п., сколько готовы уделять время работе, возраст.
https://www.youtube.com/watch?v=8p1uLKYAwEw
>Я так и не понял, что это за херня
Вот смотри, есть курятина - js код, интерпретатор в браузере это перемелывает сначала в пюрешку(байткод), а потом выполняет(кушоет).
webasm - это сразу пюрешка, её не нужно перемалывать, а можно сразу кушоть.
>до какого урока смотреть?
Как перестанешь что-либо понимать.
>>976170
>как перехватить загружаемый html отредактировать и запихать обрато в браузер
Шта, вопрос уровня как выебать овцу если у меня вместо хуя вагина
Улиент загружает страницу, но вместо того чтобы сразу исполнять ее в браузере и строить дом, клиент анализирует ее вручную или автоматически, редактирует и затем загружает в браузере. Ясно?
Геттер вызывается когда получаешь значение чего то console.log(a) читается как console.log(a.get()) аналогично с сеттерами
a = 5 читается как a.set(5)
Что-то вроде этого: https://jsfiddle.net/tk6Lodmg/
Только я не понял, что значит "рагорелась".
Просто хотел чтобы кто-то подтвердил мои слова. Типо правильно ли я всё написал или нет.
Когда хочешь получить значение вызывается геттер, из него можно вернуть любое обработанное значение. Сеттер то же самое, может вообще не присваивать ничего.
>но она как бы будет сразу возвращать значение, без вызова через скобки
Но она вызывается как раз и вернет она то что у нее в return
А далее в главе https://learn.javascript.ru/bind#пример-потери-контекста - пишут, что "Это произошло потому, что в примере выше setTimeout получил функцию user.sayHi, но не её контекст." Так какого же хуя это произошло если точка должна передавать контекст и всё должно работать нормально, в чем дело то?
Ну допустим точно хранит контекст специально для скобок "()" и передаёт его им. Так почему она не хранит этот самый контекст когда мы передаём функцию в другую функцию или когда записываем в другую переменную? Че за хуйня. Совсем неосилятор я чет.
Тебе про корову говорят, а ты про козу.
нахуй ты мне ссылки кидаешь, я знаю что такое объект аргументов. Дело не в этом было, но уже разобрался.
а как это работает? нужно где-то для каждой платформы скомпиленный код держать что ли?
Нинтендо 360, сега мастер сд, сега сатурн, генесис, плэйстэйшн 1,2,3,4 ...
простите, не удержался
Т.е мы делаем некую обертку-клон как .call или .apply, чтобы можно было вызывать функцию где-либо без потери контекста из точки. Но при этом можно просто вызывать user.sayHi.apply(user) ? Зачем тогда писать эту сложную функцию обертку если можно просто всегда прописывать так? Просто ради красивого кода?
Вроде немного понял, .bind возвращает именно функцию, а не выполняет её. Т.е мы заранее привязываем контекст к функции, которую ПОТОМ будем вызывать. Всё отличие по сути в том что bind это обёртка для того чтобы заранее передать контекст для функции которая потом будет вызвана, а .call и .apply это методы которые тут же выполняют функцию с указанным контекстом. Хз, правильно ли я всё понял.
Ну да, фишка бинд, что можно сделать функцию, с частично примененными аргументами ака каррирование
Есть только издание 2015 года. Это ничего страшного? Хотелось бы сразу что-то на пример ES6 или похуй вообще?
Там это есть короче
Ну разве что в отпуск уйти на лет десять. Года два назад "А может на рельсах ебанём?" ещё бы сработало, а нынче вот нет. Го хотят. Хотят скейлить под хайлоад магазины цветов и лендинги.
Нода так-то тоже на хайлоад тянет, относительно го, да и разрабов на нее проще найти, js многие знают. покормил
Ты думаешь я траллакаю, а я правда говорю. На мороз, конечно, не выгоняют ещё (пока), но разговоры заводятся за го постоянно. Жс-то никуда не уходит на клиенте, ui няшный на реакте всегда писать надо, хоть под скалу. Но я ведь чувствую, что разговоры всё чаще заводиться будут про го, пока из серии наблюдений, мол вон ребята на го это написали, а вот тут как круто всё работает. Вы только посмотрите какой они rpm крутят. Гарантирую, что к концу придётся писать уже. Благо язык простой, думаю проблем не будет.
Относительно небольшой банкинг на джаве, средних размеров веб хуерга в виде магазинчиков разных мастей - рельсы (кроме одного большого, там тоже джава), приложения дашбордового типа обычно на ноде. В целом рельсы и нода довольно смешанная группа, на сносном уровне приходится знать оба стака, языки-то ладно, но инфрастуктуры и там и там гора ебаная. Я прям уверен, что к концу года будем писать на го и магазинчики и приложения на го. Банкинг, конечно, трогать не будут пока, но если пойдёт, то и джаваниггеров запрягут переписывать.
Ну мне кажется банкинг на го писать - сомнительно, у го нет по сути ничего кроме производительности, которая до джавы даже не дотягивает, и простоты, нет инфраструктуры, очень странно, если будет так, как ты описываешь, ладно там api писать для spa.
А разговоры про го, вангую, менеджеры заводят, которые сами код не пишут, а только хабру и прочую хуергу читают?
И откуда ресурсы на переписывание вообще? Никогда подобной хуйни не встречал на практике, чтобы прямо переписывали, какие-то критичные части-да, но не всё с нуля.
У меня на работе из того, где нужна скорость написано на крестах и работает в виде нативных модулей к ноде. Кстати, главный умный крестовик, что-то пробовал на го писать, пришёл к выводу, что говно и забросил.
ЕЕЕ, спасибо. Браток, можешь пробить этот адресок, https://gist.githubusercontent.com/Miserlou/c5cd8364bf9b2420bb29/raw/2bf258763cdddd704f8ffd3ea9a3e81d25e2c6f6/cities.json
он рабочий или я просто имбицил?
>>977267
Да язык простой очень, я сам правда дальше нескольких хелоуворлдов не заморачивался, но в принципе терпимо. Уебанства конечно хватает, без всяких map, reduce, filter, etc чувствуешь себя как инвалид ебаный, но кого это заботит как ты себя чувствуешь.
> А разговоры про го, вангую, менеджеры заводят, которые сами код не пишут, а только хабру и прочую хуергу читают?
Так и есть.
>И откуда ресурсы на переписывание вообще?
Я утрировал конечно, что запрягут джаваниггеров переписывать. Да и меня мало их болото заботит, а новые проекты очень вероятно будем писать на го. Наш умный крестовик ничего не говорил про го, да и ему похуй вообще. Мужику сорокет, двадцать в кодинге, к нему джависты как-то плакаться пришли, что-то у них на андройде что-то не стыковалось с вебом, не знаю подробностей, но пришли они просить какое-то решение на эрланге. Он в прямом смысле за пол дня сел и накатал им всё как надо, ребята до потолка прыгали. Но он такой меланхолик, что ему похуй вообще. Скажут на го писать, он спорить не станет, за вечер освоит и будет писать. И мы будем.
С браузером у тебя что-то. Попробуй в другом, я вставляю сниппет в хромимум консоль и он работает.
>Скажут на го писать, он спорить не станет, за вечер освоит и будет писать. И мы будем.
И меня заставят. Блядь, как же это печально, какая же у меня дикая фрустрация и бессильная что-либо изменить злоба от этого го.
>за вечер освоит и будет писать
И правильно сделает. Нахуй ныть, что тебе молоток не нравится или микроскоп?
В том что я не осознал, что один аргумент из внутренней функции имеет замыкание на внешнюю функцию, а второй аргумент это сам массив аргументов внутренней. Ну и понял вроде как эта обертка сама работает.
Нашел в жопе у парня, спасибо
Не понимаю, почему нельзя сохранить инфу из ajax-запроса в глобальную переменную, почему первый алерт делает то что должен, а второй выдает undefined
Нихуя не пойму, вот если прописать перед функциями this.loginOk.bind(user), this.loginFail.bind(user) то всё работает, но не пойму почему без этого не работает? И как вообще происходит срабатывание этой функции?
1) checkPassword() вызывает функцию ask() и передаёт ей параметры.
2) loginOk.bind(user) возвращает обертку функции loginOk которая вызывается в контексте user.
3) Но нахуй this прописывать? Но ведь если я припишу this , то по логике эта обертка (bind) будет запускаться в контексте ask(), т.е текущего или нет?
Сначала undefined?
Т.е насколько я понимаю просто передавая loginOk.bind(user), loginFail.bind(user) , то функция ask() начинает запускать их в своем контексте. А когда указывается this, то они вызываются в контексте объекта, в котором собственно и вызываются? Но разве функция checkPassword() сама по себе не является объектом? Ведь получается this должен передавать именно этот объект, а не какой-то внешний, разве нет? Вроде блять прочитал 2 раза эту тему про this, понимаю что контекст this присваивается из того места, откуда была вызвана эта функция, но вот такие случаи почему-то в уроке не проговариваются.
checkPassword запускается с контекстом user. Т.е. this внутри нее user. Ты хочешь передаваемые функции прибить к user, поэтому пишешь bind this. Т.к. там просили не привязывать к user напрямую вдруг ссылка изменится.
>Т.е. this внутри нее user
Ну это понятно, но почему вызывая внутри функции checkPassword() функцию ask() и передавая этим параметрам this - он не становится объектом checkPassword()? Возможно я недопонял тему, но this вызывается именно в контексте обычного объекта, а не объекта-функции?
читаю кантора, принципы ооп у него уже идут после этой темы, сорян
Сам тоже только учусь, поэтому могу быть не прав, но ворде как checkpassword. Ask тут только инициализируется, она пока типа не при чем. Это как если бы ты вместо this.password написал бы просто password. Получил бы тоже ошибку плана "че за пассворд, не знаю такого".
А биндишь ты для того, что эти твои методы не теряли контекст , когда вызываются изнутри ask. В функциях обычно this=undefined.
Ты не с той стороны думаешь.
Еще раз.
Ты вызываешь checkPassword. Если с user. впереди то this внутри это user. Если без, то при use strict undefined, иначе глобальный объект.
Далее внутри вызывается ask с передачей параметров.
Мы все еще находимся внутри checkPassword, поэтому this такой же какой мы определили выше. ask тут вообще не при чем в данный момент, она просто вызывается получая параметры.
>Если без, то при use strict undefined, иначе глобальный объект.
никакого undefined там не будет, переменная просто не будет найдена. Undefined лишь тогда когда функция вызывается без контекста какого-либо объекта.
> лишь тогда когда функция вызывается без контекста какого-либо объекта
> Если без, то при use strict undefined, иначе глобальный объект
Именно это и имелось ввиду. Видимо плохо написал.
Нет такого фреймворка, зачем врешь?
переменная не найдена это is not defined
Вот например this (выделил стрелочкой), контекст определяется тем, где вызвана эта функция. Получается что эта функция вызывается в контексте функции ask(), у которой значение this = undefined, правильно? Иначе если нет, тогда почему именно здесь возникает ошибка?
у твоей анонимной функции которая оборачивает то место куда ты стрелочкой показываешь и которая будет вызвана на 66 строке this будет undefined.
>у которой значение this = undefined, правильно?
Значение this будет ссылаться на глобальный объект, именно в этом контексте вызывается твоя функция. В случае браузера на Window, либо на global в случае ноды.
>почему именно здесь возникает ошибка
Скорее всего из-за того, что в твоем глобальном контексте не определен loginDone.
Не будет там никакого глобального объекта при use strict. Еще больше путаешь беднягу!
у меня есть 25к документов. их нужно обработать.
docs.forEach(doc, function(doc) {
... addDoc(doc).then(function(indexes) {
...... console.log("blah")
...... // do something with indexes
... })
})
вот что получается:
памяти сожрал 1гб, ни одного вывода "blah" не увидел. не стал ждать и прибил процесс.
как же быть? рекурсивно, вот так:
function load(i) {
... let doc = docs
... addDoc(doc).then(function(indexes) {
...... // do something with indexes
...... load(i + 1)
... })
}
смешно, тому что не просто. 25к записией и не схватил stackoverflow, хвостовая рекурсия что ли есть?
т.е. addDoc возвращает new Promise.
ладно, хуй знает как промисы работают.
нет хвостовой оптимизации. попробовал простую рекурсивную ф-у и схватил stackoverflow.
На 22 строке функция ask еще не вызвана, ты тут просто передаешь ей параметры. На 22й строке this = user, именно поэтому все находится как надо. Далее, когда управление переходит в ask (условно на 4ю строку) , ok представляется собой следующее: function() {alert this.login + 'вошел на сайт'} c привязанным контекстом this = user. То же самое касается fail.
Хз, если все еще не доходит, я рекомендую тебе пока забить и просто читать дальше. Со временем в голове все устаканится как надо.
кажется понял. пример:
new Promise((resolve) => {
.. console.log("I'm here")
.. resolve()
}).then(() => console.log("Resolved."))
console.log("Hello")
вывод:
I'm here
Hello
Resolved.
когда вызываем resolve(), то он не вызывает then(() => ...) сразу. если бы было так, то вывод был бы в другом порядке.
как я понял, при вызове resolve(), добавляется сообщение в очередь событий. про события:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop
пока не завершится обработка собития, другие события не выполняются. поэтому, в предыдущем примере, обработчики не выполнялись во время docs.forEach.
вот так понятнее, что используется очередь событий:
let promise = new Promise((resolve) => resolve())
promise.then(() => console.log(1))
console.log("a")
promise.then(() => console.log(2))
вывод:
a
1
2
Просто как-то странно осознавать что передавая готовой функции параметры (т.е запуская ask() ) - она по какой-то причине не запускается (ну видимо потому что внешняя функция checkPassword() ещё не вызвана и поэтому не вызывает свою внутреннюю. Ну в общем ладно, пойду ещё раз всё переварю в голове и буду дальше учить. Хотя уже 2й день ебусь с этими задачами и в голове всё равно каша.
Ничего не понял из того что ты написал, но попробую еще раз поэтапно, на основе последнего скрина:
1) Мы за кадром вызываем user.checkPassword(), верно?
2) Управление переходит на 22 строку, где идет инициализация вызова ask, с передачей соотв.параметров. Перечислим:
question = "Ваш пароль?"
answer = '12345'
ok = function() {alert this.login + ' вошел на сайт'} , с привязанным контекстом user (то бишь внутри этой функции this = user, а значит this.login будет равняться user.login)
fail = function() {alert this.login + ' ошибка входа'} , с привязанным контекстом this = user
3) Перескакиваем на 4 строку. Начинает работать ask, т.к. мы только что ее вызвали, с указанными выше аргументами.
4) Дальше идут твои проверки и соотв. вызов ok или fail, которые выведут адекватную инфу, потому что this у них равняется юзеру. Конец.
>ok = function() {alert this.login + ' вошел на сайт'} , с привязанным контекстом user (то бишь внутри этой функции this = user, а значит this.login будет равняться user.login)
Это контекст, внутри ФУНКЦИИ привязывается через bind.
А я не понимал всё это время, почему самый первый this (перед точкой) имеет ссылку на объект, ведь значение this присваивается только на момент ВЫЗОВА функции, но функция ask() при этом не вызывается. И т.к this находится в параметрах ask(), я думал что этот контекст должен присваиваться только после запуска этой функции и не иметь отношение к функции checkPassword(), ну ибо вызов ask() вложен в неё и я думал это как-то по другому здесь будет работать.
Посоны, запилил юзерскрипт https://pastebin.com/ZciW5CXQ, который в gmail показывает точное время вместо формата "месяц день". Как букмарклет скрипт работает. Работает и как скрипт, добавленный через tampermonkey если в качестве параметра addeventlistener указать DOMNodeInserted, но при этом выбрасывает ошибку Uncaught RangeError: maximum call stack. А если в качестве параметра использовать DOMContentLoaded (что я и хочу в результате использовать) то вообще не работает. Почему? Может кто-нибудь объяснить поведение скрипта при DOMNodeInserted и DOMContentLoaded?
Не не реально, все программисты с рождения все знают.
Учи php тогда
Предположим вас берут на проект, там фрилансерами из индии и снг нахуячено много нечитаемого кода. Как поступать? Переписывать, оставлять так, как вообще разобраться в нем?
Написано на backbone, но так что кажется будто я вообще впервые backbone вижу.
там вообще ужас, походу реакт дебик писал на бакбоуне и представлял что пишет на реакте.
я вообще удивляюсь что оно работает каким то чудом
Начал по шапке фронтенд треда HTML/CSS + JS.
Сейчас есть четкое осознание, что верстка меня люто-бешено бесит, и учить ее дальше желания никакого нет. А вот JS- это любопытненько.
Есть ли смысл забить на верстку, начать учить Node.js с целью может быть когда-нибудь вкатиться в бэкенд, или для такого как я это нереально?
Если все же реально, то за что браться после Кантора? Сразу за node.js или как?
Фронтендер-джун без умения верстать нахуй никому не нужен. Бекендер-джун на одной только ноде тоже.
Вёрстка бесит лентяев-неосиляторов, в 2017-м верстать в десятки раз проще, чем в 2007-м. Вообще, если ты только начал свой вкат в IT, а тебя уже что-то "люто-бешено бесит", то это повод призадуматься.
мимо-бекендер-умеющий-адаптивно-верстать
Полюби верстку, все равно любого нодера в любой момент могут дернуть на фронт, а на фронте придется верстать в том числе. Меня тоже тошнило, но я занимаюсь версткой тогда, когда от кодинга мозги устрают, воспринимай ее, как отдых.
Я уже и сам понял, что фронтенд- не мое.
Если все же попробовать вкатиться в бекенд, что мне нужно кроме ноде?
И самый пиздец, что в перспективе js серьезно потеснит все остальные языки.
Последние несколько лет ничего кардинально нового не выходило. Как сидели на реакте, так и сидят.
Чего угодно
Ты ебанутый? Мускул находится в недрах сервера, а реакт - библиотека мало того, что для фронта, так еще и тупо для view-части, схуяли-насрали они как-то вообще должны между собой общаться?
Фронтенд )
Я вообще сомневаюсь, что на ноду берут не фул стеков, потому что она учавствует только, как апи, а вся движуха с данными уже проиходит на фронте в реактах/ангулярах
А так mongo, sql и тд базы данных
ajax запрос к серверу, сервер(node/php/python) делает запрос к базе, получает ответ, формирует json, отдает клиенту, react вставляет данные в шаблон html, профит, если где-то ошибся, поправьте.
Но сам react при этом в ajax не умеет, нужно jquery или еще чем пользоваться, вроде fetch популярная либа.
bump blyad
Посоны, есть короч одно web-приложение (если можно так назвать). Тестировалось на денвере.
Состоит из клиентской части - на стороне клиента JS считает всю тригонометрию с рендерингом и рисует картиночка в canvas. И серверной части, где собственно и происходит вся оставшаяся математика.
Пользователь с сервера получает два массива себе в браузер, в каждом массиве по 20 элементов (скажем так, координаты, целые числа, могут быть отрицательными). После всей отрисовки пользователь жмякает кнопочку и на сервер Аяксиной улетает некоторое значение (индекс). На сервере происходит немношк срань, но пришлось искать некий компромисс. В текстовом файле (serialize) хранится массив на 20 тыщ элементов, каждый из элементов этого массива - в свою очередь вложенный массив на 20 элементов (те самые, которые пихаем в Json-строку и отправляем клиенту). Когда от клиента получаем индекс, с соответствующим ему элементом массива делаем некоторые действия, пихаем обратно в файл и выдаем клиенту новых два массива. Чому не SQL? У клиента есть еще одна ОСОБАЯ КНОПОЧКА, которую ТЕОРЕТИЧЕСКИ он должен жмякать после некоторого (неопределенного, в зависимости от того, что там JS отрисует) числа нажатий на обычную кнопочку. После нажатия на ОСОБУЮ КНОПОЧКУ на сервере происходит вся магия. Достается весь этот 20-тыщ-элементов-массив, делится на 200 маленьких массивчиков по 100 элементов, каждый в свою очередь делится пополам. Сортируется вся эта поебота. Создается временный массив, куда некоторые (в зависимости от...) из элементов маленьких массивчиков складываются, хм, надо тут еще придумать, как из каждого массивчика элементы между собой обменивать. В общем вся эта хуйня смешивается, считается, пихается из временного массива обратно, еще раз сортируется, пихается обратно в файл. Ну и пользователю опять выдаем два массива. Всё заебись работает. Но это у меня работает, томущо знаю, когда на ОСОБУЮ КНОПОЧКУ надо жать. Но вот я некоторые функции в приложении еще реализую и на хабру выложу - мне первые же 10 пользователей сайт ушатают. Даже если сто раз объясню, куда и в каком порядке нажимать - на особую кнопочку всегда найдется особый пользователь.
Так я вот подумал. Серверная часть мне и не нужна, по большому счету. Всю серверную математику можно в JS посчитать. А вот с хранением данных возникает вопрос. Какие там в JS завезли механизмы для хранения больших объемов данных на стороне клиента?
Посоны, есть короч одно web-приложение (если можно так назвать). Тестировалось на денвере.
Состоит из клиентской части - на стороне клиента JS считает всю тригонометрию с рендерингом и рисует картиночка в canvas. И серверной части, где собственно и происходит вся оставшаяся математика.
Пользователь с сервера получает два массива себе в браузер, в каждом массиве по 20 элементов (скажем так, координаты, целые числа, могут быть отрицательными). После всей отрисовки пользователь жмякает кнопочку и на сервер Аяксиной улетает некоторое значение (индекс). На сервере происходит немношк срань, но пришлось искать некий компромисс. В текстовом файле (serialize) хранится массив на 20 тыщ элементов, каждый из элементов этого массива - в свою очередь вложенный массив на 20 элементов (те самые, которые пихаем в Json-строку и отправляем клиенту). Когда от клиента получаем индекс, с соответствующим ему элементом массива делаем некоторые действия, пихаем обратно в файл и выдаем клиенту новых два массива. Чому не SQL? У клиента есть еще одна ОСОБАЯ КНОПОЧКА, которую ТЕОРЕТИЧЕСКИ он должен жмякать после некоторого (неопределенного, в зависимости от того, что там JS отрисует) числа нажатий на обычную кнопочку. После нажатия на ОСОБУЮ КНОПОЧКУ на сервере происходит вся магия. Достается весь этот 20-тыщ-элементов-массив, делится на 200 маленьких массивчиков по 100 элементов, каждый в свою очередь делится пополам. Сортируется вся эта поебота. Создается временный массив, куда некоторые (в зависимости от...) из элементов маленьких массивчиков складываются, хм, надо тут еще придумать, как из каждого массивчика элементы между собой обменивать. В общем вся эта хуйня смешивается, считается, пихается из временного массива обратно, еще раз сортируется, пихается обратно в файл. Ну и пользователю опять выдаем два массива. Всё заебись работает. Но это у меня работает, томущо знаю, когда на ОСОБУЮ КНОПОЧКУ надо жать. Но вот я некоторые функции в приложении еще реализую и на хабру выложу - мне первые же 10 пользователей сайт ушатают. Даже если сто раз объясню, куда и в каком порядке нажимать - на особую кнопочку всегда найдется особый пользователь.
Так я вот подумал. Серверная часть мне и не нужна, по большому счету. Всю серверную математику можно в JS посчитать. А вот с хранением данных возникает вопрос. Какие там в JS завезли механизмы для хранения больших объемов данных на стороне клиента?
А просто блочить одну кнопку и делать доступной другую в нужный момент не интересно?
Не интересно.
>ОСОБАЯ КНОПОЧКА, которую ТЕОРЕТИЧЕСКИ он должен жмякать после некоторого (неопределенного, в зависимости от того, что там JS отрисует) числа нажатий на обычную кнопочку.
В общем накидал тут примерный размер массива https://pastebin.com/qMCS8E0s
localStorage вывезет? А если мы еще и всю историю хранить будем (массив так раз в 32 побольше станет)?
Так "неопределенного" или "в зависимости"?
Если есть зависимость, значит есть логика. Передай её состоянию кнопки.
локалСторедж до 10 Мб держит
Есть ещё индекседДБ и сервис-воркеры в новых браузерах.
Ещё веб-воркеры. Позволят выполнять расчёты на стороне клиента в отдельном потоке.
У тебя явно сейчас проблема не со стороной клиента, а со своими "массивчиками в массивчиках".
Зависимость определяется пользователем.
А понятно.
Но это вообще не суть, так уж получилось, что он сегодня написал, мол, давай встретимся поговорим, а то мне не хочется дома сидеть весь день. Ну мне как-то особо делать в выходной тоже нечего было, почему бы и нет. Поехала в центр в условленное место. Сразу скажу, что фотографий вконтакте у него нет, кроме одной, где плохо видно лицо, а тела вообще нет. Ему 18, мне 20. Ну приезжаю, опоздала ещё, он где-то там минут 10 сидел, ждал, лол. И что я вижу? Мелкий (173 от силы), ужасно одетый в какую-то непонятную куртку цвета блевотины и ботинки цвета мочи чмоша. Может какую-нибудь одинокую жируху это и устроило бы, как собеседник на вечер, но я еле удержалася от того, чтобы развернуться и уйти. Ну похуй, решила не обижать. Пошли в кофейню. Снимаем куртки, я выставляю на показ мои пиздатые татухи, iPhone 7 Plus и шмот за 700 баксов. А он блядь в ОГРОМНОМ худи на молнии(!), которая расстегнута и из-под неё видно ебаную футболку с эмблемой JavaScript (!!!). И телефон вроде был Xiaomi. Я вздохнула и заказал кофе. Сидим, говорим. Стеснительный, пиздец. Просто ходячий комплекс. По ходу диалога выясняется, что он играет в ебаную Доту 2, пишет на React + Redux, чето там пиздел ещё про Webpack, ES6, типа модно... Смотрит аниме и читает комиксы. Просто ничтожество. Ну, я вздохнула, потравила немного баек из моей жизни, вышли из кофейни, пошароёбились немного по центру города. Всё это время я чувствовала себя так, как будто гуляю с младшим братом. Сняла денег с карты, захотелось ещё кофе, пошли в другую кофейню. Заходим. Берём кофе. Он опять снимает куртку и я снова вижу эту блевотную ебливую кофту с футболкой с ебучим логотипом JavaScript, которые скрывают его дрыщявую фигуру, делая его ещё более жалким. Ну и сидит, что-то пиздит про виртуальный DOM, я медленно разглядываю его. Плеч нет. На лице прыщи. Полноватые ноги. Детские кисти рук. Тонкие, убогие губы. Облысение. Рядом снуёт высокий, подтянутый блондин официант с потрясающей улыбкой, я сижу с ребёнком, который мне рассказывает, почему Facebook — лучшие.
Короче, меня прорвало. Я начала разносить его по каждому пункту, начиная с доты 2 и React + Redux, которые безусловно являются говном для даунов, к которым нормальный парень никогда не притронется и заканчивая его сука кофтой, встречают по одёжке, провожают по уму, запомните это, тупорылые долбоёбы. Всё это время он сидел и молчал с какой-то жалкой полуулыбкой, иногда пытаясь что-то промямлить в духе "за React будущее", "мы передаем props в компоненты", "мне нравится Javascript" и прочие инфантильную хуйню сосачерских вырожденецев-программистом.. Финалом стало то, что я сказала ему: "В моих глазах ты не выглядишь, как мужчина", мы расплатились, я довёла его до остановки, дождалась, пока автобус увезёт его нахуй и пошла смотреть на пожар: какой-то сраный склад загорелся и я пару минут наблюдала это зрелище, наслаждаясь видом и табаком. И блядь, как кульминация всей этой хуйни, я приехала домой, легла спать, а он пишет мне "Приятных тебе снов" и предлагает пойти с ним куда то. Я просто угарела, сисоньки мои.
Но это вообще не суть, так уж получилось, что он сегодня написал, мол, давай встретимся поговорим, а то мне не хочется дома сидеть весь день. Ну мне как-то особо делать в выходной тоже нечего было, почему бы и нет. Поехала в центр в условленное место. Сразу скажу, что фотографий вконтакте у него нет, кроме одной, где плохо видно лицо, а тела вообще нет. Ему 18, мне 20. Ну приезжаю, опоздала ещё, он где-то там минут 10 сидел, ждал, лол. И что я вижу? Мелкий (173 от силы), ужасно одетый в какую-то непонятную куртку цвета блевотины и ботинки цвета мочи чмоша. Может какую-нибудь одинокую жируху это и устроило бы, как собеседник на вечер, но я еле удержалася от того, чтобы развернуться и уйти. Ну похуй, решила не обижать. Пошли в кофейню. Снимаем куртки, я выставляю на показ мои пиздатые татухи, iPhone 7 Plus и шмот за 700 баксов. А он блядь в ОГРОМНОМ худи на молнии(!), которая расстегнута и из-под неё видно ебаную футболку с эмблемой JavaScript (!!!). И телефон вроде был Xiaomi. Я вздохнула и заказал кофе. Сидим, говорим. Стеснительный, пиздец. Просто ходячий комплекс. По ходу диалога выясняется, что он играет в ебаную Доту 2, пишет на React + Redux, чето там пиздел ещё про Webpack, ES6, типа модно... Смотрит аниме и читает комиксы. Просто ничтожество. Ну, я вздохнула, потравила немного баек из моей жизни, вышли из кофейни, пошароёбились немного по центру города. Всё это время я чувствовала себя так, как будто гуляю с младшим братом. Сняла денег с карты, захотелось ещё кофе, пошли в другую кофейню. Заходим. Берём кофе. Он опять снимает куртку и я снова вижу эту блевотную ебливую кофту с футболкой с ебучим логотипом JavaScript, которые скрывают его дрыщявую фигуру, делая его ещё более жалким. Ну и сидит, что-то пиздит про виртуальный DOM, я медленно разглядываю его. Плеч нет. На лице прыщи. Полноватые ноги. Детские кисти рук. Тонкие, убогие губы. Облысение. Рядом снуёт высокий, подтянутый блондин официант с потрясающей улыбкой, я сижу с ребёнком, который мне рассказывает, почему Facebook — лучшие.
Короче, меня прорвало. Я начала разносить его по каждому пункту, начиная с доты 2 и React + Redux, которые безусловно являются говном для даунов, к которым нормальный парень никогда не притронется и заканчивая его сука кофтой, встречают по одёжке, провожают по уму, запомните это, тупорылые долбоёбы. Всё это время он сидел и молчал с какой-то жалкой полуулыбкой, иногда пытаясь что-то промямлить в духе "за React будущее", "мы передаем props в компоненты", "мне нравится Javascript" и прочие инфантильную хуйню сосачерских вырожденецев-программистом.. Финалом стало то, что я сказала ему: "В моих глазах ты не выглядишь, как мужчина", мы расплатились, я довёла его до остановки, дождалась, пока автобус увезёт его нахуй и пошла смотреть на пожар: какой-то сраный склад загорелся и я пару минут наблюдала это зрелище, наслаждаясь видом и табаком. И блядь, как кульминация всей этой хуйни, я приехала домой, легла спать, а он пишет мне "Приятных тебе снов" и предлагает пойти с ним куда то. Я просто угарела, сисоньки мои.
Зарепортил
Какая-то переделанная паста?
Но вед он прав, за реакт будущее
> взлетела, вакансий море. Как считаете, можно и дальше дрочить его? С моей колокольни выглядит так, что еще пару лет его ничто не перегонит, но может я зашорен и уже пора потихоньку готовить перекат? И если да, то куда именно? Часто слишу про второй ангуляр и вью, что сильнее укрепит мои позиции на жоп маркете?
другой анон. Сейчас вкатываюсь на него и, пока что, все идет очень даже хорошо. Можешь пояснить за подводные?
Бро, поздний совет, выбор сделан. Буду ебаться с метеором. Настолько все плохо с ним?
Зачем он нужен и нужен ли он вообще?
DOM, картинки и прочая залупа загружаются не моментально и к моменту начала исполнения скрипта могут быть недоступны. Если тебе нужно оперировать с домом, например, то разумно сначала подождать, пока он прогрузится
Зочем сегаешь? Я ж слоник и ваш js практически нихуя не шарю.
Вот ту книгу с носорогом в 2013 прочитал и уже нихуя не помню.
А вот такой еще вопрос. Есть массивчик, как на пикче. Как мне его тудым-с в локалсторедж запихать? Прям вот так:
localStorage[hello] = array;
Или его надо как-то сериализовать как в PHP?
Индекс n у меня не от нуля идет (anglemin). Индексы похерятся, когда я его из локалстореджа обратно доставать буду?
https://developer.mozilla.org/ru/docs/Web/API/Window/localStorage
Все с твоими индексами нормально должно быть, в жс массив - это просто объект с ключами-числами и с прототипом Array.prototype
Че-т бяка получается. В локалсторедж записывается каша.
https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem
Написано же английским по белому - нужен DOMString. JSON.stringify(array) сделай перед тем, как засовывать
Так?
localStorage["hello"] = JSON.stringify(array);
var array2=JSON.parse(localStorage["hello"]);
localStorage.setItem("hello", JSON.stringify(array));
var array2 = JSON.parse(localStorage.getItem("hello"));
Ладно тебе, не видишь - человек не шарит, что ты сердишься-то сразу
Пикчу даун делал
https://jsbin.com/nosisoqabe/edit?html,js,console - вот мой код.
Подскажите плз в чем проблема и почему не работает?
Да, вижу.
Ты ее объявил, но значения не присвоил.
После объявления в переменной лежит (переменная ссылается) undefined.
А ты работаешь с ней как с объектом - обращается через точку к свойствам.
Пиши var cache = {};
Спасибо, я в общем понял что код вообще кривой и логики в нём ноль, но всё равно спс.
Кстати когда пишу такое - cache.[arguments[0]] , то выдаёт ошибку. Можно ли всё равно как-то реализовать подобную строку? Т.е мне нужно чтобы свойство в cache называлось как первый аргумент из текущего объекта.
фикс: я долбаеб, точку забыл убрать.
Всё таки доделал скрипт. Криво, косо, нечитабельно, но кое-как доделал, немного хотя бы разобрался, но всё равно в голове немного каша =) Первый раз с помощью отладчика в браузере разобрался почему не работает нихуя
http://jsbin.com/weyutovezu/edit?js,console - сделано.
У тебя всегда выполняется вызов исходной функции. Только потом идет проверка есть ли на такое значение аргумента что-то в словаре.
По этому теряется весь смысл кеширования. Нужно проверять наличие в словаре ключа и если есть, сразу возвращать значение.
Задача:
1. Среда исполнения User.js через greasemonkey
2. Инструменты jquery или другая либа
3. Необходимо лазить по сайту (типо crawler) извлекать какую-то информацию, складировать с возможностью последующей выгрузки, и на основании страницы переходить на другую страницу.
Все это должно быть в браузере, никаких ноде.жс и тд.
Может есть уже какие то либи или как мне такое организовать?
Раньше когда нужно было что-то зациклить. Делал рекурсивный вызов через SetTimeout
https://pastebin.com/BvButcXx
И внутри соответственно AJAX запрос. Теперь когда попробовал вместо AJAX запроса вставить
>$(location).attr("href","http://example.com/"+get_uri());
Почему-то не зацикливается.
Нормальный у тебя код.
Решение ведь понял.
Попробуй еще числа фибоначи на таком декораторе посчитать и без него. С декоратором будет будет в овердохуя раз быстрее.
А этот пример с рандомом не очень наглядный.
У меня солянка. Как f не проебать?
Если каждый элемент массива в отдельную ячейку локалстореджа писать - как это скажется на производительности? И на объеме данных в хранилище? Я так понимаю, что названия ключей тоже в этих 5мб хранятся, а названия эти подлиннее самих значений.
Хотя, можно наверное все эти f отдельным массивом записать.
>>979775
Что не так с var?
просто этот новомодный жсер считает, что var для лохов, для пацанов только let
Если у тебя солянка, то нехуй называть это массивом, сделай это объектом, у которого некоторые ключи просто будут числами. Если нужна возможность итерации по свойствам с числовыми ключами - читай про Object.defineProperty и enumerable. Хранить что-то, помимо числовых ключей, в массиве - это хак и у тебя будет все ломаться, как те же stringify / parse
Алсо
>Что не так с var?
Не так то, что var ложит хуй на области видимости переменных и на порядок их объявления. Нихуя блять не интуитивно, что
{
var mocha=true;
}
console.log(mocha);
выдаст true. На дебаг такой глупости можно полдня убить.
Ой, да нахер еще объекты городить. Таки f буду хранить отдельным массивом в локалсторедже.
Норм сделал или наговногодил с htmlbook функции утащил?
есть css компоненты:
http://blazecss.com/components/cards/
есть card компонент, он рамку добавляет и отступы. когда его использовать, а когда просто добавить padding/margin?
>для пацанов только let
Все так. Лучше оперировать адекватной областью видимости. Если не можешь код без ВАР написать, то нахуй с пляжа.
s/а/б/g
Анонусы, мозг сломал. Надо подправить страницу, но в js нихуя не смыслю.
Есть элемент
<input type="text" id="add_task_actionQuantity" name="add_task[actionQuantity]" required="required" class="form-control" style="width: 30%;" placeholder="ХУЙ">
alert(document.getElementById("add_task_actionQuantity").placeholder);
Показывает "ХУЙ", но
alert(document.getElementById("add_task_actionQuantity").class);
нихуя не показывает. Почему так?
после очистки ты снова ставишь в следующей строке
анонимная функция. Правильно?
то есть не передавать их приходится много раз а
много раз писать хуйню в духе
<SecondLevelComponent height='300' />
а в нем
<ThirdLevelComponent height='300' />
а этот prop нужен в
<ElevelLevelComponent />
интерпретатор js увидит твой сеттаймаут, и запомнит, что через 100мс ему надо запустить анонимную функцию, а пока эти 100мс он будет ждать, он займется другой работой а именно выполнит функцию хардвок после выполнения которой переменная i станет равно 1e8 после выполнения хардвок интерпритатор вспомнит, бля яж через 100 мс должен был выполнить анонимную функцию и выполнит ее
иными словами да, ты правильно понял
Как таймаут поставить? То есть может быть такое, как я описал, и я не пизданулся окончательно?
В вспомогательных либах контекст юзают
redux + разделение на smart и dumb компоненты
Английский подучи
правильно относительно чего ? Я даже за жквери не брался пока ecmascript'овый стандарт не вызубрил. А так если понимаешь о чем рассказывается в учебнике/доке по фреймворку то все норм.
а если по сути:
если ты учишься то учи на насколько можно низком уровне, когда будешь работать тогда пользуйся абстракциями которые предоставляют vue/css фреймвоахахахахахки
>>980778
Уже когда высрал, вспомнил за feathers и экспресс. Мб бекенд (там умеренно сложная апишка) можно ебануть на ноде?
Ничего я не учу, делаю парсер для хобби. Можешь помочь - помогай с меня спасибо, не можешь - мимо проходи.
Очевидно, что скрипт потом заполняет таблицу. Как помочь на пхп не знаю. На джс наверное нужно смотреть в сторону phantomjs or nightmarejs
Cамое примитивное - поставить таймаут. Продвинутый уровень - промис или чейн коллы
Cорри, ответ был тому анону. От пыхи всегда должен придти уже отрендеренный контент, если у него пусто значит он после прорисовки страницы загребается жсом, значит нужно убеждаться что страница отрисована, проще всего - начинать парсить когда точно знаешь что значения стянуло. Если там какой т аякс реквест то делать что-то дальше когда он выполнился
>>980797
>>980807
Я парсю с phpQuery, вот так это выглядит в коде. Сделаю все, что скажете, но с этой либы не слезу, раньше пытался стандартными методами и не получалось, хотя консультировался в тредах.
Есть XPath который в разы быстрее, и кстати в браузере тоже можно скопировать его как селектор.
Окей. Через часик я попробую xpath и отпишусь. Но я даю гарантию 146%, что не заработает без бубна.
Работает, кажись
Что первым делать на проекте? Бабилить файлы, а потом собирать их вебпаком или сначала вебпаком в бандл собирать, а потом бабилить?
ога нашел вроде годный ссыль по работе с вебпаком, где за лоадер говорится и показывается, не могу теперь вспомнить почему я ранее юзал отдельно бабель и отдельно вебпак, то есть сначала гонял все файлы в бабель форму, потом вебпаком бандлил. х3 о чем я думал полгода назад. С лоадером вроде попроще все, если взлетит, конечно, лол
Ах да, и нужен ли он мне, ибо я юзаю СКСС, то есть файл и так компилится в единый, в общем, плохо шарю как лучше организовать все, подскажите, кто шарит. Буду благодарен.
Ну ебля с браузерами это тоже не сахар.
сайты воруешь гаденыш ?
'use strict';
let sym = Symbol();
alert( sym );
В таком коде ошибка.
символы не приводятся к строкам. Ну разве что через String()
Вы видите копию треда, сохраненную 24 мая 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.