Ссылка на прошлый тред: >>1043979 (OP)Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.Часто задаваемые вопросы:https://github.com/vladimir37/js-thread/blob/master/Wiki/faq.mdСписок материалов для изучения:https://github.com/vladimir37/js-thread/blob/master/Wiki/learn.mdСписок инструментов и направления JS-разработки:https://github.com/vladimir37/js-thread/blob/master/Wiki/tools.mdИнструмент для визуализации и экспериментов со связями между объектами в JavaScript:http://www.objectplayground.com/Конфа /pr/ в Slack:https://slack-2chpr.herokuapp.com/JS-конфа в телеграме:https://telegram.me/jsthreadНЕ КОПИРУЙ КОД ПРЯМО В ТРЕД! Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
>>1052010 (OP)Cажи джава-скрипт макакам
>>1052010 (OP)освятил https://wtfjs.com/
Ну чё, жс макаки, когда вам там нормальное ооп завезут? Ахахахах, никогда))
>>1052021И слава богам Египта!
>>10520211. В JavaScript нет классов — есть конструкторы2. Цепь прототипов — база на которую опирается все наследование в JavaScript3. Свойство объекта получается с использованием цепи прототипов4. __proto__ — это ссылка на прототип конструктора(prototype)5. Оператор new создает пустой объект с единственным свойством __proto__, которое ссылается на F.prototype, выполняет конструктор F в котором this — созданный ранее объект и возвращает объект6. Оператор instanceof не проверяет порожден ли данный объект «Object» конструктором «ObjectsConstoructor», для своего вердикта он использует цепь прототипов7. В JavaScript значение this определяется вызывающей стороной по форме вызова8. void — это оператор, а не функция. undefined, null — примитивные значения
>>1052035>В JavaScript значение this определяется вызывающей стороной по форме вызова
>>1052041В JavaScript значение this определяется вызывающей стороной по форме вызова. Правило по которому определяется то, что будет в this такое объясню по-простому:1. Если метод вызывается напрямую (без new, call, apply, bind, with, try catch), то значением this будет тот объект, который стоит перед точкой, слева от имени метода. 2. Если точки нет (функция вызывается напрямую), то this будет приравнен к undefined, null или window(global), в зависимости от среды и «use strict».3. Если выражение представляет из себя не ссылку, а значение, то применяется пункт 2
>нет нормальных классов>нет абстрактных классов и интерфейсов>наследование через жопу>нет модификаторов доступа
>>1052045Зато есть TypeScript и пиздатый event-loop
>>1052045>нет нормальных классов>нет абстрактных классов и интерфейсов>наследование через жопу>нет модификаторов доступавсё давно есть#1 https://ilikekillnerds.com/2015/06/abstract-classes-in-javascript/#2 https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Inheritance#3 https://scotch.io/bar-talk/4-javascript-design-patterns-you-should-know
>>1052010 (OP)в ЖС уже и машинное обучение подвезли https://pair-code.github.io/deeplearnjs/
>>1052050ебать ты конченный, убей себя нахуй
>>1052052боль неосилятора бесценна:3
Есть два массива, состоящие из строк.Написал функцию, которая лексикографически сравнивает один массив с другим и если строка первого массива присутствует в какой-либо строке другого массива, тогда она становится часть нового массива и далее выводится.Использую метод instanceOf, который всегда выдает -1, кроме полного совпадение элементов массива.Что я делаю не так? https://jsfiddle.net/ax24rbsx/
>>1052051Добавил в закладки.Кстати, интересно, а можно ли из ноды задействовать гпу для ресурсоемких вычислений?
>>1052062Ишь чего захотел! Жри что дают мразь!
Отписался в трапо треде
>>1052059так работает?>if (array2.indexOf(word) !== -1)
>>1052059>лексикографически>я умныйНет.
>>1052042Ты забыл про this в событиях типа onclick
>>1052021>>1052045Нормальные на другом языке - не нормальные на JS.Тугодумам непонятно, что это другой язык и у него другое строение, философия и приемы программирования?И заберите свои сраные классы обратно, а то понаехали со своим уставом в чужой монастырь, задроты.
>>1052078Нет
>>1052081Подскажи, что не так в коде?
>>1052096https://jsfiddle.net/6be5zhy0/
>>1052100Замени startsWith на includes если нужно частичное совпадение.
>>1052101Не понял. Ни один из этих методов не использовал, они и не подходят.В первом массиве есть строка 'op', во втором 'pop' и так как первая строка полностью имеется в строке второго массива она должна передаваться в новый.
>>1052110https://jsfiddle.net/6be5zhy0/1/Не сохранилось.
>>1052096ролл >>1052078
>>1052113Спасибо!"Лексикографически" это из задания. Я думал это о сравнение строк, хоть и гуглив слово. Оказалось надо было по алфавиту отсортировать.И в этом решении работает indexOf. Видимо я пытаясь сначала уменьшить вероятность появления ошибки использовал цикл, вместо высшей функции, получил только проблемы
В вакансии дотнет-джуна требуются базовые знания JS. Что они под этим понимают и как их оптимальнее получить за пару дней? Помогите советом мудрым
>>1052165Манипуляции с HTML, синтаксис, представление о ООП в JS, базовое понимание о замыканиях, AJAX.
>>1052165https://learn.javascript.ru/first-stepsоткрываешь это и ебошишь, за два-три дня вполне реально осилить и понять все разделы. В ES2015 не лезь только, это уже не базовое.
>>1052010 (OP)>CouchDBспросил уже ответ тут >>1052141 но там похоже все умерли давно.спрошу еще и здесь, так как CouchDB тесно связана с ЖС.мб юзал кто CouchDB для продакшина, какие подводные камни?
>>1052173>>1052177Спасибо. Ещё вопрос: мне чувак сказал, мол, раз знаешь шарп, то тут особо проблем не будет, потому что язык си-подобный. Это верно?
>>1052185Нет, полная хуйня. Шарп это жаба с традиционным говно ооп уровня крестов. Впрочем если ты linq-мастер, то тебе будет норм.
>>1052184Кауч в продкшне юзали Meebo, хотя ты, наверное, и не застал, что это за сервис был такой.Гугли их юзкейс.
>>1052194>Meeboспсб за идею, буду гуглить разные рабочие проекты/сервисы с участием этой дб.Мне их идея с документами, которые могут быть одновременно приложениями доставляет, но там вроде как не всё гладко с записью большого количества простых документов и потреблением места на диске.
>>1052208>*их идея = идея создателей Кауч>fix
>>1052185Отчасти верно.
Анон, подскажи. JS недавно обмазываюсь, тут странное дело.Отправляю ajax-запрос через jQuery на php-обработчик в формате json (JSON.stringify). Всё ок, пхп получает и тоже возвращает json (json_encode). Обычно раньше, я в JS использовал JSON.parse, однако сейчас увидел, что ответ уже приходит в виде массива JS, то есть уже распарсеный. Это всё из-за того, что указан type: 'json', верно? До этого использовал type: 'html'.
>>1052224Перечитал свой вопрос (и посмотрел на сайте jQuery) и понял, что спросил о том, что и так очевидно. Стыдно.
Читаю про ноду и там через каждое предложение - handle request. Как это переводиться? Управление реквестом, разбирательство с реквестом?
>>1052277Обработай запрос.
>>1052291Почему учебник Node на сайте Мазилы сразу мне жестко поясняет за шмот за Express? Почему сначала подучить Ноду, а не сразу дрочить фреймвоки?У меня от этой хуйни дедушка заулыбался, блять написали учебник Express
>>1052298>подучить НодуНахуя зубрить стандартную библиотеку?
>>1052185Пишется похоже, но идеология другая.Основа - прототипы, в них разбирайся в первую очередь, чтобы не тормозить.
антоны помогите сделать следующее: пишешь ник и игру тупо проверяется список зрителей каждого стрима и ищет этот ник как оно должно работать? чисто схематически с запросами\парсами и всякой такой шляпой
>>1052312>нахуя зубрить JavaScript когда есть jQuery?Чтобы писать божественноеjQuery.extend(anchor,{href,'about:blank'}) вместо устаревшегоanchor.href='about:blank'
>>1052298У этого дедушки геморрой
>>1052361В догонку - еще важное отличие от строгих языков - в JS нельзя быть уверенным в значении переменной и вообще в ее наличии, то же самое с аргументами функций. Так что перед использованием переменные нужно проверять на существование и тип значения в них. Это сперва очень непривычно для классических программистов, и потому порождает кучу элементарных ошибок.
>>1052372Ты похоже не умеешь программировать? Тогда для решения такой задачи тебе ой как далеко. Если срочно - попроси кого-то сделать. А если хочешь сам - приступай к изучению JS (или Python/PHP/Ruby)
Node.js, Express. Мне надо в темплейт Pug передавать JSON объект для рендеринга (ссылки для навбара, а также саб-меню для этих ссылок). Навбар будет открываться на любой странице, так что я не вижу смысла передавать с каждого контроллера одинаковый JSON файл. Неужели мне нужно определять объект в самом файле Pug? Есть какой-нибудь красивый способ это сделать? Например, определить JSON файл на стадии запуска сервера, и чтобы Pug имел доступ к этому JSON файлу.
>>1052552Я разобрался. Через app.locals закидываю прочитанный JSON файл, а потом в рендер передаю request.app.locals.переменная.
>>1052186Говно — это ваш недоязык, который отчаянно пытается походить на нормальный, но каждый раз обсирается всё сильнее и сильнее.
на третьи сутки выяснилось что top - зарезервированное слово
Изучаю Vue. Пока все норм, в отличие от Angular и React все просто и олдскульно, не надо ставить ноду, npm и прочий хайп. Просто восторг для ретрограда, аж прямо на 10 лет назад вернулся в эпоху Delphi и диал-апа.Но возник вопрос, а где брать готовые компоненты? Раньше брали jQueryUI/ExtJS + Bootstrap для стилизации и тем. Но у Vue свой виртуальный DOM вместо браузерного, и jQuery с ним работать не умеет (а значит, и эти фреймворки не будут). Так что, неужели придется самому писать всякие панели, деревья, сплиттеры и т.д.? Или есть какие-нибудь готовые наборы?
Я не понимаю, почем у меня такая боль от редакса? Бойлерплейт на бойлерплейте.
Вот интересно как сделать счетчик времени вперед. счетчик обратного полно в инете. то есть нужно задать дату когда фапал последний раз и счетчик отсчитывал сколько дней часов и тд прошло от этой даты, stopwach типа. Вроде задача тривиальная. Можете накидать примерно как это будет выглядить?
>>1053005>выглядеть
Котаны, обьясните нубу как сделать кастомное событие на JSВот:https://jsfiddle.net/xwghvkyw/событие таково - допустим когда в die появляется текстовая строка "www", - это считается событием, и запускается обработчик, допустим с алертом.Нихуя логику не пойму. А у кантора мудреный пример.Обьясните, как нибудь попроще нубу.
аноны, смотрите: есть такой вот примерhttps://jsfiddle.net/jm0vbtnz/1/как можно получить доступ к data-id не навешивая обработчик на div, потому что div в будущем будет перерисовываться.
>>1053148https://jsfiddle.net/jm0vbtnz/2/фикс
>>1053150Повесь обработчик на body.
>>1053156но обработчик и так на body Навешен
>>1053158Вот я слепошарый(
>>1053160https://jsfiddle.net/jm0vbtnz/4/уже сам разобрался
>>1052998Ну и юзай бойлерплейты, две строчки в терминале и готово, в чем проблема?
>>1053137Аноны, помогите! Я аж чешусь бладж!!!вот обновленный код с комментариями:https://jsfiddle.net/v9nyga5p/
>>1053164Это мудацкая хуйня. Нахуя блять эти модные фреймворки, если они заставляют генерить тонны бойлерплейта?
>>1053179Можешь переписать сеттер innerHTML, чтобы тот в добавок к присвоению нового значения еще и вызывал нужное тебе событие, или добавить новый метод/сеттер элементу, чтобы тот присваивал innerHTML и вызывал твое событие, или использовать прокси, или реагировать на событие DOMSubtreeModified, или использовать MutationObserver (не уверен), или либу какую найти, которая упрощает это дело, но любое событие где-то да нужно вызывать вручную, ты можешь только замаскировать и спрятать это подальше. Могу ошибаться.
Как можно обрабатывать евенты срабатывания скролла вверх и вниз на ванильном js? (хочу без библиотек попробовать сделать) Я хочу сделать просмотр картинки такой же как на двощах, и хз как евенты скролла обрабатывать.
>>1052010 (OP)Здравствуйте, есть один браузер хром(60.0.3112.107) для андроида и мне нужно смотреть куки. До недавнего времени я использовал "javascript:alert(document.cookie)" и все бы ничего пока не настал лимит отображения, то есть новые куки я не вижу.Задачи:1. Вытянуть по названию(я его знаю)2. Удалить первые.И как это сделать я не знаю. Вот допустим должна быть куки с названием Gay_porn_id что мне нужно написать что бы увидеть ее значение?
>>1053262Попробуй так:>javascript:(function del(cookie){setTimeout(() => {del();del();del()})})()
>>1053262Подключить телефон к пека и смотреть через инструменты разработчика, предварительно настроив удаленную отладку. Или я тебя не правильно понял.
Короче намутил фигни и похоже печнька что мне нужна уже безвозвратно удалилась. Печально, но жить можно. как оказалось их скрыто больше однойНемного почитал здесь:https://learn.javascript.ru/cookieИ вот смотрите javascript:alert( document.cookie ); у меня работает и для этого сайта отображает куки usercode_authА вот когда я javascript:function getCookie(usercode_auth) то ничего. >>1053266> del> {del();del();delНе хочу тебя обидеть но оставлю это на потом, все равно буду удалить все что бы очистить "кеш отображения" на следующие разы.>>1053270Я вообще не программист, даже телефон не рутирован. С рутом похоже есть программы что могут читать куки... То что ты написал для меня это уровень расшифровки https трафика на мощности какой нибуть криптофермы, ради несчастной печеньки(Ну вы поняли).
>>1053247Спасибо бро за развернутый ответ. Я сидел и горевал по поводу того что я тупой, что то что мне требуется лежит на поверхности, а я понять не могу.>>Можешь переписать сеттер innerHTMLНе хочется ковырятюся в нативных методах.>>добавить новый метод/сеттер элементуА вот это уже реальнее. Добавить метод элементу, которое будет реагировать на изменение innerHTML и вызывать кастомное событие.Шпасибо!
ПолучилосьКак итог мне нужен был всего-то такоеjavascript: getCookie("Gay_porn_id");Теперь я явапрограмист?
>>1053319>>getCookie("Gay_porn_id")>>Теперь я явапрограмист? Никаких сомнений
Анончики, глупый нубяра снова с вами.Снова пример от кантора.Снова прошу хелпа!https://jsfiddle.net/Lcrz4pzp/комментарии внутри
>>1053408Халп
>>1053412Бука!
Анон, помоги.Такой пример.Есть сайт, на котором прогружаются div-ки с баннером (на каждой странице домена) и каждый раз, когда я захожу на какую-либо страницу сайта, у меня подгружается эта div'ка.Вручную я удалить ее могу через панель разработчика (просто hide element в chrome), но если я обновлю страницу или зайду на другую, дивка снова подгрузится. Можно ли как-то автоматом зашить удаление этой div в браузере?
Есть готовые костыли для уменьшения размера JSON для однотипных объектов? Объекты чтобы заменял на массивы, а схему восстановления имён хранил в единичном экземпляре.
>>1053647deflate и не еби мозг
Уважаемые Котаны, скажите пожалуйста, можно ли, зная лишь хтмл цсс и жс написать например борду объявлений, подобно данной, а так же некую биржу, куда юзеры будут запихивать свои товары например, а другие будут устанавливать фильтры и искать то что им нужно? Понимаю, что второе наверное проще делать на пхп, но в планах пхп нет. И возможно ли написать на сайте-бирже мини-чатики, где каждый зашедшиq сможет быстро поболтать конкретно с разместившим данную объяву? Что за связка потребуется минимум для таких больших дел?
>>1053696только если для взаимодействия с бд ты возьмешь ноду.
>>1053696Для всего хватит хтмл цсс жс, если нода на беке устраивает.
>>1053696связка не проблема, экшен будет когда тебе начнёт не хватать ресурсов и все это нужно будет как-то срочно растянуть на несколько машин
>>1053005Псевдокодvar fappedLastTime = userinput;var daysSinceFapped;for (var i=0; i<100; /все равно больше не продержишься / i++) {daysSinceFapped++}Время берешь через Date().getTime()
https://soundcloud.com/one-eight-hundred/javascript-hottt
>>1053948https://youtu.be/dIiwFzFvsmw
Решил изучить js, помимо codeacademy и eloquent js читаю курс на http://learn.javascript.ru. Вот на последнем я дошёл до вычисления факториалов и числа Фибоначчи через рекурсию и мне тяжело, я едва понимаю логику кода в примерах. До этого программированием не занимался. Вопрос: это у всех так? Может, просто не моё? Мне 30 и я гуманитарий, может дело в этом.
>>1054054Люди делятся на два типа.Одни понимают указатели, другие нет.Одни понимают рекурсию, другие нет.Одни понимают трансформеры монад, другие нет.
>>1054054https://www.youtube.com/watch?v=rh1mP02NFoM
>>1054059Итого 6 типов насчитал
>>1054179Это все одни и те же люди. Одни тупые, другие нет.
>>1054054Ну так тут не в программировании дело, а в математике. Но вообще-то если гуманитарий, то каким хером тебя в программирование понесло? Деньги?
>>1052955Вот здесь https://vuejs.org/v2/guide/plugins.html в конце написано:>Checkout awesome-vue for a huge collection of community-contributed plugins and libraries.> https://github.com/vuejs/awesome-vue#user-content-components--libraries
>>1054182Кратко: да, деньгиПоследние 6 лет я работаю не по специальности на тупиковой должности. Работа вахтовая, много свободного времени, решил как-то его занять.>>1054142Спасибо, буду изучать
>>1054192>не по специальности на тупиковой должностиКак и почти вся страна. А почему сразу в техвуз не пошел, математику не учил? Какие-то другие планы были, артистом например стать?
>>1054198Почти. Дипломатом c:
так блет, я пришел к понимаю того что вебдевелоперу нужен линухс чего начать ?
>>1054206Купи макбук.
>>1054054Как чувак который осилил почти весь учебник кантора скажу - это ебанное начало только. Будет тяжелее.Очень высок уровень абстракции. И должно выработаться специфическое мышление. >>1054192>>Кратко: да, деньгиЧестно, не уверен что это разумно. Суть в том что программирование "должно зайти", когда ты сидишь до часу ночи разбирая какую нибудь хуиту, забесплатно, тупо потому что нравится. И второе - когда ты осилишь учебник кантора - ты вдруг поймешь как мало ты знаешь. Хочешь пилить полноценные сайты на сервере - изволь учить node.js, что бы самостоятельно верстать быстро - бутстрап. И куча еще всяких технологий.И при всем этом пиздице ты через месяцев 6-7, когда все осилишь, потратив дохуя часов - ты пойдешь каким нибудь джуном за 40 тыщщ.И ток через пару лет вьеба ты доползешь до сильных ЗП. Наверное.К сожалению в россиюшке программирование привлекательно единственно тем, что гипотетически ЗП могут прийти к европейскому уровню ЗП, ну или прямо работать с заграницей не поднимая сраки с родного дивана.Я лично перекатываюсь потому что я по образованию "сисюадмин", но уже 5 лет работаю в информационной безопасности, а это настолько бумажная специализация что пиздец. Тошнит уже.Я мог бы в какой нибудь банк уползти и там кидать акты на заключения. Но заебло. Я хочу технической работы.Мой совет - научись блядь штукатурку нормально класть. Через пару месяцев будешь подмастерьем, через год будешь хуярить на себя. И поднимать нихуя не меньше, если работать и не бухать.
>>1054199Странно - раньше это считалось выгодной профессией, куда там каким-то кодерам.
>>1054274Да это шутка была.
Нужны сильные прохромисты на js в проект с перспективой https://pastebin.com/m2xD8nkW
>>1054420Подробности сразу давай. Скока денег?
>>1054420Жму лежа 175, достаточно сильный?
>>1053628Можешь поставить расширение для браузера, которое применяет пользовательские стили к сайту (для хрома - User CSS, например). Тогда можно просто к селектору этого баннера `display: none` применить.
>>1054420ой я что-то засмущалась и вышла. там столько мальчиков. ._.
Аноны, сейчас устраиваюсь фронт-энд джуном на реакт/редакс. Учу эту связку дай бог два месяца, но вроде что-то уже начинаю схватывать. Может кто мельком чекнуть мой код на наличие совсем уж дичайших обосрамсов? Вот приложуха которую пилю около месяца. Вкратце - сервис для хранения иностранных слов. Создаешь список - добавляешь туда слова которые хочешь выучить - прогоняешь тесты по нему (тесты конфигурируешь сам, там довольно много настроек) - по окончании теста слова, которые правильно решил, отмечаются как выученные. Есть еще переводчик (просто надстройка над яндексовским, работает так же), слова прямо из него можно добавлять в списки. Показать как работает пока не могу, это и не важно, просто гляньте код кому не лень.https://github.com/sorfeai/vocabulary
>>1054430Самое главное забыл. Могу ли я сейчас претендовать на джуна в не самой опущенной команде?
>>1054432Можешь.
>>1054433Это из серии встань и иди?
>>1054434Глянул твой код мельком. Можешь встать и идти, у тебя уже лучше чем у 80% тут.
>>1054435Учитывая что я не понимаю 80% процентов того о чем тут говорят это странно, лол.
>>1054438Лол, помню тебя, ты выкладывал резюме во фронтенд треде полгода назад. Тебя что, не приняли тогда на работу, или что? Что то у тебя прогресс медленно идёт, я за это время уже дохуя приложений высрал.
Как сделать вот такое:имеется большой массив вида [[a: 1, param: 2], [b: 2, param: 3]]Как функционально реализовать следующую задачу - обработать каждый элемент массива (как в map();) плюс вставить после обрабатываемого элемента дополнительные?Императивный алгоритм у меня есть, может есть какие то методы для этого?Например:[[a: 1, param: 2], [b: 2, param: 3]]// Умножить первый подэлемент на 2, вставить дополнительный соответственно подэлементу param[[a: 2, param: 2], [new: 1], [new: 1], [b: 4, param: 3], [new: 1], [new: 1], [new: 1]]
>>1054588Приняли, я дропнул потому что НЕ МОЕ и работал год дизайнером/иллюстратором, заебало и опять пересел на фронт. Поэтому я можно сказать на том же уровне что и год назад.
>>1054592https://stackoverflow.com/questions/37128624/terse-way-to-intersperse-element-between-all-elements-in-javascript-array
>>1054592>может есть какие то методы для этого?Reduce.
>>1054664Редьюсом обходишь массив, внутри коллбэка умножаешь текущий элемент и вставляешь новый по методу что анон кинул >>1054663
Помогите с регуляркоблядством. Есть строка, типа 'abcabcabcxyzabcabcxyzxyz'Над из этой хуйни одним оператором получить:['abcabcabc','xyz','abcabc','xyzxyz']
>>1053408Короче анон, в данном примере я до определенных вещей дошел сам.спасибо, пидоры, помогли бладжвпрочем зато сам покопротивлялся, туда сюда учебник полистал, и по итогу понял сам, что оже полезноНо есть вопросик.https://jsfiddle.net/Lcrz4pzp/3/
>>1054868>спасибо, пидоры, помогли бладжНахуй пошел, очередному тупому дауну помогать еще.
>>1054430- а чего это у тебя редакс и промисы в дев-депенденси?- ах ты уёба, еще и react-create-app используешь (не делай так, иначе тебя девопс отхуярит)- "открой каталог layout и охуей", ебать ты наркоман.- используй автопрефиксер, ёпт, https://github.com/sorfeai/vocabulary/blob/master/src/styles/global.cssИтого, поработай джуном в обоссаной команде годик(-другой), а потом уже иди в нормальную.
>>1054868ты до какой-то хуйни похоже дошел и пропустил кейворд new перед Menu
>>105471330$
>>1054879Что не так с react-create-app?
Объясните, пожалуйста, почему в главном языке будущего два идентичных участка кода (за исключением имени одного свойства) выдают разный результат? https://jsfiddle.net/jcg44ukd/1/
>>1054968this при вызове этих функций равен window, а у window есть своё свойство name.
>>1054968потому что ты мудень, не читавший спецификацию.функции твои срабатывают не в контексте объектов userOne, userTwo, а в контексте windowв первом случае у window нет свойства 'firstname', поэтому ты получаешь undefined, если его присвоить все становится очевидново втором случае, внезапно, свойство 'name' у window есть и оно равно пустой строке.
>>1054968При "use strict" коллбэку который ты передаешь в setTimeout не передается контекст, в обычном режиме передается.>>1054978Что? И оно равно "anon"?
>>1054981Ааа, я хуйню написал, анон выше прав.
>>1054981Спасибо.
>>1054986>>1054983
Сколько времени уходит у новичка на первую часть книги кантора?А то чувствую себя дауном ибо уже второй день ковыряюсь в разделе Замыкания, область видимости
>>1055025Ты как-то слишком быстро идёшь. Проверь свои знания: https://gist.github.com/codedokode/ce30e7a036f18f416ae0#Задачки-на-js/Кантора месяцами проходят.
>>1055025это сложная тема, поебаться с ней как следует это нормально
>>1055026>Кантора месяцами проходят.Ну до этого раздела там всё легко было.>Проверь свои знания: https://gist.github.com/codedokode/ce30e7a036f18f416ae0#Задачки-на-js/ок
>>1052010 (OP)Анон, есть вопрос. Пишу на node.js. Есть ли разница для работодателей, какой стандарт языка ты используешь?Обычно это не указывают в вакансиях, но мб это само собой подразумевается? Стоит ли вообще использовать старый синтаксис?
Сап, анон. Есть одна задача из учебника.Суть такова: декоратор, который кеширует результаты функций. И есть два кода.Номер раз) https://codepen.io/anon/pen/wqNBgE?editors=0012Номер два) https://codepen.io/anon/pen/XaOJNJ?editors=0012Первый работает, второй - нет. И понятно почему: в первом случае мы мапе передаём ключем числа, которые при сравнение равны, а во втором массивы, которые нет.Вопрос: как это победить?В принципе, можно привести аргументы к строке, но тогда и смысла в мапе немного - можно в объекте хранить.
>>1055267сериализуй/хешируй
>>1055259Обычно пишут es6 или es5 нет?
>>1055279крочи, если твое знание ес6 ограничено тем что ты вместо вар стал писать лет то нет смысла, а если разобрался с промисами то да.
>>1054980Если ты хочешь вывести "anon" то тебе просто нужно вызвать функции, а не сослаться на них. Зачем кукарекать, если ты не знаешь сам что делаешь?setTimeout(userOne.sayHi(), 1000); // anonsetTimeout(userTwo.sayHi(), 1000); // anon
>>1055305Ошибка. Это ему: >>1054968
>>1055305>setTimeout(userOne.sayHi(), 1000); // anon>setTimeout(userTwo.sayHi(), 1000);\t// anonох ты и мудило, блет, сам нубяра а лезет кого-то учить. ты вообще соображаешь что сделал? ты немедленно без задержки вызвал функцию и передал в сеттаймаут ее результат в виде говнищачтобы сделать то что он хочет нужно прибиндить контекст к функции такsetTimeout(userOne.sayHi.bind(userOne), 2000);setTimeout(userTwo.sayHi.bind(userTwo), 2000);
>>1055322И нахуй такую хуйню разводить, когда можно через анонимную функцию сделать?setTimeout(() => userOne.sayHi(), 1000);
>>1055472>хуйню разводитьэто не хуйня, а классика, блядь, это знать надос помощью байнда можно взять любую функцию и вызвать ее в любом контексте, не копируя и не передавая как параметртвоя ссаная лямбда так умеет, мм?
Поцы, есть ли способ нормально распаралелить математические вычисления, нагружающие CPU? Речь о NodeJS.
>>1055025На весь учебник, с процентов 80 решенных заданий ушло 5 месяцев. Это с ноля. Правда я много проебывался, и месяца полтора почти подряд проебал. Думаю что если заниматься часов по 5 ежедневно, то месяца три займет.
>>1055482var не завезли?
>>1055482а bind считает коллбеком?
>>1055845коллбек в данном случае это сейхай.бинд - это метод прототипа Function, который декорирует коллбек
Как можно красиво транспонировать двумерный массив? Цикл в цикле с созданием нового массива выглядит как-то совсем уж уебищно.
>>1055868Бладж, я и имел ввиду что сейхай с привязанным контекстом.эх, вот бы в 2017 внятно излагать свои мыслиСпасибо
Что вы тут вообще обсуждаете? Что за хуйня блядь, КАК СДЕЛАТЬ ЗАЛУПУ ПО МАССИВУ ПИСЕК. Вы урод? Почему вы не разрабатываете приложения? Почему я захожу и вижу залетных даунов с гугловопросами-1-секунда? А ну-ка пиздуйте!
>>1055917Мы не умеем. Подскажи годных туториалов по созданию сложных SPA на реакте с ООП. И чтоб стек из 9-10 перделок.инбифо тудулист
>>1055927Смысл копировать туториалы ничего не понимая?Ставь задачу, - реализуй. И лучше освой немного ООП и модульность, это делается за день. Дальше ставь фановые задачи и реализуй. Все придет.
>>1052010 (OP)Скриптач, как бы мне создать DOMElement из строки? При этом строка должна не в innerHTML помещаться, а как бы целиком превращаться в объект.
>>1055965убей себя, мамкин погромизд, бляю
Есть строка: '000000'. Как в ней мне заменить третий 0 на 1?
>>1055994Превратить строку в массив, заменить нужное, и пропарсить обратно.
>>1056003А я тут пытался с RegExp что нибудь нашаманить. Спасибо, сейчас попробую.
>>1055965http://learn.javascript.ru/widgets-structure
>>1056004a.replace(/^(.{2}).{1}?(.*)$/, '$1a$2')
>>1056157'000000'.replace(/^(.{2}).{1}?(.*)$/, '$11$2')
Слоупок в треде, советую всем вкатчикам, метающимся между фреймворками, посмотреть этот доклад от соавтора Redux и React Hot Loader: https://www.youtube.com/watch?v=nwtQMSFikUk
Как работает такое выражение:[].concat(...arr);В частности интересует оператор ...
>>1056306https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Spread_operator
Довайте померяемся хуями, подонки.Напишите в одну строку функцию, которая принимает на вход строку вида>"brown black black"или>"brown black brown gold"Четвертый цвет может встретиться, а может и нетЧто c ней надо сделать.Есть словарь:black: 0, brown: 1, red: 2, orange: 3, yellow: 4, green: 5, blue: 6, violet: 7, gray: 8, white: 9Это кодирование цветом сопротивления резисторов, но это значения не имеет.Первые два цвета путем сложения их цифр как строк дают число, например"yellow violet ..." дадут'4'+'7' = '47' // а не 4+7=11Третий кусок переводится в число по тому же словарю и служит экспонентой для возведения в степень числа 10, например"... ... black"даст нам10 в степени 0 = 1Четвертый опциональный кусок добавит в конец итоговой строки проценты. Если этого куска нет - 20%, иначе еслиsilver: 10%gold: 5%Теперь первый промежуточный результат переводится в число и перемножается со вторым, получаем 47х1=47Теперь нужно вернуть строку по следующим правилам-если результат<1000 вернуть строку "47 ом, 20%"-если 1000<результат<1000000 вернуть строку "4.7k ом, 20%", то есть результат/1000-если 1000000<результатвернуть строку "4.7M ом, 20%", то есть результат/1000000Примеры"brown black black" // "10 ом, 20%""brown black brown gold" // "100 ом, 5%""red red brown" // "220 ом, 20%""orange orange brown gold" // "330 ом, 5%""yellow violet brown silver" // "470 ом, 10%""yellow violet orange gold" // "47k ohms, 5%""brown black yellow gold" // "100k ohms, 5%""orange orange yellow gold" // "330k ohms, 5%"
Ребят, можете пояснить за JSDoc, кто использует, как впечатления?Я сам сторонник идеи самодокументирующегося кода, стараюсь обычно писать так, чтобы из названия переменных и функций и предельно простой/плоской структуры кода было понятно без комментариев что там где. Не помню у кого из писак было: "если вы ставите в коде комментарий, то это явный знак, что ваш код неочевиден и лучше бы его переписать попроще". Но идея JSDoc'а мне понравилась, подсмотрел это дело на бэкенде у джавистов, плюс вижу что многие JS-ные библиотеки или сайты с публичным API предоставляют документацию, явно автоматически сгенерированную из этого добра.Попробовал, пока не особо радует. Плюсы которые получил:- какой-никакой автокомплит- корректные сигнатуры методовМинусы:- сигнатуры на самом деле нифига не корректные; чтобы хоть как-то себе представлять, что там на входе и на выходе, надо заморачиваться с @typedef'ами, если их писать сверху от методов, то коммент к одной функции на четыре строки занимает ебучие полэкрана. Приходится все typedef'ы оставлять в шапке файла.- typedef'ы работают локально в пределах файла, но у меня полно примитивных типов типа Range { start: number, end: number }, Color { B: number, G: number, R: number, A: number} и прочей хуйни, не писать же это все в каждом файле. Доки на сам JSDoc говорят что поддерживается что-то типа неймспейсов и можно ссылаться на модули, но VSCode нихуя этого не воспринимает, это из-за того что у меня IDE курильщика и надо переходить на IDE здорового человека?- если я допустим в каком-то контексте объявил переменную, которой присвоил значение во внутренней функции (beforeAll допустим в Jest'е), то в другой функции VSCode уже нихуя не знает про автоподстановку и сигнатуры.Что вообще стоит покрывать JSDoc'ом, если основной стек React + Redux? Стоит ли от всех этих головняков перекатываться в Typescript или Flow?
Котоны, посоветуйте совет.Осваиваю JS. Сталкиваюсь с тем, что имею проблемы с алгоритмами.Вот пример:Допустим есть список: <ul><li></li>...<ul>он рандомен полностью.Нужно написать код, который допустим обежит все ветви списка, и к примеру считает из каждого элемента текст.Сделать на JS это с помощью рекурсивного вызова функции - это я могу.Но как это сделать лишь с помощью циклов и условйи логических? Короче без рекурсии.Я принципиально хочу сам догнать - все утро парюсь и не выкупаю.Какую хорошую книгу по алгоритмам можно почитать?
>>1056422У HTMLElement'ов (типа <ul>) есть свойство children, которое возвращает тебе коллекцию дочерних элементов. Соответственно надо:1) Обратиться к ul (по id, по css-классу или еще как)2) Взять его свойство children3) Построить цикл, зная, что HTMLCollection предоставляет свойство длины коллекции length и метод обращения к элементу коллекции item()типа for (let i = 0; i < element.children.length; i++)4) В теле цикла обращаться к отдельным элементам по индексу element.children.item(i)
>>1056426Лол, зачем? Почему бы просто селектором не забрать всех li? Array.from(element.querySelectorAll('li'))
>>1056446Можно и так, но мне показалось, что если нет опыта в разработке вообще - а его нет, раз для такой задачи спрашивают "что почитать по алгоритмам" - то лучше начать с базовых конструкций.
>>1056426>>1056446>>1056450Чуваки, вы меня не поняли.Вопрос не в обращении к DOM элементам и их методам или свойствам.Проблем в создании алгоритма обхода всех ветвей дерева без рекурсии.Вот задача с сайта кантора:https://jsfiddle.net/wsfzkLxt/Эту задачу без проблем я решил рекурсивной функцией.Но как ее решить не используя рекурсию?Где то я прочем что любой рекурсивный способ можно превратить в способ использующий циклы и условия.Поэтому я и прошу что то фундаментальное по алгоритмам.Хочется всеже разбираться, пусть я и вэб макака.
Никак не могу понять почему в подобных примерах JSON.parse запихивают в отдельный then? Это жи не асинхронная операция.
>>1056508> Где то я прочем что любой рекурсивный способ можно превратить в способ использующий циклы и условия.Да, используя стек. В JS у тебя уже есть массив и методы pop() и push() на нём, этого достаточно. (Так и гугли "замена рекурсии стеком")И не надо макакой себя называть.
>>1056512JSON.parse - синхронная операция, потому вынесли в отдельный блок then, чтобы логически и визуально её отделить от остальной асинхронной поеботы.
>>1056551А в третьем блоке then тогда почему Кантор не стал выносить ее?
>>1056572upd: хотя я догнал почему, спасибо
Кто-нибудь разбирается в Angular 4? У меня от этой хуйни уже жопа детонирует.1) Как вставлять скрипты? Не могу даже сраный пост из вк вставить на страничку. Точнее я его вставил, а он исчезает если перейти на другой компонент и вернуться, потому что скрипт срабатывает только один раз.2) Какого хуя не работает ссылка-тэг на определенную часть страницы?На стаковерфлоу кроме тысячи строк костылей никаких вменяемых ответов не нашел.Почему этот ангулар такой ебанутый?
>>1056601Просто ты необучаемая js-макака. Смирись.https://stackoverflow.com/questions/42993859/twitter-widget-on-angular-2
>>1055505Бамп
>>1056617Я только начал изучать это все. Т.е. для того чтобы вставить сраный твит или пост из вк мне надо эту всю еболу писать?
>>1056406Тебе задали задачку и ты так помощи просишь?
>>1056406У меня есть скрипты в несколько сотен килобайт, написанные в одну строчку. Какие сложности?
>>1056410Опыт HTML как бы намекает на вынос постороннего оформления в отдельный файл CSS. Так что загаживание кода длинными комментариями, содержащими еще один (да еще и неочевидый) язык - ошибка. Что бы там очередные восхищенные бандерлоги не укали, как это клево и модно.
>>1056508>Проблем в создании алгоритма обхода всех ветвей дерева без рекурсии.>Используй nested set
>>1056515Вообще-то рекурсия как раз и использует стёк, поэтому на неё косо и смотрят - из-за переполнения стёка.Ты имел в виду ручную имитацию стёка с помощью массива.
>>1056640А просто конвертнуть в HTML через .outerHTML и потом просто в innerHTML вставить этот кусок кода - не прокатывает?
ребятки, появилась срочная необходимость вкатиться в Node.jsбыл опыт на шарпах, яве, плюсахс чего начать изучение, посоветуйте макулатуру
>>1056693Гугли курс кантора
>>1056671Не, я решил. Прост с братюнями захотел поделиться годной задачкой>>1056674Я не говорю что это рокет сайнс, но если ты про ужатый минификатором iife, то это не то.
>>1056698У тебя неймспейс порвался от глобальных переменных
>>1056681> Опыт HTML как бы намекает на вынос постороннего оформления в отдельный файл CSS.Ну, во-первых, многие сейчас тянут мазу за то, чтобы писать стили скриптом и держать в одном файле с модулем. Я сам стараюсь так не делать, но не могу не заметить, что это сейчас очень распространенная практика, так что опыт HTML'а получается сделал полный круг. Где-то это официально рекомендуемый документацией подход, а где-то тебя просто нагибают, выставляя наружу компоненты игнорирующие className - чтобы стилизовать такие через отдельный .css-файл, приходится забуриться в детали реализации. Особенно весело, если библиотечка все стили инлайнит - после этого твой .css файл выглядит как говно со всеми этими !important. Вроде кто-то упарывается JSS'ом, который хотя бы это решает..Во-вторых, это по-моему не совсем одно и то же - css из html'а вынести можно, а JSDoc из модуля - нельзя (ну или я не знаю как). Что предлагается-то, не писать его вообще? А если автодокументирование все-таки нужно? Ну или хотя бы вот видеть перед глазами, какой формы объект метод возвращает
>>1056686Ну и еще потому что в JS будет заздана цепочка объектов переменных и цепочка запусков функций. Которые будут жарт память.Кстати, котаны, при рекурсивном вызове создается только новый обьект переменных, или еще в довесок задаются дополнительные экземпляры обьектв function?
>>1056515>>1056682Ну иожыны-сбажины, ну дайте сурс на годный учебник по алгоритмам.
>>1056749Кнут - искусство программирования
>>1056769>Кнут - искусство программирования Хех, спасибо. Но там чет примеры на асемблерах.Хотя почитаю попробую конечно.
>>1056772>почитаю>четырёхтомная монографияЕбать ты гений
>>1056795Так о том и речь, лол)
>>1052010 (OP)Ребята, есть сервак на Node.js. ка лучше всего организовать поиск собеседника для чата, по заданым параметрам?
>>1056693В документации к nodejs есть и примеры и все что нужно для старта, рекомендую
>>1056806Ты бы хоть рассказал что за сервак, а то вопрос звучит как "У меня есть строительные материалы, как построить дом?"
Как дату вывести в формате dd.mm.yyyy?
Как авторизоваться с помощью ноды? Есть форма с полями name и pass. Мне их нужно направить на адрес как данные форм. Но как их подготовить как будто они из формы взяты?
>>1056719>это сейчас очень распространенная практика, так что опыт HTML'а получается сделал полный круг.Прсто подтянулись молодые, которым не хочется учить старый опыт, а хочется делать поленивее и учиться на своих ошибках (оху уж этот крговорот велосипедов - изобретают снова и снова). Имхо, дело в этом.А еще - проблема в средствах разработки, которые до сих пор нормально не интегрируют файлы в "пакеты" и занимаются редактированием отдельных plain файлов вместо их виртуальной интеграции.>А если автодокументирование все-таки нужно?Автодокументирование вещь правильная, только реализуется неправильно. Все-таки описывать функции нужно более подробно, чем это делается в коде сейчас, и в то же время сейчас предлагается писать слишком много постороннего в комментариях, что сильно загаживает код.Автодокументирование должно анализировать код, создавать хребет, но брать описание из другого файла, а заодно проверять соответствие. То есть оно должно быть интеллектуальным. Меня удивляет такая тормознутость разработчиков IDE.
Подскажите что выбрать для фронтенда? Желательно что-нибудь такое, что можно на ходу изучать и потихоньку пилить фронт.Собираюсь написать небольшой сайт в качестве тестового проекта.Сам сайт что-то вроде онлайн блокнота, с авторизацией.Бэкенд будет на джаве со спрингом (опыт в джаве уже есть), а вот фронтенд - хз.На жс я писал всего несколько простеньких скриптов без использования библиотек.
>>1056744> заздана цепочкаЭто и называется стёком.
>>1056806Собеседники регистрируюся на сервере, и среди тех сессий, с которыми есть коннект, можно искать.
>>1056906new Date().toLocaleFormat("%d.%m.%Y")
>>1056907encodeURIComponent
>>1056982Ruby on Rails ;)
Пацаны, хэлп. Как тестировать https в локалке? Например, я в проде собираюсь накатить nginx с сертом от let's encrypt + certbot и чтобы было Безапаснасць. Как это сэмулировать 1:1 в локалке? Например чтобы решить dns можно инжектить адрес с именем в /etc/hosts при запуске. Но как решить сертификат? Умею в докер.
>>1056873https://github.com/workshopper/learnyounodeможешь потыкать интерактивный курс
>>1056693>>1057014сука ёбаный аутист не туда ответил
>>1057006Бамп вопросу, тоже интересно SSL на локальном серваке сделать.
>>1057006Ты что тестировать собрался, наркоман?
>>1057006Накатывать нжиникс с сертом на локалке пробовал? Если брезгуешь - виртуалка и докер.
>>1057049>>1057128вобщем я погуглил, конфиг сертбота можно протестить с помощью их стейдж-сервера а https в локалке - только самоподписанный сертификат и браузер будет ворнинги показывать в любом случае.
>>1057052хочу сделать образ проекта - настроить все на этапе дева, потом просто его дропнуть на vps и ниче в проде не ковырять
Когда моя самооценка как программиста начинает падать я заглядываю в исходники дешёвых одностраничников http://prostitutka-zakaz.kiev.ua/sript.js
>>1056986>toLocaleFormat is not a function
Подскажите, какую книгу по JS можно купить в России за вменяемые деньги? Учу язык с нуля. Можно и на английском!Пикрил стоит тысячу рублей, норм книга?
>>1057332спизди в интернете все книги, которые только захочешьпрограммистом от этого ты все равно не станешь
>>1057333Вопрос был про физическую копию. Тебе-то какая разница, стану я кем-то или нет?
>>1057332>на английском>в РоссииОу бой хир ви гоу!
>>1057332Пикрил есть у меня, и это не книга, а просто справочник по функциям.
Котаны, у меня есть два вопроса.Вот есть такое понятие, как состояние (в контексте реакта). Реакт я не знаю, пишу только на vue, хоть и для него есть либа, добавляющая состояния.Что это вообще такое? Я с трудом понимаю в чем суть. Это что-то вроде централизованного хранилища данных, не зависимое ни от каких компонентов, верно? И что там нужно по-хорошему хранить? Объясните простыми словами, пожалуйста.
>>1057369Есть на сайтк кнопка +1, нажимая её рисуется результат 123456...Это состояние. Хранится в памяти. Корявый код может привести к утечке.
>>1057332это бесполезная херня, просто пересказ документации, причем устаревающий каждый день, зачем он нужен если под рукой есть https://developer.mozilla.org я понятия не имею
>>1057389>опка +1, нажимая её рисуется результат 12 То есть получается, что состояние - это данные о том, что пользователь сам сделал в процессе работы с веб-приложением в настоящий момент. В то время как данные, получаемые в процессе загрузки приложения, будь то что-то из базы данных или что-то еще состоянием не являются?
>>1057421В общем случае да. В реакте компонент отвечает за свое состояние. Сам спросил, сам поменял. В то время как props отвечают за изменение компонента извне.
Сап, /prограммач, пытался гуглить, но не знаю как правильно сформулировать вопрос, поэтому нихуя не гуглится. Есть одна страничка с книгой, необходимо, чтобы при ее повторном открытии юзер возвращался на то же место, где он оставался при ее закрытии. Делается это джаваскриптом или есть методы полегче?С меня как обычно нихуя
>>1057428Ага, значит получается я всегда использовал эти самые состояния в контексте vue, сам того не подозревая. Ладно, спасибо
>>1057299> new Date().toLocaleFormat("%d.%m.%Y")> "05.09.2017"
>>1057574Копай в сторону диалогов "Are you sure to leave this page?" - это если при закрытии странички нужно запомнить положение. Но можно это делать при каждом скроллинге страничек - тогда гугль про события скроллинга.
А обязательно учить перед JS верстку если планирую во фронтенд вкатываться (уже вкатываюсь)? Тошнит уже от этих тегов и скобок треугольных, хочу кодом заняться, а это существенно тормозит ибо в верстке реально большой стек технологий, адаптивная верстка и прочее, что надо обязательно освоить. Нельзя как-то совместить/после JS выучить?
>>1057748Нахера тогда во фронт вкатываешься, если тебя тошнит. Учить - не учить, все равно по работе придется всем заниматься. Ты будешь выморажвать коллег в дедлайне своими - а я это не знаю, а я то не буду.
>>1052010 (OP)Как учить жс, если уже немного умеешь программировать, базовые принципы понимаешь, либо если это не первый твой язык? жопошкрипьт.ру? Фланаган? КодАкадеми? Как правильнее. быстрее, эффективнее, лучше?
>>1057766
>>1057772А по существу?
Вопрос по стандартному методу массивов Reduce. Передаю ему первое значение, но он его не принимает. Укажите на ошибкуhttps://jsfiddle.net/4z1obzvc/
>>1057808https://jsfiddle.net/4z1obzvc/1/
>>1057808>>1057812Идти по этой ссылке
>>1057808>>1057812Оно?
>>1057748само ядро языка(синтаксис, кейворды, типы данных, ооп) можно спокойно учить в отрыве от окружения. у кантора так и сделано, первая часть учебника это язык, второе это браузер.>Тошнит уже от этих тегов и скобок треугольныхв стеке верстки есть перделки с синтаксическим сахаром
>>1057862Спасибо, Антош.Спасибо всем Антошам, всегда помогаете решить мои вопросы
Сап. Начал изучать JS и возник такой вопрос:В каких случаях лучше использовать "switch", а в каких "else if"? Потому что в данный момент, они для меня одинаковы.
Я не этот >>1057748 анон, если что. Такой вопрос:Куда бы можно вкатиться, зная JS, кроме как делать сайты? Не то что бы очень сам по себе фронт-энд вдохновлял. Можно ли делать мобильные приложения? Где вообще можно применять жс? Сам думаю вкатиться все-таки сначала во фронт, т.к. процесс не должен быть слишком долгим, а там поднаберусь опыта и хоть каких-то средств и попробую заняться чем-то поинтересней.
>>1057982>Куда бы можно вкатиться, зная JS, кроме как делать сайты?Для начала бы неплохо знать гугл.
>>1057995Ты такой умный)))) Можно сделать тебе сасай))))
сосоны, читаю кантора и почти уже дошёл до ооп и подумал что он ненужен как и во многих других языках. загуглил - ну народ примерно такое и пишет.ну дак и чо? просто хочу уже хуярить второй раздел учебника.может в жс есть хуйня которую можно освоить уже походу дела либо ваще только когда понадобится %%если понадобится%
>>1058046>сосоны, читаю кантора и почти уже дошёл до ооп и подумал что он ненужен как и во многих других языках. загуглил - ну народ примерно такое и пишет.Ты верно выхватил тренд последних лет, теперь функциональщина в моде.
>>1058049Что такое вообще функциональщина, кроме data.func2(func3,func4(func5){return func6})?
>>1058052Главное отличии в том, какой элемент является основным строительным блоком. в ФП это функции, в ООП это объект, есть слепленый воедино комок данных и методов.
Объясните почему прототипный метод sayHi не имеет доступа к свойсва функции-конструктора Animal?
>>1058063Потому что ты пиздоглазый? У тебя водном месть name, в другом _name
>>1058065Да, это так.
>>1057955Тонкий намек: switch часто используется в связке с break. Наличие или отсутствие break в нужных местах может давать поведение, которое обычными условиями достичь сложнее.Ну и лично по мне если сравниваешь одну переменную, то свич интуитивнее, чем нагромождение if-else.
>npm install -g module>echo "require('module');" >> file.js>node file.js>>sudo node file.js>Error: Cannot find module 'module'Чому так? С sudo нода в какой-то другой залупе модули ищет, что ли? Или просто у sudo меньше прав, чем без судо, и ему даже /usr/local/lib нельзя?
>>1058096npm root # куда установил пакеты как пользовательsudo npm root # где sudo npm ищет пакеты
>>1058102Оно только локальный node_modules показывает (грубо говоря, $(pwd)/node_modules получается), даже если нет такой директории.
Пацаны-ребята, подключил через cdn bootstrap/4.0.0-beta и libs/jquery/3.2.1Для адаптивности к плагину carousel хотел прописать скрипт для свайпа пальцем, но ни 1 не работает.Что я сделал не так?Может bootstrap 4 не поддерживает swipe? читал доки, про свайп ни слова
>>1058166долбаебы не могут в debug ?
>>1058170и причем тут инспектор элементов?
Где почитать про Статические и фабричные методы.Тут https://learn.javascript.ru/static-properties-and-methods нихуя непонятно. Даже в ютубе про это нихуя нет. Есть видосы просто про конструкторы.
>>1058228все там доступно разжевано
>>1058246Нет. Мне не нравятся примеры.
>>1052010 (OP)Ребзя, что у Кантора за неточности, как это понимать? Какой из вариантов правильный?
>>1058356Тема: Модули через замыкание
>>1058356Вбей оба примера да попробуй. Разницы никакой.
>>1058356оба правильные, используй какой хочешь. первый больше распространен
>>1058361>оба правильные, используй какой хочешь.Плохой совет.Хороший совет: Не используй вообще, уже 2 года как let есть.
Т-щи программисты прошу в вас помощи в написании скрипта.Сам я не программист и как делать не знаю, придумал такой порядок действий, но реализовать его не смог.Мне нужно удалить все свои посты и комментарии в чужой группе.Захожу группу, запускаю скрипт.1. Скрипт должен долистать стену до определённой даты, например 3 месяца назад, дату ввожу я сам.2. Из всего, что он нашёл на стене выбрать мои посты и удалить их. Остальные посты развернуть и удалить оттуда мои коменты.Буду оче благодарен тем, кто напишет такой скрипт и расскажет как он работает.
>>1052010 (OP)Ребят, как привязать Onclick к картинке, чтобы считала клики, и показывала клики внутри фрейма, ну или блока.
Начал тыкать в GoПочему почти все последние изменения в js напоминают синтаксис гоферов?Или мне по нюфажеству так кажется?
>>1058506По нюфажеству.
Почему не 18?
>>1058522>costructor
Очевидно очень простое решение, которое не могу уловить. Но меня в первую очередь волнует недостаток своей реализации -- если радиус не целое число, то пустые клетки квадрата по которому проходит двойной цикл считаются за частично заполненные (distr). Вижу только один выход, сравнивать с расстояние от центра и радиуса не только крайней точки кирпичика, но и ближайшей. Но это совсем не кошерно по-моему.
>>1057766Learn javascript сайт, там читаешь всё\скипаешь очевидные моменты
У меня уже каша в голове от вашего погромирования. Почему js такой запутанный. Тут так, тут вот так, а тут если поставить точку то вот так, а если вынести сюда то ваще вот так, а ещё вот так и так тоже можно, на самом деле это не это, а вот то просто название другое и ваще всё это вот это. ууууЧем дальше тем больше пиздец.Да это мой первый язык. Да я дрочу его меньше месяца.
Какую книжку по JS почитать новичку, если пока я знаю только Python?
>>1058711Все-таки добавил вторую проверку. Посмотрел лучшее решение других людей и оно оказалось практически таким же как и мое. Мне казалось есть какая-то простая формула, а может она действительно есть.>>1058722Рекомендую "Выразительный JavaScript" охренительная книга, но застрял на одном месте, скоро с новыми силами и знаниями снова наброшусь на нее. Все остальные книги похожи на справочники.(остановился на 6 главе. позор)
>>1058715Надо было начинать с ликвидации компьютерной безграмотности и чистого С.Хуёвая идея вкатываться не понимая не типов и структур данных.
>>1058739Ну твоя идея куда лучше - учить два языка.
>>1058743это он так тралит, а сам по ночам рыдает в подушку осозновая нинужность своего мертвого языка. биты-то не попереставлять
Почему в браузер не встроят еще один движок наподобие JS только улучшенный и глубоко переработаный html и сss? Например на обычных сайтах браузер использует старый движок при переходе на новый сайт использует новые возможности.
>>1058715Ну так, ты начни с изучения языков программирования, а не фрейворка для формошлепов. Не С, но там та же scheme по SICP, паскаль по школьным учебникам, может Lua по книжке с оф сайта. Это те языки, которые разрабатывались академиками, а не слесарями, в них не всегда удобно ебашить проект в миллионы строк, и библиотек для генерации днявочек может не быть, но они сделаны так, чтобы их можно было описать небольшим количеством правил, а не тысячей исключений, а это как раз то что нужно личинке погромиста.
>>1058810В Гарварде учат на примере C, да и популярные языки - сиподобные.
>>1058096Так что, никто не знает? Как же мне запускать сервер на портах <1000, держа кучу дерьма в локальном node_modules, что ли, как последний дегенерат?
>>1058794В какой браузер? Яндекс-браузер?
>>1058834Хром, фирефокс,
>>1058794Но зачем? Если так приспичило писать в браузер свою особую идеальную дрисню, то проще сделать очередное транспилер, который будет выплёвывать православную троицу после переварки твоих закорючек.
>>1058838>Но зачем?Для облегчения жизни разработчика и существенного повышения скорости разработки и производительности сайтов.>Если так приспичило писать в браузер свою особую идеальную дрисню, то проще сделать очередное транспилер, который будет выплёвывать православную троицу после переварки твоих закорючек.Накопленные знания и опыт помогут написать намного лучший браузерное ядро чем поддерживать старое глючное говно.
>>1052010 (OP)Ребята, а скринкаст Кантора по node.js (его первая часть) ещё считается актуальной? А то там версия 0.0.1, когда на дворе уже версия 6.9 несколько лет как LTS. Из личной практики заметил что некоторые модули что он проповедует уже давно не поддерживаются и не используются. Есть что-то более актуальное, но не уступающее по качеству, в виде скринкаста?
>>1058894Именно не разработка сайта на экспрессе, а пояснение нативных функций и возможностей Node.js, чтобы когда на собеседовании спросят, было что ответить. Документацию пока осилить не могу, а вот посмотреть видео с обьяснениями и примерами, было бы очень кстати...
>>1058729Дэвид Флэнаган - JavaScript Подробное руководствону и http://learn.javascript.ru канеш
>>1058722ошибся блэд, вот книжка >>1058966
>>1058810Да вы ебанутые! Нахуя мне учить дидовский язык если за это время я всё же смогу осилить кривой js.
>>1059066Не слушай их. Раньше в гейропке учили хардовою латынь, а потом уже брались за другие языки. Объясняли тем что латынь стоит у истоков и его сложность только в помощь, потому что выучив его, ты точно осилишь какой-нибудь французский. Бред. Люди часто не могли его осилить и в итоге не знали никакой язык кроме родного.Сам в начале пути, но уверен что у меня получится несмотря на незнание ассемблера
Котаны братишки, нужно срочно выпиливаться с текущей работы, учу js по кантору, сейчас еще пытаюсь осилить Явное указание this: "call", "apply". Может кто то подскажет реально путь с самим высоким КПД, типа заканчивай кантора, потом читай вот это и потом учи (что?) ангуляр/реакт/ноду по вот этой книге. Цель как можно быстрее вкатится хоть куда.
>>1059066>>1059094Попытка учить скриптуху без знания основ байтолюбства - сродни попытке заняться дайвингом, при этом тупо не умея плавать.
>>1059095вкатывайся в Хаскель, базарю не пожалеешь
Node.js-господа, имеется проблема с cluster + express. https://pastebin.com/6RkMLvsZПочти всегда часть файлов в папке public не загружаются с 404, а быстродействие даже хуже, чем с одним потоком.
Метод toString при использовании для перевода в двоичную систему исчисления отбрасывает впереди стоящие нули. Можно ли получить двоичное число со всеми нулями не прибегая к циклу с ручным добавлением?
>>1059143Сам то понял что сказал? С какими "всеми" нулями?
>>1059143код покажи
>>1059145Если с помощью этого метода переведём число 7 в бинарную систему, получим "111" что на самом деле будет являть 00000111. Мне нужны эти опускаемые нули
>>1059154
>>1059165
>>1059167Спасибо, крутое решение
>>1059168Костыль, а не крутое решение.
еще моднее
>>1059170Можно ли обойтись без этого костыля?
>>1059174
Блять, как же все же сука пиздато, когда блять целый день решаешь эту ебаную Канторовскую задачу, и уже блять смотреть на нее не можешь, а потом хуяк и решил.
закину сюда свой тредDumpach boardhttps://2ch.hk/pr/res/1057223.htmlМожете обоссать, но конструктивная критика будет лучше, ну и еще потестить милости прошу
Хочу я раздробить большой компонент на кучу маленьких, положить их в отдельные репозитории и подключать с помощью npm, не складывая все в одну кучу.Создаю формочку с помощью create-react-app. Пишу сам компонент yobaForm.js, пишу базовые стили и подключаю в yobaForm.js простым import from "./yobaStyle.css". Запускаю с помощью npm start, проверяю — все збс.Создаю так же еще кучу компонентов. Все удобно, все легко запускаются и тестируются.Проблема возникает дальше.Создаю само приложение с помощью create-react-app, подключаю зависимости, пишу import "yobaForm"; — сам компонент подключается, но вебпак отказывается найти "./yobaStyle.css", импортированный в этой форме. Если прописать пути в webpack.config.js — стили находятся, но этого хочется избежать. Как быть?
Допускается вынесения разметки из компонентов реакт или все должно находится внутри реакта?
>>1059200Переосмысление задачи обычно происходит после перерыва. Нужно иногда переключаться между задачами.
>>1059227Ты это что, в ручную всё прописывал?
>>1059284Нее, только начиная от первого div, кроме root.
Какого хуя все и везде подряд используют binding over arrow function в классах?
>>1059289> arrow function arrow function не bind'ит от слова совсем.Но какая-то тупая макака решила, что таки биндит волшебно, пошел слух. Так и живем.
>>1059293>>Но какая-то тупая макака решила, что таки биндит волшебно, пошел слух. Так и живем.Да ты чо? Использую их в классах, всё биндится к родительскому объекту. А макаки зачем то биндят в конструкторе. Нахуя?
Доки, вот кароч выполнил я тестовое задание по фронтенду, адаптивная верстка формы для мобилок и десктопов с проверкой формы на валидность. Рецензент пишет мол переменная i в глобальной видимости ты типо переменные пиши не var a let. Ну как бы да крутая фича, но ведь скрипты с let не работают на мобилах ( ucbrowser, android browser, safari).Обратной совместимости вроде как нет никаким полифилом или библиотекой это не пофиксить. Кто из нас нуб?
>>1059300Не очень понимаю, про какой биндинг через стрелки идет речь. Если это просто анонимная функция в рендере как это в туториалах часто показывают, то это вызывает проблемы с пересозданием функции на каждый ререндер.Биндинг в конструкторе, помимо привязки контекста, еще полезен при кэррировании, чтоб не плодить однотипных методов.
>>1059355он имеет ввиду то что стрелочные функции объявленные в конструкторе уже прибиндены к экземпляру класса и в дальнейшем их уже нельзя перебиндить. а вот чо ты хочешь донести я тоже не пойму.
>>1059320> никаким полифилом или библиотекой это не пофиксить.Ты на острове живёшь? Почитай про babel> Рецензент пишет мол переменная i в глобальной видимости ты типо переменные пиши не var a let. Претензия мне не очень понятна, обычно i используется только внутри циклов. Но в целом лучше использовать let. Например этот код: https://jsfiddle.net/Lmfdp0o3/по задумке должен выводить цифры от 0 до 9 с промежутком в одну секунду, но вместо этого 10 раз выводиться число 10. Если поменять var на let - то всё ок. Ещё хорошая идея использовать const для переменных, которые не собираешь перезаписывать.
>>1059357Понятно. Ну, такой подход кмк не очень катит, если методы не однострочники, а по 5-10 строк, а то и какой-нибудь кусок рендера.
Поцоны, как элегантней отфильтровать массив массив вроде такого:input: [[0,0], [0,1], [0, 0], [1,1], [1,1], [1,1], [2, 2]] output: [[0, 0], [0, 1], [1,1],[2,2]]Я пока использую uniqBy из lodash:uniqBy(arr, (cell) => `${cell[0]}${cell[1]}`)Но это костыль какой-то.
>>1059413> const result = [...new Map(input.map(x => [JSON.stringify(x), x])).values()];Замени JSON.stringify на подходящую проверку, например на _.eq
>>1059137Никто с node.js не имеет дела, серьезно?
>>1059458>express>2k17Подумай.
>>1059463А шо с ним не так? Какие альтернативы?
>>1059467koa, который не осилят 90% этого треда :)
>>1059484В чем принципиальное отличие? Почему я должен хотеть эту штуку?
>>1059487> В чем принципиальное отличие?ШАЙНИ НЬЮ.
>>1059467Тут ещё Фастифай подъехал, ЖСОН-ориентированный. Хеллоу-ворлдами в три раза быстрей кидается, чем Экспресс.https://thenewstack.io/introducing-fastify-speedy-node-js-web-framework/
Нормальный полностью функциональный на промисах/стримах/чистых функциях серверный фреймворк, без костылей вроде async-await еще не придумали?
Почему this в var1 указывает на window?
>>1059621this за пределами function указывает куда угодно - стандарт не регламентирует. В браузерах это window.
А у меня 21 репутация на стаковерфлоу по тэгу javascript ^^
>>1059627А на ответы@mail.ru какая репа?
>>1059631стак - это стильно модно и молодежно.
ебать, антоши, что-то я никак тему промисов не раскурю(
>>1059627а я в топ-400 на кодварсах
Как через node.js получить на сервере ID нажатой кнопки? Да и возможно ли вообще такое?
>>1059200> Блять, как же все же сука пиздато, когда блять целый день решаешь эту ебаную Канторовскую задачу, и уже блять смотреть на нее не можешь, а потом хуяк и решил.И в чём смысл решения этих ебанутых задач? Да ещё и тратить на них целый день. Я помню как первым языком решил дрочить питон и там тоже были ебанутые задачки, а потом в книге дошёл до реальных задач которые не имели нихуя общего с теми говнозадачками про подсчёты анусов и прочей еболы.
>>1059857Канторовские задачи максимально приближены к боевым условиям.
>>1059792>Да и возможно ли вообще такоеБез помощи фронта нет, ни нодой ни чем другим на беке. >Как через node.js получить на сервере ID нажатой кнопкиСмотри по обстановке, если сабмитишь форму по клику на кнопку, можешь ее id записывать в поле hidden перед сабмитом. Если просто кнопка, то навешивай обработчик события клика, посылай ajax запрос.
this это своего рода self?
>>1059966Можно поинтересоваться? Почему ответ на этот вопрос не ищешь в документации?https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this
кто из отцов жс хочет нормально поебаться с одной задачкой?
>>1060017Сук, а сразу задачу описать не судьба?
>>1060018написать функцию, которая возвращает строку 'Hello, world!' не используя в коде символы: h e l o w r d x
>>1060020Унылая хуйня с вытаскиванием символов из undefined и прочего говна через [].
>>1060020>не используя в коде символы: h e l o w r d x () => "\u0048\u0065\u006c\u006c\u006f\u002c\u0020\u0077\u006f\u0072\u006c\u0064\u0021"
Котаны, рассчитайте сложность изучения ангуляр/реакт от сложности изучения нативного жс по кантору, если взять его за 100%
>>1060040мм, да, я всрал условие, этот способ тоже забанен должен быть, идея там эта >>1060025
Как достучатся до отдельного элемента массива ListE.На 2 и 3 пикчах почему то две ссылки не работают, хотя должны как исправить?
>>1060046Еще добавлю.Я хочу через метод PUT обновить нужный элемент в массиве но он нихрена не может достучатся.Или наверно нужно массив ListE отдельно чтобы был?
Что посоветуете для асинхронного рендеринга (ajax-call -> render)?
>>1060041Реакт прост как нечего-делать. Ангуляр — энтерпрайзный монстр, естественно посложнее.
Репост из /web/https://codepen.io/anon/pen/dzxNRZВроде бы всё работает, но в сравнении с http://online-timer.ru/ и таймером на моём телефоне наблюдается рассинхрон. Каждые минуты 2 увеличивают отставание моего таймера где-то на секунду. С чем это связано? Где косяк? Если вместо 1000 поставить 999 на интервал, то отставание начнется позже и будет более медленным, но тем не менее будет.Я правильно понимаю, что дело в том, что коду тоже нужно какое-то время на выполнение и из-за этого копятся сдвиги на 1-2 мс? И если нужна нормальная точность, то нужно какой-то хак придумать, который, допустим, раз в минуту будет проверять сколько времени прошло с момента запуска таймера, сколько времени прошло по мнению таймера и фиксить.
>>1052010 (OP)Двач, как же я заебался, где можно найти годную инфу по докеру и node.js? Везде, блеать даже в официальной документации node.js и даже в ёбаной официальной документации докера (где примеры на Python) есть пример только с запуском ОДНОГО контейнера, да как так то, а? Как так? Сама идеология говорит о том, что нужно запускать много контейнеров, чтобы было ништяково, а они в оффициальных гайдах запускают по одному контейнеру и нигде нет инфы как правильно запустить несколько докеров и связать их между собой, чтобы было ништяково, отсюда реквест, братики, пожалуйста, скиньте мб уже какие-то примеры реализованых приложений на гитхабе с node.js+express+mongo (или любым другим стеком), где будет показано как нужно написать своё приложение, чтобы запустить его в докере с НЕСКОЛЬКИМИ контейнерами. Или видео с гайдом или текст с гайдом, а то я в полнейшем замешательстве, один контейнер запустить могу, с базой данных на втором, а что делать дальше с ним - непонятно. Как например доппилить авторизацию на другом контейнере или какую-то ещё фичу, типу API.
>>1058356релейт https://stackoverflow.com/a/939412/2337281можно так и так, потому что спека языка это не запрещает.но первый вариант как у кантора норм, так как он четко показывает, что там будет возвращен результат, а не инстанция
>>1060206>но первый вариант как у кантора норм*второй
>>1060198Проще говоря, как создавать новые сервисы и подключаться к уже существующим? Просто писать в приложуху и вызывать из папок, добавляя строки в Dockerfile или писать много разных приложух со своими package.json, хостить их в докер контейнерах по отдельности, а потом заставить как-то взаимодействовать, если да, то как?
Выбираем вместе второй язык для глубокого изучения.Присвоил коэффициент по шкале от 1 до 5 в трех категориях. Под новизной понимается то что я не просто выучу JS-2, а какие-то новые парадигмы, как статическая типизация, полноценный ООП. Синтаксис напротив хотелось бы JS-подобный хотя питоньи отступы выглядят хорошо. Востребованность на основе анализа вакансий в моем ДС-4.Все ли правильно сделал?
>>1060270Учи либо си, либо хаскель.
>>1060272И что я с ними на сервере буду делать?
>>1060270Руби, питон, пхп — ничего нового после js, наоборот, меньше концепций (более императивные языки). Никаких новых парадигм, типизации, саморазвития.Для развития глянь F#, Haskell, хотя можешь начать и с C#
>>1060270Жабу учи, если ещё даже со статической типизацией и нормальным ООП не сталкивался.
>>1060273Ты уж определись, хочешь ты развития или инструмент на продажу. Если второе, учи пхп, вакансий тьма.
Сап, вкатываюсь в JS. Есть отпуск и много свободного времени. Сколько понадобится времени чтобы изучить до уровня джуна с нуля, если я весь отпуск не буду выходить из квартиры и только и делать что учить JS? Я это буду делать по шапке.
>>1060277Ну хотелось бы и то и то. Но если прям выбирать между сидеть без работы и быть макакой то второе.>>1060275А что в шарпе кроме ООП и статики? В руби вот насколько я знаю есть концепция что все является выражением, как в лиспе, там можно ифы присваивать, а в жс нельзя - круто, нет?
>>1060281В жсе для этого есть тернарный оператор.
>>1060283Но внутри ? нельзя вставлять стейтменты, например ретурн, а внутри ифов можно. Понятно что переписать по-другому можно всегда.
>>1060285Ну ты уж определись, либо все есть выражение, и ты за чистоту, либо ты согласен на чуть-более удобный синтаксис, но по прежнему не против того, чтобы функция по вычислению процента по кредиту вызывала коллекторов.
>>1060281> все является выражениемДа, это очень интересная фича, странно как она забрела в руби.Но в любом случае так можно писать и JS, нужны для этого только тернарный оператор и функции. То, что остальные конструкции языка — стейтменты — не имеет значения, потому как они не нужны при написании в фп стиле.
>>1060285хз
>>1060292>нужны для этого только тернарный оператор и функцииА как перегнать в экспрешн такое например?const f = x => {if(x) {throw 'error'} else {return 1}}такое не катитconst f = x => x?(_=>throw 'error')():1
А все, вот так работает. Да, клевоconst f = x => x?(_=>{throw 'error'})():1
>>1060301При большой необходимости можно и так, но по хорошему как я сказал — не нужны, как и остальные statements с сайд эффектами.
Посоны, а бабель-то в 2017 году еще нужен?
>>1060319для JSX, IE6 и прочих выкрутасов и если не использовать Typescript.Просто писать на ES2015-2016 можно и нативно.
>>1060325Блять, совсем про jsx забыл
Двочик, у меня есть вопрос про такую штуку как объект переменных LexicalEnvironment. Читаю сайтик лерн джаваскрипт. Сначала они говорят: "В конце выполнения функции объект с переменными обычно выбрасывается и память очищается. ... Через некоторое время мы рассмотрим более сложные ситуации, при которых объект с переменными сохраняется и после завершения функции." От чего именно это зависит - объект пропадет или останется?Алсо, такой код: function makeCounter() { var currentCount = 1; return function() { return currentCount++; };}var counter = makeCounter(); // [[Scope]] -> {currentCount: 1}alert( counter() ); // 1, [[Scope]] -> {currentCount: 1}alert( counter() ); // 2, [[Scope]] -> {currentCount: 2}alert( counter() ); // 3, [[Scope]] -> {currentCount: 3}alert( counter2() ); // 1, счётчики независимыИ объясняют происходящее: "В примере выше было создано несколько счётчиков. Они независимы, потому что при каждом запуске makeCounter создаётся свой объект переменных LexicalEnvironment, со своим свойством currentCount, на который новый счётчик получит ссылку [[Scope]]." Вопрос: почему после каждого вызова объект не исчез, а продолжил существовать так что мы могли каждый раз увеличивать переменную на один?
>>1060375Функция makeCounter создает локальную переменную, а потом создает и возвращает функцию, которая смотрит на эту переменную и может ее модифицировать.В обычной ситуации, локальные переменные сгорают после завершения функции. Но в данном случае объявляется другая функция и завязывается на нее. Это называется замыканием. В итоге переменная count будет жить столько, сколько живет функция ее замкнувшая.Соответственно каждый раз вызывая makeCounter, создается новая функция с новой переменной внутри.
>>1060375>почему после каждого вызова объект не исчез, а продолжил существовать1. ты написал в коде что-то вродеfunction hitler() { var x=1 return x}2. под капотом интерпретатора, незаметно для тебя создался невидимый объект lexical environment. его нельзя получить в коде, но он существует. представь что это что-то вроде hitler.lexicalEnvironmentв этот объект записалось два свойства {x:1, [[scope]]:window} // или другая функция внутри которой создан гитлер3. если ты про просто запустишь функцию hitler() то очевидно что после отработки ее lexicalEnvironment больше нахрен не нужен и интерпретатор его затирает, так как его никто не использует. но если внутрь гитлера добавить другую функцию, которая обращается к иксуfunction hitler() { var x=1 return function() { return x+1 }}то станет очевидно что этот объект надо сохранять, так как он используется. причем для каждой отдельно отработавшей функции будет создаваться и храниться отдельный объект с независимыми значениями икса.это сложная тема, посоветовал бы почитать спецификацию, но ты ж не будешь.
>>1060393Ясноньо, спасибо. Если хотите что-то добавить, говорите, я прочитаю.
>>1060414 Может и буду, если руки дойдут. Спасибо за объяснение.
>>1060270Elixir/Phoenix
>>1060444Двачую. Это реально, что в эликсире сборка мусора происходит без stop the world?
>>1060451только вчера по нему книгу открыл, боюсь пиздануть лишнего. но, вроде как да.гугли за девять девяток у эрланга, на котором базируется эликсир.
Что хочется:Пишу "create-foo-app component-x", прописываю в нем компонент с использованием современного синтаксиса и scss, запускаю через npm start. Создаю второй компонент с помощью "create-foo-app y-component", в нем импортирую component-x со всеми стилями и радуюсь.Что есть:Пишу "create-react-app component-x", создаю компонент, запускаю через npm start. Создаю второй компонент, но не радуюсь, потому что без eject не удастся подключить стили из component-x, да и поддержки es2017 по умолчанию нет — приходится прописывать пути в конфиге вебпака.С nwb такая же проблема.Есть ли какой-нибудь тулкит, который позволяет удобно создавать независимые компоненты?
Простите за глупый вопрос, но ничего не гуглится. Как сделать partial application функции get лодаша, чтобы конечная функция при вызове вставляла аргумент в середину. На примере:без partial application_.get(obj, ['huy', 'id'])c partial application должно быть так (huy динамичный)_.get(obj, [ЧТОБЫ ВОТ СЮДА СУКА, 'id'])
>>1060514Никак ты частично не применишь массив.hui => _.get(obj, [hui, "id"])
Поясните за TypeScript. Почему все на него так надрачивают, но за всю свою карьеру в 8 лет, я так и не смог найти никого кто на нём писал бы что-то больше чем хеллоу ворлд? Им реально кто-то пользуется или это легенда типа Хаскеля?
>>1060514const partial => arg => (obj, arr) => _.get(obj, arg.concat(arr))Но я не очень понял, что ты там городишь, объясни лучше
>>1060558>Им реально кто-то пользуетсяНет, MS просто деньги вникуда спускает чтобы на двачике холивары были.>карьеру в 8 лет>не задуматься о типизации в JS
>>1060610Что ты имеешь ввиду под >не задуматься о типизации в JSМне например это вообще никак не мешает. И не мешало никогда. Я даже специально не могу придумать пример когда это чему-то помешает.
>>1060275>питон>Никаких новых парадигм, типизации, саморазвитияЛол, async for, async yield, async nebo, async allah
>>1060612Забей, никто им не пользуется, просто студенческая поделка какого-то Хайлсберга, который ничего в программировании не понимает.
>>1060558Конечно пользуемся. Простой JS только в совсем старых проектах.
>>1060619>мой дед писал и ты пиши.>>1060659Так профит то в чём?
>>1060665>>мой дед писал и ты пиши.Ну видимо ты и есть дед либо переигрывающая php-макака, раз не понимаешь профита статической типизации.
>>1060714>Поясните за TypeScript. Почему все его звалят>MS просто деньги вникуда спускает чтобы на двачике холивары были.>Поясните тогда за типизацию>Забей, никто им не пользуется, просто студенческая поделка какого-то Хайлсберга,>Так профит то в чём?>Ну видимо ты и есть дед либо переигрывающая php-макакаА есть кто-нибудь не токсичный и агрессивный?
Котаны, если я все же осилю всего кантора, и потом реакт, я буду успешным? Ну или хотя бы средне-успешным? 28 лет.А php после всей этой фигни с js "за неделю" осилю?
>>1060716>А есть кто-нибудь не токсичный и агрессивный? Да, твоя мамка.
>>1060718после дайва инто жс ты уже не захочешь пердолиться в некропшп
>>1060721> не захочешь пердолиться в некропшп
>>1060726>Система типов>Утиная
>>1052010 (OP)Привет.От делать нечего пишу парсер flac файлов на ноде. Ломаю голову над асинхронщиной. Есть код: https://jsfiddle.net/g6gjdxqj/Задача пока простая - чекаем файл на то, является ли файл флаком: по спекам в начале файла закодированы символы 'fLaC'. Но в ноде чтение файлов и прочие операции синхронные. Вопрос, как мне получить из промиса или асинхронной функции результат так, чтобы до его получения программа не прерывалась? Ну и вообще сохранить его для последующего использования...
>>1060728>парсер flac файлов на ноде. А завтра ты в жопу давать будешь?
>>1060729Как будто что-то плохое
>>1060279Полгода-год. Языки разметки еще не забудь.
>>1060737Так долго? Это просто JS или JS + фрэймворки?>Языки разметки еще не забудь.Я их знаю чуток.
>>1060739Долго? Ты хотел сказать "быстро" может все же?Это просто базовый жс до состояния, когда какой-нибудь фреймворк просто берешь и юзаешь.
>>1060744Ладно, попытаюсь посильнее налегать на материалы из шапки.
>>1060744Спасибо за ответы анон.
>>1060665Когда пишешь js, можешь быть увереным в отсутствии случайных ошибок только покрыв все тестами на 100%.(Для наглядности взгляни на повальный фанатизм к тестированию в руби сообществе.)В TS такие обишки просто не совершаешь, потому что IDE тебе все подчеркивает красным. Сильно развязывает руки, позволяет все редактировать, рефакторить настолько глубоко, насколько хочется. Ускоряет прототипирование, скорость разработки ну и как там модно говорить про модные языки.Как легкий бонус — вплывающая документация, автодополнение и прочие прелести IDE.
>>1060758Круто. Спасибо за развёрнутый ответ анон.
>>1060758При этом иногда система типов бьет тебе по ебалу. Еще часто тайпингсы для сторонних либ кривые или их вообще нет. Долгая компиляция вместо ф5 прилагается.
Сап, в JS Можно обернуть if в другой if?Выполняю пример из Eloquent который немного усложнил и сразу понят что что-то не так. https://jsfiddle.net/e0k6y8un/
>>1060773имя переменной
>>1060783Чувствую себя тупым. Спасибо анон.https://jsfiddle.net/e0k6y8un/3/
>>1060787этого не случилось бы если бы ты не писал код в этой срани
>>1060792В этой срани я просто поделился. Как и написано в оп посте. А так я пишу в IDE.
>>1060762>система типов бьет тебе по ебалуДля этого есть any> тайпингсы для сторонних либ кривые или их вообще нетЕсли нет в @typings/libaName ну шо поделать, значит твоей библиотекой пользуется полтора замлекопа.>Долгая компиляция вместо ф5webpack --watch
Что лучше на будущее - вешать на кнопку onclick или addEventListener?
>>1060873Сколько одинаковых онкликов на одном элементе ты можешь сделать? А динамически?
А зачем нужен koa, может кто по хардкору пояснить? А то я думал свой сервер типа как человек написать, не на голой ноде, а тут от того самого Express'а (не пользовался).Скачал, потыкал — а там ж нихуя нет, кроме обёртки над запуском http.server и перетаскиванием данных из request в context, абсолютно.
Объясните плиз что делает этот чувак.Было бы неверно предположить, что цепочки областей видимости отличаются для пяти функций в массиве result. Вместо этого каждое обновление переменной i обновляет область видимости, которую делят между собой все пять анонимных функций. Это можно исправить путём добавления нового контекста исполнения, в котором копия значения i поступит извне как параметр функции.И потом код:var result = []; for (var i = 0; i < 5; i++) { result = >(function inner(x) { // additional enclosing context return function() { console.log(x); } >})(i);}result[0](); // 0, expected 0result[1](); // 1, expected 1result[2](); // 2, expected 2result[3](); // 3, expected 3result[4](); // 4, expected 4Собсна вопрос: что это за скобочки и почему они решили проблему, если без них было result[0](); // 5, expected 0result[1](); // 5, expected 1result[2](); // 5, expected 2result[3](); // 5, expected 3result[4](); // 5, expected 4Скобочки выделил зеленым.
>>1060925Они не выделись. Ну вы понели?Это я отсюда взял https://medium.com/@sshambir/%D0%BE%D1%81%D0%B2%D0%B0%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC-%D0%B7%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B2-javascript-5b83267ef7d1
>>1060835>webpack --watchКоторый не ускоряет компиляцию, а лишь чаще разогревает пекарню. В больших проектах что обновление через watch, что ручной рестарт — время теряется.Flow в этом плане получше. Анализ кода идет независимо от сборки проекта. Бабель просто вырезает типы и все происходит чуть быстрее.
>>1060926Я сделал скриншот.
>>1060925Гугли self execution function. Скобочки эти позволяют вызвать анонимную функцию сразу же после её объявления.
>>1060980executingfix
>>1060980Ушел гуглить, спасибо!
>>1052010 (OP)Решили внедрить Webpack в легаси проект - и сразу же начались проблемы с интеграцией существующего кодбейза. Проблема в том, что нынешний JS код представляет собой:- Россыпь древних плагинов, местами использующих функции, которые уже давно убрали из актуальной версии jQuery. Интеграция плагинов в единое целое была реализована с помощью expose-loader, что делать с вызовом удаленных методов - понятия не имею. Есть ли какие-то заглушки, возвращающие старый API?- Один здоровенный main.js и кучу инлайнового говна, ссылающегося на глобалки из этого самого скрипта. Вот что тут делать - совершенно не знаю, можно ли заставить Webpack просто минифицировать этот файл и сконкатенировать с bundle.js, без инкапсуляции?Буду благодарен за любые советы.
>>1061031Зачем тебе вебпак для этого? Напиши паур тасков для галпа
Я тут глянул в ТС, короче если вы знаете ЖС то считайте и ТС тоже знаете. Разница только в том что можно дописывать типы данных к параметрам функций и всякую ненужную парашу типа приват/паблик. Нахуй для этого отдельный "язык" нужен со всякой ебаторией с перегонкой бабелем я хз, почему не завезти чото типа 'use super strict'
>>1061094Это не для школоты сделано, а для серьезных дядей, которые жирнософт пишут
>>1060980Устоявшееся название для этого IIFE — Immediately Invoked Function Expression
>>1061094Действительно. Зачем все эти строгие и надежные языки, давайте говнокодить на js и python, жить в дебаггере и бояться изменять код. Что однажды написано изменению не поддлежит.
>>1061135для этого и пишут тесты, хотя кому я это говорю :)
>>1061094Двачую, придумали какой-то ссаный костыль для лечения проблемы которую сами же себе и придумали. >>1061135Если у тебя опыта в программировании меньше 10 часов, то ты и HTML испугаешься поменять.
>>1052010 (OP)Ребзя, вопрос, как лучше всего найти совпадающие строки или словосочетания на javascript? Ну например:var text_a = "Lorem ipsum dolor sit amet";var text_b = "Dolor lorem ipsum amet";Результат: ["lorem ipsum", "dolor", "amet"]Неужели нет готового алгоритма для такого задания?
>>1061167сравнивая посимвольно каждое словосочетание со строкой.
>>1061167у тебя условие непонятное, что с кейс сенситив?если считается что "lorem ipsum" входит в обе строки то почему просто "lorem" не входит?
ну кроч если все кейс инсенситив то тип того
Что он имеет в виду под pass? И вообще, зачем он передает глобальный объект как параметр, что за хрень? Если он хочет что бы там было хоть что-нибудь, что потом можно заменить на условное А в минификаторе, то мочему бы и не написать А?
x + (y × width) Как это понять?
>>1061221>passпередать ссылку на глобальный объектон это делает чтобы внутри модуля записать в шиндош единственную переменную, в которой уже лежат все функции его библы. это и происходит на десятой строчкенапример в джквери это переменная $ и когда ты пишешь$('#id').. //чото тамты фактически пишешьwindow.$... //чото там
>>1061228Тааак, понял. А вот так тоже работает, в чем отличие?
>>1061230В смысле, что мешает написать window.$ = blalbalba без параметра? Ведь функция просто полезет искать такое имя на уровень выше в сам шиндош и найдет его?
>>1061222Ебать ты гуманитарий.Двумерный массив заменили на одномерный (все "строки" двумерного выстроили в одну большую "строку"). Для того чтобы взять X элемент в Y строке тебе нужно добраться до Y строки (Y WIDTH) и в ней взять X элемент (+ X). Итого (Y WIDTH) + X.
>>1061167https://en.wikipedia.org/wiki/Longest_common_subsequence_problem
>>1061230чисто для минификации. в первом случае будет такое(function(x){alert(x)alert(x)alert(x)})(window)а во втором ты всегда должен писать window(function(){alert(window)alert(window)alert(window)})()ну и еще доступ к локальным переменным быстрее чем лезть в замыкание
>>1061236Вот теперь совсем все понял, спасибо анончик!
>>1061232Большое человеческое СПАСИБО!
Почему сравнение с нулем быстрее, чем с любым другим числом?
>>1061254Даже в машкоде, прикинь!
>>1061255Так почему
>>1060929Хз, с ssd не замечаю проблем.
>>1061094>олько в том что можно дописывать типы данных к параметрам функций и всякую ненужную парашу типа приват/пабликГенерики, енумы, декораторы и прочие ништяки мы тактично опустим.
Не совсем по теме.Прошу совет насчёт правильной траты мыслетоплива/правильного обучения.Работаю 5/2 по 9 часов. Работа физическая. После работы и после душа, туалета, кухни сажусь учить js. Ложусь в 9:00, просыпаюсь в 5:00, чтобы основное время дома потратить на обучение свежей головой. Во время работы иногда появляется свободное время и я пытаюсь тратить эти крупицы не напрасно. Сконцентрироваться сложно. Попытки не очень удачный.В редкие дни весь день сижу в месте с тв с непродолжительными подергиваниями. Телевизор регулярно захватывает внимание, что усиливает неспособность к обучению.Эти жалкие попытки почитать с телефона на работе с постоянными отвлечениями, кажется, влияют на моё состояние дома.Замечаю что в дни когда работаю как обычно, со средней загруженностью, то есть не устаю физически и нет времени сидеть без дела, занимаюсь дома с максимальной эффективностью.Вопрос: стоит ли вообще пытаться не тратить впустую время на работе? Намного ли меньше растрачиваются силы при сёрфинге и при чтении учебников, с постоянными отвлечениями? Чем вообще лучше заняться в свободное время? Ничего не делать?
>>1061335Иди сторожем, дежурным электриком в поликлинику, курьером (хуже), посменная работа (очень плохо), тяжелая физ работа плохо сказывается на обучении
>>1061338Тяжелая работа приводит к тому, что после трудового дня организм вбрасывает в кровь уйму эндорфинов, чтобы уменьшить мышечную боль и мозг засыпает вместе с ним.
>>1061340Еще добавлю, чем плоха посменная работа - это то, что для эффективного обучения нужен регулярный полноценный сон
>>1061338Но нагрузки стали нормой и я не чувствую усталости после рабочего дня. Сторожем пошёл бы, но разве берут туда, кого-нибудь младше сорока? И могу ли я на этих работка получать хотя бы те 25к, что я получаю?700к городРаботу специально выбирал чтобы забывать о ней, как окончится рабочий день. Этот пункт выполнен. Думал о подработках, на выходных грузить мебель про переездах, но тогда бы я совсем разума лишился бы
>>1052010 (OP)нода стала как пых, что радует
>>1061364Типичное непонимание как пользоваться async/await. Эх.
>>1061365как там в 2013? они для этого и были сделаны, что бы ты их мог использовать в любом месте, спека это не ограничевает
>>1061360> 25кСтудни занимающиеся по 16 часов в день и жрущие один пакет доширака в месяц обгонят тебя за 1 год в несколько раз>я не чувствую усталости после рабочего дняТогда вкатывайся пока молодой, это быстро пройдет.
>>1061366Мань, я говорю тебе о том, что ты совершаешь типичную ошибку и неправильно пользуешься async/await в js. Почитай: http://2ality.com/2016/10/async-function-tips.html
>>1061335>Телевизор регулярно захватывает внимание
>>1061368ну ты и мудило. по твоей же ссылке:>Another option is an Immediately Invoked Async Arrow Function:>(async () => {> console.log(await asyncFunction());>})();
>>1061372Твоя проблема в том, что ты делаешь два независимых запроса в бд синхронно.Вместо r1 = await db.q1()r2 = await db.q2()return {r1, r2}надо делатьr1 = db.q1()r2 = db.q2()return {r1: await r1, r2: await r2}или через Promise.all
>>1061367Не верю что кто-то может заниматься по 16 часов в день.Думаю аноны из этого треда занимаются по часов пять
Бля заебался. Начинающий кодер и пытаюсь сделать портфолио. Решил сделать небольшой ИМ. Нашел скрипт simpleCart, разобрался как оно работает, сделал свой велосипед, но все не то. Там все на дата атрибутах. Цены и т.д. поменял в консоли его на любое число с ним и полетел заказ. Может кто объяснить как это делается по правильному. Я понимаю что там сервер нужен, но хоть принцип. А то кажется что хуйней страдаю.
>>1061375Аноны из этого итт треда уже свое отзанимались. Теперь рубят свои 300кк/час.
Обожаю жабоскрипт
>>1061379Очердное необразованное мудло, которое не знает как работает компьютер. Читай про IEEE754
>>1061379При чем тут жабоскрипт? Любой язык тебе выдаст неточный результат при вычислении с десятичными дробями.
>>1061382На пыхе такой хуйни нет, там на уровне языка всё сделано
>>1061382>>1061384https://ideone.com/wu3Mf5
Нахуя нужен class expression?
>>1061385поминуты на унижение пыхоребенка его собственной спекойhttp://php.net/manual/en/language.types.float.php
>>1061385Внутреннее представление всё равно не точное.
>>1061385>>1061384Фантазер ебучий. http://php.net/manual/en/language.types.float.phpВ пыхе у тебя все зависит от системы, то есть ты нихуя не знаешь как оно сработает, если не влепишь проверку.В жсе в стандарте прописано: 64bit iee754https://www.ecma-international.org/ecma-262/5.1/#sec-4.3.19
>>1061385https://ideone.com/WaomQM
>>1061391>>1061390>>1061387Ну ладно, че вы сразу так :(
>>1061386Посоны?
>>1061395Можно переопределять класс.
>>1061395Ну и да, как const f = function x() {}https://stackoverflow.com/questions/34565362/what-is-use-of-named-or-unnamed-class-expression-in-es6
>>1061395https://jsbin.com/yogozebezi/edit?html,js,console
Перекот мне запилил блеять.
>>1061373да, не ок, не заметил даже, конечно из БД лучше параллельно забрать результаты, завтра буду копать в сторону await Promise.all, добра
перекот >>1061439 (OP)перекот >>1061439 (OP)перекот >>1061439 (OP)перекот >>1061439 (OP)перекот >>1061439 (OP)
Шпасите! Я больше не могу быть фронтером.
>>1060714В PHP как раз есть интерфейсы, тайп-хинтинг (в 7-й версии ещё и для скалярных типов), нормальные классы со спецификаторами доступа. PHP таки умеет хоть и в рантайме, но падать с читабельной ошибкой вроде "Ожидаю класс Foo, получил null", что позволяет быстрее обнаруживать баги. А если статический анализатор для JS что-нибудь пропустит, то JS, в силу его динамичности, не упадёт сразу, а пролезет ещё через кучу строк и упадёт с невнятной ошибкой. Я сам пользуюсь Flow, всем советую, а вот TypeScript мне когда-то показался бесполезным - он отлавливал только самые очевидные ошибки.
>>1061165Легкая пометка ": string" избавит от необходимости в 95% тестов.Хотя это не актуально для тех, кому платят за строки кода и 100%-ое покрытие.
Анон, create-react-app под винды вообще ставится или нет? Не могу разобраться.
>>1052955Гугли ты еблашик мой тупой.Buefy пример
Господа котоны, мотивации мне плиз, хочу стори "сделал кантора, выучил реакт, 300к/сек"
Есть возможность сначала выучить JS, а потом html и css? Хочу в идеале в бек на ноде вкатиться, но пугает что надо реально много знать в html и css (фреймворки, адаптивная верстка, кроссбраузерная, кроссплатформенная и т.д)? Как бы не проблема выучить все это, просто кодить мне нравится, а верстка отбивает все желание сидеть за компом и писать что-то.
>>1052010 (OP)Братики, как вы думаете, стоит ли припиздеть о своих умениях (когда ты джун), чтобы устроится на работу (на джуна)? Вот требуются какие-то ебанутые технологии, я посомтрел видосы, вроде всё понятно, но опыта работы с нгими нет. СТоит ли сказать что я это всё умею и имею опыт?
>>1052010 (OP)Пацаны, что можно пиздатого сделать за 1-2 дня, чтобы было не стыдно на гитхаб залить? Моя специализация: бэк на Node.JS (умею в вебсокеты, парсеры, лямбда функции) и фронт на HTML+CSS+Jquery/React.