24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает возможным создание на нём любых проектов - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком.На каждом сайте есть браузерный JavaScript, А JavaScript на сервере используется такими крупными корпорациями, как Amazon, HP, Walmart.
Краткий FAQ: 1. Что это за язык такой? - Мультипарадигменный язык, изначально создавался для использования в браузерах как язык сценариев для придания интерактивности веб-страницам, однако в процессе своего развития преодолел этот этап и сейчас может использоваться для любых целей ввиду своей неограниченной гибкости и удивительно удобного синтаксиса.
2. Какие возможные направления для разработки существуют? - Фроонт-энд (Vanilla, jQuery, Angular, Backbone, React, Meteor), бэк-энд (Node.js, Express, Sails), геймдев (Phaser, Cocos), 3D графика (Three.js), мобильная разрабтка (NativeScript, Phonegap, ionic), можно делать десктоп приложения(NW.js, WinJS).
4. Можно выучить только jQuery и всё писать на нём? - Не стоит, можешь начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и вбудущем не испытывать трудностей с изучением сложных фреймворков.
5. Ну ладно, с чего начать изучение то? - Дальше я приложу список материалов для изучения.
Чистый JS: Книги: Дэвид Фленеган - "JavaScript: Подробное руководство"
Читать онлайнDr. Axel Rauschmayer - "Speaking JavaScript: An In-Depth Guide for Programmers" - Одна из лучших книг по JS. Пока только на английском. http://speakingjs.com/
Выбери себе направление. Может, ты хочешь игори делать? Тогда вперед на гитхаб, и ищи Phaser, Pixi и другое, выбор не маленький. Хочешь на сервер сайд? Копай в сторону Node.js, Express, Socket.io. Хочешь писать MVC логику? Angular, Backbone, да множество их. Нельзя забывать про NW.js и WinJS, позволяющие создавать десктопные приложения.
Что-то изменилось со времён ноября 2014? У меня не получается изменить конструктор как на вебмрилейтед. Ни через u1.prototype, ни через User.prototype. В начале курса говорилось, что через полгода могут классы завезти. Это и произошло?
Парни. Пишу на WinJS простенький клиент, который берёт данные раз в 15 секунд через winjs xhr с сетИнтервалом с сервера с API. Все бы ничего, но эта хуйня начинает сливать память. Подскажите, в чем может быть трабла?
Добрый вечер уважаемые. К вам php-макака вкатилась.
Сейчас прохожу https://learn.javascript.ru/ Нахожусь на примитивах пока. Подскажите как самым простым и элегантным способом связать js и html? Интересует собственно как запускать скрипт кнопкой без перезагрузки страницы и как динамически менять на страничке html куски (текст, картинки или даже целые дивы)?
>>555130 То есть на чистом js нельзя делать казалось бы те вещи, для которых он изначально, как бы задумывался?
Этот сер обманывает меня? Никто не может накидать простейший пример с кнопкой и счетчиком например? Тип кликаешь на кнопочку и счетчик накручивается параллельно. Без перезагрузки страницы и всяких алертов, а пост html-текст
Помогите идиоту, пытающемуся в срочном порядке изучить джаваскрипт за день. Вот у меня есть URL, по которому выдаются данные в формате JSON. Открываю его в браузере, вижу данные, все ОК. Теперь мне нужно эти данные занести в переменную в джаваскрипте. Пишу через XMLHttpRequest - хуй, выдается ошибка. Подключаю JQuery, спешно изучаю, как в нем сделать то же самое, вбиваю - хуй, выдается та же самая ошибка. Ну что мне делать? >Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://divanon.xxx/. (Reason: CORS header 'Access-Control-Allow-Origin' missing). Все, что я нагуглил, предлагает мне решать это при помощи настроек сервера, а я к нему в принципе доступа получить не могу.
>>555181 Браузер блочит загрузку в фоне с других ресурсов,потому что дыра в безопасности была бы дикая. Вот тебе и пишет такую залупу. А тебе дальше с JSON что делать надо? После засовывания его в переменную
>>555185 А что с ним делать можно? Пропарсить, и дальше обрабатывать данные в полученной переменной. С этим-то я уже как-нибудь разберусь. Мне бы данные получить.
>>555182 Последний вариант выглядит вот так: [code] var cities = $.getJSON("http://divanon.xxx"); [/code]
Посоны, почему когда я в ноде спавню воркеров через cluster, а потом на мастере врубаю readline, то введенные команды пропадают (доходит только одна из нескольких)?
>>555190 Тащи просто get ом: $.get('domen.ru', { p: "0" }, function(data) { //handling data }) Если в браузере ты видишь json ответ, то таким образом ты его вытащишь без проблем. Ты пытаешься реквестить именно json , а тебе нужно просто просить ответ сервера.
>>555430 Ну начнём с того, что вешать обработчик каждую секунду плохая практика. Представь, что тебе каждую секунду дают задание. Одно и тоже. И ты вынужден начинать э о задание каждую секунду заново. Я бы тоже не работал.
>>555430 исправь p.innerHTML = count; (у тебя только H была большой) и добавь var button = document.querySelector('button'); иначе не понятно на какую кнопку ты вешаешь отслеживание событий
>>555438 мне просто дали пример выше, и я сам не понял зачем там обертак в виде setTimeout(function() {...}, 1000); Просто правил внутренний код. Убрал и вроде работает. >>555462 Спасибо, вроде бы всё понял. http://jsfiddle.net/n41dobe5/23/ Если я буду так же менять атрибут src="" у тега <img> то у меня будут картиночки сами в браузере обновляться?
Алярма, у новичка проблема. У меня тут следующая ситуация - есть сервер на node js, есть html с leaflet-овской картой. Мне нужно передать данные с сервера в html, чтобы на карте отрисовались маркеры, исходя из полученных данных. Как мне можно это сделать?
Ребята, возможно ли написать такой скрипт? Для одного форума необходимо из его профиля пройтись по всем постам автора и заминусовать его сообщения. Хочу баребух кармодрочерам устроить. Возможно ли такое реализовать и как долго мне учить придется?
Ребяты, кто по http://learn.javascript.ru/ обучался, ответьте пожалуйста сколько у вас по времени этот учебник занял? И сколько заняла часть первая отдельно?
>>555544 Как вы заебали, шароёбятся такие ребята со своими вопросами и ждут ответа днями, а могли бы за это время взять да попробовать Тут индивидуально всё по времени, кто-то быстро а кто-то тупить может
>>555552 Я не спросил сколько мне по нему учиться. Я спросил сколько времени он отнял у других анонов. И я сам по нему уже почти месяц учусь, просто спросил для сравнения.
и у меня возник такой вопрос. Вот в php можно было просто создавать массив, и загоняя в него элементы они автоматически получали ключи которые начинались с 0.
В JS я полагаю, так не катит? Я не могу создать объект и прост закидывать в него свойства без указания им ключа?
Дурным ли тоном тогда будет создавать объекты вида: var a = {}; a[0] = 'huy'; a[1] = 'test'; и так далее?
Собственно почему у меня такой вопрос. Я прекрасно понимаю как перебирать массивы циклами и прочими вещами. Но как быть если я просто хочу взять случайный элемент массива? В php я привык делать вот так $randomElement = $array[mt_rand(0, count($array)-1)];
Может быть в js есть изящный способ выдернуть из объекта случайный элемент? Тогда мне и не нужна нумерация в некоторых случаях будет можно сказать.
>>555638 Сори за неправильные вопросы, оказывается у вас и массивы есть которые на самом деле тоже объекты, просто они почему-то в учебнике после объектов идут и в начале где рассказывают о типах данных вообще не упоминаются.
Нашел в общем рандомайзер, вроде распределяет всё равномерно, даже проверил его. http://jsfiddle.net/evm2c7ts/3/ Пришлось правда сначала массив заполнять нулями, без этого писал мне NaN'ы, что не очень круто. Это можно как-то обходить?
Алсо как на jsfiddle дампить объекты? Что бы в левом окошечке показывались?
>>555638 > Может быть в js есть изящный способ выдернуть из объекта случайный элемент? Создаешь массив, пушируешь в него элементы, вытаскиваешь случайный arr[randomElemIndex]
Я тебе по секрету скажу, в JS все является объектом, кроме null и undefined.
>>555651 А можешь еще кое-что сразу прояснить? Как удобно js-код бить на файлы? Если я сделаю файлик просто с объявлением переменных, а потом подргужу его на страничку, то они будут доступны в скриптх которые были подгружены позже? Ну тип есть у меня скрипт который влияет на страницу при её первоначальной загрузке. И потом есть второй, который должен работать с объявленными в первом переменными в зависимости от того как пользователь на странице себя ведет. Так вот, их можно просто последовательно грузить на странице? Или я должен первый инклудить внутрь второго, что бы он увидел переменные?
Пиздец, вот пишу я небольшую игрулю на этом вашем js и понимаю, что любой может зайти и посмотреть мой говнокод. И даже если похуй на алгоритмы, которые понятны только кодерам, то простому юзеру будут видны все массивы, в которых может быть хранятся всякие шуточки и игровые секреты :(
>>555689 Ну флеш же тоже на клиенте выполняется, не? >>555691 А смысл? Всё равно кому надо тот спиздит код или прост его приведет к читабельному виду в других целях.
Видимо просто нужно привыкнуть к тому, что ты идешь по улице как будто голый, когда делаешь что-то на JS.
>>555681 А ты как хотел? Это же JS, его ты не скроешь никак. Не понимаю чего ты боишься, у тебя там игра на деньги чтоли? Зачем нормальному игроку лезть в код и подсматривать игровую механику?
Как вам механизм блокировки для монги, м? https://www.npmjs.com/package/pmongo-lock [code lang="js"] var pmongo = require("promised-mongo"); var db = pmongo("test"); var pmongoLock = require("pmongo-lock"); var Lock = pmongoLock(db); var lock = new Lock("test"); lock.lock().then(function() { //... return lock.unlock(); }); [/code]
Нужно используя backbone роут сделать так, что бы конкретный джаваскрипт исполнялся на конкретных страницах. Вообще у меня проект на рельсе. там есть пару вьюх и скриптов, и они подгружаются все на каждую страницу, а нужны только те которые там используются... Хотя бы чисто теоретически, как должно выглядеть? Как я понимаю роут это соответствие урла некой функции. Так что я должен перенести те скрипты из файла в роутеры, в функцию связанную с урлом, или как?
А как инклудить скрипт внутри самого .js файла? Если я не хочу на странице делать загрузку нескольких скриптов поочереди, <script src="test1.js"></script> <script src="test2.js"></script> <script src="test3.js"></script>
А хочу просто что бы внутри test3.js инклудились первые два, как так сделать?
>>555783 С точки зрения рельс, яваскрипты это тот же кусок шаблона. У тебя видимо много чего засунуто в default шаблон, в который потом куски нужных страниц вставляются. Так что : 1. Найди дефолтную вьюху в своём приложении. Что нибудь типа view/default.tpl 2. Убрать оттуда вывод ненужных тебе скриптов. 3. Посмотреть в контроллера нужных тебе страниц какой шаблон они юзают. 4. Вызывать нужные тебе скрипты там.
>>555851 всё, я разобрался, косяк был в 00000.1 вместо 0.00001 ну вы поняли.
>Ты чем думал когда продумывал архитектуру? Да я просто писал код себе спокойно, не думая об архитектуре особо, там простой кликер на php, но php для этого не подходит, поэтому я сижу переношу на js это дело, попутно надеясь в нем немного разобраться.
>>555703 >А смысл? Всё равно кому надо тот спиздит код или прост его приведет к читабельному виду в других целях. Так же вероятно как дизассемблирование, забей ты никому не нужен.
Нет, неверно. Примитивы потому и примитивы что они не объекты. Они введены с целью оптимизации производительности, чтобы операция сложения чисел не требовала создания нескольких объектов и вызовов нескольких методов.
Объекты передаются по ссылке, примитивы — копируются.
var a = {}; var b = a; // b ссылается на тот же объект
var c = "aaa"; var d = c; // в d отдельная копия строки
Примитивами в JS является true/false/null/undefined, числа, строки.
Анон заметил что (создается ощущение что) у примитивов есть методы и поля:
("aaa").length (123).toString()
Это так называемые боксинг/анбоксинг. При попытке обратиться к примитиву как к объекту создается настоящий временный объект одного из классов String, Boolean, Number (ага, ты наверно гадал зачем они нужны?), делается обращение к нему и объект отбрасывается.
Господа, с помощью каких библиотек организовать стриминг аудио? Хочу написать онлайн-плеер-радио на ангуляр+нода. Нода должна будет перехватывать звуковые сигналы (микрофон + играющее музло) и стримить её в ангуляр-приложение. Как организовать архитектуру этого говна?
Господа, не так давно начал изучать JS, есть один код который я не могу понять, а понять его мне очень нужно, есть кто-нибудь, кто сможет помочь и подсказать? [email protected] фейкопочка, с меня как обычно нефть
Привет, любитель веб-технологий! Мечтаешь создать свой двач, потеснить артемия лебедева и заставить течь телок и пердунов-паскальщиков от твоих баззвордов? Если ты пьешь кофе только в старбаксе, отращиваешь бороду и любишь мечтать о работе за границей то эта конфа для тебя.
>>556260 А должно было быть ясно еще с >Если ты пьешь кофе только в старбаксе, отращиваешь бороду и любишь мечтать о работе за границей то эта конфа для тебя.
>>556242 Привет, любитель баззвордов! Мечтаешь создать свой кривой клон сосача, отсосать у артемия лебедева и телок ржать над тобой, а пердунов-паскальщиков снисходительно улыбаться? Если ты пьешь кофе только в старбаксе на мамкины деньги, отращиваешь жиденькую уродливую бороденку и любишь мечтать о работе за границей то эта конфа для тебя.
>>556576 typeof ([] + 1) возвращает string. Получается пустой массив приводится к строке и срабатывает конкатенация.
[] != true потому что пустая стока трактуется как false В if пустой массив срабатывает как true, потому что костыль. Ахуенная логика у жса. Я начинаю понимать людей, которые ненавидят этот язык.
>>556585 Я сам еще месяца три назад блевал с него, но теперь понял. насколько он в целом охуенен. Даже стыдно за себя теперь немного. Но вот такие ложки дегтя портят бочку меда, это да.
Есть несколько страниц, на них разная логика, где-то она пересекается. Весь код храню в одном файле и в одной глобальной переменной (неймспейсе). Есть функция app.init(), котороя запускает всё, что нужно в зависимости от страницы, логика там простая: если есть форма регистрации то запускаем её скрипты, если форма логина то запускаем для него. Никаких ангуляров и т.д. Как ещё можно организовать подобное?
>>556689 А теперь вынести всё это в отдельные, независимые от проекта файлы, придумай классное название, закажи на fl.ru логотип за 500 рублей и продвигай свой фреймворк.
>>556642 Ты сказал, что этот код должен что-то там отображать. Но в код ты запрашиваешь страницу, отдающую 404 ошибку. Схуяли, спрашивается, код должен что-то отображать, если ты ему неверные данные подсовываешь?
>>556827 Вот и я хз. Самодостаточен для чего? Может и есть смысл, может и нет, сильно зависит от конкретной задачи. Что-то не могу представить задачу у нюфани, требующую мультиязычности. Ах, ну да, стоит напомнить, что HTML и CSS это не языки программирования, если ты об этом.
>>556924 Ну в бумаге стоит брать если тебе бабла девать некуда. Я бы лучше электронную версию купил\украл. А вообще, нахуя тебе справочник, если есть интернет? Фленеган конечно хорош, но возьми лучше что-нибудь по паттернам\шаблонам
JS - лучший язык для изучения погромирования. Запустится на любой кофеварке с бровузером, не нужно ебаться с компиляцией, понятный и компактный код, можно не опасаться за брата, быстрая отладка, быстрая реализация идей.
>>556981 Дело в том что на многих проектов качество и не нужно. Когда очевидно что код никак не будет развиваться и поддерживаться, нахуя все делать по уму?
>>556981 >а после наймем умного, он ага починит Как верно отметил >>556985 , до стадии "наймем умного" доходят от силы процентов десять проектов. После того как умный видит какое говно ему предлагают чистить вилкой и называет цену, остается еще меньше.
>>557001 Ванильный жс убогий. Убогое приведение типов, убогий сишный синтаксис, кривое ооп. Вот эти вот безобидные "правила" очень засоряют голову. Как это делала пыха в свое время. Потом таких людей хуй научишь думать нормально. Нужно начинать учиться программировать с продуманного и логичного языка, вроде петона, а потом переходить к нелогичным ассинхронным коллбэкам с промайсами, если так хочется.
>>557105 В асинхронных колобках и промисах всё вполне логично, фундамент чист и понятен, если ты знаком с континуациями и прочим programming language theory. Реально нужных частных правил для разработки на JS знать надо не много: как в нём работает прототипное наследование, функции-конструкторы, и что если непонятно, в x число или строка, а надо число, пиши +x. Минимализм JS радует. Жаль всё испортят добавлением всех этих модулей, классов, shadow символов, и прочей параши. По-мойму, из Harmony реально полезны только стрелко-лямбды и генераторы, остальное - мусор.
Я php кодер с малым опытом, который очень хочет съебать с нынешнией работы, где его хуево написанный фронта и бек разгребать. Рассылал свою резюме всем подряд в надежде укатится на Руби, вот ответили с такой вакансии: js, jquery, асинхронность и вот эта хуйня >>556943 , плюсом будет Руби. Делают мобильные приложения. На собеседование будет тестовое задание, не знаю к чему готовиться, это чисто фронт-енд или что-то интереснее. У меня в резюме ни ноды, ни прочих ангуляров делающих жс круче. Только жквери и ванильный.
Мне надо там кормена полистать? Или ооп жс? Или там нужно будет только окошечки анимировать?
Помоги мне, анонимус. Есть таблица. В ней колонка, в которой нули и какие-то еще цифры. Нужно выделить ненулевые клетки (цветом, шревтом, чем угодно). Еще было бы неплохо просто выпилить все строки с нулем в этой ячейке. Сможешь? Я так-то знаком с js, но поверхностно, и немножко ленивое хуйло.
Ребятушки, как в ноде грамотно собрать всю статику в папочку dist? Ну сконкатинировал я жсы и кссы, но что делать с кратинками и шрифтами пути к которым прописаны в ксс? Перебрасывать их все в dist?
>>557214 У меня в приложениях есть отдельная папка для всего того, что отдается клиенту - кссы, клиентские жсы, картинки, шрифты и прочее. Ну разбито по категориям, но внутри единой папки. Почему тебе не сделать также?
>>557120 >По-мойму, из Harmony реально полезны только стрелко-лямбды и генераторы, остальное - мусор. Ну ещё интерполяция строк. Использую coffeescript и browserify где все эти ништяки уже много лет как есть.
>>557296 Для тебя ООП = классы типа как в С++, я правильно понимаю. Ну нахуй пройди тогда. ООП в принципе не предполагает классов типа Java/C++ — это всего лишь частные случаи реализации хоть и весьма популярные, несомненно.
>>557120 Модули нужны. Классы - лишь синтаксис, чтобы не переписывать по десять раз Pituh.prototype.zakukarekat = function и Rubypituh.prototype = Object.create(Pituh.prototype). По мне, единственное сомнительное нововведение - let и const, потому что одни будут по старинке ставить var, а другие выёбываться и везде пихать свои let и const.
>>557472 В commonjs модули сделаны не хуже, нахуя было плодить ещё блять один вариант, чтобы потом писать ебучий SystemJS или как там его, который понимает и ES6 и CJS и AMD…
Нужно как-то сохранять определенную информацию (массив неограниченной длины) на клиентской стороне и каждый раз при запросе на сервер посылать её параметром. Эта инфа должна сохраняться как минимум на протяжении сессии. Где ее хранить? В куках? Но ведь у них, кажется, есть ограничение на размер? Если не в куках, то где?
>>557915 А чем они соснули-то? Код, в который транслируется, выполняется быстрее других вариантов на ванили (а иначе и быть-то, по-моему, не могло - примитивный и топорный луп всегда будет быстрее всяких красивых однострочных изъёбств).
>>557914 Ой, да ладно. Коффескриптеры начали оправдываться, типо всё не так, типо можно по другому. Просто есть выбор. Они ебанутые же. Я уж лучше на ванильном буду писать, чем с сахаром ебаться, чтобы потом ещё тормозило всё.
>>557954 На кофе она тоже есть, разумеется, но в данном случае автор, пытаясь показать превосходство ванили, хорошенько так обосрался. Питонистам понравились бы, наверное, генераторы списков.
>>557944 Неосилятор закукарекал заместо авроры. Тебя кто-то заставляет что ли? В анус начальство долбит за неиспользование кофе? Кофе тащемта был обкаточным полигоном для ES6. Так что даже если ты пишешь на ванили, так или иначе ты уже частично пишешь на кофе, на твоём ненавистном сахарке.
>>557903 Когда есть выбор, я пишу на обычном JS, хоть кофе мне и нравится чуть больше. Просто потому, что по большому счёту мне похуй, но если попадётся заказчик с программистом-ебанатом-неосилятором, который полезет изучать примеры моего кода, есть такие варианты: - он любит кофе и толерантен к ванили - он любит ваниль и толерантен к кофе - он любит ваниль и хейтит кофе Если человек любит кофе, у него, как правило, достаточно интеллекта и сам стиль мышления не такой, чтобы хейтить ваниль, а вот наоборот - очень часто не так: типичное быдло аггрится на всё что сложно / нипанятно / лень изучать и тд. А в программировании, особенно в вебе, большинство кодеров, особенно работающих - это именно такие вот быдломрази.
Ананасы, следующий вопрос. JS не знаю, обычно пишу на питоне, шарпе или джаве. Нужно сделать небольшое приложение, которое бы работало и на десктопе, и на андроиде. Обычно я такое пишу на питоне (киви с поддержкой тача/свайпа и прочего). Приложение - выбирать всякие опции, радиобоксы и списки, будет отображаться текст и пересчитываться некоторые величины.
Вопрос (еще раз, хтмл/ксс/джскрипт знаком мне очень поверхностно, но осилить, конечно, не составит сложности) - а стоит ли задрачиваться для такого просто приложения с питоном, или можно это написать в виде вебстранички со скриптами?
Крокфорд «JavaScript. Сильные стороны»: >Первым элементом в инструкции не может быть выражение function, так как официальная грамматика предполагает, что инструкция, которая начинается со слова function, является инструкцией function. Обойти это ограничение можно, заключив весь вызов в скобки
Есть инструкция присвоения функции переменной name: >var name = function() { ... };
Есть сокращенный вариант этой же инструкции: >function name() { ... }
То есть сокращенный вариант имеет такую форму: function <имя> (<параметры>) {<тело>}
Если я пытаюсь написать просто function(){} без именикак на пике внизу, то нарушаю синтаксис. Скобки же позволяют указать, что эта запись не инструкция, а выражение. Я правильно понимаю?
>>558217 В первом примере ты просто вызываешь объявленную функцию с параметром 2 сразу же после объявления. Во втором тупо ошибка. Хер знает, что ты подразумеваешь под выражением.
>>558218 >вызываешь объявленную функцию с параметром 2 Я понимаю, что происходит. Но не понимаю, почему, не нашел четкого определения. Почему второе выдает ошибку, а первое нет? Разница между двумя примерами только лишь в наличии скобок
>>558216 Написать можно такую страничку, работать будет даже на холодильнике с веббраузером . Нужно ли змею с птицей призывать для такого- хочешь делай, в чем проблема то.
>>558504 Так ПХП норм же, репутация у него не очень как и у JS из-за низкого порога входа: ньюфаги сразу берутся кодить, особо нихуя не выучив, высирают быдлокод, и потом люди ругают ПХП и JS. Но язык-то тут ни при чем.
>>558571 Он мне нравится эстетически, особенно вставки из функционального программирования. Но я не фанатик, так что если целесообразней использовать хтмл и прочее - я не против. Или я просто ищу повод разобраться в новых языках.
>>558643 Просто если ты что-то используешь, то лучше углубиться в это очень хорошо. Тем более, что задачи решает. Я раньше скакал как ёбанная макака, то php, то python, вот JS ещё. И чувствовал себя не очень. Потом сел и решил, что мне реально будет нужно в ближайшие несколько лет, чем я хочу заниматься, какую технологию одну можно взять и она решит мне максимально задачи - вот её и познать до профи. Выбрал JS.
>>558671 Если раньше для сервера нужен был Python/Ruby/Etc, а для браузера JS. То сейчас везде можно использовать только JS. Надобность в ещё одном языке отпадает.
Сабж. Учусь в одном неплохом вузе в ДС-2(1 курс) на инженегра. Т.к. по специальности до 3-го курса работать не получится, то хотелось бы уже на втором курсе устроиться хотя бы стажером в какую-нибудь около-it контору. В наличие имеются базовый знания по html, css и некоторым яп(но там совсем основы). Внимание вопрос: Реально ли за пару месяцев задрочить js и устроится куда-нибудь на подработку веб-обезьяной?
>>558750 Там наверное их на практику какую запихают. Только все бабки как всегда будет сраный вузик забирать, а эти будут рабами работать бесплатно или за копейки.
>>558864 >Если подработка, то тебе и js не нужен, иди обезьяной-верстальщиком. Обезьяно-верстать сложнее, конторы использующие обезьяноверстальщиков любят требовать пиксельперфект под нетскейп навигатор на микроволновке. А в жс нахуячил полифиллов и можно писать код не отвлекаясь на совместимость.
>http://learn.javascript.ru/searching-elements-dom >Это поведение соответствует стандарту. Оно существует, в первую очередь, для совместимости, как осколок далёкого прошлого и не очень приветствуется, поскольку использует глобальные переменные. Браузер пытается помочь нам, смешивая пространства имён JS и DOM, но при этом возможны конфликты. >Более правильной и общепринятой практикой является доступ к элементу вызовом document.getElementById("идентификатор").
>>557903 Там в первых же комментах ващет: «Вот добавил ваш последний тест на jsperf, в Chrome CS-цикл быстрее чем JS reduce более чем в 2 раза, а в Firefox CS-цикл быстрее в 20 раз.» а автор просто дебил, так как ниже там признался, что гонял тесты только на ноде 0.10 блять. клоуны…
>>558085 на хуй кофе, если в ES6 уже все прекрасно. А так, как любитель ванили я равнодушно отношусь к кофе. Читать могу, но писать на нем чет как то не хочется.
>>558997 У меня мозг кофе не воспринимает. Я когда смотрю на js код - я мгновенно анализирую вот это метод, вот сюда можно передавать объект с параметрами, тут создается объект, тут используются поля this и пр.
А когда я смотрю на то же самое в кофе - я тупо вижу набор букв и ничего более. пичаль бида огорчение
Какой фрэймворк сейчас лучше учить? Вообще, в чем писечка работы фронтэнд разработчика, что вы делаете в своих офисах?
Я дрочнул основы JS прослушав курсы специалиста, прочитав примерно половину Флэнагана и половину ниндзи Резинга (сейчас буду добивать вторую половину, книжка понравилась больше Флэнагана). Знаю неплохо HTML5 и CSS3, хотя опыта маловато. Также использую для css sass. Дело в том, что мне бы хотелось съебать из своей мухосрани в москвобад уже где-нибудь в конце января-феврале на зарплату в 50К и я пошел во фронтэнд.
>>558878 >Далее в примерах я часто буду использовать прямое обращение через переменную, чтобы было меньше букв и проще было понять происходящее. Жопой читаешь мразь поганая? Ты такой же урод, как 99% людей из комментариев там, пиздец долбоёб
>>559372 Что ты не понял? В яваскрипте есть lexical scope, как бы контекс, в котором определюятся функции и переменные.
Компилятор когда строить дерево инструкций смотрит снизу-вверх, тобишь если ты в глобальном контексте (вне функции) обращаешся к функции, он смотрит все декларации на этом уровне, и не найдя выкидывает - Reference error
>>559285 Реакт - очень популярный, да и в принципе толковый фреймворк. Ангуляр - низкий порог входа, туева хуча проектов на нем сейчас. Бэкбон поизучай не для работы в проде, а чтобы понимать концепцию MV*, там все наглядно.
>>559007 транспиллер, а не процессор. много ништяков es6 уже внедрено в браузеры без перевода на es5. Плюс та же 4 нода позволяет тебе писать на прекраснейшем.
>>559521 Погоди, если взять всю экосистему, типа falor/graphQL,FLUX/REDUX, экспресс, хуес, вебпак-хуяк, тулс-хуюлс то очень нихуевый получается фреймворк : Mix your own
А так вообще да, библиотека. Framework agnostic, вполне отлично вшивается в любой фреймворк, хоть метеор, хоть в ангуляр
Оставил свое сообщение в тонущем треде. Повторюсь тут. Уважаемый, Аноний, я хотел бы хоть как-то оценить свой багаж знаний. Есть ли тут люби более-менее высоко уровня? Может ли кто нить уделить 30-40 минут своего времени и прособеседовать меня?
Меня доебало это лексическое окружение. Олдфаги, поясните плиз по хардкору. Вот пример: _______________________________________________________ function makeCounter() { //Написано: создается 2 счетчика, у каждого внешняя переменная currentCount своя и они независимы, var currentCount = 1; //потому что при каждом запуске makeCounter создаётся свой объект переменных LexicalEnvironment, return function() { //со своим свойством currentCount, на который новый счётчик получит ссылку [[Scope]]. return currentCount++; }; } var counter = makeCounter(); alert( counter() ); // 1 alert( counter() ); // 2 alert( counter() ); // 3 var counter2 = makeCounter(); alert( counter2() ); // 1 ________________________________________________________ var currentCount = 1; //Далее идет пример, в котором эти счетчики получают в своё лексическое окружение глобальную переменную, function makeCounter() { //которая принадлежит глобальному объекту window и якобы поэтому, return function() { //она не сбрасывается и оба счётчика увеличивают одну и ту же переменную. return currentCount++; }; } var counter = makeCounter(); var counter2 = makeCounter(); alert( counter() ); // 1 alert( counter() ); // 2 alert( counter2() ); // 3 alert( counter2() ); // 4 __________________________________________________________ var outer = function() { // Но тогда почему, если я кладу предыдущий пример в функцию, где, как я понимаю, var currentCount = 1; // currentCount уже должен принадлежать не глобальному window, а LE функции outer, function makeCounter() { // и для каждого счетчика должна быть создана своя переменная currentCount, return function() { // они один хуй увеличивают общую переменную? return currentCount++; }; } var counter = makeCounter(); var counter2 = makeCounter();
>559697 Ты блеять долбоеб. Твое место возле параши, а не в профессии. Тоже блеять первый язык программирования?
Еще раз, тебе ущербному объясняют, что переменная currentCount может принадлежать даже Юпитеру, даже Сатурну, но сцуко про области видимости и про то, что такое блеять замыкание - ты знать обязан и обязан понимать.
>>559697 Во-первых, используй pastebin или plunker какой, читать невозможно. Во-вторых, второй пример от третьего отличается только тем что во втором переменная и счетчики создаются и вызываются в window, а в третьем - в outer. С точки зрения области видимости - разницы никакой. Читай, в общем, https://learn.javascript.ru/closures . После каждого прочтения три раза повторяй "Замыкание — это функция вместе со всеми внешними переменными, которые ей доступны."
>>559710 Иди нахуй, мразь. >>559732 Ты думаешь я написал всё это, не прочитав? Я уже 3-й час с этим сижу. Я вижу, что в 3-м примере счетчики не в глобале, я это написал. Но почему в 1-м примере, они тоже не в глобале, но для каждого счетчика переменная currentCount создалась своя, а в 3-м - нет?
>>559735 я ж говорю, что тебе не место в профессии. еще раз, очисти разум, забудь все что ты знал до этого и прочитай https://learn.javascript.ru/closures и только тогда к тебе снизойдет просветление
>>559697 дурацкая аналогия, не совсем правильная, возможно, тут с нее проорут, но возможно до тебе дойдет смысл твоих примеров:
представь что в первом случае у тебя есть два чувака и у каждого своя коробка, в которую каждый из них складывает свои вещи. от того, что кто-то положит в свою коробку вещь у второго в коробке она не появится. Это твой первый код.
второй пример - это если у тебя те же два чувака, но у них общая коробка, в которую они складывают вещи, при этом они в данный момент находятся на открытом пространстве - улице. вот они все складывают в одну коробку и вещи в коробке увеличиваются в количестве, независимо от того кто туда и что положил
а в третьем примере пошел дождь и эти чуваки взяли коробку и зашли с ней в дом (дом как обертка, в твоем примере это функция внешняя). и продолжают в нее складывать свои вещи. от того, что они зашли в дом, у них вдруг не стало у каждого по своей коробке. у них она как была одной общей, так и осталась.
>>559697 В первом примере новая переменная счётчика создаётся при каждом вызове makeCounter (и используется созданным там счётчиком), а во втором и третьем лишь один раз — при запуске глобала и при вызове outer, соответственно. Имея одну переменную, очедвино, инкрементироваться только она одна и может. Вот и весь секрет. Какие-то лексические окружения, замыкания — нахуй эти слова учить вообще? Только запутывают.
>>559697 currentCount принадлежит LE outer, тут правильно. Но вот схуяли ты взял, что каждому счетчику должна быть создана своя переменная currentCount? Внутри функции создания счетчика makeCounter нет объявления новой переменной currentCount, LE функции makeCounter равен пустому объекту, свойство [[Scope]] функции makeCounter ссылается на LE функции outer в котором есть переменная currentCount. Функция makeCouter возвращает анонимную функцию в которой тоже нихуя не объявляется, поэтому LE ей равен пустому объекту. Итого при вызове counter или counter2 ищется переменная currentCount сначала в собственном LE, который пустой как я писал выше, дальше по ссылке [[Scope]] ищется в LE функции makeCounter, который тоже пустой, дальше по ссылке [[Scope]] ищется в LE функции outer где и находит её. Что counter, что counter2 при поиске переменной currentCount в конечном итоге находят её в LE функции outer, поэтому она общая у них.
>>559840 Delphi: Анон, какие твои оправдания для использования self? C++: Анон, какие твои оправдания для использования this? Java: Анон, какие твои оправдания для использования this? C# Анон, какие твои оправдания для использования this? PHP Анон, какие твои оправдания для использования $this?
>>55981 Когда первый раз с этим столкнулся, то подумал несколько минут и всё понял. Как бы, ты ж увидишь, что тебе десять раз 10 заалертится, не трудно, наверное, догадаться, что во всех вызовах используется одна и та же переменная из лупа. Меняем это всё дело на for (var i = 0; i < 10; i++) { setTimeout(function(j){ window.alert(j); }, 1, i) } чтобы в фунцию передавалось именно именно текущее значение i и готово.
>>559869 Хотел написать "нафига ты мне это прислал", но пример с let в объявлении лупа и правда годный. Вот только решения как у меня там нет, почему-то, хотя оно же самое простое, по-моему, без необходимости создания каких-то там функций вокруг. Может, потому что никаких дополнительных скоупов не создаётся и замыкание как таковое не используется.
Привет, написал страничку в которой при событии в дом добавляется тег стиль и все такое, но иногда при событии код как будто проглатывается, то есть тег не создаётся. С чем это связано как гуглить такое?
пример dчocument.qчuerySelector dчocument.qчuerySelector ПОСЛЕ ЭТОЙ СТРОКИ ИНОГДА КОД НЕ СРАБАТЫВАЕТ vчar clofe = dчocument.createElement dчocument.bчody.aчppendChild
Когда тег не отображается в консоли его тоже нет, ошибок консоль не выдает.
Настроен сервер ноды на ип подсети 192.16.8.1.43. Как мне вытащить её вовне, чтобы была видна из инета? Нужно порты перебрасывать на этот самый ип 192.16.8.1.43 или что?
>>560372 Да, на роутере, который у тебя делает НАТ (читай, преобразует серый 192.168.XXX.XXX в нормальный человеческий белый) делаешь проброс портов до твоего сервера. Тебе нужен будет статический адрес в твоей серой (192.168.XXX.XXX) сети. Дальше, в зависимости от роутера делаешь проброс типа "Всё, что мне пришлют на вот такой порт, пересылать на IP 192.168.XXX.XXX на такой-то порт" Это всё, так же не обосрись с фаерволом на сервере - открой тот порт, на которм будешь слушать.
А вообще известный велосипед для обхода НАТ. Весёлая ебля начинается, когда надо ещё и провайдерский НАТ обойти. Вот там уже шаманство с pnat и прочей херью начинается. Или VPN.
>>555116 (OP) подскажите пожалуйста, в чём может быть ошибка? Мне надо создать вложенный список, я в цикле с помощью innerHTML создаю элементы списка и присваиваю им значения из массива, но почему-то у меня ничего не выводится. http://pastebin.com/mmEtgmp6
>>560578 Ради бога, определись с тем, как ты ставишь скобки! То на той же строке, то на следующей, то на пустой, то хуй знает с каким отступом (меньше, чем у самого for'а, блин!).
А не создаёт ничего, потому что ты эти li хоть и создаёшь, но ни к чему не добавляешь. Как ты ul к li append'ишь, так и li к body нужно.
>>560578 Алсо, как разберёшься с выводом — у тебя вложенный список будет выводить неправильные значения, так что можешь уже начинать поиск ошибки. хинт: у тебя j не используется.
>>560578 Алсо, дети, в случае чего не пытайтесь делать так, как поступает сей молодой человек. Фреймворки не на пустом месте придумали. Backbone\Angular.js вам в помощь
>>560602 Нахуя тащить всякие фреймворки, ели нужно, например, две строчки текста добавить? Ладно ещё жквери, но со всякими бекбонами и ангулярами ведь весь сайт нужно на них строить!
>>555116 (OP) помогите разобраться в ошибке мне нужно сделать выпадающий список так, чтобы при событии onmouseover открывался внутренний список,поэтому я создаю сначала внутренний список и ставлю ему свойство display="none", но в моём коде у меня при наведении всегда выпадает выпадает внутренний список последнего элемента первого списка, даже если мышка наведена не на последний элемент списка, подскажите в чём проблема пожалуйста http://pastebin.com/N3icKJaZ
>>560706 >document.addEventListener("DOMContentLoaded", bla.blabla()); Надеюсь ты случайно скобки сейчас вставил? Потому что так не эвент листенер добавляется, а просто сразу функция выполняется.
Привет, есть несколько вопросов, но о них позже, сначала расскажу немного о себе. Знаю HTML/CSS и Фреймворк Бутстрап3, знаю на таком уровне что немного фрилансил версткой. Использовал в этом готовые решения JQuery (для галерей, слайдеров и прочей анимации, сам вряд ли смогу что-то написать на нем, насколько я понял сначала нужно освоить JS). Настал такой момент, когда мне этого оказалось мало, я решил почитать что-то JS. Зашел в /pr увидел этот тред, почитал шапку и нашел в ней книгу Дэвида Фленегана – “JS: Подробное Руководство”, прочитал около ста страниц и подумал, что это подобие некоего справочника, собственно вопрос заключается в том, есть ли книга, которая поможет мне проникнуться в суть языка и возможно научится с ним работать? С чего начать учить язык? Спасибо.
>>560781 На локалке, консольлог выводит. Весь код настолько ньюфажен и убог что мне кажется его смысла показывать даже частично нет. Проще говоря есть два конструктора X и Z у X 1 метод у Z 3 метода которые работают в событиях X, метод X обращается к методам Y и в одном из методов Y часть кода иногда не срабатывает. Причем только в Мозиле, в остальных браузерах и даже прости господи в IE отрабатывает все как положено.
>>560862 В шапке же есть сайт http://learn.javascript.ru/, вроде все разжёвывают и задачи есть, ну я-то совсем нуфаг мне норм, а может вашему величеству, который ДАЖЕ ФРИЛАНСИ МАМАЧКЕ РОДНЫЕ будет не интересно
>>560862 Понимаешь, после определенного момента - книги становятся не нужны. Реально, чтобы изучить новый язык хватает простого справочника и stackoverflow.com
>>560948 Ты чего раскукарекался так лол, при чем тут самооценка, начальники часто ругаются да?)))000 Я тащемто и не против показать если кому-то не лень читать и разбирать по частям мною написаное))))
>>560966 Посоны, а почему я вижу что все делают отступы пробелами а не ТАБами? В чем сакральный смысл? Можно настроить Notepad++ на несколько пробелов на за одно нажатие? нюфаня
>>560986 ой ой ой манечка разозлилась, давай, мань, злись в интернетике,. ведь ирл тебе злиться нельзя, а то вдруг о тебе подумаю чего плохо, о неуверенной такой манечке.
>>560986 Пиздец, вы только посмотрите, тупой пидорахе объясняют как просить о помощи чтобы не терять ни свое ни чуже время, но пидораха копротивляется, что такое говно быдлячее делай в профессии? А ну пошел нахуй отсюда, пидорас.
>>560994 Ох как у тебя от темы неуверенности в себе бомбит-то, видать в точечку попал, иди забейся под диван питушек, там такого обсыкана никто не увидит и не заругает
>>560999 Ну как бы я вообще про это ничего не говорил, это ты зачем-то начал рассказывать охуительные истории про опущеность и неуверенность. Ты там чем упоролся? Иди проспись наркоман.
>>561007 Зачем обязательно в трёхсот, я же указал с какой по какую строку проблема.
Фленаган это действительно просто руководство, как и лёрнжс, научиться по ним невозможно имхо.
Я бы рекомендовал просто почитать немного про основы, написать проект-другой, почитать про паттерны и good parts (у крокфорда кстати лекции на youtube есть, можно и вовсе не читать а смотреть), еще покодить, почитать про es6 и современный обвес, на нем пописать, а потом уже браться за хардкорную теорию типа youdontknowjs, это ровно о проникновении в суть, но без предварительной практики она просто мимо пройдет или покажется скучной. Ну и почти все годные книги на ангельском, подразумевается, что это не проблема.
>>561014 >Зачем обязательно в трёхсот, я же указал с какой по какую строку проблема. Ну и чего я тебе должен на той строке увидеть? У тебя всё через жопу какую-то, традцать строк с изменением стиля — цсс с классами для этого придумали.
Твоя функция quez, в котороый ты говоришь что-то не обрабатывается, вообще к вызывется при клике на картиночки с музыкальными альбомами и к эвенту на DOMContentLoaded не имеет никаокго отношения.
Ну и это, без хтмла я нормально "запустить" твой код не могу, так что либо тащи нормальный, работающий вариант с ошибкой (http://stackoverflow.com/help/mcve), либо сам разбирайся.
А ещё соберитесь вместе с >>560624 и научитель нормально форматировать код.
Я рад помочь, но ты сам нихуя не хочешь для этого сделать.
>>561033 Есть одна: посторонние читатели должны сразу понять, что куда где и откуда там происходит, и какие строки к какой функции относятся, а не делать отсутпы тела цикла такими же, как и у начала цикла, при этом цикл внутри функции внутри функции, и всё это на одном и том же уровне.
>>561014 Заодно прочитай как setTimeout таботает, у тебя там та же ошибка, что и в создании эвентлистенере.
>>561033 Вот глянь у него на строки 167-192, это же просто пиздец ёбаный, слов не наберёшься, насколько это нужно быть кретином, чтобы, во-первых, такое написать, а во-вторых, не заметить, что тут что-то не так!
>>561060 Крестик (точнее, весь элемент <a> с id "hyper") удаляется у тебя в this.ew, которая вызывается при эвенте "onMouseOver" на любой из альбомов. Могу предположить, что из-за каких-то лагов этот эвент где-то заблуждается, и срабатвает уже после появления крестика. Проверить это, к сожалению, не могу — всего два раза добился, чтобы крестик не показался, до вставки принтов в эту функцию.
Совет 1: Убрать это непонятное удаление <a> из this.ew, так как сам крестик по клику на него-таки убирается. Совет2: Отрезать руки тому, кто изначально это писал и "продумывал". (Потому что это, как я понимаю, что-то со фриланса, а не твоё).
>>561060 А ещё с таймерами там жопа: если очень бытсро включить выключить (выбирая картинку в верхнем правом углу), то таймер не остановится (он должен через 100мс) и начнёт ругаться на отстутсвующие элементы (ведь они уже удалены при нажатии на крестик).
Ну и укоротил ты код пиздец просто: взял и удалил всё нахуй, не оставив даже декларации этого genia, который там е и вызываешь. Укороченный код должен работать*.
>>561199 >Этот шедевр изначально написан и продуман мною хех. Тогда всё очень плохо. Называй переменные и функции по-человечески, потому что в этом аду "ad", "qw", "le", "quez", "ew" и прочего непонятного говна разбираться удовольствия никакого. >первая моя страничка же ну чего вы ребята будьтеж людьми Так и начал бы с чего-то более простого.
Книги по ноде из шапки актуальны? Или для начала не принципиально для какой версии они написаны? Туториалы вменяемые есть? В гугле ехал сео через сео и подайте 10$ джону смиту, создателю туториала по ноде. В середине текста, блядь.
>>561365 Хуй знает, я вот как-то скачал одну из них а там первым же примером хуяк хуяк и приложение-чат на сокетах со всей хуйней, после чего автор долго размышляет об асинхронности, 50 страниц расписывает про какую-то никому не нужную либу, про мидлваре, далее об экспрессе, короче я рот ебал такое читать
>>561476 >50 страниц расписывает про какую-то никому не нужную либу Async? Хуясе ненужная, как ты без неё что то крупнее визитки сделаешь? >про мидлваре, далее об экспрессе Это же основы блядь, без этого нормально работать нельзя. Или ты хочешь как рельсодауны, хз как всё работает, кругом МАГИЯ?
>>561538 Нет, не асюнк Основы уровня следуй 100 страниц за моими примерами а потом узнай что это всё ебонь и можно было сделать то же самое в три строки, нахуя всё это так долго расписывать, в рот ебал ваши книги в >2015
>>561536 >на питоне, что б жизнь мёдом не казалась Чот проиграл. >>561538 >Или ты хочешь как рельсодауны, хз как всё работает, кругом МАГИЯ? А на голой ноде кто-нибудь что-нибудь пишет, или все ябутся в экспресс, смазывая ангуляром?
>>561575 >Ребяты, поделитесь знаниями, - что обычно спрашивают на собеседовании на ангуляр разработчика? Профиль на гитхабе. Как нету, а английский знаете? Ну хотя бы на уровне чтения технической литературы? Нет? МЫ ВАМ ПЕРЕЗВОНИМ
>>561642 Хороший вариант, но советую в таких случаях рисовать существо из шестеренок и плоти. Этакого гибрида-киборга. Это у них считается что-то типа вершины творческого ума.
Первый раз итт, подобный вопрос наверное задают очень часто: не пойму до конца логику беспрерывной движущейся ленты с логотипами, сперва клонировать и вставить блок картинок в конец родительской ленты, потом, margin-left или left сдвигать блок, когда дойдет до конца первого блока картинок - append его в конец. Так вот вопрос - чтобы это работало, надо размер ленты постоянно увеличивать соразмерно сдвигу, чтобы видимая часть была больше чем сдвижка? Если да, то мне кажется это не очень рационально, ведь минут 20 афк, и будет сдвижка и размер блока будет четырёхзначным числом как минимум. Есть ли правильный алгоритм?
>>561745 >подобный вопрос наверное задают очень часто Нет. А вот так что нихуя не понятно спрашивают часто, да. Запили демку на планкере или дай ссылку на код который тебе не понятен. Еще можно поробовать выучить цсс прежде чем задавать вопросы по нему.
>>561792 http://jsfiddle.net/bfgwkeny/ Вот такая хуета, только я тут костыль сделал со сбросом margin-left в 0, плюс она тут движется периодически, в той ленте которую я хочу получить на выходе, движется с одинаковой скоростью.
>>561802 В разметке хуита какая-то. Нужно джва элемента - внешний с заданной шириной, overflow:hidden и position:relative, и внутренний с position:absolute. У внутреннего по таймеру меняется left. Всё.
>>561931 То тебе будет гораздо проще - ты не можешь нарисовать ничего существущего, а значит что бы ты ни нарисовал - это будет несуществующим. Собеседование пройдено!
>>561662 Обратить внимание на случаи вмонтирования механических частей в тело “животного” – постановка животного на постамент, тракторные или танковые гусеницы, треножник; прикрепление к голове пропеллера, винта; вмонтирование в глаз электролампы, в тело и конечности животного – рукояток, клавиш и антенн. Это наблюдается чаще у больных шизофренией и глубоких шизоидов. Творческие возможности выражены обычно количеством сочетающихся в фигуре элементов: банальность, отсутствие творческого начала принимают форму “готового”, существующего животного (люди, лошади, собаки, свиньи, рыбы), к которому лишь приделывается “готовая” существующая деталь, чтобы нарисованное животное стало несуществующим – кошка с крыльями, рыба с перьями, собака с ластами и т.п. Оригинальность выражается в форме построения фигуры из элементов, а не целых заготовок.
Посоны, мы тут с посонами в /б пришли к выводу что JS - не настоящий язык программирования а лишь часть хтмл, вам хоть немножко стыдно что вы тут хуйней занимаетесь?
>>562998 > CoffeeScript в начале не надо. Почему это? Если в моё время, когда я только начинал учить жс было бы что-то подобное - я бы был пиздец как рад.
>>563006 Лучше на ес6 писать сейчас, будет более универсально. Чтобы на кофе писать не говно надо понимать как жс работает и в какой жс это кофе компилится.
>>562998 но он такой няшный, что я не могу удержаться и некоторые проекты (чистый фронтэнд) на нем пишу (где много психоделической верстки), собрать из шаблончиков js-функции для вьюшек несложно.
>>562983 >Верное ли направление а направление куда? финальная цель какая? так-то все штуки полезные.
>>563308 >Лучше на ес6 писать сейчас удваиваю. кофе сейчас имеет смысл только если уже не можешь без него.
Правильно ли я понимаю, что Node.js - это, утрированно говоря, такой способ писать JS-код для его выполнения на сервере? Или всё не так просто? Вот с PHP/Laravel|Symfony|Yii, Python/Django, Ruby/Rails мне всё понятно: вот тебе методология, вот тебе синтаксис, вот тебе практики, вот тебе фрэймворк, - хуярь.
>>563929 >Node.js - это, утрированно говоря, такой способ писать JS-код для его выполнения на сервере? Разве это не просто-напросто интерпретатор ЖСа? А уж сервер у тебя там или нет — дело десятое.
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает возможным создание на нём любых проектов - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком.На каждом сайте есть браузерный JavaScript, А JavaScript на сервере используется такими крупными корпорациями, как Amazon, HP, Walmart.
Краткий FAQ:
1. Что это за язык такой? - Мультипарадигменный язык, изначально создавался для использования в браузерах как язык сценариев для придания интерактивности веб-страницам, однако в процессе своего развития преодолел этот этап и сейчас может использоваться для любых целей ввиду своей неограниченной гибкости и удивительно удобного синтаксиса.
2. Какие возможные направления для разработки существуют? - Фроонт-энд (Vanilla, jQuery, Angular, Backbone, React, Meteor), бэк-энд (Node.js, Express, Sails), геймдев (Phaser, Cocos), 3D графика (Three.js), мобильная разрабтка (NativeScript, Phonegap, ionic), можно делать десктоп приложения(NW.js, WinJS).
4. Можно выучить только jQuery и всё писать на нём? - Не стоит, можешь начать писать на jQuery, когда освоишь ванильный JS, дабы не испортить себе восприятие языка, и вбудущем не испытывать трудностей с изучением сложных фреймворков.
5. Ну ладно, с чего начать изучение то? - Дальше я приложу список материалов для изучения.
Чистый JS:
Книги: Дэвид Фленеган - "JavaScript: Подробное руководство"
Дуглас Крокфорд "JavaScript: сильные стороны"
Стефанов С. - "JavaScript. Шаблоны"
Джон Резиг - "Секреты JavaScript ниндзя"
Николас Закас - "JavaScript. Оптимизация производительности"
Node.js
М. Кантелон , М. Хартер - "Node.js в действии"
Кирилл Сухов - "Node.js. Путеводитель по технологии"
Дэвид Хэррон - Node.js. Разработка серверных веб-приложений
Front-end
Эдди Османи - "Разработка Backbone.js приложений"
Читать онлайнDr. Axel Rauschmayer - "Speaking JavaScript: An In-Depth Guide for Programmers" - Одна из лучших книг по JS. Пока только на английском. http://speakingjs.com/
Marijn Haverbeke - "Eloquent Javascript" - Вводная книга по JavaScript и программирование в целом. Перевод на хабре: http://habrahabr.ru/post/240219/ На английском :http://eloquentjavascript.net/
Онлайн сообщества:
http://learn.javascript.ru/ - оно одно, единственное. Начинать учить язык советую отсюда, потом переходить уже к книгам.
http://www.jstherightway.org/ - Огромный гайд составленный буржуями. Есть книги, статьи и всё-всё-всё.
http://nodeguide.ru - Огромное количество переведённых статей по Node.js
http://ru.discovermeteor.com/ - Книга по Meteor.js - одному из самых лёгких и функциональных фреймворков
Бложики и новостные ленты:
http://dailyjs.com/ - DailyJS
http://weblog.bocoup.com/ - Bocoup Weblog
http://perfectionkills.com/ - Perfection Kills
http://www.reddit.com/r/javascript - subreddit на reddit.com
http://toddmotto.com/ - Todd Motto, Lead front-end @appsbroker. Developer Expert @google.
Онлайн курсы:
Как же можно учить язык, только читая книжки? Нужна практика, и только так изучаемое усваивается, не иначе.
CodeSchool - http://codeschool.com/ Отличный ресурс для изучения языка, очень много курсов по всем передовым технологиям.
CodeAcademy - http://www.codecademy.com/ Уже не такой сильный, но все еще интересный проект, так же маст хев для набивания скилла.
Udacity - https://www.udacity.com/course/ud015 Дает хорошее представляение о замыканиях.
Выучил основы, написал свою пузырьковую сортировку и змейку? Не знаешь как двигаться дальше?
Почитай теперь это - https://shamansir.github.io/JavaScript-Garden/
А потом? Я и так уже гений!!!
Выбери себе направление. Может, ты хочешь игори делать? Тогда вперед на гитхаб, и ищи Phaser, Pixi и другое, выбор не маленький. Хочешь на сервер сайд? Копай в сторону Node.js, Express, Socket.io. Хочешь писать MVC логику? Angular, Backbone, да множество их. Нельзя забывать про NW.js и WinJS, позволяющие создавать десктопные приложения.
Шапка: http://pastebin.com/zMVM1xDr