Вы видите копию треда, сохраненную 18 мая 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Этот тред посвящён главному языку будущего - 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/ для серверного кода.
Что лучше разобрать в первую очередь: canvas или svg? Вообще взаимозаменяемые ли это сущности?
Есть тут гуру angularjs?
Пишу приложение, но никак не могу понять, как организовать работу с данными.
Везде пишут, что ее лучше вынести в отдельный сервис, но как из него своевременно подтягивать изменения? Завязать все на событиях или выносить коллекции в рутскоп? Спасайте, анончики. Сроки поджимают, а городить очередной велосипед сил уже нет.
>732582
Есть примеры реализации?
С канвасом лучшая совместимость, да и востребованнее он.
Чтобы не только при вводе клавы, но и при зажатии контент в селектор добавлялся и удалялся на лету при зажатии клавишb back
http://jsbin.com/huqecazihe/edit?html,css,js,console,output
Используй готовые решения. Вряд ли вот так сходу у тебя получится достойная замена уже существующим либам.
Например https://remysharp.com/2015/06/02/bind
Ну, читай про двусторонний биндинг, смотри как делают другие и делай. Больше тут посоветовать нечего.
Лично мне кажется, что для веба, которым я занимаюсь, js более перспективный, чем питон.
Если опыта в питоне не так много, то смело перекатывайся, а если у тебя за плечами 5-6 лет серверного программирования, то я посоветовал бы несколько раз подумать
1. Имею некий элемент-образец с display:none
2. По нажатию на кнопочку отправляю гет-запрос, получаю жсон с массивом данных
3. Для каждого элемента массива делаю cloneNode того образца, вставляю нужные данные, добавляю созданный элемент в нужную часть документа.
Это норм?
инб4: веб там -->
Я год работаю на питоне, начал задаваться подобными вопросами. Если верить статистике зп, то они примерно одинаковые, при этом на питоне куда меньше вакансий, а требования к работникам бывают куда выше. Лично моя точка зрения.
На твой взгляд JS и фронт энд лучше? Можешь рассказать почему? Извини, что такой дотошный.
Работы больше. Многие работодатели скептически относятся ко всяким питонам предпочитая им пхп+жс. Для себя, конечно, есть смыслы развиваться в обоих направлениях, но если планируешь получать за это деньги, то фронтенд со всеми вытекающими.
Не слушай того. Пхп очень даже норм, просто слишком много прощает отсюда и обилие говнокода.
На любом языке можно писать говнокод. Проверено, лол.
Да я пошутил плоско, так-то. Вопрос у тебя глупый, прости конечно. Я не понимаю, что тебе мишает пистаь на джсе и на питоне? Если тебе не нравится питон и нравится джс, то пиши только на джсе. На фронтенде работы больше, да, но и работы больше. Т.е. с тебя спросят за верстку, за общие (а иногда глубокое) понимание проектировки интерфейсов. У большинства ребят, которые пишут бекенд с этим большие проблемы. Ты конечно можешь типа писать только бекенд джс, но кому ты нахуй нужен тогда.
Я почти во всех проектах, которые пишу сам, использую рельсы на бекенде, т.к. рельсы это лимузин по сравнению с нодом. Сейчас пробую гоу для приложения, где надо много цпу задач в конкаренси обрабатывать.
тл;др никто никуда не "уходит", люди пишут кто на чем горазд вот и весь сказ.
Не обязтельно.
Заебали совать везде свой вдом. В мелких задач он нахуй не нужен, достаточно уметь обращаться с обычным домом, правильно выстраивая операции.
>>732651
Это значит не дергать свой документ каждый раз, когда тебе надо получить доступ к твоему образу.
То есть либо создал элемент, но в документ не вставил.
Либо если у тебя этот образец из документа уже, то храни на него ссылку.
Ну на работе я не выбираю на чем писать и что писать. Как правило есть задача и стек технологий, дальше кручусь, делаю.
По идее если во фронте делать даже и больше, я же все равно даю какую-то свою оценку, сколько мне нужно на выполнение, так что больше работы надо делать, больше времени будет потрачено.
На вакансиях фронт энда именно знание питона обычно не главное требования, так, плюсик.
На текущей работе я по факту все равно на всем херачу, верстку в том числе.
http://plnkr.co/edit/pjXsKqDTVYdLtEId8oX7?p=preview
мне кажется о чересчур избыточный и можно было проще
Функции ок разделены, код простой и легко читается.
Единственный вопрос, который у меня возник при чтении - почему функция createError может не создать ошибку? Думаю, что стоит выносить проверку на уровень выше перед вызовом. А createError пусть создает ошибку, как и должна. Что-нибудь типа if (checkError()) createError().
Socket.io, няша.
Зависит от задачи, может быть взаимозаменяемым, а может и не быть. Освой и то и то, но начни с svg, т.к. осваивается быстрее.
>>732650
Вот конкретно в этой задаче клонирование ноды не очень ресурсоемкая, т.к. перерендеривать не надо, можно так делать.
Что ты несешь вообще?
Что хранить в объекте? Речь о дом-узле. Расскажи мне какая разница, что ты будешь хранить описание узла и потом все равно вызвать сотни раз конструктор по этому описанию, или ты будешь хранить готовый дом узел и клонировать его блядь?
createElement это не хранение в доме. Это блядь неотреднеренный элемент.
Совсем поехали со своими виртуальными домами. Не умеете обычным пользоваться.
Желателен опыт в ангулярах.
Резюме пилите на: spaceship026ex44ANUSr>fyandexPUNCTUMbTmru
Да пошел бы ты в жопу.
красиво получилось
>но как из него своевременно подтягивать изменения?
на сокет ио это делается за 3 строчки. Хуёвый ты фреймворк выбрал
50 баксов в час, если нужен даун.
сверстал пока вариант попроще, буду пилить логику, допилю - добавлю кнопок
>>732807
спс, попробую
Да ниче, не парься))) Хуйня галимая непацанская этот ангулар)) Юзаю сокетио дохуя лет уже))) Проблем нет))) А эти амежки просто обиженые))
Не в коня корм.
я хорош ващето, мамка твоя оценит
Почему он отвечает
>Uncaught TypeError: Cannot read property '0' of undefined
?
Есть дата. Она отображается так.
"15 май 2016"
Мне нужно "15 мая 2016,". И так все даты на странице заменить. Код выше это только заготовка. Но и она что-то не работает. Мне в сторону регэкспов копать?
>new RegExp(month,'gui')
g - global (по всей строке, т.е. несколько вхождений)
u - unicode
i - ignore case (игнорируя регистр "а" == "А")
>Started GET "/items.json"
>Sphinx Query (3.4ms) SELECT FROM `item_core` WHERE MATCH('s*') AND `sphinx_deleted` = 0 LIMIT 0, 20 OPTION max_matches=50, ranker=bm25
>Sphinx Found 4952 results
Славься Андрюха! На реактоне пишешь в серч филд по 10к базе и автосаджешенны рендерятся за миллисекунды. Почти как в ГУГЛЕ. Обосраться, как круто.
Да нет фишки, как бы. Сфинкс очень быстро ищет в базе данные и реакт их очень бытро рендерит. Получается ТАКОЙ ТО UX. Завтра запушу демку, заказчики катарсис испытают после той поделки с которой они работали, где джойн джойном погонял и скульный запрос по 30 секунд компутился в хуёво свёрстанную хмтл страничку.
Сфинкс - это поисковик по базе или сам полноценная база? Хотел бы прокачать свой постгрес
Сфинкс это годный поисковик на плюсах. Я в постгресе, собственно, и ищу.
https://ru.wikipedia.org/wiki/Sphinx_(поисковая_машина)
var Jopka = (function () {
function Jopka() {}
return Jopka;
}());
вместо простого var Jopka = function () {} ?
Я не спрашивал, что оно делает, это и дауну понятно. Вопрос: зачем так делать?
Присваивает переменной Jopka результат коллбека, который внутри определяет функцию Jopka() и возвращает ее, что эквивалентно var Jopka = function () {}.
Так переменные будут и так либо внутри конструктора, либо добавлены через Jopka.prototype.anus = ...
Если только для структурирования.
Сразу видно программиста jquery. Ну-ка марш под шконку и не мешай умным людям обсуждать вопросы архитектуры.
Есть страничка со ссылкой вида /page?id=xxxxx. Предполагается, что примитивный сервер при получении подобного get-запроса просто отдаст дефолтный page.html, а дальше уже js на клиенте запросами к API загрузит всю нужную информацию по этому айдишнику.
Вопрос в том, как этот айди клиенту передать? На сервере впихнуть его в отдаваемую хтмлку (либо в id какого-нибудь основого элемента, либо в <script>)? На клиенте вытащить из текущего window.location'а? Или есть какой-то ещё способ?
Из локейшена достать парамсы проще всего: location.search отдает все, что находится после ? символа. Можешь и в data-id аттрибут вставить. Это не принципиально.
Суть в том, чтобы и все остальное окружающее говнецо не было доступно внутри жопки, а не только в том, что из нее будет наружу протекать.
То есть отдельный проект с RailsAPI и отдельный проект с каким нибудь хипстерским JS-фронтентдом.
Делается это для того чтобы делать несколько(неопредленное количество) сайтов на разных доменах и хостингах, которые в целом имеют одинаковые функионал, но разные роут, дизайн, сео.
А так же чтобы не плодить на каждом хостинге по инстансу сервера котоорая будет жрать память, деньги за хостинг, синхронизацией данных между друг другом и т.п.
В целом хочу один ёба хостинг с рельсами и куча всяких говнохостингов, которые возможно даже PHP не воспринимают, на которых лежит html+js+css, которые соеденяется по REST API с главным.
Просто опыта такого нет, фремворков JS не знаю вообще, когда смотрю на список этих фреймворков просто не понимаю что из них можно выбрать, что говно, что нет, их какое-то большое количество и в чем разница между ними неясно.
Подскажите куда вкатиться?
в анус своей мамаше
НИНУЖНА
убери аппенд из цикла
>только книгами
Только книгами это "без видео и/или инструктора", или "без кодинга"? Если второе, то норм, зачем кодить, лучше книгу прочитать.
ну я смотрю примеры в книги, и почти после каждой главы есть задания. Вот в книги Фленагана вроде только примеры. На кодеварс бывает что-нибудь решаю, но редко что попадается для еще зеленого анона. Другие методы практики пока что не нашел. Может подскажешь?
var Jopka = (function () {
var x, y, z;
function Jopka() {}
return Jopka;
}());
Переменные x, y, z останутся в замыкании и доступа к ним не будет.
Жирным. Не полу.
А лучше юзать первый ангуляр или второй? На чем меня возьмут на работу быстрее?
Серьезно. Востребованность жкверистов куда большая
>if (0 <= s1 < 60 || 0 <= s2 < 60 || 0 <= s3 < 60) return 'F';
>// D console.log(getGrade(65,70,59));
У тебя тут уже s3 попадает под условие для F
Дальше думай сам.
Может тебе стоит вместо OR использовать AND
Какой вкусный бургундий неосилятора.
Встречный вопрос.
Почему каждый неосиливший ввиду своего скудоумия и стереотипного мышления, умеет только исходить говном, вместо того, чтобы либо отказаться от технологии и выбрать то, что ему нравится\удобно, или вместо того, чтобы научиться в то, что он неосилил?
У вас что, комплекс неполноценности?
Вопрос выбора средств решения, увы, не зависел от меня, поэтому пришлось писать на ноде. Так что там с проектированием архитектуры на ноджс?
Ты не ответил на мой вопрос.
Ты понимаешь, что на говно исходят от того, что не понимают, глупые люди?
Ты бы мог придти и задать свой вопрос без всяких своих субъективных оценочных суждений.
Но ты именно подчеркиваешь свою перманентную неприязнь, что само собою показывает то, на каком уровне твое развитие.
Я могу привести тебе аналогию.
Например, я люто не люблю сыр. Но моя девушка его обожает. Я хочу приготовить какое-то блюдо используя сыр, но так как я его не люблю, я совершенно не знаю что из него можно приготовить и как. Я иду к людям, которые умеют и знают.
Как ты считаешь, если я приду и начну говорить - сап, чуваки, ваш сыр лютое говно. это же просто самый бесполезный продукт, который даже нельзя отварить. нахуй он вообще нужен? есть где почитать на эту тему и о том, что из этого говна можно сделать?
Ты считаешь это здравое поведение не глупого человека?
Собственно я к тому, что на твое оценочное мнение всем плевать. И если бы пришел и задал вопрос по существу, я бы даже был непрочь тебе что-то посоветовать.
Но ввиду твоего поведения, отпадает всякое желание. Потому как это показатель того, что с большей вероятностью ты идиот. А следовательно моя помощь будет пустой тратой времени.
Да даже то, что я тебе все это объясняю - пустая трата времени, потому что вряд ли ты что-либо выведешь из всего сказанного. Может быть только побугуртишь еще больше.
Удачи.
Два чаю этому господину
>>733206
Ты мог бы сразу сказать, что просто не знаешь ничего о проектировании ноджс-приложений. Но дело не в том, что этого не знаешь ты. Дело в том, что этого не знает никто. Разработчики ноды решили, что они умнее всех остальных и плевали на проверенные временем решения, типа ООП или ФП. Однопоточная асинхронность, сказали они. Правда, очень быстро появились библиотеки, которые старательно оборачивали всю асинхронность в понятный, последовательный стек вызовов. В этом что-то есть, правда? Одна из главных фич языка зачем-то прячется за синхронными обертками. Это как если бы для С++ написали библиотеку, которая трансформирует классы в процедурное программирование.
> Одна из главных фич языка зачем-то прячется за синхронными обертками
Затем, что так приятнее воспринимать. Асинхронность хороша не для разработчика, а для работы приложения, странно, что ты этого не понимаешь.
И использовать async/await (которые уже почти что завезли) не обязательно, можно юзать и промисы.
>Однопоточная асинхронность, сказали они
Она может быть и многопоточной, если использовать кластер.
Ты аутист? Чем проектирование под ноду отличается от проектирования ПО в принципе?
Стоит ли осваивать руби либо лучше писать бек на ноде со всякими express?
Та ты шо)
А там ориентир на браузеры и вот это всё? Меня больше нода интересует.
Если тебе именно js, без верстки и т.д. то можешь прямо с learn
Если надо еще html,css и прочие штуки осваивать - то начинать с htmlacademy и ее интенсивов (там даже js будет)
Мне вообще автотесты для сервера писать нужно. Я вот хуй знает чо учить для начала, чтобы вкатиться в ноду потом и не учить лишнего.
>Она может быть и многопоточной, если использовать кластер.
Почему меня никто не опроверг? Асинхронность всегда в одном треде, это инстансы ноды могут быть в разных процессах.
Ты путаешь все на свете.
Асинхронность никак не подразумевает априори многопоточность. Она может быть как однопоточной, так и многопточной, или реализовываться кластерами процессов.
Ты вообще понимаешь, что даже на уровне ОС все твои процессы не выполняются одновременно и уж тем более потоки. В единицу времени выполняется по задаче на ядро.
Асинхронность это концепция. Это парадигма, если хочешь.
Кластер на ноде, создает по инстансу на ядро, но задач в них может быть бесконечное множество. Просто эвентлуп ноды берет на себя задачи планировщика ОС.
Алсо, рантаймы в других языках, например в го, делают примерно то же самое, просто из коробки.
Они тоже берут на себя задачи планировщика.
На ноде, тебе просто надо немного поработать руками, чтобы скомпоновать удобную архитектуру.
В низкоуровневых языках ты создаешь ОС-треды, и там за планировку их отвечает ОС.
Не надо все мешать в кучу. Везде свой подход.
И на ноде при желании ipc процессов можно делать через разделяемую память, что будет очень быстро.
нихуя себе новичок
вы в следующий раз уточняйте, что для вас все кто изучает язык меньше пары лет - новички
Так мне нужно писать, но с джаваскриптом я дела не имел. Только питон на уровне юзер-скриптов для всякой хуйни.
с уроками по ноде все плохо и вообще нода на своем птичьем языке пышется
и если урок старше пары лет, то примеры из него не будут работать
ну у меня такое впечатление создалось
Один инстанс - один процесс. Асинхронность ответов сервера будет в рамках одного процесса. Это я и имел в виду.
>И на ноде при желании ipc процессов можно делать через разделяемую память, что будет очень быстро.
Скинь ссылку что ли?
У тебя ни в одном языке не будет выполнятся параллельно задач больше, чем у тебя ядер физически есть.
Неодновременная параллельность не может быть параллельностью. Ибо они выполняются в определенной очередности.
Асинхронное это не в смысле непараллельное, а в смысле не обязательно последовательное.
$watchCollection?
Ну так да. Но если инстанс один, то никакого параллелизма не будет.
В своё время заюзал и то и другое, но больше canvas попёр.
Явное приведение типов, например через конструктор Number.
Еще есть стандартные функции parseInt и parseFloat, чтобы из строк получать числа. Они работают со системами счисления, вторым параметром задается.
5 лет C++, год C# и сижу как дурак, не могу книгу для сраных дошкольников понять, каждая вторая задача - сраный рандом из скобочек и биндингов, сука.
>5 лет C++, год C# и сижу как дурак, не могу книгу для сраных дошкольников понять
Лол, а я после js вкатился в c# очень быстро.
{ } {} ;) }{;)
>писать дольше
Самый нелепый аргумент. Даже текстовые редакторы автокомплитят, не говоря уже про полноценные IDE. Писать parseInt() в хуйлиард раз более экспрессивно чем ссаные плюсики.
Это ты сейчас так говоришь
хаха ясное дело. После этого говна вкатиться в здравый строго типизированный язык, где всё разложено по полочкам - много ума не надо. А вот заставить мозг работать с программами в формате помойки - это тяжело.
если не сложно, немного подробней. Я только 3 дня как начал учить на learn.javascript.ru так что не понял что ты говоришь.
верю, но как же тяжело въехать во все это. И это ведь только базовый синтаксис, а ещё хуиллион фреймворков каждый написанный на коленке и возведенный в культ. Боже, я слишком стар для этого дерьма. Но надо учиться...
Неосиляторство, походу, заразно. По-твоему метеор/ангулар/реакт на коленке писаны?
Забей на фреймворки, выбери один и выучи. Ангулар 2/реакт - сейчас выбор из них, остальные по факту не нужны.
Бамп вопросу.
https://github.com/lukehoban/es6features
> Unlike functions, arrows share the same lexical this as their surrounding code.
Еще область видимость переменных через let будет на блок, как и во всех других ЯП, а не мозголомающе на функцию через var.
Бери лучше нормальные книги, а не какой-то каловый сайт, да ресурсы читай, а то учишь прошлую спецификацию. Пока выучишь, все уже на другом писать будут.
ES6 на процентов девяносто уже современными браузерами поддерживается, не говоря уж про ноду.
как человек, изучающий JS уже 3 дня, могу сказать что вообще пофиг. Единственная проблема, что они написаны на JS.
Это типичная болезнь плюсошвали, ака "КАКОГО ХУЯ ТУТ НЕ ТАК КАК Я ПРИВЫК".
коллега посоветовал V8 (движок JS) + nodejs/nan. Говорит, что очень перспективно. Наебал или норм?
>>733607
спасибо, гляну. Но я хочу хоть что-то базовое понять, что бы какая-то база была. Иначе банально страшно копать дальше.
>>733604
мир меняется. Лучше быть быдлокодером с JS чем быдлокодером без него. Да и просто интересно, пропускаю всю модную движуху из-за своей тупости.
c = ++a; alert(c); // 2
d = b++; alert(d); // 1
То есть, если я присваиваю переменной c значение ++а, то меняется не только значение переменной c, но и инкрементируется значение переменной a? Схуяли?
a++ это тоже самое что a = a + 1
в обеих твоих случаях меняется значение правой переменной, просто есть пре и пост инкремент
>коллега посоветовал V8 (движок JS) + nodejs/nan. Говорит, что очень перспективно. Наебал или норм?
Тебе не придется выбирать движок, лол.
А, пойняв.
А ещё ты тупой даун и не можешь такие простейшие вопросы нагуглить, ничего у тебя в кодерстве не получится, можешь идти на стройку уже.
Так это не грубость, а мотивирую их так.
все идет по плану, завтра рассчитываю выкатить алфу
про то что дохуя ифов - знаю
можно, но я пока не дорос
это ты еще не знаешь что я learn.javascript.ru уже пятый месяц почти каждый день прохожу и еще не прошел
Более чем в два раза меньше, что менее чем в два раза больше, чем до этого.
Лингвистический говнокод, спешите видеть.
дай гихаб заценить
Но вот первый такой момент который меня ввел в ступор и я нихуя не могу осознать/понять программу и зачем так делать.
Нахуя там делать так, чтобы ФУНКЦИЯ выводила ФУНКЦИЮ, которая ВЫВОДИТ значение переменной из первой. Чеблять? аж горит.
дополнение: и почему эта вторая внутренняя функция не имеет названия?
Тебе просто демонстрируется пример использования лексикал скоуп, все юз кейсы после. Встречный вопрос, зачем тут название внетренней функции?
ну может её нужно будет отдельно вызвать где-то? или так нельзя?
Результатом вызова внешней функции будет внутренняя, она и присваивается в качестве значения в выражении var a =wrap();. Внутренняя вызывается через a()
Тебе надо понять, что такое возврат значения функции и что другая функция фактически является особым типом значения (объектом крч)
Внешняя функция ограничивает область видимости, внутреннюю ты можешь (как и локальные переменные) использовать только внутри нее. Имхо, тебе рано в замыкания
Ну читаю книгу эту и тут реально как-то блять всё написано, будто я не дебил изначально а уже знаком с чем-то.
Я не думаю, что там не был описан принцип областей видимости. Если не пошло, попробуй например Кантора или Фленагана. Если дибил изначально, то лучше Кантора learn.javascript.ru
Там есть такое "Короче говоря, в каждой локальной области видимости можно увидеть все области, которые её содержат. Набор переменных, доступных внутри функции, определяется местом, где эта функция описана в программе. Все переменные из блоков, окружающих определение функции, видны – включая и те, что определены на верхнем уровне в основной программе. Этот подход к областям видимости называется лексическим."
Но я это немного у себя в голове прокрутить не могу.
Понял что есть функция, есть вложенная функция. Вложенной функции видно переменные из родительской, но например не из такой же вложенной соседней функции.
Точно также и вообще с переменными - в функциях у них как бы свой мирок, а в основной программе свой.
Не пойму просто нахуя возвращать значение функции которая возвращает значение переменной из родительской функции?
Не бугурти сильно, концепция действительно поначалу часто ломает мозг (мне, например).
>Не пойму просто нахуя возвращать значение функции которая возвращает значение переменной из родительской функции?
Суть в том, что иначе ты доступ к этой переменной теперь получить не можешь. Её ты можешь получить только через эту внутреннюю функцию. А механизм работы такой: если функция1 возвращает функцию2, то последняя имеет доступ ко всей инфе, обозначенной из функции1 (называется замыканием), даже несмотря на то что выполнение функции1 давно закончилось. Чекни Кантора действительно, там примеры лучше и их больше.
А если не понятно зачем оно вам надо так может и действительно не стоит тратить время?
https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Examples#Example_5:_Event_Propagation
Я ж тебе первым ответом написал, это пример.
Смотри, каждый раз вызывая обертку мы передаем ей аргумент (число), каждый раз эта обертка возвращает внутр функцию, которая смотрит на это число и возвращает его. Так вот пример тебе для того, что бы ты понял, что каждая внутренняя функция разная, у каждой разная область видимости _на функцию обертку_, а так как в каждой обертке были разные значения, вызов каждой внутр функции возмет разные локальные переменные. Это и есть замыкание.
Если ты не понимаешь этого, объяснять тебе более сложные примеры не имеет смысла, воспринимай это как просто пример.
Поддвачну относительно того, что js легко изучался от верстки. А сейчас почему-то все идут изучать наоборот или вообще в разнобой.
Atom
Откуда возьмется фактор? Мы его передадим при вызове обертки. Обертка вернет функцию (то есть блять не вызов функции а ее описание, хз как проще объяснить), ты эту внутреннюю функцию запишешь в переменную, и теперь ты можешь с помощью переменной вызвать() эту ебаную функцию с аргументом, который будет использоваться как намбер. Ебаный в рот, рано тебе в замыкания, Читай еще раз с начала
Все же просто. Ты объявил функцию, которая возвращает другую функцию
>function multiplier(factor) {
> return function(number) {
> return number factor;
> };
>}
теперь вызов multiplier с аргументом 2 вернет
функцию
>function(number) {
> return number 2;
> };
а с аргументом 3 будет
>function(number) {
> return number * 3;
> };
и так далее.
а потом ее записали в переменную и вызывают уже передавая ей аргумент number
Все же просто. Ты объявил функцию, которая возвращает другую функцию
>function multiplier(factor) {
> return function(number) {
> return number factor;
> };
>}
теперь вызов multiplier с аргументом 2 вернет
функцию
>function(number) {
> return number 2;
> };
а с аргументом 3 будет
>function(number) {
> return number * 3;
> };
и так далее.
а потом ее записали в переменную и вызывают уже передавая ей аргумент number
Вру, там он вообще не определен.
Да, я мудак. Ушел учить контексты со скоупами вместе с остальными.
Да, делегирование.
Только у меня не одна менюшка, а куча разных групп кнопок. И я думаю повесить обработчик на body, а потом уже разбирать.
В общем, работаю веб разработчиком на бек энде, пока ньюфаг, поэтому целый день пишу тесты.
Дадут ли мне пизды, если буду всякую хуйню писать в полях для тестирования? Например свои контакты и шутки за 300? (хотя технически тесты правильные).
Кто вообще читает эти тесты потом, кроме самой разрабатывающей команды?
1. Что такое ф-ия "обертка" для простых типов типа Number и String, которая заставляет их вести себя как объекты.
2. Как понимать, что при вызове конструктора создается пустой объект, который затем чем-то там инициализируется. Что это за объект?
аноны, выразительный Java script нужно после фленегана читать? Если да, то какие профиты, я уже охуел осваивать фленегана, а у меня в бэкграунде 10 лет быдлокодинга на си++ и полгода быдлокодинга на js. Сук, знал бы что он такой навороченный, хуй бы взялся, так что могу посоветовать новичкам ни в коем случае не читать фленегана, читайте что поменьше, страниц 200-300 вполне реально за пару недель освоить, дальше срочняком "ебашьте свой проект" что бы все в голове улеглось и вы поняли что и зачем. Вот я почитал про методы функций callee и bind, но вот так и не понял "НА ХУЙ ЭТО В ПРОДАКШЕНЕ МНЕ НАДО", а вот фишки с map и reduce - божественны!
callee - устарело
или ты call имел ввиду?
call, apply для вызова в нужном контексте выполнения и передачи аргументов
bind - для создания функции с нужным контектом выполнения
ньюфаня, изучил только htmlacademy и начал читать Кантора
> (true).toString() === Boolean(true).toString()
> (1).toFixed(2) === Number(2).toFixed()
Обычные встроенные объекты.
2. Обычный пустой объект у которого прототипом является то, что у твоего класса в prototype
ты это в рабочих проектах использовал? Мне так в голову не приходит, где это можно воткнуть.
Бинды часто приходится использовать для передачи контекста, ибо
var self = this;
не канонично. Благо дело при помощи arrowed functions можно контекст передавать.
Другой анон.
function yoba (x, y, callback) {}
Как ты собираеься вызывать коллбэк, например?
Или как ты изменишь контекст this у какой-нибудь функции?
Или как ты метод одного объекта применишь к другому объекту?
Я еще не работаю. В интенсиве от академии было. Вот например про bind
Общетематический JS джихад.
То есть эвент идет снизу вверх (от чайлда к паренту), если остановить пропагацию, то сработает только евент чайлда?
Если тебе нужна фабрика функций.
Все, что ты передаешь аргументом функции, хранится в её локальном скоупе. Пока есть ссылка хоть на один элемент из её внутреннего скопа (var a = multiplier(2); - это ссылка), garbage collector держит этот скоуп в памяти. Если ты сделаешь a = null, то скоуп удалится, т.е. значение 2 исчезнет.
Прикольно, раньше не юзал. В копилку к pointer-events.
Мне почему-то кажется, что он навесит один обработчик, а потом из него все равно будет вызывать кучу других функций в зависимости от таргета.
Тем, что можно сделать дженерик-функции, а обработчиков будет столько, сколько элементов.
Обработчик и есть функция.
Ни что не мешает использовать одну и ту же функцию как обработчик для разных элементов.
А случае если у него есть какая-то логика завязанная на таргет, то он его все равно будет чекать в общем обработчике.
Блядь, один лиснер с кучей хендлеров лучше, чем просто куча лиснеров и куча хендлеров.
Пиздец демагог.
>>733989
Если все обработчики одинаковы, то разумеется имеет смысл вызывать один общий.
А если у него разная логика для этих 10 тысяч, и он хочет их чекать и потом вызывать из общего другие, то нет.
Я просто видел случаи, когда люди перекладывают работу эвент-лупа на такой общий обработчик, потому что им вбили в голову что работа с домом тяжелая, и они считают что события у дом элементов тоже тяжелые. И городят потом функции со свитчами.
Во вьюхе у меня есть метод биндинга событий к коллбекам, который вызывается контроллером при инициализации. События именованы как экшены. Получаем:
1) Клик по body
2) Проверка target на data-action
3) Если определено, идет fire нужного коллбека, который по сути является методом контроллера, который вызывает нужный метод модели и пробрасывает ей следующий коллбек
Анон без свитч-кейс логики реализовал, на совпадении имен функций в массиве хендлеров и значений в data- свойствах.
Ну и отлично.
Ну-ка попробуй в своем калькуляторе сложить 0.3+0.1
Он у тебя вообще не вводит флоаты у которых ноль целых
У службных слов типа Infinity можно стирать буквы
А еще отрицательное число нельзя ни на что разделить. Я гарантирую это, сам попробуй.
это уже другой баг, тоже исправил
0.3 + 0.03 должно получиться 0.33
А у тебя совсем беда получается
На нем можно запилить архиватор бабушкина?
Второй пикбыл результатом от сложения 1....5 + 1...5
Отрицательные числа не делятся. Равно не нажимается
да там с отрицательными числами вообще жопа вышла, они даже толком не вводятся
так сразу не исправлю
>>734036
исправил
>оно не отрицательное
Я тебе и сказал, что там не отрицательные. Там не целые.
>это какая-то фишка джаваскрипта
А js все правильно получается, остается только округлить. А у тебя откуда берется целая часть 3 при сложении где целых частей нет вообще и быть не может
>Я тебе и сказал, что там не отрицательные.
я жопой читал
>А у тебя откуда берется целая часть 3 при сложении где целых частей нет вообще и быть не может
.toExponential(10)
Чтоб тебе цены в магазине твоим калькулятором считали.
Чет он заэкспайрился через несколько минут. Держи rev0.000000002.
http://embed.plnkr.co/vtCsvVeCex10ERL8yELd/
>откуда берется целая часть 3
она не целая, там написано e-1, типа надо 1 раз на 10 разделить чтоб понять что за число
>>734070
яж согласен, что баг имеет место быть, думаю, ответ в консоле с этим связан и я пока просто не допер
ну хороший рабочий калькулятор, могу ток позавидовать скорости написания, чо еще сказать-то
интересно
Если воспринимать арифметические выражения как естественный язык, а суть операций как философию и значения, как в естественном языке, то математика не нужна.
тебе же не надо никаких наук, чтобы из выражения - красный мяч - представить мяч красного цвета.
точно так же ты должен по выражению 344472 + 1222345 безусловно понимать, что речь идет о 1566817
Ебал.
Зачем изобретать велосипеды, когда есть написанные до тебя семантические парсеры?
BigEval.js например.
Вот в данный момент времени кушаю картошечку с огурчиками, спасибо.
До начала времен все уже было, но Бог все же решил изобрести велосипед. Зачем?
Нах тебе всякие vapor.js, когда eval съест любое выражение: eval("1+3-421") == -417
>ах тебе всякие vapor.js, когда eval съест любое выражение
Твоя мамка сказала что ивал небезопасен к XSS
Его создания тоже были созданы до него.
Он их пересоздал по своему.
Потому что у него было всего 6 дней. А за 6 дней ты хуй выучишь весь зоопарк технологий, все билдеры пакеры и прочую поеботу.
И как ты мне в браузер свой код передашь?
Как ты этот XSS заюзаешь, сучечка?
Где-то пернули, что eval небезопасен, и теперь ты ссышься его применять везде.
Если бы на выражение можно было давать ссылку, то да. Но когда все write-only, никак не заэксплойтить.
Ну вон смотри, разработчик калькулятора проебал момент, когда можно было ебашить несколько точек подряд.
Допустим он проебал бы момент когда можно было бы ебашить несколько знаков препинания.
А если вдруг так еще будут квадратные скобочки, то это вообще рай.
хотя, при многократном клике на умножение он не должен ничего делать
и инфинит тоже не должен выдавать
пожалуй, это тоже баги
Это равносильно тому, что ты откроешь dev-консоль и вобьешь выражение туда. Получится хакнуть только самого себя.
Это уже будет нарушение УК РФ, увольте.
Ты что, даун? Можешь с таким же успехом можешь свои деньги со своей карточки украсть
есть такое дело, скорее , но верстка не ломается
алсо, это связано с тем, что в джс достаточно большие числа считаются бесконечностью
позже об этом подумаю
Своя дочь - это такая дочь, биологическим отцом которой, являешься непосредственно ты.
Ты вообще ничем своим распоряжаться не имеешь права.
Тебя даже за попытку убийства самого себя закроют в психиатрическую лечебницу.
> Тебя даже за попытку убийства самого себя закроют в психиатрическую лечебницу.
Если ты этого не хочешь и тебе больше 18 - не закроют
Эх, вспоминаю былые времена нагиба лайнейджа.
Пользовательская менюшка была написана на html. В <a>-тегах были ссылки на всякие безопасные методы вроде "scripts.showPage()". Так вот, список методов не проверялся и можно было вызывать произвольные методы ядра, подменив значение через пакетник или дебаггер. Знатно я тогда пофанился.
Самая мякотка: нашел метод showHtml(file), который показывал хтмлку строго из директории server/html. Так я задал относительный путь ../config/gameserver.bat. Тупая джава его зарезолвила и выдала мне конфиг сервера с паролями от бд.
Но админ, в отличие от разраба, был нормальный и прямой коннект к бд был разрешен только для некоторых айпи.
Закроют, на 28 дней как минимум.
Еще и на учет могут поставить после освидетельствования.
Я тебе точно говорю.
Если даже это была попытка без привлечения внимания общественности, то все в руках скорой. Но у них все записывается, и на первый раз могут закрыть глаза, а на второй-третий обязаны забирать, тебя не спросят.
Cт. 29 Закона РФ «О психиатрической помощи и гарантиях прав граждан при ее оказании»:
«Основания для госпитализации в психиатрический стационар в недобровольном порядке
а) его непосредственную опасность для себя или окружающих, или
Лел, "///2" интерпретируется как комментарий.
>>734150
Да, но я говорю как по факту. Может в ДС за такое и закрывают, но за МКАДом тебя отправят домой, потому что кормить и лечить тебя 28 дней - это дорого.
Живу за МКАДом, закрывали подругу за порезанные вены, ей было 20.
Закрывали отца у знакомого за передох феназепамом.
Так что зря ты так думаешь.
Наканецта
Здравствуйте, товарищи. У меня такой вопрос, с помощью чего можно вмонтировать в страницу нужный DOM элемент навсегда, чтобы его видели все пользователи ?
Тоесть пользователь нажимает на кнопку и через событие на экране что-то появляется, но при обычных раскладах, оно пропадает после перезагрузки страницы. Как сделать так, чтобы вызваный через событие ДОМ элемент остался на странице, даже после её перезагрузки и был виден другим пользователям. М ?
Через сервер.
Повторюша - дядя Хрюша.
Для аутиста, поясните. Поставил я вебшторм. Как заставить его запускать простейшие яваскрипты? Эта собака, как я понял, пытается их пропустить через node.js с логичным результатом. Либо я чего-то не понимаю?
Тебе уже ни что не поможет.....
Я умею читать сообщения в консольке. Спс, Вася. Неужели никак нельзя заставить его генерить простейший HTML документ + запускать в браузере автоматом изкаробки?
Я вебштормом не пользуюсь, но погугли что-то на тему лайв-вью, лайв-релоад и все такое лайв.
Тебя ебет?
Я надеюсь, что ты онкобольной.
люди чем угодно готовы заниматься, лишь бы не писать код
Ты всегда такой уёбок?
ЖС исполняется в ноде и браузере. Нода тебе не подошла, значит нужен браузер.
А, у нас тут трал, оказывается
Потому что оптимизировали ввиду расширения всех спек.
А вообще он и раньше не очень тормозил.
Люди просто не особо понимают, что и когда надо и можно дергать. И что за какими-то изменениями узлов, пойдут всякие неявные рефлоу и еже с ними.
Решил проблему установкой дополнения под хром. Спасибо, Анон.
в сек
Он перенасыщен. Для продакшена, конечно, заебись, тайпскрипт и все такое.
С помощью vim'а, например.
LiveReload тебе в помощь. А вообще, посмотри кастинг Кантора, он там учит пересобирать галпом.
Какая ты шлюха. -_-
Поддвачну пожалуй, хоть и сам нуб, но некоторые вопросы из заданных выше постыдился бы задавать, ибо совсем уж базовые вещи
Давно известный факт, что современная молодежь не умеет в самообучение и хотя бы гуглить.
Позорно даже не то, что они задают тут эти вопросы, а то, что им на них отвечают.
На код не смотрите.
http://embed.plnkr.co/F43HoAkCaQ8re2Jgqqig/
то мой пост. лол. в чем троллинг то? типо он не за 15 минут его написал?
алсо, проверял тока в хроме, так что в других браузерах может хуево работать
ок, поправил, в индекс вывалил скрипт случайно
будь добр, кинь скрин, я не понял
кстати, запилите на битбакет, будут анонс делать калькуляторы в промышленных масштабах
рантаймджс куда интереснее и концептуальнее
анончик, если потыкал и ничего не сломалось, отпишись, чтоб я знал что все ок и продолжил пилить дальше
респект, что на код не успугался глянуть
я не понял про цикл. Я в стриг перевожу ток чтобы длину получить.
ща вообще думаю как перепилить этот метод, чтоб от неточных чисел избавится
дальше мне функция в объекте operatorsList возвращает мне ответ в виде номера, который я потом перевожу в строку, чтобы узнать его длину
но я думаю ты это и так видишь, скорее всего я не понял вопроса
Сам разобрался.
Реюзать можно метод у HTMLElement'от подменяя им this на другие узлы.
У document другой прототип
Зарепортил.
А ты смотришь вглубь? Хули ты не в ассемблер-треде?
Охуенно!
а что ты на нем будешь делать?
я в процессе изучения джс более-менее разобрался с цсс и хтмл, могу сверстать что-нибудь простое
какая идея?
чего бля? что это вообще такое? Сейчас я пишу на очень модном хипстерском говне, там когда дергаешь ф-ию бэкэнда сразу идет параметром див, содержимое которого нужно обновить, а при желании даже отрендерить со специальным языком подстановок.
Я не так давно вкатился, освоил поверхностно html и css (сейчас прохожу курсы на htmlacademy.ru для закрепления), но в какую сторону двигаться дальше?
Цель: начать фрилансить.
Я для себя наметил несколько направлений, но уже, если честно, сломал всю голову, поэтому спрашиваю у вас, не ругайтесь только, в какой последовательности лучше изучать?
То, что собираюсь выучить: JavaScript, PHP, MySQL, WP и Joomla. Хочу поскорее брать заказики на weblancer.net и остальное доучивать уже на практике, так я гораздо лучше усваиваю. А уже через полгода-год подтяну ангельский и перекачусь на upwork. Помогите лишь определиться с последовательностью? Я у кого ни спрошу, кто советует с КМСок начать, кто с ЖС, кто с пыха.
И ещё вопрос конкретно по JS - в факе указан список литературы из 8 книг, вроде, их читать ВСЕ и в таком порядке, как там они указаны? И да, я совсем нуфаг, JS или PHP?
лол
на деле ты до начала фриланса дорастешь дай бог если через пару лет, а до апворка еще через лет 5, если будешь каждый день все свободное время самообразовываться
если просто там на js дергаешь ф-ию, она дергает бэкэнд и бэекэн возвращает текст или если нужно модель данных, дальше все это рендерится в див, где уже могут быть прописаны на jsp что и как подставлять, т.е. дергаю ф-ию к примеру, выдай мне всех петухов с этой доски, ф-я дергает методы бэкэнда, собирает всех петухов в виде массива и кидает на шаблон где прописано че и как выводить
ну начнешь джаваскрипт изучать - поймешь, сразу куча вопросов отвалится, в т.ч. и про книги
А вопрос "ЖС или похапе"? Ведь можно поверхностно знать ЖС, представлять, что это вообще такое, а кодить на пыхе?
Ладно, насчёт адекватности я погорячился. Просто, это было сообщение в тред PHP, но я решил отправить его и сюда, не изменяя.
Великолепная дедукция, особенно учитывая то, что я сам с самого начала осветил свой уровень знаний. Спасибо за ответ, он очень важен для меня.
Я пока не знаю сам. Вроде, бэк интереснее, думать нужно. С другой стороны, фронт красивый и сразу видны результаты твоей работы, плюс, можно начальнику тыкать в лицо своими "результатами" и просить повышения зп, например. А бэк крутится себе и крутится, никто, кроме похапе макак и не понимает, что там и как. Работает и хуй с ним.
еще обидься, порватка. Я бы тебе вообще посоветовал не лезть сюда, а прочитать вот эту книгу
https://habrahabr.ru/company/piter/blog/247755/
1. читаешь
2. пилишь параллельно свой говнопроектик
Приходишь сюда, точно зная, что тебе нужно
Плюсы данного подхода
1. Вероятность, что ты ее прочитаешь и освоишь 80%
2. Вероятность, что замутишь свой говнопроект и научишься РАБОТАТЬ 80%
3. Вероятность, что ты вообще ЧЕМУ-НИБУДЬ научишься 100%
сейчас ты просто на той ступени, что ты не в состоянии оценить, что тебе нужно вообще
Мне просто пояснили, что вот тебе список: html, css, mysql, php, js. Плюс пару фреймворков и CMS. И сказали - учи. Я начал с вёрстки, но рили не понимаю, что, куда и зачем. Сейчас поищу, где скачать эту твою книгу, надеюсь, она действительно такая магическая, благодарю.
сам порватка
поставь себе цель написать калькулятор, разберешься сразу с хтмл, цсс и джс
а потом движок для блога, там закрепишь знания и подтянешь пхп и мускул
Это всё по той книге Робина?
Сейчас бегло полистал её, она гораздо сложнее, чем всё, с чем я сталкивался до этого. Надеюсь, если читать её с самого начала, будет понятнее. Но вообще, она, по ходу, ориентирована не на совсем зелёного нуба, а на среднего такого макака. Зато заебись, наконец-то что-то сложное, заебала эта вёрстка.
зря ты так, там есть необходимый МИНИМУМ, хуйню тебе насоветовали. Могу с таким же успехом насоветовать курс по вышке, только хуй ты его пройдешь
Не жди от нее откровений, она уже слегка аутдейтнута и вряд ли чему-то тебя действительно научит. Но ты хотя бы будешь иметь понятие, что и как работает в простых вебсайтах, и какие инструменты применяются.
мимо
в факе ее нет, т.к. тут порватки-проскатинаторы, они будут выбирать неделями ide, дрочить на codeacademy, читать фленегана, а эта хуйня сразу поставит тебя перед ремеслом программиста и ты увидешь прет тебя это или нет. У меня по ней тянка училась, прочитала от корки до корки и замутила стартап, бля вот реально без шуток.
Итого, после прочтения этой книги, у меня должно быть 3 вещи: калькулятор, движок для блога и какой-то свой проект? Я мб вперёд забегаю, но боюсь тебя больше не увидеть, поэтому спрошу сразу. Идея для проекта придёт во время прочтения или она уже как бы должна быть? Приведи парочку примеров, да я пойду спать.
Не знаю, чому у тебя все сразу порватки, но так везде, где бы я ни спросил. Нуфагам советуют сразу какую-то проф. литературу на 1000 листов, в итоге, они не становятся программистами.
Я бы не отказался от твоей почты, раз ты такой дерзкий.
Ну это пособие "уёбка-быдлокодера", а не полноценного программиста. Обычно то, что делаешь в первый раз, наиболее сильно закрепляется в памяти и ты в будущем стараешься всё время делать именно так.
Если ты умираешь с голоду, то это, конечно, годная книга. Но если есть цель делать проекты дорого и охуенно - это очень хуёвая книга.
Очень простое задание же, даже если не эвалами парсить, а свой парсер написать.
чем проект ПРОЩЕ тем ЛУЧШЕ, ну сделай хотя бы сайт со списком твоих любимых порноактрис, с фильмами где они снимались и прикрути к нему авторизацию с возможностью создавать личные предпочтения. Данные все храни в БД. К примеру у тебя 4 пользователя: папа, мама, ты и сестра. У каждого есть свой пароль и любимые жанры. Папа любит куколд, мама большие негритянские члены, а сестра тему инцеста.
Да-да. Еще дискретную математику притащи, захочет человек стать хорошим разработчиком, сам все найдет, не захочет, будет бодриться качалочкой и пивком, хуяря говносайты. Тут человек за помощью пришел, видишь, начать не знает с чего, а ты его хуйней грузишь.
да хуй знает, может наоборот заказчику нужны такие ХРАБРЫЕ ПАРНИ
> захочет человек стать хорошим разработчиком, сам все найдет
Нихуя подобного, я не просто так про первый опыт написал. Я сам начинал с подобных гайдов, где САЙТ ЗА 24 ЧАСА, от этого у меня теперь всё время хуяк-хуяк и в продакшен. Я не разбираюсь с технологиями перед их использованием, и это очень хуёво. Часто проебывался из-за этого по срокам из-за безопасности/стабильности приложения
Уверен, что если бы я начал иначе, и понял преимущество правильного подхода, я бы делал правильно и было бы всё заебись
Дело то не в технологиях, а в твоей личности. У меня коллега как ты, но вот однако я каждое утро час-два изучаю технологию, на которой мы пишем, а он хуяк-хуяк и в продакшн. Когда он будет с разорванной жопой выть, я приду на помощь. Мы - команда. Я освою как правильно и научу его. Он плохо все усваивает, зато может любую рутинную хуйню ебашить. Люди нужны разные и подходы нужны разные, а если ты такой прошаренный, то ВОЗЬМИ ОТПУСК, изучи технологию и СДЕЛАЙ ВСЕ ПО-УМУ, если не делаешь, то значит не особенно оно тебе и нужно.
кроме того, какой ПРАВИЛЬНЫЙ ПОДХОД, программирование - сложный труд и от блок-схем и аккуратных алгоритмов тебя никакое хипстерское говно не спасет, что бы ты не тащил какую бы хуйню не использовал. Алгоритм-алгоритм-алгоритм
что за книга?
Кто-то мой этот вопрос не понял.
Т.е когда мы передаем функции аргумент (factor), то у внутренней функции он тоже становится такой же. Грубо говоря factor=number ?
Не так, как на беке. На фронте нет, что нельзя было бы без последствий изменить. А на беке миграциимиграциимиграции
Нет. Фактор это фактор, намбер это намбер. Фактор устанавливается на момент вызова внешней функции, при этом возвращается внутренняя, для вызова которого нужен еще намбер, т.к. она перемножает и возвращает ранееустановленный фактор на свой аргумент намбер.
Иронично ещё то, что ты написал в мертвый тред
Вы видите копию треда, сохраненную 18 мая 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.