Некий синопсис по итогам личного опыта и предыдущего треда.
> Привет, я новичок, хочу изучать программирование и в частности, яваскрипт. С чего мне начать?
Лучше не надо. Js содержит ряд дефектов в своем изначальном дизайне, вследствие чего освоение этого языка с нуля, без какого-либо знания ловушек и подводных камней программирования, создаст трудности буквально из ничего. Это потом-то с ними вполне можно мириться. Выберите для вашего первого раза лучше пайтон, си или яву.
Но если что, то наверное
https://www.khanacademy.org/computing/cs/programming вам поможет.
> По долгу службы пришлось заняться этим вашим жс, испытал сильнейший дискомфорт. Что такое? Как же так? Почему нет так любимых мной фич X,Y,Z? Что за странная объектная система?
Похожесть жс синтаксисом на привычные языки обманчива. Это язык с довольно самобытными конструкциями, навроде прототипного наследования и вылепливания разных штук, вроде неймспейсов или классов при помощи акробатики с анонимными функциями и объектными свойствами функций. Там где в других языках class, instance, namespace - в жс по-разному используемый function. Нужно уделить этому N-ое количество времени, с нахрапу все понять получается далеко не у всех.
На крайний случай к вашим услугам
https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-[...]to-js Но каждый элемент этого списка надо проверять на предмет не заброшенное академическое поделие ли это. Да и ни один из этих языков полностью от жс вас все равно не абстрагирует.
> Начал писать SPA, через 500 строк появилась "лапша" из асинхронных вызовов, "<p class='"+cssClass(item.type)+"'>"+item.content+"</p>". Спасите, помогите.
Ну вот и настала пора погрузиться в удивительный мир:
а) js-фреймворков: angular, ember, backbone, knockout
б) обещаний (
google://js+promises )
> Какие у вас в жс есть игорбиблиотеки?
Манипуляция с DOM-ом (достатать тот <a>, который расположен вниз на 4 <p> от <div> с классом 'santa-claus', содержащий в своем тексте слово 'cat'): jquery.com
Гуй: jquery.ui, qooxdoo, ...
Окошечный гуй в браузере (listbox, label, listview, grid, treeview, accordeon, button, ...) extjs
Языковые плюшки: sugarjs, underscore
Векторная граффика: raphaeljs
Диаграммы, чарты, графы (
и герцогини) d3.js, processing.js
3D-игры: three.js
Звук: pico.js
Так же где-то на просторах валялись штуки для матричных вычислений и штуки вроде functional.js (с текстовыми лямбдами).