24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
знатоки, подскажите плиз, как в хроме и ноде смотреть дерево вызова объектов и как лучше писать не блокирующий код, м/б для п 2, есть какой-то универсальный рецепт?
На textarea весит on.change, который вызывается при каждом нажатии и выводит в консоль символы. Как написать так, чтобы выводились все символы разом(после некоторого таймоута)?
господа, можете подсказать по селениуму на жс? установил себе java, selenium-standalone-server, node-js (в нем скачал пакет selenium-webdriver), скачал и добавил в paths chromvewebdriver, нашел простейший пример в виде
const {Builder, By, until} = require('..');
var driver = new Builder() .forBrowser('chrome') .build();
Какое же все-таки говно этот ваш жс. Вроде бы 2017 год на дворе, но нет, на каждый чих нужно бороться с ахуенными проблемами вроде плохой поддержки какой-то фичи каким-то браузером, обвешивать свои скрипты тоннами костылей, чтобы получить возможность хоть немного приблизить эту ссанину к виду человеческого ЯП. По количеству костылей и велосипедов, вкладывающихся друг в друга, переводящих импорты в коммонжс, коммонжс в амд, амд в <скрипт>, асинхи в промисы, промисы в колбэки, темплейты в jsx, jsx в html, навешивающих поверх всей этой вакханалии типы, список можно продолжать бесконечно - он приближается, если не перегоняет уже, тырпрайзную жабу. И это ебучее стремление переписывать абсолютно все уже давно существующие, стабильные, всем знакомые решения на точно такие же, только с более нескучными конфигами. Родина дала мэйкфайлы, которыми еще диды процессы сборки автоматизировали - нет блять, хочу наизобретать хуеву гору своих велосипедов. Просто фу блять, фу нахуй
>>961537 Просто разработчики ФРОНТЕНДОВ и дипломированные специалисты по BOOTSTRAP вместо того, чтобы делать просто, делают все сложно чтобы сделать индустрию, рабочие места и высокую зарплату. Хитрый план.
>>961494 Наканецта завезли неразрешимые задачи. Последнего нажатия не бывает. Компьютер не может узнать, нажмёшь ты кнопку после этого или нет. Лучше объясни, что ты хочешь получить на выходе
Всем привет. Нужна помощь по css-селекторам. Весь гугл перехуячил, но ничего не выходит. Имеется два элемента class с одинаковым именем info. Скриншот прилагается. Так вот в одну переменную мне нужно записать Имя команды, во вторую- позицию игрока. При команде var team=$("div.info").text(); Я получаю ответ SouthamptonGoalkeeper. Как мне обратиться к каждому конкретному элементу? Или хотя бы разделить сроку так, чтобы я мог присвоить Goalkeeper для другой переменной?
>>961537 >говно этот ваш жс Да. >немного приблизить эту ссанину к виду человеческого ЯП Тайпскрипт, scala.js >если не перегоняет уже, тырпрайзную жабу Не перегоняет. Если пишешь только под новые браузеры - можно исключить тот же бабел например. >мэйкфайлы Ты ими собирал хоть что-нибудь сложнее хелло ворлда? автотулс это ужасная, страшно неудобная вещь конца 20 века.
>>961671 >Тайпскрип И навесить очередной велосипед, транслирующий тайпскрип в ес7, ес7 в ес6, ес6 в ес5, потом прикрутить полифилл... >Ты ими собирал хоть что-нибудь сложнее хелло ворлда? автотулс это ужасная, страшно неудобная вещь конца 20 века. Я-то собирал. Хочешь сказать, что ссанина с нескучными конфигами, которую дополнительно нужно изучать, охуенно удобна?
>>961673 >которую дополнительно нужно изучать Писал на С# до этого, ничего не изучал - надстройка проста и понятна, достаточно часов читнуть документацию.
Дочитал вторую часть учебника(про дом) кантора. В какую сторону дальше двигаться, сразу в фреймворки вкатываться или лучше еще что нибудь почитать? Алсо как дела обстоят с работой в дс2, какой фреймворк перспективней всего учить чтобы проблем с работой и зарплатой не было?
>>961756 Сделай что-нибудь на ваниле. С приминением этих знаний. Если ничего не можешь придумать - wes bos javascript30 (просто чтобы база в голове закрепилась)/ Потом пару дней поковыряй апиху jq, lodash/ramda.
Далее да, фреймворки. Но если не знаешь про сборку/автоматизацию то полезно будет глянуть от Кантора по ноде/вебпаку/галпу сринкасты его.
Из фреймворков выбирай любой из: 1) React + Redux 2) Vue + Vuex 3) Angular
>>961768 а ты сможешь(хотя бы для себя) ответить на вопрос "что такое блокирующий код"? Ну а если ты хочешь руками асинхронно перебрать массив, то эт наверное генераторы нужны (es7 async/await), но пример сходу я показать не смогу. Если что-нибудь получится, отпиши
>>961733 Посмотрел 15 видео подряд. Голова болит от говорилки. Наберись смелости и записывай свой голос. Вставки из фильмов — ок, но вот братишки и прочей хуйни было слишком много и не к месту. Базарить надо попроще и покультурнее со своими подписчиками. Если ты хочешь, чтобы у тебя было 3.5 подписчика — продолжай в том же духе, иначе меняй стиль общения, тебя могут смотреть люди не только с двача и не только школьники.
Я мимо-сисадмин, чет мясяца-полтора назад увлекся версткой, мне доставляет весь этот огород городить на css и html, однако в определенный момент я понял что без ЖабаСкрипт никуда. В универчике писал программки на турбо паскале, давным-давно, да и все. Но общий принцип циклов, массивов и прочих операторов помню (кажется). Подскажите нормальных книг по джаваскрипт, ну и нормальную книгу по собственно логике программирования как таковой, что бы освежить воспоминания, и совсем уж макакой не быть. Сейчас изучаю по урокам https://learn.javascript.ru/ у этого типа есть платный курс - он стоит своих денег может знает кто?
Очень уж хочется порадовать мир еще одним "hellowordom", аж кушать не могу. Но совсем уж мартышкой быть не хочется.
>>961897 >он стоит своих денег может знает кто JS-курс — тупо пересказ учебника + общение с преподом. Общение такое себе, просто разбирает решения задач.
>логике программирования Не уверен, но вроде бы должна подойти книга под названием Eloquent JavaScript (есть годный перевод "Выразительный JavaScript").
>>961787 >а ты сможешь(хотя бы для себя) ответить на вопрос "что такое блокирующий код"?
если я правильно понял, любой цикл - блокирующая операция.
если ты перебираешь массив/объект, ты всегда используешь какой либо цикл, и это будет блокировать твой код, код будет стоять, пока не закончится перебор всего объекта. ЖС однопоточная.
>>961365 (OP) Котоны, нужна помощь. Имеется сайт, на который пользователь может загрузить аудиофайл, после чего проиграть его и в процессе посмотреть на визуалиацию. Но так как место на сервере не резиновое, пытаюсь прикрутить поддержку какого-нибудь облачного хранилища музыки. То есть, чтобы юзер вбивал в форму на сайте ссылку с песней из этого хранилища и она проигрывалась. Пробовал использовать для этого SoundCloud API, вроде он как раз умеет делать то, что мне нужно. Но из-за того, что они изменили процесс регистрации приложений у них, я уже полтора месяца не могу получить доступ к API. Есть ли какие-нибудь аналоги? Или вообще другие способы всё это организовать?
>>961897 Учи в таком порядке: 1. learn.javascript.ru 2. Скринкаст по NodeJS там же 3. Пробегись по документации к webpack 2 4. Прочти документацию React и начинай делать какие-нибудь учебные проекты, наполни свой github-репозиторий
>Но совсем уж мартышкой быть не хочется. Забей на это. Не читай SICP и Eloquent JavaScript, как можно скорее переходи к практике. Потому что в экосистеме JS слишком много фреймворков и инструментов. Когда сделаешь пару нормальных проектов, разберешься во всем этом говне, найдешь работу, тогда уже можно качать логику программирования.
>>961938 А я вот что-то не уверен в этом суждении. Цикл рано или поздно закончится (который не бесконечный офк), а вот команды, которые выходят за окружение ноды(нода в данном случае просто среда исполнения js) вот они блокирующие. Тот же самый alert или fs.ReadSync. Но вообще я не настаиваю
>>961918 >>961934 >>961953 Спасибо котаны за советы. Знаю с чего начать теперь. Это даже забавно, но я на данный момент на заряде каком то, основной профиль работы надоел до одури. С бабой с которой прожил под два года разошелся. И голова как барабан. А фронтред это прям отдушина - и творчество и сириос скилл. Честно говоря на данный момент забивал версткой все свободное время, в том числе и на работе. Щас буду время забивать javascript. >961934 >>Я думал сисадмины, всякие скрипты то попиливают (не раз такое слышал). Всякие косорылые батнички и скрипты под красноглазую. Понимаешь у профессии сис.админа есть один фатальный порок - когда все настроено и работает - делать нехрен. И выше того что есть прыгнуть сложно. Опять же принцип - не трожь пока работает. А создавать себе задачи принудительно, и решать их в сисадминстве - это не совсем как сказать себе - а давай ка я напишу крутейший сайт, ну по крайней мере попробую. Зачастую сисадмину нужно оборудование. Крутые сервера, понтовые маршрутизаторы ну и т.д.
Сделали бы нормальный FAQ уже для треда, а то как бомжи блять. Раньше же вроде было что-то. Есть тут сеньоры мб или миддлы хотя бы которые могут этим заняться? Реально полезно же было бы для новичков.
>>961985 >нормальный FAQ уже для треда Нахуя? Для пары минут в гугле? >полезно же было бы для новичков. Не умеют искать инфу - вон пусть пиздуют из профы
хуйня вопрос, делай следующее: ставишь на комп ноду и нпм ставишь ярн ставишь бабел и пишешь бабелконфиг ставишь еслинт эхкстендишь конфиг от эирбиэнби и пишешь еслинтконфиг, вешаешь хук на прекоммит ставишь вебпак и пишешь два конфига один под прод второй под дев, на деве не забываешь поставвить вебпакдевсервер и настроить хатрелоад, на проде не забудь бить код на чанки, углифай, критикал си эс эс инитишь гит, добавляешь гитигнор не забудь ярн лок в репу потом корочи ставишь дев зависимости бабель-кор, бабель-лоадер, бабель-плагин-трансформ-обджект-рест-сприд, бабель-пресет-2015, бабель-пресет-реакт, вебпак, вебпак-дев-сервер, сиэсэс-лоадер, стайл-лоадер, стайл-экст-эйчтиэмэль-вебпак-плагин, лесс или сасс, лесс или сасс лоадер, еслинт, еслинт-конфиг-эирбиэнби, еслинт-плагин-импорт, еслинт-плагин-реакт, экстракт-текст-вебпак-плагин, эйчтиэмэль-вебпак-плагин потом корочи зависимости материал-юай или реакт-мдл-юай или бутстрап, нормалайзр, реакт, реакт-дом, редакс, реакт-редакс, реакт-роутер, реакт-тэп-эвент-плагин, редакс-тсанк, дабльюашэйтидаблюджи-фетч для удобства в нпм скрипты алиасы, но вызывай все через ярн потому тчо так круче
короче делаешь папочки там контейнеры компоненты экшены стор миддлверы, редбюсеры еще и утилзы и понеслась короче пиши код твори пили сайт который будет через апи другого сервиса брать определенные данные и выводить их у тебя, строй его.
Раньше на одном сайте тренировался в использовании js для решения небольших задачек(например, делить строку на 2 части, инвертировать последовательность каждого символов в образующихся подстроках и соединять обратно). Оформление сайта было черно-красным. Сам сайт давал своему пользователю даны, как восточных единоборствах, очень близок был к восточной(скорее всего к японской) тематике. Кроме js, можно было тренироваться в владении другими языками, но, помимо scala, какими - не помню. И, вроде как, он был в шапке треда. Помогите найти этот сайт.
>>961657 Снова выхожу на связь. Эту проблему решил, появилась новая. Вот мой код
var request = require('request'); var cheerio = require ('cheerio'); url='https://www.premierleague.com/players/3170/Fraser-Forster/stats?se=54' request ({url, method: 'GET', encoding: 'binary'}, function (err,res,body) { if (err) throw err; setTimeout ( function () { var $=cheerio.load(body); var name=$("div.name").text(); var team=$("div.info").first().text(); var position=$("div.info").last().text(); var games=$("div.topStatList").text(); console.log(name); console.log(team); console.log(position); console.log(games); },5000)});
Изначально, заходя на страницу со статистикой игрока https://www.premierleague.com/players/3170/Fraser-Forster/stats отображается общая статистика за все годы карьеры, если в выпадающем списке выбрать последний сезон, то к ссылке добавляется ?se=54, с которой я граблю. Но если пройти по ссылке, то видно что изначально подгружается общая статистика и только потом за последний сезон, который мне и нужен. Так и мой код загружает первоначальную ОБЩУЮ статистику за все сезоны, а не за последний. Как видно на скриншоте. Как можно решить такую проблему? Пробовал таймер ставить- не помогает.
Поясните, чем макОс лучше винды для веб-разработки? Вроде тот же нпм, ярн, нода, вебпак и так далее, всё работает и запускается без костылей. Редакторы те же самые.
>>962195 Очевидно, что эти данные подтягиваются через AJAX\WS после загрузки страницы. F12 -> Network помогает отследить, что и откуда взялось. Либо работа с тем же IE через WSH.
Анончик, объясни, почему в https://pastebin.com/fcLM82tM консоль лог выводит одинаковые значения? (в массиве только один объект). Разве выполнив Object.assign({}, state); я не создал новый объект, который после редактирую?
Анончики, вот я сейчас изучаю JS по Кантору, изучил 5 глав, пока тяжеловато идёт ибо это мой первый язык программирования, но потихоньку справляюсь. Появился такой вопрос: сколько информации необходимой для работы или для достаточного уровня владения языком даёт в своей книге Кантор? Т.е я хочу понять на каком этапе обучения я буду после прочтения этого всего материала, выполнил ли я 50% необходимой работы чтобы вкатиться и нормально уже хоть что-то делать в фронтенде, или это уже 70% необходимых мне знаний (ну что-то в этом плане).
>>962728 Просто пиши больше кода - игры на Canvas, например. Для работы в основном нужно знание фреймворков (Angular, React, Bootstrap ну и само собой jQuery), какие-то языковые тонкости спрашивать вряд ли будут. У Кантора учебник написан для людей, знающих программирование (на других языках).
>>962580 Это ерунда, меня вот заставляли учить связку React+Redux+TypeScript. Главное в JS запомнить, что там нет классов (в нынешнем стандарте ECMA есть, но не нужны) и объекты это хэш-таблицы с изменяемой структурой, что нужно использовать лямбда-выражения, что там слабая динамическая типизация и в чем отличие == от ===. Чистый бэк сейчас хуй найдешь, на всех Java вакансиях требуют фуллстек.
>>962742 >У Кантора учебник написан для людей, знающих программирование (на других языках).
Ну он вроде иногда упомянает что учебник для полных нулей, но всё равно в некоторых момент разобраться сложновато бывает, возможно я ещё не на самом тяжелом даже.
>Просто пиши больше кода - игры на Canvas, например.
Ну чтобы хоть что-то писать, нужен какой-то минимальный банк знаний, который достаточно сложно получить из-за общего количества материала. Т.е мне ещё месяц наверное нужно дрочиться перед тем как я самую простую хрень смогу написать...
>>962736 Ну HTML/CSS я немного знаю, сверстал один статический макет, другой адаптивный резиновый (правда достаточно простой). Правда пока учил этот JS уже забыл как верстать, лул.
Объясните плз эту херню. Короче переводя с языка Кантора, this объявленный вне функции (просто в свойство объекта) не получает ссылку на этот объект, поэтому this получает ссылку на window. В итоге свойство становится равно export: window , и тогда при вызове alert( user.export.firstName ); мы получаем alert(user.window.firstName); ? Т.е объект user в котором есть объект window и у которого есть свойство firstName, а т.к этого внутреннего объекта window нет, то получается undefined. Правильно логику работы расписал, не?
>>961365 (OP) Сап аноны. Есть список <ol> <li></li>...</ol>. Хочу чтобы каждый элемент окрашивался в зеленый цвет по очереди. То есть сначала верхний, через секунду чуть ниже, потом еще ниже и так до конца. Я нашел функцию setTimeout, но она замедляет и потом окрашивает сразу все элементы сразу. Пробовал с циклом делать, все равно тоже самое. https://jsbin.com/meguxehaso/edit?html,js,console,output
Блять, это наверное самая конченная глава(урок?) от Кантора - https://learn.javascript.ru/object-conversion . Нихуя нормально не объяснил, и какие-то задания вбрасывает, лул. Пойду "Выразительный Javascript" потыкаю, может там это как-то другим языком объяснят.
>>963333 На самом деле это книга немного нестандартная и искать в ней ЛУЧШЕГО объяснения я бы не стал. Там написано каким-то ебанутый языком обстракций, и лично для меня это было не в пользу ЛУЧШЕГО понимания сути, а как лишняя мешающая прослойка.
>>963514 Я тогда еще не умел читать, а вообще когда что-то не умеешь, то читать полезно как бы. Ты можешь думать, что понял инструмент протыкав его, но на деле так и не узнав половину функционала, ибо не прочитал.
>>963541 Маны гугла к твоим услугам. А вообще, ты слишком хуево умеешь гуглить, чтобы тут разглагольствовать о чтении. Иди почитай, как искать информацию в 21м веке самостоятельно.
Выходит, срать ты так и не научился, раз приходишь с такими идиотскими вопросами.
>>963548 Маны гугла по-твоему не читать надо? Что бы не тратить время на поиск Аля гуглении хорошей, комплексной статьи я ее и реквестирую у тех, кто, возможно, уже искал и находил что-то годное. А тебе бы, раз ты научился срать, советовал не тратить время на написание постов типо: ну ты и мудак, такооое то не можешь, бляяя. Проще же не писать?
Сап аноны, подскажите пожалуйста что не так с моим кодом. Суть такова: хочу по нажатию на кнопку чтобы текст менял цвет. То есть если черный - то на зеленый, если зеленый - то на черный.
>>963550 >классами из ES6 с нормальным наследованием? В js нет и не будет традиционных классов из java/c# и прочих языков. >>963541 >когда что-то не умеешь, то читать полезно как бы Ага, как сейчас помню - не умел я значит ручками перьевыми пользоваться. Потом взял в руки - и понял как оно работает. А еще яичницу готовить не умел, а там оказывается надо только яйца разбить да с солью и молоком взбить.
Анон, смотри: у меня есть кнопочк с лайками. Юзер кликает на кнопочку с лайком, и она меняет цвет. Вопрос: как оптимальнее всего сохранить цвет кнопочки? Через запрос на сервер? Или же в локал сторадже каком-нибудь?
>>963622 Щепотку небольшую соды не забудь и прожаривай под закрытой крышкой, а лучше в духовке. Если правильно готовить - получится такой же пиздатый омлет, как в советских ресторанах. >>963638 >сохранить цвет кнопочки? Ты ебанутый? Тебе надо действия юзера сохранять, а не цвета и прочие свистоперделки.
>>963641 ну так каким образом? Я, допустим, могу сделать аякс-запрос на сервер, и в зависимости от ответа поменять цвет кнопочки. Можно хранить инфу о прожатии кнопочки в сессии, но сессия после логаута флашится, и в неё тоже не вариант.
>>963641 В духовке это в смысле вообще изначально ставить тарелку с субстанцией в духовку и там парить? Я бывало в микроволновке хуячил омлет, а в двуховке вообще не слыхал даже. Ты меня заинтриговал, прям с работы приду и заебашу. >>963643 На сервере, всё на сервере. А ты как думал? У модели твоей есть же филд isLiked: bool, вот его и тоггли. Можешь использовать подход оптимистичных апдейтов, как все крутые ребята, тобишь ты отправляешь аякс на сервер, а сам между делом, не дожидаясь респонса, флипаешь в интерфейсе лайкед тру, уповая на то, что на сервере все пройдет гладко. Когда респонс возвращается, ты проверяешь, если статус ок, то ничего не надо делать, уже всё сделано. А если каким-то боком, что-то пошло не так, то в еррор хендлере флипаешь в интерфейсе обратно на лайкед фалс и сообщаешь об ошибке, ну или не сообщаешь. Тут уже от ситуации зависит.
>>963643 >ну так каким образом? А это уже задача разработчиков приложения - продумать схему бд, как изменяющиеся данных хранить, что хранить, сколько и так далее
>>963468 Я бы тебе конечно мог подробнее объяснить чем именно плох этот урок от кантора и что в нём столько же абстракций как в выразительном JS, но мне реально просто лень. Чего стоит только то, что Кантор ЧЕТКО не говорит что эти медоты toString и ValueOf при написании становятся какими-то служебными и язык начинает использовать их при преобразовании объекта в примитив, ну ладно, это ещё можно понять самому. А вот КАК именно происходит это преобразование, автор почему не не описывает, тут уже я наверное должен свое воображение подрубать. Почему автор приводит примеры только тех объектов, в которых одно свойство (кроме методы), а как будет работать если их там несколько? И как вообще происходит алгоритм работы, инфы просто ноль...
>>963807 Ну а если в объекте несколько свойств, то как это будет работать? Почему оно вообще работает если функция возвращает только одно из свойств объекта на наш выбор (в коде функцией возвращается только firstName). Оно как-то само понимает и применяет это ко все остальным свойствам или что?
>>963810 Ну там же по русски написано. По умолчанию для любого объекта будет [object Object] а когда ты сам пропишешь собственный toString то будет выполняться он
и что ты туда загонишь - то и будет выдавать можешь возвращать для объекта "идите в жопу" вот он и будет выдавать "идите в жопу"
>>963818 Что именно я должен внимательно читать? Написано: >Если в объекте присутствует метод toString, который возвращает примитив, то он используется для преобразования.
Откуда я должен знать что туда можно ещё что-то вставлять кроме свойства массива? А также на предыдущий ответ о том как в принципе работает этот метод - ответа нет. Также как и о том как будет работать если в объекте несколько свойств, если возвращать только одно, то какой в этом смысл, вернется только fullName, а с остальными свойствами что будет, где об этом инфа?
> Откуда я должен знать что туда можно ещё что-то вставлять кроме свойства массива? WAT? > Если в объекте присутствует метод toString, который возвращает примитив, то он используется для преобразования.
вот мы и делаем этот метод toString в котором возвращаем примитив - строку.
Тебе же пример в учебнике написали, в котором Кантор решил вернуть свойство если будет строковое преобразование. Вернуть одно свойство - это его собственное решение. Как по ссылке выше наше собственное решение выводить "идите в жопу" если будет строковое преобразование. Нам хочется чтобы этот объект вместо стандартного [object Object] виделся именно так: "идите в жопу", а Кантору захотелось чтобы выводилось fullName в его объекте
> а с остальными свойствами что будет? Ниче со свойстввами не будет - будут спокойно ждать своего часа (обращения к себе). Если хочешь можешь точно так же их добавить в строку вывода.
this just inАноним30/03/17 Чтв 22:03:12#142№963892
https://github.com/fuse-box/fuse-box Вебпак уже не нужен. Потянул смузи >FuseBox 0.234s >Webpack 1.376s Сходил на митап >Simple example using React with babel (compiles in 50ms!) Портанул проект на yarn Каковы ваши оправдения не использования фьюзбокса в 2017 A. D, старичьё?
Ребят,такая проблема: спиздил аудиоплеер и теперь нихера не могу понять,как мне сделать так,чтобы звук устанавливался для каждого объекта(песни).При включении какой-либо песни,а потом переключения на другую ползунок идёт только у той,которая добавлялась последняя Что в странице с аудиозаписями: <div class="audios_list"> <div class="player"> <? $result = mysql_query("SELECT FROM `audios` WHERE u_id = ".$id." ORDER BY id DESC"); while($row = mysql_fetch_array($result)) { $author = $row['author']; $song = $row['song']; $path = $row['path']; $u_id = $row['u_id']; $a_id = $row['id']; ?> <audio id="<?echo$a_id;?>" ontimeupdate="updateTime()"> <source src="/user/audios/<?echo$path;?>" type="audio/mp3"> </audio> <div id="songPlay" onclick="play('<?echo$a_id;?>')"></div> <div id="songPause" onclick="pause()"></div> <div id="songPlayPause" onclick="playPause('<?echo$a_id;?>')"></div> <div id="songTime">0:00 / 0:00</div> <div id="songName"><b><?echo$author;?></b> - <?echo$song;?></div> <div id="songSlider" onclick="setSongPosition(this,event)"><div id="trackProgress"></div></div> <div id="volumeMeter" onclick="setNewVolume(this,event)"><div id="volumeStatus"></div></div> </div> <?}?> </div>
Что в файле .js: $(document).ready(function() { $(function(){ var activeSong; //Plays the song. Just pass the id of the audio element. function play(id){ //Sets the active song to the song being played. All other functions depend on this. activeSong = document.getElementById(id); //Plays the song defined in the audio tag. activeSong.play();
//Calculates the starting percentage of the song. var percentageOfVolume = activeSong.volume / 1; var percentageOfVolumeMeter = document.getElementById('volumeMeter').offsetWidth percentageOfVolume;
//Fills out the volume status bar. document.getElementById('volumeStatus').style.width = Math.round(percentageOfVolumeSlider) + "px"; } //Pauses the active song. function pause(){ activeSong.pause(); } //Does a switch of the play/pause with one button. function playPause(id){ //Sets the active song since one of the functions could be play. activeSong = document.getElementById(id); //Checks to see if the song is paused, if it is, play it from where it left off otherwise pause it. if (activeSong.paused){ activeSong.play(); }else{ activeSong.pause(); } }
//Updates the current time function so it reflects where the user is in the song. //This function is called whenever the time is updated. This keeps the visual in sync with the actual time. function updateTime(){ var currentSeconds = (Math.floor(activeSong.currentTime % 60) < 10 ? '0' : '') + Math.floor(activeSong.currentTime % 60); var currentMinutes = Math.floor(activeSong.currentTime / 60); //Sets the current song location compared to the song duration. document.getElementById('songTime').innerHTML = currentMinutes + ":" + currentSeconds + ' / ' + Math.floor(activeSong.duration / 60) + ":" + (Math.floor(activeSong.duration % 60) < 10 ? '0' : '') + Math.floor(activeSong.duration % 60);
//Fills out the slider with the appropriate position. var percentageOfSong = (activeSong.currentTime/activeSong.duration); var percentageOfSlider = document.getElementById('songSlider').offsetWidth percentageOfSong;
//Updates the track progress div. document.getElementById('trackProgress').style.width = Math.round(percentageOfSlider) + "px"; } function volumeUpdate(number){ //Updates the volume of the track to a certain number. activeSong.volume = number / 100; } //Changes the volume up or down a specific number function changeVolume(number, direction){ //Checks to see if the volume is at zero, if so it doesn't go any further. if(activeSong.volume >= 0 && direction == "down"){ activeSong.volume = activeSong.volume - (number / 100); } //Checks to see if the volume is at one, if so it doesn't go any higher. if(activeSong.volume <= 1 && direction == "up"){ activeSong.volume = activeSong.volume + (number / 100); }
//Finds the percentage of the volume and sets the volume meter accordingly. var percentageOfVolume = activeSong.volume / 1; var percentageOfVolumeSlider = document.getElementById('volumeMeter').offsetWidth percentageOfVolume;
document.getElementById('volumeStatus').style.width = Math.round(percentageOfVolumeSlider) + "px"; } //Sets the location of the song based off of the percentage of the slider clicked. function setLocation(percentage){ activeSong.currentTime = activeSong.duration percentage; } / Gets the percentage of the click on the slider to set the song position accordingly. Source for Object event and offset: http://website-engineering.blogspot.com/2011/04/get-x-y-coordinates-relative-to-div-on.html / function setSongPosition(obj,e){ //Gets the offset from the left so it gets the exact location. var songSliderWidth = obj.offsetWidth; var evtobj=window.event? event : e; clickLocation = evtobj.layerX - obj.offsetLeft;
var percentage = (clickLocation/songSliderWidth); //Sets the song location with the percentage. setLocation(percentage); }
//Set's volume as a percentage of total volume based off of user click. function setVolume(percentage){ activeSong.volume = percentage;
var percentageOfVolume = activeSong.volume / 1; var percentageOfVolumeSlider = document.getElementById('volumeMeter').offsetWidth percentageOfVolume;
//Set's new volume id based off of the click on the volume bar. function setNewVolume(obj,e){ var volumeSliderWidth = obj.offsetWidth; var evtobj = window.event? event: e; clickLocation = evtobj.layerX - obj.offsetLeft;
var percentage = (clickLocation/volumeSliderWidth); setVolume(percentage); } //Stop song by setting the current time to 0 and pausing the song. function stopSong(){ activeSong.currentTime = 0; activeSong.pause(); } }); });
>>963891 Я вот сейчас видео-урок от кантора открыл по этой теме и там он прямо охуенно рассказал. Даже сказал что toString можно привязать к функции (вне объекта, просто функция) и он с ней будет работать точно также.
Котаны, нужен ваш совет. До недавних пор писал исключительно бекэнд, а тут внезапно потребовалось педалить ещё и фронт. Какую книгу/цикл статей можете посоветовать, чтобы в сжатые сроки уложить в голове кашу из жс, ангуляра и рактива? Сейчас каждый фикс превращается в жопную боль на весь день, потому что нет понимания, что и как там работает.
>>963891 https://learn.javascript.ru/constructor-new - лол, вот ещё одно подобие охуенной статьи. Сначала автор говорит что можно СОЗДАВАТЬ объекты через new. А теперь он сразу начинает работать с ВЫЗОВОМ функции через new. Как это работает я видимо должен сам додумать...
>>964019 >я видимо должен сам додумать... Ну конечно же нет, птенчик, не для того тебя мамка растила. Илюша должен был догадаться всё тщательно разжевать и в ебальце тебе отрыгнуть, плохой Илюша. Как закончишь листать Кантора, пиздуй сюда: >>963621
>>963927 >>964019 Открою маленькую тайну - функция это тоже объект И при вызове через new она не поверишь, но тоже возвращает объект. Таким образом она СОЗДАЕТ объект через new. И да, все это написано у него в учебнике, просто научись вдумываться в то, что написано - полезный навык. А не сидеть и рассказывать что тебе не доходит то, что до других дошло. Как жеж так, видимо всемирный заговор, не иначе.
Кроме жирного жирного гуру Кайла никто больше по хардкору за язык не поясняет на видео. Советую пройти на рутрекер и качнуть оттуда все его разговорчики с frontend masters.
Посантрэ, кто в редаксе волочет, секи сюды! Вопрос такой, если у меня приложение использует комбайн редьюсерс и экшен креаторы лежат по разным файлам как согласно бест практис вызвать экшен креатор из файла2 в экшен креаторе 1 из файла1? На ум лезет банальное импортирование и вызов, но уверен, что когда доки читал видел какой-то родной редаксовский механизм для этого? Может мое воображение разыгралось и это лишь ветер, а может нет. Кто подскажет?
>>964095 >уверен, что когда доки читал видел какой-то родной редаксовский механизм для этого? Может мое воображение разыгралось и это лишь ветер, а может нет Перечитать религия не позволяет?
>>964110 Ебанфал нахуй? Всю доку перечитать? Откуда этот припездок здесь взялся? Попросите-с его нахуй, пожалуйста. Видимо какой-то обиженный непрвозмог, ныне грузчик, теперь срет в треде.
суп. Есть короче класс MobileDetecter который использует https://hgoebl.github.io/mobile-detect.js/ и помимо свойства this.md = new mobile-detect(navigator.userAgent) делает свойство this.isMobile = this.md.mobile(); как считаете, насколько это плохая идея не использовать в потомках this.md.mobile() а юзать для проверок this.isMobile() ? Что уже не является библиотечным методом к которому все привыкли. За такое в офисе мне не наебашили бы ?
Подскажите в чем разница межу калбэками и промайзами? У них же принцип вроде одинаковый. А что из них лучше? Например: function atas() { blabla; huyhuy; }
>>964915 Если функция асинхронная, то твой колбэк вызовется в случайный момент времени и поломает код, в то время как промис вызовет следующую функцию тогда и только тогда, когда выполнится предыдущая.
Поясните, зачем фронтендеру реакт и редакс? Я тут на ангуляр перешел, так он хорош только повторяющиеся списке из жс вызывать, сокращая разметку и то неизвестно, как это совмещать со списками, формирующимися из бд.
>>965397 >ecmascript 6 уже овер 700 страниц, против 250 первоначальных так эта хуйня и будет расти добавляют всякий функциональный сахар, сохраняя всякое легаси в стандарте хоть что-нибудь оттуда выкинули? нет
>>965412 Вот я тебя и спрашиваю как, еблан тупой, если эти данные из ангуляра передаются. Каким образом я их из сервера передам списком в жс скрипт. Еблан туопй, все жаваскритпчики обмазывающиеся своими еба фреймворками - ебланы тупые, их фреймворки только костыли плодят.
>>965426 К тебе приходит запрос. Ты его обрабатываешь и выдаешь ответ в виде json. Все, клиент его обрабатывает и рисует своим еба-фреймворком то, что ему надо отрисовать.
>>965426 Отец твой, еблан тупой, животное. Заебали вы со своими маня, ну такое и прочими фразами вырожденцев, деревенщины залетные. Нахуй пошел. Подумай головой хоть раз, как у тебя вообще сервер и приложение за прокси=сервером обрабатывает запросы с клиента.
>>961365 (OP) охуенную игру я придумал: я вам кидаю код, который мне кажется, я написал как индус, объясняю чего я добивался, а вы мне говорите как мне его изменить. А то мне чет тошно на него смотреть
короче есть SPA и на нем есть страница с работами, html для которых генерится из jade файла так вот в целях сео, заказчик попросил страницы с работами разбить на отдельные как то walls.html/floor.html/bathroom.html я не долго думаю запилил проверялку location и в зависимости от ее содержимого передаю jade файлу не все работы а только нужные на данной странице ( все если на главной )
кто нить может подкинуть идей как сделать метод createTemplate посимпотишнее ?
>>965530 Ах да, забыл добавить, желательно, чтобы бекенд фреймворк был прост и в то же время эффективен, как и сам Vue. >>965533 Говорят Го прост в изучении, но все же предпочтителен JS бекенд. Или js на бекенде все не лучшая идея?
>>964915 >Подскажите в чем разница межу калбэками и промайзами? Промис - попытка сделать сделать работу с асинхронным кодом (колбеками) похожей на синхронный код. Использование промисов предотвращает callback hell, делает асинхронный код читабельным, дает возможность обработки ошибок в catch. Развитие идеи промисов - генераторы и async/await.
>>965226 Компилятора в вебасм вроде нет, и не должно быть, и реализовать такое очень сложно, а работать оно будет все равнот медленей того что собирали из C.
Кто-нибудь может доступным языком объяснить что такое статические/фабричные методы и для чего они нужны? Зачем вне функции добавлять в её объект свойства? Читал Кантора, нихуя не понял, он как-то слишком резко темы переводит и по какой-то причине считает что ученик должен улавливать его различные не очевидные порывы в заданиях и объяснениях.
Не пойму например почему count передаваемый объекту функции не обновляется при её вызове? Т.е если мы извне функции назначаем в её объект свойство, то на него не влияют повторные вызовы и оно не переназначается?
>>966170 Count висит грубо говопя на функции, точнее на конструкторе, т.к. фкнкция Article является конструктором, о чем говорит то, что она с большой буквы начинается. Count вынесен на конструктор, а не в него, потому что количество статей не относится к какой-то отдельной статье. Когда мы создаем экземпляр (вызываем через new) количество увеличивается на один При showcount просто его выводим.
>>966178 Ну так и нахуй это надо? Просто чтобы создать независимую переменную которая не обнуляется при повторном запуске функции?
Я тут пытался понять и вспомнить как работают функции. Т.е значения в их объект можно записать извне, но при этом нельзя извне как-то вызвать? Зато если этот func.value присвоить вне функции, то он будет читаться и в функции, и вне её. Как это понять вообще?
>>966229 Кк понял. А почему записывая func.value я потом просто не могу получить переменную написав просто value? Т.е func.value записывается в какой-то другой объект, а не в объект лексического окружения?
>>966235 Нет, не понял. Вот этот чувак норм написал >>966233 хорошая аналогия. Пока ты не вызвал функ у тебя ничего никуда не присвоилось. А ты хочешь что-то взять. Как можно взять то, чего нет? Никак. Поэтому у тебя андефайнд. Я спать, если будут вопросы завтра может отвечу
>>966247 Т.е если мы извне назначаем объекту функции свойство, то оно доступно и без её вызова? Суть такого назначения в том чтобы это свойство привязывалось к функции и при повторном её вызове никак не изменялось? Ну если напрямую в функции назначить Article.value = 0, то при каждом вызове функции значение бы сбрасывалось в 0, а при таком внешнем назначении оно остается таким же каким было на момент предыдущего запуска функции. Раньше вроде бы подобные переменные (в уроках Кантора) создавались при работе одной внешней функции, в которой записывались подобные "неизменяемые" переменные и другой внутренней функцией, которая как раз эти переменные использовала.
А вот с методами я чет уже не понял совсем. Зачем их делать статическими. Код на первом и втором пике вроде работает одинаково и выдает один и тот же результат. Т.е нафига записывать метод в функцию извне если он итак будет работать?
Возможно я опять нихуя неправильно всё понял. Но что-то совсем запутался с этими функциями, замыканиями и тем как работают функции. Хотя вроде только совсем недавно делал по задания и читал темы, всё было понятно.
Почему когда мы в общем коде напишем value = 5 и это будет считаться свойством глобального объекта window, то мы можем вызывать этот value без window.value , а когда в обычной функции (которая такой же объект) мы этого делать не можем?
>>966273 он не видит разницы между пропертью и переменой в глобальном скопе. и не может понять, что глобальный скоуп(как и любой другой) это тоже объект.
>>966272 Ну я вот вопрос выше задавал. Т.е у функции 2 объекта в которые она записывает свои значения или че? 1 - это лексическое окружение (LexicalEnvironment) в которые попадают все переменные. 2 - это просто объект которому можно задать свойство. ?
Как защитить шиндоус от засирания, да и вообще как-то организовать всё? Ставил scoop. Удобненько отсортировалось, но yarn всё равно вылез за пределы и серанул в папку пользователя. Веб приложения это вообще пиздец. Поставил vs code,hyperjs, да и вообще что-то посмотреть, так они постоянно всё засирают в папке юзера, создавая свои файлы и папочки для зависимых пакетов и т.д. Можно это вот всё чтобы лежало по своим отдельным папкам?
Справедливости ради в window всё работает и вызывается. А в внутренней переменной которая тоже объект - нужно вызывать только через точку? Какое отношение к этому имеет логика, если по логике и то и другое должно работать одинаково ибо это объекты. Но челик выше сказал что глобальный объект он немного другой, поэтому через него это возможно. Ну ок, тогда вопросов нет.
Так четкий ответ будет, не? Лексическое окружение это один объект в который записываются переменные. А при назначении через func.value = 5 мы просто назначаем в свойство объекта func значение?
>лексическое окружение - это лексическое окружение. Ну т.е это как бы другой объект, правильно?
Т.е грубо говоря функция при создании создает в своем объекте свойство LexicalEnvironment: {} - у которого значение это другой объект в который уже записываются переменные функции. Когда мы вызываем func.value то обращаемся к объекту функции, а не внутреннему объекту, поэтому это по сути разные 2 объекта, один в другом.
>>966298 Лексические окружения вложены друг в друга до глобальной области видимости, и ни какого отношения ни к каким другим объектам не имеют. Ты слишком тугой.
>лексическое окружение - это лексическое окруение Охуенное объяснение. Лексическое окружение это объект в который записываются локальные переменные, аргументы (так написано у кантора).
Но записывая func.value = 5 , то чем является это свойство value? Свойством объекта лексического окружения или просто свойством объекта функции?
>>966311 Ну если ты не тугой, где находятся эти лексические окружения? Лексического окружение это объект который создает для себя каждая функция, понимаешь?
>>966317 >лексическое окружение - это лексическое окруение. оно наследуется вверх, вплоть до лоальной области видимости.
Где здесь ответ на вопрос - "чем отличается LexicalEnvironment от основного объекта функции?"
>наследуется вверх По моему челик даже сам не уверен разбирается он в этом или нет. Наследуется не лексическое окружение, а ссылка на лексическое окружение объекта "уровнем" выше. У функции ссылка (скоуп) на объект window. У внутренней функции объект на внешнюю и так далее. Где ты здесь увидел ответ на мой вопрос я даже не ебу.
>>966321 > на объект window Ты хоть понимаешь, что может не быть никакого объекта window? Понимаешь, что глобальным объектом может быть совершенно любой объект, и его еще можно поменять?
>>966321 >Где здесь ответ на вопрос - "чем отличается LexicalEnvironment от основного объекта функции?" Ты болен чем-то? Тебе пятнадцать раз сказали - это разные объекты, они ничем не схожи. Объект функции - это блядь сама функция. Она и есть объект сама по себе. Лексические окружения - это окружения блядь, вложенные друг в друга иерархией. Если тебе не нравится пояснение, что симаская кошка - это такая кошка, то проследуй решительно нахуй. Объяснять тебе азы никто не обязан. А если ты настолько идиот, что не сумел за все это время нагуглить ответы на свои глупые вопросы, то я не понимаю, что ты до сих пор пытаешься тут изучить. У тебя нет будущего в этой сфере. У тебя все очень плохо с абстракциями.
Ты блядь продолжаешь задавать идиотские вопросы утверждая, что тебе ничего не пояснили.
Короче, аноны, сегодня получил работу - фронтенд джуниор, выхожу через неделю. Но суть в том, что собес я прошел неплохо, но на деле просто спрашивали довольно банальные вещи, типа замыканий, прототипов, етк. Так вот, дело в том, что я js изучаю ну от силы месяца 3-4. Ничего серьезного не писал и толком то не умею даже вебпаком пользоваться и всякими такими фичами, не говоря уже о фреймворках а работа кстати на реакте предстоит, как я понял. Они спрашивали об этом - я честно сказал, что опыта нет. Короче, подскажите с чего начать изучение, чтобы совсем не обосраться на месте.
>>966266 Бамп данному вопросу. Вот нашел видосик даже в котором Кантор всё доходчиво объясняет (зато на сайте хуй поймешь). Но тут только про статические переменные.
>>966266 >Возможно я опять нихуя неправильно всё понял Пиздуй уже книжку наверни нормальную, сука. Уж насколько джс простой язык, так ты и в нем нихуя не понимаешь.
Котаны, помогите убогому мне. Учусь по учебнику с javascript.ru Вопрос по основам самым. То ли я туплю, то ли не очевидно написано. Но - не пойму как работает директива return в функциях. Вот накатал простейшее условие: https://jsfiddle.net/4mn4r1qn/1/
вот цитата из учебника: "Функция может возвратить результат, который будет передан в вызвавший её код." или "Она может находиться в любом месте функции. Как только до неё доходит управление – функция завершается и значение передается обратно."
На примере моего скрипта можете обьяснить куда можно воткнуть return, куда будет возвращено значение при этом? Туплю блин аж раздражает.
>>966725 А на счет инициализации. Если я этот метод сделаю как просто вложенную функцию в конструкторе Article, то эта функция будет инициализироваться каждый раз при создании нового объекта new Article() ? И если делать через статический метод, то он инициализируется всего 1 раз, правильно?
Уважаемые програмисты, хочу тут написать ебучий кубик рубика тридэшных в канвансах. Посоветуйте какой фреймворк юзать, чтоб с этим было не так много ебли.
>>966648 >Т.е вся суть статического метода функции в том, что его можно запускать даже тогда когда функция не была запущена?
Нет. Ты снова ничего не понял. Суть совершенно не в этом. Твой статический метод showcount объекта Article это точно такая же функция, как сам Article, которая может быть его методом, а может и не быть. showcount это поле объекта Article. Article - это callable object.
В js нет функций. В js есть объекты и примитивы. Функция в js - это callable объект. Который может быть еще и конструктором (то есть при вызове callable object в качестве конструктора будет создан новый объект, который станет контекстом). Методов у объектов нет. У объектов есть поля, в них хранятся ссылки на другие объекты или примитивы. Если в поле хранится ссылка на callable объект, то она иногда может выступать в качестве метода объекта, который на нее ссылается. Но может и не выступать.
Нет никакой разницы принципиальной между методом\функцией\объектом. Это все есть объекты, с разными свойствами. Но ты почему решительно пытаешься их сегрегировать.
Твоя проблема в том, что ты совершенно не понимаешь сути объектов в js, и пытаешься понять все задом наперед.
Вот когда ты поймешь дзен объектного программирования, тогда ты перестанешь спрашивать про суть. А точнее ее выдумывать. И плодить последующие неправильные вопросы.
Пойми, что твое непонимание базовых принципов, порождает у тебя массу неправильных суждений в будущем. По всей ветке легко наблюдается, как ты в одном месте говоришь, что что-то понял и сразу следом задаешь вопрос из которого видно, что ты не понял ничего абсолютно. Прекрати мучить людей в треде. И себя. Или пройди курс, прочти книжек, или найди ментора, если у тебя не получается в самообучение.
>>966761 >Твоя проблема в том, что ты совершенно не понимаешь сути объектов в js, и пытаешься понять все задом наперед.
Бля а как я могу что-то понимать если я изучаю язык по Кантору и он там говорит что вот есть функция, а вот объект. А если свойство объекта это функция - то это называется методом. Я чисто физически не могу иметь другого представления о языке потому что мне его не давали по ходу обучения (уроков Кантора).
>>966769 Мне кажется эта хуйня не предназначена для этого. Это как игра на css, лол. Она есть, но только для того чтобы была хотя бы одна игра на css, то есть не благодаря, а вопреки.
>>966774 Нечего тебе вбрасывать. Потому что нет в js никаких статических методов. Сколько тебе можно объяснять?
Статическим методом можно при большой натяжке назвать поле,в котором лежит ссылка на callable объект, а на поле навешен дескриптор запрещающий его изменять. Или объект заморожен. Вот тогда он тебе будет статическим.
Ты просто не хочешь понимать что нет разницы между function a() {} и методом a.x()
и объектов b = {} и методом b.y()
Методы это просто блядь поля. Сейчас у тебя в поле функция, а через секунду там может быть примитив. Тут нет никакой статики. Тут нет даже классов. Классы в js это просто цепочка ТЕГОВ на цепочку прототипов из объектов. Классы не статичны как в других языках. Тут вообще ничего не статично, если специально это не сделать. Тут сплошная динамика.
>>966772 Язык лишь средство для отражения той или иной методологии программирования. В каждом языке заложены те или иные возможности, чтобы писать с использованием определенной парадигмы. JS динамический мультипарадигменный объектный язык программирования. Ты вполне себе можешь писать на нем в процедурном стиле, используя функции как функции, а объекты, как ассоциативные массивы. Можешь писать в функциональном стиле. Можешь в объектном. Но в КЛАССОВО-ОБЪЕКТНОМ так как это принято в мейнстримовых энтерпрайзных языках если и можешь, то только с большим трудом. JS прототипный язык.
Прочитай Алана Кея, посмотри на Smalltalk. Постигни что такое когда все есть объект, а вместо методов есть только сообщения.
JS несет в себе именно эти концепции, только сильно урезанном виде. В нем помимо объектов есть примитивы, а из сообщений есть всего-лишь get\set\call и еще несколько служебных.
>>966803 Нет. Примитивы в js это примитивы. А еще в js есть императивные конструкции, которые являются исключительно синтаксическими конструкциями, а не объектами : циклы\операторы\блоки кода\етк - все это в js не объекты. Могли бы быть, но увы, нет.
>>966822 Но ведь ты не прав. Спецификация есть. В ней написано черным по белому, что в js ровно шесть примитивных типов, которые не являются объектами. При этом только из четырех из них есть враппер, для вызова методов из прототипа.
Ты же не понимая этой простой вещи, пытаешься заявлять обратное, основываясь на чем, извини, кроме собственного невежества?
>>966828 >x = 'ты хуй бля' >x[2] = 'ы' Лол, это будет работать ващет, если ты не с осла сидишь. Null это вообще ничто, указатель на пустоту. Тут называется примитивом все, что копируется по значению, так что это хуита.
Зачем тогда Кантор называет это статическим методом и статическими переменными если их нет? Я хочу понять в чем разница между статическим методом и обычным в КОНТЕКСТЕ объяснений Кантора. То что разницы в общем нет - ок.
>>966846 >Зачем тогда Кантор называет это статическим методом и статическими переменными если их нет? Это калька с других языков. Возможно, он это делает чтобы людям было удобнее воспринимать информацию, полагаясь на то, что они уже знакомы с какими-то ЯП, в которых действительно есть статические вещи. Делает он это, конечно, зря.
> в чем разница между статическим методом и обычным в КОНТЕКСТЕ объяснений Кантора У "статического" метода this - это сам класс. У обычного метода, this - это инстанс класса.
>>966856 >У "статического" метода this - это сам класс. >У обычного метода, this - это инстанс класса. Теперь наконец вот этот момент стал намного более понятен (не понятен) ((понятен)). Вроде ничего сложного нет, но из-за всей хуйни я запутался и каша в голове. Нужно видимо действительно данные книжки почитать ибо мне кто-то говорил что там ультра-годнота для нубов.
>>966868 >из-за всей хуйни я запутался и каша в голове Просто, при изучении разных языков, очень вредно таскать\проецировать парадигмы из одних на другие. Но, большинство не умеет иначе как изучать новое на примерах того, что уже изучено. Именно поэтому в js сейчас натаскали кучи синтаксического сахара, который делает его похожим на другие, привычные многим, языки. Хотя на самом деле он таковым не является. И очень печально становится, когда человек застревает в этих вот рамках восприятия. Хотя, конечно, ничто им не мешает вот так застряв писать с использованием языка, совершенно не понимая до конца как он устроен. Именно по этой причине многие хаят тот или иной язык\технологию\вещь - потому что они хотят, чтобы было вот так, как они там где-то привыкли. а тут на самом деле все иначе.
Я не знаю, как там объясняет Кантор сейчас, я помню его статьи еще лет 10 назад только, когда у него и не было курса как такового и он там спеки переводил. Но, вполне может быть он подает информацию используя привычную устоявшуюсь терминологию для каких-то вещей, хотя на самом деле эти вещи тут не такие как в других местах.
Главное не зацикливаться, и стараться смотреть шире.
>>966886 Если пытаться изучать js в параллель с каким-нибудь php или питоном, то может будут очевиднее различия. (лучше наверное php, ибо там более стандартное ооп, в питоне такое же прототипное как и в js). В php есть все эти вещи как нормальные классы, интерфейсы, статические методы и переменные, вот это все. А прост он так же как и js. Да и связка вполне себе полезная. Можно конечно и более серьезные, будь то java\плюсы\шарп\етк. Можно вообще начать с чисто процедурных вещей и без всякой динамики (там эти все си\паскаль\go отчасти), а потом повышать абстракции. Можно понижать. Тут не угадаешь, как удобнее, это всегда индивидуально.
Но главное не застрять на каком-то месте. Очень сильно бытует мнение, что если человек изучил какой-то "не тот" язык первым, то он и не сможет уже нормально изучить остальные. Но это не так. Этот стереотип именно из-за той вещи о которой я писал. Людям сложно перестраивать абстракции. Но программист без гибкого абстрактного мышления не более чем макака же.
Писать ты можешь преимущественно на чем угодно (что нравится\за что платят\что-то еще). Но это не исключает твоей профессиональной обязанности понимать принципы и различия разных прочих областей.
>>966903 Я конечно не имел ввиду, что он точно такой же. Но он ближе к js, чем php, например. А чтобы почуять разницу между действительно классовым ооп, без всякого метапрограммирования, и динамическим (будь он от js\ruby\python) питон не подойдет. Классы в питоне такой же примерно сахар как и в js. В остальном там все та же динамика, делегирование вместо копирования, классы как объекты и вот это все. Да, там нельзя выстраивать произвольную цепочку прототипов не используя классы. Но учитывая, что классы там вполне себе объекты, это сахарное деление на классы-объекты и инстансы-объекты.
Не холивара ради. Я уже несколько раз пытался учить джаваскрипт. в принципе, фрустрация начинается сразу, как только я приближаюсь ко фронтенду. Да, джаваскрипт разработчики делают красивые вещи, бывает, спасибо им за это
но вот все эти недоразумения типа ES5-8, охуительные выкрутасы с генераторами (для эмуляции, пока их в язык не завезли, async/await-ов), наличие охулиарда языков, компилирающихся в джаваскрипт, прорва подходов для отсылания формочек на бек, сделанных вчерашними студентами на коленке? Кросбраузерная несовместимость - код, котоырй пишет наш фронтенд под хром, больше по сути нигде не работает. Какая-то хуева куча бойлерплейта во всяких реактах - видел один проект своего знакомого - там какой-то ад.
Как вы блять живете то ? Я что, что-то не так понимаю, или у вас вся жизнь - это действительно вот этот вот блядский цирк? Каждый раз, когда я подхожу к выбору инструментария для написания js , я использую jquery, плачу от убогости получившейся лапши и выкатываю в продакшен. Просто потому что все остальное такое ебанутое, грузящее и непонятное, а самое главное устаревает уже завтра.
>>967197 Ты СОВЕРШЕННО не понимаешь в чем суть JavaScript. JavaScript это не раби «о, привет чуваки, зацените я слепил три гема и получился блог, гыгы». JavaScript это не псевдофункциональный код питона. JavaScript это не C#, Джава или ПХП. JavaScript это язык, на котором люди могут побыть программистами-творцами — ужасными, поехавшими, ненормальными чудовищами, которыми они на самом деле и являются.
Добавили промисы, а мы смеемся. Присыпали сахаром прототипы и назвали классами, а мы смеемся.
Три тимлида прыгнули с крыши 16-этажного дома, взявшись за руки после попытки разгрести код с тридцатикратной вложенностью, а мы смеемся и просим еще. Промисы, колбэки, асинки/авайты — мы смеемся. Модульность, асинхронность, непрерывная интеграция, юнит-тестирование, key-value хранилища, два десятка фреймворков на любой вкус — мы смеемся. GitHub позволил писать приложения на десктопе, запихивая в каждый хеллоуворлд отдельный браузер — мы смеемся. Мы бездушно подпишемся под чем угодно, наши предпочтения не основаны на здравом смысле, бесцельные споры — наша стихия, мы — истинное лицо современного IT.
>>967197 >Как вы блять живете то ? Бухаем, упарываем >устаревает уже завтра а вот это уже чистый пиздеж >Кросбраузерная несовместимость хуйня, высосанная из пальца >наличие охулиарда языков, компилирающихся в джаваскрипт тебя никто не заставляет их знать, обычно они выбираются под проект, чтобы не тратить время спецов на другой, более уёбищный, дизайн языка >хуева куча бойлерплейта во всяких реактах как и в любом другом фреймворке на любом другом языке, который работает с ui
>>967260 >а вот это уже чистый пиздеж В 2010 меня агитировали за ExtJS, В 2013 - за ангуляр, в 2015 - за эмбер и в 2016 за реакт. Сегодня за Vue. Я не поспеваю за вашими новыми историями, уж извини >хуйня, высосанная из пальца Наверное именно потому наш ахуительный проект не работает в сафари, но работает в хроме. Потому что проблемы нет, а мы тут все дебилы сидим. Кек. >тебя никто не заставляет их знать, обычно они выбираются под проект ну то есть решил сменить проект - все начинай по новой. Красиво. Это я уже не говорю о том, что группа поехавших до сих пор продвигает кофийскрипт, который ну просто невероятно уебищен и не нужен. >как и в любом другом фреймворке на любом другом языке, который работает с ui там явно было больше, чем надо нормальному человеку. Хотя я допускаю, что он дебил, но таких дебилов сколько ходит по земле и сколько дает советы на стековерфлоу?
>>967269 >В 2013 - за ангуляр, в 2015 - за эмбер слоупоки какие-то >новыми Этим новым уже лет 5-6. Вот велосипеды-клоны реакта да, выросли как на дрожжах. Но там принцип один и тот же везде - компоненты и неизменяемое состояние приложения > потому наш ахуительный проект не работает в сафари > сафари Эта хуйня на устаревающем вебките сейчас тащится где-то на уровне эксплорера >решил сменить проект - все начинай по новой схуяли ты сделал такой вывод, жопочтец? Это значит что пишут чуваки на скале - пилят фронт тоже на скале кто-то хуярит на рубях - чтобы не ебаться и фронт на кофе пилят аналогично с тайпскриптом, closure, etc >невероятно уебищен это js невероятно уёбищен, если бы автор не был упрямым и принял коммиты, добавляющие аннотацию типов - он был бы идеален >надо нормальному человеку хуяк-хуяк и в продакшн?
>>967290 >Этим новым уже лет 5-6 тащемта какой нибудь vue , ангуляр 2 - это свежие истории. Ну не суть. >Эта хуйня на устаревающем вебките сейчас тащится где-то на уровне эксплорера ты не бойся, в фф оно тоже работает через раз и куча страниц не работают так как надо. >кто-то хуярит на рубях - чтобы не ебаться и фронт на кофе пилят вот я на рубях хуярю. Во-первых, кофескрипт на раби не похож, во вторых он уебищный, в третьих - он реально уебищно парсится. Мало того, что он парсится в довольно неэффективный код в угоду синтаксическому сахару, так там еще и конструкции языка можно написать так, что оно ебнется с совершенно невнятной ошибкой. Опять же, видел как наш фронт написал if с ошибкой и около часа ебался с какой-то просто невероятно невнятной ебаниной в консоли. Это не смешно. >хуяк-хуяк и в продакшн? погоди, погоди, погоди сначала ты говоришь, что бойлерплейт - это неотъемлимая часть любого ui потом говоришь, что кому то многовато бойлерплейта, написанного, блять, руками - это плохо и говоришь "хуяк-хуяк и в продакшн". Родина дала гигагерцы, терабайты и кучу ЯП под все это, а вот эта хуйня из браузера хочет, чтобы я вот это вот писал руками.
>>967309 > фф оно тоже работает через раз и куча страниц не работают так как надо >видел как наш фронт написал if с ошибкой и около часа ебался с какой-то просто невероятно невнятной ебаниной хуя у вас там говнокодеры >погоди, погоди, погоди специально жопой читаешь?
Пацаны, помогайте, я обращаюсь к локальному пхп файлу через XMLHttpRequest с Гетом, а он его не экзекутит, а просто возвращает весь текст файла через респонс.
>>967660 лол, до функций я еще даже не дошел, так что не удивительно что я не понял о чем идет речь. а вообще, как не удивительно, этот мемас довольно известный даже среди людей не разбирающихся в теме
>>967750 Ну в математике же ты знаешь функции? Вот когда значение функции от аргумента равняется последовательности значений функции от меньших аргументов - это рекурсия, например факториал
>>967761 >Ну в математике же ты знаешь функции? нет, я бросил школу в 16 лет, после того как меня два раза выгнали за прогулы. вообще, с математикой я не очень дружу, и считаю что именно из-за этого я тупой, так что твой пример вряд ли дойдет до меня
>>967269 >>ангуляр учится за пару дней >> Vue учится за пару дней >>Наверное именно потому наш ахуительный проект не работает в сафари Так было задуманно изначально ,это интеллектуальная защита от пидорасов встроенная в джаваскрипт >>967215 >Добавили промисы, а мы смеемся. сука че за промисы блять?Походу придется гуглить
>>968065 >>в 2013 Все просто супер,получаю 7к евро за свою первую игру на флеше и еще не знаю что мне придется перекатываться в ебаный веб чтоб заработать.
>>968087 пару дней достаточно чтоб написать приложение а большего с тебя и не потребуется ибо клиент ммо с функционалом ААА тайтла с тебя никто не спросит
>>968246 спасибо, я настолько тупой что забыл о том, что существует английская версия. альза, благодаря своей тупости впервые воспользовался тайм машиной.
Парни, копирую лэндинг wget-ом, но некоторые скрипты в скопированном сайте не работают.
Заметил, что в оригинальном лэндинге при некоторых кликах или ховерах изменяются названия классов в реальном времени и подсвечиваются оранжевым в инспекторе. В моей копии такого не происходит.
Как сделать это и на своей копии? Знаю, что сайт сделан с помощью Muse.
Ребят, нид хелп Нужно динамически рисовать графы в браузере, пусть будет сафари То есть скрипт на питоне генерирует граф в json, а мне нужно по мере обновления рисовать его в браузере Раньше сильно с js не работал, можете подсказать хорошую библиотеку для этого? Желательно чтобы я мог еще задавать для рисовки расположение точек, потому что с каждым этажом графа число вершин растет
Скриптаны, поясните за модульные системы. Читаю выразительный джаваскрипт, и чето глава про них не совсем зашла. Нужно ли сейчас детально разбираться как работают вот эти вот CommonJs, AMD, RequireJs, или это уже потом по мере необходимости подхватывается? Если нужно, поделитесь ресурсом годным каким а?
Анонасики, есть два стула. На текущей работе намечается заниматься йоба приложухой на электроне, море жса и зп здесь х, второй стул это фронт на пхп бэкенде, море верстки, пхп шаблоны, дизайн еще и все такое, и зп тут 1,5х. Вроде как первое круче, но на второй бабок больше. Че выбрать-то блеа.
Пацаны, а вы учили эти всякие алгоритмы, структуры данных? И вообще, на начальном этапе для фронта это разумная трата времени? Что вообще из фундаментальных знаний просто необходимо, чтобы не быть макакой? Посоветуйте книжек короче.
>>969064 Алгоритмы и структуры данных очень полезны. Разберись с минимумом: О-натация, поиск (линейный/бинарный), сортировки (пока только простые - пузырьковая, вставками, выбором), структуры данных (списки, стек, очередь), сложные сортировки (быстрая, слиянием), хеш-таблицы, деревья, графы. Читать википедию, смотреть визуализации на YouTube. Можешь как раз на JS сам что-нибудь визуализировать, я визуализировал обходы графа.
>>969143 А что именно ты пишешь? Устанавливаешь jQuery-скрипты и верстаешь? Тут не то что в замыканиях, тут даже в программировании разбираться не нужно.
пацаны, реквестирую адвансед книжек по js/jquery/react чтоб не было на первых 100-300 страницах описаний как сложить два числа/добавить класс к элементу/отрендерить hello world
>>968376 Попробуй плагин к ff - scrapbook - не факт, что поможет особенно если какая-нибудь асинхронная подгрузка js через ajax, но шансов гораздо больше.
Сап, аноны. Решил вкатится в кодерство с JS. Интересует вот что: зная только, грубо говоря, JS можно ли заработать первые деньги? Или для того, чтобы как можно быстрее начать зарабатывать нужно начинать с PHP?
>>970503 >У нас было куча вкладок "какой язык программирования выбрать первым", пара мнений в пользу JS как первого языка, и еще столько же против. Не то чтобы это была вся необходимая информация для выбора языка, но если задался вопросом о первом языке, то становится трудно определиться. Единственное, что вызывало у меня опасения - это, что JS может оказаться не серебрянной пулей, а пулей из говна. Ничто в мире не бывает более беспомощным, безответственным и порочным, чем кодер задрачивающий язык непонять зачем. Я знал, что рано или поздно я продолжу капчевать.
В разделе про RHS и LHS ссылки не понял почему функция является RHS ссылкой: "Однако, едва заметная, но важная разница есть в том, что Компилятор обрабатывает как объявление, так и определение значения во время генерации кода, благодаря чему, когда Движок выполняет код, не требуется никакой обработки чтобы "присвоить" значение функции в foo. Следовательно, неуместно думать об объявлении функции как о присваивании с помощью LHS-поиска тем способом, который мы здесь обсуждаем."
Это вроде объяснение, но я что-то всё равно не пойму.
Поясните за Redux. Если с ReactJS все ясно, просто библиотека реализующая вьюшки. Беру старый добрый <script src и импортирую вавилон и реакт, но в примерах редукса одни ипорты и npm. Складывается впечатление что это библиотека для бэкенда и NodeJS, но если и так , тогда почему так часто встречается React/Redux ? Я могу написать АПИ на каком-нибудь Go, а на клиенте все сделать React/Redux ? Мне нужен какой-нибудь транслятор в ванильный JS типо браузерфлая ? Или я все еще могу как в старые добрые подключить локальную библиотеку явно и ссылкой ?
>>970913 >Модули в ECMAScript 6: будущее уже сейчас лол, шел 2017й, в JS открыли модули
ну норм, просто последний раз я JS смотрел год назад и там можно было все компиять, а сейчас как ? Ну и да, это же все новые стандартны, как их использовать если нужно еще друвнее говно поддерживать ?
Здрасте. Нужно записать данные в csv файл по ячейкам на node. Использую fast-csv и делаю так:
var ws = fs.createWriteStream("my.csv"); csv .write([ ["a", "b"], ["a1", "b1"], ["a2", "b2"] ], {headers: true}) .pipe(ws); В итоге данные записываются в один столбец через запятую. Т.е всё выглядит так: a,b a1,b1 a2,b2
>>971223 Ну открой файл блокнотом, что там записано? И что ты ожидаешь? Просто мне кажется что у тебя проблема с экселем который ожидает по-умолчанию для рашки там не , а ; и ее легко решить или в нодке или в экселе.
>>971242 Нет я уверен что проблема именно в рашке и ;. Я был уверен в этом с самого начала на самом деле лул и спросил вопросов просто чтоб поебать мозг человеку
>>971232 Похоже на то. Но если вставляю ["a" ; "b"]- код не выполняется. Подскажи, как быть? Я совсем не кодер, но понадобился небольшой скрипт, пытаюсь склеить его по гайдам.
>>971267 Бля, чувак, я понимаю что ; не катит т.к это синтаксис JS, но как ебануть это разделение для рашки другим способом- я хуй знает. Написал же, что опыта в программировании не имею ВООБЩЕ. Ты или подскажи, либо сразу нахуй пошли, пойду искать ответы в других местах, зачем устраиваешь тут клоунаду?
>>971290 >Doug Martin is the original author. This is merely a temporary fork to support alternate cell delimiters. Я закрыл нахуй после этих слов если честно. И в оригинальной библиотеке разделители уже есть, я сорцы чекнул.
Ёб вашу мать, как же мне БОМБИТ от этого вебпака. Ну ведь нормально же gulp-ом собирали, всё просто и понятно в виде конвейера, запомнил ТРИ метода и погнали. Захотел pluginname - поставил gulp-pluginname, и всё работает, хуярь как хочешь на чистом JS. Нет, хочу жрать говно, конфиги на пару тыщ строк, каждый плагин имеет собственную конфигурацию с хитровыебанными опциями, хуй-пойми-какое-очень-длинное-имя-о-котором-ты-никогда-не-догадаешься, даже в дефолтном вебпаке я ОХУЕЛ от количества опций, их же просто нереально все знать, ЭТО ПРОСТО ПИЗДЕЦ
Я правильно понимаю, что все современные фреймаорки типо реакта, ангуляра и тд работают по принципу аджакса, то есть асинхронно подгружают json и перерисовывают страницу без перезагрузки? В этом и суть SPA так называемых, что не нужно постоянно к серверу обращаться за новым htmk, а все делается на лету. Я просто только с ajax познакомился.
Посоны, разбираю чужую либу и встретил такую конструкцию function({row,rowId, index}, e) {} как ее блять победить? Как получить доступ к этим вот переменным, переданным таким способом, я думал просто позвав их по именам, но нихуя - андефайнед. И как называется этот тип передачи параметров на ангельском - почитаю хоть за ес6.
>>971651 >>971702 Да, это деструктуризация объектов, таки, хотя большая часть и МДН тоже, забыли блядь написать о такой операции как передача объекта через деструктуризацию. А либа - хуита, это она не возвращала значения, потому что уебок, что ее писал привел один пример для 20+ ивентов и именование для каждого ивента важно, потому на 19 его пример не пашет, как юзать остальные кроме описанного этот хуй нигде не написал. Бен Крипс - ссыте ему в рот. когда встретите.
>>971811 Не ведись, если что-то сложнее хеловорлда, то это пиздец. Я сегодня зол на реакт-редакс как никогда, забеало уже велосипеды писать, потому что за несколько лет, ни одно чмо не сподобилось что-либо предпринять. Из коробки нихуя нет, сообщество ничего путнего не делает - ебать, ебись как хочешь, на каждый чих пиши свои либы. З А Е Б А Л О.
>>971991 Стоит ориентироваться на производительность. forEach предполагает, что замен в коде будет много, в этом случае лучше один раз слепить html и один раз вставить его в код вместо того, чтобы много раз подряд менять DOM. Если что-то разовое, то не принципиально.
В Chrome DevTools есть вкладка Timeline, почитай про нее. По ней отлично видно, что в твоем коде при отработке занимаетс сколько времени, на это стоит ориентироваться.
Чет автора немного не понял, почему данное функциональное выражение не имеет замыкания? Ведь у функции есть свое лексическое окружение, которое пустует на момент её вызова. Но потом функция ищет переменную а, в области видимости "повыше" - в глобальной. Разве не так?
Есть один скрипт на питоне, который в процессе работы пишет в файл data.json Как сделать так, чтобы js брал информацию из этого файла и отображал ее на странице? Чтобы еще каждый раз как скрипт обновляет файл, изображение на странице менялось
https://jsfiddle.net/ewrdpLab/1/ Не понимаю, почему нельзя сохранить инфу из ajax-запроса в глобальную переменную, почему первый алерт делает то что должен, а второй выдает undefined
>>977517 Дело в том, что второй алерт, на самом деле - первый. жс не ждет когда закончится аджакс (АСИНХРОННЫЙ джс и хмл) и запишет его респонс в дата. Он просто идет дальше. привыкнешь. Кури промисы;)