Этот тред посвящён главному языку будущего - 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, позволяющие создавать десктопные приложения.
Два наркомана сидят курят, о фреймворках разговаривают. — Вот Ангуляр... — О-о, Ангуляр, да, да... — Или Реакт... — О-о, Реакт, да, да... Первый, смотрит второму на сигарету: "пепел сбей". — Пепелсбей ваще крутой фреймворк
>Here is an example: Suppose we are parsing a language such as JavaScript or TEX in which a pair of curly braces indicates a scope.
Что этот код https://jsfiddle.net/9qby57u1/ делает? Что за функция advanced, которая нигде не определена, нахуя она применяется сначала к '{', потом к '{'. parse?
>>611542 1. Приходишь на собеседование и говоришь, что у тебя диплом, но нихуя сделать не можешь. Не берут 2. Приходишь без вышки, но можешь все сделать. Берут 3. Приходишь без вышки все делаешь но есть еще такой же который все сделал и с вышкой, тебя не берут. Все. Больше не спрашивай. Главное умение, а не бумажка, если речь не про электриков, врачей и т.д.
>>611482 Смысл то тут в Object.create и как свойства у объектов ищутся по прототипной цепочке. Считай что advance сдвигает каретку парсера, parse - заполняет scope - переменными.
>>611559 Падажи, еба-на, то как ищутся свойства я знаю: если у объекта нет такого, то оно ищется у прототипа и так далее по цепи. Делегирование, хуе-моё. Object.create создает новый объект с указанным прототипом. Но что за каретка парсера, и как ты узнал, что делает parse? Что-то совсем не пойму смысл происходящего
>>611582 Так он и говорит, что если бы мы парсили язык с нормальными скопами, а потом обращались к переменным, то переменные искались бы так же, как и в жс-ных объектах. Считай что это псевдо-код был.
>>611588 >нормальными скопами Типа в жс нету блочной области видимости, поэтому скопы ненормальные?
Автор предлагает представить, что мы парсим язык такой как JS, но с «нормальными скопами»: элементы, находящиеся в скопе, не видны снаружи. >In a sense, an inner scope inherits from its outer scope >то переменные искались бы так же, как и в жс-ных объектах То есть, если в скопе нет чего-то, то недостающий элемент ищется снаружи?
>>611612 >То есть, если в скопе нет чего-то, то недостающий элемент ищется снаружи? Это.
Автор хотел на примере аналогии показать, как работает прототипное наследование. Ты понял как оно работает, но не понял аналогию, либо теперь не понимаешь нахуя она здесь, ведь и так все понятно. Move on.
>>611340 Стор делают для всего приложения, а не для отдельных компонентов. Тем более для такого маленького компонента из 3х инпутов он не нужен, храни всё в самом стейте компонента.
>>611753 Советую забить на книгу и посмотреть презентацию, а потом почитать что-то более современное, иначе ты наоборот плохую практику подхватишь скорее всего
Двачую, братцы. Старый пердун хорош, стандарты писал и все такое, но на данный момент... все немного иначе. Крокфордца наворачивать нубам рекомендую по остаточному принципу (он правда очень крутые штуки рассказывает, просто утекло с тех пор некисло), ну или если хочется писать чистый непорочный ванильный js, таки да, для пуристов за последние 5 лет ничего не изменилось.
>>611789 Почитал я комментарии людей под видео лекции с Пердуном. Такое ощущение, что у комментаторов баттхерт от осознания, что все их техники устарели и они пишут плохой код. «Вы всё врёти! Старик обезумел, ему пора на покой»
>>611754 Например, в The Better Parts можно увидеть пример функции, производящей объекты. function constructor(spec) { let { member } = spec, { other } = other_constructor(spec), method = function() { // member, other, methid, spec };
return Object.freeze({ method, other }); }
Это, похоже, обновленный вариант функции, предложенной в книге в главе Inheritance. Там все подробно описано, что все это значит. Ньюфагу как мне пригодится.
>>611800 со старой школой вообще странные отношения нынче, мало того, что все слишком быстро развивается с момента появления хрома и устаревают 'классические' расклады, нынче читаешь охуенный туториал какой-нибудь на ангельском, смотришь, а там пацан 20 лет, которого у нас бы в распоследнюю програмировачную не взяли бы цмски поддерживать из-за отсутствия военного билета и распиздяйства. и вот тут-то и начинается бугурт и появляется острое желание следить за всеми новинками. ибо какого хуя, тут у нас и равняться не на кого, к прискорбию.
Интересные у вас тут рассуждения пошли. Посоветуйте тогда, что же из списка в ОП-посте по чистому джс еще актуально для полного ньюфага вроде меня ??learn.javascript доучиваю
А то я как раз думал за "старого пердуна" браться, когда с кантором закончу.
>>611832 Good Parts. Потому что книжка тонкая, быстро прочтешь и хуже тебе не станет. При просмотре актуальных лекций от Крокфорда, будешь в теме. Инфа вообще в книге правильная, устарел сам список хороших частей языка.
>>611832 Тут неприятный прикол а том, что на чистом уже не пишут, а знать все равно надо. Анон >>611838 с одной стороны верно говорит, про годные куски не повредит почитать. Но когда за деньги будешь писать, возможно, важнее будет знать про всевозможные паттерны, es6, всю экосистему (из сборщиков, пре/пост-процессоров, шаблонизаторов, фреймворков и прочей хуерги). Что сейчас в первую очередь надо задрачивать, уже хз, чтобы шарить, надо шарить во всем. с одной стороны хорошо (за то нам и платят), с другой, может и хардкорненько вкатываться нынче.
Сап двощ. Хочу сделать другу подарок: бумажную книгу по js, но это должна быть: - продвинутая книга, для уже опытного и слегка искушённого годами кодера - книга достаточно объёмная и вместительная, чтобы за неё можно было браться вновь и внось, обращаться у нужным моментам, заглядывать в неё, как справочник, а заодно вспоминать, какой я хороший друг, раз подарил её. Сам книг читал не так много: полный справочник понравился, но хотел бы что-то более углублённое, и связанное с опытом флагманов области: good parts, методы по производительности и прочему. Чем занимается друг: парсеры и прочие серверные скрипты на Node.js, а в скором будущем Meteor и React. ОП-пост прочёл, но подборок хороших js книг полно, а выбрать лучшую не получается.
>>611847 Ничего ультрахардкорного в этом не вижу. Надо только знать направление, а материалов в инете вагон. Спасибо за ответ, думаю, с книгой крокфорда все же ознакомлюсь. Не помешает. Хочу сначала в пьюр джс разобраться норм, а тогда и с фреймворками любыми попроще будет.
Крокфорд норм чувак, те вещи что он описывает тоже актуальные и сейчас по большей мере. Я бы начал с you dont know js серии, благо она бесплатная и очень по делу.
>>611422 (OP) Програмцы, тут есть одна галлерейка на чистом хтмл и надо её проапгрейдить. Условно, есть n*m табличка с пикчами: хуи, сиськи, пёзды. Надо зоделать сверху три иконки: хуй, пизда, сиська, при нажатии которых нерилейтед пикчи несколько блюрились бы. В этот ваш JS не умею, фрейморки какие-то. Что почитать, чтоб быстро въехать и зоделать желаемое? Не бейте, можете обоссать, просто я умею только в скрипты на пистоне для минимальной автоматизации.
Дайте совет ньюфагу, как изучать технологии? Типа React, Redux, Webpack, React-router, Material-UI и проч. Почитываю документацию и что дальше? Когда пытаюсь сделать вместе, получается какая-то хуйня. Или просто на все это нужно тратить месяцы и годы? JS знаю на базовом уровне, но решил сразу начать изучать реакты, дабы по-пути изучать именно то, что нужно.
>>612355 -весь стейт в одном месте. -стейт мутейтится функциональным способом (чтоб кодеманка делала это в одном месте и очевидным образом, а не обмазывалась говном с ног до головы)
1. import CSSModules from 'react-css-modules'; 2. каждый компонент - свой файлик стилей, я кладу в отдельные папки 3. import styles from './index.styl' импортим стили. Я испьзую стилус с лоадером, так же делаем и с css 4. В компоненте ставим className={styles.header|wrapper|content u name it} 5. В конце компонента добавляем декоратор
export default CSSModules(Input, styles); вместо export default Input
В вебпаке добавляем к css_loder ?modules так же и с препроцессорами, вот мой пример
>>612678 И в чем профит? Допустим есть у меня некий инпут и стили для него, я его использую два раза, получится 2 раза стили будут дублироваться с разным хешем. В чем прикол?
JSаны, есть ли возможность писать на кофе, и при этом транслировать его в es6, и иметь все его плюшки? Не хочется отказыватся от няшного синтаксиса, но пользоваться ES6 уже надо.
Приветствую. Модифицируйте пожалуйста скрипт http://pastebin.com/AqhG8rt2 для сайта csgodouble.com Этот скрипт ставит по типу красное-черное, и удваивает при проигрыше. Мне нужно, чтобы он ставил на зеленое умножая предыдущую ставку на 1.08 . Требуется наличие аккаунта стим для входа на сайт.
>>612956 Код между ` и ` помещай. На Рельсах (и на sprockets в целом) тебе надо поместить coffee перед 6to5 и называть файлы .js.es6.coffee (или можно настроить и без таких названий, хз)
>>612926 Я знаю, что такое css модули. Объясни в чем сути того, что ты написал, у тебя разве не будет дублирования стилей? Пример, опять же: 2 инпута, юзаем в разных местах, стили для них одинаковые. В обоих случаях мы импортим стили, но хэши создаются разные, условно будет "input_class_khj123" и "input_class_uio321". В чем профит?
Когда он проходит через style-loader он превращается в js-модуль, который ничего не экспортирует, просто добавляет стили на страницу.
Css-модули просто добавляют еще один этап обработки - стили переименовываются и js-модуль теперь возвращает объект с именами классов.
Нет никакого дублирования, хэши ведь не в момент импорта создаются, не в рантайме, они при сборке создаются, один раз. Я вообще не понимаю как к такой мысли вообще можно прийти.
>>613085 Если нет дублирования, тогда вообще какой смысл? Иначе я бы в первом компоненте импортнул стандартные стили, тут же на ходу поменял условно какой-нибудь стиль, типо color: red вместо color: green, и мне создались стили с хешем, где класс "xyu" имеет красный цвет. При этом во втором компоненте я бы импортнул те же самые стили, но цвет бы там остался прежним, при всём прочем, и стили не пересекались бы, т.к. хэш уже другой. Если у тебя они не дублируются, то это не модули, а какое-то говно непонятно зачем нужное. Зачем ты вообще это юзаешь? Как они тебе помогают?
>>613165 Смысл css модулей в том чтобы одинаковые имена классов в разных файлах переименовывать в разные имена, чтобы они между собой не конфликтовали. Нельзя никак блядь на ходу при импорте менять color:red на green, это обычный css, я вобще не понимаю что это значит.
Более того, даже в javacript модулях, если ты импортируешь модуль и что-то в нем поменяешь, то в другом месте где этот модуль импортируется, модуль тоже будет измененный
Поцоны, какого хуя так медленно то бля? Есть страничка, которая "генерит" 32х32 таких блоков: <img src="http://i.imgur.com/48VIfoa.png?1" title="${tile}" /> Так вот, она загружается где-то секунд пять. Как ускорить?
Смотря как импортируешь, если я импортирую фабрику, то всё будет ок. Если я импортирую просто объект, а потом делаю его копию, то всё будет ок, и т.д. А менять стили на ходу легко, забавно, что ты этого не юзаешь, это главная фишка ксс модулей. Тебе доступен объект со стилями, и так же как ты обращаешься к классу, ты можешь обратиться к конкретному стилю и изменить его. Короче, перед тем, как юзать, советую разобраться, нужно ли тебе это вообще, т.к. по-ходу ты вообще бессмысленно их используешь и у тебя больше гемора с разносом на кучу файлов и импорт в каждом компоненте нужного файла. И вообще, в большом проекте ксс модули неюзабельны, особенно где верстку делает один человек, а логику другой. Т.к. верстала может где-то изенить имя класса, и всё нахер поедет, придется по всем компонентам проходиться, искать где используется этот модуль с измененными стилями. А т.к. у обычного жса нету статического анализатора (мы пишем на тс, поэтому тут немного проще), то ты заебешься это делать.
>>613450 >>613450 Сука, ты троллишь или у тебя степень умственной отсталости. Я даже объяснять не буду где ты хуйню несешь, потому что ты везде хуйню несешь, просто хуйню в квадрате.
>>613578 Если ты не знал, что можно менять стили находу после импорта - это не моя проблема, видимо ты не дорос ещё, что не удивительно, ведь прочитав говностатью на хабре, и начав использовать непонятную хуйню непонятно для чего, многого не поймешь.
Посоны, поясните за новый стандарт ecmascript 6. Его уже используют? А то я посмотрел и охуел: какие-то letы и constы вместо ламповых varиков... Кто-то уже освоил? Или говно без задач?
Анон, вот скажи. Решил я тут проектом для личных нужд обмазаться. Проэкт не большой и больше ориентирован на серверную сторону (там Django, кстати), много AJAXа. Но на клиенте будет что-то вроде текстового редактора, может быть какие-то подобия авторизаций/комнат и тд.
Вот думаю какой фреймворк выбрать, не хочу ванилить. Более менее знаю JQuery. Есть ли что-то более годное ? React ? Angular ?
>>613881 кстати, я тут вспомнил что у меня есть самописнй модуль для JQuery, который мне лень переписывать. Они сработаются вместе с реактом (всмысле jq и react) ?
>>613917 Каким боком ты связал флакс и жквери? ебать.. >>613887 Юзай реакт, это на данный момент самый гибкий фреймворк, жквери спокойно там можно прицепить и вообще всё что угодно.
>>613927 В глаза ебешься? Я связал React и Flux, а не jQuery и Flux. >реакт >самый гибкий фреймворк Одна история охуеннее другой. Реакт это не фреймворк вообще.
Господаъ, возникла проблема. Допустим, мне нужно вытащить данные из респонсов с нескольких параллельных ajax-вызовов, скомпоновать их и юзать дальше. Как проще всего это сделать? Нюфак и в асинк не особо умею.
Я тут пишу приложение на ангуляре, что не так уже и важно на самом деле, так как вопрос заключается в основах JS. Дело в том что у меня есть сервис (пикрилейтед) Month, в котором можно добавлять какие то события. Если событие отмечено как ежемесячное — мне нужно продублировать его во все экземпляры этого сервиса (создаются через new Month).
Вопрос заключается в следующем: как мне это сделать? Доступа к прототипу нет, или это я тупой и не смог найти способ. В общем, помогай.
Здравствуй, Двач! Нужна помощь в написание дипломной работы. Дано: Релейно-контактная схема, с парочкой конденсаторов для замедления времени размыкания фронтовых контактов. Пульт для задания режима работы этой схемы. Требуется: Написать программу эмитирующую работу этой схемы, для обучения студентоты принципам её работы. В этой программе должно быть: 1. Пульт управление со всеми кнопочками и индикаторами. 2. Собственно схема, в которой будут подсвечиваться замкнутые контура, и будут менять своё состояние контакты реле. Важной частью является возможность пошагового пролистывания событий. Например - нажал кнопку "А", в схеме от полюса П до тылового контакта реле "А1" подсветилась нить, далее она идёт через фронтовой контакт реле "Б2", далее включает реле "В" и т.д. Не могу пока допереть до алгоритма реализации этой схемы и графического отображения процесса её работы. Может у кого есть идеи? Фреймворки, которые помогут реализовать прогу?
>>614305 Рисуешь все в векторном редакторе, инлайнишь свг и подсвечиваешь дорожки по нужным событиям (прямо на нарисованные кнопки вешаешь events). Любыми удобными тебе способами/фреймворками/whatever.
>>613929 >В глаза ебешься? Я связал React и Flux, а не jQuery и Flux.
Ты ебанутый? Был пост: >react спокойно может использовать jq для аякса, что мне в принципе подходит Ты ответил на него какого-то хуя вот >Ну можно, но вообще React принято использовать с Flux архитектурой Из чего я делаю вывод, что ты долбоёб.
>Реакт это не фреймворк вообще. Хахаха бля Да, ты прав, реакт это не фреймворк. Реакт это огромная экосистема, которая уже больше любого фреймворка.
Хуйня в том, что в моей конторе никто не заинтересован в использовании того же ангуляра. Все пхп макаки пишут свои jquery-велосипеды для обработки роутов и вызовов модальных окон, на кой хрен не понятно. А я по большей степени верстаю.
Хочу в довесок к жаве освоить жаваскрипт серверный, под ноду например. Дайте литературу годную, если есть лучше на языке загнивающего запада(английский/немецкий).
>>611422 (OP) Учу жабу, решил написать змейку, раньше реализовывал наследование без использования "this." в конструкторах, а создавал в "конструкторе" главного родителя объект self, с которым работает весь конструктор и в конце возвращается функцией. Сейчас стал использовать, как мне показали на codeacademy.com, "this." и у меня получается какая-то хуйня при попытке оверлоаднуть метод родителя. Значит у родителя Entity есть метод update без параметров который просто вызывает свой же метод draw. У ребенка Head в родителях Entity и его метод update который наследуется у родителя работает и вызывает draw который так же наследуется и всё рисуется как и должно. Но стоит мне прописать у ребенка: var superUpdate = this.update; this.update = function() { superUpdate(); } , как начинается хуйня, при чем метод он нормально запоминает в superUpdate и его вызывает, но при выполнении говорит что нет метода this.draw. Какого хуя? Гугл не помог.
>>615689 Не могу догнать, что оборачивать в connect. Сто раз уже прочел тутор, но нет понимания. Это я пытаюсь совместить редукс с реактом. Я обернул основной компонент в провайадер, и передал ему стор редукс. Объясни пожалуйста, как правильно сделать все это.
Допустим есть функция fn внутри которой setTimeout, она возвращает строку с текущей датой. Есть плагин gulp-zip, который принимает имя (результат вызова fn) и объект с настройками. Короче, gulp-zip не дожидаясь выполнения fn завершает работу с ошибкой: filename required.
>>615498 Там есть маленькая проблема, что книги толковые еще не написали, статьи пишут люди, которые на реакте сами два с половиной проекта успели замутить и побежали хвалиться и рассказывать остальным как надо, а документация довольно психоделическая. Лично я хороших ресурсов пока не видел и документацию считаю недружелюбной для новичков (и когда говорил тут об этом, меня хуями покрыли в несколько голосов, так что давайте посмотрим, что благородные доны предложат), но в первую очередь имеет смысл походить по ссылкам в awesome листах: https://github.com/enaqx/awesome-react https://github.com/bcbcb/awesome-react
Beginning January 12, 2016, only the most current version of Internet Explorer available for a supported operating system will receive technical support and security updates.
Анон, как быстро это вычеркнет из требований заказчиков поддержку старых IE?
>>616537 Будет зависить от того как быстро пользователи перейдут на новые версии ИЕ из-за то что старыми они не могут получить technical support и установить security updates.
Посоны, начал писать свой йоба-проект, какие фреймворки нонче в тренде? Что взять для проекта побаловаться, за что потом деньги будут платить? Можно на ангуляре, на котором на работе пишу, но хочется расширить кругозор, восприятие, и как-то чтоб в плане поисков работы в будущем пригодилось
Ебать, какой хардкорный angular 2 после первого На первом, если разобраться, любая макака может писать, а от второго у меня пока АХУЙ Особенно от typeScript этого
Необходимо выполнять математические операции введенные клиентом. Например есть три поля: X, мат. операция, Y. Делаю так:
// забираем данные из инпутов ... // делаем числа числами x = parseInt(x); y = parseInt(y); // обработка ошибок если числа — не числа ... // результат var result = eval(x+op+y)
Какие подводные камни использования eval в данном случае? учитывая что op - результат select, а не рандомная хуйня, которую напишет юзер.
Привет анончик, мне нужна помощь. У меня вопрос, js умеет заменять слова? Допустим петушок сосачер пишет "кек", а мой скрипт это видит, и заменяет на "Я дегенерат". Давно хочу воплотить такое в жизнь, но в кодописании не разбираюсь. Как это сделать на JS? Куда копать? Это сложно?
>>617006 Замечательно. А можешь объяснить как примерно это делается? Я что-то подобное на сишечке или не на ней, хуй знает видел, там было просто, что-то вроде этого (заменяемое слово) (команда замены) (замена) То есть одной командой, ну и переменные выше. Тут иначе?
>>617014 Как это делать я разобрался var re = /заменяемое слово/gi; var str = тут надо заставить скрипт сканировать или посты, или всю страницу; var newstr = str.replace(re, 'замена'); Но моих знаний немного не хватает, я не могу понять как мне искать посты где скрипт будет делать замену. Пытался еще найти как заставить скрипт проверять всю страницу на наличие заменяемого слова, но тоже не нашел, слишком сложно. Выручайте, анончики, не осиливаю.
>>617033 Скачай куклоскрипт и посмотри, как там сделано.
Можно, например, var posts = document.getElementsByClassName('post-message'); for (i=0; i<posts.length; i++){ posts.innerHTML = posts.innerHTML.replace('класс', 'сахар'); }
>>617271 Что съела? Немного не понял, я вообще js не знаю.
А на счёт куклы - там 20 тыщ строк кода, слишком сложно. Кстати из за этого она жутко тупит, но без того же вордлиста читать сосач - нельзя, хоть переписывай под себя. Надо бы выучить этот ваш js, который похоронил веб.
>>617571 Еще даже недочитал онлайн-учебник по JS из шапки, задам вопрос наперед. Скажем, я написал простенький таск-треккер на node, в нем можно зарегистрироваться, создать аля группу/компанию/отдел и т.д; добавить туда других пользователей и публиковать таски. Со временем в эту херню понадобилось добавить пару десятков видов организаций, пару десятков видов пользователей, пару десятков видов тасков. Много наследования, у каждого вида свои реализации интерфейсов. Еще со временем надо считать заработанное бабло за выполненные таски - вот это все... Анон, в какой момент следует смотреть на жабы/сисярпы итд? Пишут ли на ноде приложения с кучей сущностей?
>>617616 > Анон, в какой момент следует смотреть на жабы/сисярпы итд? Пишут ли на ноде приложения с кучей сущностей? Не понимаю в чем проблема. Почему ты думаешь, что сисярпы и джавы лучше справляются с большим количеством сущностей? На ноде вполне можно писать в тырпрайз-стиле
> Скажем, я написал простенький таск-треккер на node, в нем можно зарегистрироваться, создать аля группу/компанию/отдел и т.д; добавить туда других пользователей и публиковать таски. > Со временем в эту херню понадобилось добавить пару десятков видов организаций, пару десятков видов пользователей, пару десятков видов тасков. Много наследования, у каждого вида свои реализации интерфейсов. Еще со временем Ну. Делай рест-апи с нужными сущностями, оно без проблем масштабируется
Парни, а вот посмотрите как какой-то древний редизайн хабра похерил всю разметку например тут: http://habrahabr.ru/post/88972/ как бы это из этого дерьма или убрать хтмл теги совсем, или юзерскриптом перепиздячить что бы оно их отображало по-человечески. я так понимаю jQuery(html).text() как раз и чистит от такого говнища, но как его запустить внутри страницы? раньше была вроде штука писать что-то в адресной строке, но я уже не помню что именно и совсем не уверен что туда можно вписать жиквери
>>617966 Чтобы показать какой кофескрипт лаконичный язык Второй как бы более универсальный, работает не только с массивами, но и со всем, что выглядит как массив. Можешь почитать тут
>>618313 Имей в виду, что оно банально заменяет текст всего html'а, поэтому если ты заменишь слова span, class, spoiler или ещё что-нибудь, то что-то (или всё) может немного (или совсем) по пизде пойти.
А в кукле действительно всё запутано, через миллион функций проходит, и без единого комметария.
>>618320 Пока тестирую, работает, такого заменять не планирую. Но вот мне нужно сделать так, что бы оно игнорировало регистр, что бы если находило определённое слово - нахуй его заменяло в любом виде. Почитал документацию - вроде понятно, но на деле не работает. Вот эта строка: posts[n].innerHTML = posts[n].innerHTML.replace('класс', 'сахар' [, i]);
и еще много её менее аутичных вариаций у меня регист не игнорирует, просто ломается. Выхлопа 0. ЧЯНТД? Не могу я в ваш js, не могу.
И последний вопрос, после которого я съебу из треда. Как мне сделать так, что бы скрипт смотрел в блок post-message каждого нового поста, полученного при помощи той же куклы? В юзерскрипте софтача для появления иконок os такое реализовано, обычный текст удачно заменяется на иконки в каждом новом посте, но я в силу своей неопытности не могу понять как это сделано, пусть там и 300 строк кода. Оче сложно?
анонсы, у меня такой вопрос не важно ангуляр там или реакт и вообще…
у меня есть массив объектов типа [{name: ‘Blip’}, {name: ‘Blopp’} итд] если две вьюхи: первая базово отрисовывает список вторая - это форма с одним инпутом вот я типа кликаю на элементе списка во вьюхе со списком и в форме можно отредактировать name объекта соответствующего кликнутому по списку
так вот вопрос про биндинговую парашу: когда я в инпуте меняю текст, должен ли он меняться в списке у соответствующего итема?
>>618326 А я не знаю, как и когда именно эти посты появляются, как за ними кукла следит, и есть ли какие-то человеческие ивенты, но можно вот с MutationObserver'ом накостылять: http://pastebin.com/cgkiZt8n
Наверняка это можно сделать красивше, без идиотской проверки на наличие getElementsByClassName (так как там и #text добавляется), да и без тройного вложения, но я пытался сделать наиболее очевидно. В теории, конечно, в функцию dealWithMutation можно банально запихнуть все тре три строчки, что я раньше написал, но будет как-то не клёво при одном новом посте снова пробегаться по всему треду.
target можно сделать posts-form, как в закомменченной строке, тогда он будет по всем видимым тредам идти, насколько я понимаю, судя по вложенному div'у с номером треда. Но он там всегда один (с кучей лишних постов, правда) и можно ли видеть одновременно несколько тредов - не знаю. Так что можно не париться особо.
>>618328 > когда я в инпуте меняю текст, должен ли он меняться в списке у соответствующего итема? В каком смысле должен? В ангуляре, например, если инпут и текст в списке привязаны к одной модели в одном контроллере - будет меняться.
Аноны, учу верстку и использую джс. Так получилось, что в index.html при нажатие кнопки вылетает форма, как мне и нужно. А вот в другом хтмл файле при нажатие кнопки почему-то скролит страницу в самый вверх и форма не выходит. Скажите из-за чего это может быть? Перепроверил футер, думал что-то не доскопировал, но все полностью одинаково.
>>618444 Ну у тебя там и жопа в коде пиздец. Но я разобрался, у тебя нету формы в хтмле, поэтому строка, где ищется форма кидает ошибку и дальше код не выполняется. Поэтому на ссылку не вешается обработчик, а т.к. на ней стоит якорь "#", то тебя просто кидает вверх страницы.
Анон, мне нужно запилить интерактивный одностраничник с современными ништяками и карту гугл к которой будут привязываться с сервера координаты и соотвественно отмечаться. За спиной кодакадеми баззовые курсы хтмл/ксс и джс/джквери. Что почитать поглубже чтобы я смог это качественно запилить в течении месяца/полтора?
>>618475 Я же сказал, у тебя формы нету в хтмле почему-то, лень разбираться почему, т.к. там полная жесть. Посмотри в дев тулзах, на месте формы тупо нету ничего, нету самого тега даже.
>>618490 кажется я тебя наконец-то понял. Действительно в инструменте разработчика почему-то не показывает форму. Только дивы показывает. В индекс файле все прекрасно показывает. Буду разбираться.
>>618471 > качественно api гуглокарт кури. И "современные ништяки" видимо, телепаты в отпуске. Без практики все равно jq-лапшичка получится, имхо лучше сразу садиться и начинать писать, по мере возникновения проблем поймешь, где пробелы.
>>618757 >А просто return _age не сработает? Нет, т.к. _age это не переменная, а свойство, а в таком виде интерпритатор будет искать переменную и не найдет её.
>Ну вообще да - логичнее писать this чем название объекта. Ага, т.к. если ты вдруг захочешь его изменить, то тебе не придется по всему объекту менять обращения к свойствам.
>>611422 (OP) Поцоны, к вам в блатхату ковыляет стремящийся жава-арестант. Что посоветуете бывалому, чтобы просто и быстро въехать в js и html без всяких раздумий о великом? Хочу написать пару html страниц, где js будет обращаться к веб-сервису. В js ни разу не нырял. Знаю только что выполняется на клиенте и может сократить часть нагрузки на сервер, выполняя всякие проверки прямо в браузере.
Пишу небольшую поделку браузерную, в нем у меня есть прогресс бар бутстраповский, который изначально выглядит вот так: http://ideone.com/H1wU24
Далее в моем скрипте, я этот прогресс бар так сказать оживляю вот такой вот строчкой: document.querySelector('#rankedBar').style = 'width:' + game.progress + '%';
В переменной game.progress соответственно лежит разное значение в разные моменты времени, и при выполнении этой строчки кода мой прогресс бар должен двигаться.
Суть в том, что в лисе всё работает хорошо, а в хроме полосочка не двигается. Не можете подсказать в чем проблема?
>>619163 Объясни, я старый уже? По работе использую Angular 1.x, gulp, bower, npm, less и nodejs для бэка. Этого не круто, может не очень удобно, но минимально необходимо. В свое время я попробовал раби с сасс и мне казалось это очень удобным. Единственный путь, я тогда нахуярил проектик за выходные не зная ничего. Что сейчас? Как лучше? Bower не нужен? Webpack? NPM и browserify? LESS стар? Постцсс? Цсснекст? Реакт? Реакт еще норм? TypeScript? ES6? AMD? Ладно, заебись Yeoman же есть, сейчас извлеку себе весь стек? Да? React+babel+webpack+nodejs+ebolaPack+hyitaTranspiler? Блядь вы ноулайферы? Вы хотите просто жить? Делать простые вещи? Как ньюбасу войти в ваш водоворот? Или это и есть то заграждение? IDE редакторы? Вроде саблайм пару лет назад был модный, забросили? Что там? Атом? Почему так хуево? Почему он не поддерживает нихуя еще неделю выбирать плагины? Вы ебанулись там падлы? Я полгода уже пытаюсь заскочить в этот поезд. Сейчас новые уебаны запилят ЕБАРЕАКТ в котором будет разметка, логика ее, логика стилей, ведь это все одно целое!
Лучше не бегать за трендами, а учить то, что чем-то обусловлено. Ангуляр или реакт маст лерн. Они не умрут до тех пор, пока живы гугел и фб, или им на смену не придёт что-то новое от этих же корпораций. Сборщики - вкусовщина. Они все примерно на одном уровне недоразвитости. Цсс-препроцессор нужно учить тот, на котором бутстрап. 4-5 будет на постцсс.
>>619155 В общем разобрался сам, я думал тут люди сидят которые шарят, а вы только на технологии новомодные дрочите, и выебываетесь друг перед другом, удачки вам в новом году, мои хипстопетушки.
>>619224 Ну вот, о чем я и говорил. Одни хоронили весь год SASS, другие пилят. И с TypeScript. И теперь PostCSS. Как же я хочу времена, когда хипстеры писали на Ruby + Rails + CoffeeScript + SASS. Короче мне деваться некуда. Я C# макака, которая полгода как перекатилась во фронт по случайности. И мне похуй, я хочу выучить что-то кроме ангуляра. Но я не хочу ебаться с каждым пакетиком.
var objPrototype = Object.create(Constructor.prototype); var instance = Constructor.apply(objPrototype); return instance; }
function Person (name) { this.name = name; } Person.prototype.sayHi = function () { return 'Hi, I am ' + this.name; }; var guy = nouveau(Person); console.log(guy); ---> undefined
>>619550 >Благодаря валидации данных на фронте можно сократить количество запросов на бэк Поэтому и написал >За валидацию данных только на фронте А так вроде бы есть несколько сценариев. Предвалидация на клиенте, предвалидация на клиенте с обращением к стороннему сервису, предвалидация на клиенте с обращением к собственному бэку. Вроде проблем ни с каким вариантом быть не должно, а остальное по обстоятельствам.
>>619552 Это просто чтобы подчеркнуть, что происходит предпроверка поля до сабмита формы, во время которой происходит обращение к собственному бэкенду. Это когда логика проверки достаточно сложна и требует обращения к данным хранящимся на бэкенде, например. Это чисто "декоративная" фича пользовательского интерфейса, облегчающая пользователю ввод, она может предупредить об ошибке до того, как пользователь отправил форму. После отправки формы, конечно, данные все равно валидируются на сервере.
не понимаю, зачем проверять жабаскриптом, не пустые ли поля, если это можно сделать поставив required инпуту (нет, конечно, кто-нибудь может пофиксить хтмл через консоль, но зачем).
>>619657 >не понимаю, зачем проверять жабаскриптом, не пустые ли поля, если это можно сделать поставив required инпуту Дезигн, обратная совместимость, кастомное сообщение? >нет, конечно, кто-нибудь может пофиксить хтмл через консоль, но зачем На стороне клиента можно сделать что угодно. Если поле обязательно для ввода, его наличие все равно должно проверяться на стороне сервера, чтобы обеспечить целостность данных. >>619660 >Можно полностью валидировать на хтмл Ну отвалидируй на html ИНН, например, или БИК.
>>619688 >Да хоть номер паспорта В ИНН или в ОГРН, например, есть контрольное число, они вычисляются на основе основного кода и паттерном ты его никак не провалидируешь. В БИКе мне казалось тоже есть контрольное число, но сейчас перепроверил, его там нет, так что можно будет написать регулярку, делающую проверку правильности формата, но проверять реальность существования БИКа, все равно не получится.
Нет, ну правда, зачем тратить силы и время и дублировать код на бэкенде и клиенте? Зачем выделываться и пытаться измерить размер и расширение файла при валидации js, если уже знаешь, как это сделать на серверном языке??
>>619548 Вот в том то и дело. Итог вчерашнего дня. Решил запилить каталог с годнотой 2015-го, со всякими риалтайм группировками, сортировками. Взял ноду, реакт, браузерифай и прочую парашу. Выбрал CSS фреймворк, basscss, есть более-менее популярный пакет для реакта rebass. Заебись, но он поддерживает только jsx. Я хочу что бы все рендерилось из ноды с экспрессом. И тут я проиграл. Давай еще устанавливтаь реактифай и тут у меня уже охуевший список в package.json, хуеты о которой я прочитал по минутке ридми для аутистов, которые забывают поддерживать свое говно. Кое что я даже форкнул и поправил. Итог? За три дня имею основу, в которой нет нихуя. Ну что это такое? До этого день еще потрачен на петушение с йоманом. Хотя сейчас может это и актуально, после того как изучил, извлечь чистую структурку проекта. А так толка никакого, один хуй надо на все пики сесть прежде чем даже думать о выборе.
Ну пацаны, ахуеть, я же на любых технологиях до 2013 за 10 минут сделал все что мне нужно? Нахуй так жить? На ангуляре первом директивки наклепал, ахуенно, чистенько, сервисы выделил. Нахуй нужно вот это все? И ведь во всех вакансиях требуют.
Вопрос про типизацию (например тот же тайпскрипт). Я ньюфаня, поэтому не гнобите. В универе писали на плюсах немного. Так вот когда сел смотреть js, мне наоборот понравилось что не надо объявлять типы, да пусть это может привести к преобразованию там и т.д. но все-равно в этом был какой-то шарм что ли. Правда я ниче сложного не писал пока и фреймворки не юзал (только js/jq) А потом читаю что мол решили делать типизацию. Неужели это настолько важно, что ее надо было сделать, таким образом приблизив в какой-то мере js к другим языкам? Может я когда наберусь больше опыта тоже буду считать что статическая типизация это круто?
>>619912 > Нахуй нужно вот это все? И ведь во всех вакансиях требуют. Ты же знаешь как ашэр-девочки вакансии составляют? Не понимаю нахуя ты этим занимаешься. Вроде ж опыт есть, должен понимать, что нужно, а что не нужно.
>>619947 Статическая типизация нужна в больших проектах, в маленьких она только мешает, имхо Ну и раньше ничего крупного на жс не писали, а сейчас бэкенды и фреймворки на десятки тысяч строк пишут, поэтому и запилили
Анони, подскажите, как в ES6 у дочерного объекта расширить конструктор. Т.е. чтоб класс Dog принимал дополнительные параметры конструктора, помимо наследуемого от Animal - name.
И давайте, пожалуйста, без "аааа классоблядь, праваливай".
>>619953 Не знаю, я поехал за последние полгода. Стабильненько себе сидел, а потом решил сменить работу. Вроде как ближе к фронту обещали, а оказалось сильно близко. А теперь хочу в офис хороший, где (в моем манямирке) будет развитие. А крутые пацаны с гитхабами сейчас, а он мне не нужен был. Вот сейчас пытаюсь понять и понимаю. Понимаю что раскрыл ящик Пандоры какой-то. Как с этими хайпами разобраться и обрести спокойствие? Писать на том что знаю?
Анончики, есть в js возможность создать сразу заполненный чем-то массив? Я хочу создать массив из 50 нулей например, не писать же мне var arr = [0, 0, 0, ... 0, 0];
>>620165 Я просто погуглил, так как в специализированном треде, спрашивая вещи касающиеся языка, не могу получить во второй раз внятный ответ. никакого баттхерта, я уже понял что тут не программисты сидят, а прост люди по интересам, которым прост нужно общение, вот они и общаются о всяких фреймворках и прочих вещах, а не задротят Циклом блядь они мне сказали массив заполнять, кекнул с них. Я пришел спрашивать не как программировать, а как делать что-то с помощью конкретного языка, ты чувствуешь в этом разницу? Вот почитай, мб тоже интересно будет: http://stackoverflow.com/questions/1295584/most-efficient-way-to-create-a-zero-filled-javascript-array#1295584
>>620163 Реально ужасно вышло. Если тебе прям вот чтоб одной строкой надо, то напиши отдельную функцию которая создает в себе массив, заполняет его передаваемым в функцию парамертом и возращает массив.
Если уж часто приходится создавать пустые, заполненые массивы в разных местах кода, то это самый лучший вариант. В итоге тебе вместо того говна, надо будет просто вызвать функцию createArray(0) и всё. Что может быть лучше?
>>620181 Я уже изучил топик на оверфлоу, и выбрал из цикла, функции и "нечетабильной хуйни" именно её. Жаль что в языке нету из коробки этой самой >createArray(25, 0) и всё.
>>620187 Лол, нет. Хочу что бы это за меня сделали сами разработчики JS. А самому каждый раз писать кучу говен в виде function makeArrayOf(value, length) { var arr = [], i = length; while (i--) { arr = value; } return arr; } Или таскать всё это в библиотеках повсюду, как-то не хочется.
>>620172 >написал хуйня с мапом >функциональщина Мой тим лид тебе бы ебало разбил за такую "функциональщину" Пиздец, люди считают, что использовав мап они "функциональное программирование" юзают. лол
>>620179 Ты троллишь или тупой? Тебе первым ответом сказали сделай цикл, хули ты плачешь теперь >не могу получить во второй раз внятный ответ Слепой нытик
>>620184 Вообще-то она есть, только ты даже на СО не смог дочитать до места, где говорят как сделать это нативно, даун
>>620190 Функций на всех не напасешься. Всё равно кому-то чего-то будет нехватать. Потом из-за этого будет куча легаси. Путь пыхи, в общем. Поэтому и решили, что либы наше всё. Каждый берет и делает то, что ему нужно.
>>620192 >Мой тим лид тебе бы ебало разбил за такую "функциональщину" Такая беспалевная попытка сразу придать себе весу, ладно. >Слепой нытик мммм >Вообще-то она есть, только ты даже на СО не смог дочитать до места, где говорят как сделать это нативно, даун Ну так ткнул бы пальцем в это, вместо этого высера и попыток тут самоутверждаться.
>>620197 >Такая беспалевная попытка сразу придать себе весу, ладно. Кек, т.е. для тебя иметь тим лида это уже весомо? Ты ебанашка? Работал хоть раз в жизни-то? >Ну так ткнул бы пальцем в это, вместо этого высера и попыток тут самоутверждаться. Высер - это всё что ты пишешь. Ткнуть пальцем я теперь тебе только в глаз могу, правда у тебя их уже нету скорее всего, т.к. меньше ебаться надо в глазенки свои.
>>620217 Нахуй иди, мразь, я тут чуть-ли не с первого треда сижу и всем помогаю, а такие мудаки как ты, которые не могу создать пустой массив через цикл, и не умеют на СО читать дальше ответа с галочкой, вот такие тут точно не нужны. Ещё и выебывается, после того, как ему сказали, что он парашу написал, вот лол
>>620262 В том, что у тебя сервер и данные живут отдельно от интерфейса. Ты можешь использовать один и тот же сервер для общение и с клиентами на пеках, и на мобильных приложениях, при этом ничего не меняя в архитектуре.
ананасы, у меня такой странный вопрос. Делают ли на клиенте restful-web-приложения? В spa к примеру на ангуляре есть роутинг. Кликая на news мы видим новости по адресу site.ru/#/news А как реализовать веб-приложение с restful api на клиенте? Так чтобы получался адрес site.ru/section/page/items/51 (данные при этом могут хранится в localstorage) Делают ли так вообще? И если да то как? По каким запросам гуглить?
>>620356 делают, это изоморфность называется. полезно тем, что можно поделиться / сохранить в закладки ссылку именно на item 51, а не клацать каждый раз в SPA в его поисках.
>>620558 >>620547 Как ты собрался писать на жс, не зная жс, аутист? Ебучая зашквери вас с пути сбивает. Миллионы людей думают, что если они умеют вызывать функции, так они жс знают.
>>620560 > думают, что если они умеют вызывать функции, так они жс знают. Может существует какой - нибудь список must know вещей зная которые можешь переходить к фреймворкам?
>>620588 Это всё очень индивидуально. По идее ты это сам должен понять просто "пробуя" фреймворк. Можешь работать - прекрасно, не можешь - ищи пробелы в знаниях.
>>620870 >JavaScript should have provided some form of an Array.dim method to do this, but we can easily correct this oversight: >should have provided Контекст такой. Какая разница? Пусть будет function huy(dim, init) {...} или var ya_tupoi = function (d, i) {...}
Где можно найти не обязательно интересные, но закрепляющие определенную тему? Прошел, я, к примеру, массивы, и хочу найти по ним задачи. На learn.javascript.ru их маловато.
>>620926 Я дочитываю первую книгу по JS и программированию вцелом. Смею предположить, что document.querySelectorAll возвращает массив или массивоподобный объект, короче, список элементов. В этом вся суть
>>620930 Я вообще из треда верстки, там есть интенсивы в одном из которых чутка объясняют про js. Вот пока оттуда и беру знания. Ну и гугель. >>620932 Спасибо. Я кстати тоже догадался прямо сейчас.
>>620894 >>620896 Ты понимаешь, что это хуйня какая-то? Ты также можешь сделать Number.dim() или String.dim(), нету смысла такую функцию прикреплять к какому-то объекту, если она не воздействует на объект. Алсо, советую перестать читать the good parts, книга уже давно морально устарела
>>620965 Мне вообще ничего не нужно, я говорю про то, что твой пример с привязывание функции к притотипу массива - это ненужное говно. Хуле ты споришь?
>>620978 Я же тебе написал, что скопировал из книги. Массив можно создать, например, просто с помощью литерала массива:
var ar = [ 'a', 'b' ];
или вот так: var arr = Array('a', 'b') // результат аналогичный
Автор грит, что искаропки нехватает какого-нибудь метода типа Array.dim, который бы принимал два аргумента количество элементов и исходное значение для них. И предлагает реализацию. Просто, блять, размышления на тему, что не так?
И что там устарело-то? Окей, ну уменьшился его список Сильных сторон к 2016 году, я в курсе, от этого что в книге какая-то хуйня написана?
>>621039 Ты хочешь что-то сказать про this и про method invocation pattern?
Типа есть Object.prototype.method = function (name) { this.name = name }; и при вызове метода, например, так: peka.method('yoba') this связывается c объектом, в котором этот метод содержится? peka
И, поскольку, dim просто создает массив, заполняет его числами и возвращает результат, никак не взаимодействуя с объектом Array, методом которого он является, это все бессмысленно и тупо?
>нету смысла такую функцию прикреплять к какому-то объекту, если она не воздействует на объект
Привет. Такой вопрос. Изучаю JavaScript и в поисках литературы наткнулся на интересный экземпляр "Выразительный JavaScript" пикрелейтед. Кто-то читал? Стоит ли начинающему? Хочу ее совмещать с http://learn.javascript.ru/ Добра.
>>621096 Да, так делать это быдло код. И хранить там тоже не следует, т.к. привязывая функцию к глобальному объекту, ты всем объектам её даёшь в пользование, а она им вообще не нужна, т.к. на них не действует.
>>621101 По началу книга легкая и интересная, но потом сильно сложнее становится, новичку будет трудно. Попробуй почитать первые глав 7-10 там норм.
>>621101 Когда читал первое издание засыпал от скучности/сухости этой книги и судя по форчонгу и реддиту не мне одному так казалось. Даже автору это говорили кажись кек. Надо будет второе издание пролистать.
>>621101 Лучше отдельно пройди learn.javascript, а потом уже к этой можешь подходить. Книга ближе к середине становится сложноватой, без понимания, как там все внутри работает, что-то действительно уяснить ньюфагу сложно. Сам пробовал, но дропнул. Кантор основы лучше поясняет.
Можно как-то разрабатывать приложение в бандле? Вот есть у меня бэкенд на ноде и фронт на ангуляре. Нжиникса и монги ещё нет. Как можно настроить это всё в каком-то бандле, чтоб удобно на сервере развернуть?
Котаны, у меня такой вопрос. Вкатываюсь в JS, всё нравки, но как понять важную вещь - насколько мой код говнокод? Вот у ребят с пхп-треда есть ОП который делает кодревью, у меня же такого нет и я всё делаю сам. Насколько вообще важен кодревью?
Ну, допустим, я собираюсь сейчас засесть за крупный проект по моим меркам - бложек на ноде и реакте, аналог еверноута только с заточкой под погромистов. Сделаю я правильную архитектуру в целом, продумаю структуру проекта, напишу код и покрою тестами, всё выполню по стандартам и всяким там airbnb гайд лайнам. Но... вдруг мой код лютое говно и за такое убивают нахуй? Где-то реально получить кодревью? Или всё это нормально и главное, что я могу решать поставленные задачи, покрывать их тестами и писать вразумительный код придерживаясь определённых стандартов без лютых пиздецом?
Вот замечания: Давай понятные имена переменным, вместо arrArgs, result и arr - memoizedArgs, callArgs и resultArgs Вместо того чтобы делать array.reverse() и потом вызывать pop(), можно использовать shift() Проверяй длину массива без сравнения с 0, не так: if (arr.length !== 0), а так: if (arr.length) Вместо сложного условия цикла можно было в теле написать if(!callArgs.length) break
Просто следовать всяким гайдам - это не поможет если ты не понимаешь, зачем это всё нужно. Это ведь нужно не для того чтобы "тебя за такое говно не убивали нахуй". Люди придумывают какие-то стандарты и правила написания кода не просто так, а по объективным причинам - потому что код написанный по-другому работает плохо. Код вообще зачем пишут? Чтобы он работал как надо, решал поставленную задачу. Поэтому делай всё более сложные задачи и понимай на своём опыте, почему нужно писать код определённым образом.
ну json - это типа чистые данные, это далеко не хтмл, а дата-атрибуты типа как раз для данных, так что вроде все логично
но на своих конференциях они, как и все, толкают типа про чистые слои, про отделение данных от представления и все такое, а на самом деле такие вот лицемеры и хранят json в дата-атрибутах
разве что, чтобы не тянуть их еще раз аяксом, они их вставляют в хтмл отправленный прямо с сервера
>>621504 >а на самом деле такие вот лицемеры Просто громче всех кричат о соблюдении чистых принципов те, у которых от их отсутствия больше всего болит. У кого с архитектуркой и стандартами норм, тем громко кричать не нужно. У них даже не знающий человек пришедший с улицы быстро всему научится, хотя бы глядя на то, как делают другие. Ну а у те, у кого изначально бардак, будут корчить из себя дохрена проповедников чистого стиля. Такой вид компенсации, короче.
Reduxаны, не могу никак стянуть json в initial state с бекенда. Вызываю запрос, но он всегда происходит позже, чем инициализация стора, как бы я не старался. Подскажите, как вы это делаете?
>>621594 5 дней как с промисами ебусь, я рельсовик, с жс знаком слабо, суть в том что все эти коллбеки исполняются всегда и при любом исходе позже, чем иницилиазируется стор, пример бы наглядный к этому всему.
>>621597 Гуглил эту проблему, проблема известная, и вот в оф гайде вот такое предлагается. // Grab the state from a global injected into server-generated HTML const initialState = window.__INITIAL_STATE__
// Create Redux store with initial state const store = createStore(counterApp, initialState)
Вот только тоже не получается засунуть данные в __INITIAL_STATE__ Алсо, запросы делаю через axios, может в ней проблема?
>>621612 То, что я выше написал, больше там тупо ничего нету. Посылаешь запрос, если он разрешиться успешно, то будет исполнять then функция или её аналог, если придёт ошибка, то выкинет ошибку, всё. Код не блокирующий, поэтому операции которые надо сделать после промиса надо именно в коллбеках писать, если ты напишешь их друг за другом, то промис отправится, но результат не придет, и естественно твой стор не создается, если ты так делаешь.
>>621613 Ты пидорахен? Я же сказал это псевдокод, я что тут должен блять расписывать как хендлить ошибки ещё, если я даже не знаю, что там за ошибка может быть? Иди нахуй, уёбок.
>>621615 http://pastebin.com/ZdY4Szr3 Не пойму, как сразу создать стор и послать ему данные, разве что два раза преодпределять, но в итоге там все равно пусто.
>>621623 Ещё раз объясняю. 1) Промисы и все аналогичные штуки не блокирующие 2) Ты посылаешь просим 3) Потом пишешь консоль лог Это штуки исполняются почти мгновенно друг за другом, но промису чтобы получить ответ нужно время, поэтому он ещё не успел создать стор, когда ты написал консоль лог.
>>621636 Промис всегда возвращает другой промис, поэтому если ты делаешь что-то типо того: var ololo = ajax('xyu').then((data) => doStuff(data)); То в ololo у тебя будет сам промис, а не данные, но в коде выше ты вроде всё верно делаешь, на первый взгляд, кроме того, что консоль лог должен быть внутри коллбека.
Алсо, может быть в импортах какия-то проблема, хз, но промис у тебя написан вроде верно, должен стор создаваться.
Ааа, бля, лол, ты в коде тоже не так написал, я почему-то этого не заметил. Конечно же тебе нужно ПРЯМО в коллбеке присваивать стор, а у тебя получается функция get(Store() вообще нихуя не делает, т.е. она во первых никуда не присваивает возвращаемое значение, а во-вторых даже если бы присваивала, то у тебя там лежал бы промис. Делай всё в коллбеке.
>>621649 Создаю стор внутри колбека, но не могу присвоить ее в переменную стор чтоб экспортировать. пиздец, я со вчерашнего дня сижу, и не лягу спать пока не сделаю это.
Почему не экспортируется? Может проблема в константе, их же нельзя переопределять. Или всё таки как я выше сказал, проблема в импорте, в ес6 нельзя динамические импорты делать, может с этим что-то связано. В общем хз что там дальше, но по-крайней мере, я думаю, ты в промисах немного разобрался, лол, и если внутри промиса стор есть, значит проблема уже в другом месте.
>>621783 Но судя по тому, что он спрашивал sleep или delay, ему нужна именно пауза. И setTimeout можно использовать как паузу, если обернуть большое количество кода.
>>621801 [CODE]var nameString = function (name) { return "Hi, I am" + " " + name console.log(nameString); }; nameString("Le");[/CODE] Просто скажи мне, where i did go wrong
Вопрос будет идиотский, первые шаги в джаваскрипте. Есть вступительное задание для курсов, но с моим уровнем сейчас его реально пройти будет только через полгода. Сейчас нужен какой-то алгоритм действий по заданию, понять вообще с чего начинать в дальнейшем.
Суть: страница с перечнем товаров. Три колонки, название, количество, цена, добавить/убрать. Поиск на странице. Что нужно: сортировать по названию и цене, чтобы менялся вид кнопки при сортировке. Добавлять и удалять товар (на строке данные-название, колво, цена, как в шапке). Изменять товар и после изменения помещать его в конец таблицы. И разные требования к фильтрации, но это понятно.
Шаги (как я думаю). Создать асс. массив, в нем подмассивы, Товар 1, Товар 2 и тд. В каждом из этих подмассивов свои данные (название: товар кастрюля; количество: 3; цена: 666). Соответственно во втором подмассиве будет (название: товар вилка; количество: 8; цена: 777) и тд, верно? Далее, функция для проверки данных. Чтобы в колонке цена только цифры, в названии-буквы. Но как это прописать-я не знаю. Так же вроде ясно, что в таблицу добавляются и удаляются строки методом push. Так добавлю новый подмассив Товар 4, допустим. Но как его заполнить? или он уже пустой будет? И все это дело должно быть обернуто в таблицу. Я так понимаю, ее отдельно сверстать в хтмл, а в ячейках как-то прописывать отображение элементов массива. Но я не знаю, как это сделать.
Заранее спасибо за любые комментарии, понимаю, что все это слишком даунски описано и такие вопросы не задают, а гуглят. Но руки опускаются и не знаю, с чего начинать вообще. Конкретики в голове по языку нет. Правда, спасибо хоть за какое-то объяснение и направление. С курсами пока точно ничего не светит, но язык хочу понять. Про лернджаваскрипт знаю
>>615795 Незачем было запоминать метод в глобальной переменной, надо было его в свойство кидать >this.superUpdate = this.update; В глобальных ему делать нечего, хотя с call, как я понимаю, он бы тоже работал. Алсо змейку неделю назад закончил, оказалось легче чем я думал.
>>622036 Ебана, я хуйню сказал похоже. Оно не было глобальной переменной, а локальной конструктора, верно? Я еще не дошел до теории работы функций-конструкторов. У меня голова трещать начала. Есть ли разница между объявлением локальной переменной в конструкторе и там же свойства через this?
Хочу адаптировать под ФФ js юзер-скрипт, изначально написанный под Хром (Tampermonkey). Или вообще - адаптировать под все основные браузеры (Опера, Сафари, ФФ, Хром).
Какие ньюансы нужно учитывать? Не могу нагуглить ничего, изкоробки в ФФ не заработало.
>>622134 > Ну а как их продвигать-то? Делаешь главную страницу полулендингом с сео-текстами. Я так делаю, работает.
> А на чем визитки писать, если я воннабихипстор фуллстек js-макака? Зачем вообще делать визитки на ноде? По-моему ты неправильно инструмент выбрал. Понимаешь, что тебе придется держать инстанс ноды, который жрет 300 мб из-за сотни человек в день?
>>622139 >Делаешь главную страницу полулендингом с сео-текстами. Я так делаю, работает. Хуево это конечно, но понятно. >Зачем вообще делать визитки на ноде? А на чем их делать, чтобы модно-молодежно было?
>>622145 > Хуево это конечно, но понятно. Почему хуёво? У меня в приложении просто нечего индексировать. Вот есть страница авторизации, дальше гуглу нельзя. Ну и чтоб гугл понял о чем сайт, отдаю ему сео-тексты. Можно, конечно, использовать инструменты вроде https://prerender.io/ , если так уж хочется визитку на ангуляре. Но мне кажется, что всё это как-то странно.
> А на чем их делать, чтобы модно-молодежно было? Тебе нужно модно-молодежно или правильно и удобно? По-моему ничего лучше пыхи для визиток не придумали.
>>622154 >Почему хуёво? Потому что в одну страницу напихать много текстов не получится. И с конкурентами на сео-поприще бороться не выйдет особо. >https://prerender.io/ Вот это нормально уже.
>По-моему ничего лучше пыхи для визиток не придумали. Окей, надо будет попробовать как-нибудь.
>>611422 (OP) Анончики, а есть какие-то лучшие практики использования web-сокетов? Например, имеет ли смысл делать несколько соединений в одну страницу страницу или все данные передавать по одному? Как анализировать эти данные, это json с параметрами или можно что-то другое с ним вытворять?
Ананасы очень нужна ссылка. Google игнорит мои реквесты. В общем, мне нужен перечень всех частоиспользуемых слов при программировании на JS чтобы можно было скопипастить одним файликом, ну или просто ресурс, где это не долго копировать будет. Просто поднатаскиваю слепую печать на "Клавагонках" и хочу себе создать отдельный словарик для того, чтобы практиковать автоматическую печать всяких там 'var', 'prototype', 'let' и т.д. Был бы очень признателен за ссыль на словарик еще и с определениями. С меня... ну короче сейчас на Udemy распродажа новогодняя, будет еще день точно. Это сайт с обучающими курсами. Все буржуйские курсы сейчас стали доступны по 10 баксов. Я себе 3 купил. Короче аноны выручайте нужен словарь. Хочу и русский и английский еще и с определениями было бы круто. P.S: Google === pidor // true.
В this находится div $(this).prop("class") возвращает класс элемента this Добавляю атрибут data-name="1" Делаю $(this).prop("data-name"); возвращает undefined Где может собака зарыта?
Пацаны. Смотрите. Есть код на сайте: getEmail: function(firmId, type){ var objArgs = new Object(); objArgs['firmId'] = firmId; objArgs['type'] = type; call('WebTraffic/getEmail', objArgs, '', false); Как узнать куда он запрос отправляет?
А я с нубовопросами. Я всякую херню на jquery делал, а мне захотело ванильный жаваскрипт посмотреть. А в нём я чтот вообще нуб и даже не знаю как его гуглить, чтобы что-то было, лол.
Вот допустим, я хочу штук 30 картинок вывести в браузер через цикл. Я знаю, что надо сделать цикл, который будет листать каждую картинку из папки с картинками и её же выводить на экран. Но я не знаю как это написать и как загуглить. Я даже не знаю как добавить добавить картинку без html и jquery. А у меня таких ебанутых вопросов дохера еще. Так... где гуглить совершенно банальные вещи? ИЛи это надо всё перепроходить от самых азов?
Недавно начал учить js, поэтому совершенно нубский вопрос: Вот я открываю developer tools в хроме, там есть вкладка sources в которой можно редактировать код прямо в хроме, без регистрации без смс. Однако это ни на что не влияет: код не выполняется. Если нажимаю ctrl+s, он сохраняется во временную копию, которая опять же не выполняется. Если обновить страницу, то там снова будет первоначальный код. Как сделать чтобы можно было редактировать код в хроме и сразу же в нем видеть результаты?
>>627224 Черт, отлепилось. Как мне сделать появляющееся при наведении на ссылку окно, внутри которого данные из mysql-базы? По окну можно водить мышкой и что-то выбирать, при убирании мышки окно исчезает
Вкачусь с платиной: Подскажите как заставить работать на яблоке $(document).on('click', "input#submit2", function () При нажатии на кнопку все переменные копируются в адресную строку и обновляется страница. То есть работает со второго раза, если ничего не трогать. Удаление параметров из адресной строки откатывает весь процесс к пункту 0.
я уверен, что вопрос был задан сотни раз, но спрошу еще раз С чего начать изучение? Если из опыта только паскаль в школе? Скачал видеоуроки Гавриленко, говорят годно, стоит начинать? Что еще можно прочесть/посмотреть для полного нуба?
>>630898 ты че балбес? Обсырай себе фреймворк. Причем тут тот же NodeJS (штука для написания сервеной части, если что, говорю примитивно для тебя) в целом к примеру? Может еще V8 обосрешь от Google? Его уже в Facebook и YouTube используют.
if (text === 'B') судя по этому условию у тебя строка text должна быть эквивалентна символу "В" а это нихуя не так, соответственно, дальнейшие ебациклы ни разу не срабатывают
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, Walmart и многие другие.
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД! Воспользуйтесь https://jsbin.com/ для браузерного кода и https://ideone.com/ для серверного кода.
Краткий 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. Какие новые возможности добавил ES6? - Вот здесь можно почитать на русском: https://learn.javascript.ru/es-modern
6. Ну ладно, с чего начать изучение то? - Дальше я приложу список материалов для изучения.
Чистый 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, позволяющие создавать десктопные приложения.