Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
На офф сайте обучалка по ангуляру 2 доступна пока что только для тайпскрипта, значит ли это что он теперь оффициально(тм) рекомендуем гуглом и стоит вкатываться в него дабы быть правильно пацаном?
>>720201 (OP) Дублирую вопрос. Хотел запустить MongoDB. Выдал две ошибки не было hotfix и не видел хост. Hostfix установил, а вот что с хостом делать? Что я делаю не так?
>>720348 Хз, я лично рассматриваю это так: setTimeout(...) - сам по себе ставит таймаут и вполне себе норм работает а присваивание вида var timerId = setTimeout(...) необходимо если мы захотим его очистить и тогда нам надо знать его айдишник.
>>720439 Ты совсем мудак. Все существующие полифилы, полифилят с ограничениями, и не способны прокрисровать большинство ништяков. А в тех, случая которые они полифилят, они и не нужны.
>>720522 Взлольнул И что же у тебя в ангуляре выполняет функции редакса? Ты вообще в курсе, что редакс это универсальная вещь, не привязанная вообще ни к чему? Я, например, на сервере использую его даже. Суперштука для вебсокетов.
Книги в FAQ расставлены по возрастанию хода обучения? Т.е в самом начале первую (совсем для новичков) потом вторую и так далее (первый раздел). Или там совсем всё рандомно?
>>720787 Ты что, даун? Что ты сравниваешь? Перлу тыщи более годных альтернатив, ангулару - какие-то поделки от васянов, которые могут завтра сдохнуть и какой-то недоконструктор, который даже не релизнулся. За 7 лет существования ангулара так и не было ничего, что могло бы его заменить, поэтому он такой популярный
>>720794 У него единственное применение - клепание охуительных формочек. Это да, тут ему конкурентов нет. В остальных случаях он начинает сосать даже при выводе среднего размера списков чего-нибудь. И там уже начинается охота на ведьм и костылинг.
>>720795 Когда он создавался, надобности в таком и не было особо. Это ж 2009 год, тогда все просто от аджакса охуевали Сейчас такие задачи появились, много где большие объемы данных, вот и запилили вторую версию с shadow-dom и куртизанками, чтоб всё быстро и компонентно. И он опять будет очень популярным
>>720794 Я тоже так думал, но когда увидел вторую версию, понял что гугел всерьёз собрался сделать из js'а вторую жабу и это очень плохо. Js вэй - это простота, минимализм, гибкость, скорость разработки, а не идусня с абстрактпроксисинглетонами. Жаба-вэй уже один раз обосралася в вэбе на бэке, проиграв рельсам, обосрётся и сейчас на фронтенде. Прогрессивные пацаны выбирают реакт + кложурскрипт, индусы-синие воротнички - ангуляр, всё остальное быдло пишет на всяком говне.
>>720831 Вполне. Они долбоёбы тогда решили что веб - это всего лишь ещё один уровень абстракции, ещё один слой поверх того невменяемого тырпрайз говна с которым они привыкли работать. В результате получилось неудобное нечто, 100500 слоёв абстракции чтоб вывести хеллоу ворд, при этом никаких удобств конкретно для самого веба-разраба не было.
Рор пошел другим путём, и сделал только нужное для вэб задач, а именно роутинг, актив рекорд, скаффолдинг, нормальное mvc, систему миграций, фронтконтроллеры, простую интернационализацию, простую декларативную валидацию. авторизацию и прочее и прочее.
В результате сейчас 90% вэб прилаг написаны на рельсоподобных фреймворках, а джавадебилы дальше сосут письку в банках или пилят такие же рельсоподобные фреймворки типа Play.
>>720835 Мне достаточно того что я увидел в примерах на оф сайте. Да и переход на тайпскипт - идиотизм. Куча каких-то блять конфиг файлов, миллион классов, короче если ява это интерпретатор иксемеля в стектрейсы, то ангуляр2 это интерпритатор джсона в ошибки браузера.
>>720845 >Да и переход на тайпскипт - идиотизм. Куча каких-то блять конфиг файлов, миллион классов Не идиотизм. Но на счет конфигов и классов согласен, чет слишком дохуя всего.
>>720201 (OP) Ищу новичка для совместного обучения скрипту и прочим технологиям. Вместе легче учить, как по мне, одному как-то тухло и не с кем делиться, что ли Сам прошел пару курсов по html\css, sql, js на khan, codeacademy и dash.
>>720843 Мне лень рассматривать по пунктам. Но бакенд на явке пилится парой кликов в любом иде. То что на других языках вызывает лютый разрыв пуканов мочакодеров в ЕЕ или спринге просто до умопомрачения. Настроил jpa, сгенерил энтити, запилил дао для работы с базой, нагенерил бинов, сгенерил rest для бинов, описал секурити модель. Все бакенд готов нах. А поверх него хоть jsf пили, хоть на моче спа поверх реста.
>>720885 alexey1kne скайп Можно через что-нибудь еще
google code prettifyАноним19/04/16 Втр 13:23:25#92№720894
Аноны, работал кто с этой хуитой? https://github.com/google/code-prettify Использую для подсветки синтаксиса в шарпе, но эта мразь выделяет текст в таких ковычках <> зелёным, а должны keywords подсвечиваться синим как и в вижле. Видимо распознаёт как include в с++. Может кто знает как пофиксить?
> в большей части проектов ВСЕ РАВНО приходится писать свой мини-фреймворк Что за бред? Такое могут позволить себе только корпорации Да и всегда дешевле использовать технологию с большим коммьюнити, которое напилило огромную кучу модулей
>>720953 Я хейчу васянов из-за их привычки умирать, а вместе с ними умирают и их проекты. Смерть васяна, который сделал фреймворк, гораздо фатальнее, чем смерть васяна, который сделал модуль
>>720992 >Ангулар 1 - это отлаженный инструмент разработки, а Ангулар 2 - игрушка для хипстеров. Раньше чем через полгода трогать его не стоит. Кто это говорил? А, наверно не ты..
>>720994 Не я. Второй ангуляр вполне "продакшн-реди", просто не обкатан достаточно. Бетой они просто снимают ответственность с себя, чтоб не хуесосили вдруг чего
Помогите ньюфагу. Есть одно главное меню с dropdown. По просьбе заказчика на десктопе оно работает по ховеру. На мобильных устройствах нет ховера. Как реализовать подобную хуйню?
коданы, есть необходимость написать простой аи для игрушки имеет смысл брать для этого другой язык и компилить его в джс или писать на ванили как и всё прочее?
>>720951 >Что за бред? Такое могут позволить себе только корпорации >Да и всегда дешевле использовать технологию с большим коммьюнити, которое напилило огромную кучу модулей Студент не палится. Дешевле использовать только когда мелкий проект. Если проект большой, то дешевле значительную часть сделать самому, а из чужого кода брать только то что поддерживается крупными фирмами или давно написано окончательно. Всякие мелкие дрочеры опенсорсники и их говно идут нахуй, потому что на хайлоад не расчитаны, куча багов, поддержка нерегулярная, часто проекты бросаются, ломаются и вообще это пиздец.
>>721024 Число приводит к двоичному основанию, потом к строке, потом разбивает на массив, затем берет от строки 1, 2, 3, n символов и превращает обратно в десятичное число.
>>721401 Почему только бекенд? Настройка мне тестирование реакт компонентов на тайпскрипте без рекомпиляции в ес5, посмотрим какого размера у тебя анус будет потом.
>>721381 Часто самоудовлетворяюсь, представляя себя на месте девушки, которую ебут. Иногда дрочу на трапов. Люблю представлять себя нежной девочкой в юбочке в руках у сильного мужчины. пишу фронт и бэк на js
>>721433 Если сделаешь мне такой конфиг вебпака, то вышлю тебе 50 баксов (без шуток). Нужна мока (или джест), чай(тут можно что-то другое), реакт 15 на тайпе ^1.8.x, без рекомпиляции в ес
Теперь представьте ваши поделки с кучей классов, массивов и прочих ниш. Отрываем на телефоне, всё ломается, хрустит и с болью наперевес подгружается. Твои оправдания, почему используют классы там, где должны использоваться 2 переменные? Почему функции выходят из функций? Зачем использовать jQuery везде, где нужно сделать простой эффект? Зачем подключать огромные куски рекламных скриптов последовательно?
>>721288 это ты молодец конечно, но смысл-то задачи ты уловил? Проблема как раз в том, что такой подход к решению мне бы, например, никогда в бошку не пришел. И >>721260 пусть это непонятное говно с виду, но как способ реализации крут. Это же просто задача без смысла, поэтому тут на читаемость кода похуй
Сама задача: For every positive integer N, there exists a unique sequence starting with 1 and ending with N and such that every number in the sequence is either the double of the preceeding number or the double plus 1.
Вопрос от ньюфага по поводу обработчиков событий на клиенте. Какая самая лучшая практика по навешиванию множественных обработчиков на однотипные элементы. Например, есть у нас некая борда, со списком тредов. В каждом треде есть поле для ввода поста/кнопка/whatever, на него нужно повесить обработчик, который что-то там делает. Прослушиваемых элементов, как и тредов, может быть очень много.
Какой вариант в таком случае предпочтительнее?? Собирать все нужные поля со страницы в массив, проходится по нему циклом и вешать на каждое событие. Использовать делегирование на документе? Писать мелкокласс под элемент и затем инициализировать столько его копий сколько потребуется? Может какие-то другие практики?
Добрый день, хакеры, подскажите/помогите пожалуйста. Как сделать чтобы только нужный блок на странице, то есть ссылку только на него вытащить из страницы. Сайт: http://arielrebel.com/ Блок: "Recent Updates", пикрелейтед.
Я не понимаю, откуда такой разброс в квалификации? Вопросы здесь тотально нубские, а если вдруг скажешь что не так, то из рид-онли вылазят эксперты с уязвленной самооценкой, пытающиеся самоутвердиться на аноне за счет знаний обоснованным ответом, почему так, а не иначе. Нахуя тогда этот тред, если не для обмена опытом? Сиди дрочи на то, как ты охуенно много знаешь, хуле, если не делишься опытом, нахуй ты тут нужен?
>>721845 Блядь это так не работает. Нет ссылки на этот блок, можешь его сам собрать спиздив стили, но последние новости туда грузится один хуй никак не будут. То что ты хочешь есть подгрузка api через iframe. Там такого точно нет. Может и можно как-нибудь парсить эту хуйню доставать оттуда новое и отправлять в свою форму, но это пиздец бессмысленно
>>721848 Можно написать расширения для хрома, которое будет по обновлению контента через таймаут проверять, обновилось ли, а если да, то аппендить в body.
>>721847 Да нет ты не так понял похоже меня, это же я и вопрос задал, что мол мне результат какой угодно сгодится.
>>721848 Понял, досадно, спасибо за информацию. Просто думал это как блок как на какой-нибудь борде, на Ычане чтоли меню слева отжельным блоком или на какой-то другой видел.
Ребят вот вы мне как рубисту обьясните нахуй вам ангуляр? какие профит в мвц архитектуре на клиенте?ебанулись чтоли? наххуй все это когда есть рекат редукс. А и ещё поясните почему у жс такой отсталй?я конечно много чего могу спустить но ведь реал жс какой то умственно отсталый язык:если брать спеки до es6 то там вообше какой то лютый непробудный адовый пиздец по выразительности нет классов и вообше нихуйя нет.если ес6 то надо трахаться с бабелом и тд.Вообшем как так получилось что жс в такой жопе и у него к сожеление нет альтернатив в вебе P.S. И да я не троль. Реал интересно P.P.S Без обид ребятки нехочу никого оскорбить
>>721892 «что-то непонял .кгода ты обьявляешь тот класс где ещё у тебя забыл какой-то метод. если в нём не два парамнтра то он ведь переопредеделен . но ведь ты потом длженего найти но другой где два параметра .и если они одинаковые нельзя ведь сразу отлтчить которфй .но ты пишешь что вызывается метод а жто неверно!!! отвечай пожалуйста подробно или ты самый умный?
Хочу изучать программирование для себя. В школе изучал стандартную фигню, что-то еще помню. Решил взяться за Angular2. Поставил VisualStudio2015. Подскажите, что дальше? Какой-нибудь ресурс, курсы, уроки, книги для нубов. И, главное, как быстро и без консолеебства настроить себе нормальную среду Angular2+TS?
>>722005 Просто у меня нет задач каких-то. Ну какую-то вебстраничку склепал, куки там, слайдеры, форма, генерация канваса. Почему бы теперь не попробовать фреймворк? Сидеть и зубрить, скажем, иерархию DOM для себя смысла не вижу (всегда ж мануалы в гугле доступны если что) - мне интересна не работа а удовольствие от этого всего.
>>722005 да он сам не знает чего хочет, то ли учить язык, то ли это нихуя не интересно и надо чет поинтереснее, кароче jQuery пусть ест, быстрее всего интересное увидит.
>>721740 Почитай "идеальный код" и пиши по советам с самого начала, ты же не в олимпиадное программирование собрался вкатываться. Потом тяжело отвыкать будет, а даже если ты с подобным стилем кода пройдёшь собеседование, то потом будешь только боль и страдания тиме причинять.
>>721740 >Проблема как раз в том, что такой подход к решению мне бы, например, никогда в бошку не пришел
Всё превосходство и мощь человеческой цивилизации построено на возможности оптимально хранить и передавать знания. Ты и не должен мочь во все решения сам, но ты должен уметь сохранить эти знания, переработать, сделать выводы и использовать в дальнейшем.
Поясните мне - можем ли мы хоть как то для некоего св-ва объекта через Object.defineProperty для set и get выполнять какие-либо действия и после этого сеттить или геттить в/из этого св-ва? Т.е. я вкурсе, что если в defineProperty в геттере или сеттере загеттить или засеттить это же св-во - будет maximum callstack. Есть ли какие нибудь костыльные/велосипедные решения?
>>722171 Зачем тебе это? Обычно сеттер и геттер меняет какое-то иное свойство. Если тебе принципиально, можешь хранить это свойство не в самом объекте, а например в замыкании, или в свойстве функции-геттера или сеттера.
>>722179 У была идея запилить TypeScript'овский декоратор св-ва класса, который кадый раз, когда к св-ву обращались (get) отдавал бы это св-во, но при этом делал бы еще кое что. То же самое и при задании значения этому св-ву - что бы значение устанавливалось, но при этом тоже выполнить какое-либо действие.
В итоге я так и не нашел способа обойти maximum callstack.
>>722186 Ты пример то бы привел, что ты хочешь сделать. Само свойтсво дергать в его же сеттере/геттере это будет то что у тебя получилось - ничего хорошего. Ты либо делашь private field, а в get/set твою кастомную логику, либо декоратор в котором велосипедишь какое нибудь замыкание, если эта логика слабо относится к самому свойству логгирование например
>>722189 Ну, например декоратор св-ва, который при каждом сетте св-ва писал бы значение, помимо самого св-ва, также еще и в куки. А при гетте, если есть значение в куках - брал бы из кук, если нет - отдавал бы значение самого св-ва.
>>721116 Про эпам не знаю, сейчас на курсах в конторе этажом выше харьковского эпама. Задания были такие: на выбор визуализация пузырьковой сортировки/лабиринт (генерация и поиск пути), потом другой препод дал попроще задание (опять же на выбор калькулятор/сапер), потом на выбор одно из того, что не сделали за первые две недели, дальше пасьянс косынка, файловый менеджер (просмотр директорий, возможность оставлять комментарии, которые сохраняются в монге), чятик на вебсокетах. Остался еще месяц, хз что будет дальше, компания немного утратила интерес к курсам в том плане, что джуны им оказались внезапно не нужны, и хотя тренеры стараются, но все равно оно как-то уже на отъебись. Я-то думал, будет хардкор, конкуренция, отсев лузеров, а тут как-то всем похуй, учимся и учимся.
>>722297 Если ты девайнишь геттер и сеттер каждому инстансу в конструкторе, то у тебя лютый оверхед. У тебя же в каждом инстансе ДУБЛИКАТ геттера и сеттера, хотя достаточно было бы делегировать их прототипу. И не выебываться, эмулируя приватность переменной.
>>721894 Я в прицнипе спокойно пишу на ЖС без особых проблем. >>721958 Я использую реакт. И уж class extends по выразительнее будет React.createClass() а потом в нутриэтого дела ешё и костыли типо fieldName:function(){return{}}
>>722314 Зачем тебе приватные переменные? Они не предусмотрены концепцией языка, зачем вы их тащите.
На случай api есть соглашения разного рода, например начинать именование приватных полей с подчеркивания (__yoba)
Можно использовать символы еще, например. И просто делать поле не перечисляемым.
Все остальные выебоны, с создаванием замыкания на каждую такую залупу - говно без задач. Ты понимаешь, что когда ты делаешь себе приватное поле через замыкание, то в памяти хранится весь скоуп вместе с твоей переменной. И так для каждого твоего объекта, где ты это используешь.
добрый анон, помоги умственно неполноценному гуманитарию. Есть скрипт - https://jsfiddle.net/f13qtttr/ , думаю ты лучше меня понимаешь что он делает, и почему-то скрипт отказывается работать, когда я заменяю дефолтный текст на свой, ругается он строчкой "No need for the HTML tag, it's already in the output.", как заставить работать это? помоги пожалуйста.
>>722330 Ну, в конкретно этом случае нет >>722323 но изначально у него иное он в конструкторе хранит переменную, которую меняет снаружи сеттером и получает геттером. так вот в этом случае, скоуп конструктора будет жить в памяти все время пока жив объект.
>> 722331 но ведь суть этого >>722285 была в том что я собираюсь добавить обработку при изменении допустим я делаю t.unit = 'yoba' , кроме изменения поля там будет ещё логика, это неудачное решение?
>>722334 Наздоровье. Но зачем тебе value твоего t.unita хранить в замыкании? Ты чего боишься? С объектом будет работать кто-то другой и ты переживаешь, что он полезет на прямую в свойство, мимо геттера? Это будет его вина, ведь ты опишешь апи, а если у вас есть соглашения, об именовании приватных полей, то вообще замечательно.
Делай приватное поле неперечисляемым, а геттер перечисляемым. И всё.
Вся эта мания на приватные поля, похожа на защиту от идиотов.
У тебя в комнате в люстре есть лампочка, а на стене есть выключатель. Ты в принципе можешь включать и выключать свет, вкручивая и выкручивая лампочку руками на прямую. Но ты всё же пользуешься выключателем, и чтобы тебе вдруг не пришло в голову им не пользоваться, не навешиваешь на люстру решёток с замком.
Смотрите какая странность. Повторите это в консоли, убедитесь. Берём, например, массив с объектами:
[{one: 1}, {two: 2}]
И через JSON.stringify превращаем его в json строку. Получается такое:
"[{"one": 1}, {"two": 2}]"
Уже видно, что кавычки расставлены неправильно. Если скопировать строку JSON.parse, то будет ошибка. Но если передать готовый json в переменную, а переменную в JSON.parse, то она нормально превратится обратно в объект. В чём секрет?
Поясните, всяким const и let бабель сохраняет область видимости, невозможность присваивания и т.д. из ес6 как-нибудь хитровыебано или тупо на var меняет?
Аноны, подскажите, есть страница генерируется PHP, мне нужно что бы на ней сгенерировалcя массив объектов для javascript, хочу дерево построить. Как это у вас правильно делать?
Скрин. Содержимое некоторых функций убрал (для вопроса не существенно). Короче, есть страничка, на страничке canvas и кнопка. В канвасе происходит некоторая отрисовка, на которую влияют координаты мышки (3D-вращение, мать его ёб). Туда же передаем массив angls, который тоже влияет на отрисовку (из этих углов строится геометрическая фигура, которую вращаем мышкой). Пока всё заебись. После нажатия на кнопку, надо отправить на сервер (Аяксом) некоторый параметр (IRL таких кнопок две, с разными параметрами). На серваке этот параметр обрабатывается, формируется новый массив angls и высылается обратно (echo json_encode($angls);). Вот то, что сервак вернет, мне надо в канвас засунуть. Как это сделать?
Пачаны, я тот анон, который задавал вопрос про убирание прозрачности аналогично результату сложения.
Так вот, я долго думал над этим и нашёл 100% решение.
for ( var i = 0; i < imageData.data.length; i += 4 ) { m = 255 / Math.max ( Math.max ( imageData.data[ i ], imageData.data[ i+1 ] ), imageData.data[ i+2 ] ); imageData.data[ i ] = m; imageData.data[ i+1 ] = m; imageData.data[ i+2 ] *= m; imageData.data[ i+3 ] = 255 / m; }
В общем-то суть такова, есть некая вещественная переменная m, которая хранит коэффициент деления 255 на самый яркий цвет, после чего все каналы умножаются на него, а прозрачность является делением 255 на этот коэффициент, может кому полезно будет.
Полный ньюфаг врывается, попробовал написать простенький слайдер. При нажатии на некст и прев, первый и последний слайдер при втором круге становятся андефайнд, я пониманию почему, но не знаю как написать по-другому.
Допустим, до исполнения этого кода index===5 Он начинает выполняться. После первой строки index===6 На следующей строке, ты пытаешься получить из массива элемент с индексом 6, а его там нет. Получаешь андефайнд. И только потом ты проверяешь, не вышел ли ты за массив.
Поменяй местами две строки. >index++; >if (index >= slides.length) index = 0; >slide.setAttribute('src', slides[index]);
То же самое с pref >if (index < 0) index = slides.length - 1; >slide.setAttribute('src', slides[index]);
>>722466 вообще у меня есть результат sql запроса, там его стандартным циклом PHP разбираю, нужно для внутренних целей. Если из результата сделать JSON, то что с ним делать? Во время генерации PHP прописываю теги <script></script> и внутри них создаю строковую переменную, что-то вроде $tmptree="{ololo:keke}".$somedata. Но есть ли вариан такой, что бы я взял массив PHP и на странице из него сразу сгенерировал javascript объект?
Ананоны, подскажите пожалуйста. Есть у меня на странице элементы, как сейчас модно-молодежно делать биндинг. Т.е. аякс отработал, и хочется что бы не заново искать элементы по id меняя им значения, а вот так сразу создать глобальный объект, связять его поля с тегами и при обновлении объекта менять несколько элементов.
Анон, помохи. Платиновый вопрос, зачем нужны set и get и какая от них польза, кроме того что можно этими командами скрыть свойство от прохождения псевдоциклом по ключам for(key in object)? Почему этот вызвал такой восторг у Ильи Кантора?
>>722201 >>722194 А вот эти задания типо сапера, лабиринта,пасьянса и т.д. это давалось на каждое задание 1 день? И допустим я не знаю как реализовать задачу, типо пасьянса или косынки и мне понадобится время чтобы разобраться, погуглить аналоги,посмотреть чужой код и т.д. это плохо? и значит что я недопрограммист? Или время дается и можно гуглить, смотреть аналоги и потом решить поставленную задачу? Мимо другой анон
>>723015 Неделя на каждое, никто пизды не выдавал за несделанное, но просто на следующей практике давали новое задание. Файлменеджер, впрочем, я только сейчас сделал, и то еще комменты не прикрутил, в процессе пришлось разбираться с нодой, экспрессом, jade, ну и собственно рендером json. Все либы для рендера используют жквери, а нам его нельзя юзать.
"Сейчас" - это через три недели после получения задания. У них крупный проект закрыли и джуны стали не нужны. Мб после что-нибудь предложат, но я и сам буду искать.
>>722843 а как это вообще делать? Вот есть у меня объект lecoq = {age:2, color:red, name:huilo} и есть html где этот петух представлен <div > <div id="age"></div> <div id="color"></div> <div id="name"></div> </div> Далее постоянно идут разные аякс запросы, по завершеню которых объект петушок модифицируется. Как мне сделать, что бы новые параметры петушка автоматически менялись в div? Сейчас у меня есть обработчик, которые при приеме данных(приходит не только json) совершает вычисления и как результат модифицирует объект петушок. Затем при помощи jquery я ищу теги с id:name, age etc и меняю текст внутри них, но чувствую, что так НЕ ПРАВИЛЬНО. Хочу заметить, что данные мне приходят "сырые", я бы даже сказал бинарные и после вычисления их я нахожу параметры петушка.
>>723120 Существует. Но тебе он не нужен, если ты не понимаешь принципа клиент-серверного взаимодействия и сути работы http протокола. А ты не понимаешь, если задаешь такие вопросы.
>>723131 бля, ты меня троллировать пришел? Вот не зли меня сука, если не знаешь, что сказать. Я писал cgi скрипты на си++ и клиент-серверные протоколы под микроконтроллеры, а ты мне хуету тычишь про клиент-сервер.
>>723137 я тебе объясню проблему, мне приходится одновременно писать на си++ java javascript groovy php VBA даже не спрашивай как я до такого дошел, но вот такая вот ситуация сложилась. Какое решение вижу я, в php должна быть ф-я, передавая в которую объект php, ф-я при создании страницы создает валидный js.
Ангулар 1. Есть сервис/фабрика, которая делает запрос и возвращает значение. Как сделать, чтобы фабрике при вызове можно было передать значение, которое она бы использовала в запросе?
Возможно ли, и если да, то как, перехватить ответ от сервера при отсылке ajax запросов из js кода?
Поясняю особенности того, что я хочу получить: 1.) Есть $.ajax, который отправляет запрос на сервер. 2.) Сервер возвращает ответ где сериализован объект, в котором есть свойство "status". 3.) Код перехватывает возвращенный объект, обрабатывает его и затем передает на дальнейшую обработку в success 1.)
>>723261 Да, это первое что пришло в голову, и я бы воспользовался этим методом если бы везде писал свои запросы, но я местами использую фреймворк syncfusion который сам собирает ajax, поэтому нужен именно перехват.
Анон, помоги новичку. Нужны вкладки на js/query с одной особенностью, нужно чтобы кнопки и контент находились в разных блоках. Нужно сделать сайт не большой по нагрузке, но большой по кол-ву информации и я решил не делать кучу мелких страничек, а сделать все на одной используя вкладки в навигации.
Аноны, есть кто работает js погромистом? Какие требования? Надоело писать на си++. В багаже начальные знания php и javascript в размере полугода работы. Что нужно подтянуть что бы перекатиться в веб? Верстку не знаю совсем как, просто наглухо.
>>723330 В крупной конторе это делают верстальщики, но знать верстку необходимо (заниматься мб и не придется), если только ты не будешь делать backend на ноде.
>>723327 ну я могу сказать как на си++ работаю, дают задачу, я с ней ебусь месяц-другой потом начинаю показывать руководителю, что-то дополняем, что-то меняем, что-то исследуем. В общем работа ответственная и никто не давит и не подгоняет. Сейчас так вышло, что пришлось дописывать проект на js и java за съебнувшим коллегой и вдруг почувствовал, что все в разы проще и быстрей чем на ++, но тут видимый результат буквально каждую неделю можно получать. Как там в мире js? хуяк-хуяк и в продакшн?
>>723344 У меня вообще здесь все стандарты вношу я и требование одно - успевать по дедлайну сделать так, чтобы работало. Но я и работаю не в IT-компании, а в IT-отделе, где всего 4 человека. Где-нибудь серьезнее могут дрючить за unit и e2e-тесты, проводить код-ревью и т.д., у меня вообще халява.
>>723343 Разбей еще на маленькие функции с человекопонятными названиями и будет ок. Представь, что чувак, который будет читать этот код, не хочет разбираться, что этот код делает, а хочет прочесть английское предложение.
>>723350 https://jsfiddle.net/j3v6ra9g/3/ Вроде такого? Еще я не уверен что выбрал правильный подход с использованием своих объектов наряду с Date объектами, или норм?
Аноны, посоветуйте что учить что бы вкатиться стажером не в верстку. Базовые знания js есть, не знаю куда дальше копать. Могу написать небольшой экстеншн для браузера, или на ноде бота сделать для тг, но мне кажется этого мало. В общем буду рад советам по теме
>>723371 >использованием своих объектов наряду с Date объектами Это ок.
>Вроде такого? Да, только объявление функций сверху, вызов их снизу - это для читаемости, видишь, что закончились определения, дальше идут вызовы. А еще лучше в IIFE вызывать анонимную функцию, в которой будешь хранить объявления функций, а она пусть возвращает именованную tick, которая и вызывает саму себя.
>>723385 >А еще лучше в IIFE вызывать анонимную функцию, в которой будешь хранить объявления функций, а она пусть возвращает именованную tick, которая и вызывает саму себя. Воу, у меня череп потек от такого. Т.е. так? (function() { var ...;
function calculate() {...}; function render() {...}; return function tick() { ... setTimeout(tick,1000); } })()(); Ты меня подтраливаешь, или я не так понял? В чем плюс такой схемы?
>>723399 >В чем плюс такой схемы? Объявление функций хранится в замыкании уровнем выше, а не в функции tick. Код логически лучше разделен, читать такой код проще. В функции tick хранится, собственно, код, отвечающий за tick, и не больше.
>>723429 Прелесть пикчи в том, что ее можно интерпретировать по-разному. Сидят либо два кандидата, а в очереди - работодатели, либо наоборот - справа ищут годного низкоуровнего спеца, но никого нет, зато на PHP-вакансию собралась толпа индусов.
>>723457 Интересно. _ с extend это что-то конкретное, или просто плейсхолдер для функции которая копирует методы в возвращаемый объект? Прототипы я таки понял, и если я правильно понимаю, то в виде фабрики методы будут копироваться в каждый экземпляр, занимая лишнюю память.
коданы, тут писали что добавление методов в класс через прототип экономит ресурсы, например function Class() { this.doSomething = function(){...} } хуже чем function Class() {} Class.prototype.doSomething = function(){...} это верно?
>>723478 Верно, прототип это просто объект, в котором и собираются все эти свойства экземпляров "класса". И экземпляры ищут и находят это свойство в общем объекте.
>>723473 >то в виде фабрики методы будут копироваться в каждый экземпляр, занимая лишнюю память. Будут копироваться только ссылки на них, а экземпляры будут храниться в замыкании. _.extend из underscore.
Горит лаба по машинному обучению. Вроде, теорию как-то разобрал, но не знаю питона (специальных библиотек питона) и сильно волнуюсь, так что без понятия с какой стороны подойти. Было бы здорово, если бы кто-нибудь знающий помог разобраться. Задания типа сгененрировать данные для функции, применить к ним регрессиии и написать процедуру, которая выберет оптимальную модель регрессии для случайных данных. [email protected]
>>723496 Значит при прототипном наследовании оверхед на поиск (операции), а при фабрике на память (4 байта, если не изменяет память, на каждую ссылку на метод).
Народ, короче еле-еле на грани понимания славливаю концепцию колбэков. Сука, функция, которая определяется в параметрах функции. Рвет мозг и шаблоны напрочь. Кто-нибудь может на простых примерах (может из жизни чего взять) пояснить за них? А то в статьях все сразу для примера херачат запросы по два-три колбэка и хуй пойми где что... Или киньте ссылки на какие-нибудь простые статьи с примерчиками уровня helloworld по теме.
>>723632 Нет. prototype это свойство конструктора. В создаваемый объект тот же объект записывается в скрытое свойство __proto__, т.е. можно function Class() { this.__proto__.doSomething } но так вроде как не принято потому что а хуй его знает, я сам только учусь.
>>723590 >Рвет мозг и шаблоны напрочь. И рвет и выносит, но потом, перечитывая в двадцатый раз и потренировавшись всё начинает хорошо укладываться. Параметры функций нужны чтобы динамически определять сущности, с которыми она работает. Но этими сущностями могут быть не только обычная инфа вида "что", но и "что делать". Допустим считаешь ты зарплаты, есть для этого функция, но от зарплаты ты должен потом отсчитывать всякие налоги, причем для всяких инвалидов иначе, для студентов иначе. Закладываешь колбек в параметры функции, который применяешь в конце вычислений. А при вызове передаешь другую функцию, которая и будет высчитывать налоги. function getPayment(hours, payrate, applyTaxes) { var payment = hourspayrate; payment = applyTaxes(payment); return payment; } function standartTaxes(value) { return value0.75 } function disabledTaxes(value) { return value0.9 } function studentTaxes(value) { return value0.8 } И можешь использовать это как getPayment(160, 5, studentTaxes); Это самый простой пример. Еще яркий пример сортировка: есть функция sort, а ей можно передать колбэк, в котором описано по какому принципе сортировать. Это уж не буду расписывать, в гугле и так полно примеров.
>>723592 Проверяй размер экрана при загрузке и вызывай свой участок. Если под размером экрана ты подразумеваешь размер окна, то еще вешай хендлер на событие изменения размера окна.
(по сути и разрешения экрана в индивидуальном случае может измениться посреди работы)
>>723867 Потому что это просто свойство. Оно е обязано всегда указывать на прототип, и легко может быть переопределен. Для рефлексии есть специальные методы в Object или теперь в Reflect
>>723870 Это не имеет значения.Можно заполифилить. Но. Раньше это было кастомное свойство, котрое появилось в браузере. Сейчас его утвердили в спеке, и оно поддерживается всеми, кто поддерживает es6 Но сделали это именно из прежней неразберихи. Лучше бы не делали. Это хуевое свойство.
>>723890 Ну я на самом деле только сейчас понял, что нужно, пост жопой читал. Но у классов ещё и наследование есть, может из супер класса свойство доступно будет одно на всех.
>>723894 Суть в том, что оно будет определяться для каждого инстанса каждый раз. И если ты хочешь чтобы во всех инстансах было например поле name которое хранит примитив, то у тебя этот примитив продублируется в каждый объект, а не будет храниться в прототипе.
Тепнерь представь чтоэтот примитив - строка на тысячу символов. И у тебя тысяча инстанстов. В каждом хранится по строке в 100 символов.
А в случае с нормальным старым прототипным наследование, эта строка хранится только в прототипе, в единственном числе, а все оостальные имеют к ней доступ делегированием.
>>723946 Я об трансляции в es5 Если подходить ко всему как, что если какая-то фича не распространена по юзкейсам, то и не страшно - с этой точки зрения трансляторы вообще тогда не нужны. Всё можно писать на es5
Я не приведу пример, где я использовал бы прокси или символы, потому что я их еще не использую, ввиду неполной поддержки везде.
А юзкейс у них стандартный, всё то же самое метапрограммирование.
>>723613 >>723767 ясно, ясно. Вообще жопа, надо прочитать файл с другого сервера, т.е. я захожу на сервер, а он с другого сервера файл тащит, но джаваскрипт все запрещает на хуй.
>>723957 >джаваскрипт все запрещает на хуй Он тебе ничего не запрещает. Проблема в твоем окружении и архитектуре твоего решения. Окружений много, и архитектуру решения надо подгонять под каждое.
JS не виноват в твоих проблемах.
ОС тебе например тоже не разрешает напрямую обращаться в произвольные участки памяти, говорит ли это о том, что виноват в этом какой-либо язык?
Есть 2 проекта. В 1 вебшторм подсвечивает синтаксис как на 1 пике, а во втором какую-то ошибку даёт. Оба работают нормально, но красное меня раздражает в коде. В чём проблема? ES6 в обоих включён.
>>724121 Там нить разговора была о сахарной конструкции class из es6 и ее ограничениях (в частности не возможности через нее объявлять свойства в прототипе, а только методы).
Суть объявления вручную, о котором написал ты, что и не нужен был никакой сахар для классов из es6. Он и так прекрасно эмулировался и прежде, если очень хотелось. А так он не добавил никакого удобства, а лишь добавил путаницы для новичков.
>>723810 Щито? Прото уже является объектом на стадии прогонки кода конструктора, я только добавляю этому обьекту свойство. Ты собсно делаешь то же самое
>>724222 >>724223 >>724224 Что это? Типа вместо кейса присвоить сразу массив и брать значение по индексу? Так 1 и 2 это для примера, у меня в задаче свитчится по строке, и кейсов много. Мне показалось изящнее возвращать в свитче нужное значение, от брейков эстетически воротило всегда.
Что скажете по поводу node фреймворка sails? По моему лютая годнота, целый день сегодня колупал и не могу нарадоваться. Но какие подводные камни? Кто-нибудь серьезно разрабатывал на этой хуйне?
>>724251 Он второй по популярности после экспресс, полно проектов на нем. >какие подводные камни? Это типичный рельсо/джангоподобный фреймворк. Недостаток один - много магии. Иногда она перекрывает все преимущества. Но для написания магазина/блога это отличный вариант.
>>724261 >Недостаток один - много магии Ты имеешь ввиду танцев с бубном? >Но для написания магазина/блога это отличный вариант. А что-то покрупнее? У меня в голове давненько крутится идея одного стартапа, думал на sails его запилить, потому что ^он охуенен^ я более-менее хорошо знаю JS и мне впадлу учить другой язык.
>>724263 >Ты имеешь ввиду танцев с бубном? Нет. Я имею ввиду то, что непонятно, как оно работает под капотом. Оно работает и всё тут, а как - неясно. На экспрессе ты сам составляешь структуру от начала до конца, а здесь просто обмазываем готовое. На Сейлс быстрей и проще разработка, но непонятно, почему и как идет запрос, например. >А что-то покрупнее? У меня в голове давненько крутится идея одного стартапа Пили, если это связанно с вебом. Сейлс хорошо подходит для веба, но пилить бэк для онлайн-игры я бы на нем не стал.
Подойдет ли JS как первый ЯП для ньюфага? Не научит ли он меня "плохому" подходу и стрельбе в ноги? Надо ли читать книги или статей и лекций по нему в инете достаточно?
>>720201 (OP) помогите с задачей Реализуйте и экспортируйте функцию invertCase, которая меняет в строке регистр каждой буквы, на противоположный. http://pastebin.com/mGwjWD2b
>>724313 >str === str.toUpperCase() ту аппер кейс – это функция, которая возвращает всю строку в верхнем регистре. Ты во-первых сравниваешь 1 букву с целой строкой, а во-вторых посреди кода изменяешь входную строку. В документации же написано, что эта функция делает, ты в глаза долбишься? Тебе подойдёт условие if (str =< 'Z' && str >= 'A') чтобы узнать, в верхнем ли регистре символ. Если в js так можно сравнивать чары, на самом деле я забыл.
>>724304 >Подойдет ли JS как первый ЯП для ньюфага? Да, порог вхождения минимален. >Не научит ли он меня "плохому" подходу и стрельбе в ноги? Может научить, поэтому >Надо ли читать книги Обязательно
>>724334 Сгенерируй строку на 100000 символов и проверь. Да и к тому же если их использовать в более сложных случаях, то они чаще всего превращаются в нечитаемый пиздец, так что не нужно приучаться.
>>724293 В данном случае ничего, но в некоторых похожих случаях они необходимы, например если хочешь обратиться к литералу объекта или функции, как к именованным. {'foo':'bar'}['foo'] //Error ({'foo':'bar'})['foo'] //'bar' function() { return 'foo' }() //Error (function() { return 'foo' })() //'foo'
Господа. Сделал псевдослайдерок, и прикрутил ему подобие анимации через опасити в цсс. Но при загрузке странице анимация отрабатывает на первом слайде. Я пытаюсь это убрать, допустим, пишу arr[0].style.animation = "none" но, анимация у этого слайда не срабатывает больше вообще. Как можно сделать, чтобы она не срабатывала, только при загрузке страницы? (документ/виндоу.onload и addEventListener('load') не сработали)
>>724468 >arr[0].style.animation Не делай так. Запили отдельный сss класс где ты резетишь какие тебе надо параметры, и навесь его на нужны элемент, а потом убери, когда надо.
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Часто задаваемые вопросы:
https://github.com/xxxwww/js-thread/blob/master/Wiki/faq.md
Список материалов для изучения:
https://github.com/xxxwww/js-thread/blob/master/Wiki/learn.md
Список инструментов и направления JS-разработки:
https://github.com/xxxwww/js-thread/blob/master/Wiki/tools.md
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.