24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, Walmart и многие другие.
Краткий FAQ: 1. Что это за язык такой? - Мультипарадигменный язык, изначально создавался для использования в браузерах как язык сценариев для придания интерактивности веб-страницам, однако в процессе своего развития преодолел этот этап и сейчас может использоваться для любых целей ввиду своей неограниченной гибкости и удивительно удобного синтаксиса. Сочетает в себе особенности объектно-ориентированного, функционального, событийно-ориентированного и императивного программирования.
2. Какие возможные направления для разработки существуют? - Фронт-энд (Vanilla, jQuery, Angular, Backbone, React, Meteor), бэк-энд (Node.js, Express, Sails), геймдев (Phaser, Cocos, Pixi), 3D графика (Three.js, Babylon.js), мобильная разработка (NativeScript, Phonegap, Ionic), десктопная разработка (NW.js, WinJS).
3. Можно выучить только jQuery и всё писать на нём? - Не стоит, лучше начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и в будущем не испытывать трудностей с изучением сложных фреймворков.
Dr. Axel Rauschmayer - "Speaking JavaScript: An In-Depth Guide for Programmers" - Одна из лучших книг по JS. Пока только на английском. http://speakingjs.com/
Выбери себе направление. Может, ты хочешь игори делать? Тогда вперед на гитхаб, и ищи Phaser, Pixi и другое, выбор не маленький. Хочешь на сервер сайд? Копай в сторону Node.js, Express, Socket.io. Хочешь писать MVC логику? Angular, Backbone, React, да множество их. Нельзя забывать про NW.js и WinJS, позволяющие создавать десктопные приложения.
>>601775 Я просто flux не смотрел еще, посмотрел пока redux, там чет надо мир пересоздовать при каждом действии, это нормально вообще? В связи с этим, Immutable.js норм, или особо не помогает?
>>601781 Можешь не пересоздавать, это не обязательно совсем. Immutable практически бесполезная либа, юзай лодаш или просто спред операторы из ес6-7, если хочешь немутабельный стор.
Как на ангуляре переадресовывать на другой state, если в localStotage нет заданного ключа? У меня авторизация на jwt сделана, нужно, чтобы если пользователь не авторизирован то есть, у него нет jwt-токена в localStorage, но запрашивает state app, допустим, его кидало на state авторизации Как это оформить? И каким сервисом? Фабрикой?
>>601781 >мир пересоздовать при каждом действии >нормально, но не для всех случаев. смотря с какой частотой действия происходят и смотря какого размера дерево. к тому же ты не обязан весь мир пересоздавать тащемта. >Immutable.js норм? норм если пытаешься писать чистыми функциями, как тут: https://www.youtube.com/watch?v=CohpRapbXqA во всех остальных случаях не нужно.
>>601960 >Самая бесполезная (и даже очень очень вредная) фича из ес6-7 Это даже не какая-то отдельная фича, просто синтаксический сахар. >JavaScript classes are introduced in ECMAScript 6 and are syntactical sugar over JavaScript's existing prototype-based inheritance. The class syntax is not introducing a new object-oriented inheritance model to JavaScript. JavaScript classes provide a much simpler and clearer syntax to create objects and deal with inheritance. Почему выбрали именно ее и именно в таком виде действительно неясно.
ajax, get json, cross domainАноним12/12/15 Суб 22:58:07#17№601975
Помогите тупому. Есть ссылка, по которой находиться JSON. Как получить этот json через ajax-запрос?
Ссылка вообще с левого сайта, то есть кросс доменный запрос нужно.
>>601964 >Мне не нравится ее синтаксис Синтаксис там суперстандартный. Будто из всех сил пыжились натянуть "стандартный" ООП на JS. Разумеется, если ограничиваться только синтаксическим сахаром, сделать это в полной мере будет невозможно. Но остается вопрос, нахрена тогда эта свистопляска с созданием дополнительного уровня абстракции, подменяющего реальные механизмы языка.
Чем прототипное наследование отличается от "обычного"? В плане поведения, а не то что там цепочки прототипов вместо каких-нибудь виртуальных таблиц Вроде ж и переопредление есть и методы базового класса вызывать можно. Непонимат.
>>601989 Я не знаю. Мне дали тестовое задание(чтобы попасть на треннинг), где нужно сбацать функцию, которая кое-что делает со словарями. А словари нужно получить через ajax-request и дали ссылку на эти словари.
Все. Больше ничего не знаю. На клиенте или на сервере - я еще не разбираюсь в этом. Только начал изучать программирование и JavaScript.
>>601998 Друг, спасибо. По идее все так и должно быть, как ты и сказал. Я просто только 2 недели изучаю web, так пробовал с jsbin вообще загрузить их JSON.
>>601990 в одном посте не расскажешь, люди вот целые книги пишут: https://github.com/getify/You-Dont-Know-JS/blob/master/this%20&%20object%20prototypes/README.md#you-dont-know-js-this--object-prototypes Вкратце -- "In JavaScript, the [[Prototype]] mechanism links objects to other objects. There are no abstract mechanisms like "classes", no matter how much you try to convince yourself otherwise". Для тех, кто не может без классов, в es6 их совершенно официально завезли, но по факту это просто дополнительный слой абстракции. Возможно я разжигаю флейм, но по большому счету, как ментальная модель классы в js не в фаворе по двум причинам: в js слишком много можно сделать с обычным объектом, по факту, как ни крути, уровень иерархии один, если один объект обозвали "классом", по факту это тот же объект, что и все остальные, во-вторых, иерархические модели -- это все таки о представлении данных -- то есть больше о backend или о модельке для толстого клиента, задачам фронтэнда все-таки скорее отвечает модульность и разумные подходы к взаимозависимостям между частями приложения. То есть в большинстве случаев приложение на компонентах выглядит более здраво и логично, чем на эмуляции "классов", всё что достойно отображения у вас на страничке, одинаково важно, тут нет места иерархии (то есть есть, но уже на уровне v, куда не стоит выносить слишком много логики). По факту, если сесть и рисовать на бумажке схемы, между тем же redux и архитектурой, которую захочет реализовать погромист, только что пришедший из .net может оказаться на удивление мало различий, вопрос в некотором смысле в дефинициях. Во фронтэнде важнее всего вопрос того, как m отображается v, тут главное, чтобы способ был один (и это в принципе могут быть "классы", просто возможно это не всегда будет удобно и оптимально), когда люди, привыкшие мыслить классами, пытаются в непривычную сферу по-привычке внести дополительный слой абстракции, порой начинается беда.
>>602030 свои, сынок, свои. но вообще когда появился es6 имхо странно писать на кофе. не очень понятно в чем преимущество. лучше уж современный стандарт изучать, чем практиковать девиации (коль скоро разницы не так много осталось).
>>602048 Может и норм, js потихоньку становится байткодом, тем, во что компилируют, как и css тот же. Кофе сам-по себе хороший, просто за всем не угонишься нынче, слишком много всего происходит, а стандарт-то заведомо будет развиваться, лучше на него ставить. Если не секрет, чем не угодили классы в es6?
>>602074 Ну почитай какие недостатки у классов, я что тебе буду тут разжёвывать? Миллион статей об этом есть, тебе лень жопу поднять, пиздец. Пиши на ебаных классах, если хочешь больше геморроя, никто тебе не мешает.
>>602059 обязательным зисом и я хотел бы объявлять класс как объектный литерал >>602066 хочу объектную модель в приложении. я много хочу? как это делается тогда? >>602076 если классы такое говно, зачем их добавляют в стандарт? >>602080 а что он? там все совсем иначе. >>602083 что это? объявление класса через функцию?
>>602085 >если классы такое говно, зачем их добавляют в стандарт? Потому что куча долбоёбов пришедших из других языков с классовым наследованием ноют, что им не хватает классов. У них с мозгом не всё в порядке, поэтому они не понимают, что классы это плохо, 30 лет назад можно было юзать классы, но теперь нет необходимость. Хочешь услышать больше о классах от профи? Послушай презентацию Дуга Крокфорда the good parts
>>602089 собственно, это даже не вопрос был, я так и знал, что ты ответишь что-то вроде "нуу туупые". сам прочитай свое сообщение - добавляют фичу в язык потому чтобы порадовать кучку тупых людей, лол. иди нахуй
>>602093 Сам иди нахуй, мразь классовая Добавляют фичу ТУПЫЕ ГНИДЫ, которые сидят в коммисии, а не для того, чтобы кого-то порадовать. Такие как ты безмозглые дауны, которые блять не знают что такое фабрики, которые юзают this в 2015 году, которые кодят на кофескрипте. Мрази. Уебки.
>>602095 во даун. не хочу использовать классы, потому что есть фабрики, кококо. ты понимаешь, что это одно и тоже, просто название разное? >которые юзают this в 2015 году конь, ты вообще читаешь что-то кроме своих сообщений? я же писал, что в екмаскрипте классы говно. как раз из-за зиса.
>>602085 >хотел бы объявлять класс как объектный литерал ну в js так и делали всегда (не все правда), создаешь {} и наследуешь от него прототипами что угодно если хочется (или просто обращаешься к методам этого объекта с нужным контекстом), https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties в помощь, просто стараются не называть эту структуру классом чтоб не путаться, объект и объект, ну назвать с большой буквы для красоты можно. This при таком подходе не нужен при объявлении, если я правильно понял проблему (меня-то this мало смущает, this бояться -- на js не писать). Если модулями писать, все что внутри одного файла и не export -- приватные свойства, тоже как бы на this не ссылаешься, особой путаницы не должно быть. Вообще я немного теоретизирую конечно ибо все на реакте пишу последнее время, там своя атмосфера, но до реакта писал примерно так, в духе OLOO pattern. А с es6-классами загадочно выходит, они и тем, кто раньше на js писал не особо нужны, и тех, для кого они появились (мигрантов из других языков, со своими представлениями об ооп) не особо устраивают, вместо того чтобы облегчить вхождение только добавляют путаницы на данный момент, обидно. Авторы стандарта-то явно хотели как лучше.
>>602097 >ты понимаешь, что это одно и тоже, просто название разное? Хахаха блять, топ кек в этом треде, пойду пацанам расскажу, что оказывается классовое наследование и фабрики это одно и то же! >я же писал, что в екмаскрипте классы говно. как раз из-за зиса. Хули ты приебался тогда, мудак?
Такое чувство, что ты тупо блять вчера узнал о жсе и у тебя адская каша в голове, но при этом ты хочешь казаться умным. В общем, долбоёб, если одним словом.
>>602100 Я написал, что классы сделали говно, а не то что они нинужны (что написал ты). >классовое наследование да при чем тут наследование? про наследование речи не шло.
>ты тупо блять вчера узнал о жсе и у тебя адская каша в голове типа того >но при этом ты хочешь казаться умным не знаю с чего ты так решил. однако, в чем смысл казаться тупым? кстати, ты это просто так написал. ниоткуда. я тоже так могу, смотри: ты вообще нихуя не понимаешь и вообще у тебя каша в голове, но ты корчишь из себя умника, чмо тупое
>>602097 >не хочу использовать классы, потому что есть фабрики, кококо. ты понимаешь, что это одно и тоже, просто название разное? Фабрики используются для производства объектов, классы используются как элементы классовой иерархии. С производством объектов в JS ничего не поменялось. Какими создавались до появления class, такими создаются и сейчас. Не зря в каждой статье, посвященной теме классов, они называются просто синтаксическим сахаром. С классовой иерархией все просто, ее фактически нет. Ну то есть и раньше можно было взять какой-то объект и представить, что он "класс", "наследоваться" от него и строить у себя в голове какие-то иерархические отношения по типу "стандартного" ООП. Ключевое слово class не добавляет к JS абсолютно ничего нового. Но, похоже, выдрессированный разум некоторых людей не способен принять объектный язык без ООП прибабахов, поэтому им в угоду изобретается ненужный слой абстракции, скрывающий подлинные механизмы языка.
>>602166 Строка фиксированной длины? Из каких символов состоит? Разбивать справа-налево или слева-направо? Для самого простого случая, например: >"1000000101111011011110111".replace(/([0-9]{5})(?=[0-9])/g, "\$1 ")
Откуда берутся петухи с годом опыта и нереальным стеком технологий? Это правда? Реально за год можно где-то получить опыт Backbone, Angular, ES5/6, TypeScript, Gulp, Bower хуевер и куча вариаций? Я не теоретик, мне 26 лет и я 2 года поддерживал говно на вебформс бэке и jQuery. Потом полгода вот сейчас с AngularJS и всякими фронтэнд хуйнями, но большую часть времени я разбираюсь с бизнес-логикой. Возможностей библиотек и фреймворков мне хватает, натыкался на пару багов, но находил в ишью и терпеливо ждал релиза. Блядь, но откуда берутся ребята у которых по десять проектов, в которые они регулярно пулреквестят? Откуда такое шило в жопе? Я все проебал и не могу в ноулаферство? Не дано, если вечером хочу поняшится с тяночкой, а не пердолится в никому не нужный модуль? Так вроде и пацаны тоже не какие-то хикканы. В общем как жить, что бы быть в тонусе по всей этой фронтовой параше?
>>602249 Надо быть маньяком, чтобы сейчас за всем успеть, на это и матерые именитые дяди на конференциях и в статьях жалуются, чо. Мое мнение, что силы надо вкладывать только в то, на чем реально писать будут завтра (ну то есть es6 это очевидно стандарт, а typescript == развлечение, на которое не стоит тратить время, даже если очень хочется, за сборщики тоже, все, кто следит за модой, прошли путь grunt=>gulp=>webpack, и хули току, сейчас webpack2 запилят, там все по-другому будет, это все наносное и можно будет разобраться если потребуется, не имеет смысла прыгать каждые полгода. Тот же react, скорее всего, не самая элегантная из реализаций virtual dom, но гребаный фейсбук никуда не денется, они вынуждены его разрабатывать и поддерживать, то есть логичнее просто писать на нем и не бросаться изучать весь зоопарк, итд) и в хардкорную теорию, остальное тлен. Маньяков-задротов все равно не догонишь. Есть правда еще дауны, которые вообще не хотят ни в чем разбираться и всем объясняют, что "sass не нужен", "деды писали на классах и вы пишите", "возьмите vanillajs и не выёбывайтесь", но это совсем дно, другая крайность, так тоже нельзя имхо.
>>602085 >что это? объявление класса через функцию? Функция, которая возвращает объект. var newJoint = (function () { var methods = {
};
return function (cfg) { var joint = { }; joint = _.extend(joint, methods); return joint; } } ());
Затем пишешь joint = newJoint({}); // {} - конфигурационный объект Работает быстрее, чем прототипное наследование - не надо проходить цепочку при наследовании от нескольких прототипов. Гораздо понятнее в плане использования, не нужно использовать слово new, что снижает количество ошибок. Есть возможность делать приватные методы - хранишь их в замыкании вне объекта methods. При этом имеет оверхед - хранит ссылки на все методы, вместо одной ссылки на прототип. При количестве объектов больше миллиона это может иметь значение.
>>602157 >не способен принять объектный язык без ООП прибабахов Проблема в том, что JS как бы разрушает само ООП внутри себя. Программист как бы думает: "Ну я хочу объявить класс", а язык ему отвечает: "Нет, объяви функцию)))"
>>602283 Зачем писать нечитаемый код? С этим отлично справляются обфускаторы. Кто угодно может написать код, понятный компьютеру, ты напиши так, чтобы понял другой человек.
>>602319 Это называется "синдром Стаса" он очень гордился тем, что писал нечитаемый код, пока его в продакшене не макнули лицом в говно за это, а потом объяснили, что работает он не один и пусть пишет так, чтобы это можно было понять с первого взгляда.
Вот вы сейчас сраться будете, а давайте разберемся нормально. Вот это >>602214 действительно хороший вариант. Но до тех пор, пока он должен оставаться таким. Сопровождение регулярок действительно очень темное дело. Но для быстрых говнозадачек сойдет.
>>602320 >За регулярки чаю? Ты серьезно? Конечно, лучше влепить лишний пробел в конце строки и вызывать потом ради этого trim. Никакой избыточности, что вы.
>>602307 Ну как бы может быть проблема в том, как программист думает, а не в языке? Если чтобы было удобно вам нужен лишний слой абстракции -- ради Б-га, пишите, главное не рассказывать окружающим, что они тоже обязаны так поступать, срач в этот момент начинается (хотя похоже сейчас мы тут дружно лечим в обратную сторону, ну да ладно). Если не устраивает именно язык -- пожалуйста, есть .net и c# и сочные хрустящие классы из коробки, на нем тоже можно написать веб-приложение любой сложности с минимумом js. Просто почему-то все при этом пишут на плохом негодном js и жалуются на неудобства тем, кому js нравится. Что-то тут не сходится.
Палю секрет: чтобы втихаря хуярить в коде катаморфизмы и при этом никто не мог приебаться когда заметит, разноси куски пайплайна на разные строки, желательно ещё и в отдельных байндингах, если можно дать осмысленное имя. Например, было '1000000101111011011110111'.split('').reduce(function(s, ch, i) {return s + ch + ((i+1) % 5 ? '' : ' ')}, '').trim() а ты делаешь var reducer = (accum, char, i) => accum + char + ((i+1) % 5 ? '' : ' '); var chars = '1000000101111011011110111'.split(''); return chars.reduce(reducer).trim(); Вуаля, ты чист.
>>602340 >пишут на плохом негодном js и жалуются на неудобства тем, кому js нравится. Что-то тут не сходится. Сходится, в браузерах нет альтернативы js, просто они думают. что это ОО-язык.
>>602355 >>602357 Наплодили лишних сущностей, свели синтаксис чуть ли не к бейсику из 60-х. >Так намного читаемее! Ты наверное JS только вчера увидел!!! Ну охренеть теперь.
>>602347 Если верить русской вики, то >Перед Бренданом Эйхом, нанятым в компанию Netscape 4 апреля 1995 года, была поставлена задача внедрить язык программирования Scheme или что-то похожее в браузер Netscape.
>>602373 Все верно, идеи из scheme и smalltalk (реализация объектов). Он еще и синтаксис лисповый хотел оставить, но в Netscape немного охуели от такого и заставили сделать его жабоподобным. Крокфорд в лекциях про good parts в самом начале хорошо всю историю рассказывает, они на ютубе есть.
Всем привет, возможно вопрос не по теме, но думаю вы должны соображать в этом. Вот к примеру пикрелейтед на этом сайте, там указаны установленные куки разных доменов. Вопрос - может ли владелец домена 2ch, на котором собственно я и нахожусь читать значения установленный кукисов доменов от гугла иногда там еще бывает api.гугл? И еще вопрос - если ответ на пред. положительный, может ли автор страницы на 2ch узнать мои данные аккаунта гугл или еще каких ресурсов, чьи кукисы показаны в этом окне? Не знаю важно это или нет - из расширений стандартный блокировщик рекламы, остальное не должно влиять никак на страницу.
>>602391 >Нет, куки с других доменов нельзя Спасибо за ответ, уточню на всякий - даже если 2ch захочет это целенаправленно, захерачит скрипт какой-нибудь в страницу и тд - всё равно никак нельзя получить куки других доменов или данные моего аккаунта гугл?
>>602395 Нет, совсем никак. Чтоб получить куку с гугла, не являясь его владельцем - нужно или найти уязвимость в гугле, которая позволит тебе вставить свой скрипт, или взломать клиента.
>>602411 Ну, это у тебя был доступ к машине и ты мог там ставить скрипты, верно же? Меня интересует именно случай, когда у владельцов ресурса 2ch (это пример из пикрилейтед) нет никакого доступа к моей машине.
>>602418 Как я понял - не только аккаунт украсть нельзя, ну и просто получить логин аккаунта или любое значение из установленного кукиса тоже нельзя, ну или вообще любую информацию, верно?
Ребят, на странице нарисован. Крыша, 2 окна, дверь. Как мы все рисовали в детских садах. И есть ползунок с интервалом 1. Когда его двигаешь, в доме изменяется количество этажей. То есть если с 1 передвинуть на 2, то в наш дом добавить еще 2 горизонтальных окна.
>>602426 Лол, ты че несешь, клоун? >Каким-то образом получить доступ к его пеке >Это не сильно сложно сделать в универе >Не сильно сложно взломать браузер?
>>602425 Всё что можно оттуда извлечь я вижу так же в этом окне со список кукисов, верно? И всё же, раньше написали, что доступ к кукам другого домена вообще нельзя получить, сейчас ты пишешь что можно, но получить там нечего, кто прав?
>>602439 Ты ничего не можешь извлечь без взлома пеки клиента. Но даже если ты извлечешь - ничего полезного ты там не найдешь. И куки имеют срок годности. Фишинг гораздо круче, короч
Всем привет. Есть двоичное число, например, 10101. Подскажите, пожалуйста, как записать его в массив, чтобы каждый знак попал в следующий элемент? A[0]=1 A[1]=0 A[2]=1 A[3]=0 A[4]=1
Всем привет. Есть функция, которая генерирует слово и выводит в консоль. Нужно создать чеккер, который должен помнить после 10 слов, и, если новое слово повторяется с прошлыми 10, то заново сгенерировать слово.
>>602503 Лол. Действительно, смешно выглядел мой вопрос. На самом деле, то число не статичное, я не могу записать его в коде. Это будет неизвестное заранее число, которое я буду увеличивать на единицу в цикле. И каждый раз мне надо перезаписывать его в массив познаково.
>>602510 > Нужно, чтобы массив хранил именно 10 последних, а не все. Затирай первый элемент, если количество элементов больше 10 Кинь код, который у тебя уже есть
>>602513 >>602516 Большое спасибо! Только вот у меня изначально всё-таки число, а не строка, и оно будет инкрементироваться. Есть ли подобная возможность для чисел? Понимаю, что можно каждый раз переводить его в строку и делать, как в вашем примере, но не через чур ли это костыли?
>>602522 > каждый раз переводить его в строку и делать, как в вашем примере, но не через чур ли это костыли? Не, не костыли. Чтобы перебирать посимвольно нужно иметь массив символов, а не целостное число
Подскажите, что можно улучшить, и как поправить говнокод. Изучаю программирование 2-3 недели. Думаю, много ошибок с областью видимости переменных, замыканиями. Где var писать, а где не писать при объявлении. С этим еще не разобрался http://jsfiddle.net/bpvrnvr4/
Как в waterlock'е изменить авторизацию с мыла на никнейм? У них про это прямо в доках написано, но мне нихуя не понятно Может кто-то расшифрует про какие изменения в модели там идет речь?
Чуваки, помогите плз с вот каким вопросом. Начал раскуривать React + redux, в докладах про него вроде как всё относительно понятно, а как доходит до дела, возникают вопросы.
Допустим, у меня есть охеренно глубокий store, скажем, семь уровней в объекте. И весь мой UI такой громоздкий и уёбищный, что мне нужно компоненты вкладывать один в другой, опять же, семь уровней. И вот чтобы в компонентах шестого уровня мне не ссылаться на store.levelOne.levelTwo.levelThree.levelFour.levelFive.fieldThatIWantToDisplay, как мне поступить? С одной стороны, можно в компоненте пятого уровня в render упоминать вложенные компоненты и передавать им нужные поля из this.props. Это вроде как наиболее straightforward путь, не так ли? Но с другой - нахрена тогда нужна либа react-redux и (или наоборот redux-react)? Там пишут, что если не прикрутить компоненту через connect, то она не будет обновляться на обновление store. И блять самая пушка. Допустим, я использую в полный рост этот вот Provider из redux-react. Как мне сделать тут так, чтобы не писать НЕЕБИЧЕСКУЮ ИЗ ШЕСТИ ЭЛЕМЕНТОВ цепочку обращений к полям store? Может, у кого-то есть пример работы с глубоким деревом store? Заранее спасибо, чуваки!
>>602873 Может просто стоит писать менее уёбищно и не делать семиуровневый стор и такие же компоненты? Или ты думаешь какая-то либа за тебя напишет эту цепочку внезапно?
>>602816 Мне реакт понравился, несмотря на смесь js и html, все-таки смешивает он их в одном семантическом поле - view. Ангулар мне не понравился, но вторую версию еще не видел, может быть, там будут причины выбрать его, несмотря на монструозность.
>>602878 >>602896 Проснулся, перечитал README к react-redux, прояснилось. Надо спать иногда :) А про семиуровневый стор я гипотетически чисто. Просто сразу беспокоюсь о поддерживаемости. Если компонент второго уровня исчезнет, сильно неохота удалять во всех нестед компонентах конкретное поле.
Аноны,не знаю где еще об этом спросить как не в треде про жавускрипт. Что как и где надо написать что бы скрывать слово с заглавной и не заглавной буквы. Например слово Аниме. Правило #exp(/аниме/i) его не скроет, а создавать еще одно правило только с заглавной буквой А не хочется. Собственно вопрос: как прописать чтобы слово скрывалось в обоих случаях?
>>603262 Да аниме это пример просто, не злись. А если автор специально напишет заглавной буквой вторую в слове? нельзя что-то вроде ^ перед всем словом поставить на такой случай?
>>603399 У Ionic та же хуйня, вебвью, а в нем html+js. Это просто ангулярный фреймворк поверх Кордовы. Ну и он кое-что умеет оптимизировать под андройд и айос.
>>601735 (OP) аноны, объясните плиз, каким образом создать список UL в пустом html с помощью jquery? Вот так что-то не создаётся $(document).ready(function(){ .append(ul) });
Есть ли в js событие, которое делает что-то с элементом непосредственно до его отрисовки? Например для форматирования времени - сегодня/вчера/часовые пояса. Хотелось бы, чтобы как только мы распарсили элемент, сразу же проделали бы с ним какие-то манипуляции, блокирующе.
>>603677 то есть создать в JQuery этого нельзя? И вообще создать выпадающее меню, где значения меню будут задаваться в цикле из созданного ранее массива объектов нельзя сделать на чистом JQuery?
>>603649 Ну вот приходят нам посты с таймштампами. Показывать их изначально с display: none? И когда весь ДОМ загрузится, обрабатывать их последовательно в цикле? Если так, то это так же хреновенько, как и без display: none. Я же не сингл-пейдж апп делаю. Хотелось бы поймать момент непосредственно после парсинга конкретного элемента.
Еще пример. У нас на сайте href'ы на картинки с разным aspect ratio. Нужно показывать только квадратную область. Если обрабатывать их после отрисовки всех элементов, то сначала пользователь может увидеть их реальный размер и мерцание.
Я же тебе сказал, создавай всё нужное сразу в жс, а только потом рендерь уже созданный компонент. Какой парсинг вообще, если у тебя, как я понял по аджаксу или сокетам приходит что-то, ты о чем, что за бредятина?
>>603707 Так отдавай сразу в нужном виде, че ты. Распарси то, что можно распарсить на сервере, а пока пользователь читает, получи данные еще раз в виде JSON, распарси и пересоздай DOM.
>>603740 Как вообще из твоего изначального поста можно понять, что ты про пыху говоришь? >Есть ли в js событие, которое делает что-то с элементом непосредственно до его отрисовки? >Например для форматирования времени - сегодня/вчера/часовые пояса. Хотелось бы, чтобы как только мы распарсили элемент, сразу же проделали бы с ним какие-то манипуляции, блокирующе.
>>603740 Хуитку ты несешь. Тебе предлагают на ходу из жса создавать элементы и вставлять их уже готовые в дом, а до отрисовки элементов нету, соответственно обратится к ним нельзя. Почитай хотя бы об основах того, как работает браузер и жабаскрипт.
>>603785 >Джейсончик отрендерить, понятное дело, легко. А пхп-то блядь сложно echo "<p>OTRENDERIL</p>"; Тебе для чего пересоздавать в виде js-объектов? Чтобы совершать динамические действия. Следовательно надо либо получать объекты из существующего дома, либо дополнительно получать их в виде JSON. Все, блядь, третьего не дано.
>>603788 Тут уже тебе надо почитать про работу браузера. Пхп генерирует html-код. Браузеру все равно его надо распарсить и построить ДОМ. Потом к каждому узлу применяется стайлинг и строится render tree. Я спросил, можно ли поймать момент добавления узла в ДОМ, до стайлинга. Оказалось, что только по onload, что работает только для body, img и еще пары элементов.
Срочно понадобилось бота на сайт написать, что бы в зависимости последнего значения, которое в html коде страницы отображается кликал на ту или иную кнопочку на сайте, куда копать? В JS только начал вкатываться.
>>604037 Я не понимаю, мне свой сервер там поднимать надо что ли? Нельзя просто в браузер написать скрипт? Мне бы просто узнать как с помощью js можно сделать клик на элемент и отслеживать другой элемент.
>>604600 >Почему, в ответе на запрос, "Content-Type" указывется только для текста, для остальных видов файлов вообще не указываетс "Content-Type" ? Почему не указывает? Он просто >if (!type) type = "text/plain"; Задает значение по умолчанию, если тип не задан. Это используется, например, в коде при отправки сообщений об ошибках, или в методе GET для возвращения списка файлов в директории. >respond(200, files.join("\n")); Но если файл найден, то для него определяется тип контента. >respond(200, fs.createReadStream(path), require("mime").lookup(path));
>>604647 Анон, спасио! Мартин Хаверберг, не любит ставить фигурные скобки. Я прочитал так: if (!type) { type = "text/plain"; response.writeHead(code, {"Content-Type": type}); }
Привет, двач! Возможно ли на js сделать такую штуку: Пользователь вводит слово в форму и ему выдается страница гугла (например) с результатами посика по этому слову? И, если да, то как?
>>603906 СУКА ПИДОРЫ Как же мне бомбит. Как какую-то хуйню делать, отлавливать построение дом-дереива и сраться на тему реакт вс ангуляр, так тут 20 постов в секунду, а изи вопрос от ньюфага проигнорили Так трудно было сказать, что зависимость нужно указывать только один раз, а потом её можно без инициализации юзать?
>>604839 Пик 1 - вот как подключают в документации
Пик 2 - инициализация (что с добавлением, что без добавления туда зависимости - одна и та же ошибка) Пик 3 - конфиг роутера, куда добавляю зависимость. В .run будет проверка ролей, как и в доках
>>604841 на втором файле нужно по любому добавить его. Это ты библиотеки подключаешь. На третьем тоже вроде ок. Ну проверь сам файл может не подхватывается
>>604843 > на втором файле нужно по любому добавить его. Ну от этого ничего не меняется. Меняется что-то, если я зависимости .run'а меняю Я вот сейчас заметил, что в доках как-то иначе подхватывается грант. Там его не передают в .run как модуль, он при передачу в функцию сам откуда-то берется
> На третьем тоже вроде ок. Но почему-то в упор отказывается видеть библиотеку, не понимаю что такое. Уже больше суток пытаюсь понять в чем дело
> Ну проверь сам файл может не подхватывается Пикрл, с файлом всё ок
>>604845 >он при передачу в функцию сам откуда-то берется Что значит откуда-то, он инжектится в приложение в первой строчке. Тебе тоже так надо делать кстати, если что.
>>605509 Я 70к получаю версталой в ДС2, учился 2.5 месяца, потом 30к получал, через 6 месяцев до 70к подняли. Скоро попробую в жс миддла переквалифицироваться. Для начала неплохо, но конечно 70 сейчас не деньги, треть на бытовые расходы уходит тупо, а на тачку надо 1.5 года копить, чтобы хоть взять кредит.
>>605562 > Слушай, попробуй написать ui-router.grant, не через точку, а через тире Пик. Получается, модуль подключается, но что-то как-то где-то не так Может знаешь какой-то другой модуль для управления правами ui-router, который работает?
> Другие ведь модули пашут? Этот вроде идентично им прокидывается. Вот я до этого свой модуль подключал, всё нормально прокинулось. Сразу же по аналогии подключил этот модуль - не работает. Проверил версии зависимостей модуля - вроде всё совпадает. Аномалия какая-то
> подключаешь 100500 файлов в хтмлку В чем проблема? При билде же всё будет минифицировано и закинуто в app.js
>>605570 > Получается, модуль подключается, но что-то как-то где-то не так Всмысле, до этого модуль правильно подключался, но чет он не инициализировался
>>605586 >>605585 Не, не работает. Пустой объект передается Сейчас подключил версию ангуляра и роутера через сдн из примера - всё равно та же ошибка $injector:unpr
>>601735 (OP) аноны, помогите , есть один код, который создаёт выпадающее меню на javascript,а названия элементов меню берутся из массива объектов, вот ссылка на код http://pastebin.com/RHZMeXaz, помогите пожалуйста переделать этот код на JQuery, я сначала создаю элемент ul с помощью кода $(document).ready(function() {
$("ul").appendTo("body");
}); но, мне непонятно как написать $.each(), чтобы меню создавалось динамически, объясните пожалуйста как это сделать, и ещё, мне вставлять мой массив объектов перед созданием самого главного элемента ul, или после него?
Посоны, а никому от кода на ЭС6 не припекает? Раньше как было, функция на функции, объект на объекте и ничего больше. Все просто, понятно и без выебонов. А сейчас шел export default class public static AbstractSingletonProxyFactoryBean {} через default class public const HUY_PIZAA, какие-то деструктуринг-хуйстрактуринг емое, блядь, полный энтерпрайз короч. Как умерить батхерт? эс6 знаю если что
>>606378 Попробуй "препроцессоры" для жс, мне с ними гораздо проше всё воспринимается Но вообще да, ты прав, ес6 проебал всю простоту и изящность ес5. Как я понял, они забили на ваниллу и хотят сделать из неё подобие машинных кодов, только для браузера, в которые со временем будут всё компилировать. Низкоуровневый условно, конечно браузерный код, короч. Только человекопонятный, чтобы людям в 2016 году не пришлось байтоёбить Ангуляр 2 от гугела, например, уже на тайпскрипте пишется. А это пиздец какой большой проект.
>>606378 Нет, заебись стало. все то же что и раньше, но с деструктуризацией, бесплатным без смс спредом и расовыми лямбда функциями. То, что export вместо module.exports да и хуй с ним, а классы никто не заставляет использовать, по мне так и вовсе зря они прогнулись под широкие массы, только увеличили количество хаоса а холивор никуда не делся.
>>606494 Мы-то зняем, просто у jq настолько грамотная документация и все это столько раз расписано, что это просто свинство морское спрашивать у живых людей как оно работает. Мы просто дипломатично молчим.
>>606501 > // Мимо-Senior-Java-Developer, очень сильно ждущий ES6 во всех браузерах. Вот хотел, кстати, упомянуть жаба-петухов со сломанными мозгами, которые для сложения чисел 18 классов и 13 фабрик пишут
Полчаса сижу уже не могу никак понять что не так. В таблице если нажать на клетку должен получаться значение хидден инпута который находится в первом td строки Первую клетку достать получается а вот значение инпута никак var td = $('td:first', $(event.target).parents('tr')); var Id = td.find('input').value; Выдает в Id undefiend Перепробовал уже кучу вариантов все равно нихуя.
Люто, бешено советую ангуляр2. Начал писать вебморду для сервисарест имеется одного еще с 46 альфы. Охуевал от УДОВОЛЬСТВИЯ. Даже не представлял, что разработка фронта может быть настолько удобной и приносящей фан. Тогда же в первые познакомился с тайпскриптом, занятная и толковая штука. Вобщем всем анонам советую. Загляните на angular.io, там вся инфа есть. Конечно, бета версии и недели нету. Но возможно, к февралю запилят.
Тот момент, когда уже почти год используешь одну библиотеку. А тут лезишь перепроверять используемые либы в бовере, смотришь на эту либу, она оказывается полифилом. Лезишь проверять эту фичу, а она оказывается полгода как заимплеменчена в браузераз...
>>606612 Хуяктори. Спасибо ES6, теперь набежит дебилов, которые поверх интерпретируемого языка будут намазывать толстые слои своей жабапараши. >return {"you" : "are fag"} вот тебе производящий метод, создающий объект. Зачем в язык не то что без статической типизации а даже без классов, и нет, с ES6 они не появятся, тащить жабакостыли, делающие листинг хелловорлда длинной в несколько экранов?
>>606612 Насчет тестов на фронте это тащемта холиворная тема. В теории круто, а на практике тесты хороши там, где есть логика (много логики), а вот всемозможные хаки под браузеры и шизофрению, которая реализует особо извращенные фантазии дизайнера можно только отсмотреть глазками и проверить ручками, и если эта область занимает в вашем коде занимает приличную долю (например вы работаете в дизайн-бюро, где 3 дизайнера на 1 программиста), польза от тестов уже вопрос дискутабельный. Да и в целом, по мне, если код на фронте стал столь сложен, что там очевидно будут ролять тесты, возможно, что-то пошло не так, это верный знак что клиент стал слишком толстый, возможно впору переписывать модель, неистово мемоизировать или смотреть в сторону модных фреймворков (inb4 реактжежбиблиотекануб), которые умеют рендерить на сервере. Зато если уж покрыли всё тестами хотя бы в одном проекте можно всех остальных свысока обзывать чушканами, что есть то есть. Это пожалуй самое сладкое в tdd. Алсо, это все о небольших проектах, если вы поддерживаете кадавра десятилетиями, там и тесты и документация и гайдланы и вообще своя атмосфера.
>>606378 >Худшее нововведение — классы. Они добавлены для Java-программистов, которые не хотят учить JavaScript. Для тех, «кто не подозревает, насколько он жалок»
Посоны, лень читать километровые простыни об ООП в жс, поясните насчёт классов. До этого реализовывал их только в плюсцах, и то недолго, а тут пришлось пересесть на жс. Существует ли описание класса в отдельности от экземпляра? Или мне нужно создать первый экземпляр, а потом напихать в него нужные методы через prototype?
>>607187 >Или мне нужно создать первый экземпляр, а потом напихать в него нужные методы через prototype? Зыс. Но все равно не надо читать простыни и флэнагановскую водичку, почитай Крокфорда и всё быстро поймешь.
>>607465 Неправильно, Антоша, ты бутерброд ешь. Нужно наворачивать английский одновременно с обучением языку. Так время экономится геометрически. Сначала тяжело, но зато быстрее и толку больше. Сидишь читаешь в голос, и охуеваешь своему неумению. Сидишь и дальше читаешь. А как ты думал?
>>606958 При чем тут вообще типизация и интерпретируемость, колхозник? Другое дело, что 99% поделок, написанных на JS, умещаются в 100 строк, и Factory там как ежу футболка, но туда ее никто и не тащит.
>>601735 (OP) Тред не читал. Котоны, а есть на жс платформа или фреймворк которая бы позволяла разрабатывать веб-приложение как десктопное? Т.е. графическая часть с виджетами, расположением формочек, стилями и пр. так же прописываются через жс.
>>607954 >почему фактори стало парашным паттерном Это применительно к js и es6 в частности. Фабрика служит для создания объектов определенного класса. Но в js понятие "класса", применительно к объекту довольно расплывчато. Оно скорее в голове у каждого желающего считать "классом" что-либо. Если смотреть шире и сказать, что фабрика это любой объект, обладающий фабричным методом, производящим новые объекты, то с такой широкой трактовкой обсуждать особо нечего. В js и так куда ни плюнь везде объекты и порождающие их методы. Как, например, представить абстрактную фабрику на js? Нет, конечно, написать код можно, гибкость и возможности языка позволяют, при этом позволяли это делать спокойно и до es6, но это будет просто натягивание чужеродных концепций на язык, в котором они и близко не являются необходимостью. В отличии от языков со статической типизацией, там это действительно может быть нужно. А для депенденси инжекшен, как раз вся суть вроде бы и состоит в том, что ты внедряешь зависимости без привязки к тому, каким образом объект, содержащий зависимость был произведен. Фабрики и DI это сравнение теплого с мягким.
>>608049 По сути любой модуль, возвращающий тебе объект или массив в зависимости от окружения или параметров есть фабрика. Так что в JS эти фабрики повсюду. Почему я спросил про DI? ну ты или делаешь tell(message, Socket) или tell(message){ socket = fabric.getSocket(dev/test) ...}
О боги js. Есть такая ситуация. Должна быть взлетная полоса и летающие самолеты по ней. Не обязательно что-нибудь красивое. Главное чтобы они могли хоть как-то передвигаться. Вид сверху. Про что нужно почитать чтобы сделать это?
Что не так? Это типа игра в крестики-нолики (знаю, что графически ничего не выводится), однако, после первого нажатия жаба выдаёт мне сообщение о победе. Не могу понять что я сделал не так — подтолкните, плез.
>>608173 Я только учу JS, но, кажется, что-то не так с функцией isWin. Вот эти повторяющиеся инструкции, отсутствие фигурных скобок (необязательны, но рекомендуют всегда ставить), два знака равно вместо трех,
>>608169 А может ты расскажешь, от чего нужно неинтерактивную анимацию реализовывать не через формат, созданный для анимации, не через css, а через скриптовый язык? Только чтобы показать какой ты модный-продвинутый погромист?
>>608201 >намекает То есть не имея указанной необходимости предлагаем наиболее сложное и наименее поддерживаемое решение? Вместо отображением браузером файла анимации, гоняем туда-сюда скрипт на каждый фрейм? Можно было бы просто уточнит, если есть подозрения, что автор запроса не смог его достаточно четко сформулировать.
>>608206 Куда туда-сюда гоняем? Если у тебя есть подозрения, что человек спрашивал про гифку в треде про жс, то мог бы уточнить, прежде чем свой высер писать.
Я пришел плакаться нахуй, больше не могу. Черт меня дернул взять реакт. React-dom подкупает своей выразительностью и модульностью, но когда видишь свой проект просто жопа горит: карточный домик из нестабильных говнобиблиотек, написанных хипстерами-пидорами, старающихся запихать в них любую околомодную поеботу. Суки, ебаная солянка из ECMAScript 5 6 7, coffeescript и статищ архитектур. Идите нахуй аывгарыва
решил войти в js, и начал изучение с http://learn.javascript.ru/ Пока что мало что понимаю, и вообще правильно ли я начала знакомиться с этим языком? Нормально ли, что я не все понимаю? У вас было так же?
>>608233 100 раз предупреждали, что в IT делать нечего, это ебанная свалка говна, не имеющая ничего общего с ламповым программированием. Нет же, "сейчас как вкатимся, сейчас как начнем по 200 тысяч в день получать за нихуя", вот и страдайте теперь.
>>608320 Что я там только не делаю, наверно скоро буду и полы мыть. А им только лишь бы пиздеть, да над душой стоять, "скоро там моя задачку закончишь?"
>>608233 Но тебя же никто не заставлял собирать солянку из чужих компонентов, правда? Если серьезно, у меня только после пяти проектов на реакте стало получаться что-то похожее на приличный код, там порог вхождения довольно высокий и документация к новичкам крайне недружелюбная, первый блин кубом, это норм тащемта.
>>608367 да. но в зависимости от масштаба проекта. начиная с определенного размера вместо фреймворков просто начинаются свои велосипеды. и многих это не останавливает, в итоге, когда приходит новый чел в команду, он вместо осмысленной деятельности разбирается в тонкостях любительского велосипедостроения. с одной стороны, полезно авторам поделия как жизненный опыт, с другой стороны, породить что-то годное, написать документацию, отладить, поддерживать регулярно etc может либо крупная контора, у которой есть ресурсы на авторскую архитектуру, либо чел, который реально шарит, а такие не станут писать бессмысленные велосипеды, а такие ребята как правило пишут по делу, там где действительно можно написать лучше или там где еще ничего годного не запилили.
>>608373 >порог вхождения довольно высокий и документация к новичкам крайне недружелюбная Лолшто? Реакт один из самых простых фреймворков эвер, а документация там просто класс, всем бы такую документацию.
>>608309 В парашке вообще нет айти и никогда не было. Что можно говорить про айти в парашке, когда крупнейшая её "айти"-компания распространяет малвари?
>>608419 Ну хоть >>608388 и агрит по делу, я не его логику защищаю, а реакт, конечно же, все-таки реакт это несколько больше, чем 'просто шаблонизатор'. Если вам нужен 'просто шаблонизатор', лучше jade еще ничего не придумали (в том числе на клиенте), а реакт -- это таки больше чем библиотека, в чисто идеологическом смысле, в том смысле, что если вы начали его использовать, вы структурируете код предложенным образом, react-way, если вы этого не делаете, react теряет смысл, он просто не нужен. Я вот сколько ни сталкивался, а вот это особое подчеркивание, мол 'это просто библиотека' так и не могу распарсить. Ну да, ну библиотека, ну цукерберги сами его именуют библиотекой, а что могут фреймворки такого, что нельзя реализовать на реакте? Мы можем конечно поупражняться в дефинициях того, что есть фреймворк, но по факту использование реакта с другими фреймворками (настоящими фреймворками, да) порождает некоторую избыточность, конфликт логики. Даже в связке с другими 'просто библиотеками' мы получаем избыточность, react+jq или react+d3 на выходе дают код, который хочется переписать, ибо часть функционала дублирована. По мне -- все-таки фреймворк, а ребята из фб со своим 'ну это у нас тут обычная такая маленькая библиотека' просто кокетничают, на то они и позёры. А если смотреть шире, наверное это хорошо, что уходящий 2015 принес нам новую тему для холивора. Let the fight begin!
>>608444 >Неосилил штоле? Да тут не во мне дело, а вот в этом утверждении: >документация там просто класс Есть подозрение, что господа разработчики не сталкивались с нормальной документацией. Или просто немного выпендриваются. Все мы ее так или иначе читали, и утверждать, что она дружелюбна к новичкам == очевидно грешить против истины.
>>608456 Двачую. >>608461 Не знаю, как для новичков, и вообще кого ты под новичками имеешь в виду, но для человека, который знаком хотя бы с парой библиотек/фреймворков/называйте-как-хотите, документация реакта кажется вполне годной, подробной, понятной, да ещё и нормально оформленной.
Приведи пример нормальной документации, и чем она конкретно нравится тебе больше, чем у реакта.
>>608419 > реакт не фреймворк, это просто вью-либа, И неслабых размеров экосистема, которую нужно знать, чтобы сделать на этой либе что-то крупее TODO MVC.
>>608462 >>608466 Ну лично мне не нравится тем, что react предполагает некую парадигму, которую вы черпаете из статей и выступлений на конференциях, а не на офф сайте. На уровне конкретных методов-то все норм, но какого-то intro для нубов и пояснений за virtual dom и описания всех преимуществ вы сходу не получите из документации. Заметьте, я не критикую сам react, я все последние проекты писал на реакте и доволен как слон, просто чтобы разобраться с даже с такими банальностями, как то, что внутри {} в render можно творить все, что может быть returned, надо посмотреть видюшки, почитать чужой код или спросить у товарищей, в документации это вежливо замалчивается. Или тот же dangerouslySetInnerHTML, ну извините, если это шаблонизатор, то пишите на главной странице большими буквами таие вещи, все же первый раз спокойно скармливают рендеру разметку и лезут гуглить почему эта херня не работает. Нет, ну если вам нравится считать эту документацию дружественной, все ок. Действительно, разобраться не так сложно, ну пару запросов в гугл, о чем речь. У нас и в магазинах хамят и это норм, но стоит ли называть это дружелюбным? У того же lodash или jq документация такая, что любой нуб постесняется задавать живым людям идиотские вопросы, все разжевано для дебилов. А тут как бы есть нюансы. Но возможно тут еще стоит скинуть на молодость библиотеки (или фреймворка, кому как нравится), на момент появления jq там возможно тоже было уныние и отчаяние во все поля, не застал.
Про рендер в куче примеров на самом сайте показывается, что там можно что угодно делать.
Всего этого вполне достаточно, чтобы писать на чистом реакте уж по-крайней мере в раз лучше, чем на какой-нибудь жквери. Назвать документацию недружелюбной никак не могу, там есть тупо всё что нужно, с примерами, ссылками и т.д.
>>608516 Да, все так, мне-то эти ссылки не нужны, я и сам те же ссылки буду кидать нубам при случае, но тут видимо тонкая грань между документацией и туториалом, когда я первый раз писал что-то на реакте, было, мягко говоря, неуютно. Вот это: https://facebook.github.io/react/docs/why-react.html -- это просто пиздец. Шесть заголовков к абзацам из пары строк, пара отсылок на какие-то несвязанные с предметом страницы и ни слова по существу вообще. Вы айфон новый впариваете хомякам или это документация к библиотеке? Вот это еще как-то похоже на туториал: https://facebook.github.io/react/docs/tutorial.html но черт подери, вы масонская блядь ложа или js библиотека, там ебаные сотни строк невнятного (для того кто на реакте не писал) кода и лаконичные комментарии, ну типа вот так у нас все и работает. А зачем/почему/что-тут-вообще-происходит -- читайте туториал с шестью заголовками и 12 строчками о том, как у нас все хорошо и какаие мы реактивные. Не, братцы, если вы считаете это нормальной документацией, вы долбаные гении, ок, но нормальный человек по этим психоделическим страницам научиться ничему не сможет, утверждать обратное конечно можно, но только ради того, чтобы все похвалили ваши телепатические способности.
>>608566 >Шесть заголовков к абзацам из пары строк, пара отсылок на какие-то несвязанные с предметом страницы и ни слова по существу вообще. Лолштоа? Ты хотел интро для новичка, ты его получил. Простыми словами сказано в чем суть.
Сорри, дальнейший спор даже не буду продолжать, просто жалко времени, т.к. я считаю тебя тупым, если ты не осилил туториал и посчитал его сложным/непонятным. А с тупыми людьми я не спорю, сорян.
П.С. сравнивать доки лодаша, где тупо набор функций, с доками реакта, где всё от друг друга зависит - это просто топ кек.
анонсы, ну пожалуйста, поясните за флукс, какую проблему решает, чо полезного он делает, в каком месте приложения его вставлять, нужен ли он на сервере и т.д.? я тупо не понимаю зачем он нужен, в смысле предназнчения :(
Я уже другой анон. Подскажите следующий момент. Собрался ты делать сайт наподобие википедии или социалочки какой. Нужно ли делать сайт так в современном мире, чтобы он без жс работал или сразу берёшь и на бустрапе или ангуляре пилишь? Что по этому поводу ведущие лебедевы думают?
>>609147 бля, глянь любой проект в гитхабе. сейчас, подожди, скину ссылку где я много спиздил. Expect.js м. джэксона, мока, чай не нужен нах, т.к. экспект его и синон заменяет.
>>609300 png предполагает скриншот без сжатия, что позволяет в полной мере оценивать твой уебищный скрин, ублюдина тупая, спрыгни нахуй с крыши, биомасса.
>>609305 В этих доках есть текст. Текст состоит из букв. Буквы рендерятся твоим ебучим FreeType. Без патчей твой ебучий FreeType рендерит буквы хуево. Сделай что-нибудь с этим, тупорылая пиздоглазая блядина. Вот тебе нормальный рендеринг.
>>602816 Совету второй ангуляр. Уже успел написать один прототип на нём, остался очень доволен. Всё просто, лаконично и понятно, без лишних замутов. А реакт говно редкостное. Как увидел в джсе хмтл разметку, закрыл сразу.
Чет никак не могу осилить код из книги JavaScript The Good Parts. В книге приведен пример реализации оператора `new` как метода, как если бы не было такого оператора. то есть `Constructor.new()` вместо `new Constructor()`
https://jsfiddle.net/y8bw2j0s/ // 1 Метод, с помощью которого удобно добавлять методы к любому объекту (ранее встречался в книге, нужен для работы этого примера). // 2 Собственно реализация метода `new`
Что делает код `var other = this.apply(that, arguments);` и `(typeof other === 'object' && other)`?
# this в данной ситуации равен Function (паттерн вызова метода, this привязывается к объекту, в котором этот метод находится) # apply связывается this с that # that только что созданный объект, свойство __proto__ которого равно Function.prototype или Object.prototype Короче, более менее все понятно, но нахуя это делается?
>>609189 Открою секрет: в действительно большом приложении ты заебёшься столько констант писать. У нас в проекте используется голый flux, но чтобы не плодить бойлерплейт, пишем маленькие экшены инлайн. Выглядит это примерно так:
В обработке экшенов внутри стора: switch(action.type) { case AppConst.UPDATE_STORE: _state = action.fn(_state) store.emitChange() break; .... }
Дальше экспортим из стора такую функцию export function updateStore(fn) { Dispatcher.dispatch({type: AppConst.UPDATE_STORE, fn: fn}) }
И дальше в коде где нужен экшен пишется что-то вроде onClick={()=>updateStore((st)=>st.update('clicked', false))
Всё это в итоге экономит дохуя времени и делает код более читабельным. Желательно чтобы в сторе всё хранилось в виде иммутабельных структур данных (immutable-js или mori), чтобы нельзя было ничего сломать (в качестве бонуса, можно будет потом сильно ускорить рендеринг через shouldComponentUpdate)
Анони, подскажите. Хочу начать задрачивать JS, и так шоп устроится работать фронтэндщиком, а в свободное время игори пилить малюсенькие по фану. А если в голову взбредет свой проект создать под мобилки - юзать NativeScript и всё такое. То есть я выбираю один язык на все случаи жизне. Правильный ли ход мысле? Понятное дело что: каждой задаче - свой язык. Но блять, хотелось бы так, как хочу.
Можно ли как-то скриптом проходить по сайту и нажимать на кнопки, сформированные JS? Вот случай, когда JS прямо в исходном коде виден, а не подгружается из сайта: http://www.mobilluck.com.ua/katalog/cushions/craftholic/craftholic-Green_Sloth_Jr__S152-20_-611945.html рейтинг со звёздами. Я хочу пропарсить сайт и провести манипуляции с JS, с тем же рейтингом, например. Накрутить его в ту или иную сторону по всем товарам, например.
>>610155 > устроится работать фронтэндщиком, а в свободное время игори пилить малюсенькие по фану Это легко > А если в голову взбредет свой проект создать под мобилки - юзать NativeScript и всё такое Лучше React Native > Правильный ли ход мысле? Понятное дело что: каждой задаче - свой язык. Но блять, хотелось бы так, как хочу. Ты главное начинай что-то делать. Если вдруг понадобится изучить другой язык - изучишь. Второй язык учится гораздо быстрее.
Скрипт я думал написать на питоне, например. Но не могу понять, можно ли вообще выцепить JS функции, вызвать их каким-то запросом к странице? А если честно, то вообще не могу понять, где функции в приведённом мной примере страницы, которые отвечают за отправку оценки пользователя в базу. Вижу только описание того, как отображать рейтинг на основе уже проставленных оценок
>>610220 Там же написано $.get( "//www.mobilluck.com.ua/ajx/raiting.php", { id_arc: id_arc, user_votes: user_votes, csi: "ri3u7djp2vjukeebte3mdrn7i3", type: "item" });
Что за долбаебы делают get на set rating
id_arc чуть выше: >id_arc = '611950'; // id статьи
user_votes - оценка, от 1 до 5 inclusive
csi - id сессии, по нему определяется голосовал ты уже за этот товар или нет
Теперь хорошие новости: id_arc написан в ссылке последним числом, в твоей ссылке - 611945 csi - может быть любым, хоть 123, поэтому хуячишь гуиды на каждый запрос, so much security
прекрасно работает, благодарю за помощь! Это питон, если что.
>Ничоси ты зловредный. Хочется поупражняться, а они мне прислали не тот товар, что я заказывал, да ещё и дороже, а потом не опубликовали отрицательный отзыв. Вот и будут жертвами экспериментов теперь
>>610296 Там >из ссылки должно быть. >не опубликовали отрицательный отзыв Ну они и голоса могут скрутить обратно, хех. >прислали не тот товар В общем, они получили клиента, которого заслужили.
Интересует вопрос по ES6, туда вроде как нормальное ООП завезли. Слышал, что прежняя реализация ломала мозг всем тем, кто привык к ООП в Java, C#, C++. И как здесь вкатываться в JS, курить его прототипную реализацию ООП, чтобы забыть её, когда осуществится перекат на ES6?
>>610238 Да я так то уже на плюсах программки писал, на C# уже довольно неплохо, с WPF'ом и MySQL'ями. HTML и CSS тоже хорошо знаю (ну там и знать то нечего). А JS только основы языка знаю. Просто я хочу определится какой язык мне задрачивать для профессиональной работы. Но не знаю какое направление выбрать. Мне все нравится. И я вот думаю, задрочу ка я JS который везде используется, раз мне все нравится.
>>610595 Меньше пробелов, еще меньше. Вообще на них забей, нахуй форматирование, нахуй читаемый код, браузер и так разберет. Только лапша, только хардкор.
>>610690 по мне так они стоят именно там где должны и не растягивают код в кашу, зрительно восприятие цельных блоков гараздо лучше, поэтому блядь идите нахуй со своими понятиями что так надо и так, воспринимается и читается он вполне нормально.
>>610690 Это еще ладно. Вот когда отсутствие и наличие пробелов в перемешку (к примеру: var x= 1,y =123 ;), тогда тотальный пиздец.
>>610708 Пробелы делают код более просторным и чистым, а не растягивают его в кашу. Каша это как раз таки тот код, на скрине. Все слитно, нераздельно, смешанно. Ставь больше пробелов и пустых строк. Чтобы хоть как то различать свои действия.
Нужно писать свой код так, чтобы он был понятен не машине или тебе, а другим людям. Давайте,блять,не ставить пробелымеждусловами и знакамиприпинания.Всё и такпрекрасно читается.Че нам в кашу текстто превращать,а?Норм,че.Давайте не писать с новой строки,нахуй нам смысловую нагрузку разделять.Всё и так ахуенно.
>>610595 Цикл for пишется через точку с запятой, а не через запятую. Забавно, что пробелоёбы этого не заметили, а отсутствие пробелов заметили. Сразу видно, что опыта нет в чтении чужого кода, там ко всему привыкаешь.
ньюфажина в треде. Обьясните пожалуйста когда есть смысл использовать именованные функции, а когда анонимные, а когда как объекты? И Можно ли юзать всегда анонимные функции? блядь, каша в голове. из-за таких возможностей
>>611112 да пох если честно. Именные круче в плане дебага. Лучше всего ты используешь IIFE и module pattern = хорошая сексуальная практика чтобы не разорвать очко по началу
еще такие вопроы к примеру есть компонент и в нем типа ИНКАПСУЛИРОВАНА логика и все такое например это форма редактирования юзера ну и они например состоит из 3 полей - возраст - <input> - пол - радио баттон - ориентация - <select>
и кнопка еще есть ОК при клике, компонент рассчитывает, сколько пользователю дней осталось жить
ну и типа приложение вообще не должно знать что происходит на уровне данных внутри компонента, одно важно, что дает этот компонент на выходе - число какое-то там
вопросы: у компонента должен быть стор, который обновляется при взаимодействии с элементами формы внутри него? этот стор где-то скрыт или цепляется к стору приложения?
Ладно, адепты, где я опять запятые проебал? Я уже заебался из-за такой хуйни столько времени тратить. В общем тут задается массив из 3х имен, проверка, чтоб не было забугорных букв, когда есть они все ок работает, но когда отсутствуют if конструкция нихуя не выдает 3 раза "все ок". Пиздец я смотрю на нее и хочу сказать не ахуела ли она?! По логике после интерации вложенного цикла должно срабатывать, а нихуя. Где я наебался?
>>611390 Потому что ты мудак блять. Что ты делаешь вообще? Первое. Нахуя ты делаешь функции, которые ничего не возвращают? Ты просто кусок логики обернул в функцию. Зачем? Второе. После return функция завершает свою работу и ничего после return выполнено не будет. Поэтому нихуя не выводится. Ты ж вообще нихуя языка не знаешь.
>>611398 Функция была до этого я в нее завернул просто, почему бы и нет. Функция мне информацию .write возвращает. Когда я все ввожу верно return не срабатывает ибо он заключен в конструкцию if. Return там для того, чтобы ронять функцию при первой встрече с англ буквой.
>>611401 У тебя в условии "z=0". "=" - это оператор присвоения, а не сравнения. Там должен быть оператор сравнения.
> Функция была до этого я в нее завернул просто, почему бы и нет. Потому что ты используешь её не по назначению.
> Функция мне информацию .write возвращает. Она не возвращает, а печатает. Это функция делать не должна. Она должна возвращать данные, с которыми ты потом можешь что-то сделать.
> Когда я все ввожу верно return не срабатывает ибо он заключен в конструкцию if. Return там для того, чтобы ронять функцию при первой встрече с англ буквой. Ну это уже просто пиздец
>>611408 За сравнение спасибо, там и проебался. Знаю, что лучше это все делать просто циклами, и функция нахуй не нужна. И использование returna тут только из-за того, что функция. Как бы это все не к месту было и уебещно не выглядело, но это работает. Чисто сделал чтоб проверить, что можно и так.
>>611415 Это жс, тут можно как угодно. Но в твоем случае правильнее сделать функцию, которая будет проверять слово и функцию, которая будет проверять массив слов через эту функцию.
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, Walmart и многие другие.
Всем JS разработчикам обязательно к прочтению - https://learn.javascript.ru/es-modern Новые фичи ES6 на русском.
Краткий FAQ:
1. Что это за язык такой? - Мультипарадигменный язык, изначально создавался для использования в браузерах как язык сценариев для придания интерактивности веб-страницам, однако в процессе своего развития преодолел этот этап и сейчас может использоваться для любых целей ввиду своей неограниченной гибкости и удивительно удобного синтаксиса. Сочетает в себе особенности объектно-ориентированного, функционального, событийно-ориентированного и императивного программирования.
2. Какие возможные направления для разработки существуют? - Фронт-энд (Vanilla, jQuery, Angular, Backbone, React, Meteor), бэк-энд (Node.js, Express, Sails), геймдев (Phaser, Cocos, Pixi), 3D графика (Three.js, Babylon.js), мобильная разработка (NativeScript, Phonegap, Ionic), десктопная разработка (NW.js, WinJS).
3. Можно выучить только jQuery и всё писать на нём? - Не стоит, лучше начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и в будущем не испытывать трудностей с изучением сложных фреймворков.
4. Существуют ли стайл-гайды для JavaScript? - Да, вот: https://github.com/felixge/node-style-guide
5. Ну ладно, с чего начать изучение то? - Дальше я приложу список материалов для изучения.
Чистый JS:
Книги: Дэвид Фленеган - "JavaScript: Подробное руководство"
Дуглас Крокфорд "JavaScript: сильные стороны"
Стефанов С. - "JavaScript. Шаблоны"
Джон Резиг - "Секреты JavaScript ниндзя"
Николас Закас - "JavaScript. Оптимизация производительности"
Node.js
М. Кантелон , М. Хартер - "Node.js в действии"
Кирилл Сухов - "Node.js. Путеводитель по технологии"
Дэвид Хэррон - Node.js. Разработка серверных веб-приложений
Front-end
Эдди Османи - "Разработка Backbone.js приложений"
Эрл Каслдайн, Крэйг Шарки - "Изучаем JQuery"
Читать онлайн
Dr. Axel Rauschmayer - "Speaking JavaScript: An In-Depth Guide for Programmers" - Одна из лучших книг по JS. Пока только на английском. http://speakingjs.com/
Marijn Haverbeke - "Eloquent Javascript" - Вводная книга по JavaScript и программирование в целом. Перевод на хабре: http://habrahabr.ru/post/240219/ На английском :http://eloquentjavascript.net/
http://ru.discovermeteor.com/ - Книга по Meteor.js - одному из самых лёгких и функциональных фреймворков. Полностью на русском.
Онлайн сообщества:
http://learn.javascript.ru/ - оно одно, единственное. Начинать учить язык советую отсюда, потом переходить уже к книгам.
http://www.jstherightway.org/ - Огромный гайд составленный буржуями. Есть книги, статьи и всё-всё-всё.
http://nodeguide.ru - Огромное количество переведённых статей по Node.js
http://node-center.ru - собрание информации по Node.js. Особенно интересен раздел со ссылками и книгами.
Бложики и новостные ленты:
http://dailyjs.com/ - DailyJS
http://weblog.bocoup.com/ - Bocoup Weblog
http://perfectionkills.com/ - Perfection Kills
http://www.reddit.com/r/javascript - subreddit на reddit.com
http://toddmotto.com/ - Todd Motto, Lead front-end @appsbroker. Developer Expert @google.
Онлайн курсы:
Как же можно учить язык, только читая книжки? Нужна практика, и только так изучаемое усваивается, не иначе.
CodeSchool - http://codeschool.com/ Отличный ресурс для изучения языка, очень много курсов по всем передовым технологиям.
CodeAcademy - http://www.codecademy.com/ Уже не такой сильный, но все еще интересный проект, так же маст хев для набивания скилла.
Udacity - https://www.udacity.com/course/ud015 Дает хорошее представление о замыканиях.
Выучил основы, написал свою пузырьковую сортировку и змейку? Не знаешь как двигаться дальше?
Почитай теперь это - https://shamansir.github.io/JavaScript-Garden/
А потом? Я и так уже гений!!!
Выбери себе направление. Может, ты хочешь игори делать? Тогда вперед на гитхаб, и ищи Phaser, Pixi и другое, выбор не маленький. Хочешь на сервер сайд? Копай в сторону Node.js, Express, Socket.io. Хочешь писать MVC логику? Angular, Backbone, React, да множество их. Нельзя забывать про NW.js и WinJS, позволяющие создавать десктопные приложения.