Ньюфагам: 1. Что это за язык такой? - Объектно ориентированный язык, наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. 2. Ааа, так это хуйня чтоб типа текст покрасить при клике, или попап вызвать? - Это только малая часть того, что может язык. Сейчас, на JS можно делать игры, с 3д(three.js) графикой или 2д(phaser.js), можно делать игры и приложения для телефонов(phonegap, etc), можно делать десктоп приложения(node-webkit) 3. Ну ясно, а че еще можно? - А еще можно использовать на сервере, причем очень даже успешно. А все благодоря платформе node.js, и v8, который встроен во все хромоподобное. 4. Я щас ниче не понял, повтори. - Проще говоря, если ты не делаешь огромный интернет магазин, или хай лоад проект, то забудь о пхп или руби, используй javascript и node.js (базы данных прилогаются, mongoDB и sql-и тоже) 5. А че еще прикольного можно сделать - А еще есть MVC фреймворки, angular, backbone, ember, knockout и многое другое. 6. Нах оно надо? - Для создания web application, логики на клиент-сайд. 7. Мда столько хуйни всякой... А можно просто jquery учить, я слыхал щас все ее используют сайты - Не стоит, можешь начать писать на жыквери, когда будешь асом в других фреймворках, и, в частности самого нативного языка, но не раньше, не порть себе мозги 8. Ну все все бля, че как учить то? - Дальше я приложу список материалов для изучения
Учим JS: Книги: David Flanagan - "JavaScript: Подробное руководство" - маст хев, книга, которую будешь читать не раз. (Читать 6-е издание). Дуглас Крокфорд "JavaScript: сильные стороны" - просто хорошая книга. Стефанов С. - "JavaScript. Шаблоны"
Онлайн сообщества: http://learn.javascript.ru/ - оно одно, единственное. Начинать учить язык советую отсюда, потом переходить уже к книгам.
Онлайн курсы: Как же можно учить язык, только читая книжонки? Нужна практика, и только так изучаемое усваивается, не иначе. CodeSchool - http://go.codeschool.com/KoeYkQ (не ругать за рефку, она прибавляет +2 дня бесплатного пользования) Отличный ресурс для изучения языка, очень много курсов по всем передовым технологиям.
CodeAcademy - http://www.codecademy.com/ Уже не такой сильный, но все еще интересный проект, так же маст хев для набивания скилла.
Выучил основы, написал свою пузырьковую сортировку и змейку? Не знаешь как двигаться дальше?
Выбери себе направление, может, ты хочешь игори делать, тогда вперед на гитхаб, и ищи phaser, pixi и другое, выбор велик. Хочешь на сервер сайд, на самой хипстерской технологии? Копай в сторону node, express, socket io. Хочешь писать MVC логику? Angular, backbone, да множество их.
В общем, Официальный JavaScript тред #2 объявляю открытым!
>>385177 И кто встанет на замену? А кто весь веб будет переписывать с js? Учитывая темп развития, и порог охвата технологий, js захватит веб, точнее, он его уже давно захватил, а с сильными фреймворками и платформами, лишь укрепит свою позицию лет на 20 вперед.
>>385202 JS - лучшее, что случилось с вебом за последнее десятилетие. PHP - это вообще недоразумение, ошибочно принятое за средство разработки, подлежащее утилизации в ближайшем будущем. Ноудискач.
>>385207 Джаваскрипт - урод от мира языков программирования, делали его впопыхах, поэтому уже своим синтаксисом смахивает он на чудовище Франкенштейна, сшитого из кусков всякого говна. Это факт. Может, и лучшей альтернативы нет, но это не значит, что он не говно.
>>385232 Синтаксически JS очень традиционный и выдержанный сиподобный язык. В этом плане я бы назвал "Франкенштейном", например, Nemerle. А тут-то что? Классическая сипараша без примесей.
>>385207 JS как раз и может стать системным или серверным языком, но из языка разметки он уйдёт 100%, так как относительно сложен для своих целей.
Вместо него придёт какой-то визуальный язык. Либо просто CSS и HTML станут языками программирования с переменными и базовыми вещами, которые нужны в сайтостроении.
>>385174 > Объектно ориентированный язык Мультипарадигма же. > Проще говоря, если ты не делаешь огромный интернет магазин, или хай лоад проект, то забудь о пхп или руби Если это не хайлоад проект, то от раби, питона и пихопе ничего плохого не будет. > А че еще прикольного можно сделать - А еще есть MVC фреймворки, angular, backbone, ember, knockout Это инструментарий, а не "че еще прикольного можно сделать". Прикольное - это всякие там игрули, "я написал на js хуйню в 30 строчек" и т.п..
>>385244 > Вместо него придёт какой-то визуальный язык. Либо просто CSS и HTML станут языками программирования с переменными и базовыми вещами, которые нужны в сайтостроении. Не так-то просто убрать тьюринг-полноту там, где ее уже освоили.
Посоны, это пиздец. Я конечно ньюфаг в ЖС, и джейкверей, но это пушка. Есть одна хтмл страица для движка Razor(асп). <div onclick="MovePages(0)"> @{ int index = 0; foreach (var page in Model) { <div class="shard0-Page" data-id="@page.Id" data-index="@index" > <p>@page.Condition</p> <p>@page.Decision</p> </div> index++; }
} <script>window.onload = MovePages(0);</script> </div> И, скрипт небольшой, с джейкверей. function MovePage(index, page) { alert($(page).prop("data-index")); } function MovePages(index) { CurrentPage = index; $(".shard0-Page").each( function (i, page) { MovePage(CurrentPage, page); }); } Цимес в том, что свойство дата-айди - андефинед, в то время .как свойство класс исправно получается. ЧЯДНТ?
>>385304 Я ж вроде опустил тему про наследование и сразу сказал, что там нет классов. Нет классов - нет их экземпляров. Нельзя описать сущность и создавать объекты на ее основе. Зато можно собирать объект из воздуха (прототип), который потом можно будет склонировать и изменить по необходимости.
>>385308 Я ж вроде опустил тему про разум и сразу сказал, что там нет мозгов. Нет мозгов - нет их деятельности. Нельзя подумать мысль и кипятить чайник на ее основе. Зато можно собирать бред из воздуха (прототип), который потом можно будет склонировать и изменить по необходимости.
>>385174 вот это ты вовремя с тредом в общем подскажи анончик я заебался уже долбаный яваскрипт не дает мне нормально сохранять файлы пакет system.io просто ужасно хуй пойми какой поделись примером кода с новичком пожалуйста очень хочу начать писать под веб а знакомый прогромист посоветовал яваскрипт
Мимо-вкатился. Никогда на жабаскрипте не писал. Всегда о нем слышал исключительно плохие вещи, ни одной хорошей. Однако он в последнее время становится популярнее и популярнее, даже вне браузеров. Можете мне рассказать какие-нибудь его плюсы?
>>385588 Колбеки можно преобразовать в корутины на генераторах, тут кто то вбрасывал ссылку. Рли ананасы, научитесь писать асинхронный код, пользуйтесь библиотеками и не будет батхерта от коллбеков.
>>385595 Плюсы в том что это язык чуть сложнее лиспа, но в отличие от лиспа он везде применяется и востребован. Есть конечно недостатки но они правятся и к ES7 мы получим идеальный скриптовый язык для всего.
>>385748 Изучи например в node стандартной библиотеке EventEmitter, подумай как применять событийную модель как основу приложения. Потом посмотри как устроен connect и как он строит цепочку обработчиков. Выбери себе библиотеку по вкусу например https://github.com/caolan/async и хуярь с ней. Потом можешь приступать к deferred/promise/future вот этой штуке. Вообще конечно я давно этим всем не занимался, может уже что-то новое появилось.
>>385174 Как лучше и правильнее проверять аргумент на undefined? function a(c) { var b = typeof(c) == 'undefined' ? 0 : c; //var b = arguments.length ? arguments[0] : 0; return b; }
>>385839 >>385878 Лучше всегда проверять как typeof x == 'undefined'. >x === undefined Не сработает если x вообще не объявлен или константа undefined переопределена.
>>385839 Если тебе вот прям именно на undefined надо, то можно еще вот так: [code] function(undefined) { function(c) { if(c===undefinded){ //govnocode } } }() [/code] В этом случае мы еще и защищаемся от переопределения undefined каким-нибудь мудаком в глобальном контексте. Если же тебе нужно просто проверить, что аргумент был\не был указан - в большинтсве случаев хватит просто if(c), не подойдет, правда, для строк и чисел.
>>386010 Если вызываем функцию Quo с префиксом new, то: 1. Создается новый объект, __proto__ которого присваивается Quo.prototype 2. Для кода этой функции this присваивается объект, созданный в 1-ом пункте
>>386013 Я так понял, некоторые движки не дают доступа к __proto__ по проперти __proto__, но на деле оно все равно там есть, надо же его как-то называть?
Работал кто с Ace Editor? Как с ним работать то после загрузки страницы? Ищу нахожу по айди div, которым я инициализировал редактор, а дальше что? у него нет свойств и методов редактора.
>>386075 ты alert что ль использовал? он гавно, используй console.log() и открой консоль, он подробно распишет весь объект, хорош firebug в лисе если что
>>386076 Я в хроме тестил. В огнелисе почему-то другая ошибка: TypeError: post.files is undefined Хотя я вставил console.log(post); var media = post.files.map(function(file) { return file.md5; });
Есть объект [code] $scope.A = [ { name: 'text', link: 'http://example.com', title: 'page', image: '../img/some/image.png' } [/code]
Пытаюсь вывести картинку через ng-repeat и ng-src [code] div class="col-md-6" ng-repeat="values in A | limitTo: 4"> <img ng-src="{values.image}}"> [/code]
Но постоянно пишет что не правильно указан путь к картинке, 404, и все такое, еще после шаманства выбило что-то в духе its html/plain , короче не рендерит как картинку, но я даже не помню как путь указать.
>>386131 Хотел просто глянуть как он переделал проект kitchensink. Он его переписал на один фреймворк. Угадайте какой? Подсказка - самый писк моды в среде жопоруких ебанатов
Angular кун, ты еще тут? Можешь объяснить мне такую простую вещь, как понять, зачем и когда нужно писать дерективы, фабрики, сервисы? Я ебашу одни контроллеры, либо использую встроенные директивы, объясни пожалуйста.
>>386181 Общее правило такое: если у тебя в контроллере есть обвешивание событиями каких-то элементов, значит, ты всё делаешь неправильно. Все эти гриды, скролбары, дейтпикеры и т.д. надо оборачивать директивами и взаимодействовать с ними исключительно через параметры в шаблоне, которые будут подключать их к функциям и данным, которые уже лежат в контроллере. Фабрики и сервисы почитай здесь: http://stackoverflow.com/q/15666048/1203558
>>386236 Потому что в колбэк к мапу идет три аргумента. На каждой итерации получается следующее [code] > var n = ['1', '2', '3']; undefined > parseInt(n[0], 0, n) 1 > parseInt(n[1], 1, n) NaN > parseInt(n[2], 2, n) NaN [/code]
Нахуй нужен ui-router, если оно есть в самом angular, ng-view, обычный встроенный роутинг. Зачем доп. либа под это дело? (Или ее вынесли из ангуляра уже, и теперь оно по отдельности?)
программач, суть такова. Я немного умею в верстку и мой кореш, который, к слову, работает погроммистом, сказал , что их контора готова взять меня на позицию junior frontend гавнометчик, но для этого мне нужно подучить JS и в частности backbone. Начал я читать учебник Ильи Кантора (пару глав пока осилил), вроде интерестно, но практики не хватает. Хочу писать код на js. Желательно не хуй пойми о чем , а привязанный к вебдеву, а еще лучше если и backbone затрагивается. Отправте куданить подучиться, где примеры? Туторы, упражнения? Ткните в ссылку носом, плиз.
Сасаны, что скажете про node.js? Это совсем зашквар? Перспективна ли эта херня, можно ли зарабатывать на JS? Хочу, в качестве теста, сделать себе сервер с быстрыми закладками и интересной инфой из сети, ссылки, смищныйе картике, видео и т.д. чтобы все быстро сортировалось и искалось, чтобы можно было комменты ко все хуйне добавлять и т.д.
Ну и вообще душа к JS лежит, не нравится мне python, скобочек нету((({{
И снова я с платиной, рельсы или нода? Учу и дрочу попутно и то, и другое, рельсы кажутся проще и красивее, но нода более хипстерская, и с большим будущим, дайте советов дельных. У меня в приоритете сычевать дома и фрилансить.
>>387172 Пожалуй раскрою пункт 4. 4.1) Ставишь 20 баксов в час. Отправляешь 3 заявки. Никто не берет тебя на работу. 4.2) Ставишь 10 баксов в час. Отправляешь 3 заявки. Никто не берет тебя на работу. 4.3) Отправляешь все заявки на неделю вперед. Никто не берет тебя на работу. 4.4) Через три дня отписывается индус, нанимает тебя на работу за 13.5 баксов чистыми. 4.5) Выполняешь работу. 4.6) Ждешь неделю, пока индус заплатит. 4.7) Малаца, первый этап пройден, впереди взятие 100 часов. 4.8) GOTO 4.3
{{character.attributes.str.bonus}} [/code] При изменении инпута изменяется только последняя строчка, та, которая не в таблице. ЧЯДНТ? Инб4 используешь google-driven development и не читаешь доки.
>>387350 Мне бы как-нибудь сделать так, чтобы значения свойства (value) объекта (str) изменялись при изменении другого свойства (bonus). Казалось бы, character в $scope, а str в character, и должно работать, авотхуй.
>>387417 Хуй знает, я когда-то, не зная ангуляра, отправил резюме, за вечер что-то там почитал, сделал тестовое, и устроился на работу. JS-обезьянки сейчас очень востребованы что в Рашке, что в Украшке, что вообще в мире. Студентов учат в основном только Pascal, С, С++, C#, Delphi, Жабе, иногда PHP, ну и, если повезёт, лиспам и прологам. Самоучек всегда мало, и потому спрос на JS кодеров намного превышает предложение и найти работу гораздо проще.
>>387343 Ну посоны. New, angular.copy и angular.extend не копируют watch'и. Есть в ангуляре какой-нибудь способ реализации классов, который это делает? Или ебашить все что шевелится $scope.$watch - это штатный режим работы?
javascript девелоперу обьязательно знать хтмл и сисс в совершенстве? То есть уметь верстать макеты любой сложности. Месяц задрачивал эти языки разметки, сверстал пару макетов, но все равно еще многого не понимаю в верстке. Заебало с этой хуйней возится, выравнивать эти кнопочки, пиксел-перфект - вся хуйня.
Хочу учить нормальный ЯП, но если посмотреть на вакансии джава-скрипт/фронтенд девелопер то везде требуют хорошее знание css.
>>387617 Блять, ты заебал, если у тебя есть поле, которое не предназначено для ручного мутирования, и которое зависит от другого поля, значит, у тебя есть поле, вместо которого должен быть аксессор. Делай так и не еби мозги: http://pastebin.com/AXJxJ0Rx Если же значение должно быть вручную модифицируемым, тогда если при его изменениях надо чтобы и зависимые поля как-то осмысленно обновлялись, значит, ты пишешь астральную поебень и пока ты не в состоянии выдумывать хитрые реактивные метапаттерны на ходу, тебе будет несладко, если же пересчитывать зависимые не надо, и прост хочется, чтобы можно было вручную на ходу "затереть" зависимость и установить жёсткое значение, можно сделать что-то такое: http://pastebin.com/Nbkn0Sxe Пока value и mod будут неустановлены вручную, они будут высчитываться по формуле, но можно переопределить и тогда аксесор будет возвращать первый дизьюнкт.
Сап, яваскриптач. Явач не учил до этого, прочёл пол-книги "Сильные стороны Яваскрипт", сейчас в Юнити делаю свой рогалик, дак вот, я проверил и всегда так работало, что я (и всё, впрочем) легче что-то изучают, если начинаю с интересного. Например, я никогда не мог выучить английский, пока не начал выписывать интересные слова, и сейчас я знаю английский на около B-1 lvl, также и с знанием компа, решаю почти все проблемы, которые могут возникнуть, а всё гугол, я ведь не читал целую книгу по всем проблемам, только фрагменты, а когда уже изучил их, читаю книги, и все фрагменты связываются воедино, получаем обширное знание чего-то.
Отошёл от темы, мог поставить в спойлер, но в разметке я рак.
Итак, вопрос, я знаю синтаксис Си, и помню, что для вывода на монитор значение перемонной нужно было написать следующее (ну и конечно, перед этим обьявить переменную, но не будем капитанить-очевиднить): int dlina; dlina = 20; printf ("my pinus is - %d метров", dlina); Ну дальше выпоняли, хочу сделать подобное в Яваскрипт, чё писать-то? Гугол пишет, что забанен.
>>385174 Посоны, которые пользуются современными клиентскими JS фреймворкам, объясните, как вы решаете проблему SEO, еби его мать?
Т.е. я имею ввиду, SEO'шники на проекте ебут мозги по поводу того, что должна отдаваться статика для поисковиков, а на JS уже рендерить для пользователя. В итоге приходится писать шаблоны по два раза и городить невероятные костыли. Как вы разбираетесь с этим?
>>387402 Проиграл. Слева пишется строчка на jQuery, справа 10 строчек на ванильке. Естественно, никакой долбоеб не будет хуячить весь код AJAX запроса, он скроет его за функцией. Другие вещи он тоже скроет за функциями. И начнет получаться обратно ебучий jQuery, только свой и бегающий на костылях с даунской улыбкой. Заебись перспектива, че.
>>387789 Двачую этого господина, а то получается подобное говно: [code] function(selector, parrent) { var selector = selector || "audio"; var parrent = parrent || document; if(selector[0] == ".") { var element = parrent.getElementsByClassName(selector.slice(1)); } else if( selector[0] == "#") { var element = parrent.getElementById(selector.slice(1)); } else { var element = parrent.getElementsByTagName(selector); }
>>387664 >если у тебя есть поле, которое не предназначено для ручного мутирования, и которое зависит от другого поля, значит, у тебя есть поле, вместо которого должен быть аксессор Сдается мне, я таки хуйню изобрел, и character должен быть объектом без методов, потому что его предполагается хранить между сессиями, а вся логика должна быть в функции, которая вызывается watch'ем character'а.
Анончики, хорошо знающие ангуляр, нужна ваша помощь. Пишу калькулятор для магазина, есть сложные моменты для меня, может кто нибудь возьмется по наставлять меня? Желательно через личку. Был бы очень признателен.
>>387981 Долбоёб, виртуальный дом не отберёт у тебя возможность положить один элемент в другой и следующую из этого необходимость иметь языки для описания иерархических запросов вглубь таких структур.
>>388078 Я не использую jQuery уже года два, наркоман. Еще раз, нормально же прошу: переведи то, что ты сказал, на человеческий. Под "виртуальный DOM" можно с натяжкой и пизду твоей мамаши подогнать.
>>388126 Квериселекторолл и подобные тоже останутся, иначе как ты будешь доступаться к глубинам своего virtual dom? Просто их придётся навелосипедить с нуля (сложная задача) для такого формата dom, ведь стандартные реюзнуть не получится.
> иначе как ты будешь доступаться к глубинам своего virtual dom? Вернее, лучше не "своего" а "чужого". Со своим-то типа как заранее можно предусмотреть, что там понадобится (на самом деле нет), а какую-нибудь библиотеку с UI элементом, которая его представляет таким вот dom'ом, и автор которой не догадался предусмотреть кастомизируемость вон того div'а в глубине. Насколько я понял, эту проблему во всяких react'ах не решали.
>>388145 Останутся, остануться. Но использовать их особой нужды не будет. Там же прямо в readme.md есть пример использования - не знаю как в этой либе, но в идеальном варианте достаточно сохранить ссылку на то, что возвращает функция h.
>>388149 Ну понятно, что ссылку надо хранить и отдавать во внешнем интерфейсе библиотеки - иначе и селектор не к чему будет применять. А вот, кстати, и они: https://github.com/parshap/vtree-select
>>388155 Ну и что? Мало ли какие репозитории есть на гитхабе. Даже по примеру видно, что этот селект там как собаке пятая нога, просто кто-то привык к такому подходу
>>388159 Это не "подход", а повсеместная необходимость. Вот берёшь ты качаешь ЧУЖИЕ либы с контролами, а увязывая вместе, надо оттуда кусок выпилить, там повесить колбек, а там-то стиль добавить. И все они, во внешнем api, внезапно, не позволяют конкретно нужных тебе кастомизаций. Это не исключительная ситуация, а стандартная.
>>388161 >повсеместная необходимость Нет. Причин почему нельзя передать в функцию, создающую виртуальный DOM-элемент что-то вроде { manya_callback: function () { return 'manya'; }} я не вижу.
>>388163 + кстати подобный fp-style подход лично для меня выглядит чище и понятнее, чем необходимость в разных местах вызывать функции меняющие что-то в глобальном контексте.
>>388167 Допустим, постороняя библиотека внутри реализует vtree из https://github.com/parshap/vtree-select, а её api состоит из getVTree и onStrongClick. Автор подумал, что никому не понадобится onSpanClick. Задача: повесить событие onSpanClick, не трогая исходники библиотеки.
>>388168 Я уже ответил здесь >>388158. В том конкретном примере вместо hooks[propName] = property 32 строчка можно написать hooks[propName] = property.toString(). Надеюсь объяснение как превратить объект hooks в строчку типа "key1='value1' key2='value2' ..." не требуется.
>>388176 Это выглядит как сочная и абсолютно бессмысленная шизофазия. Ты можешь написать, что конкретно надо сделать с getVTree(), чтобы во внутреннем span на клик отработал колбек? Куда, как, и какие "проперти" передаются "через простой Object", неясно.
>>388182 >>388183 Я не знаю - ты зелень или просто школьник, поэтому вот пример, как передать Object, пройтись по его пропертям, превратив их в строки и создать из этого элементы: http://jsfiddle.net/fqf69xth/1/Если что, это не пример виртуального DOM'a, но интерфейс там будет аналогичный.
Давайте объясняйте как мне из этого вашего js работать с браузерными плагинами/расширениями. Предположим у меня есть в браузере установленный плагин, который обычно включается прямо в html тегом <object>. Дальше подхватываешь его js'ом по id и дергаешь его апи.
Но допустим мне нужно чтобы он не включался в страницу, а висел фоновым процессом, чтоб не перезапускался при рефреше страницы, более того я хочу к нему доступ с любой своей вкладки. Как сделать? Через шаред треды не работает, в них можно передавать только js объекты, текст и блобы. Есть в js какое-то апи для работы с плагинами? Или хотя бы сериализатор, который позволит передать объект в тред и там десериализовать? То что я нагуглил - 3,5 функции возвращающие информацию о том какие плагины установлены в их описание. Если перевести плагин в блоб, то в треде он не собирается обратно, т.к. в js нет восстановления из блоба или хотя бы его экзекьюта. На работе загонял это тимлиду фронтендщиков, он долго расспрашивал, не понимал о чем я, потом когда понял, долго думал и в результате не родил ничего. Неужели этот js такая параша, что в нем нельзя разрешить такую простую задачку?
>>388207 Блять, пиздец, ты реально поехавший чтоли? Какое это нахуй имеет отношение к делу? Причём тут строки, причём тут создание элементов? Ты забыл, о чём мы говорили?
Дорогой анонимус, помоги мне. Я в JS не могу, с JQuery знаком шапочно, но возникла необходимость реализовать на сайте следующий шушпанцер - происходит событие №1 - выполняется анимация, блок за некоторое время перемещается из точки А в точку В, по приходу в В плавно меняет свой opacity. Происходит событие №2 - возвращается исходное значение opacity, блок возвращается из точки В в А. При этом, если одно из событий происходит до завершения анимации вызванной другим событием ,например, произошло событие №1 - блок начал движение в точку В и на полпути происходит событие №2, анимируемый блок не должен проделывать оставшуюся часть пути в точку В и менять opacity, а должен с того места где его застало событие, вернуться в точку А. Буду реализовывать это на jQuery. Не прошу писать за меня код, направь в правильном направлении, я так понимаю нужно смотреть в сторону .queue() , .clearQueue() ?
>>388267 Ты бы лучше попытался ответить на >>388168, вряд ли тут кому-то интересно, как ты умеешь писать циклы и перебирать поля объектов на жс. Я попробую для тебя переформулировать. Вот код библиотеки: http://pastebin.com/VhAaKS4h . Всё, что ты можешь с ней делать - вызывать yobaliba.mkVTree(). Тебе нужно повесить событие onHover на span.
Я хочу изучить более тяжелый язык программирования в частности JAVA, начал его изучать, но в связи с ситуацией(да, я из новороссии, и нет, мне глубоко похуй на политику), решил сначала выучить язык с более низким порогом вхождения, что бы устроиться на удаленку или фрилансить(а в свободное время доучить JAVA, хуевая работа пока есть), выбрал конечно же JavaScript(с HTML 5 and CSS 3 знаком примерно на том же уровне), прошел курс на w3, в принципе особых сложностей не увидел, но теперь у меня еще больше вопросов чем ответов и на вид простой JavaScript открылся многими гранями и изучу его не намного быстрее.
Так вот анон подскажи, что ты думаешь, стоит мне добивать ЯваСкрипт или не ебать мозги и учить то, что мне больше нравиться(Ява)? Так как по скорости вхождения я особо не выиграю, а просто потрачу время в бесплодных поисках фриланса за копейки или я не прав и осталось совсем не много и я смогу заработать копейку?
Я продублировал вопрос в тред по яве, ЯваСкрипту и общий тред.
Треда про флэш не нашел, но он все равно вместе с JS используется, спрошу здесь.
Можно ли активировать две флэш-кнопки одним кликом? Под активировать я имею в виду запустить соответствующее каждой из них действие. Я использую Zero Clipboard и Downloadify в юзерскрипте для копирования в буфер и вызова диалога сохранения. Не хочу делать две кнопки и кликать два раза, хочу все и сразу. Где-то слышал, что событие клика может проходить сквозь несколько слоев и активировать нижележащие, но у меня ничего не получилось при расположении кнопок друг на друге, только верхняя работает. И да, имеется в виду реальный клик мышью, яваскриптовский click() не прокатывает с флэшем.
Есть ли выгода основательно учить node.js, если планирую писать на джаве. Знания джаваскрипта приветствуются, а тут привалил курсач по ноде. Теперь выбор, либо делать на отьебись, либо что-то поучить. Это тот же джаваскрипт, просто расширенный, я правильно понимаю?
>>388743 Есть смысл забить либо на ноджс, либо на жабу. Если ты здоровый, умный, и перспективный молодой человек, ориентирован на результат, если тебе приносят удовольствие реальные вещи, а не абстрактное архитектурное дрочилово, рекомендую выбирать ноду.
Кто-нибудь писал расширения для Firefox? Мне необходимо наладить коммуникацию между скриптами расширения. Из page-mod в page-worker и обратно. Никак не могу разобраться с port.emit и port.on. Гуглил, читал доки - не помогло.
Имеется овер900 строк контента без айди и классов со спанами, к которым привязан только онклик с функцией. Всё на пикче.
ессно с массивом [0] он будет возвращать спан первой строки. Внимание, вопрос: какой массив позволит в данном случае возвращать спан той строки, на которую кликают в данный момент? Я сломался.
Поясните. Вот есть объект, который регистрирует event listener. Как из callback получить this объекта? Нормально ли делать замыкание с var that = this или есть более православный способ?
И еще вопрос. Есть некая сущность, скажем, todo-лист. У него есть набор item-ов. По определенным причинам я не хотел бы создавать item-ы напрямую (т.е., нужно не List.add(new Item()), а var item = List.createItem()). Это нормально для JS, учитывая сложности с созданием приватного конструктора (замыкания на замыканиях и замыканиями погоняют)? Что можно почитать на эту тему? Сам язык знаю. мимо-заставили-писать-на-js-кун
>Поясните. Вот есть объект, который регистрирует event listener. Как из callback получить this объекта? Ты о чем, чумачечьший? У тебя this в колбэке и так указывает на объект, к которому обработчик был привязан.
>>385174 Парни собираюсь делать небольшой веб проект. Выбрал node.js+express для бэкенда, react для фронтенда. Все правильно сделал? Есть еще какие-то restify, koa и так далее но насколько я понял, они еще недостаточно mature.
//save character $scope.saveCharacter = function(){ LocalStorageService.save('character', $scope.character); }; //load character $scope.loadCharacter = function(){ $scope.character = LocalStorageService.load('character'); console.log($scope.character); };
csServices.service('LocalStorageService', ['$rootScope', function(){ var service = { load: function(key, value){ return angular.fromJson(localStorage[key]); }, save: function(key, value){ localStorage[key] = angular.toJson(value); } } return service; }]); Update раньше был в самом "классе", а вместо ангулярных функций были JSON.stringify и JSON.parse, результат немного предсказуем. Внимание, вопрос! Куда мне запихнуть update, чтобы жсон его не ломал? Инб4 в анус.
>>389167 >возвращать спан Попробуй еще раз, нихуя не понятно, что тебе надо сделать. Возможно, тебе надо onclick="getThis(this)" function getThis(element){var text = element.innerText}; ? this это таки не функция, а кейворд, и >>389047 намекает на то, что тебе надо его тут использовать.
>>389169 извиняй, я в силу своей нубости, не смог оъяснить внятно, походу.
вот кусок кода, который подходит для примера:
пикрелейтед.пнг
цель: сделать так, чтобы функция работала на той строке, на которую собственно и кликают. Сейчас же (ну например в данном случае выделение) выделение пройдёт на 1й строке в range span'а. Проблема в том, что у строк нет уникального айди или класса. getElementsByTagName('span')[0]; - привязывает массив к 1й строке.
Была мысль как-то иначе сделать, чтоб избежать массивов типа: function getTagName(gtn) { alert(gtn); } и в строку вписать getTagName(this.tagName);
>>389054 >Нормально ли делать замыкание с var that = this нормально в кофескрипте посл версии используется обертка (function(_this) { ... })(this) что дает то же самое, только еще создает скоуп. >Это нормально для JS Не советую морочиться с приватными полями или методами в JS, правильно все равно не сделать.
>>389210 >alert(window.event.target.textContent) я ещё раз извиняюсь за свою ущербность в неумении нормально объяснить, Антош. Что взять с такой ньюфажины, как я.
Если бы всё было так просто...
ну вот смотри (скрипт для IE еслчё): http://jsfiddle.net/kzxzo4wx/ кликни там например на Word2b или Word3b - выделяется всегда Word1b, тут у меня range select по спану, но из-за привязанного массива [0], не даёт выделить что-то кроме Word1b.
Это маленький кусок скрипта, но уже на этом этапе запорол. В теории он должен будет выделять контент в спане по клику, с последущем копировании в буфер, вырезании и подстановкой другого контента.
>>385174 Аноны, ответьте. Чем делать OAuth? Библиотек дохуя, но все они почему-то принимают user/secret и авторизуются с секретом. Но в вебе это же бессмысленно, так? В чём подвох?
Аноны, хочу для небольшого приложения под йос использовать phonegap, посоветуйте нормальное расширение (плагин) для пушей-хуюшей, дабы и так свести онанизьм к минимому.
>>389351 1) Реальной альтернативы ты не предложил, и не можешь предложить. 2) Статья говно, в комментариях подробно разобрано, почему. 3) Тем не менее, JS говно, но см. пункт 1.
>>385174 Есть функция A которая что то делает, при этом используя функции B и C. Эти функции B и C нигде кроме функции A не используются. Правильно ли обьявлять B и C в функции A?
>>389351 >Отбросив возню с именами, замечу, что первое время Javascript был очень даже неплох, и период моих наибольших симпатий к нему приходился на то время, когда появился jQuery, но не появился nodejs, а так же не набрали популярность фреймворки типа Angular и Knockout.
>>389418 Что оно должно делать? Функция validate например, нигде не вызывается. Да и onclick ты неправильно ставишь. И не ясно зачем его ставить в функции под названием validate.
>>389428 я слышал что все сейчас пердолятся в MVC фреймворки, но мне бы сперва базовый синтаксис js освоить. вроде логику того что должно происходить я понимаю, но оформить "блок схему" в работающий код у меня часто не получается
>>389430 undefined - это такая "несуществующая" переменная со значением undefined. Она не строка, и не пустая строка. Чтобы сравнить с пустой строкой, сравнивай с пустым строковым литералом ('' или "").
> но мне бы сперва базовый синтаксис js освоить Лучше не привыкай к children и особенно к фиксированным индексам внутри children. Есть id/class в HTML, есть целое семейство всяких document.querySelector, querySelectorAll, getElementsByTagName, getElementsByClassName, getElementById в JS.
>>389435 спасибо. с undefined понятно. "document.querySelector, querySelectorAll, getElementsByTagName, getElementsByClassName, getElementById" - это функции jQuery?
Анончики, выручайте. Я кажется в глаза сношаюсь. Решил тут канвас потрогать, наговнокодил линкрелэйтед. Но при перемещении оранжевого кружка (игрок типа, ага) по карте он рисуется херову тучу раз, хотя в цикле я сперва перерисовываю карту. Кааааак, мать его? http://pastebin.com/s8bQdTX6
>>385174 Есть произвольный кусок жс кода. Следует его проверить на использование только определенного класса функций, сторонних библиотек. А еще он не должен подгружать контент со сторонних сайтов. Как это сделать? _жс не знаю вообще_
>>385442 Ты давай покукарекай. Обьектно-ориентированность - от слов обьект и ориентированность. Не важно какая система наследования. Важно - то что есть обьекты\методы\свойства.
>>389957 id="hex_{{hex.x}}_{{hex.y}}" Вообще, наверное, придется положить хуй на желание сделать красиво и перестать пытаться чинить то, что работает, хоть работает оно и на жквери.
>>389933 Создается объект у которого есть куча геттеров с именами такими же как у глобальных переменных. При обращении к этим геттерам бросается исключение. Потом код, который нужно выполнить, оборачивается в конструкцию with с этим объектом и запускается. Таким образом если в коде где-то встречается обращение к глобальной переменной вместо этого идет обращение к свойству объекта, которое кинет исключение. Q: я нихуя не понел объясни по человечески A: нахуй пройди, читай доки в оп посте и просвещайся.
>>390006 Я пробовал вызывать эту хуиту $watch и директивой. Ладно, похуй, надеюсь от того, что чисто фронтэндовый функционал работает на жквери, команда ангуляра хуже спать не станет.
ребят, разъясните за рекурсию. никак не научусь понимать чужой код, в котором присутствует вызов функции в теле этой самой функции. может есть какойто тутор или статья на эту тему для долбоёбов? да и вообще, нахуя отцы так код пишут-тяжело ж читать, часто, как по мне , проще реализовать через циклы?
>>390059 Я бы тебе посоветовал начать самому писать рекурсивные функции. Начни с простого: посл-сть фибоначчи, возведение в степень, суммирование списка чисел. Хз нахер пишут так, некоторые вещи кажется проще представить ввиде рекурсии.
Посоны, а как тесты для ангуляра дебажить? Если в юнит-тесты karma добавляю debugger – тесты проходят, breakpoint просто игнорируется.
Если тестирую e2e c debug: true в grunt-protractor-runner – я могу использовать стандартные cont/next/prev, но как только захожу в repl и пытаюсь что-то делать – пишет No frames.
Один сайт меняет содержимое на странице ajax'ом, при этом меняет url. Мне необходимо в юзерскрипте/расширении отследить событие смены адреса или xmlhttprequest. onhashchange пробовал - не реагирует.
>>390326 Нагуглил некоторые костыли stackoverflow.com/questions/18989345/how-do-i-reload-a-greasemonkey-script-when-ajax-changes-the-url-without-reloadin Пожалуй напишу свой - буду обрабатывать клик при переходе по ссылке и onpopstate при переходе назад.
Решил использовать AngularJS. Запилил на NetBeansе HTML5 Application проект (бекенд уже есть), там есть возможность сразу достать шаблон AngularJS-seed. Достал. Но не работает. Там нужно сделать npm-install и bower-install. Тыкаю правой кнопкой по проекту - тыкаю - в выводе тарабрские квадратики вместо ошибок. Плюс ругается, что нету NodeJS (нахуя он вообще тут нужен?). Поставил NodeJS как плагин в Нетбинсе - нихуя, всё равно ругается и нихуя не инсталлирует.
Пердолится с гитами не очень хочется. В интернетах шаблона AngularJS проекта нет, только инструкции как пердолится с гитом/Mavenом и прочей хуйнёй.
Что делать? Может кто-то скинет работающий AngularJS проект, чтобы там все зависимости были захуячены и т.д.?
Использую PHP-фреймворк с шаблонизатором. У меня сейчас в разработке длинное полотно JS с оглавлением, и это очень неудобно. Есть ли возможность держать всё в одном файле во время разработки (с оглавлением, красиво, удобно), а потом, не знаю, автоматически разбивать этот файл на несколько с заданными именами, например?
То есть, есть general.js, я даю команду, и он разбивается на home.js, edit.js, и так далее. Ну а если нельзя, как вы подходите к организации процесса работы с JS? Я не очень понимаю, зачем мне нужен фреймворк, потому что у меня там одни рудиментарные манипуляции с DOM да Аякс-запросы, но, может, нужен? Объясните мне, пожалуйста, зачем MVC в JS, я правда не понимаю.
Аноны, как найти работу, чтоб обучали, не с нуля, а с позиции джуна, интересует node+angular. Обгуглился, не нашел ничего. Очень хочу найти работу, где будут учить в этом направлении, я же в свою очередь буду делать какие то мелочи в этом направлении, попутно набираясь опыта и навыков. Я уже отчаялся, совершенно ничего не находится. Помогите. (Украшка или Рашка, не важно)
>>390823 Попробуй с todomvc скачать пример. И вообще, [code] sudo apt-get install nodejs npm install -g bower cd ./proj npm install bower install npm start [/code] >>390870 Обычно стоит вопрос как из кучи js-файлов слепить один для деплоя, а не наоборот. Не пойму что ты хочешь. А фреймворки нужны как раз для упрощения манипуляций с DOM и HTTP, а так же для создания модульного приложения с правилной декомпозицией функиональности. >>390885 Да в любой конторе, наверное, где нужен js-dev.
>Обычно стоит вопрос как из кучи js-файлов слепить один для деплоя, а не наоборот. Не пойму что ты хочешь. Ну смотри, есть загрузка файлов на Аяксе на одной странице, зачем мне этот кусок кода посылать на клиентскую сторону для всех страниц? Дело не только в оптимизации, на других страницах и нод-то таких нет, выбирать нечего, потому что форма только одна, и она на той конкретной одной странице — в консоль вылетает ошибка.
>для создания модульного приложения с правилной декомпозицией функиональности Я знаю, что такое MVC, я не могу понять, зачем это нужно для школоэффектов и асинхронных запросов, и прошу это объяснить на, например, коком-нибудь реалистичном сценарии; мол, для какого рода задач может потребоваться такой фреймворк.
>>390984 >зачем это нужно для школоэффектов и асинхронных запросов Для создания SPA, где большая часть логики расположена у клиента. Сервер в этом случае выполняет роль json-бэкенда, который чаще всего отдает необработанные данные и, если нужно, занимается валидацией.
Таким образом абстрактный SPA-двач при заходе на доску отдает json со всеми тредами, а MVC фреймворк на клиенте рендерит html, школоэффекты и функционал в рамках доски вроде отправки нового поста или просмотра треда.
Такой вопрос, если я сяду с нуля ебашить джаваскрипт, и буду вьебывать по 4-5 часов, сколько времени мне понадобится хоть примерно? Ибо столько вакансий на это чудо, что прям глаза разбегаются. Мимоучилдругойязык.
Пидарки, есть один домен 1.ссср и есть 2.рф домен.
Я делаю запрещённый во всех современных браузерах приём, а именно, реквестую запрос страницы из кроссдоменно и получаю ожидаемый Origin:null и Access Denied.
На дворе, между прочим, почти 2015 год, а я до сих пор не могу без костылей и проксирования аяксово гетовать между доменами? Поясните за последний Chrome, можно ли как-то разрешить без всяких костылей кроссдоменные запросы. Чтобы пользователь один раз сказал или лучше не говорил, да, типа разрешаю.
ребят, помогите исправить ошибку в синтаксисе http://jsfiddle.net/m2cjcqn0/ в месте "result=true break :" Знаю что можно реализовать через if, но пытаюсь сделать через оператор "?"
>>391689 Делай по классике. Я сам не использую ?, только в самых элементарных вилках, когда нужно 0 или 1 присвоить. Потому что плохо читается такой код.
Let's take JavaScript for example. (I worked on the original versions of JScript at Microsoft from 1996 through 2001.) The by-design purpose of JavaScript was to make the monkey dance when you moused over it. Scripts were often a single line. We considered ten line scripts to be pretty normal, hundred line scripts to be huge, and thousand line scripts were unheard of. The language was absolutely not designed for programming in the large, and our implementation decisions, performance targets, and so on, were based on that assumption.
Есть бекенд с JSON API, есть клиент на reactjs. Есть ли какая-то либа, которой можно сгенерировать что-то типа хелперов для урлов API, т.е. чтобы писать, например, posts_path, вместо http://yoba.com/posts?
>>392109 1. Верни скобки на место, мудила. 2. Если хочешь разместить пример кода - используй codepen или jsfiddle, никто здесь не будет вглядываться в твои сраные скриншоты, мудила. 3. Ты - мудила, мудила.
>>392239 Backbone - очень простой сам по себе, в нем почти ничего нет, только простенькое разделение на модель и вьюху и немножко бойлерплейта, связанного с обработкой событий и общением с бэкендом. Этакий энтри-левел мвц-фреймворков. Angular - навороченный комбайн с собственной модульной системой, системйо шаблонов с расширением HTML'а, 2way дата-байндингом и прочим, прочим, прочим. Порог входа довольно высок, что хорошо подтверждается нытик-статьями о том, какой ангулар плохой, неудобный и ваще нихуя непонятно.
>>391427 Тот же js, но с традиционным наследованием, необязательной статической типизацией и умным автокомплитом для Visual Studio и Webstorm. Из минусов: для того, чтобы использовать js-либы нужны специальные .d.ts хидеры к ним с объявлениями типов, и местный аналог директивы #include с указанием пути к файлу очень задалбывает, если много папок. В принципе язык понравится тем, кто не может жить без IntelliSense и не переваривает прототипное наследование.
Напишите какие реальные задачи вы решили при помощи яваскрипта. Не какие могли бы решить гипотетически, а действительно одного js хватило.
Я сам с нуля писал приложения на разных Basic-ах, C-C# (Visual C), Java, Pascalе-образных языках, но всё что касается моей практике с JS ограничивалось возможностями конкретного браузера, а они, мягко говоря, отстают от системных возможностей.
Даже java приложения обгоняют те же самые, написанные под Chrome и FF.
В первую очередь беспокоит графика. Раньше стояла проблема с доступным местом, но сейчас благо появились разрешения для unlim storage, но вот графика лагает при работе даже с примитивами.
Работа JS+PHPАноним04/10/14 Суб 20:00:29#328№392554
Есть программеры за еду? Делаю общественное дело, ищу программиста.
Требуется сделать сайт на Jquery + API Яндекс.Карт + API vk + PHP + Mysql.
Сервис, в котром пользователи могут добавлять точки на карте, а потом просматривать их. Авторизация через контакт, хранение данных в бд, страницы - на простом php-фреймоворке по вашему выбору (думаю о F3 Framework).
Что-то в ЖС какой-то синтаксис ебучий, или мне кажется так? Я не програмизм, сначала взял за питон, потом почему-то режил ЖС дрочить и какой-то он ебаный, по сравнению с питоном.
>>392701 все правильно в жс специальный синтаксис чтобы крестушки и жабушки не бугуртили что нипанятна поэтому сразу бери кофескрипт он удобный и не ебучий
>>392701 Что тебе кажется в нем "ебучим"? Я нихуя не кодер, но в свободное время забавляюсь этим как хобби. У JS пока самый наглядно-понятный синтаксис, как по мне.
>>392745 Программирование - растяжимое понятие. Зависит от того, чем ты хочешь заниматься. Для быдломакаки, клепающей формочки, такие вещи не нужны. Если не хочешь быть среди этих макак, коих 90%, подтягивай матан и что-нибудь дальше азов.
>>392745 не обязательно. Поддержу >>392751 Рекурсия - вызов процедуры (функции) самой себя. На практике очень много косвенных рекурсий (функция А вызывает ф-ию B, та С, С вызывает А.) А вообще многоуровневых рекурсий стоит избегать, т.к. стек кушает, замедляет работу. Фибоначчи рекурсией решается только для примера.
>>392745 Рекурсию понять не сложно, особенно людям знакомым с математикой. Вот ты хочешь числа фибоначчи например. Идем на вики, смотрим определение. F(0) = 0, F(1) = 1, F(n) = F(n - 1) + F(n - 2) Записываем то же самое но кодом:
>>392762 хаскель это ML-подобный язык, простой и понятный для математиков. К сожалению исторически сложилось так, что сейчас в мейнстриме машинные языки типа C++, которые созданы для компьютера, а не для человека. Новички просто охуевают от их нелогичности и идиотизма, а олдовые байтоебы постят кулфейсы и говорят что программирование дано не каждому. Конечно если 10 лет лизать жопу машине то в конце концов привыкнешь и это будет казаться естественным и логичным положением вещей.
>>392768 Нет, хаскель - hope/miranda подобный, ml - другое семейство. Вот scala - вполне себе новый его представитель, и системой типов, и идеологически, и даже синтаксически во многом.
Короче я не смог в Фибоначчи. Я понимаю, как это должно работать и частично понимаю как это все должно работать, но вот смотрю в код и вижу гомонигру. Конечно я разобрался в конкретной функции, через дебаг консоль (ф12 хром + включенные Брикпоинты). Возможно я не до конца понимаю что такое Рекурсия (остаток в уме) и как JS вообще выполняет код. Просто он как-то хуй пойми скачет и видимо это в рекурсии такое.
Короче ебанука я лерн.жаваскрипт.ру с самого начала вчитываясь в каждую блядскую букву. Хотя это хобби и такими темпами базовый уровен ЖС говнокодера я получу года через 1,5.
>>392903 Я знаю что через цикл. Ты лучше напиши как Фибоначчи работает. Что-то я хуй опять понял что. Оно по частям считает каждое ф(н-1), (н-2). Сука.
>>392907 ну епта как работает, по определению каждое число фибоначчи это сумма его предыдущих членов, вот так и работает т.е. допустим надо вычислить fib(3) fib(3) = fib(1) + fib(2) fib(1) мы знаем это 1 fib(2) = fib(0) + fib(1) тогда fib(3) = fib(1) + (fib(0) + fib(1)) fib(3) = 1 + (0 + 1) fib(3) = 1 + 1 fib(3) = 2 это с рекурсией, с циклом по другому там переменные просто называются a b с и это тебя путает т.е. там на каждом шаге цикла есть a и b - 2 последние числа в последовательности вычисляется c = a + b - следующее число последовательности потом a и b как бы сдвигаются вправо на один элемент последовательности и все это повторяется пока в b не будет элемент последовательности с номером n
>>392922>>392917 Спасибо. С циклом я понимаю сам, да. Просто я как-то и понимаю, и не понимаю одновременно. Готовый пример могу разобрать, вот как с сайта. Схематично на бумаге или через дебаг разобрать, а написать самому - хуй напишу. Но для второго дня изучения хватит. Еще раз спасибо.
function factorialis(n) { var who = 'F(' + n + '): '; console.log(who + 'Вход в функцию factorialis с параметром n = ' + n); if (n == 0) { console.log(who + 'Факториал от 0 равен 1'); console.log(who + 'Вернёмся обратно с результатом "1"'); return 1; } else { console.log(who + 'Сейчас мы вычислим факториал от ' + n); console.log(who + 'n! = n (n - 1)!, т.е. ' + n + '! = ' + n + ' (' + n + ' - 1)! = ' + n + '! = ' + n + ' ' + (n - 1) + '!'); var res = n factorialis(n - 1); console.log(who + 'Вычислили! Факториал от ' + n + '! равен ' + res); console.log(who + 'Вернёмся обратно с результатом "' + res + '"'); return res; } }
ребят, сегодня начал знакомится с AngularJS - очень понравилось, то что с помощью его делают ,вот хотел уточнить Angular -это замена для jQuery или дополнение? Только начал изучать js, нужно ли осваивать jQuery или сразу Angular?
Стоит ли для лучшего понимания и вникания в суть js знать другие языки (как то ява или кресты)? Или яваскрипт полностью самодостаточен и полному нубу в программировании можно его начинать учить?
>>385174 Почему невозможно найти чисто программистскую работу на JavaScript? Ведь обязательно в комплекте верстать?... Что надо, чтобы работать просто программистом JavaScript?
>>393617 Насколько помню, в вакансиях это обычно приложение к чему-то еще: вебмастер + знание node, java-программист + знание node и т.п. И при этом обязательно опыт 3+ лет.
>>393661 Пришло время напомнить, что the by-design purpose of JavaScript was to make the monkey dance when you moused over it. Scripts were often a single line. We considered ten line scripts to be pretty normal, hundred line scripts to be huge, and thousand line scripts were unheard of. The language was absolutely not designed for programming in the large, and our implementation decisions, performance targets, and so on, were based on that assumption. Since JavaScript was specifically designed for programs where one person could see the whole thing on a single page, JavaScript is not only dynamically typed, but it also lacks a great many other facilities that are commonly used when programming in the large:
There is no modularization system; there are no classes, interfaces, or even namespaces. These elements are in other languages to help organize large codebases. The inheritance system -- prototype inheritance -- is both weak and poorly understood. It is by no means obvious how to correctly build prototypes for deep hierarchies (a captain is a kind of pirate, a pirate is a kind of person, a person is a kind of thing...) in out-of-the-box JavaScript. There is no encapsulation whatsoever; every property of every object is yielded up to the for-in construct, and is modifiable at will by any part of the program. There is no way to annotate any restriction on storage; any variable may hold any value. But it's not just the lack of facilities that make programming in the large easier. There are also features that make it harder.
JavaScript's error management system is designed with the assumption that the script is running on a web page, that failure is likely, that the cost of failure is low, and that the user who sees the failure is the person least able to fix it: the browser user, not the code's author. Therefore as many errors as possible fail silently and the program keeps trying to muddle on through. This is a reasonable characteristic given the goals of the language, but it surely makes programming in the larger harder because it increases the difficulty of writing test cases. If nothing ever fails it is harder to write tests that detect failure!
Code can modify itself based on user input via facilities such as eval or adding new script blocks to the browser DOM dynamically. Any static analysis tool might not even know what code makes up the program!
>>393665 Ну давай разберем по частям тобою написанное.
>by-design purpose of JavaScript was to make the monkey dance when you moused over it ну а теперь на нем пишут фреймворки >There is no modularization system модули можно сделать, в ES6 есть из коробки >there are no classes делаются в 2 строчки, в ES6 есть из коробки >interfaces кукареку жава макаки >namespaces объект это неймспейс >prototype inheritance -- is both weak and poorly understood баттхерт неосилятора >every property of every object is yielded up to the for-in construct пиздеж >and is modifiable at will by any part of the program пиздеж >any variable may hold any value гугл://динамическая типизация >Therefore as many errors as possible fail silently наглый пиздеж >Code can modify itself based on user input via facilities such as eval or adding new script blocks to the browser DOM dynamically звучит как фича >And so on and soo snool
>>393682 Если в языке есть более одного общепринятого подхода к таким базовым вещам как модули и ОО-система, этот язык накладывает огромное пенальти на код-реюз и плодит impedance mismatch на каждом шагу. Эти проблемы даже ужаснее динамической типизации, но лично мне даже её одной достаточно, чтобы стремиться как можно сильнее изолироваться от необходимости иметь дело с такими ЯП.
>>393690 > более одного общепринятого подхода к таким базовым вещам как модули и ОО-система где написано про более одного общепринятого подхода? правильно, нигде, фантазер >ужаснее динамической типизации зато можно хуяк хуяк и в продакшен сучечка, к тому же если у тебя что-то слабее haskell или scala то ты заебешься писать абстрактные фабрики декораторов
>>393698 > где написано про более одного общепринятого подхода? Я не имею права оперировать фактами о JS кроме указанных в твоём посте? Это какая-то игра? В ангуляре своя система модулей, в requirejs своя, в новом ecmascript своя, а и ещё десятки их. Это создаёт несовместимости между библиотеками на ровном месте. И это только модули, а уж разные ОО-системы... Бакбон, ембер, extjs, prototype, и сотни ещё - в каждой второй либе своя, и разумеется, если ты скормишь типичный инстанс объекта либы 1 в метод либы 2, который ожидаёт свои объекты со своей ёба рефлексией или своим уникальным подходом к super-вызовам, всё развалится. > если у тебя что-то слабее haskell или scala то ты заебешься писать абстрактные фабрики декораторов Оправдания динамопарашников. Даже старая Java после JS - как глоток свежего воздуха, такой-то методизм, абстракция, реюз. Современные редакции Java EE (7) и Spring доводят аннотации до такого уровня, что бойлерплейта зачастую меньше, чем во всяких питонах, а качество, реюзабельности, понятность кода и самодокументируемость его сигнатурами при этом намного выше. А гляди, как джависты сейчас врапперы для REST API генерируют, описывая минимальную нужную информацию аннотациями: http://square.github.io/retrofit/
>>393706 что-то ты многовато знаешь для хейтора, ты бывший js-макак? >десятки >сотни не преувеличивай я например в своем проекте на кофискрипте использовал Backbone.Events без самого бекбона как миксин к классам >Java >глоток свежего воздуха ох пиздец, я помню как в жаве банальный мап делается, такой-то бойлерплейт >аннотации костыли, та же самая динамика нечекаемая при компиляции
Пасаны нужен ваш совет. Есть 2 стула , на одном javascript дроченый(текущая работа, клиент+сервер) , на другом java точеная. На какой сесть? От фронтенда воротит, а как я понимаю основное развитие js разработчика это именно в сторону фронтенда.
Причём то, что в жабке делается типобезопасно и самодокументированно в 4 строки, на питоне займёт 100500 loc петушиного тормозного и глючного кода, разваливающегося в одних местах по вторникам, а в других в зависимости от фазы луны.
>>393766 Открывающий курлибрейс с новой строки пишут только дуднетчики, что вполне закономерно, ведь у них всё через жопу - и методы с пропертями с большой буквы пишут так же как типы, и какие-то встроеные бойлерплейтные мультикасты пердолят вместо первоклассных Event<T>, и вместо Future[T] монад ебутся с петушиными некомпозабельными Task<CocyXyi> и многое другое.
>>393784 В любом языке пишу скобку с новой строки. На той же строке открывают только дрочеры на компактность, любители плотных как стена, вырвиглазных блоков, в которых код выделяется только за счёт выравнивая. Нормальные пацаны же выделяют куски кода как выравниванием, так и пустыми строками, одной скобкой на строке и т.д.
Ещё ненавижу когда экономят на пробелах перед и после операторов и вообще на всем, как будто стремясь заполнить каждое пустое место. По моей личной статистике, таких, среди любителей открывать скобку на той же строке куда больше.
Анон, вот есть создание некоторого объекта: new dom.Animation(...) ? Тут, как я понимаю, мы сначала делаем пустой объект dom = {}, а потом добавляем метод Animation. Не легче сразу сделать "класс" Animation и как обычно добавить ему методы?
>>393167 Его для проектов с базами данных хорошо использовать. На ура идёт в гос учреждениях) Те же формочки, только в браузере. Но он медленный, нужно знать, как обратиться к элементу, чтоб не затормозить систему линий раз
>then most readers will think that block level variables will be defined. JavaScript don't have block level variables. All variables will be interpreted as function level defined.
>Q. Why not NaCl or PNaCl instead? Are you just being stubborn about JavaScript? >A. The principal benefit of asm.js over whole new technologies like NaCl and PNaCl is that it works today: existing JavaScript engines already optimize this style of code quite well. This means that developers can ship asm.js today and it'll simply get faster over time. Another important benefit is that it's far simpler to implement, requiring very little additional machinery on top of existing JavaScript engines and no API compatibility layer.
Кажется мозилла меня убедила, но как сие чудо выглядит и как хеллоуворлднуть?
>>394153 Вообще-то тут обсуждали распространение состояния (и его изменений) по коду, а промисы - это о вычислениях, которые, если повезёт, как-нибудь выполнятся, и вернут какой-то результат.
>>394155 >распространение состояния (и его изменений) по коду В идеале оно должно быть в одном месте, не надо ничего никуда распространять. >о вычислениях, которые, если повезёт В общем случае да, но в жс это в основном применяется для запуска чего-нибудь, что вызовет колбэк. По крайней мере фронтэндный жс.
>>394159 > для запуска чего-нибудь, что вызовет колбэк Просто интересно, функцию map для массивов в жс ты тоже считаешь промисом? Твоему "определению" удовлетворяет. Промис в жс - это композабельное асинхронное вычисление, которое может зафейлиться, а может завершиться успешно и вернуть значение. Комбинируется как-раз по успехам (по функции, принимающей результат успешного выполнения промиса и возвращающей отображенный результат или (А+) новый промис).
>>394163 Давно уже. Просто делаешь func.toString, заменяешь все "varname <- expr" на монадические связывания, и обратно компилируешь eval'ом: http://habrahabr.ru/post/232671/
>>394166 В комментах ссылки интереснее статьи http://livescript.net/#functions-backcalls Такая то адовая помесь хачкеля с f# и ещё какой-то хуитой А у нас на работе народ тоже этот js заебал в конец, начинают дрочить на TypeScript потихоньку
>>394168 Да нормально всё с js. Для скорости и компиляции из других языков есть asm.js, в статьях пишут что проседание скорости по сравнению с C/C++ порядка 1.5-2x. Для мелких поделок, где чаще всего жс и применяется - он почти идеален.
>>394170 > Для мелких поделок, где чаще всего жс и применяется - он почти идеален. Ну так видишь, что он пишет "народ js заебал вконец". Следовательно у них не мелкие поделки, поэтому на ts переходить вполне рационально.
> В комментах ссылки интереснее статьи http://livescript.net/#functions-backcalls Такая то адовая помесь хачкеля с f# и ещё какой-то хуитой Такими хуитами хорошо пользоваться для того, чтобы потом вернуться в хачкель и вздохнуть "как же хорошо, что в хачкеле есть типы!"
Переписываю мелкую игрушку танчики, код становится намного короче и читаемее. Несколько раз делал замены не особенно очевидных вещей, плохо расписанных в туторе:
if a > 0 return 0 нужно заменять на if a > 0 then return 0
Внутри класса нужно делать property: value method: (args...) -> вместо моего наобумного @property = value @method = (args...) -> Хотя это можно всё вставить в constructor и будет работать.
Стрелочки как я понял всегда ->, кроме случая когда нужно забиндить функцию на текущий this, тогда =>.
Вызов функции без аргумента: fn() В принципе всё можно вызывать по старинке: fn(1, 2, 3) # пробел перед скобкой ( лучше не ставить А можно убрать скобки fn 1, 2, 3 Главное иметь ввиду что съедается весь остаток выражения fn 1 + 2 + 3 = fn(1+2+3)
Классы сделали всё красивее и на радость заработали без проблем с обычным ковырянием Class.prototype (со старым кодом короче).
Смущает только что каждое выражение очень хочет залезть в return. Не очень страшно, но вот лишняя сборка списка из цикла может покалечить производительность. Нормальные посоны пишут явный return в таких случаях или оставляют на самотёк?
>>394419 ценитель кофе в итт >Нормальные посоны пишут явный return в таких случаях или оставляют на самотёк? да если функция не возвращает нихуя, пишу return в конце, тоже бесит такой костыль
>>394578 пофиксил >>394560 Да ничего особенного, просто написано в функциональном стиле. Начал было писать в императивном с изменяемым состоянием повсюду и сразу охуел от количества багов и запутанности кода. Переписал, ограничив возможность изменять состояние и сразу все стало в разы проще.
>>394593 Подскажи, что почитать и практиковать, чтобы научится произвольно писать подобный код. Я не могу написать ничего сложнее обработки событий на жыквери.
>>394614 Спасибо, попробую сейчас. Кстати, я наверное все таки в своем вопросе подразумевал не саму функциональщину, а просто навык написания полезного кода, а не "сменить класс, подгрузить аяксом" и проч. Это я так понимаю мне на курсы по алгоритмам еще надо?
>>394632 Функциональщна как раз поможет тебе писать такой код, ее принципы никто не мешает использовать в императивных языках. Курсы по алгоритмам дадут тебе понимание, как работают современные алгоритмы и как написать собственнный эффективный алгоритм с минимальной возможной сложностью. Задача на самом деле довольно частная и второстепенная, в веб-программировании почти не встречается, хотя минимальное понимание сложности алгоритмов все равно необходимо. Навык написания простого, безопасного и реюзабельного кода на то и навык, что приходит с опытом. Программируй, стараясь писать код, от которого получаешь удовольствие, а не хуяк хуяк и в продакшн, изучай чужой код, который тебе кажется таким. В принципе, первый курс в списке как раз объясняет подходы к программированию, которые помогут тебе обогатить багаж приемов, улучшаюших код. Можно, конечно, еще порекомендовать SICP, но я лично его не осилил. Вообще, первые два курса во многом построены на основе этой книги, даже некоторые задания взяты оттуда. Первый курс еще хорош тем, что твои задания будут оценивать другие ученики как раз по критериям простоты, оправданности и понятности кода, а это то, чего ты хочешь. Короче, рекомендую настоятельно, там как раз первая неделя только прошла.
>>394642>>394644 Спасибо, значит буду проходить этот курс. Моя проблема в целом в том, что я типичная макака, которых полно, использую готовые решения, но сам сообразить как такое написать, не могу. Тут я думаю проблема уже в том, что я просто туп для программирования, поэтому ничего и не получается толком. Как пример, вот ты написал дополнение к хрому, я поглядел сурс, там полно js ок, внутри которых куча непонятных мне вещей, и еще больше не понятно как они взаимодействуют друг с другом, да я даже чертов калькулятор наверное не напишу. Надо вот щас попробовать.
>>394647 Ну? я тоже бы не понял как это взаимодействует до того, как почитал документацию по api хрома для дополнений. Там вся архитектура делится на четыре уровня: непосредственно загруженная во вкладке страница (hook.js), popup.js, contentscript.js и background.js. contentscipt.js запускается при каждой загрузке страницы, а background работает постоянно в одном экземпляре, popup это окошечко, которое появляется при нажатии на иконку дополнения. Общение между ними происходит через сообщения, отправляемые с помощью chrome.runtime.sendMessage(), принимаются сообщения через колбек chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){...}). Исключение только для самой страницы, оттуда сообщения отправляются с помощью window.postMessage.
>>392245 Слышал, что Angular более сложный и начал с него. Две недели умывался слезами перечитывая по 15 раз мануалы, туториалы и документацию, но всё таки более или менее разобрался. Теперь получил задание разбираться с Backbone (а точнее - с Marionette,js попутно разбираясь с Backbone и всё это на CoffeeScript). После Angular'а всё очень непонятно, не знаю, с какой стороны подступиться.
>>394867 >Две недели умывался слезами перечитывая по 15 раз мануалы Вот это очень точно сказано. На хабре вот ещё: >За всю мою карьеру, единственная платформа которая приблизилась по уровню мучений при попытке расширить ее, это серверные элементы управления в ASP.net WebForms. Из своего опыта помню, что коллеги еблись с ним знатно, пока подключили ссаный rest интерфейс.
>>394910 Охуеть. Сменить штоле работу. Нахуя я тогда петон учил. Мне что нравится во фронтэндерах, что думать надо мало, видимых результатов много, и можно заниматься хтмл-ксс-жс, а остальное принеси-подай слать в хуй. Набирать и кликать только много придётся.
>>394910 На фрилансим смотрел, все заказы были сделаны 2-3-4-5-6-7-8 месяцев назад. Ничего даже недельного нету. На брейнстордж - все либо мосцква и питер в офис, либо нужно знать еще кучу бекенда. Там тоже искал. На hh сру сейм щит проблема. >>394911 Там чисто ангуляр уже никому не нужен, только полный стак с бекендом. алсо >Разве что ты в совсем забитой деревне какой. This (150k население)
Короче, проблема во мне. Надо без денег ехать в большой город, и еще прокачать скиллы, выучить какой нибудь язык серверный. И тогда может быть смогу 100-200 баксов иметь в месяц. А пока что я ем блины со сметаной, бабушка сделала. Говорила мама, не иди в погромисты, иди на завод, вон все мальчики щас на заводе работают, а кампутерщики тут не нужны
>>394910 >>394911 Вот проблема номер 1 в поиске работы вообще - необходим коммерческий опыт реализации систем на angular, а где его взять ? Фриланс не хочу из-за необходимости тратить часть времени на поиск заказов и неопределенности в плане денег.
Пасаны поясните пожалуйста за перспективы js разработчика,только ли front-end. Сейчас на работе юзаю ноду и ангуляр. Есть возможность уйти на java программиста.Что перспективе интереснее в материальном плане , и плане задач? (К слову верстать терпеть не могу).
>>394985>>394990 Я бы на твоем месте с такими знаниями шел дальше по front-end пути, больше свободы, а денег не меньше чем у офисного джависта. Алсо, дико завидую всем кто может в ноду и ангуляр. Я сколько раз не пытался учить, ничего не получается. Может дашь советов мудрых? Как сам качал скилл в этом? Что писал, и что читал?
>>394992 Да, я уже ставил себе задачу, написать подобие твиттера, но застопорился на этапе, где надо загрузить аватарку, и чтоб она сразу отобразилась, ну и возможность ее удалять. А учебные материалы ты какие использовал? И чем занимаешься на работе, что пишут на ноде и ангуляр для продушкена в раше?
По ноде в основном форумы + документацию. По ангуляру различные статейки западных фронтендеров по ней , + ng-book.(Ибо на мой взгляд официальные доки ангуляра очень путано написаны для новичка) Ну и плюс с работой фортануло , ибо попал в нужный момент , когда нужны были люди которые могут хоть какой-либо код писать , т.е по сути обучался по ходу работы (да и сейчас обучаюсь что уж там).
>>394998 Я из села. Работы нет, бабла нет, возможности заработать нет, возможности уехать нет. Хотя ладно, вру, заработать 300 долларов за месяц вполне реально, но они уходят на жизнь. Так что скорее всего вся моя жизнь не удалась уже.
По поводу изучения Angular дичайше рекомендую бесплатный курс от CodeSchool. Он очень простой по сравнению с блядским туториалом на оффициальном сайте. После него читайте angular style от John Papa или Todd Moto. Вообще, читайте Тода, он крутой парень и много пишет про Angular. Вот, например, http://www.airpair.com/angularjs?ti=#MxkrVCfYlQfeQLBy.99
Вопрос от ньюфага. У меня есть код http://jsfiddle.net/4suou1ok/ Мне нужно значение переменной damnVariable использовать в глобальной области видимости. Как это делается, отцы-основатели? У Брендона Айка уже спрашивал- пока не отвечает.
>>395202 У тебя код в глобальном скопе выполняется раньше, чем display дергает коллбек. Вызывай свою другую функцию из коллбека display или передавай в первую функцию коллбек(как снизу сделали тебе) или используй цепочку из promise.
>>395205 спасибо, ребят. Почитаю на learn.javascript про коллбэки- большущий пробел у меня в этом-не понимаю я вас и ваш код понять пока не могу. коротковат пока мой скилл
Делаю подобие чата для экспириенса, новые посты добовляются через ajax. В них есть разные кнопки, типа скрыть пост, спойлер, вся фигня. Как сделать чтобы правила распространялись и на них? Так требуется перезагрузка чтобы они заработали. Вот допустим есть: $(".post-content .spoiler-head").click(function() { $(this).parent().find(".spoiler-content").slideToggle("fast"); }); Как сделать чтобы и на новые посты он тоже работал?
>>385174 Я нихуя нуб вообще. Бывший экономист, хочу кодить и рубить бабло. Получится ли у меня это с JS, или мне податься в PHP? Готов постепенно учиться, уже начал.
Что скажете за связку jquery + underscore + backbone + knockback + knockout? Звучит всё так, будто бы уже стандарт де-факто, наряду с бутстрапом. В то же время, насколько массово это используется?
>>396105 Нет и пока не может соснуть, т.к. это единственный нормальный фреймворк на js, ну и ExtJS ещё норм. Боли неосиляторов провайдеров фабрик, типа "верните мои нулевые когда я писал портянки на джиквери" никого смущать не должны. Пусть пытаются заменить единственный нормальный фреймворк доступными для их имбицильных мозгов быдлиотеками и убогим говном типа реакта, это их дело. Не обращай внимания.
>>396058 Такая же тормозная и перегруженная бесполезными 'провайдерами фабрик' ерунда как и ангуляр. Но ты обязан их выучить от корки до корки, иначе будешь объявлен москалем неосилятором и казнен.
Посоны, посоветуйте опенсорсный проект на angular или backbone с низким порогом вхождения да хоть каким, на самом деле - я вообще ничего не нашел, что бы гордо показывать принятые пул реквесты потом на собеседованиях. Реквестирую так же общих советов о том, с чего начинать человеку, который решил стать крутым контрибьютором
Ананас, помоги с ng-include в ангуларе, есть странное желание впихнуть туда полностью рабочий левый апп из стороннего файла. Точнее, есть мелкое приложение на ангуларе (ng-app вместе с html, css и тд, а не просто скрипт) которое лежит отдельно и вполне себе работает. Задумал я его прикрутить к другой, большой страничке, и чтобы не замарачиваться самокопирастией, заинклюдить его в эту самую большуй страничку.
Собственно суть - как заставить ангулар исполнять свой же код из этого файла, а не тащить оттуда только текст
>>385174 Нужно запилить панель настроек пикрилейтед. При этом, при выборе разных параметров и чекбоксов появляется еще больше настроек и так далее. Как это лучше всего организовать в коде? У меня получился жуткий говнокод.
Пацаны, не бейте, лучше обоссыте. Как узнать высоту СОДЕРЖИМОГО элемента, если это самое содежимое скрыто? Есть у нас div 1x1px, в нем оче много контента. Как с помощью js получить его высоту?
1) Как запустить функцию переданного объекта? В моём примере когда Player вызывает create() ни хуя не происходит, а аддон в хроме подсказывает - "TypeError: undefined is not a function". 2) И объясните как в принципе тут работают референсы типа того, что пытался сделать я. Когда я создал копию Player и передал в него тзис (т.е. сам объект Game), то в эту копию приходит копия передаваемого объекта (т.е. с новым адресом и т.д.) или приходит ссылка на него?
Game это функция конструктор и подразумевается что ты будешь создавать объекты типа var game = new Game() и передавать этот экземпляр дальше в Player(который я так подозреваю тоже должен создаваться через new Player(new Game())
Посоны, посоветуйте что почитать по ноде, экспрессу и вообще мин стэку. Введение в ангуляр вроде осилил. Я конечно понимаю, что технология хипстерская, но туториалы по ней это хипстеры в квадрате. "А теперь мы напишем хелловорлд! Нпм инсталл ё! Чё, не работает? А вендоблядей не звали, гы-гы-гы! Ладно, хуй с тобой, git clone https://github.com/linnovate/mean.git! 'The MEAN stack is in fact a fully functional blog engine application.' Чё, не хочешь блог, хочешь хэлловорлд? Авотхуй, жри чё дают!"
>>404332 >чо бы при ответе на оп пост рядом с >>1 было [OP] вот как в кукле .de-opref::after { content: " [OP]"; } ну да, почти все на css ) класс de-opref еще нужно прилепить )
>>404696 Да не за что. Раз уж тут мой персональный анонимный бложик, хочу покаяться - я задеплоил один проект на ангуляре на гитостраницы с помощью веток и редактирования bower_components в гитигноре. И только на втором проекте я вспомнил, что давно хотел почитать про grunt.
Ньюфагам:
1. Что это за язык такой? - Объектно ориентированный язык, наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.
2. Ааа, так это хуйня чтоб типа текст покрасить при клике, или попап вызвать? - Это только малая часть того, что может язык. Сейчас, на JS можно делать игры, с 3д(three.js) графикой или 2д(phaser.js), можно делать игры и приложения для телефонов(phonegap, etc), можно делать десктоп приложения(node-webkit)
3. Ну ясно, а че еще можно? - А еще можно использовать на сервере, причем очень даже успешно. А все благодоря платформе node.js, и v8, который встроен во все хромоподобное.
4. Я щас ниче не понял, повтори. - Проще говоря, если ты не делаешь огромный интернет магазин, или хай лоад проект, то забудь о пхп или руби, используй javascript и node.js (базы данных прилогаются, mongoDB и sql-и тоже)
5. А че еще прикольного можно сделать - А еще есть MVC фреймворки, angular, backbone, ember, knockout и многое другое.
6. Нах оно надо? - Для создания web application, логики на клиент-сайд.
7. Мда столько хуйни всякой... А можно просто jquery учить, я слыхал щас все ее используют сайты - Не стоит, можешь начать писать на жыквери, когда будешь асом в других фреймворках, и, в частности самого нативного языка, но не раньше, не порть себе мозги
8. Ну все все бля, че как учить то? - Дальше я приложу список материалов для изучения
Учим JS:
Книги:
David Flanagan - "JavaScript: Подробное руководство" - маст хев, книга, которую будешь читать не раз. (Читать 6-е издание).
Дуглас Крокфорд "JavaScript: сильные стороны" - просто хорошая книга.
Стефанов С. - "JavaScript. Шаблоны"
Онлайн сообщества:
http://learn.javascript.ru/ - оно одно, единственное. Начинать учить язык советую отсюда, потом переходить уже к книгам.
Онлайн курсы:
Как же можно учить язык, только читая книжонки? Нужна практика, и только так изучаемое усваивается, не иначе.
CodeSchool - http://go.codeschool.com/KoeYkQ (не ругать за рефку, она прибавляет +2 дня бесплатного пользования)
Отличный ресурс для изучения языка, очень много курсов по всем передовым технологиям.
CodeAcademy - http://www.codecademy.com/
Уже не такой сильный, но все еще интересный проект, так же маст хев для набивания скилла.
Выучил основы, написал свою пузырьковую сортировку и змейку? Не знаешь как двигаться дальше?
Почитай теперь это - https://shamansir.github.io/JavaScript-Garden/
А потом? Я и так уже гений!!!
Выбери себе направление, может, ты хочешь игори делать, тогда вперед на гитхаб, и ищи phaser, pixi и другое, выбор велик.
Хочешь на сервер сайд, на самой хипстерской технологии? Копай в сторону node, express, socket io.
Хочешь писать MVC логику? Angular, backbone, да множество их.
В общем, Официальный JavaScript тред #2 объявляю открытым!