Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многими другими.
Блять. Пидорасы. Мне бомбит от всех этих ваших ecmascript, es20xx и бабелей.
Хипстеры в узеньких штанишках там совсем охренели?
Сделали классы, все дружно бросились их использовать, но приватные методы забыли. Как вообще сделать приватный метод класса в этом вашем яваскрипте?
Запилили декораторы @хуй пизда() {}
но обосрались, декараторы работают только с классами. нельзя повесить декоратор просто на функцию или объект.
хипстеры дружно бросились использовать декораторы и команда babel берет их и выпиливает нахуй из проекта, потому что они вообще были просто шуткой, питушки так и не решили нужны ли они вообще?
в итоге имеем: недоделанные классы, в которых надо писать this ехал через this и нет приватных методов. Куча проектов использующих декораторы, которых вроде как нет и не должно быть и которые все равно через жопу сделаные.
стрелочные функции поменял function на () => отвалилось все нахер
как вообще блять так жить?
хочется уже перейти на нормальный язык, без этих ебанутых плясок в яме с говном. жили же как-то раньше
>>916843 > Сделали классы, все дружно бросились их использовать, но приватные методы забыли. Не забыли, а не сделали. И не сделают, потому что это бессмысленно. ЖС позволяет на ходу манкипатчить даже небо, даже Аллаха
> но обосрались, декараторы работают только с классами. нельзя повесить декоратор просто на функцию или объект. Даун? Даун const пизда = @хуй('zalupa') (x, y) => { return x + y };
> хипстеры дружно бросились использовать декораторы и команда babel берет их и выпиливает нахуй из проекта, потому что они вообще были просто шуткой, питушки так и не решили нужны ли они вообще? Выкинули эксперементальную функцию из dev-ветки! Где же такое видано?!
> стрелочные функции > поменял function на () => отвалилось все нахер Может перед тем, как писать хуйню, нужно хоть один учебник по жсу прочитать? Стрелочные функции не имеют своего контекста, а наследуют контекст родителя
Короче, даун ебаный, съебал в список литературы и от корки до корки
Посоны, на чем вы пишите ES5 или ES6? Хочу вкатится нормально в JS, стоит ли сразу начинать писать используя let, class и прочие плюшки нормальных языков?
>>916894 А потом его спросят на собеседке о прототипах и споупе var и он обоссытся. Думай, что советуешь. Классы и прочее - это только сахар. Суть не меняется.
>>916887 >Не забыли, а не сделали. И не сделают, потому что это бессмысленно.
инкапсуляция бессмыслена. ясн
>const пизда = @хуй('zalupa') (x, y) => { return x + y }; > пук
ясн
>Выкинули эксперементальную функцию из dev-ветки! Где же такое видано?!
они раньше были в основном пересете бабеля, мань
>Может перед тем, как писать хуйню, нужно хоть один учебник по жсу прочитать? Стрелочные функции не имеют своего контекста, а наследуют контекст родителя
>>916918 ты им расскажешь, что это все хуйня, они все равно конвертятся в var-ы, расскажешь что-то такое прототипы и что классы в яваскрипте это не классы и что инкапсуляция нужна. и тебя не возьмут. тру сторри.
пофиксить баги и привлечь Анонов к разработке. думаю после релиза сделать проект опенсурсом. выложить на гитхаб все исходиники, с инсталляцией в два клика. как то так.
>>916915 Съеби уже, в прошлом треде ты не привёл ни одного аргумета в пользу твоих ебучих приватных методов, кроме "инкапсуляция! деды! штандарт! ООП!", так хоть этот не загрязняй своими бесполезными постами. ИНКАПСУЛЯЦИЯ ЭТО НЕ ТОЛЬКО ПРИВАТНЫЕ МЕТОДЫ.
А про стрелочные вообще смешно. Разве кто-то обещал, что стрелочные это замена обычным? Нет.
Чего-то не понял. Почему JS до сих пор общепризнано не переименовали в ES, которым он сегодня и является?
>ECMAScript — это встраиваемый расширяемый не имеющий средств ввода-вывода язык программирования, используемый в качестве основы для построения других скриптовых языков
Все встраиваемые языки так или иначе расширя.тся за счет API окрудения, куда встраиваются. JS не приносит в ES какие-либо синтаксические расширения, как например это делал AS, все исключительно на уровне API. Так по факту JS это никакой не JS, а ES.
От признания этого факта все только выиграют. Отпадет эта глупая ассоциация с Java у дурачков. Отпадет легаси биография как язычок ща 10 дней и используется только для снежинок. Потому как первоначальные версии JS(хотя по факту вообще не js а то mocha, то live) и были запилены Айком за неделю, и потом на протяжении десяти лет использовался только для анимации снежинок и меню, сегодня нет никакого ТОГО JS, есть вполне себе ES, который встраивается в разные окружения, спеки на который курирует целый комитет комитет.
Такие дела, тащемта. Я бы прямо начал с переименования треда.
>>916852 И что это им даст? Они потом еще год-два будут ждать пока им компиляторы с их УДОБНЫХ языков запилят. А потом, осознают, что работать надо все с тем же web api и знать все те же нюансы работы поднаготной браузера.
Парни раскажите плз как работают такие штуки как schedule. Когда мы можем задать какуюто дату и время и определенный код внутри выполнится в это время, как такое делают? setInterval'ом каждую секунду сверяют время с текующим?
>>916920 Удобнеее всего начинать читать ES 1st edition от 1997 года. Она очень короткая и простая. А потом все остальные, просто диффами. Так проще понять почему все так и откуда легаси.
Анончик, это задание так хуёво составлено, или я тупой? Разъясни, пожалуйста. Что за содержимое таблицы? Я должен доставать значения из html-файла? Или наоборот в него запихивать какие-нибудь поля из js-файла? И как вообще слушать таблицу? action в css-файле? Но как тогда из него обращаться к js?
веб вижу первый раз в жизни, про html+css за десяток минут нагуглил, а тут уже долго не могу понять, что требуется
>>917085 Именно то, что в нем написано. Там предельно ясно и кратко описано, что нужно сделать. Если ты не понимаешь ничего из написанного, то у тебя недостаточно знаний и никакое иное объяснение тебе не поможет.
>>917092 > есть Нету, абсолютная интроспекция. Есть просто соглашения на именование приватных/защищённых полей. В реальном коде чаще всего всем на это плевать.
>>917085 Сделать резиновую таблицу 4х4, используя только блочные элементы, в двух разный вариантах с ограничениями на максимальную и минимальную ширину и добавить к ней css-анимацию при наведении, на свой вкус. Заполнить ее ячейки номерами по принципу номер строки.столбца. При клике на ячейку читать ее содержимое.
Добавить на страницу блок со скругленными уголками, тенью, прозрачностью и градиентом, который плавно исчезает при наведении на него.
Добавить типичную кнопку "вверх", в угол страницы и оформит ее.
>>917097 >>917089 Аноны, перечитайте мой вопрос. Я говорю про второе задание. Я не понимаю, где должны храниться значения ячеек, как я должен обрабатывать нажатия на таблицу и куда я должен получать значения.
>>917165 Ты не понимаешь, потому что у тебя не хватает знаний. На кой черт ты лезешь решать эту задачу, если ты не соображаешь в теме. Там все ПРЕДЕЛЬНО ПРОСТО написано. Даже пятиклассник поймет.
еще интересная параша с этим вашим ангуляром твориться, типа в новом ангуляре2 есть сервисы, в первом наплодили кучу разного говна, фактори, сервисы, константы и еще какая-то хуйня. и что же получается. Теперь стало модно писать на первом, так чтобы можно было мигрировать на второй (что само по себе идея фикс)
но получается, ангуляр поощряет написания сервисов так
Есть какой-нибудь сервис для логгирования хттп запросов? Пишешь такой `//????.???/myid?get=${document.cookei}`. Для имитации серверной стороны хеллоуворда, например.
>>917204 > Ладно. Видимо, программирование это не моё. Пиздец, из чего ты сделал такой вывод? Ты понимаешь, что ты пытаешься решать уравнения, не понимая что такое цифры? Тебе сначала нужно научиться верстать таблицу, потом узнать про DOM, в котором и хранятся эти данные, а потом аж узнать как JS взаимодействует с DOM'ом и пользователем, чтобы достать данные из DOM и вывести их по клику. Ты непоследовательный, вот в чем твоя проблема
>>917215 > ко ко ко приватные методы нинужны, пиши каждый раз this, если забыл this, все пизда Причем тут приватные методы, ебалай? Ты в курсе, что приватные методы можно реализовать через те же декораторы? this - это контекст класса, блджад.
Может кто порекомендовать туториалы или статьи по ноде с использованием MVC, хочу написать фулстак приложуху как будто я отец бэкенда (в бэкенде плохо шарю)
>>917433 можно сделать декоратор @private (в стрик моде другое имя нужно выбрать) и я не могу придумать способа как реализовать такой декоратор, чтобы он детектировал вызов метод извне.
>this - это контекст класса, блджад.
спасибо кэп.
Зачем мне каждый раз писать this, когда можно было его убрать? Даже в яве this писать постоянно не надо. Хотя да, это же яваскрепт.
>>917578 > можно сделать декоратор @private (в стрик моде другое имя нужно выбрать) и я не могу придумать способа как реализовать такой декоратор, чтобы он детектировал вызов метод извне. Пикс
> >this - это контекст класса, блджад. > Зачем мне каждый раз писать this, когда можно было его убрать? Даже в яве this писать постоянно не надо. Хотя да, это же яваскрепт. Ты такой тупой, но почему-то считаешь себя охуенно умным. Как в таком случае получать доступ к глобальному скоупу?
>>917578 >Зачем мне каждый раз писать this, когда можно было его убрать? Даже в яве this писать постоянно не надо. Хотя да, это же яваскрепт. Ты дебил просто. Потому что не понимаешь, что то о чем ты говоришь и чего хочешь - называется - паттерн модуль, сука. Для этого не нужны специальные конструкции яызка. И если в твоей джаве - каждый класс это модуль, это не значит, что везде так должно быть.
>>917182 >пистон блокирует обращение к методу из вне, если он начитается с __ >в рубях есть ключевое слово private для объявления приватных методов Нет. Питон лишь делает доступ к таким методам слегка сложнее, но он есть. И эта "приватность" была введена по другим, более полезным причинам, чем "НИХАЧУИМДОСТУПДАВАТЬ!". В руби тоже определение приватного немного другое, да и, опять же, легко обходится.
> видешь, никаких this не надо То есть тебе действительно проще для каждого модуля/функции писать пятистрочный геттер вместо четырехбуквенного this, я правильно понял?
>>917761 >parseInt('3', 2); Парсим целое в двоичной системе из строки. Первый символ строки не подходит под двоичное число. Возвращаем NaN.
>parseInt('03', 2); Парсим целое в двоичной системе из строки. Первый символ строки подходит под двоичное число, сохраняем его для формирования числа, смотрим следующий символ в строке. Следующий символ не подходит. Возвращаем число.
>>917700 >Нет. Java лишь делает доступ к таким методам слегка сложнее, но он есть. И эта "приватность" была введена по другим, более полезным причинам, чем "НИХАЧУИМДОСТУПДАВАТЬ!".
>>917761 NaN - Not-a-Number, не число. В первом случае нет двоичных цифр, и число прочитать не получается. Во втором случае одна цифра есть, она и выдается результатом.
>>917720 речь не о гетерах, а о том, что в сахарных классах нужно постоянно писать this и еще и в конструкторах этот this определять. Если ты заметишь то в мое примере кода не больше чем в
class ТвояМамаша { constructor() { this.пизда = 1; }
>>917851 >Значит ли это что в яве нет инкапсуляции? Я тебе уж в который раз пытаюсь сказать, что инкапсуляция не заканчивается на приватных методах. Но ты не слушаешь. И джава с питоном тут всё равно различаются. Всё, что делает питон с "приватными" __методами, это автоматически добавляет к ним префикс в виде имени класса. И всё.
>>917861 Чтоб исключить коллизии имен. Так-то нахуй не нужно. Достаточно соглашения, что _foo - protected, а __bar - private, джентельменам верят на слово.
>>917868 В родителе и потомке, очевидно же. Name mangling. >>917867 >отцы основатели зарезервировали.. и тут ты такой с пруфами, что вся эта хуйня нужна в динамическом языке вроде питона
>>917861 Внезапно, оно и не для скрытия! Именно поэтому до них и можно так легко добраться.
Это чтобы гарантировать (ну, в какой-то степени, программист ведь что угодно сломать может) вызов нужного метода при наследовании от твоего класса.
Например, у тебя был нужный тебе метод, кто-то засабклассил твою библиотеку и, не заглядывая внутрь, случайно назвал свой метод так же, как у тебя, но при этом потом спользует базовую функцию. Выйдет хуита - https://repl.it/FR2u , потому что get_time как бы полагалось на базовый метод. Если же использовать __, то всё работает как надо https://repl.it/FR2s А если хочется или нужно, легко можно обойти.
>>917868 Вот тебе еще пояснение и так знаю, что тебе ничего не поможет
>A lot of people erroneously use double underscores to simulate "private" members, because double underscores invokes code mangling and makes those members harder to reference outside the class. However, it does not actually make them inaccessible.
>Most of the time, it mainly adds a road bump to unit testing.
>Really the double underscore mangling mechanism is to hide those members from subclasses that you don't want clobbering the values inadvertently. Name mangling isn't intended to hide the member from other programmers; the mangling scheme is simple, and referencing the variables anyway is easy.
>Single underscore is the common convention for internal members. That's saying, we're all adults here, and although you can see it, this variable is intended for internal use. If you reference it, there's no guarantee it will still be there in future versions.
>The Pep8 doc talks about that, and says use of the double underscores for variables and functions should really be rare.
>>917880 Ты не в силах сделать инкапсуляцию без специальной синтаксической конструкции? От которой [конструкции] все равно не будет никакого профита из-за тотальной динамики и интроспекции? Серьезно?
>>917880 >>Расписал для последнего довна, для чего в питоне __foo, и почему эта штука не имеет никакого отношения к private в крестах или жабке например >в яве тоже можно извратится и вызвать приватный метод nuff said, научись читать
>>917908 >что классыв их текущей реализации которые недавно ввели в язык это говно без задач От того, что у нас тут динамика, и все интерфейсы существуют только в соглашениях и в головах разработчиков. Хочешь интерфейсов как в жабке - пиши на жабке, TypeScript, Scala
>>917910 нотация __ в питоне означает: "пожалуйста не вызывайте меня", а теперь попробуй доказать, что это штука не имеет никакого отношения к инкапсуляции
>>917918 >нотация __ в питоне означает: "пожалуйста не вызывайте меня" Нет. Зачем было бы добавлять в класс то, что не надо вызывать? Это же бессмысленная трата места в текстовом файле.
>>917923 >Зачем было бы добавлять в класс то, что не надо вызывать? Это же бессмысленная трата места в текстовом файле.
зачем разбивать длинные функции, на множество мелких, чтобы сделать код более читаемым и повторно используемым, ведь это пустая трата места в тестовом файле?
>>917918 >нотация __ в питоне означает: "пожалуйста не вызывайте меня" False, ты жопой читаешь. "Пожалуйста, не вызывай меня", это одинарное лидирующее подчеркивание. Двойное - задействование name mangling.
>>917930 и область видимости тоже не была придумана для скрытия чего-то? Ведь в самом деле. Зачем что-то скрывать, ведь все компиллится в машинный код, а там ты можешь читать любой регистр и любую ячейку памяти
>>917936 Так мы про замыкания или облась видимости? Регулируемая яркость на мониторе тоже не для скрытия от посторонних с плохим зрением была придумана? Вот уж новость!
>>917946 Область видимости переменных внутри функции и модификаторы видимости полей/слотов объектов - вещи ортогональные. Одно может не знать про другое. Не смешивай понятия разного порядка.
>>917964 >А вот добавление в код неиспользуемых функций — нет.
ты не понимаешь смысл приватных функций. Приватные функции это внутренние функции, которые используются внутри класса. и совершенно верно, мы не хотим, чтобы их вызвали снаружи, потому мы хотим их скрыть
>>917971 Нет, я-то там уже был и читал. Но мне просто хочется, чтобы условились и были уверены в том, что мы одно и то же имеем в виду под этим словом.
>>917970 >ты не понимаешь смысл приватных функций Я понимаю. Речь шла о >"пожалуйста не вызывайте меня" Это ни к питоновским, ни к приватным методам не относится.
>>917975 Приходи ещё, только постарайся расширить область претензий, а то одна лишь инкапсуляция, да ещё и с игнорированием половины аргументов, уже слегка поднадоела, если честно.
>>917975 Твоя беда в том, няша, что ты мыслишь с позиции баззвордов и религиозных догматов (Должно быть так, яскозал), а не из соображений прагматики. Странно требовать от языка, где можно намонкипатчить такого, что 5 тимлидов со Спинозой и Кантом не распутают, какого-то контроля доступа к полям объекта. Один хуй все держится на соглашениях и соображениях здравого смысла. Плюс подстелена соломка со стороны ЯП, чтоб совсем уж на граблях ноги не ломать.
>>916832 (OP) В тред призываются мегамозги. Как сваять на JS максимально простую (в плане кода) логическую игру типа судоку или 2048? Подробнее - на пике.
Может ли react-router нормально работать без сервера? Убрал сервер, все отвалилось. Потом в точке входа в indexRoute указал полный путь к index.html и оно отобразило его, но остальные роуты не работают ни в каком виде.
>>918170 > Не забудьте предусмотреть сериализацию результатов во все мыслимые форматы > Игра должна поддерживать возможность офлайн работы с отложенной синхронизацией > И да, на заметочку, 3 часа - это худший показатель среди соискателей
Насколько удобней писать бэкенд на Ноде? Это ведь тот же джс по сути, то есть и фронт и бек на одном языке (но фронт джейквери, но не суть). Удобно же в теории, а как на деле?
Алсо > коллбэки Остались в истории, их сейчас никто не юзает. Сейчас используют промисы, поверх которых и работает async/await https://learn.javascript.ru/promise
Ребята, встречайте новичка. Изучаю JS. Чтобы что-то оставалось в архивах и памяти, (да и вообще почитал, что у любого нормального разработчика должен быть акк на GitHub) зарегистрировался там, скачал git, подключил синхронизацию с PyCharm. До этого баловался только писал всякие скриптики на Пайтоне, из разряда массивов, сортировке по величине, четные числы налево, девоч.. нечетные направо и так далее. Так собственно вопросы. 1) Все правильно сделал? 2) В какой IDE работают люди с JS? Тут начитался, реакт-хуякт, ангулар-хуянгуляр, скачал а там просто файлы .js, как это вообще использовать блять в своей работе-то? Хочу писать простенькие веб-приложухи, расширения для браузера и фронт. Например написать каклькулятор для начала.
>>918549 > В какой IDE работают люди с JS? emacs > как это вообще использовать блять в своей работе-то? берешь и используешь >>918557 github pages, если у тебя только статика
>>918504 Почему? Я видел бинарники из питона, хотя он тоже интерпретируемый. Пилю канвас игру и просто интересно, будет ли какой нибудь профит в производительности если соберу ее в нативный ехе.
братишки я если честно хуею немного. вот мне нужно сохранять в базу дерево категорий + трэкать парент_ид (да-да категории имеют предков) все это сопровождается запросами в монгу в цикле
так вот как вы блядь так могете в асинхронное программирование? Это же блядь хуева туча чейнов промисов и прочее. удобно ли это вообще читать и писать? ну и чо делать вообще спасибо.
>>918626 Ты дебил? Пайтон собираться будет точно так же как и js и любой другой интерпретируемый язык - Вместе с интерпретатором. Вопросы про производительность еще есть?
>>918633 Так он все равно будет на десктопе запускаться без браузерного интерпретатора и будет лишен уязвимостей этого браузера. Будут опущены сотни проверок на безопасность расширений, фильтрации соединений и прочего, потому что на десктопе это не актуально. И памяти он должен потреблять меньше. За счет этого мне кажется будет прирост производительности.
>>918629 > все это сопровождается запросами в монгу в цикле Нельзя так делать, переписывай. В монге же есть всякие map/reduce
> как вы блядь так могете в асинхронное программирование? Это же блядь хуева туча чейнов промисов и прочее. С async/await оно уже выглядит как синхронное, гугли
> удобно ли это вообще читать и писать? Да, если научиться думать ассинхронно
>>918679 короче такая хуйня приходят категория вида
"Home > Furniture > Chairs > ..."
паршу это все в массив categories
мне нужно их залить в базу, в виде { name: ... parent: ObjectId(....)
}
Т.е. например { name: Chairs parent: (ссылка на Furniture в этой же коллекции) }
делаю как на пикрелейтед (find'aми проверяю есть ли уже такая категория, если нет и индекс не 0 то ищу предка, беру _id и инсерчу)
все бы ничего, но в строке 430 он мне выводит пустой массив на find, хотя этот элемент был заинсерчен на прошлой итерации цикла.
короче, тут какая то хуерга с асинхронностью, или я вообще какую то хуйню творю. программач, помогай. я в ахуе блядь. [ ] Chairs - вывод консоли на итерации,
ребятки, какой уровень знаний нужен что бы вкатиться в фриланс (всякие апворки и тд.)? английский - уверенный адвансед (ебаные 10 лет с репититоршой). расскажите, что лучше подучить, за что первое хвататься (фиксед прайс или почасовые заказы?) как найти первого клиента?
>>918696 Не мучай себя, возьми ормку, вроде Mongoose/Waterline, они там все это за тебя делают. Просто указываешь название поля, а они сами под эти связи данные подтягивают
У меня есть главный div — b. Под ним должен располагаться вспомогательный div — a. Слой a используется для группировки кнопок c1, c2, c3, которые должны находиться поверх слоя b. Возможно ли реализовать подобное средствами CSS? Очевидное использование z-index на кнопках не работает, если не прописать им position: absolute, но с таким позиционированием их не удается сгруппировать. Как быть?
Сосаны, нужно написать десктопное приложение на жс с бд. Можно даже чтобы через хром открывалось. Я написал драфт с использованием Express, sequlize в качестве орм и нанджакс в качестве шаблонизатора паг и джейд это пиздец, а мусташы и хэндлбары говно без нормального наследования и блоков. Думаю в итоге перекатить на electron.js, чтобы не нужен был браузер. Так вот, как электрон дружит с шаблонизированными приложениями или нужно делать все на каком нибудь реакте?По мне шаблонный код проще поддерживать, да и особого смысла в СПА тут я не вижу, и может есть орм получше? Или есть какой то устоявшийся стек для таких приложений?
>>918997 Английская книжка есть в интернете. Очень хорошая для тех кто впервые сел за клавиатуру. Но тупые селедки и 90% твоих одноклассников все равно не осилят.
На верхнем уровне скриптов и функций let, в отличии от var, не создает свойства на глобально объекте. Например:
var x = 'кижуч'; let y = 'карась'; console.log(this.x); console.log(this.y); В выводе программы будет отображено слово "кижуч" для this.x, но undefined для this.y.
>>919221 > Crossing The Blazing Forevermore Through Frozen Underworlds > Beneath a Dead Blasphemy Of Silent Death > And a Ancient Cosmos Towards Freezing Death
Начал с EcmaScript 2016, и хотел уточнить по трендам: насколько после ecm'ы разумно углубляться в CoffeeScript; т.е. с одной стороны есть тренд на TypeScript т.к. это ангуляр, а с другой вижу как CoffeeScript поливают говном, т.к. не умеет в стандарты Есмы.
>>919274 >пиздец он мерзкий, неужели питон такой же Питон изначально был питоном, а тут неосиляторы ЖС хотя хули там осиливать прикрутили к нему хуйню и получилась мерзкая хуйня.
Аноны, как осилить замыкания? Подъём переменной понял, а в эту херь не могу вкатиться, т.к. банально не использовал ни разу. Что это вообще такое? Нах они нужны? Какие подводные камни? Есть упражнения по замыканиям?
>>919367 У меня завтра собеседование, надо эти ваши замыкания выучить и область видимости, а я отбитый дегенеративный ублюдок и мразь. Но 100к хочется, поэтому пытаюсь вкатиться в эту ебалу мать её, замыкания сука
>>919445 На FrontEnd. Да норм, я когда-то сайты писал и на месте вкачусь уже. Но я ретард) Поэтому могу собес проебать. А надо не проебать. Очень плюхи люблю, а на 100к пиздец их набрать можно. Например посидеть на испыталовке 3 месяца типа я там сайты пишу, рубануть 300к и съябывать в следующую фирму с опытом работы уже
Сап, аноны. Как можно в отдельный файл массив засунуть (аля json) и потом его импортировать в другой? Пытаюсь так export default arr = [1,2,3]; А потом в другом файле import arr from './data/arr.js' - никуя. Что не так? В json не могу сунуть, т.к. там методы js есть
Бекендер-php, хочу попробовать коммерческую ноду Вот например если на симфони ты можешь написать нормальный например пусть даже блог с админкой, логинами/авторизацией, ну кароч такой типа crud++, то на работу джун-миддл макакой уже возьмут
А какое такое сферическое задание в вакууме может быть на ноде? Не хочу просто на диване учиться, сделал бы пробное что-нибудь, а потом заказы на фрилансе
>>919384 Я не он. Но вчера листал вакансии в своем городе.
Там искали СИНЬОРА с требованиями ГЛУБОКО ЗНАЧИТ ЧИСТЫЙ JS и РАЗБИРАТЬСЯ что такое СКОУП, КОНТЕКСТ и ЗАМЫКАНИЕ. Все остальные требования были о качествах личности. Серьезно. Я не тролль.
Парни, как научиться жить без if'ов и switch'ей в джаваскрипте? Нашел интересный ЖС линтер, который содержит правила, характерные для функционального стиля: https://github.com/bodil/eslint-config-cleanjs
Пройти большую часть требований не представляет труда, но вот с флоу контрол у меня проблемы. Почитал немного на эту тему и сделал вывод, что для проверки условий в большинстве случаев используются отдельные функции с передачей колбэка и тернарные операторы. Подумал, и накидал пару строк в императивном и функциональном стиле для простого примера - проверки наличия ключа и значения в переданном объекте: https://codepen.io/anon/pen/YNryoy?editors=0011
Уверен, что есть способ улучшить этот код, поэтому хотел бы услышать советов мудрых. А что, если более комплексная проверка условий потребуется? Дробить на кучу более мелких функций?
>>919647 Нахуя? Тернарные операторы - те же ифы, какой смысл заменять одно другим, ШОБ ЛИНТЕР НЕ РУГАЛСЯ? Ты же понимаешь, что фунция checkOptEqual делает абсолютно то же, что и classicWayToCheckOptions? Только в "функциональном" стиле ещё лишнее появляется. В джаве даже байткод почти идентичный получается. Вот выдумают себе говна какого-то, книжки пишут, статьи, фукнции лишние вызывают. Дали им язык, где хочешь — map'ы и reduce'ы, хочешь — императивно хуярь, можно и ООП (без приватных метовод, правда) имитировать. Но нет, надо жрать говно и мучить себя, чтобы угоднить, да я даже не знаю, чему — хипстеру какому-то из интернета, который сказал, что if'ов надо избегать? Невозможно их избежать. Хоть где-то тебе да нужно будет выбрать, по какой из веток идти ведь. Ты можешь сделать один if, а можешь нахуячить десять проверочных функций и считать, что избежал if'ов, хотя на самом деле просто завуалировал его.
>>919647 Алсо, судя по >return console.log("...") ты только начинаешь учить язык. Лучше сначала полезным делом займись.
Ну и ещё: >options.someProp && options.someProp === 123 Первая часть бессмысленна. Если somePro не существует, то оно и сравнит undefined с 123 и выдаст false. Нужно проверить, существует ли options, чтобы избежать "options is undefined" при попытке доступа к someProp у него: >options && options.someProp === 123
Совсем говнина, да? Как же люди живут без всего это в функциональных ЯП?
>options.someProp && options.someProp === 123 С options.someProp проебался, да. hasOwnProperty нужно применить и здесь.
>return console.log("...") Невермайнд, просто заглушка. По правилу линтера - функция должна возвращать значение, отличное от null и undefined. Да и просто это хороший этикет, что-то возвращать.
Но ведь цель функциональщины - повышение читаемости и снижение сайд-эффектов, не?
>>919655 >повышение читаемости Ну и как, повысилась она, на твой взгляд?
>hasOwnProperty нужно применить и здесь. Нет же, ты совсем не понял, о чём я. Есть проперти есть — выдаст значение, если нет — undefined. Нет смысле проверять наличие проперти. hasOwnProperty вообще используют, когда хотят убедиться, что проперти есть именно у этого объекта, а не унаследовано от кого-то там. Представь, что кто-то вызвал твою функцию без аргументов, что случится в твоём коде?
>>919656 >Есть проперти есть — выдаст значение, если нет — undefined. Нет смысле проверять наличие проперти Точно, блджад! Я забыл совсем, что использовать этот метод имеет смысл, если проверяют существование вложенного объекта, например.
>Ну и как, повысилась она, на твой взгляд? Нет, избыточность налицо, но я не исключаю, что это из-зам моей криворукости и незнания грамотного подхода. Хотя здесь надо сделать отступление и пояснить, что в моем понимании, например, [].filter(v => v > 777).forEach(v => someAction) читается лучше, нежели более краткая форма [].forEach(v => if (v > 777) someAction)
>Представь, что кто-то вызвал твою функцию без аргументов, что случится в твоём коде? Ну, пре-чекинг я не стал делать, мне саму концепцию хотелось проверить. В реальной жизни можно было бы насадить Flow, например.
Так что же получается, красиво писать на JS в функциональном стиле NEEKAQUE? Нужно обязательно пересаживаться для этого на Elm или какой-нибудь ScalaJS?
>>919657 Ну да, создавать новый массив и потом ещё разок по нему проходится, очевидно и понятнее, и производительней, чем пройтись лишь один раз и вызывать функцию элемента, если надо.
>красиво писать на JS в функциональном стиле А что ты понимашь под "красиво"? Писать чисто в функциональном стиле в js это абсурд, я считаю, даже если и можно. Ничем не обоснованное ограничение возможностей языка. Побочных эффектов и так и так можно избегать, красивый и читаемый код и в нефункциональных языках пишут. А тут бери всё лучшее из любой парадигмы, не стесняйся!
Разумеется, лучше выслушать мнение ещё кого-нибудь.
>>919667 >Ну да, создавать новый массив и потом ещё разок по нему проходится, очевидно и понятнее, и производительней, чем пройтись лишь один раз и вызывать функцию элемента, если надо. Если не стоит цель выжать максимальную производительность, в таком случае, разве явное не будет лучше неявного? В filter() может быть заключена комплексная логика, соответственно отдельный метод обеспечит хорошую читаемость и модульность.
>А тут бери всё лучшее из любой парадигмы, не стесняйся! К сожалению, я не работаю в конторе, где пишут на JS, но я всегда думал, что за мультипарадигменный стиль там бьют по рукам. Да и здесь за это часто окропляют живительной влагой.
>>919679 >разве явное не будет лучше неявного? А где там неявное-то? Ты в условие filter'а будешь писать абсолютно то же, что и в if. Собственно, фильтр же и делает если тру, то оставляем элемент. >соответственно отдельный метод Отдельный метод можно и в if'е вызвать.
>Да и здесь за это часто окропляют живительной влагой. Не видел такой. Здесь влагой за говнод только, обычно.
Ретард на связи)) Взяли меня на 100к, заебок. Про замыкания даже не спрашивали, а про какие-то типа чем == и === отличается я в туалете подсмотрел) С понедельника на работу типа
Вот я еще что вспомнил: почему ребята из ФБ не добавили в реакт поддержку жизненного цикла для 'stateless/pure' компонентов? Хотя ведь даже Денчик Абрамов их форсит. Приходится через прямую кишку мокрописьки вроде react-functional извращаться.
Господа, я тут проходил Канторский тест, и там был такой пример: var a = (1,5 - 1) * 2; alert(a); Типа, что выведет. Правильный ответ 8 - это потому, что выражение в скобках равно четырем. То есть, если объявить переменную, как "var a = (1,5);" значение до запятой просто отбрасывается? И никаких ошибок на этот случай, ничего? Или я что-то недопонял?
Аноны, нужна помощь. Из двух скриптов, заменяющих в зависимости от расположения курсора id элементов, работает тот , что ниже в разметке (pic 1). Объясните, как заставить работать оба скрипта одновременно.
>>919813 Совместить их в одну функцию. Либо делать не window.onload = ..., а window.addEventListener('load', evtHandler), таким образом ты на один и тот же эвент можешь несколько функций вызвать. (Первым способом ты заменяешь функцию onload на 35-ой строчке.) Менять id элемента это как-то странно, советую пересмотреть решение.
>>919655 >>return console.log("...") >По правилу линтера - функция должна возвращать значение, отличное от null и undefined. Да и просто это хороший этикет, что-то возвращать. Ебанутый, console.log ВСЕГДА возвращает undefined.
>>919680 Он еще и не понимает, что в js в отличии от функциональных языков вычисления не ленивые. И если с использованием if'ов что-то просто не будет вычисляться, то с его ФУНКЦИОНАЛЬНЫМ походом, вычисляться будет абсолютно все условия.
>>920089 Ты жопой читаешь? Как раз if ветки не вычисляются (ровно как и условия в ветках) после того, как условие подошло. В то время как если переносить логику условий на функции - все будет вычисляться еще на этапе передачи в функцию.
Это снова я)) Это... сказали почитать про какие-та патерны? Эт чё такое? Типо буду кодить на ангуляре сайты. Чё почитать можно чтобы ангуляр побыстряку выучить? Надо 3 месяца продержаться пацаны. 300к нужны пиздос))
Что делать, если хочется переменную сделать const, но в то же время она должна быть в try/catch блоке, но при этом всю остальную часть кода функции в try заворачивать, разумеется, не хочется?
>>920160 В том, что у констант блочная область видимости? Уже даже в блоке catch нельзя будет обратиться к константе заданной в try. А за пределами блока тем более.
Так, а если отработал так, как нужен? Ты задал константу в трай. Исключение не выбросилось. Но использовать константу после блока ты не можешь.
И да, так не с любой переменной. Есть неблочные переменные. Не говоря уже о том, что само понятие переменных - перменнное. Ты можешь объявить их заранее, назначить внутри другого блока, а потом использовать там где объявил. А константу назначить можно лишь раз при объявлении.
>>920064 >Ебанутый, console.log ВСЕГДА возвращает undefined. Я стекломоя объебенился, ПРОСТИТЕ-ИЗВИНИТЕ. Ну ты понел, можно было бы просто возвращать строку и потом логать результат вызова функции, суть была не в этом.
>>920068 >Он еще и не понимает, что в js в отличии от функциональных языков вычисления не ленивые. Ленивости достичь не проблема - нужно дробить на компактные функции проверки условий и чейнить их. Смотри дальше:
>>920094 >function and(x, y, z, cb) У тебя инвалидный пример. Правильный примером было бы привести последовательность функций в цепи, которая бы прекращала свое выполнение при несоблюдении условий, как в случае ветвления if'ов. Правильный пример: beginChainedSeq(and, a, b).then(and, c, d).finally(cb).catch(cb) Вот донельзя упрощенная реализация: https://codepen.io/anon/pen/wgrNOV?editors=0010
В любом случае, с единой проверкой условий должно жеж жить лучше, нежели в каждой функции ифать. Прозрачно и централизованно.
>>920179 >>920068 Да в довесок много функциональных либ поддерживают ленивые вычисления. В том же лоудаше - через .value() происходит вычисление значения.
>>920179 >Правильный пример: beginChainedSeq(and, a, b).then(and, c, d).finally(cb).catch(cb) Ору. Аргументы у тебя все равно будут вычисленны. Ты просто не понимаешь.
Замени в этой своей цепочки аргумент c на console.log('test') при условии, что в (and, a, b) должен вернуться false и c не должен вычисляться? На функция ты такого не добьешься.
>>920329 Они у тебя там не вычисляются, потому что завернуты в функцию еще раз.
Разница между >beginChainedSeq(and, a, b).then(and, c, d).finally(cb).catch(cb) И >beginChainedSeq(and, a, b).then(() => fn(and, c, d)) существенная. Как по синтаксису, так и по оверхеду.
>>920341 >Как по синтаксису, так и по оверхеду. Щито поделать, спору нет. Единственный способ "заленивить" вычисление аргументов, передаваемых в функцию - это обратить оную в колбэк.
Аноны помогите Вопрос по HTML и javascript Мы только начали проходить это в шараге Нужно сделать словарь чтобы пользователь его мог заполнять и все такое Я все сделал, записывая слова в массив и выводя их, но если обновить страницу то все введенное удалиться, как в HTML на сайтах сохраняются данные, и можно ли это реализовать сделав только страницу в блокноте например?
>>916832 (OP) верстаю на бутстрапе все рядами и колонками. Проблема в том что если в одном ряду есть пара элементов которые я хочу видеть в ряд, то оно их пихет столбиком вертикально. А там где такой же row и я хочу чтоб элементы ложились вертикально столбиком, то оно, ссука, мне их словно специально пихает в одну строчку. Пытался добавлять классы inline и form-inline но не помогает. Как это побороть?
>>920392 Для этого есть localstorage. ты перегоняешь объект или переменную в стринг. Сохраняешь в хранилище. Потом достаешь из хранилища, и из стринга перегоняешь в нужный объект/переменную. Например
var a =1;
var sudaSohranim = JSON.stringify(a); localStorage.setItem("kluch", sudaSohranim);
так мы по ключу kluch сохранили то что в стринге sudaSohranim.
при загрузке страницы у тебя должен быть метод чтоб вытягивать по ключу и потом вытаженное перегнать из стригна в переменную
var vitaskivaem = localStorage.getItem("kluch"); var novoe-a = JSON.parse(vitaskivaem ); Но перед вытаскиеванием надо сделать проверку по ключу уже что-то сохранено или нет. Если не понял, гугли видеоуроки по localStorage
Господа. Вопрос по ноде. Как мне в указании пути в define или import указать путь к файлу, лежащему в папке на уровень выше? То есть, допустим, есть папка src, в ней три папки - component1, component2, component3. Как мне в файле в папке component1 включить файл, находящийся в папке component3 или вообще в корне?
Нужна программка. Сначала думал может на С# но потом решил что она должна запускаться у любой тети паши без требования .net. Ну и с html мордой, которую я смогу поправить если что.
Суть - нужен просмотрщик логов, который будет не просто выводить сообщения, а делать это имтитируя мессенджер. логи храняться в виде txt файла такого содержания:
09.02.2013 17:01:19 Vasiliy99 го дота 09.02.2013 17:02:23 Grigory го 09.02.2013 17:04:15 Vasiliy99 я создал 09.02.2013 17:05:13 Afanasiy пидорасы, если не будете работать, поувольняю к хуям
Работет так: Открывается страница, перетягивается файлик за допустим 2016. Потом можно выбрать любой день за который хочешь посмотреть логи. После выбора появляется в "чате" первое сообщение. Чтоб вывело второе надо нажать кнопку Send или тыцнуть enter если курсор стоит в текстовом поле снизу. При чем не важно какой текст вы пишете снизу, он не будет попадать в чат. Ты просто пищешь что угодно, жмешь кнопку и из лога подтягивается следующее сообщение. В двух словах такое, с некоторыми нюансами типа кнопки выбора рандомного дня и мелочей по покраске сообщений.
Такая балалайка не будет хоститься на сайте и ей не нужен интернет. Она будет запускаться локально на компе и просто показывать логи из файла, который ей скормили
>>920884 Да ты охуел я лучше сам такое сделаю. Я просто не хотел ебаться с прикручиванием дат и парсингом по дням так чтоб побыстрее было и не тормозило. 500 баксов ему за день-два работы.
>>920945 Дура, это нормальная оплата для любой белой страны. Даже фрилансером я за копейки не берусь заказы делать, хотя таких хитровыебанных как ты дохуя (видимо тоже совки как ты). Так что ищи индусов или школьников, пусть они тебе хуйни налепят, которая в итоге работать не будет.
>>920962 >Даже фрилансером я за копейки не берусь заказы делать Даже если ты можешь это сделать за 2 минуты то ты все равно заламываешь цену? >хитровыебанных Еще раз говорю, я могу сам за это сесть но потрачу наверное неделю, ебясь с этим после работы, а то и дольше. А потом еще месяц баги буду ловить. Если кто-то умеет конкретно с джаваскриптом работать вот так с текстовыми файлами и у него есть опыт, то мне проще заплатить. Но не 500 баксов. Странно что ты не попросил 5000, а то блядь хитровыебаные хуеют - хотят чтоб ты пару кнопок и пару дивов разверстал меньше чем за сумму айфона. Вот же пидорасы.
>>920970 То что ты хочешь пишется за ночь. Все это можно упаковать в одну единственную html страницу, которой не нужен ни сервер ни чего, все будет работать в браузере.
Сколько это стоит - идиотский вопрос. Нет никакого стабильного рынка на разовые задачи. Ты можешь найти школьника, который работает за еду и сделает тебе это за пачку доширака. А нормальный разработчик не будет разумеется тратить своё время за копейки, даже если задача не сложнее чем в носу поковырять.
>>920974 Обычно люди высчитывают стоимость работы на основе своей зарплаты. Если в день он получает 800 рублей, за 8 часовой рабочий день, то час его времени стоит примерно 100р. теперь считаем: 500 за ночь * 31 день. То есть месяц работы такого человека стоит 1007500 рублей. Я рад что у нас не индия и не китай и любая макака получает миллион в месяц, но предлагаю таким гуру искать заказы за пределами двача.
>>920982 Это хуевая математика. Если человек на окладе, это не значит, что у него нет премий или процентов и прочих плюх. Оклад никак нельзя переводить в почасовую оплату труда.
Почасовая оплата труда есть в сфере фриланса, и иди посмотри на ценники, если тебе хочется почасового работника. (хоть на том же апворке, на здоровье).
>Обычно люди высчитывают стоимость работы на основе своей зарплаты.
Есть такое понятие как проектная работа. Не все сидят на зарплате. Мы в 21ом веке.
>>920987 Это ни капли не приблизительный способов. Он даже близко не стоит. Нельзя никак переводить оклад, в в проектную работу. Это совершенно разные вещи.
>>920993 Метод чего именно? Стоимости разовой подработки в сфере без стабильного рынка? Нужно как минимум оценивать не часы, а рабочий день. Если работа занимает даже меньше, брать как за день.
Если приводить в пример - ебать, а за залачу в две минуты ты тоже будешь рать как за сутки - за задачу в две минуты можно не браться вообще, или если браться, то не брать никакой оплаты, ибо это смешно.
Ибо почасовая ставка это ни сравни с окладной, поделенной на часы рабочего дня. Просто потому что, сидя на окладе, у тебя есть, допустим, дедлайн, через неделю. Ты получишь за 5 рабочих дней, в любом случае. Потому что у тебя оклад.
Если ты работаешь с почасовой оплатой, то ты получишь за оттреканные рабочие часы. На окладе ты можешь в носу ковырять половину срока до дедлайна, и это все равно будет оплачено. На почасовой оплачивается фактически затраченное время непосредственно на работу.
Что касается ТСа, в его случае надо просто приходить с конкретным бюджетом - мол вот, ебать, надо сделать это, денег есть столько, кто готов, какие сроки. И выбирать. Это фриланс. Тут все просто.
Аноны, тут дядя троллит, строит из себя охуеть математика и погромиста, хотя сам не в состоянии запилить себе приложение. Давайте его дружно пошлем нахуй и не будем обращать внимание на него. За 500 рублей наверняка найдутся опытные разработчики из 5б, которые с радостью возьмутся за эту 10минутную работу.
>>920998 Маня, зачем ты кукарекаешь о проектных работах, ничего про них не зная? Во всех проектных оплата сотрудникам считается, исходя из их фактического оклада и почасового участия в проекте. Свою философию и фантазии, где 2 часа работы считаются фулл днём можешь засунуть себе в анус. Мимо-надзорщик-на-галере
>>921052 >строит из себя охуеть математика и погромиста, хотя сам не в состоянии запилить себе приложение. Я работаю на шарпе и уже объяснил почему он не подходит.
>>921069 Можно сделать за день за 1500? То есть, получая подобные заказы каждый рабочий день, в месяц можно заработать максимум 33к (взял типичные 22 дня, фрилансеры ж тоже отдыхают иногда). Вот и думай тепеь, какого уровня разработчика ты можешь себе позволить за такие деньги. Достаточен он для твоего задания? Отлично. Нет? Ну, сам понимаешь, что делать надо.
пацаны суп, я не очень разбираюсь в веб разработке так что надеюсь на ваши подсказки: бэк - нода фронт админки - реакт есть пара input[type=file] куда должны закидываться картинки у меня встал вопрос как их отправить после сабмита на бэкенд:
подскажите как такое вообще реализовывается, если без реакта сделать form[method=post][action=blabla] то туда присылаются только названия закинутых в input картинок, следовательно я не могу сохранить их на сервере
Аноны, есть блок html'a в нем в ряд несколько блоков, любой из них скриптом изменяет свою ширину, другие подстраиваются. Как сверстать их на флексах? Хуйня какая-то получается.
>>921373 проблема еще в том, что в изменяемом блоке изображение, и вот хз какой параметр у него менять, что бы регулировать размер изображения. За ссылку спасибо, но там поведение в зависимости от количества текста, а я хочу контролер для изменения размера изображения в ряду.
Поясните за наследование в JS. Хочу расширить метод родителя, но таким образом чтобы оригинальный метод все еще можно было использовать. Чтобы получилось что-то подобное: http://pastebin.com/yg0SA5z4
Парни, где можно посмотреть код реальных проектов или модулей. Без JQ (лайтбоксы, модалки, драгэндропы, голосовалки и т.д). Просто хочется подчерпнуть опыта на реальных проектах.
С ЖС работаю недавно, подскажите, что за фигня с импортом default export is not declared in imported module Выскакивает такая ошибка, импорт вообще не работает.
>>922836 Просто мне как начинающему тяжело увидеть структуру проекта. Мне вот например интересно как делается интерфейс в интернет магазинах, количество, добавление в корзину, лайки, хуяйки. Знания есть но разрозненные, мне было бы проще посмотреть на несколько комментированых работ и понять что к чему, чем додумывать самому, и наделать велосипедов, или как-то не оптимально сделать это. А что-то нихуя не нашел типа уроков. Вот мож вы что подскажите.
Куча фреймворков, которые как я понял выполняют одну и ту же задачу. Дык с чего начать? Ангуляр, эмбер, бэкбон, екстжс, реакт и т.д. Можно в двух словах о всём этом? Как сделать выбор?
сука блять, на пхп просто скачал две хуйни и ПИШЕШЬ, тут же вебпаки-хуйпаки, бабели-хуйбабели, прочее говно ебаное, пока начнешь писать - ахуеешь блять от той кучи ГОВНА, которую нужно настроить, блять, просто дял того, чтобы ебаный ХЕЛЛОУВОРЛД НАПИСАТЬ И ИИМПОРТИРОВАТЬ, ебись конем эта хуйня.
>>923033 Юзай фреймворк VanillaJS Extended Solution Edition (ES) v5. Собирать ничего не нужно, пишется на коленке, исполняется даже на микроволновке. Спецом для таких безруких мудаков как ты придумали.
Первый раз в жизни я столкнулся с невозможностью писать код из-за того, что хуйня не может импортировать файлы без костылей, а костыли не работают. Это просто пиздец
Мочехлебы сап. Нахуй этот ваш ангуляр такое нкстабильное говно? Мажорный релиз каждый месяц. Есть что то постабильнен? Чтоб выучил и хуяк на нем пару лет не парась о новых модных хипсторских мочеперделок которые сломали обратную совместимость и обмазываются альфаговном?
>>923318 Как и везде, где активно меняется экосистема. В .NET-загоне та же хрень случилась недавно, пока шла разработка релиза .NET Core. Кирпичей много было высрано хипстерами из опен-спейсов, которые запускали в продакшене прилаги на RC-версиях платформы. Только где-то такая вещь случается и проходит, а где-то перманентный пиздец, от которого руки опускаются уже.
>>923515 Не, это должно быть в отдельном модуле/хелпере и импортироваться по нужде Если в этом App только Input и List, то это вполне может быть и в нем. Но это скорее исключение из-за малой вложенности
>>923711 Создатель онгуляра в треде все под шконку. О великий обоссы меня. На самом деле пшел нахуй чушок. Только уебки делают так. Вон ява по 7 лет не обновляется
Анончик, подскажи скрипт, плес. У меня на странице выводятся элементы при помощи append() и их штук 40-50. Чтобы не выводить все сразу, хочу сделать инфинит скролл, чтобы показывались первые 9 элементов, а при прокрутке отображались следующие и так далее. Ну или по кнопке "Показать больше".
Есть ли смысл брать про на месяц-другой у кодакадеми? Я все бесплатные уроки прошел, вроде все понятно относительно, а там еще и примеры, проекты и все такое, выглядит круто, но как оно на самом деле?
>>923943 1. запрашивать следующие аяксом 2. поставить максимальный height, overflow и в момент загрузки убирать, прятать в память лишние элементы и показывать при скролле
>>923972 Очень глупая логика. ЖС компилятору, который стоит в современных браузерах, уже 8 лет, над ним работает не одна корпорация и не одна сотня человек. Намного логичнее сейчас делать компиляторы в другие языки, чем в байт-код
Не могу понять, как, соблюдая условие изолированности функций (ничего не брать и ничего не отдавать во внешний скоуп) и, желательно, с сохранением иммутабельности, управлять событиями, происходящими с определенной периодичностью (таймауты, интервалы)?
Пример: есть чейн из промисов, внутри них выполняется определенная логика, например, генерируется событие с интервалом в 1 секунду. В произвольный момент времени необходимо остановить выполнение периодических задач.
Вот, из говна и палок мапа и класса прикинул реализацию, где за сохранение/удаление событий, генерируемых по времени, отвечают методы класса: https://codepen.io/anon/pen/VPQJjz?editors=1010
Формально условие соблюдено - ни одна из функций не обращается ко внешним переменным. Но это хуйня, потому как мап, находящийся внутри инстанса класса, мутабелен. Такую задачу вообще можно было бы реализовать с условием сохранения иммутабельности?
Мне кажется этот >>924421 - ракует. >Чейн промисов иммутабельности инстанса Нет, ты не умный, а все такое же быдло, нахватавшееся терминов и не знающее значения.
>>924434 >Нет, ты не умный, а все такое же быдло, нахватавшееся терминов и не знающее значения.
Ок, наверное и правда я переборщил с терминологией не к месту. Вот чего я хочу добиться: чтобы была функция-обертка над setInterval/setTimeout и работала следующим образом:
>>924462 Имел в виду, конечно же, не относящиеся к DOMу и BOMу объекты. Методы из объекта document для примера, на функциональную составляющую вопроса никак не влияют. А вот из window, все-таки да, интервалы и таймауты нужны.
В общем, хотелось создать реюзабельный таймер с использованием неизменяемых данных. У меня получилась говенная конструкция.
>>924470 >>924468 Ты изменяешь исходный объект timer, до такого кода и я додумал. Анон, был вопрос, можно ли такой реюзабельный таймер создать БЕЗ изменяемых структур данных, и если можно, то как?
Просто вся эта истерия вокруг иммутабельныханон >>924434 обоссал за этот термин, поэтому просто "неизменяемых" структур данных вызвала во мне интерес - как использовать эту неизменямость вкупе с такими распространенными функциями, как таймерами. Или об этом можно даже не заморачиваться и такой код, как кинул анон выше (и мои примеры) - вполне легальны в контексте иммут... ну вы понели уже.
>>924154 Ну V8 компилит js сразу в нативный машинный код. Там у них довольно интересно движок устроен. Это в спайдермонки интерпретатор с jit в байткод пока что.
Все мы тут делаем интерфейсы той или иной степени сложности. Как научиться верстать охуенно качественно и чисто? Хочу меньше тратить времени на хтмлцсс багрепорты. Может курс пройти какой по адаптивной семантической верстке?
Сеньоры, подскажите как сделать нормальный фильтр. Вот что-то на ночь глядя высрал. https://codepen.io/Dzamba/pen/pRLOMW Что-то не соображу с выводом, как правильно его сделать.
>>924645 Использвуй webstorm или редакторы с поддержкой emmet. Использую less всегда. Прочитай документацию и книжку по верстке. Чистая верстка, которая может удовлетворить верстальщика-перфексиониста, неоправданная ебля. Клоунада с браузерами и сео тебе не даст покоя. Сверстал - прогнал через W3. С практикой будет все понятно.
>>916832 (OP) Язык для пидерасов, долбоябов и шкальников, бббггеее. Самый пидорскамоский езык тысячелетия, хехе. Для отребья язык, так скать, бббггеее.
Ананасы, кто может в нативный жс или жиКуэри, скажите - можно ли ими не очень сложно сделать двухсторонний биндинг? Как пример - хочу сделать аналог ng-repeat ангуляровского. 2 поля input text и кнопка. Заполняешь, жмёшь на кнопку - в переменную-массив ITEMS добавляется объект с 2мя св-вами. И тут же эта инфа появляется дивом ниже. Ещё 5 раз заполняем - ещё 5 дивов и 5 .push'ей. Но! Рядом с каждым объектом есть кнопка Х. Жмёшь - удаляется и объект из массива и его див с инфой. Как генерить - понял, а как связать с js-объектом, да ещё и с корректным удалением - магия.
Аноны в общем, работаю на node js уже более полугода и чувствую надо повышать квалификацию. Что посоветуешь? Книги может какие нибудь? Базовые вещи известны, нужно что-то продвинутое, вот думаю GOF почитать например. пикрандом
>>924796 Если ты не сеошник, то нехуй тратить свое время на еблю с поисковой оптимизацией. Надо знать как использовать title h1 h2 h3 и прочую базовую шнягу, но не больше.
Анон, есть вопрос. Суть в чем: представь себе, что каждый юзер может создавать свой маленький блок хтмла и может стили для него определять. Создавая такой юзер модуль. А потом представь, что надо эти модули сложить в кучу. Как сделать уникальную идентификацию этих модулей, что бы они, (точнее их стили) не конфликтовали друг с другом.
Господа, такая задачка у меня: Надо подождать, пока функция не завершит свою работу и затем проделать какое-то действие. Отлично - возвращаем промис. НО: в самой этой функции вызывается другая функция, которая также возвращает промис. Как все это дело правильно и грамотно оформить?
Привет, хотел сделать свой блог на ноде и реакте, просто чтобы выучить что-то новое. Решил сразу на хостинге все поднять, но споткнулся о нжинкс или как там вообще сделать чтобы при заходе на сайт все работало. Есть ли годные гайды по этой теме?
И особенно интересно как работает нода. Пытался читать про это, но не понял. В чем плюсы этой ее однопоточности? И где о ноду можно споткнуться, для чего она явно не подходит?
Проблема не в том что впски нет, а в том что я не могу понять как поднять сайт с бэком на ноде. И ещё я не понимаю про event loop, где могут проблемы возникнуть, в чём отличие одностраничного блога на пхп от node+express+react
>>925455 Даже если имеется в виду что уровень статей на совсем уж даунов расчитан - я не понял. Вернее, вроде как понял, но хотелось бы конкретный пример услышать.
>>925755 Нода хорошо справляется с высокой и легкой нагрузкой с низким латенси: чаты, риалтайм игры, апи. Пыха хорошо справляется с низкой и тяжелой нагрузкой и высоким латенси: низкопосещаемые контентные сайты, сайты с большим количеством расчетов. В общем, тупо пилить на ноде лендинг с простой црмкой и тупо пилить на пыхе чат на вебсокетах
Часто задаваемые вопросы:
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/ для серверного кода.