24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, Walmart и многие другие.
Краткий FAQ: 1. Что это за язык такой? - Мультипарадигменный язык, изначально создавался для использования в браузерах как язык сценариев для придания интерактивности веб-страницам, однако в процессе своего развития преодолел этот этап и сейчас может использоваться для любых целей ввиду своей неограниченной гибкости и удивительно удобного синтаксиса. Сочетает в себе особенности объектно-ориентированного, функционального, событийно-ориентированного и императивного программирования.
2. Какие возможные направления для разработки существуют? - Фронт-энд (Vanilla, jQuery, Angular, Backbone, React, Meteor), бэк-энд (Node.js, Express, Sails), геймдев (Phaser, Cocos, Pixi, Unity), 3D графика (Three.js, Babylon.js), мобильная разработка (NativeScript, Phonegap, Ionic), десктопная разработка (NW.js, WinJS).
3. Можно выучить только jQuery и всё писать на нём? - Не стоит, лучше начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и в будущем не испытывать трудностей с изучением сложных фреймворков.
6. Зачем нужны CoffeeScript и TypeScript? - Это особые варанты JS для любителей других языков. CoffeeScript подходит для любителей Ruby и Python, TypeScript - для сторонников строготипизированных языков. Если ты новичок, то учи оригинал и не забивай себе голову этим.
7. Ну ладно, с чего начать изучение то? - Дальше я приложу список материалов для изучения.
Чистый JS: Книги: Дэвид Фленеган - "JavaScript: Подробное руководство"
Кирилл Сухов - "Node.js. Путеводитель по технологии"
Дэвид Хэррон - Node.js. Разработка серверных веб-приложений
Front-end
Эдди Османи - "Разработка Backbone.js приложений"
Эрл Каслдайн, Крэйг Шарки - "Изучаем JQuery"
Читать онлайн
Dr. Axel Rauschmayer - "Speaking JavaScript: An In-Depth Guide for Programmers" - Одна из лучших книг по JS. Пока только на английском: http://speakingjs.com/
Репост вопроса: Посоны, вот я закатился на codewars когда захотелось проверить могу ли я вообще что-то. В принципе пока получается. Но у меня бугурт от топовых решений: часто, конечно, они просто на порядок умнее и красивее моих, но нередко в топах решение выведено в одну строку так, что хуй прочитаешь, как мне кажется. Это так и надо изъебисто всё в строку уложить, тип короче == лучше, или в реальности так никто не делает, а на кодварсе просто писюнами меряются?
>>673573 Второе. Ты можешь рисовать комиксы за бешеные деньги для какой-нибудь параше, но это не означает, что тебе нельзя качать скилл и участвовать в соревнованиях на йоба реализм маслом по холсту. Сорт оф.
>>673565 Предлагаю добавить для совсем новичков кто хочет во фронтенд, чтобы шли в тред верстки и там изучали основы, а потом снова перекатывались сюда. Да и вообще вопросы подобные (типа про html/css, css-препроцессоры, таскраннеры, бутстрапы, всякая такая лабуда) лучше сразу там задавать.
С чем связано предложение? Было в прошлых тредах из того, что на памяти про бутстрап, про css-препроцессоры и про совсем базовые скрипты.
>>673564 (OP) Суп, анон. Скажи, каким образом лучше подойти к обучению? Пока смотрю лекции Кантора, делаю задания, которые он там дает, но как-то все это скучновато, и при том я не знаю, по правильному ли иду направлению. В универе было проще - там препод дает программу занятий и ты идешь по ней. Когда что-то изучаешь самостоятельно, находишься в постоянной неуверенности, будто идешь по лесу без компаса и карты - нет понятия о том, в каком направлении ты двигаешься, нужно ли тебе повернуть, или вообще пойти обратно. Вот так я себя примерно чувствую. Плаваю, не зная направления. Может, кто проходил то же самое, дайте совет какой-нибудь.
>>673619 Двачую это. В верстке по сути надо лишь понимание, остальное это уже тупое дрочилово с открытым caniuse, гуглом и примером.
>>673615 Ну. У Кантора ты получишь базовые знания, без каких-либо особых подробностей и тонкостей это тебе к Флэнегану, YDKJS, Exploring ES6, но сможешь понять как работает язык в целом и его взаимодействие с DOM.
Дальше берешь какой-нибудь урок с ютуба-рутрекера, где делают какой-либо проект, вернее его костях, типа базового блога на MEAN стаке. Пилишь этот базовый костяк, прикручиваешь к нему всякие таскраннеры, хуянеры, учишься работать с инструментами заодно и документацией.
Дальше просто приводишь этот проект в хорошее состояние, чтобы был не хуже твоего любимого бложика. Ну и с другими проектами тоже так.
Как показывает опыт знакомых трейни, это самый простой вариант. Базовое понимание + практика, а потом уже можно читать про шаблоны, рефакторинг, тонкости es и лезть переписывать всё это говно.
Фронтендерам вообще приходится иногда самим рисовать какие-нибудь иконки/кнопочки? Анимацию они тоже могут рисовать? Или у них чисто код, программирование, хардкор?
Можно ли полученному диву div по айди из дом-дерева прописывать свойства, как объекту: div.option1 = ..., div.option2 = ... и т.д. (так и не ответили)?
>>673714 Не атрибуты, а вот взять див как объект и напихать в него свойства. >>673717 Об этом и говорю, но почему это не катит в IE8? Он не поддерживает такую запись?
>>673716 Думаю что неплохо было бы глянуть что там щас по книжной полке. Все ли актуально, возможно добавить каких-то книжек поновее, убрать старье и т.д. Плюс тут все топят за использование фреймворков, читай ангуляра с реактом. Минимум треть треда - их обсуждение, следовательно, не лишним будет в шапку добавить лучшие обучалки/видеокурсы/книги/пояснения/еще какое-то полезное дерьмо, конкретно по ним. Чтобы ньюфаги сходу могли в getting started.
>>673760 Двачую. Сам типа ньюфажик (верстать умею) курю пока Кантора и интенсив по js от академии. Мне бы Getting started пригодились (но не в ближайшие пару месяцев точно лол)
>>673772 Сам кстати некоторые материалы добавлял когда видел в закладки - завтра пороюсь, может че найду полезного тогда сюда кину - посмотрите, может чет и в шапку добавите
Есть игра, петридиш называется, что-то вроде агарио. Там есть режим, мегасплит. есть скрипт, позволяющий очень быстро делиться, что как бы читерно. Так вот, с недавних пор разрабы это дело пофиксили и деление с помощью него происходит даже медленнее, чем вручную. Но через какое-то время читеры вновь появились, но теперь их очень мало, и молчат как партизаны. Я сам особо не шарю, знаю только школьную программу, паскаль и пр. Была идея, что разрабы ограничили скорость деления, я пытался сам изменить код, но как-то вообще ничего не получилось. Может у вас какие-нибудь идеи будут? Сам код собственно:
(function() { var amount = 6; var duration = 70; //ms
var overwriting = function(evt) { if (evt.keyCode === 81) { // KEY_Q for (var i = 0; i < amount; ++i) { setTimeout(function() { window.onkeydown({keyCode: 32}); // KEY_space window.onkeyup({keyCode: 32}); }, i * duration); } } };
Т.к. это ни веб, не сервер скопипащу на пастбин. http://pastebin.com/Ap62HKkC Не слишком говнокод? Асло лэи всякие это из приложения droid script, я просто для андроида это пишу, на теориях вероятностей халтурить. функции названы в честь животных лишь потому, что я не знал как их обозвать и чтобы коротко было
Смотрите - нужно чтобы при клике на любой див на странице что-то происходило с этим дивом. Сделал это примерно так: var divs = document.querySelectorAll("div"); for (i = 0; i < divs.length; i++) { divs.onclick = function() { (что-то происходит с дивом) } } Мне такое решение кажется уебищным. Можно ли это сделать по уму?
>>674064 Таким образом можно конструировать функцию, код которой неизвестен на момент написания программы, но строка с ним генерируется или подгружается динамически во время её выполнения.
Пример использования – динамическая компиляция шаблонов на JavaScript
Анон, пишу тут небольшой калькулятор на js/html/css. Оцени говнокод. И как оптимизировать кусок на пике? Что-то мне подсказывает, что можно по уму сделать. Покажи куда гуглить.
>>674128 Например вот так. К сожалению щас нет времени отключать левые функции и чистить и бетонировать код, но суть, думаю, ты поймешь. https://jsfiddle.net/kha1zLfk/1/
>>674144 Такой вариант я примерно обдумывал, но я пока еще не знаю, что такое loop, надо тоже искать инфу. Просто я только вчера узнал про addEventListener и всего два дня работаю с DOM, поэтому не все ясно. До этого просто пилил функции для задачек на алгоритмы на чистом js (по книге А. Шеня).
>>674142 https://jsfiddle.net/kha1zLfk/3/ - я бы сделал так, чтобы хранить данные отдельно от DOM. В этом случае это не имеет значения, но как тенденция это ок.
>>674142 Можешь допилить функцию чуть переделав проверку значения, мне было лень. Например, запилить проверку по дата атрибутам вместо textContent. Будет защита от дурака.
>>674150 Ты прав, не обратил внимание. Просто на работе (сисадминство) сейчас, пока нет возможности вдумчиво разобраться с примерами. Вечером вместе с Флэнаганом буду разбираться.
>>674142 Тебе нужно разобраться с dom event flow. Идея в том, что не нужно навешивать 20 слушателей на каждую кнопку. Достаточно одного на весь калькулятор. Для этого его лучше обернуть в отдельный div. А из объекта event ты достанешь всё что тебе нужно. Можешь вывести его в консоль и поизучать. addEventListener((event) => { console.log(event) }
>>674155 >Достаточно одного на весь калькулятор Вот тут я с тобой не согласен, дружище. Делать одну большую функцию стоит только тогда, когда это необходимо, а необходимо это, если: 1. Тебе требуется перерендеривать содержимое и соотв. пересоздавать слушателей. 2. При этом количество элементов больше хотя бы сотни. И в таком случае стоит дополнительно подумать на счет инкапсуляции, чтобы потом делать switch по вариантам и вызывать конкретные функции. Таких случаев не так и много, на самом-то деле, обычно требуется забиндить десяток слушателей на статичный контент.
>>674185 >>674183 Sublime лучше. На работе юзаю Atom, а дома Sublime. Подсветка вкуснее, функций больше, а еще Atom начинает глючить, если строка в файле больше какого-то кол-ва символов (не подсвечивает литералы).
При ховере у инлайн-блочного элемента, появляется граница и все другие блоки/элементы чуть сдвигаются. Напомните, как с этим бороться, а то лень сейчас рыться в интенсиве, птываясь найти про это.
Аноны помогите разобраться. Выполняю задания на кодакадемии, и вот дошел до задания с обратной связью. Надо сделать, чтобы пользователь поставил оценку, если будет больше 8, то один ответ, если меньше то другой будет отображаться. Я еще зеленый в джаваскрипте, и не могу понять как сделать, чтобы был ответ в случае если оценка больше 8. Вечно показывает, что он ставит меньше 8. Помню выполнял задание с этой темой, но не могу найти.
>>674356 Чему обучает кодеакадеми, если дойдя до заданий со взаимодействием с пользователем, ты до сих пор не разбираешься в том, что такое переменные?
>>674424 я только недавно начал вообще пратикой заниматься, так что не все сразу понимаю с первого раза. Ты словно прям начал с первой минуты показывать профессиональные навыки в джс.
Ребят. Почему нельзя брейк использовать так как я сейчас пытался использовать? Если вместо ифа с брейком просто брейк написать последней строкой то тоже самое. Если уж совсем нельзя, то как мне коротко сделать так чтобы сначала выполнился первый иф, а второй при первом запуске не выполнялся? Понятно, что можно дописать дополнительную переменную и в первом ифе изменить ее с 0 до 1 и поставить это в условия ифов, но хотелось бы покороче.
>>674441 Это вовсе не профессиональные навыки. Это азы. Это нелогично совершенно, не поняв принципа основы - заниматься составлением каких-то алгоритмов. Ты так и будешь топтаться на месте.
>>674455 >>674459 Понял. Тогда придется чуть удлинить код. Мне нужно было чтобы не запускалось при одном запуске сразу два однотипных действия и при выполнении действий первого ифа действия второго не выполнялись. А при следующих запусках только второй иф выполнялся.
>>674462 Думал об этом, но в моем случае при двух условиях не получится. Или я тупой и не вижу.
>>674469 Благодарю анон, призабыл про реутрн. А как детектить запуск это я уже придумал, там переменная openPortals в начале равна 0, а потом увеличивается и уже первый иф не будет выполняться.
>>674467 Блять. Нахуй ты ебешься в кодакадемии, если в английский не можешь, сука? Найди книжку с единорогом, "Подробное руководство", и ебись с ней. if(условие){код}elseif(условие){код} Сука, принципы, как два плюс два.
Анон, ай нид ХАЛП! Есть нг-репит, который отрисовывает блоки и отображает соотвественно инфу из апи в них. Мне нужно, чтобы нг-репит положил значение полей(тайтл, текст) в инпут и текстареа соответственно. Пока все ок, но дальше.. А дальше мне нужно нажав на кнопку редактирования этого блока сделать так, чтобы пользователь мог отредактирвать эти инпут и текстареа и отправить. Вот собственно я не могу придумать как сделать так, если ВАЛУЕ и НГ-МОДЕЛ юзать на одном инпуте, то получается херня, помимо всего прочего из-за того, что нг-репит все отрисовано, то скооповские переменные для редактирования полей естественно тут же через бинд изменяют значения остальных блоков. В общем, джва дня бьюсь не могу придумать как это побороть. Подскажи, анон!
>>674551 Без обид, но ты продемонстрировал говнокод. Можно ещё всюду == использовать и другие веселые штуки, чтобы потом все охуевали от того как ты можешь.
>>674563 Ноуп, ты не показал что можно, ты просто засунул кучу кода в одно действие и типа "смотрите как я могу". С таким успехом можно и в 5 абстракций захуячить код и сказать что можно 5 действий в которых ещё 25, без форов и прочего говна даже, просто запихнув всё это в одно.
И это кстати будет даже читабельнее. Впрочем, мне лень тебе что-то доказывать, но это очень хуевый пример.
>>674576 Когда есть необходимость в связи один-ко-многим или многие-ко-многим. В остальных случаях и нереляционная удовлетворит большинство потребностей.
>>674528 Вообще, по-хорошему, ты молодец. Такой образ мышления хорош. И я думаю, что ты не стал бы применять это в продакшене. Все-таки эта особенность онклик (перезапись функции, а не дополнительный каллбак) имеет контекст применения.
>>674681 Мне, кстати, нравится структура данных, которую предложил анон здесь: >>674528 Не знаю, че все так говорят, что это говнокод, на самом деле удобно и в любом случае приходится делать что-то подобное, чтобы хранить колбэки в одной структуре, назвать stack как-нибудь типа buttonNameCallbacks и все.
А сейчас тут все такие остановились и пояснили нубу, что он делает копипастит не так. Таки есть div, на котором висит функция его перетаскивания (drag-n-drop). Внутри лежит картинка на полный div, на нее повешена другая функция, которая по клику скрывает div. Но сюрприз, при перетаскивании div'а вторая функция регистрирует клик и скрывает div. Как пофиксить?
>>674724 Функцию скрытия на mouseup, переменную проверять в ней, ставить в true в фунции перетаскивания, ставить в false после проверки в функции скрытия.
Приятно наблюдать за тем как господа меряются воображаемыми пиписьками приписывая своему визави личные недостатки, но тем не менее, прошу ответить на мой вопрос. Какой подход вы рекомендуете использовать для прохода по массиву? Проход циклом или через forEach? мимо-ньюфаг
>>674758 Если ты настолько тупой и не понимаешь, что оператор for это итератор и реализует итерацию, то просто пойди выпрыгни из окна. >>674760 >>674761 Неслабо у вас бомбануло, макаки тупые)) Идите дальше learn.js читайте, это всё, на что вы способны, всё равно сдуетесь через месяц.
>>674748 ох лол, вот это ты клоун, главное ведь переспорить на анонимной борде, да? >iterable protocol это для определения способа итерации, не более, по твоей же ссылке это и написано, но ты такой тупой, что не можешь этого осознать и пытаешься подменивать понятия, игнорируя ссылку на вики там наверное врёти, да?. И да, использовать итераторы да-да для обхода массива, как и саму итерацию - уровень этой доски и твоего безработного существования. Дай тупой пидорахе функциональную парадигму и функции высшего порядка, она всё равно говно жрать будет, ном-ном.
>>674776 >>674777 Ты что клоун, ещё и семенишь тут? Мозг совсем высох? Да не волнуйся, ты бы и так не смог даже простейший жабаскрипт осилить, что говорить о более высоких языках.
По официальной спеке ES-262 for является итератором, как и по CS-понятиям в целом. Да, тут можно разводить срачи, мол у нас в жс есть вон итератор как сущность, смотрите все! Но типичный for .. in это неявная итерация, а for как само действие тоже является итерацией, только с явным счётчиком. Это основы кампуктер саенса, в википедии и всём остальном это есть, в спеке также отмечен фор как "условия итерации", итерейшен стейтмент карочи. Пикрилейтед.
А по хорошему, массивы действительно лучше обходить forEach или встроенными методами, это намного читабельнее и даёт больше возможностей. В самых популярных гайдлайнах типа airbnb даже об этом написано. Иммутабельность и чистые функции - наше всё, посаны. Рикаминдую.
>>674800 Итератор по определению, позволяет осуществлять навигацию по итерируемому объекту. Назад-вперед.
Расскажи, как ты в for..in вернешься к предыдущему элементу коллекции, например?
В цикле со счетчиком, еще понятно. Но суть в том, что это цикл. Шаг цикла называется итерацией, разумеется. Но называть циклы Итераторами, это просто пушка.
>>674800 Двачую умного парнягу. Единственное, что скажу, лучше, если есть возможность, юзать не встроенные методы, а библиотечные, они быстрее и обладают более широким функционалом.
Итератор (от англ. iterator ― перечислитель) — интерфейс, предоставляющий доступ к элементам коллекции (массива или контейнера) и навигацию по ним[1]. В различных системах итераторы могут иметь разные общепринятые названия. В терминах систем управления базами данных итераторы называются курсорами. В простейшем случае итератором в низкоуровневых языках является указатель.
В данном контексте кода от анона выше, это доступ через индексацию и цикл, но по сути эта реализация - итерация и по спеке, фор являет собою итератор, потому что for может работать как цикл, так и как полноценный итератор. Не следует применять процедурную терминологии к языку, который таковым не является. Поэтому в ES for - 100% итератор, который может использоваться как цикл с доступом через индекс к массиву, а это довольно херовый подход в написании кода. И если память меня не подводит, текущие всякие V8 очень круто умеют работать с всякими .map, разворачивая их, поэтому многие разработчики и используют данный подход.
>>674819 Описание: >Итератор похож на указатель своими основными операциями: он указывает на отдельный элемент коллекции объектов (предоставляет доступ к элементу) и содержит функции для перехода к другому элементу списка (следующему или предыдущему)
>>674830 >содержит функции для перехода к другому элементу списка (следующему или предыдущему) >это не значит, что он может туда-сюда ходить. Ясно всё.
>>674840 Не шарю в жаве. Но допустим ты не пиздишь. Какие юзкейсы у такого итератора? Означает ли это, что всё, что не может менять направление - не является итератором? Нет, не означает. Иди нахуй поэтому, лол
>>674842 Ничего не понимаю в жабе, но скорее всего имеется ввиду итератор как поведенческий паттерн, а они да, могут куда угодно ходить, хоть к мамаше в гости. Если это задать в параметрах
>>674679 Но, как? Как отрисовать елемент через нг-репит и контроллер? Дело в том, что код не мой, потому нг-репит уже по умолчанию, его я не могу обойти, то есть нужно на основе его сделать, то что я описал выше. Пробовал юзать нг-инит, в доках говорят, что долджно вызываться на каждой итерации репита, но или мой английский плох или он не вызывается и получается какая-то херня.
>>674857 На всех более менее средне-больших проектах юзают какую-то утилити либо в любом случае. Да и загрузить 4кб не так сложно, даже для маленького проекта.
>>674772 > тупое хуйло ебаное. Пидор, никуда тебя на работу не возьмут, т.к. ты пидорахен ссыкливый. Господи, никогда не перестану умилятся тому, какой обиженный жизнью контингент тут сидит.
>>674857 В современной веб разработке 4кб ничего не решают, а решает количество запросов к серверу, а эту проблему решают таскраннеры на отличненько, поэтому можно и подцепить библиотеку.
Но посаны, обрабатывать всякие "тяжелые" массивы на стороне клиента - моветон. Хотя честно скажу, сомневаюсь что боттлнек будет именно в обходе массива, лол.
>>674873 Никто про "тяжелые" (что бы ты не имел по этим в виду), не говорил. Даже для простого массива в 100 айтемов уже есть смысл не использовать встроенные методы. Не говоря уже о плюшках типо каррирования и композиции, доступных из коробки.
>>674873 Я сейчас пишу либу для обработки изображений на canvas. И, как это не прискорбно, приходится проходиться циклами _.each по массиву с семизначным length. В эти моменты меня успокаивает только то что заказчик так захотел.
Алсо, твой код говно, видно что ты начинающая пидораха, но уже споришь с большими дядями, при этом не понимаю нихуя. - используешь онклик - используешь декаларацию нескольких переменных через один var - используешь var - используешь arguments - не используешь лямбды - ставишь точки с запятыми - не ставишь скобки у if
>>674908 >используешь декаларацию нескольких переменных через один var >- используешь var Поподробнее с этого момента. В чем ошибка? И что там по поводу аргументс? Я вот точно начинающий, не слышал, что это все не стоит юзать. Особенно точки с запятыми.
>>674908 >- ставишь точки с запятыми >- не ставишь скобки у if Сам-то понял что написал? То есть первая твоя притензия выводится из перестраховки от многострочных условий, а вторая противоречит этой же самой перестраховке, при проебанном переносе строки.
Точка с запятой ставится на автомате, а ты сахарись дальше.
>>674935 Они изуродовали let. Вместо того чтобы добавить только блочную область видимости, они запретили повторное определение, что приводит к тому, что невозможно отлаживать код, редактируя и вставляя в консоль: первый запуск проходит, последующие - нет. Поэтому let при отладке используется только там, где нужна блочная область видимости, а после завершения отладки все var заменяются на let.
Помогите оптимизировать алгоритм подбора font sizeАноним03/03/16 Чтв 22:58:48#252№674945
Нужно под заданную ширину width подобрать максимальный size так, чтобы разница составляла не больше 1 пикселя.
То есть грубо говоря имеем какой-то text, который должен по ширине уместиться в воображаемый бокс, мы знаем тип шрифта (face) и задаём ширину этого бокса. Алгоритм ищет и выдаёт оптимальный font size.
На пике рабочий алгоритм. Коэффициенты сначала были 0.5 и 1.5 соответственно. Поиск осуществляется методом маятника. На пике старые коэффициенты.
Мне удалось сократить число шагов с помощью коэффициентов 0.9 и 1.3. До этого был дикий разброс. Причём я заметил, что сильно влияет стартовое значение size, поэтому возникло два вопроса
1. Что брать в качестве начального значения size? Возможно, стоит использовать какую-то хитрую пропорцию длина текста, умноженная на что-то делённое на ширину.
2. Какие коэффициенты можно ещё подобрать или алгоритмы, учитывая, что обычно текст нужно вписывать в пространства не больше 0.5 от ширины экрана.
>>674975 Хах, бля, ты даже фразу закончить не смог, настолько у тебя подорвалось. Не смог в вебпаке разобраться штоле? Уже почти год пишу на ес6 (хотя теперь уже месяцев 5 на тайпе), поражаюсь с дебилов, которые юзают ес5 до сих пор. Ладно там легаси какое-то может быть, но блядь восхвалять ес5 и плеваться от ес6 это надо быть мега мудаком.
>>674979 Лол, недавно знакомый рассказывал про его охуительную работу. Коду лет 7, не меньше, используют ExtJS, недавно радость была, отказались от поддержки IE10- наканецта. Ах да, в коде помесь ES3 и 5.
>>675027 Либо используя функцию getState(), которая пробегает по DOM-дереву и смотрит, где чо. Или еще как-то анализирует ситуацию. Оверхед во все поля.
>>675007 Выше прочитай дискуссию. Циклы нормальный люди не юзают обычно. Но да, соглашусь, что это единственный(!!!) вариант, когда можно использовать лет. В каждом правиле бывают исключения. Но всё таки циклы не нужно использовать.
Всем остальным даже не буду персонально отвечать, раз вы ни разу не сталкивался с иммутабельностью и ФП, то для вас наверно будет шоком, что даже все объекты по сути создаются с нуля (не совсем с нуля, конечно, но размусоливать нету смысла, всё равно обосрёте). Пиши дальше своё говно ООП, пидоры
>>675043 >размусоливать нету смысла, всё равно обосрёте Ты даже не начинал что-то раскладывать, пришел, повыебывался, обиделся и съебал. Так держать, ребенок, больше не приходи.
Обмен значенийАноним03/03/16 Чтв 23:56:42#293№675052
>>675041 Обычное программирование (нужно использовать лишнюю переменную для обмена c) a = 1, b = 2
>>675022 На функциональном диалекте пиши, вот чё. Переменных нет, есть только функции. И константы тоже считай функциями, которые возвращают константы.
Аноны, помогите. У меня проблема выбора. Сам из мира Питона, сейчас пишу бекенд для небольшого пет-прожекта, связанного с двачиком. Я ваще нихуя не знаю, что взять в качестве фреймворка. Экспресс выглядит дохлым и старым, Сэйлс практикует подход рельсов и вовсю ебашит конвеншены и не оставляет гибкости, остается коа и хапи. Я пока остановился на Хапи, но довольно мало хороших примеров и практик. Из продакшен-примеров нашел только новый сайт npm, остальное все какие-то поделки.
Чет как-то реально сложно выбрать себе стек. Из-за этого я туплю и не могу взяться за работу и прокрастинирую((
>>675119 >Чет как-то реально сложно выбрать себе стек. Из-за этого я туплю и не могу взяться за работу и прокрастинирую(( Пиши код, блядь! Вилку взял и вперед! То ему не нравится, это не нравится, епта бля. Какую вилку в руках держишь — той и чисти!
>>675123 Это правда хороший совет. Но есть несколько но. Не наебусь я в итоге? Я просто не могу пока понять: в питоне от фреймворка зависит просто ДО ХУЯ. Фласк/джанго/торнадо они пропагандируют разные подходы, разные взгляды на написание приложений. Переиспользование кода между ними минимально.
А в Nodejs я не могу понять, где тренд, где хорошие практики, где вакансии, где вообще что.
Никто и не плюется от чего-то, кроме тебя. А ты продолжай гордиться, что у мамы хипстер, и кричи всем вокруг какие все мудаки. Это правда поднимает настроение, спасибо.
>>675132 Поясняю. Тебе нужен koa. Почему? Sails это полноценный MVC, скорее всего для тебя это оверкилл и магия. Express живой, но он скорее решение для стабильной разработки в данный момент, потому что его сожрал ИБМ, выпер оттуда главного мейнтейнера пару дней назад и теперь он будет 1000% ынтрепрайз эдишен. koa - новый express, туда свалили половина мейнтейнеров, его активно пилят, перделок больше, они новее и меньше старого говна. Нет проблем с новыми технологиями http2 например
>>675154 ах еб твою жеж ж мать. Почему в Nodejs-комьюнити постоянно такие драмы. То TJ продает Express, то мейнтейнеров выкидывают, то Нода форкается в IO, то сливается обратно.
Я хочу писать код и фыр-фыр-фыр! Вообще, начал уже Hapi юзать, но кода пока мало, сейчас посмотрю на Коа и может переметнусь быстренько.
>>675156 Тупорылый примат, сам то додумался почитать перед тем как раскрыть свою недоразвитую пасть? В ES по спецификации for итератор, также как блядь в твоей педивикии первый же пример неявного итератора в языках программирования тоже for. Но ты видать слишком тупой чтобы это осознать, и видать спецификация для тебя тоже не указ, как писал тот анон выше. Свой путь ниндзя-дауна в мире своего ES, где for не является итератором, потому что его внезапно можно использовать для циклов.
>>675154 > выпер оттуда главного мейнтейнера пару дней назад и теперь он будет 1000% ынтрепрайз эдишен Не совсем. Я тут полистал issues, его выперли два раза, а он вернулся. Там были траблы с правами в npm. Но это пиздец, такое дерьмо творится, хуй проссышь. Вот он активничал вчера с составлением комитета: https://github.com/expressjs/express/issues/2922
>>675200 На реддите ещё писали о том, что там якобы большую часть его переписки сливали некому куратору из IBM, что его окончательно сломало. Ну да, пилишь такой проект как хобби, в свободное время, а тебя не только прав лишают, так ещё и всю твою переписку и прочее куратору сливают, я бы тоже прихуел.
Добавил в шапку Коа, бесплатные хостинги, генераторы статичных сайтов (подойдут для написания документации к вашим сложным приложениям) и советы по IDE/редактору.
>>674823 Я хз, как там чо в жабосрипте, в нормальном программировании под итератором подразумевает абстракцию от типа коллекции. Индекс массива такой абстракции не предоставляет, и поэтому всех, кто называет индекс итератором обоссывают.
>по спеке, фор являет собою итератор Во-первых, фор - это конструкция языка. Во-вторых,если который for .. in .. то основная мысль у тебя правильная - неявно создается итератор по коллекции. Если сам организуешь индекс - то хуй. В любом случае ссылку на спеку, там посмотрим.
>>674800 >По официальной спеке ES-262 for является итератором, как и по CS-понятиям в целом. >Но типичный for .. in это неявная итерация, а for как само действие тоже является итерацией, только с явным счётчиком. >только с явным счётчиком >Это основы кампуктер саенса, в википедии и всём остальном это есть, в спеке также отмечен фор как "условия итерации", итерейшен стейтмент карочи. >Пикрелейтед Кусок петуха путает итерацию и итератор.
Что то я торможу, какое событие надо использовать в jQuery, чтобы при вводе значения в форму, внизу под формой, выводилось это значение, без всяких кликов и т.д. а просто автоматически, вводишь в одном месте, появляется в другом.
>>675698 Шизик, на скрине (14570302552050.png) нет ни слова про итератор. Там IterationStatement написано. Про петухов, путающих итерацию с итератором я уже писал.
>>675717 Лолшто? Перечитай мой пост внимательно. Я написал о том, что for в данном случае выполняет функцию итератора (тот, который обходит коллекцию данных, да), через явный счетчик в цикле, который задается в условиях итерации (как действия, шаг, етц). А вот тот же for..in или for..of уже являют собою итераторы.
Ты меня просто неправильно понел, ну или я так криво написал, лол. Разницу между циклом и итератором я знаю, как и что такое доступ через индекс к массиву и подобное и почему оно не итерация.
>>675723 Итератор - это первоклассный объект, через который можно итерировать. И цикл, и итератор по массиву используют индексы и длину массива, просто цикл превращается в соответствующие инструкции с доступом к этим данным при компиляции, а итератор инкапсулирует в своих методах доступ к ним.
>>675723 >выполняет функцию итератора (тот, который обходит коллекцию данных, да) Нет. Итератор не "обходит коллекцию данных", а предоставляет одинаковый интерфейс обхода коллекций разных типов. For index такого интерфейса не предоставляет, т.к. привязан к индексируемым коллекциям.
>>675788 Нет, ты просто занудствуешь. Да, ты всё правильно пишешь, но я это знаю и это скорее придирка к терминологии, поэтому ты тоже не прав. Не коллекции разных типов, а абстракция для предоставления интерфейса при обходе структуры данных. Так что забей, сейчас это дискуссия уровня "у тебя очепятка".
Сейчас на codeschool бесплатные выходные, там есть отличные уроки по js и фреймворкам, а на hackerrank сейчас идут недели js, где учат язык решая всякие клевые задачки и сравнивая результаты.
>>675788 >одинаковый интерфейс обхода коллекций разных типов >одинаковый Схуяли? Для разных типов можно сделать совершенно разные интерфейсы итераторов. Но даже если использовать твое определение(кстати, откуда ты его взял?), for является итератором, потому что предоставляет одинаковый интерфейс "держи индекс и ебись как хочешь", позволяющий обойти любую коллекцию.
>>675868 >Схуяли? Для разных типов можно сделать совершенно разные интерфейсы итераторов. Дверь тоже можно сделать на потолке, и она все равно будет дверью. Только нахуй никому не надо. >одинаковый интерфейс "держи индекс и ебись как хочешь" Ахаха >позволяющий обойти любую коллекцию. Нет.
>>675907 >Дверь тоже можно сделать на потолке, и она все равно будет дверью. Только нахуй никому не надо. Разговор был об определениях, а не о нужности. >Ахаха хДД >Нет. Ты просто не умеешь ебаться. Алгоритмы обхода построены на основе банальных циклов, тащемта.
Поясните в чем прикол что многие ложат скрипты/стили/контент на другой домен вида somesite-cdn.com. В чем резон оплачивать еще один домен и ждать пока разрезолвится еще 1 днс-имя при первом заходе на сайт?
Котаны, на страницу есть много однотипных элементов, например это куча дивов. При клике на любой из них должно происходить какое-то действие (всегда одинаковое). Как это по-умному организовать? Найти все дивы через qurySelectorAll, это получится массив. И при нажатии проходить по всему массиву в поисках нужного элемента что ли?
>>676368 Можно повесить по слушателю на каждый элемент, а можно, например, повесить только одного слушателя на контейнер этих элементов, если позволяет архитектура, само событие хранит целевую ноду, по которой произойдет клик.
>>676538 >дивы лучше сразу из ДОМа брать, без доп. переменных Если ты используешь доступ к одному и тому же диву по несколько раз, то используй переменную, чтобы не дергать каждый раз DOM
Так, друзья, поясните к чему стоит приступать, после того, как на learnjavascript закончу основной курс? Алсо html и css еще не учил. Скажите как мне примерно действовать, чтобы летом я уже мог работать/фрилансить, если это возможно. Заранее спасибо.
>>676597 Если не знаешь html/css - просмотреть интенсив от академии/завалиться в верстка-тред на воркаче. Там народ осваивает все, что с версткой связано.
>>676625 А, еще же JQuery учить. Реально к лету вообще все это выучить, включая интенсив от академии и сделать пару сайтиков для портфолио? Основной курс на learnjavascript примерно через недельку закончу.
>>676645 Ну ознакомиться с этим все же надо будет. Главный вопрос: >Реально к лету вообще все это выучить, включая интенсив от академии и сделать пару сайтиков для портфолио?
>>676647 Если например я скажу что нереально. Ты же не бросишь из-за этого заниматься? Думаю, что нет. А если бросишь то значит оно тебе не надо было и неинтересно.
Если же наоборот скажу что реально, а ты не смогёшь - будешь потом жаловаться что неправдивую инфу дали.
Так что сиди, занимайся тем что надо и не задавай глупых вопросов
>>673564 (OP) Оп-няша, подскажи, есть какие-нибудь фреймворки или библиотеки по жс по аналогии с бутстрапом для цсс? Типа: вот команда для слайдера, вот для настраиваемой галереи, вот для выпадающего меню, вот для всплывающего с вкладками, все конфигится и не надо в 101ый раз изобретать велосипед. Идеально для тех, кто язык не знает и не хочет учить, или почти не знает, или дедлайн близко. Ну ты понял, наверное.
>>676778 По крайней мере, мало элементов, настроечек, именно вот кусков-блоков типа описанных, а не микросвистелок. Хотя. Толком не понимаю из-за того, что у меня на планшете все ПИДОРАСИТ и ч даже каталог не могу глянуть.
>>676811 Нет, с ним всё ОК, просто в один момент ребята немного заебались жява-приматы в основном писать код на жс и потребовали нечто похожее на их любимый язык приматов. Ну, коллеги жява-приматов из мелкософта и любители наворачивать жябу-с-сахарком недолго думаю предложили им свою разработку - тайпскрипт, так и пошло. Таких тайпскриптов уже дохуя было - кофискрипт, дарт, лайвскрипт, етц. Это всё транслируется в жс, просто приматам которые по 20 лет пишут на одном языке легче было принести его в фронтенд, чем привыкать к новому. Я пиздун, на самом деле просто там есть статическая типизация и поэтому большой код писать и мейнтейнить намного легче, вот и всё
>>673564 (OP) Ребята, я начинающий профан, пользователь JavaScript/jQuery. Вот простенький код, который делает маленькую анимацию картинки при наведении на надпись. https://jsbin.com/wesomufuno/2/edit?html,js,output Но проблема в том, что все элементы с такими классами выполняют это действие, при наведении на одно из них ( навёл на одну надпись, увеличелись все картинки с этим классом ), как сделать так, чтобы при наведении на одну надпись, увеличивалась только та картинка, которая находится с ним по соседству в DOM-структуре ?
бля, я хуею, догадаться привинтить бэкенд админку на js к php цмс и я теперь должен методом чтения мысли (один из первостепенных навыков программиста) догадаться, как все это развернуть на локалке бляяя. хуй даже знает, где ошибки в ангуляр запросе смотреть. то ли к бд не подключено, то ли поле в бд найти не может, то ли на контроллер не то передает то ли в самом ангуляр запросе что-то то ли путь где-то не так прописан, хуй разберешь.
>>676936 Ангуляр ошибки в консоль все выводит, чтобы понять что происходит смотри в нетворк на запросы, что отсылают, что возвращают. Смотри в логи сервака(что там у тебя за хуйня поднята).
>>676640 >Реально к лету вообще все это выучить Хтмл и цсс месяц, жс месяц, жквери неделю-две, сверстать пару сайтов в портфолио, спотыкаясь чертыхаясь и гугля неделю-две. Это если не напрягаться и учиться по два-три часа в день.
>>676973 Смотря что вкладывать в понятие выучить жс (если ваять spa на react/angular то явно месяцем не отделаешься) Жквери же при хорошем знании жс ну неделю от блин вообще от силы ибо просто ознакомиться что предоставляет и все. Верстку осваивать так же не понятно в каком объеме - на уровне просто какого-нибудь базового интенсива от академии. Или на уровне респонсив верстки с цсс-3 свистоперделками, с пост и препроцессорами, автоматизацией процесса, копанием в цсс-фреймворках, методологиях и т.д.
Так что все зависит от того на каком уровне собираешься освоить. А вообще век живи - век учись, ибо выйдет завтра какая-нибудь моднявая приблуда - надо будет и ее осваивать.
Поясните, почему, говоря условно, две одинаковые функции выдают разные ответы? Одна функция - это как другая, только в профиль. И почему return не показывает значения при переборе массива?
>>677048 button.addEventListener("click", doSomething); Вот так вызывай, иначе определяй функцию по другому, например, так. button.addEventListener("click", doSomething(x,y)); function doSomething(x, y) { return function(x,y){} }
Если мне нужно, чтобы на странице появлялся новый див с разными сообщениями на пустом месте страницы, то лучше будет добавлять его через JS, присваивать ему текст там же и т.д., или лучше просто создать несколько разных дивов в HTML и прописать им display:none а потом показывать нужные?
>>677093 Если структура блока одинаковая, но просто меняется текст, то я считаю, что лучше все-таки генерировать этот текст через js, чем создавать кучу однотипных блоков
>>677215 Считайте, что я сексист - но не могу слушать/читать мнение девушки-разработчика. Сразу выключаю. Да даже если она в 1000 раз умнее меня все-равно не буду смотреть.
Кстати, могу историю рассказать одну. К девушке этой с видео история не относится. Да и вообще мало касается сферы деятельности. Но все же. Есть у меня одна знакомая - училась на разработчика. Короче она кичилась что ее мама - программист. А потом как-то я услышал от нее как она рассказывает подружке что они с мамой вызывают домой какого-то знакомого когда надо винду переставить и настроить программы. Плюс еще жаловалась, что надо батарейку было поменять в компе. А тот мужик, который им все делал видимо был занят и вот они полдня с мамой не могли ее поменять. К тому же эта девушка-будущий разработчик не знала как добавить клавиатурную раскладку на ноут (была только английская вроде, а она хотела добавить русскую). У нее красный диплом и наверное теперь даже работает где-нибудь. Ведь специалист жи. Мама, кстати, как оказалось была программистом на 1с. Девушка как-то рассказывала мол мама программирует на русском. Это фраза была пущена потому, что у самой девушки были проблемы с инглишем и мол инглиш в ит ненужен ведь мама то прогает на русском.
Ну эт так, просто история. Она не отражает моего отношения ко всем девушкам и ни на что не намекает.
>>677288 > Считайте, что я сексист - но не могу слушать/читать мнение девушки-разработчика Чет удвою. Не знаю почему, но тоже не могу воспринимать серьезно то, что она говорит
Анончики, есть вопрос, ответ на который я пару дней рыскаю в сети и у меня уже каша в голове.
Я ньюфаг, пишу расширение для chrome. То есть там только ui. Намеренно пока не использовал фреймворки, чтобы разобраться сначала с чистым js. Но вот пришло время и мне захотелось использовать redux. Как мне это сделать с минимальным подключением сторонних либ?
Нагугливаются всякие babel, traceur, webpack, browserify, bower, systemjs, транспиляторы, полифилы, нативная модульная система es6, которая непонятно поддерживается или нет (похоже что нет, потому что на import ругается) и ещё целая куча чёрт знает чего. Что мне из этого всего действительно нужно? Повторюсь серверного кода у меня нет, только ui.
>>677308 Нет, не я. Я - мимокрокодил. Просто если уже выебываться с правильным написанием, то до конца. Но эт не только тебя касается (а того чувака, и меня и всех остальных) А еще лучше сразу на английском - тогда и комар носа не подточит, лол
>>677288 Ты странный какой-то. Зачем добровольно выпиливать себе кусок из картины мира? Тут недалеко до просмотра все ментейнеров джиквери, чтобы случайно бабский код в продакшен не попал.
>>677322 Считаешь, он что-то потерял не посмотрев то видео? Нет, никто не говорит, что нет хороших программистов в рядах девушек, но то, что творится на видео положительных эмоций не вызывает.
>>677322 Да я не отрицаю что есть отличные разработчики женского пола. Тут дело не в этом. Если код хороший - почему его надо выпиливать? Тут пофигу кто написал, хоть транс. Я имел ввиду что в большинстве случаев из тех докладов, что я смотрел девушки преподносят инфу менее качественно что ли. (Хотя вот по дизайну неплохо вроде и что примечательно на зарубежных конфах в целом получше доклады даже от девушек). Это моя личная выборка она скорее-всего мала, чтобы делать на основе нее далеко идущие выводы. Поэтому я ее и не выдаю как истину в последней инстанции.
>>677215 Меня люто бесит, когда html произносят как АЙШТИМЛЬ (то есть пытаются произнести первую букуву как АШ а не ЭЙЧ). Ровно так же бесят те, кто JS произносит как ЖС (в то время как J это ДЖЕЙ).
Поясните за TypeScript. Сейчас пишу на ES6/React, мне нравится идея типизированного JS, но как там в TS с новомодными фишками типа const/let, стрелочных функций, спред-оператора и т.д.?
>>677371 >>677369 >>677361 Собрание каких-то графоманов-максималистов. Сможет кто по харду пояснить за объективные минусы неправильного произношения? Все уже поняли, что это задевает до глубины души вашего внутреннего программиста, но вот чтобы действительно важная причина была, есть такое?
>>677375 Ну можно общаться еще в таком ключе: "Моя говорить - главна, что твоя суть понимать." Какие объективные минусы? Суть же ясна, что человек хотел донести.
>>677381 >>677381 >Моя говорить - главна, что твоя суть понимать. Вот здесь как раз смысла уже объективно меньше, если что. Но ты не видишь разницы, да.
>>677375 Не знаю, как там у тебя. Но когда приходиться обсуждать задачи войсом, и слашть постоянно КСС, КМС, ХТМЛ, ЯВАСКРИПТ, МВЦ, в то время как сам произносишь правильно. То диалог сам по себе звучит странно.
объясните гуманитарию, что значит на сленге программирования "сделать велосипед" или "сделать костыль"??? Часто вижу такие сообщения, но не понимаю о чем речь идет.
>>677454 Сделать велосипед - это когда у тебя есть возможность пойти и взять готовый велосипед, но ты решаешь его делать сам с нуля (или почти с нуля). То есть будешь варить раму, собирать колеса, вставлять спицы, етк.
А костыль, это когда вместо того, чтобы починить что-то нормально, ты перематываешь это изолентой.
>>677419 Спасибо. Слышал, что на node.js можно работать без поднятия его у себя. Где-то случайно когда-то на стековерфлоу попадались строчки кода с подключением к серверам яндекса. Так ещё сделать возможно? Как оно вообще работает?
Вообще мне из того списка айпи нужно их запихнуть в .pac файл, который подхватывает уже плагин. Если я буду выкачивать сам список айпи и просто парсить этот файл? Браузер не заблокирует обращение к файлу в файловой системе? Плагины вообще могут с ФС работать?
Анон помоги, уперся в проблему отправки формы с изображением, через ангуляр, на бекенде django_rest. сервер отдает 404 ошибку, хотя GET запрос на эту страницу работает и исправно отдает все изображения.
>>677303 Я правильно это понимаю, что мне нужен некий полифил который прокачает браузер так, чтобы тот понимал оператор import/export? Может его самому можно реализовать, чтобы вообще ничего не тянуть или это сложно будет?
Короче, в ангуляре данные отправляются вот такой асинхронной хренью. Но у меня на локалке не отправляются, в доках написано эта хрень экспериментальная, может быть что она просто не работает у меня на локалке? потому что скрипт выдает reject не знаю почему. var deferred = $q.defer();
>>677510 >>677512 Короче, у тебя там не только этот пост не отрабатывает, но и вообще любой пост запрос из ангулара, да? Если так, но гугли гайы по настройке связки ангулар+джанга
>>677601 Залётный в треде. Какие ещё разговоры он искал в среде программистов, лол.
Почему это говно не работает?Аноним05/03/16 Суб 21:27:39#514№677684
var x = prompt('Введите x:', ''); var n = prompt('Введите степень n:', '');
function pow(x,n) { if ( n < 1 || n != ~~n || typeof n != 'number') { alert('Введите целое число больше 0.'); } } else { var result = x; for(var i = 1; i < n; i++) { result *= x; } return result; } }
Салам . Решил вкатиться в джаваскрипт, но подумал, что профитней будет сначала познать азы html и css. Нагуглил годные бесплатные курсы по основам html css. https://htmlacademy.ru/
Этот тред посвящён главному языку будущего - 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, Unity), 3D графика (Three.js, Babylon.js), мобильная разработка (NativeScript, Phonegap, Ionic), десктопная разработка (NW.js, WinJS).
3. Можно выучить только jQuery и всё писать на нём? - Не стоит, лучше начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и в будущем не испытывать трудностей с изучением сложных фреймворков.
4. Существуют ли стайл-гайды для JavaScript? - Да. Стайл-гайд для Node.js: https://github.com/felixge/node-style-guide , стайл-гайд для Front-end: http://www.w3schools.com/js/js_conventions.asp
5. Какие новые возможности добавил ES6? - Вот здесь можно почитать на русском: https://learn.javascript.ru/es-modern
6. Зачем нужны CoffeeScript и TypeScript? - Это особые варанты JS для любителей других языков. CoffeeScript подходит для любителей Ruby и Python, TypeScript - для сторонников строготипизированных языков. Если ты новичок, то учи оригинал и не забивай себе голову этим.
7. Ну ладно, с чего начать изучение то? - Дальше я приложу список материалов для изучения.
Чистый 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/
DISCOVER METEOR - Книга по Meteor.js - одному из самых лёгких и функциональных фреймворков.
Полностью на русском: http://ru.discovermeteor.com/
И не забываем читать официальную документацию для каждого фреймворка.
Онлайн сообщества:
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/
СПИСОК ИНСТРУМЕНТОВ ДЛЯ РАЗЛИЧНЫХ ЦЕЛЕЙ
Front-end: jQuery, Angular, React, Backbone, Meteor.
Back-end: Node.js, Express, Socket.io, Sails (Включает Express и Socket.io + архитектура)
Десктопные приложения: NW.js, WinJS.
Мобильные приложения: Cordova, NativeScript, Phonegap, Ionic.
GameDev: Phaser, Cocos, Pixi, Unity.
Тестирование: Mocha, Chai, Jasmin, Sinon.
Continuous Integration: Semaphore, Shippable.
Шапка: https://docs.google.com/document/d/1x7fY7CIy9o6lrkYA1Y5iQuJWLJdEbtK7z3TjIZBskkg/edit?usp=sharing