Ссылка на прошлый тред: >>714644 (OP)Этот тред посвящён главному языку будущего - 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/ для серверного кода.
Шапкаhttps://github.com/xxxwww/js-thread/blob/master/header.md
На офф сайте обучалка по ангуляру 2 доступна пока что только для тайпскрипта, значит ли это что он теперь оффициально(тм) рекомендуем гуглом и стоит вкатываться в него дабы быть правильно пацаном?
>>720206Да
>>720206нет
>>720207>>720222Спасибо, аноны
>>720201 (OP)Дублирую вопрос. Хотел запустить MongoDB. Выдал две ошибки не было hotfix и не видел хост. Hostfix установил, а вот что с хостом делать? Что я делаю не так?
>>720201 (OP)Как на вашей ноде сайты писать? Экспресс выглядит слишком убогим. Какие есть норм Фреймворки?
>>720231Поставь лучше линупс на виртуалку, не занимайся виндопердолингом
>>720236В шапку посмотреть западло?
анонанусы, а что такое coffescript? От него вообще есть прок?
>>720277> От него вообще есть прок?Сейчас это просто няшный синтаксис
>>720280а чего он так редко на hh встречается? Ебанутый groovy на котором я пишу и то чаще
>>720286Его развитие прекратили и осталось только легаси
>>720277Не нужен, ведь есть бабель
>>720307Это вообще разные инструменты для разных задач
>>720308Че несешь, поясни.
>>720310Бабель для es6-фишечек, кофе - няшный синтаксис, который раньше и функции бабеля мог выполнять
>>720311В ес6 гораздо больше полезной херни, чем в кофе. Те же прокси и нативные промисы
>>720314Есть же всякие форки с впиленными фичами es6
Только начал ноду учить, а уже кончаю от её охуенности.
>>720318Ну это до тех пор, пока у тебя что-то где-то течь не начало
>>720311Как будто это как-то меняет суть работы транспайлеров.
>>720318только начал учить ангуляр, но меня уже бомбит. С моей говнокодерской высоты кажется, что он вообще не нужен
>>720319По штанине, ты имеешь ввиду?
>>720322Потом и по штанине.
Объясните, почему код ниже после выводит айди и итог работы таймаута, а не что-то одно?var timerId = setTimeout(function() { alert(5) }, 1000);alert(timerId);
>>720330а с какой стати он должен выводить что-то одно?
>>720330исторически сложилось
>>720341Так как timerId несет в себе 2 значения: значение, выдаваемое функцией и ID setTimout. Разве переменная не должна нести в себе 1 значение?
>>720348Током ебнуть? Возьми да посмотри, что "несёт в себе" переменная. Написал 2 алерта и хочет один вывод.
>>720348Хз, я лично рассматриваю это так:setTimeout(...) - сам по себе ставит таймаут и вполне себе норм работаета присваивание вида var timerId = setTimeout(...) необходимо если мы захотим его очистить и тогда нам надо знать его айдишник.
>>720354Спасибо, даже внимания не обратил.
Напоминаю рейтинг.TOP TIERTypeScriptMIDDLE TIERJavaScriptSHIT TIERCoffeeScript
>>720380Аргументация? Dart всем дал на ротан
>>720380Сорта.
>>720380Elm - GOD TIERт.к. ФП > ООП
>>720395Двачую. Правда мозгоразрывающе, бессмысленно и беспощадно.
>>720380ловите наркомана
>>720395>нет монад>god tier:)
>>720418Отчего им там не быть, это всего лишь паттерн
>>720426https://github.com/elm-lang/elm-compiler/issues/413
>>720314Хуй ты прокси отобразишь в es5Что несешь
>>720432Лол, что было сложно репо бабеля включить и посмотреть, как реализовано? Ну ты даун
>>720435>реплбыстрофикс
>>720435Кто бы говорил
>>720437А теперь загугли proxy es6 polyfillСорри, что разрушил твой мирок, манька
>>720439Ты совсем мудак.Все существующие полифилы, полифилят с ограничениями, и не способны прокрисровать большинство ништяков.А в тех, случая которые они полифилят, они и не нужны.
Кто пояснит, что лучше учить, реакт-редукс или ангулар 2? ну или первый.
>>720461 -> >>716726
>>720466спс, но меня еще востребованность интересует.
>>720470Смотри вакансии
>>720461Редакс и с ангуляром отлично дружит.
>>720474Только он там не нужен. Ангулар - готовый завершенный набор, а реакт - конструктор, одной из важнейших деталей которого является редакс.
>>720522ВзлольнулИ что же у тебя в ангуляре выполняет функции редакса?Ты вообще в курсе, что редакс это универсальная вещь, не привязанная вообще ни к чему? Я, например, на сервере использую его даже. Суперштука для вебсокетов.
Народ, кто использует атом, подскажите плз как тут поднять строку в которой курсор вверх окна редактора. Не хочу писать код в самом низу окна.
>>720579Усё, нашел сам.
Есть смысл начинать новый проект на ангуляре 1?
Книги в FAQ расставлены по возрастанию хода обучения? Т.е в самом начале первую (совсем для новичков) потом вторую и так далее (первый раздел). Или там совсем всё рандомно?
>>720712Есть. Ангулар 1 - это отлаженный инструмент разработки, а Ангулар 2 - игрушка для хипстеров. Раньше чем через полгода трогать его не стоит.
>>720724В основах и Node.js книги расставлены от обязательных к желательным. Во фронт-энде они разбиты по технологиям.
>>720726Спасибо, просто т.к начинаю абсолютно с нуля, то боюсь запутаться.
>>720725>Ангулар 1 - это отлаженный инструмент разработкиТы тралишь?
>>720767Он уже 6 лет в продакшенах крутится, в том числе и в куче корпораций
>>720778Охуеть, а перл 20 лет, давай на нем ебашить всё. Right tool for the job - не про тебя походу.
>>720787Ты что, даун? Что ты сравниваешь? Перлу тыщи более годных альтернатив, ангулару - какие-то поделки от васянов, которые могут завтра сдохнуть и какой-то недоконструктор, который даже не релизнулся. За 7 лет существования ангулара так и не было ничего, что могло бы его заменить, поэтому он такой популярный
>>720794У него единственное применение - клепание охуительных формочек. Это да, тут ему конкурентов нет. В остальных случаях он начинает сосать даже при выводе среднего размера списков чего-нибудь. И там уже начинается охота на ведьм и костылинг.
>>720795Когда он создавался, надобности в таком и не было особо. Это ж 2009 год, тогда все просто от аджакса охуевалиСейчас такие задачи появились, много где большие объемы данных, вот и запилили вторую версию с shadow-dom и куртизанками, чтоб всё быстро и компонентно. И он опять будет очень популярным
>>720798Так и че отрицал? Нахуй он нужен в 2016?
>>720794>ангулару - какие-то поделки от васяновТонна фреймворков, счет идет на десятки.
Пацаны, как этот ваш jsx на сервере в js скомпилить? Надоело ждать пока с реактовским бабелем страничка обновится, совсем фуфель какой-то.
>>720794Я тоже так думал, но когда увидел вторую версию, понял что гугел всерьёз собрался сделать из js'а вторую жабу и это очень плохо. Js вэй - это простота, минимализм, гибкость, скорость разработки, а не идусня с абстрактпроксисинглетонами. Жаба-вэй уже один раз обосралася в вэбе на бэке, проиграв рельсам, обосрётся и сейчас на фронтенде. Прогрессивные пацаны выбирают реакт + кложурскрипт, индусы-синие воротнички - ангуляр, всё остальное быдло пишет на всяком говне.
>>720830>Жаба-вэй уже один раз обосралася в вэбе на бэке, проиграв рельсамTi adekvaten?
>>720830Нет же. Посмотри на polymer. Вот что они хотят сделать из второго ангуляра
>>720828И ты, конечно же, их перечислилинб4 эмбер, вуе
>>720837https://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworksДобавлю еще, что в большей части проектов ВСЕ РАВНО приходится писать свой мини-фреймворк, т.к. это быстрее и дешевле, чем внедрять стороннее решение.
>>720831Вполне. Они долбоёбы тогда решили что веб - это всего лишь ещё один уровень абстракции, ещё один слой поверх того невменяемого тырпрайз говна с которым они привыкли работать. В результате получилось неудобное нечто, 100500 слоёв абстракции чтоб вывести хеллоу ворд, при этом никаких удобств конкретно для самого веба-разраба не было.Рор пошел другим путём, и сделал только нужное для вэб задач, а именно роутинг, актив рекорд, скаффолдинг, нормальное mvc, систему миграций, фронтконтроллеры, простую интернационализацию, простую декларативную валидацию. авторизацию и прочее и прочее. В результате сейчас 90% вэб прилаг написаны на рельсоподобных фреймворках, а джавадебилы дальше сосут письку в банках или пилят такие же рельсоподобные фреймворки типа Play.
>>720835Мне достаточно того что я увидел в примерах на оф сайте. Да и переход на тайпскипт - идиотизм. Куча каких-то блять конфиг файлов, миллион классов, короче если ява это интерпретатор иксемеля в стектрейсы, то ангуляр2 это интерпритатор джсона в ошибки браузера.
>>720843>90% вэб прилаг написаны на рельсоподобных фреймворках
>>720845>Да и переход на тайпскипт - идиотизм. Куча каких-то блять конфиг файлов, миллион классовНе идиотизм. Но на счет конфигов и классов согласен, чет слишком дохуя всего.
>>720201 (OP)Ищу новичка для совместного обучения скрипту и прочим технологиям. Вместе легче учить, как по мне, одному как-то тухло и не с кем делиться, что лиСам прошел пару курсов по html\css, sql, js на khan, codeacademy и dash.
>>720850А ты няшный?
>>720843Мне лень рассматривать по пунктам. Но бакенд на явке пилится парой кликов в любом иде. То что на других языках вызывает лютый разрыв пуканов мочакодеров в ЕЕ или спринге просто до умопомрачения. Настроил jpa, сгенерил энтити, запилил дао для работы с базой, нагенерил бинов, сгенерил rest для бинов, описал секурити модель. Все бакенд готов нах. А поверх него хоть jsf пили, хоть на моче спа поверх реста.
>>720852>>720850Нет.И желательно больше 20 уровня чтоб был
>>720848>top in frameworks>PHPХорошая статистика по фреймворкам!
>>720855Ага, только все почему-то блюют с ЕЕ и мечтаю перейти хотя бы на Play.
>>720848>72% ASP.NETПричём это даже не MVC. Тебе самому то не смешно?
>>720868Кто все?
>>720872Этот кот, например.
>>720856Запили контакты, может взлетит
>>720885alexey1kne скайпМожно через что-нибудь еще
Аноны, работал кто с этой хуитой? https://github.com/google/code-prettifyИспользую для подсветки синтаксиса в шарпе, но эта мразь выделяет текст в таких ковычках <> зелёным, а должны keywords подсвечиваться синим как и в вижле. Видимо распознаёт как include в с++. Может кто знает как пофиксить?
>>720891а как вообще сейчас с Баумке, норм?
>>720897Не обращай внимание на написанное
>>720878ничосиу меня такой же фуджик н560 как у кота есть:3
>>720845>ангуляр2 это интерпритатор джсона в ошибки браузера.на башорг!
>>720845>Куча каких-то блять конфиг файлов, миллион классовСЛОЖНА!!! У НАС В ХТМЛ ПРОГРАММИРОВАНИИ ЗА ТАКОЕ УБИВАЮТ НАХУЙ
>>720839> https://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworksНу и где там фреймворки не от васянов, с большой модульной базой и всем вот этим?> в большей части проектов ВСЕ РАВНО приходится писать свой мини-фреймворкЧто за бред? Такое могут позволить себе только корпорацииДа и всегда дешевле использовать технологию с большим коммьюнити, которое напилило огромную кучу модулей
>>720951>поделки от васянов>использовать технологию с большим коммьюнити, которое напилило огромную кучу модулей/0
>>720953Я хейчу васянов из-за их привычки умирать, а вместе с ними умирают и их проекты. Смерть васяна, который сделал фреймворк, гораздо фатальнее, чем смерть васяна, который сделал модуль
>>720794То что твой ангуляр "релизнулся", ещё не делает его не обосратым.
>>720971Ну давай, расскажи что в нем плохого по меркам 2010 года
>>7209742016 год, ало.
>>720975Так в 2016 у нас уже есть второй ангуляр
>>720992>Ангулар 1 - это отлаженный инструмент разработки, а Ангулар 2 - игрушка для хипстеров. Раньше чем через полгода трогать его не стоит.Кто это говорил? А, наверно не ты..
>>720994Не я. Второй ангуляр вполне "продакшн-реди", просто не обкатан достаточно. Бетой они просто снимают ответственность с себя, чтоб не хуесосили вдруг чего
Блядь сидишь такой на кодеварсе задачи ебашишь, вроде все сделал правильно, потом смотришь на решения и начинаешь ощущать себя тупым..function climb(n){ var n = n.toString(2); return n.split('').map(function(_,i){ return parseInt(n.slice(0,i+1),2) })}
>>721024Или бугришь от того, какой ответ считается best practice.
За сколько учится работа с этими grunt/gulp, bower/npm? Выглядит на 2-3 дня, чтобы все понять. Так ли это?
>>721031У тебя поезд к успеху через 2 часа твоего драгоценного времени?
>>721033прост одна блядь выебывается какой он крутой. Надо его на место поставить.
>>721039Чего-то аж жалко тебя стало
Помогите ньюфагу. Есть одно главное меню с dropdown. По просьбе заказчика на десктопе оно работает по ховеру. На мобильных устройствах нет ховера. Как реализовать подобную хуйню?
>>721054Код покажи
>>721054по-твоему щелчек на мобиле != ховеру?
>>720231Юзай какой-нибудь mlab и не парься.
>>721054впрочем сам читай http://www.prowebdesign.ro/how-to-deal-with-hover-on-touch-screen-devices/
>>721065спс
Пацаны был ктонить в лабе епаме веб макакой? какие примерно задания там дают?
>>721024Я бы если на код ревью такое увидел, переебал бы тебе с вертушки.
>>720725ангуляр вообще трогать не стоит
СЧОООУРСЧОООУРСЧОООУР
>>721138> жабаскрипт вообще трогать не стоит
>>721155>WEB вообще строгать не стоит
>>721158программирование вообще трогать не стоит
>>721159эту тему вообще трогать не стоит
>>721170на двач вообще лучше не заходить
коданы, есть необходимость написать простой аи для игрушкиимеет смысл брать для этого другой язык и компилить его в джс или писать на ванили как и всё прочее?
>>721211Что у тебя за вопросы такие? Как будто аи на каком-то языке лучше получится
Котаны, объясните, пожалуйста, как работает последняя строчка в скрипте http://plnkr.co/edit/62Z7toAcJGiLk95mBtUQ?p=preview?Вот эта:>childrenContainer.hidden = !childrenContainer.hidden;
>>721239Как хоть ты на доску то смог зайти
>>721134Жалко, что ты школоло и с вертушки только тебе дают по ебалу
>>720951>Что за бред? Такое могут позволить себе только корпорацииТы бывал вообще в продакшене?
>>721024Сложная конструкция, а то, что делает - несложно. Значит это плохой код. Хороший код, когда конструкция простая, а делает сложные вещи.
>>721239Просто меняется булевое значение на противоположное, ты рофлишь что ли?
>>720951>Что за бред? Такое могут позволить себе только корпорации>Да и всегда дешевле использовать технологию с большим коммьюнити, которое напилило огромную кучу модулейСтудент не палится.Дешевле использовать только когда мелкий проект. Если проект большой, то дешевле значительную часть сделать самому, а из чужого кода брать только то что поддерживается крупными фирмами или давно написано окончательно. Всякие мелкие дрочеры опенсорсники и их говно идут нахуй, потому что на хайлоад не расчитаны, куча багов, поддержка нерегулярная, часто проекты бросаются, ломаются и вообще это пиздец.
>>721024Число приводит к двоичному основанию, потом к строке, потом разбивает на массив, затем берет от строки 1, 2, 3, n символов и превращает обратно в десятичное число.
>>721285Пиздец ты диван сука
>>721250Таблетки выпей, уже галлюцинируешь.
>>721273Да нет, просто туплю...
стоит начинать Frontend или он для девочек?
>>721381Программирование вообще не мужская профессия.
>>721381Почему только для девочек, если пердолится любишь в жопу, то тоже подойдет
>>721298Он прав вообще-то.
>>721399Это только backend.
>>721401Почему только бекенд? Настройка мне тестирование реакт компонентов на тайпскрипте без рекомпиляции в ес5, посмотрим какого размера у тебя анус будет потом.
>>721403Проиграл. Надо это вынести в шапку треда
>>721403Ты конфиг вебпака скопипастить не можешь?
>>721381Часто самоудовлетворяюсь, представляя себя на месте девушки, которую ебут. Иногда дрочу на трапов. Люблю представлять себя нежной девочкой в юбочке в руках у сильного мужчины.пишу фронт и бэк на js
>>721433Если сделаешь мне такой конфиг вебпака, то вышлю тебе 50 баксов (без шуток). Нужна мока (или джест), чай(тут можно что-то другое), реакт 15 на тайпе ^1.8.x, без рекомпиляции в ес
>>721435Я бы тебя трахнул
>>721230читал что можно на чём-то типа лиспа сделать лучше
>>721486Ты начни делать. Если упрёшься в язык - можно думать о другом. Но вангую тебе и жс хватит с головой.
>>721451Город?
>>721451Ты бы и собаку трахнул.
Сколько строк готового кода вы пишете в среднем в стуки?
>>721510В среднем, за день я объявляю 35 переменных, 10 функций, два класса и один массив.
>>721515Не перетруждаешься я смотрю.....
>>721063>>721063Крым под санкциями -_-
Вопрос тот же, не заметил перекат>>721650
>>721510От 10 до 2-3 тысяч.
Теперь представьте ваши поделки с кучей классов, массивов и прочих ниш. Отрываем на телефоне, всё ломается, хрустит и с болью наперевес подгружается. Твои оправдания, почему используют классы там, где должны использоваться 2 переменные? Почему функции выходят из функций? Зачем использовать jQuery везде, где нужно сделать простой эффект? Зачем подключать огромные куски рекламных скриптов последовательно?
>>721648
>>721702Что ты несешь, епта?
>>721702саси байтоеб
>>721711Сразу видно фронтенд-макаку>>721712Йоба что-ли? Поясни
>>721709
>>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.
>>721721Ты просто собрал кучу бэд-практикс и выдаешь это за острие развитие фронтенда. Ты пидор.
Вопрос от ньюфага по поводу обработчиков событий на клиенте.Какая самая лучшая практика по навешиванию множественных обработчиков на однотипные элементы.Например, есть у нас некая борда, со списком тредов. В каждом треде есть поле для ввода поста/кнопка/whatever, на него нужно повесить обработчик, который что-то там делает.Прослушиваемых элементов, как и тредов, может быть очень много.Какой вариант в таком случае предпочтительнее?? Собирать все нужные поля со страницы в массив, проходится по нему циклом и вешать на каждое событие. Использовать делегирование на документе? Писать мелкокласс под элемент и затем инициализировать столько его копий сколько потребуется? Может какие-то другие практики?
Добрый день, хакеры, подскажите/помогите пожалуйста. Как сделать чтобы только нужный блок на странице, то есть ссылку только на него вытащить из страницы.Сайт: http://arielrebel.com/Блок: "Recent Updates", пикрелейтед.
>>721830Че?
>>721835Ну чтобы по ссылке только блок "ресент апдейтс" открывался.
>>721837На всю страницу?
>>721844Как угодно, хоть на всю растянуто, хоть в столбик, хоть как. Это же отдельный хтмл-блок я так понимаю?
>>721845Берешь адблок и скрываешь все блоки кроме нужного
>>721845Я не понимаю, откуда такой разброс в квалификации? Вопросы здесь тотально нубские, а если вдруг скажешь что не так, то из рид-онли вылазят эксперты с уязвленной самооценкой, пытающиеся самоутвердиться на аноне за счет знаний обоснованным ответом, почему так, а не иначе. Нахуя тогда этот тред, если не для обмена опытом? Сиди дрочи на то, как ты охуенно много знаешь, хуле, если не делишься опытом, нахуй ты тут нужен?
>>721845Блядь это так не работает. Нет ссылки на этот блок, можешь его сам собрать спиздив стили, но последние новости туда грузится один хуй никак не будут. То что ты хочешь есть подгрузка api через iframe. Там такого точно нет. Может и можно как-нибудь парсить эту хуйню доставать оттуда новое и отправлять в свою форму, но это пиздец бессмысленно
>>721848Можно написать расширения для хрома, которое будет по обновлению контента через таймаут проверять, обновилось ли, а если да, то аппендить в body.
>>721849я и говорю это пиздец
>>721847Да нет ты не так понял похоже меня, это же я и вопрос задал, что мол мне результат какой угодно сгодится.>>721848Понял, досадно, спасибо за информацию. Просто думал это как блок как на какой-нибудь борде, на Ычане чтоли меню слева отжельным блоком или на какой-то другой видел.Спасибо, за ответы, удачи.
Я сегодня понял, что в php можно симулировать js'овский event loop с помощью tick functionНикто не встречал готовых решений об этом?
>>721862НА-ХУ-Я?
>>721865Джаст фор.
>>721866В доках же есть всёhttp://php.net/manual/ru/function.register-tick-function.php
>>721868Так я об эмуляции готовой. Рантайм если хочешь. Принцип то я знаю, разумеется. Алсо, эмулировали же прототипную модель, просто чтобы. Тут то же самое. Асинхронщина в одном потоке.
Ребят вот вы мне как рубисту обьясните нахуй вам ангуляр? какие профит в мвц архитектуре на клиенте?ебанулись чтоли? наххуй все это когда есть рекат редукс. А и ещё поясните почему у жс такой отсталй?я конечно много чего могу спустить но ведь реал жс какой то умственно отсталый язык:если брать спеки до es6 то там вообше какой то лютый непробудный адовый пиздец по выразительности нет классов и вообше нихуйя нет.если ес6 то надо трахаться с бабелом и тд.Вообшем как так получилось что жс в такой жопе и у него к сожеление нет альтернатив в вебеP.S. И да я не троль. Реал интересноP.P.S Без обид ребятки нехочу никого оскорбить
>>721892«что-то непонял .кгода ты обьявляешь тот класс где ещё у тебя забыл какой-то метод. если в нём не два парамнтра то он ведь переопредеделен . но ведь ты потом длженего найти но другой где два параметра .и если они одинаковые нельзя ведь сразу отлтчить которфй .но ты пишешь что вызывается метод а жто неверно!!! отвечай пожалуйста подробно или ты самый умный?
>>721892> умственно отсталый языкРазобраться не можешь ты, а отсталый язык.
>>721892
>>721899Смешно
>>721892Нахуя ты тащишь ООП в javascript? Он не нужен в js.
>>721850Это ПОЛЧАСА работы. Расширения для хрома это package.json, index.html и script.js. Все, блядь.
>>721960Чтоб твоя хуйня работала, надо чтоб хром был открыт, я полагаю его интересовала автономность в пиздинге нового.
>>721892Пиздец, откуда вы лезете? Для тебя отстутствие жаба-классов – адовый пиздец? Чем они лучше прототипного наследования?
Хочу изучать программирование для себя. В школе изучал стандартную фигню, что-то еще помню. Решил взяться за Angular2. Поставил VisualStudio2015. Подскажите, что дальше? Какой-нибудь ресурс, курсы, уроки, книги для нубов. И, главное, как быстро и без консолеебства настроить себе нормальную среду Angular2+TS?
>>721986Какой ты резкий
>>721989Ну JS поизучал немножко, хочется что-то более интересное.
>>721992Уже изучил BOM, DOM, CSSOM?
>>721994Не ебу что это. Мне ж не работать по специальности, а так, для себя. Объясни что это и почему это нужно знать до начала изучения ангуляра?
>>721992>Изучать программирование>Angularлол
>>721996Это окружение. >Ну JS поизучал немножко, хочется что-то более интересное.Изучи сначала целиком.
>>721999Ну что значит целиком? Погуглил - document.body.style.background или navigator.userAgent вещит и так самоочевидные.
>>722002толстовато становится, братишка
>>722003Ну я ньюфаг, вот ссылка: https://learn.javascript.ru/browser-environment которую нагуглил. Я ж не знаю про что вы.
>>722004Ты хочешь залезть во фреймворк, не покопавшись в окружении. А потом начнешь на простейшие вещи тянуть либы.Вся суть в твоей фразе >хочется что-то более интересное.Интереснее ванили ничего быть не может.
>>722005Просто у меня нет задач каких-то. Ну какую-то вебстраничку склепал, куки там, слайдеры, форма, генерация канваса. Почему бы теперь не попробовать фреймворк? Сидеть и зубрить, скажем, иерархию DOM для себя смысла не вижу (всегда ж мануалы в гугле доступны если что) - мне интересна не работа а удовольствие от этого всего.
>>722005да он сам не знает чего хочет, то ли учить язык, то ли это нихуя не интересно и надо чет поинтереснее, кароче jQuery пусть ест, быстрее всего интересное увидит.
>>722009jQuerry тоже делал, просто упрощенные/комплесные либы для JS, хочется что-то еще попробовать.
>>722016С какой стороны подкатится к вебу, если легко ебашу сервер-сайд на ноде, а больше нихуя не знаю?
>>722091Со стороны официальной документации Реакта.
>>722095Которая полное говно.
>>722101Одна из самых подробных и понятных документаций.
>>722110Ты с webpack'ом перепутал.
>>721740Почитай "идеальный код" и пиши по советам с самого начала, ты же не в олимпиадное программирование собрался вкатываться. Потом тяжело отвыкать будет, а даже если ты с подобным стилем кода пройдёшь собеседование, то потом будешь только боль и страдания тиме причинять.
>>722142А, я жопой читаю посты, спать уже хочу, ясно.
>>721740>Проблема как раз в том, что такой подход к решению мне бы, например, никогда в бошку не пришелВсё превосходство и мощь человеческой цивилизации построено на возможности оптимально хранить и передавать знания. Ты и не должен мочь во все решения сам, но ты должен уметь сохранить эти знания, переработать, сделать выводы и использовать в дальнейшем. Так что не унывай.
>>722155+50Этому позитивному абстрактному сансею
>>722091Для начала посмотри курс лекций яндекса по фронтенду, по ссылкам как раз лекции по перекату с бэкенда на ноде на нормальный фронтенд.https://www.youtube.com/watch?v=e7MkUjdrWIshttps://www.youtube.com/watch?v=bC-MUHhdiUkhttps://www.youtube.com/watch?v=r4Ty-AGQU2ghttps://www.youtube.com/watch?v=Gqon5Bby_qUhttps://www.youtube.com/watch?v=Uj5AN_QQn2Ahttps://www.youtube.com/watch?v=cmt2A_kT8Fshttps://www.youtube.com/watch?v=0KQBHbJt0ic
Поясните мне - можем ли мы хоть как то для некоего св-ва объекта через Object.defineProperty для set и get выполнять какие-либо действия и после этого сеттить или геттить в/из этого св-ва? Т.е. я вкурсе, что если в defineProperty в геттере или сеттере загеттить или засеттить это же св-во - будет maximum callstack. Есть ли какие нибудь костыльные/велосипедные решения?
>>722171Зачем тебе это?Обычно сеттер и геттер меняет какое-то иное свойство.Если тебе принципиально, можешь хранить это свойство не в самом объекте, а например в замыкании, или в свойстве функции-геттера или сеттера.
>>722179У была идея запилить TypeScript'овский декоратор св-ва класса, который кадый раз, когда к св-ву обращались (get) отдавал бы это св-во, но при этом делал бы еще кое что. То же самое и при задании значения этому св-ву - что бы значение устанавливалось, но при этом тоже выполнить какое-либо действие. В итоге я так и не нашел способа обойти maximum callstack.
>>722182дополню, что побочные действия должны были происходить с данными, которые геттятся/сеттятся.
>>722186Ты пример то бы привел, что ты хочешь сделать. Само свойтсво дергать в его же сеттере/геттере это будет то что у тебя получилось - ничего хорошего. Ты либо делашь private field, а в get/set твою кастомную логику, либо декоратор в котором велосипедишь какое нибудь замыкание, если эта логика слабо относится к самому свойству логгирование например
>>722189сажица
>>722189Ну, например декоратор св-ва, который при каждом сетте св-ва писал бы значение, помимо самого св-ва, также еще и в куки. А при гетте, если есть значение в куках - брал бы из кук, если нет - отдавал бы значение самого св-ва.
>>722191>можешь хранить это свойство в свойстве функции-геттера или сеттера
>>722192я видимо туплю, поясни.Напримерclass Foo { @CookieDecorator public name: string; // ....}
>>721116Про эпам не знаю, сейчас на курсах в конторе этажом выше харьковского эпама.Задания были такие: на выбор визуализация пузырьковой сортировки/лабиринт (генерация и поиск пути), потом другой препод дал попроще задание (опять же на выбор калькулятор/сапер), потом на выбор одно из того, что не сделали за первые две недели, дальше пасьянс косынка, файловый менеджер (просмотр директорий, возможность оставлять комментарии, которые сохраняются в монге), чятик на вебсокетах.Остался еще месяц, хз что будет дальше, компания немного утратила интерес к курсам в том плане, что джуны им оказались внезапно не нужны, и хотя тренеры стараются, но все равно оно как-то уже на отъебись. Я-то думал, будет хардкор, конкуренция, отсев лузеров, а тут как-то всем похуй, учимся и учимся.
>>722193Ну, твой декоратор должен устанавливать set и get через defineProperty для поля nameА само name value хранить в свойстве функции get или setЧто непонятногоГеттеры и сеттеры это функции. Функции это объекты, у них есть свойства.function ololo () {} // getterololo.value = 'name value'
>>722194Ой, блин, объебался, ты про работу, а я про курсы подумал. nvm
>>722189у меня сделано так, никакого переполнения в консоли не пишет, я чего-то не понимаю?
>>722285У тебя замыкание.
>>722285Пиздец. Ты это всё в конструкторе еще делаешь, да?
>>722294поясни мысль плиз, няша
>>722297Если ты девайнишь геттер и сеттер каждому инстансу в конструкторе, то у тебя лютый оверхед.У тебя же в каждом инстансе ДУБЛИКАТ геттера и сеттера, хотя достаточно было бы делегировать их прототипу. И не выебываться, эмулируя приватность переменной.
>>721894Я в прицнипе спокойно пишу на ЖС без особых проблем.>>721958Я использую реакт. И уж class extends по выразительнее будет React.createClass() а потом в нутриэтого дела ешё и костылитипо fieldName:function(){return{}}За профиты мвц на клиенте так никто и не пояснил(
>>722300На клиенте mvvm
>>722301А профиты в чем?
>>722302Зависит от масштабов проекта.Те же что и вообще от паттернов.Поддержка.
>>722299у меня 1 экземпляр этого будетнечто вроде стека команд https://ideone.com/XrGKcj
>>722303Не ответил) Вот например для Flux архитектуры я могу спокойно написать профиты в независимости от размер проекта
>>722304А нахуя тебе класс для того чтобы инстанцировать его целый один раз?
>>722306предлагаешь нечто вроде этого делать? :3https://ideone.com/z1ftkc
>>722308
>>722311а как в таком случае сделать в t приватную переменную?t { yoba: 'yoba' }чтобы при обращении к t.yoba например она не торчала наружу?
>>722311ну и иде ругается на duplicate declaration
>>722314Я наверно немножко тупой раз не понял вопроса. Но попробуй let
>>722314Зачем тебе приватные переменные?Они не предусмотрены концепцией языка, зачем вы их тащите.На случай api есть соглашения разного рода, например начинать именование приватных полей с подчеркивания (__yoba)Можно использовать символы еще, например.И просто делать поле не перечисляемым.Все остальные выебоны, с создаванием замыкания на каждую такую залупу - говно без задач. Ты понимаешь, что когда ты делаешь себе приватное поле через замыкание, то в памяти хранится весь скоуп вместе с твоей переменной. И так для каждого твоего объекта, где ты это используешь.
>>722318Консоль браузера не ругается, а иде у него ругается. Ты поехавший?
>>722321+ после присваивания лишнее поле value появилось
>>722320function Yoba() { var innerYoba = 'private'; this.outerYoba = 'public';}var yoba = new Yoba;это выебон?
добрый анон, помоги умственно неполноценному гуманитарию. Есть скрипт - https://jsfiddle.net/f13qtttr/ , думаю ты лучше меня понимаешь что он делает, и почему-то скрипт отказывается работать, когда я заменяю дефолтный текст на свой, ругается он строчкой "No need for the HTML tag, it's already in the output.", как заставить работать это? помоги пожалуйста.
* var yoba = new Yoba();быстрофикс
>>722323Да. И еще какой.Или ты думаешь, что держать в памяти скоуп ничего не стоит?
>>722321Problem synopsis JSHint: Duplicate key 'unit'. (W075)
>>722327спасибо, няша, попытаюсь разобраться с этим
>>722328>>722322>>722314
>>722330Ну, в конкретно этом случае нет >>722323но изначально у него иноеон в конструкторе хранит переменную, которую меняет снаружи сеттером и получает геттером.так вот в этом случае, скоуп конструктора будет жить в памяти все время пока жив объект.
>>722328С твоим хинтером не всё в порядке , и он не умеет в объявление геттеров и сеттеров в литералах https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
>> 722331но ведь суть этого >>722285 была в том что я собираюсь добавить обработку при изменении допустим я делаю t.unit = 'yoba' , кроме изменения поля там будет ещё логика, это неудачное решение?
>>722334Логика у тебя будет в геттере\сеттере же.
>>722335логика будет в сеттере, получается что само присваивание значения в сеттере можно не писать?
>>722334Наздоровье.Но зачем тебе value твоего t.unita хранить в замыкании? Ты чего боишься? С объектом будет работать кто-то другой и ты переживаешь, что он полезет на прямую в свойство, мимо геттера? Это будет его вина, ведь ты опишешь апи, а если у вас есть соглашения, об именовании приватных полей, то вообще замечательно.Делай приватное поле неперечисляемым, а геттер перечисляемым. И всё.
>>722336Писать.Если тебе надо чтобы сеттер менял значение.Короче всё. Я устал это объяснять.У меня один вопрос.А ты где научился приватность полей ебашить через замыкания? Кто посоветовал?
>>722339читал learn javascript про интерфейсы, возможно что-то неверно понял, спасибо за пояснения няша :3
Вся эта мания на приватные поля, похожа на защиту от идиотов. У тебя в комнате в люстре есть лампочка, а на стене есть выключатель. Ты в принципе можешь включать и выключать свет, вкручивая и выкручивая лампочку руками на прямую. Но ты всё же пользуешься выключателем, и чтобы тебе вдруг не пришло в голову им не пользоваться, не навешиваешь на люстру решёток с замком.
>>722339кстати у меня один экземпляр этого объекта и мне нужно хранить переменные, они постоянно используются же
Смотрите какая странность. Повторите это в консоли, убедитесь. Берём, например, массив с объектами:[{one: 1}, {two: 2}]И через JSON.stringify превращаем его в json строку. Получается такое:"[{"one": 1}, {"two": 2}]"Уже видно, что кавычки расставлены неправильно. Если скопировать строку JSON.parse, то будет ошибка. Но если передать готовый json в переменную, а переменную в JSON.parse, то она нормально превратится обратно в объект. В чём секрет?
>>722376Ты обдолбался.JSON.stringify возвращает>[{"one":1},{"two":2}]
>>722376В том смысле те кавычки, что ты видишь в консоли - это не часть строки, это ее отображение в консоли.
>>722376
Поясните, всяким const и let бабель сохраняет область видимости, невозможность присваивания и т.д. из ес6 как-нибудь хитровыебано или тупо на var меняет?
Аноны, подскажите, есть страница генерируется PHP, мне нужно что бы на ней сгенерировалcя массив объектов для javascript, хочу дерево построить. Как это у вас правильно делать?
>>722463JSON?
>>722461https://goo.gl/e5Fgq9Не сохраняет.
>>722471
>>722475Ну лан, победил. А что там с невозможностью присваивания?
>>722463Шаблонизатор юзай.
скриптаны, есть вопрос, всегда писан на vanilla, решил попробовать es6 с babel, какие подводные камни?
>>722741а es6 это не ванила?
>>722742сорри не так написал, имел в виду старый стандарт без фич которые не поддерживаются
>>722744Уже многое поддерживается.
>>722746ну например вот http://es6-features.org/#StringInterpolationв ie11 не работает
Скрин.Содержимое некоторых функций убрал (для вопроса не существенно).Короче, есть страничка, на страничке 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 на этот коэффициент, может кому полезно будет.
>>722801
>>722751var new_angls = JSON.parse(req.responseText);angls = new_angls;
>>722741Многие браузеры уже поддерживают все фичи es6. Кроме лисы, лисе не нравится let :/
>>722810>Кроме лисы, лисе не нравится letСтранно, если вспомнить о том, что когда-то let была только в лисе.
>>722810А ещё Yandex Browser без strict
>>722819Там другой правильный лет был
значит подводных камней в использование бабеля нет? :3
Полный ньюфаг врывается, попробовал написать простенький слайдер. При нажатии на некст и прев, первый и последний слайдер при втором круге становятся андефайнд, я пониманию почему, но не знаю как написать по-другому. https://jsbin.com/niwixusana/edit?html,js,output
>>722821А что в нынешнем неправильного?
>>722823Ошибка очевидная.>index++;>slide.setAttribute('src', slides[index]); >if (index >= slides.length) index = 0;Допустим, до исполнения этого кода 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 меняя им значения, а вот так сразу создать глобальный объект, связять его поля с тегами и при обновлении объекта менять несколько элементов.
>>722833<?echo '<script>var obj = JSON.parse("'.json_encode($your_object).'");</script>' ?>
>>722840Ну, и экранируй еще правильно, конечно.
>>722840Можно без JSON.parse, жсон сам по себе является валидным ЖС.>>722839Ну, делай, что тебе мешает?
>>722809малаца спетросянил
>>722843Хотя, с JSON.parse безопаснее.>>722845Тогда сформулируй точнее, что ты хочешь от нас.
>>722832Спасибо!
>>722846Пиздец, блядь, нарожают анимешников.Прочитай еще раз - я там всё четко сформулировал.
Анон, помохи. Платиновый вопрос, зачем нужны set и get и какая от них польза, кроме того что можно этими командами скрыть свойство от прохождения псевдоциклом по ключам for(key in object)? Почему этот вызвал такой восторг у Ильи Кантора?
>>723001https://ru.wikipedia.org/wiki/%D0%93%D0%B5%D1%82%D1%82%D0%B5%D1%80_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)https://ru.wikipedia.org/wiki/Setter
>>722201>>722194А вот эти задания типо сапера, лабиринта,пасьянса и т.д. это давалось на каждое задание 1 день? И допустим я не знаю как реализовать задачу, типо пасьянса или косынки и мне понадобится время чтобы разобраться, погуглить аналоги,посмотреть чужой код и т.д. это плохо? и значит что я недопрограммист? Или время дается и можно гуглить, смотреть аналоги и потом решить поставленную задачу?Мимо другой анон
>>723015Неделя на каждое, никто пизды не выдавал за несделанное, но просто на следующей практике давали новое задание. Файлменеджер, впрочем, я только сейчас сделал, и то еще комменты не прикрутил, в процессе пришлось разбираться с нодой, экспрессом, jade, ну и собственно рендером json. Все либы для рендера используют жквери, а нам его нельзя юзать.
"Сейчас" - это через три недели после получения задания. У них крупный проект закрыли и джуны стали не нужны. Мб после что-нибудь предложат, но я и сам буду искать.
>>720201 (OP)Есть желающие выполнить такую хуйню за 300 рублей?pymttel@yandex.ru
>>723095Пиздец.Я бы обосрал публично того преподавателя, который формулирует эти задания. Он же некомпетентен в край.
>>722840ясно( т.е. никакого механизма не существует что бы вот без этого echo?
>>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 протокола. А ты не понимаешь, если задаешь такие вопросы.
>>723095Ну ты и ретард, просто пиздец
>>723095Выполню за 15к + официальный перевод на счёт юридического лица.
>>723131бля, ты меня троллировать пришел? Вот не зли меня сука, если не знаешь, что сказать. Я писал cgi скрипты на си++ и клиент-серверные протоколы под микроконтроллеры, а ты мне хуету тычишь про клиент-сервер.
>>723136>писал cgi скрипты на си++ и клиент-серверные протоколы под микроконтроллеры>не может совладать с пхп
>>723095Да за полчаса бы сделал, только гм... денег у меня жопой жуй. Что ты можешь предложить в обмен?
>>723151Что тебе было бы интересно? Никаких флажков
>>723137я тебе объясню проблему, мне приходится одновременно писать наси++javajavascriptgroovyphpVBAдаже не спрашивай как я до такого дошел, но вот такая вот ситуация сложилась. Какое решение вижу я, в php должна быть ф-я, передавая в которую объект php, ф-я при создании страницы создает валидный js.
>>723155Если бы ты на всём этом писал, у тебя бы не возникало таких вопросов.
>>723162ладно, ты тут самый умный
>>723165да
Ангулар 1. Есть сервис/фабрика, которая делает запрос и возвращает значение. Как сделать, чтобы фабрике при вызове можно было передать значение, которое она бы использовала в запросе?
День добрый. Плиз хелп.Возможно ли, и если да, то как, перехватить ответ от сервера при отсылке ajax запросов из js кода?Поясняю особенности того, что я хочу получить:1.) Есть $.ajax, который отправляет запрос на сервер.2.) Сервер возвращает ответ где сериализован объект, в котором есть свойство "status".3.) Код перехватывает возвращенный объект, обрабатывает его и затем передает на дальнейшую обработку в success 1.)
>>723260Сделай свою обёртку (декоратор) над функцией Ajax, где будет происходить вся нужная обработка.
>>723261Да, это первое что пришло в голову, и я бы воспользовался этим методом если бы везде писал свои запросы, но я местами использую фреймворк syncfusion который сам собирает ajax, поэтому нужен именно перехват.
>>723260>>723261>>723264Нашел решение. Все до безобразия просто.$(document).ajaxComplete(function(event, xhr) { alert(xhr.responseText);});
Анон, помоги новичку. Нужны вкладки на js/query с одной особенностью, нужно чтобы кнопки и контент находились в разных блоках. Нужно сделать сайт не большой по нагрузке, но большой по кол-ву информации и я решил не делать кучу мелких страничек, а сделать все на одной используя вкладки в навигации.
>>723268Так это же не перехват ответа, а +! хэндлер, ты теперь свои коллбэки не будешь использовать?
Аноны, есть кто работает js погромистом? Какие требования? Надоело писать на си++. В багаже начальные знания php и javascript в размере полугода работы. Что нужно подтянуть что бы перекатиться в веб? Верстку не знаю совсем как, просто наглухо.
>>723325Посмотри вакансии, епты. Технологии очень отличаются по регионам
>>723325>Верстку не знаю совсем как, просто наглухо.Как это?
>>723329да сложно это для меня, как там дивы расставить в ряд и выровнять все просто мрак какие мучения
>>723330В крупной конторе это делают верстальщики, но знать верстку необходимо (заниматься мб и не придется), если только ты не будешь делать backend на ноде.
>>723327ну я могу сказать как на си++ работаю, дают задачу, я с ней ебусь месяц-другой потом начинаю показывать руководителю, что-то дополняем, что-то меняем, что-то исследуем. В общем работа ответственная и никто не давит и не подгоняет. Сейчас так вышло, что пришлось дописывать проект на js и java за съебнувшим коллегой и вдруг почувствовал, что все в разы проще и быстрей чем на ++, но тут видимый результат буквально каждую неделю можно получать. Как там в мире js? хуяк-хуяк и в продакшн?
>>723332>Как там в мире js? хуяк-хуяк и в продакшн?А ты думаешь, почему js стал таким популярным?
>>723333ничего не думаю, у меня нет знакомых программистов на js и веб, все лютые с++ и java энтерпрайз продакшн легаси говнокодеры
>>723335Зависит от конторы жи.
https://jsfiddle.net/j3v6ra9g/2/Насколько говнокод мой говнокод? На что обратить внимание?
>>723336ну про свою напиши, любопытно хоть как у людей то
>>723344У меня вообще здесь все стандарты вношу я и требование одно - успевать по дедлайну сделать так, чтобы работало. Но я и работаю не в IT-компании, а в IT-отделе, где всего 4 человека. Где-нибудь серьезнее могут дрючить за unit и e2e-тесты, проводить код-ревью и т.д., у меня вообще халява.
>>723343Разбей еще на маленькие функции с человекопонятными названиями и будет ок. Представь, что чувак, который будет читать этот код, не хочет разбираться, что этот код делает, а хочет прочесть английское предложение.
>>723350https://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, и не больше.
Мэдскиллз.
>>723422Бизнес-требования as is.
>>723422Врети, я мечтаю познать вторую лавку, а первая лавка - тошниловка
>>723429Прелесть пикчи в том, что ее можно интерпретировать по-разному. Сидят либо два кандидата, а в очереди - работодатели, либо наоборот - справа ищут годного низкоуровнего спеца, но никого нет, зато на PHP-вакансию собралась толпа индусов.
>>723435Можно и так интерпритировать, но это скажет больше об интерпритирующем, кек. А вообще, знать надо все, помоему.
>>723439Знать надо структуры и алгоритмы, язык приложится.
>>723440Ну так то да. А еще компиляторы
>>723444Компиляторы можно не знать в 2016. А структуры и алгоритмы не меняются на протяжении 10-летий.
>>723445Еще давай начать перечислять, чего можно не знать в 16 году. Мне вот они нужны будут
>>723413Хорошо, спасибо, Антон. Сам непривыкши к такому и наверное потому воспринимается сложнее.
>>723448Пошел вон из js-треда.
>>723453Извольте пойти в ле хуй. Я могу бывать где вздумается, пушто я гражданин всех тредов
>>723449http://jsbin.com/lalawakehi/edit?html,js,output - пример фабрики, может быть интересно, т.к. читается проще, чем прототипное наследование.
>>723457Интересно. _ с extend это что-то конкретное, или просто плейсхолдер для функции которая копирует методы в возвращаемый объект? Прототипы я таки понял, и если я правильно понимаю, то в виде фабрики методы будут копироваться в каждый экземпляр, занимая лишнюю память.
коданы, тут писали что добавление методов в класс через прототип экономит ресурсы, напримерfunction Class() {this.doSomething = function(){...}}хуже чемfunction Class() {}Class.prototype.doSomething = function(){...}это верно?
>>723478Верно, прототип это просто объект, в котором и собираются все эти свойства экземпляров "класса". И экземпляры ищут и находят это свойство в общем объекте.
>>723473>то в виде фабрики методы будут копироваться в каждый экземпляр, занимая лишнюю память.Будут копироваться только ссылки на них, а экземпляры будут храниться в замыкании. _.extend из underscore.
>>723482Что на счет цепочки прототипов при множественном наследовании?
Горит лаба по машинному обучению. Вроде, теорию как-то разобрал, но не знаю питона (специальных библиотек питона) и сильно волнуюсь, так что без понятия с какой стороны подойти. Было бы здорово, если бы кто-нибудь знающий помог разобраться.Задания типа сгененрировать данные для функции, применить к ним регрессиии и написать процедуру, которая выберет оптимальную модель регрессии для случайных данных.teaandcake@openmailbox.org
>>723493Сори, мискаст.
>>723490Не найдя в свойствах экземпляра идет поиск в прототипе, не найдя в прототипе ищется в прототипе прототипа и так вплоть до Object.prototype.
>>723487Вот оно как, понял.
>>723496Значит при прототипном наследовании оверхед на поиск (операции), а при фабрике на память (4 байта, если не изменяет память, на каждую ссылку на метод).
Аноны, а можно ли на js прочитать бинарный файл с диска компьютера?
>>723556Только если расширением
Народ, короче еле-еле на грани понимания славливаю концепцию колбэков.Сука, функция, которая определяется в параметрах функции. Рвет мозг и шаблоны напрочь. Кто-нибудь может на простых примерах (может из жизни чего взять) пояснить за них?А то в статьях все сразу для примера херачат запросы по два-три колбэка и хуй пойми где что...Или киньте ссылки на какие-нибудь простые статьи с примерчиками уровня helloworld по теме.
>>720201 (OP)Помогите пожалуйста. Как сделать так, что бы участок кода работал только при определенном размере экрана?
>>723556Не с помощью браузера (запрещено в целях безопасности). Десктопное приложение с помощью ноды может это сделать.
>>723590callback = function (result) { alert(result);};function makeAJAXRequest (callback) { //do ajax request //save to answer // pass answer to callback .... callback(answer);}makeAJAXRequest(callback); //time... ... alert!
>>723592document.onload = function () {... check resolution ...};
>>723482а сделатьfunction Class() {this.prototype.doSomething = function(){}}можно? или это как первый вариант в >>723478
>>723482проверил, вижу нельзя
>>723615>>723615Так ну с именованой функцией более менее понятно. А как и когда выполняется анонимная функция в описании?
>>723632Нет.prototype это свойство конструктора. В создаваемый объект тот же объект записывается в скрытое свойство __proto__, т.е. можноfunction Class() {this.__proto__.doSomething}но так вроде как не принято потому что а хуй его знает, я сам только учусь.
>>723691>this.__proto__.doSomething = function() {};Дописать забыл.
>>723691уже передумал, выглядит как говно :3
>>723650Тогда же, просто ты её объявляешь при вызове.makeAJAXRequest(function (result) {//do magic with result...});
>>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, а ей можно передать колбэк, в котором описано по какому принципе сортировать. Это уж не буду расписывать, в гугле и так полно примеров.
>>723725Звездочки пропали, блеать.
>>723478Что мешает сделать так?class Huita { doHuinyi(args) { }}
>>72363>>723691>но так вроде как не принято потому чтоВ ослике не работает
>>723590Для начала можешь думать, что это просто текст, который в определённое место функции вставляется.
>>723490>>723496>>723507Если ты хочешь, чтобы какой-то метод у какого-то инстанса не искался по цепочке, то объяви его как undefined в инстансе.
>>723556Браузером можно через FileAPI если пользователь сам подаст этот файл.
>>723592Проверяй размер экрана при загрузке и вызывай свой участок.Если под размером экрана ты подразумеваешь размер окна, то еще вешай хендлер на событие изменения размера окна. (по сути и разрешения экрана в индивидуальном случае может измениться посреди работы)
>>723696ахуенно ты функцию прототипом сделал. Может все же как-то так?this.__proto__ = protoObj;..protoObj.doSomething = function() {};
Чому так?
>>723861А ты ожидал, что там примитив будет, ебин? В js в таких случаях примитивы оборачиваются в объекты.
>>723861Вообще избавляйтесь от привычки использовать __proto__Это очень хуевая практика.
>>723866Чому?
>>723867Потому что потом в некоторых случаях он может себя неочевидно вести.
>>723867Потому что это просто свойство. Оно е обязано всегда указывать на прототип, и легко может быть переопределен.Для рефлексии есть специальные методы в Object или теперь в Reflect
>>723867в ie10 не работает
>>723869*не обязано
>>723870Это не имеет значения.Можно заполифилить. Но.Раньше это было кастомное свойство, котрое появилось в браузере.Сейчас его утвердили в спеке, и оно поддерживается всеми, кто поддерживает es6Но сделали это именно из прежней неразберихи.Лучше бы не делали.Это хуевое свойство.
>>723867
>>723744это что? коффескрипт?
>>723879Это es6, алё.
>>723878Лол. Проебался там в defineProperty, переопредлять надо у объекта z, но рехультат будет тот же.
Почему в названии одно, а на обложке другое?
>>723744Через конструкцию class нельзя задефайнить в прототип свойства, только методы
>>723880http://devdocs.io/javascript/operators/classподдержка не алё
>>723886Про бабель слышал?
>>723882Где? Подчеркни
>>723885Напиши в конструкторе this.property = 123;
>>723889Это свойство инстанса, а не прототипа.
>>723888Книга называется "JavaScript ниндзя", а на обложке самурай.
>>723891Ох щиет
>>723887слышал, спрашивал в треде про подводные камнирасскажи что как
>>723890Ну я на самом деле только сейчас понял, что нужно, пост жопой читал. Но у классов ещё и наследование есть, может из супер класса свойство доступно будет одно на всех.
>>723891Это ниндзя, замаскированный под самурая. Они в таких случаях даже носили в больших ножнах короткие катаны, чтобы все охуевали, как они могут.
>>723893>весь мир уже пользуется>но сейчас я найду подводные камни и начну писать надёжное стабильное приложение на ES4
>>723894Суть в том, что оно будет определяться для каждого инстанса каждый раз.И если ты хочешь чтобы во всех инстансах было например поле name которое хранит примитив, то у тебя этот примитив продублируется в каждый объект, а не будет храниться в прототипе.Тепнерь представь чтоэтот примитив - строка на тысячу символов. И у тебя тысяча инстанстов. В каждом хранится по строке в 100 символов. А в случае с нормальным старым прототипным наследование, эта строка хранится только в прототипе, в единственном числе, а все оостальные имеют к ней доступ делегированием.
>>723891js - язык с нечеткой типизацией, поэтому на обложке книги js ниндзя нарисован самурай баян-шутка
>>723898>в 1000 символовфикс
>>723900Но тогда там должен быть просто японец.
>>723897на ес5 :3
>>723902Просто человек.
>>723904Это слишком опасно.
>>723905В костюме с дипломатом.
>>723898вот кстати сегодня по советам анонов переписал свою йобу на прототипы, брат жив
>>723906обоснуй, твой бабель так же всё в ес5 переводит :3
>>723898Словом. и не только примитив.Объекты которые дефайнятся в свойства в конструкторе, тоже дефайнятся для каждого инстанса отдельно.
>>723913Так он же с подводными камнями может быть!
>>723913Не всё.Есть вещи, которые нельзя трансплировать в ес5 целиком, потому что они не полифилятся полностью.Прокси например.
>>723917а может и не быть, ты же за них не пояснил>>723919до прокси я ещё не доучил
>>723919Ещё символы.
>>723938 >>723919юзаете прокси и символы? примеры задач подскажете
>>723946Я об трансляции в es5Если подходить ко всему как, что если какая-то фича не распространена по юзкейсам, то и не страшно - с этой точки зрения трансляторы вообще тогда не нужны. Всё можно писать на es5 Я не приведу пример, где я использовал бы прокси или символы, потому что я их еще не использую, ввиду неполной поддержки везде. А юзкейс у них стандартный, всё то же самое метапрограммирование.
>>723613>>723767ясно, ясно. Вообще жопа, надо прочитать файл с другого сервера, т.е. я захожу на сервер, а он с другого сервера файл тащит, но джаваскрипт все запрещает на хуй.
>>723957Если сервера твои, то просто пропиши нужные заголовки при отдааче файла, чтобы обойти cors
>>723957>джаваскрипт все запрещает на хуйОн тебе ничего не запрещает.Проблема в твоем окружении и архитектуре твоего решения. Окружений много, и архитектуру решения надо подгонять под каждое.JS не виноват в твоих проблемах.ОС тебе например тоже не разрешает напрямую обращаться в произвольные участки памяти, говорит ли это о том, что виноват в этом какой-либо язык?
>>723957С другого сервера читать никто не мешает.
>>723961cors может мешать.
Есть 2 проекта.В 1 вебшторм подсвечивает синтаксис как на 1 пике, а во втором какую-то ошибку даёт.Оба работают нормально, но красное меня раздражает в коде. В чём проблема?ES6 в обоих включён.
>>723963В вебшторме.
>>723963Может ему не нравится путь до модуля без расширения?
Есть изящный путь показывать выделенный блок при выборе "select_box" из selecta?мой говнокод, еще и отказывается работать если таких блоков несколько ($(document).ready -> $('#fields select[data-workflow-field-type=true]').on 'change', -> val = $(':selected').val() if val == 'select_box' $('.options').show() else $('.options').hide()
>>723975сорри, вот код: http://pastebin.com/FJR1j82s
>>723977ой блять, вот:http://pastebin.com/FXukLLc8
>>723969Нет, с расширением то же самое.
>>723983http://stackoverflow.com/questions/31624567/webstorm-es6-named-import-getting-cannot-resolve-symbol-error
>>723986Вообще не то.
>>723963Какой-то баг вебшторма, короче. Обновился до последней версии и всё норм.
>>723898Ну так добавляй их прототипу в ручную, хуле, это жс.
>>724087Ты читаешь жопой.
>>724087ЧС.
>>723900А что такое чОткая типизация?
>>724092Не исключено. Покажи пример чего имел в виду.
>>724114>слышь, братишь, ты по жизни int или float?
>>724121Там нить разговора была о сахарной конструкции class из es6 и ее ограничениях (в частности не возможности через нее объявлять свойства в прототипе, а только методы). Суть объявления вручную, о котором написал ты, что и не нужен был никакой сахар для классов из es6. Он и так прекрасно эмулировался и прежде, если очень хотелось.А так он не добавил никакого удобства, а лишь добавил путаницы для новичков.
>>724128Понял, спасибо
>>723810Щито? Прото уже является объектом на стадии прогонки кода конструктора, я только добавляю этому обьекту свойство. Ты собсно делаешь то же самое
Мне кажется, или синтаксисa = (function() {switch (b) {case(1): return 'q';case(2): return 'w';}})();гораздо няшнее чемswitch (b) {case(1): a = 'q';break;case(2):a = 'w';break;}
>>724220a = ([null, 'q', 'w'])
>>724220лолa = ([null, 'q', 'w'])\[b\]
>>724222>>724223>>724224Что это? Типа вместо кейса присвоить сразу массив и брать значение по индексу? Так 1 и 2 это для примера, у меня в задаче свитчится по строке, и кейсов много. Мне показалось изящнее возвращать в свитче нужное значение, от брейков эстетически воротило всегда.
>>724230>у меня в задаче свитчится по строке,a = ({'ololo':'kokok','nnnn':'hio'})
>>724232Хватит меня тралировать!
>>724235Почему троллировать.Чем тебе не нравится вариант с ключом объекта?У свитча есть лимит кейсов по производительности.И вообще они на мой взгляд имеют смысл только при каком-то такомswitch(true) {case (/..some regexp../ig).test(string): some.action}
>>724238Уже нагуглил статеек, курю, спасибо.
Что скажете по поводу node фреймворка sails? По моему лютая годнота, целый день сегодня колупал и не могу нарадоваться. Но какие подводные камни? Кто-нибудь серьезно разрабатывал на этой хуйне?
>>724251Он второй по популярности после экспресс, полно проектов на нем.>какие подводные камни? Это типичный рельсо/джангоподобный фреймворк. Недостаток один - много магии. Иногда она перекрывает все преимущества. Но для написания магазина/блога это отличный вариант.
>>724261>Недостаток один - много магииТы имеешь ввиду танцев с бубном?>Но для написания магазина/блога это отличный вариант. А что-то покрупнее? У меня в голове давненько крутится идея одного стартапа, думал на sails его запилить, потому что ^он охуенен^ я более-менее хорошо знаю JS и мне впадлу учить другой язык.
>>724263Бля, разметку спорол. Ну да пихуй.
>>724263>Ты имеешь ввиду танцев с бубном?Нет. Я имею ввиду то, что непонятно, как оно работает под капотом. Оно работает и всё тут, а как - неясно. На экспрессе ты сам составляешь структуру от начала до конца, а здесь просто обмазываем готовое. На Сейлс быстрей и проще разработка, но непонятно, почему и как идет запрос, например.>А что-то покрупнее? У меня в голове давненько крутится идея одного стартапаПили, если это связанно с вебом. Сейлс хорошо подходит для веба, но пилить бэк для онлайн-игры я бы на нем не стал.
>>724222>>724223>>724224А что делают круглые скобки?
Подойдет ли JS как первый ЯП для ньюфага?Не научит ли он меня "плохому" подходу и стрельбе в ноги?Надо ли читать книги или статей и лекций по нему в инете достаточно?
>>720201 (OP)помогите с задачей Реализуйте и экспортируйте функцию invertCase, которая меняет в строке регистр каждой буквы, на противоположный.http://pastebin.com/mGwjWD2b
>>724313>str === str.toUpperCase()ту аппер кейс – это функция, которая возвращает всю строку в верхнем регистре. Ты во-первых сравниваешь 1 букву с целой строкой, а во-вторых посреди кода изменяешь входную строку. В документации же написано, что эта функция делает, ты в глаза долбишься? Тебе подойдёт условиеif (str =< 'Z' && str >= 'A')чтобы узнать, в верхнем ли регистре символ. Если в js так можно сравнивать чары, на самом деле я забыл.
>>724319Проще уж регэксп написать тогда.
>>724304>Подойдет ли JS как первый ЯП для ньюфага?Да, порог вхождения минимален.>Не научит ли он меня "плохому" подходу и стрельбе в ноги?Может научить, поэтому>Надо ли читать книгиОбязательно
>>724313Рабочая версия https://jsbin.com/fevuyebopu/edit?js,output
>>724321Реглярки хуйня из-под коня, если можно обойтись без них, никогда их не используй.
>>724319>str[ i ] =< 'Z'
>>724331>>724319Вакаба квадратные скобки и i убирает, потому что это теги, но ты понял.
>>724330Поясни за этот случай, желательно с бенчмарками.
>>724326спасибо
>>724334Сгенерируй строку на 100000 символов и проверь.Да и к тому же если их использовать в более сложных случаях, то они чаще всего превращаются в нечитаемый пиздец, так что не нужно приучаться.
http://pastebin.com/CfZAebvx регуляркаhttp://pastebin.com/M2kA5AqC без регуляркиhttp://pastebin.com/bFetwkV3 еще без регуляркиУ меня первое решение оказалось быстрее
>>724293Бамп
>>724354Ничего не делают, можешь опускать.
>>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сам напиши, джквери не нужна :3
>>724607Где он жквери хоть что-то сказал?
>>724468Какое жквери, на чистом пишу?
>>724607>>724624
>>724468>arr[0].style.animationНе делай так.Запили отдельный сss класс где ты резетишь какие тебе надо параметры, и навесь его на нужны элемент, а потом убери, когда надо.
посоветуйте фундаментальные видеокурсы по javascript
>>724637>видеокурсыЧитай статьи.
>>724637https://developer.mozilla.org/ru/docs/Web
Поставьте в шапку следующего треда эту пикчу.
>>724656Уже была
>>724643какие
П Е Р Е К О ТЕ https://2ch.hk/pr/res/724696.htmlР https://2ch.hk/pr/res/724696.htmlЕ https://2ch.hk/pr/res/724696.htmlК https://2ch.hk/pr/res/724696.htmlО https://2ch.hk/pr/res/724696.htmlТ https://2ch.hk/pr/res/724696.html
>>720201 (OP)Дайте сайт справочник по Жиквери