Это копия, сохраненная 17 ноября 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Часто задаваемые вопросы:
https://github.com/vladimir37/js-thread/blob/master/Wiki/faq.md
Список материалов для изучения:
https://github.com/vladimir37/js-thread/blob/master/Wiki/learn.md
Список инструментов и направления JS-разработки:
https://github.com/vladimir37/js-thread/blob/master/Wiki/tools.md
Инструмент для визуализации и экспериментов со связями между объектами в JavaScript:
http://www.objectplayground.com/
Конфа /pr/ в Slack:
https://slack-2chpr.herokuapp.com/
JS-конфа в телеграме:
https://telegram.me/jsthread
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
Вопрос про React.
Как мне вытащить данные из локального файла? В примерах нашел про JSON, а если другое расширение?
>Промисы
не вдуплю что-то, почему после reject на 124 линии происходит срабатывание then и вывод на 74 линии ожидаю что не должно? инб4 SockGetPostById ссылка на 110 линию
ок я похоже понял, reject на клиенте, на 124 линии теряет контекст, так как это коллбек, который исполняет сервер на 67 линии пик... лол и как быть тогда?
вопрос ваще не про react.
>не могу понять зачем нужен this и что он делает.
this это очень конкретная штука, которая решает очень конкретную задачу.
ты к ООП уже приступил?
Ничего особо сложного там нет. Если не понятно, скачай на Рутрекере его видеокурс, где он все подробно разжевывает.
Боюсь что да.
>не могу понять зачем нужен this и что он делает.
Пиши в консоль браузера:
Object.prototype.print = function() { console.log("printing", this) }
А потом развлекайся
(1).print()
"hello".print()
({hello: "world"}).print()
This это объект на котором вызывается функция через точку.
Чаще всего люди переживают за потерю this. Это происходит, когда функцию вызывают не через точку, а отрывают от объекта. Функцию можно передать как и любое другое значение, потому что js — функциональный язык.
Про явную подачу какого-то значения в this можно почитать,
загуглив на MDN bind, call, apply.
Отдельно можно почитать про объекты врапперы у примитивных значений.
Пытался раньше выполнить пару задач напомню где, совсем не мог ни до чего додуматься. Потом начал читать "Выразительный JavaScript" и там после каждой главы даются задачки, вот их я уже смог решать, поглядывая снова и снова в содержание главы. Теперь изредка захожу на кодеварс и спокойно, иногда не очень, но все решаю.
Так что, возможно, у тебя ещё не выработалось мышление программированием.
If the new keyword is used when calling the function, this inside the function is a brand new object.
If apply, call, or bind are used to call/create a function, this inside the function is the object that is passed in as the argument.
If a function is called as a method, such as obj.method() — this is the object that the function is a property of.
If a function is invoked as a free function invocation, meaning it was invoked without any of the conditions present above, this is the global object. In a browser, it is the window object. If in strict mode ('use strict'), this will be undefined instead of the global object.
If multiple of the above rules apply, the rule that is higher wins and will set the this value.
If the function is an ES2015 arrow function, it ignores all the rules above and receives the this value of its surrounding scope at the time it is created.
codeburst.io/the-simple-rules-to-this-in-javascript-35d97f31bde3
В общем парсится csv, в котором console.log выводит значения. Как мне их сохранить в переменную, я может вообще дурак?
papaparse.parse(myData, {
download: true,
delimiter: '\t',
complete: function (results) {
console.log(results.data);
}
});
переменная = results.data ?
Если ты надеешься, что можно как-то через var data = papaparse.parse(...), то нет, функция выполняется асинхронно, и данных сразу после вызова ещё нет, а как только есть, вызывается указанный тобой в complete коллбэк.
>>1075412
Што? Для постоянного хранения, нужно эти данные записать в постоянное запоминающее устройство, вроде бы очевидно.
Разумеется, второе
vkdocs
Лол, оно не решает проблемы, а создаёт их. Неявные контексты нахуй не нужны. Методы везде где можно лучше заменять функциями. Антихайп!
ну так это же гибкость
Здравствуйте, у меня снова вопрос по XML Http Request. Почему при асинхронном запросе к другому сайту, ответ возвращается дважды?
Т.е. у меня обработчик стоит xhr.onreadystatechange = function(){
console.log(xhr.response);};
И console.log почему-то дважды возвращает ответ один и тот-же. ЧЯДНТ?
Потому что onreadystatechange это не (окончательный) ответ. В доки загляни да прочитай, что это за событие. (И на onloadend по пути тоже обрати внимание.)
все пофиксил, благодарю
В этом посте, называл три видео курса от Frontend Masters:
>>1074745
Из трех удалось найти только The Good Parts of JavaScript and the Web. Может кто посоветовать альтернатив их Introduction to Web Development? Ну и раз уж на то пошло, Introduction to JavaScript Programming тоже.
Короче кое-как осилил учебник Кантора. Много где еще туплю, но в "общем" язык понимаю.
Что интересно - как освоил базу - осилил главу современных возможностей языка, и сразу стал пользоваться. стрелки, промисы, классы все это.
Сейчас начал изучать nodejs, доставляет. Но возникла проблема - я нихуя не понимаю самой логики http , сокетов и прочего.
Подскажите учебник или ресурс где все это поясняется.
Про заголовки, методы POST/GET и с чем его жрут.
https://codepen.io/anon/pen/xXaveG
Есть вертикальное видео, хочется его повернуть и увеличить на всю страницу, насколько это возможно (по наименьшему из параметров). Собственно, transform: rotate(90deg) и далее вычисление необходимых размеров элемента (со свапнутыми высотой и шириной) и сдвига всё вроде бы делают, но все последующие элементы находятся в жопе. Получается какая-то абсурдная ситуация, что высота элемента влияет на его ширину визуально, но на расположение элементов она-таки влияет до сих пор как высота, в итоге остаётся куча вакуума под видео.
По ссылке 3 варианта: (1) изначальный, условные кнопки прямо под видео, (2) соотношение сторон видео больше, чем обратное экрана, (3) -//- меньше -//-.
Вот в (2) и (3) всё коряво, а хочу, чтобы кнопки были прямо под видео, как в (1).
position: absolute пока что не хочется, потому что там не три кнопки идут после видео, да и вручную за всем следить придётся. Или это единственный вариант, делать прозрачный <div> с реальными размерами повёрнутого видео для позиционирования всего, а само видео делать абсолютом?
(Видео будут все разных размеров, изначально неизвестных, вполне могут быть даже и не вертикальные, так что вся эта хрень через ЖС меняться и считаться будет по нажатиям на кнопки, разумеется.)
бомбишь сначала 8-е каты, там задачи уровня перемножить два числа, перевернуть массив и т. д.
после прохождения смотришь на решения белых людей, берешь их приемы на вооружение
???
профит
нет никакого глубинного смысла у this. Это всего лишь попытки добавить огрызки оопа из-за давления моды.
ниишников-байтослесарей не принимаем.
Думаю, что я пидор. Стал дрочить на трапов, хотя долго противился этому желанию, но не могу сопростивляться и наяриваю во всю. Нужно и язык теперь под стать себе выбирать...
Если указать в передаваемой файле полный урл места где находится файл css и сделать обработчик на сервере - чет не работает. Но я вообще не уверен что это делают таким образом. Стаж node js три дня
Не пробовал учебник почитать?
сделай на своем сервере папку для static assets (в npm найдешь нужный модуль, если у тебя express то оно есть из коробки)
допиши в свой html линк на css, который и положи в свою папку статики.
С картинками то же самое.
>Но я вообще не уверен что это делают таким образом.
Именно так и делают, а как иначе? На сервер приходит запрос с урлом, он его обрабатывает. Никакой магии там нет. Вот посмотри на примитивный сервер, отдающий статику: https://www.npmjs.com/package/node-static
>чет не работает.
наговнокодил, значит.
Здравствуйте снова. Почему JS код с xhr запросом работает в консоли нормально, а при добавлении его в html не работает ничего? И как это пофиксить?
потому что хтмл ты выполняешь локально
открой консоль оно там ошибку безопасности выкидывает. загугли ее. надо будет изменить политику безопасности браузера или запускать хтмл страницу на сервере
>chan
не могу понять что то, как обозвать класс одним словом для событий show answer + show parent post?
пик рандом
showAnswerAndParentPostClass
let foo = "bicycle";
let bar = "brend";
console.log(test[foo][bar]); //Stels
Можно ли обойтись одной переменной?
let baz = ?
console.log(test[baz]); //Stels
Нет. По крайней мере, при таком объявлении test'а. Потому что test[foo] возвращает один объект, и уже из него берётся значение атрибута bar, а изначальный test уже совсем не при делах.
Снова со своим убогим примером с document.write, но почему при выполнении данного примера не выполняется подстановка в строку?
https://jsfiddle.net/1ppq5fkd/
Не хранить данные в общем редакс-сторе, а создать нормальный React.Component-класс (а не функцию).
а что ты против жквери имеешь? отличная библа, исходники - канон годного кода, автор - уважаемый человек, многие идеи ес6 заимствованы оттуда
Я начал программировать на третьем питоне - мне понравилось. Потом я понял что мне нравится программирование и решил что я могу зарабатывать этим делом себе на жизнь, но так как в моей маленькой стране Питон как основной язык мало кому нужен, то решил что Джава(слава богу не скрипт) это мой выбор. Писать на ней мне не так приятно как на Питоне, но не намного. Однако я всегда знал что даже не смотря на то что я хочу писать бэкенд мне все же придется не только изучить чертов JS, но и работать с ним. Без навыков сносной верстки и писанины скриптов на JS я никому не нужен в веб разработке. Как только можно пытался отсрочить этот момент, но, кажется, я никак не смогу ускользнуть от мертвецких объятий Джаваскрипта, от этого ублюдского синтаксиса, мерзейшего вороха фреймворков. Порой кажется что какое бы ты ни назвал слово - если подставить к нему .js то получишь название фреймворка для жабаскрипта. Я изучал структуры данных, паттерны, sql, git, html + css - все чтобы не браться за эту мерзость.js. Черт подери, я почему JS? Уж лучше бы C++ чем это.
Не дочитал твой высер до конца, ты Илиаду пишешь или есть какой вопрос по сабжу?
Да вопросов нет, все что надо найду на профильных сайтах. Хотел только анонов поблагодарить за подборку материалов в шапке по этому высеру от языков программирования да и только.
Если фронт будешь писать - юзай реакт. Минимум боли, мммаксимум отдачи.
>ублюдского синтаксиса
синтаксис охуенен, все лучшее из других языков.
>мерзейшего вороха фреймворков
фреймворк это часть стандарта? тогда какое отношение это имеет к языку? не нравится то что в вебе экосистема постоянно меняется - пиздуй в 1с
Вдогонку, по реакту, не могу не порекомендовать лояльное сообщество на гиттере: /dev-ua/reactjs
к слову, JS как такового языка нету. в реальности же есть ecmascript, который в связке с хтмл образует DOM и лишь эта связка назавается тем самый ЖС которым ты пытаешься траллировать
let test = new Proxy({bicycle:{brend:"Stels"}},{
get(target, prop) {
let y = prop.split('.');
for(let i of y) {
if(i in target === false) return undefined;
target = target;
}
return target;
}
})
console.log(test['bicycle.brend'])
Вангую, скоро у тебя внезапно появится проперти с точкой в имени и будет больно.
>С ними
"ними" — это с какими?
А тебе бы решать проблемы самому научиться. У тебя хоть где-то хоть какой-то подобный код работал? Ты пробовал его сократить до примитивной одной строки, по кусочкам разбирая, где и что ломается? Нахуя вот ты сразу этот хренов луп делаешь, да ещё и до сих пор не отказавшись от document.write'а, зачем сразу столько свойств, зачем сразу функцию подставляешь, рандом используешь, зачем? Почему нельзя хотя бы первый раз по шагам начать собирать всё, если что-то не работает и ещё не разобрался, чтобы знать, где и что может поломаться?
У меня Yf jsfiddle всё заработало, короче (без document.write'а, разумеется). Конструкция `text ${variable} text` та мподдерживается. Но у тебя там много других ошибок есть, исправляй.
часто используемые запоминаются сами собой за остальными в доки
У меня Google вместо памяти.
>почему в условиях for вторая инструкция является пустой
Потому что никто не написал её.
>почему без неё программа не выполняется?
потому что вторая инструкция является пустой
ее можно опускать, будет тоже самое что while(true) или while(1)
там вообще можно все пропускать типа так
let i =0
for(;;) {
i++
}
Если опустить невнятность заданного вопроса, то для чего прописывать эту пустую инструкцию? Почему нельзя её убрать?
https://jsfiddle.net/jqb1r8vj/
Ошибка: app.js:5 Uncaught TypeError: Cannot read property 'appendChild' of undefined
У вас в ВУЗ-е изучали сикп? Чо за ВУЗ, бро?
Имхо, современное российское образование в сфере программизма не годится ни к черту. За очень редкими исключеняими вроде ВМК, ФКН ВШЭ и, наверное, есть еще несколько мест, о которых я ничего не знаю.
Саратовский политех на прикладной информатике точно проходили сикп, но я до него не доучился, теперь первые десять глав своим отекшим мозгом осилить не могу, алгоритмы даже открывать очкую
function f(){
function f(){return 'raz'};
function f(){return 'dva'};
return f()
}
console.log(f())
это называется хоистинг. когда ты пишешь что-то типа
hello('world')
function hello(w) {
return 'hello'+w
}
интерпретатор перед выполнением поднимает все декларации функций наверх(собственно именно поэтому ты можешь вызывать функцию до объявления). и под капотом получается что-то вроде
var hello = function (w) {...}
hello('world')
в твоем примере нижнее объявление поднялось и затерло верхнее
Блять, нахуя ты такие скрипты вообще пишешь?
Берёшь из пособия "КАК НЕ НАДО ПИСАТЬ НА ЖС"?
Я function-то давно уже не писал.
Сукиблять, надо повесить тех кто дизайнил js изначально.
Нахуярили говна, от которого до сих пор не хотят избавляться в современных стандартах ПОТОМУШО СОВМЕСТИМОСТЬ ЭТО СВЯТОЕ.
>>1077389
Она в nodejs вшита.
>>1076814
>Напомните как в react+redux правильно поступать с данными которые нужны только одному компоненту.
>Вроде размера ресайзбл панелей. Или открытых/свёрнутых узлов TreeView.
>Хранить данные в общем редакс-сторе (что делает например redux-form, хотя зачастую состояние формы до её отправки ничему кроме формы не нужно)?
>Создать нормальный React.Component-класс (а не функцию) с локальным стейтом?
Фикс моего сонного бреда и бамп вопросу.
Можете какую-нибудь статью об этом дать, в доках redux вроде ничего не было.
Я тут решил освоить electron+react+redux+material-ui, и gulp с rollup'ом для сборки.
Конфиг роллапа получился куда проще и понятнее чем ебучий пиздец вебпака.
Вроде настроил окружение и сборку ЗА НЕДЕЛЮ, и на этот раз понимаю что там происходит.
Ты ещё 'create-react-app' какой-нибудь накати.
Значит, сильно лучше среднего у вас универ. Или препод / кафедра толковые
Если не идет SICP, попробуй может вот этот курс:
https://courses.cs.washington.edu/courses/cse341/13wi/
Там куча общих вещей, 3 языка: ML, Racket и Ruby. Имхо, очень годно.
Фраза вообще ни о чем. Какой нахуй контекст? О чем тебе это слово говорит? Какую информационную нагрузку оно несет? Вода. Воду только мутят, представляя глубокое понимание.
Ничего страшного. Небольшой майндфак, который быстро и просто запоминается. Просто слово страшное.
>Какой нахуй контекст? О чем тебе это слово говорит?
Ты не знаешь значения слова контекст что ли?
Вот контекст нашей беседы сейчас - что такое контекст.
Каждый раз когда мы явно не говорим, что говорим о КОНТЕКСТЕ, мы оба понимаем, что говорим именно о нем, потому что он в данный момент КОНТЕКСТ этой беседы.
То же самое и с this.
...
}
YOBA(10, DEFAULT_VALUE, -10);
Как корректно в JS реализовать подобное поведение? Мне нужно указать первый и третий параметр, а второй пропустить. YOBA(10, , -10); ничего хорошего не дало.
url = "http://www.website.com/video.mp4"
onRequest(req) {
request(url).pipe(res);
}
Иногда связь обрывается с ошибкой "read ECONNRESET". При это иногда прям совсем часто, иногда 0.1% времени.
Правильно ли я понимаю, что разрыв произошёл между сервером и website.com, а не между клиентом и сервером?
Если да, какие вообще есть варианты дебага подобного? Стабильно воспроизвести не могу (одна и та же ссылка как работает, так и нет), сам интернет стабилен (то есть, при нескольких подключениях одновременно обрывается только одно), да и обрывает связь, в любом случае, та сторона. Чаще всего обрывается прям под самый конец передачи файла, когда большая часть видео уже загрузилась.
Если важно, скачивается видео с ютуба с гугловских серверов, то есть не очень-то открытые данные, но не думаю, что они как-то так случайно иногда палят и рвут соединение.
Удвояю вопрос. С учетом того что учебник прочел, но конечно вопросы некоторые остались типа зысов, замыканий прототипов и тд
Смотрю курс сейчас, никаких вопросов не остается, а когда учебник в первый раз читал, то он показался мне слишком сложным. Но между первым знакомством с учебником и просмотром курса я успел посмотреть другие учебные материалы и попрактиковаться с Node.js.
Ой, да иди ты нахуй. Всегда им пользовался и в эту вашу JS-помойку влезать не хочу.
Вангую, что ты пытаешься к ним обратиться (или повесить что-то на них) до того, как они созданы.
консоль пишет что задача выполняется, а в итоге в build/img/ нифига не оказывается
там пол жизни нужео чтоб все пересмотреть
нужен, несмотря на весь хайп вокруг очередного <%generic_name%>-js, большинство сайтов все еще не жквери и по сути он является дефолтной жс-либой на фронте.
Его использование избегают только в новомодных фреймворках, поскольку там вцелом иной подход к разработке и потому жквери ради пары функций делать зависимостью нет смысла.
Для ajax есть axios, все плагины итак уже портированы на популярные фреймворкинекоторые с использованием жквери, впрочем
На самом деле, если писать без оглядки на старье, то почти все завезли в коробку. Фетч вместо гет, селекторы и навигация по дереву, только анимаций нет. Хотя тот же ньюйорк таймс вообще на бэкбоне запилен, и им норм.
Еще более абстрактно не мог написать?
Рилейт код хтммл и жс: https://jsfiddle.net/5wp41pvb/18/
Все это говно, которое делают на JQuery, легко запиливается на ванильном JS.
Скажите хотя бы как гуглить, а то всё что я нагуглил это location.reload(), но это же просто страницу перезагрузить?
Даже легаси сейчас ангуляр или бекбон. Jquery просто для нищих
Во-первых, дать по ебалу создателю виджета за захардкоженные инлайн стили.
Во-вторых, узнать, что на jsfiddle'е <style> в поле для css писать не надо.
В-третьих, выучить css, чтобы правильно прописывать стили для элементов внутри других элементов
В-четвёртых, ещё разок по ебалу дать.
В-пятых, поставить !important, чтобы не оверрайдился стиль.
https://jsfiddle.net/5wp41pvb/19/
Юзать жквери - моветон и перегрузка приложения ненужным устаревшим говном. Все, что есть в жквери, можно сделать на ванилла жскрипт.
Да это я понял, хотел удостовериться что не надо трогать эту парашу и можно сразу приступать к реакту.
через 3 года:
>Юзать ванилла жскрипт - моветон и перегрузка приложения ненужным устаревшим говном. Все, что есть в ванилла жскрипт, можно сделать на WebAssembly.
вот бы сидеть изобретать велосипеды и получать за это деньги...
сап! Как заставить прокси перейти на сайт?
Волшебное слово сказать, вероятно.
Прокси по определению делает запрос туда, куда ты попросил. Если не делает, значит либо прокси хреновый, либо ты вопрос задавать не умеешь.
Я не знаю, что не так спрашиваю? Я пробовал гуглить по теме, но ничего не нашёл. Даже не представляю, что делать в этой ситуации. Надо же как-то решать..
Спасибо большое, я и вправду ньюфаг в этом. Но остался еще один косяк... пикрл
1. Отображение скрипта в полноэкранном режиме бровзера
2. Как скрипт отображается оконном режиме бразуера - он налезает на другой текст рядом. /да и вообще заметил на разной диагонали монитора скрипт находится на разных местах.
Как фиксить?
Я делаю расширение для хрома
Допустим я хочу создать дял одного сайта плавающие кнопки, по нажатию которых доолжно происходить действие, аналогичное нажатию клавиши вниз или вверх
То есть представь анон что есть сайт, на котором перелистываются картинки по нажатию клавиш, а я просто хчоу две всплывающшие кнопки с таким же функционалом
Так вот кнопки я создал, протестил, функция нажатия работает с проверкой alert
Вопрос
КАК БРАУЗЕРУ СКАЗАТЬ ЧТО ПРИ НАЖАТИИ НА КНОПКУ Я КАК БЫ НАЖИМАЮ КЛАВИШУ ВНИЗ ИЛИ ВВЕРХ НА КЛАВИАТУРЕ?
https://davidwalsh.name/demo/scrolling-sidebar.php
Вот нпример
Тут плавающие стрелки листают страницу вверх и вниз
Но тут функция тупо офсетит старницу, а мне нужно именно сообщить браузеру и сайту , что я нажал клавишу на клавиатуре
Это вообще не то
Тут ты просто ловишь инфу этой функцией чтобы узнать какая клавиша нажата, а мне нужно через расширение отправить браузеру и самой странице инфу, что я нажал клавишу
Эта залупа удобна, если бы я хотел самостоятельно через скрипт изменять элементы на странице по нажатию
>>1078209
Гуглил и походу все очень печально
https://stackoverflow.com/questions/6296048/chrome-extension-send-key
> Unfortunately no (it is a javascript problem, Chrome API doesn't provide any help).
> All you can do is dispatch a keypress event (see this question for example), but you can't emulate actual button press. If parent page listens to keypress events, then it will catch it (this event won't have all the info as a real button press event, so it might still not work), otherwise nothing would happen.
https://stackoverflow.com/questions/6296048/chrome-extension-send-key
Тут вообще хуй пойми что наворотил чувак
https://stackoverflow.com/questions/4158847/is-there-a-way-to-simulate-key-presses-or-a-click-with-javascript/4176116#4176116
>Это вообще не то
Это ты - вообще не то.
Тебе дали линк на описание события, которе тебе надо генерировать. С описанием параметров этого события, среди которых есть КОД НАЖАТОЙ КЛАВИШИ.
Как триггерить события - гугли, мудак. Они все триггеряся одинаково.
>Я не знаю, что не так спрашиваю?
Всё. Нихуя не понятно, что тебе надо. Что ты пишешь, где, откуда и куда попасть надо, чей прокси, чей запрос, нихуя!
нет, он очень умный и даже гуглил, а ты дурак и в гугле ничего нет
???
Давайте как-то решим этот вопрос. Надо что-то делать же, наверное?
> Как триггерить события - гугли, мудак. Они все триггеряся одинаково
Анус себе оттригери
The .trigger() function cannot be used to mimic native browser events, such as clicking on a file input box or an anchor tag. This is because, there is no event handler attached using jQuery's event system that corresponds to these events.
Как в пизду jQuery, хуйлуша.
Ну на тоже картинку держи тогда.
Ок оконный и полноэкранный режим исправил вот так
https://jsfiddle.net/5wp41pvb/20/
Вместо % на top и left поставил px
Но осталось это
>на разной диагонали монитора скрипт находится на разных местах
В 19 21 24* мониках разное расположение на странице... антоны, как это исправить?
По ходу так и было, но я уже разобрался.
>>1077731
>>1077966
https://habrahabr.ru/post/312022/
А jQuery просто подключил и пользуйся.
>А jQuery просто подключил и пользуйся.
Тебе говорят о том, что всё, что делает твой жиквери, уже встроено в браузер и подключать, чтобы пользоваться, ничего не надо.
Учить jquery? Лул. Еще на курсы запишись.
https://pastebin.com/KZtBMDzK
Ну ты запринти что там в data'е-то.
>появляются 2 формы
появляются ещё 2, или остаётся старая и создаётся новая?
>>1078355
В дате почему-то вся страница.
Появляеться ещё одна форма в которой сохраняется то, что я написал, то есть всего 2 формы. И если я продолжаю отправлять, то отправляется только с первой формы, а вторая всегда остаётся такой, какой она была при первом отправлении.
https://pastebin.com/1g8GL1XW
http://www.jsfiddle.net
А так же сократи весь свой код до двух элементов: формы и места, куда твой пост впихиваться будет, без уебанского форматирования.
>В дате почему-то вся страница.
Вопросы к серверу.
>Сервер джанговский
Да похуй чей, что он должен присылать в ответ на твой сабмит? Присылает он это или нет? "почему-то" — так написано в коде, значит. Зачем ты ему написал возвращаться всю страницу?
Так да, я кажется понял в чём проблема.
При GET он рендерит страницу и возвращает пустую форму. При успешном POST отправляет редирект на ту же страницу, но форма отправляется без редиректа.
Но я всё равно не понимаю, что нужно сделать.
>Но я всё равно не понимаю, что нужно сделать.
Почитать туториалы предлагаю. Иначе ты тут просто на каждый свой шаг будешь пост писать, потому что у тебя не какая-то конкретная проблема, которую можно решить или с которой омжно помочь.
У меня пока нет в перспективах учить жс, просто все кукарекали, что форму в жиквери отправить нихуя знать не надо, вот я и подумал, что сделаю, а на деле, что-то не так всё просто оказалось.
А туториалы можешь какие-то посоветывать? синтаксис немного знаю
так ты и
>отправить нихуя знать не надо,
отправил нихуя не зная, то что тебе возвращает сервер к js и jquery не относится, сервер вернул страницу jq воткнул все что вернулось туда куда ты указал
https://simpleisbetterthancomplex.com/tutorial/2016/08/29/how-to-work-with-ajax-request-with-django.html
https://habrahabr.ru/post/241646/
показывай серверный код ибо жс отрабатывает как надо
Я понимаю, именно этого получается и не знаю, как взаимодействует джанго с жс. Потому и не понимаю, что нужно отправить.
Код здесь. Я так понимаю его нужно перенести из thread_detail в отдельную функцию?
Спасибо за ссылки и помощь, прочитаю как вернусь через пару часов.
https://pastebin.com/pyhAVZgx
Хуй знает.
один из вариантов хуеватый в общем сделать
return reverse('thread_detail', args=[board_code, post_id])
https://docs.djangoproject.com/en/1.11/ref/urlresolvers/#reverse
в итоге в data у тебя попадет ссылка на нужный пост, после чего ты уже в методе success сделаешь location.href=data
но это дичь, лучше почитай статейки что я скинул и завези уже class based views
Если реакту что-то и стоит предпочитать, так это инферно.
я забыл как это называется есть специальное слово для этого, фишка в том, что на свежесозданной кнопке не висит обработчика события onclick
а вспомнил
https://learn.javascript.ru/event-delegation
https://learn.jquery.com/events/event-delegation/
вот и стака примерно тоже самое предлагает,
https://stackoverflow.com/questions/29137910/redirecting-after-ajax-post-in-django
setTimeout 0 поставь
жквери нужно знать просто потому что это либа, которая доминировала в вебе на протяжении 10 лет.
Хух, пришел, сейчас буду читать, спасибо за материалы.
Я сначала просто написал редиректы чтобы работало, тем более что жс я не знаю, а теперь хочу убрать и сделать отправку формы без редиректа, тем более что редирект был туда же, где отправлялась форма.
Пример только с куклой есть, если поставить разворачивание картинки по центру экрана, то она заворачивается в div.de-img-center с позицией fixed, и вот на что бы внутри этой дивки я не вешал слушалку клика, оно ни разу не срабатывало. Маусап с маусдауном срабатывают, а клик нет. А по всей остальной странице клик срабатывает без проблем.
короче у тебя в return redirect('thread_detail', board_code, post_id) возвращался весь код темплейта thread_detail, возвращай нужную тебе хуйню и все, если напишешь return 'shit' то в data по итогу это дерьмо и окажется
Общую идею я понял, то есть когда POST успешен мне нужно последний пост или все посты? вернуть?
А в каком виде?
Я пробовал
data = serializers.serialize('json', posts)
return data
или
return HttpResponse(json.dumps({'data': data}), content_type='application/json')
Только что-то не работает ничего.
На отдельный пост пишет что он iteerable, на все посты, возвращает 500 и говорит что у str либо list нет метода get.
я думал ты ток js не знаешь,
> нужно последний пост или все посты?
лол ты спрашиваешь у меня что ты хочешь сделать вернуть в ответе на ajax один пост или все? Я хз, хочешь вернуть один, возвращай один, все так все
так жсон не возвращают
> return HttpResponse(json.dumps({'data': data}), content_type='application/json')
а так возвращают
from django.http import JsonResponse
return JsonResponse({'foo':'bar'})
я хз что там может не работать, и к вечеру обычно теряю навык читать мысли и видеть чужими глазами, показывай код, на фронте на сервере и че ты хочешь сделать, вернуть один пост, и добавить его после формы?
олсо
> data = serializers.serialize('json', posts)
https://docs.djangoproject.com/en/1.11/topics/serialization/#serializing-data
> я думал ты ток js не знаешь
увы
Я хочу чтобы по мере добавления новых постов в форме они сразу и появлялись в треде. Пост добавился, сразу тред подгрузил один новый пост, тогда один надо возвращать?
Вот фронт:
https://pastebin.com/8KFARBxD
Вот бек
https://pastebin.com/BsX6C7qK
>>1078606
>TypeError: Object of type 'Post' is not JSON serializable
Что с list, что без, что один пост возвращаю, что все.
у тебя в переменной new_post помимо строковых полей лежит что то еще, что джанговский сериалайзер не может обработать, полагаю что это QuerySet
> new_post.board.add(board)
исключай из возвращаемого ответа всю лишнюю инфу, пока не найдешь какое именно поле она не может сеарелизовать, или покажи print(new_post)
https://stackoverflow.com/questions/41116841/object-is-not-json-serializable-django
https://stackoverflow.com/questions/30953615/typeerror-object-is-not-json-serializable-in-django-1-8-python-3-4
https://stackoverflow.com/questions/16336271/is-not-json-serializable
>нужно последний пост или все посты? вернуть?
Ты там пока разбирайся как хочешь, грузить особо лишним не хочу, но я бы, с позиции пользователя, посоветовал либо:
1. таки перезагружать страницу (хуёвый вариант, примерно из 2001-ого года),
2. сделать функцию для подгрузки новых постов ajax'ом (можешь тот же "Обновить тред" на этой борде глянуть), и при успешном POST'е вызывать эту функцию (то есть тогда, когда пост должен бы на сервере уже появиться в базе данных)
Иначе, если ты будешь добавлять только отправленный, то не появится ничего из того, что было добавлено во время написания поста, а если потом что-то будет подгружено, то сломается порядок, или вообще не подгрузится, смотря как всё реализовано у тебя будет.
> сделать функцию для подгрузки новых постов ajax'ом (можешь тот же "Обновить тред" на этой борде глянуть)
это у него уже сейчас сделано судя по
> return render(request, 'board/thread_detail.html', {'posts': posts, 'form': form, 'board_code': board_code})
он пытается
> и при успешном POST'е вызывать эту функцию (то есть тогда, когда пост должен бы на сервере уже появиться в базе данных)
>это у него уже сейчас сделано судя по
Ну тут он целиком весь тред присылает, без какой-либо возможности слайсить, потом на клиенте всё разбираться придётся, или пересоздавать вообще все посты на странице.
>он пытается
Я имел в виду на фронте вызывать. Что-то такое сделать:
function update() {
ajax(`/thread?start=${last_pid}`, (posts) => { render(posts) })
}
form.submit(() => {
ajax({data: form.data, url: "/newpost",
success: () => {update()}
})
}
Как вариант, добавить подобие этого last_pid в к данным формы, тогда и там можно возвращать всё, но это не оче, смешение задач какое-то получается.
А если мужского?
Но причем тут жс? Общие интересы типа?
нашел рабочее решение ekko-lightbox. Всем спасибо!
Удали редакс нахуй и читни про lifting state up, тебе не нужен сторонний менеджер состояния.
Пиздуй заново читать про конкатенацию.
Как они это делают? Быстрый осмотр даёт понять что с помощью какого-то WebSocket типа bgrndi.com, как это работает и как сделать самому? Как найти сайт предоставляющий такие услуги? Найти такую рекламу можно в любом онлайн кинотеатре из топа происковиков. Адблоки эту хуиту не блочат, если заблочить самому через host, то сайт начинает сыпаться, скрипт удаляет стили оформления или вообще скрывает контент.
там просто вшит инлайн скрипт, который делает запрос на юрл этой рекламы и в случае неудачи (если юрл заблокирован адблоком) ломает верстку.
Вёрстка вполне может ломаться и не по этой причине. У меня так порнхаб и лента.ру ломались при включении какого-то японского easylist'а, потому что там рамблер и ещё что-то блочилось, что stylesheet'ы отдавало.
Возможно, сайт отдаёт рекламу со своих же серверов/доментов, тогда нужно более точные фильтры делать, а не целиком домен запрещать.
Можешь даже не пытаться это сделать самому. Таких говноедов как ты не так много.
У остальных нормальных людей, стоит Ublock.
>Ublock.
>хромог говорит о говноедах
В чём суть твоего поста? У меня точно так же нет никакой рекламы на этом сайте. Этот даунёнок уже второй раз не может ответить мне на вопрос о фильтрах в адблоке. Наставил кучу говна себе (три адблокера, блядь), а как оно работает и как настроить — не знает. Вангую у него очевидное отсутствие RuAdList'а, отчего и все проблемы.
А, в таком случае прошу прощения. Первая ссылка в гугле по "ublock" была в chrome web store, ну я на радостях и побежал срачь разводить.
да хуйню какую-то я пиздец разозлился. у меня два года опыта работы с ангулар 1, почти год опыта работы с нодой+моного+экспресс+метеор. могу асинхронный код писать одной ногой с закрытыми глазами под транквилизаторами.
он меня несколько раз спрашивает: библиотечку лоудэш хорошо знаете? что делает помните? как использовали?
или там вдруг: так что такое промис получается вы знаете?
у меня на этом вопросе бомбануло потому что у меня в сиви строчка цитирую "могу писать асинхронный код при помощи колбеков, промисов, аsync/await, стримов и черта лысого если потребуется"
никаких вопросов проверяющих мою квалификацию задано не было. сказал что подготовит тестовое и попросил примеры кода(скинул офк)
Можно ли отловить возврат пользователя обратно на страницу после перехода на target=_blank?
не входит, но у нас безвиз, как братушек-салоедов. могу туристом виснуть в ЕС. могу сделать румынский паспорт, его может сделать любой у кого предки жили тут в определенные годы в 20 веке(под румынской оккупацией). а румыния в ЕС.
Я правильно понимаю, что js-код компилируется браузерами ?
Понял. Спасибо. То есть мне не нужно ничего кроме обычного текстового редактора и браузера, чтобы писать js код?
В теории да. От того, что с нами стало на практике, охуеешь чуть погодя.
Текстовый редактор лучше не самый обычный. Для начала подойдёт этот:
http://brackets.io/
Там есть молния в правом верхнем углу, которая твою писанину будет в браузере сама открывать, обновлять и куски подсвечивать.
Судя по твоим вопросам, ты только начинаешь. Посему, настоятельно рекомендую тебе пройти все бесплатные уроки подряд здесь:
https://htmlacademy.ru/
Даже устанавливать ничего не надо. Поможет чуть освоиться и разогнаться. Знание разметки очень пригодится в дальнейшем.
Там будут ебанутенькие задания, от которых у всех горит. Это норм. Но в эти моменты прислушайся к себе. Это только крупица от того, с чем придётся сталкиваться каждый день. Твоё ли это?
Я html и css знаю. Этот сайт весь пройден почти кстати у меня. Спасибо за советы.
Отлично. Тогда, если только в программирование вкатываешься, то лучше начни с этого:
https://www.edx.org/course/introduction-computer-science-harvardx-cs50x
Требует усилий, но избавит от кучи тупых вопросов в дальнейшем.
Если лень, можешь хотя бы лекции этого же курса с быдло-переводом под пивко посмотреть:
https://www.youtube.com/watch?v=Sy_wba7l1UU&list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5
Brackets уже давно мертвый, дядь. Сама адобе его забросила, нахуй ты рекомендуешь это говно?
Самый простой для старта нуба - vscode. Из коробки есть вообще все, что можно и даже больше.
Смотреть хуйню в браузере - это настраивается в dev-окружении всякими watch и hot-reload.
Он даже "мертвый" полностью справляется со всеми возложенными на него задачами.
>Адблок это дерьмо не блочит, пришлось вручную, например сайт hdrezka.ag
Не знаю даже, что тебе сказать, у меня всё блочит. Попапов даже без адблока, кстати, нет.
Открой страницу, выбери в адблоке "Open blockable items", сделай скриншот содержимого.
>пришлось вручную
Я уже объяснял же принцип работы адблокера. "Вручную" — это не обязательно через hosts, ты просто можешь свои фильтры добавить в адблок. Правый клик по элементу — block this item (или типа того), и там уже можно донастроить фильтр, маски добавить и прочее.
Ну и ещё, оставь ты только один адблокер, а то может они друг с другом там воюют.
>какой-то сервис проксификации скриптов.
Ну, фильтровать прокси, значит, надо. Адблоку абсолютно всё равно, хоть с луны реклама приходит. Единственный способ не давать людям смотреть свой сайт без рекламы — это при попытке открыть его с адблокерами скрывать/удалять всё, как форбс или кто-то там делает, заставляя отключать блокировщики (ага, щаз, проще их сайт целиком в адблок тогда уж добавить).
>Единственный способ
Вариация этого способа: присылать рекламу из тех мест, которые ты не можешь легко заблокировать в ущерб себе. Например, присылать баннеры из domain/images/<randomstring>.jpg, при этом полезные изобразения присылаются оттуда же и с такими же рандомными именами.
Полезен ли такой способ для заработка — не знаю, не рекламщик.
Да нет, ты не понял. На моем сайте пользователь кликает на <link target="_blank" href="google.com">. Открывается окно с гуглом в отдельной вкладке и браузер автоматом туда переносит пользователя. При этом мой сайт так же висит во вкладке. И вот после того как пользователь вернулся обратно на вкладку с моим сайтом, я хотел бы об это знать.
Курсы без практики не дают результат. CS50 не плохой курс, но через неделю все забудется. Нужно сразу же писать код. Есть бесплатный курс основ с практикой https://goo.gl/GLwHHL
Я основы знаю. Если считать за основы работу с строчками, целыми числами, массивами, циклами, условиями и операции с ними.
Прикол в том, что даже если ты заблочишь блок в котором выводится реклама в адблоке, она всё равно появится, пока ты не заблокируешь домены hghit.com hgbn.rocks cdn7.rocks, причём домены везде разные, есть на этих сайтах одна отличительная особенность, огромный зашифрованный текст в хейдере, пример https://jsfiddle.net/4vnxb005/ ну и сам код с этим cdn rocks на скрине. Если в коде есть эта хуйня, то считай реклама у тебя не блокируется. Хз почему у тебя нет, может провайдер фильтрует, но у меня вся реклама от recreativ.ru отображается с этой хуйнёй. Код с hdrezka.ag.
Ну а функции, рекурсия? Есть функции высшего порядка. Функции могут быть как данные. Из них можно строить разные абстракции. Алонзо Черч на одних функциях построил целую вычислительную систему.
Пройди практику к тому курсу, если все это знаешь. Времени много не займет. И обрати внимание на другие курсы, они хорошо прокачивают алгоритмическое мышление, но это уже платно
Функции https://goo.gl/ZNRcit
Составные данные https://goo.gl/KHCzwL
Последовательности https://goo.gl/nKedFP
Курсов там много. Было бы желание. Важно что они с практикой.
Да, за рефа доступ на какое то время. Посмотри здесь тред https://2ch.hk/news/res/1636190.html (М)
Ссылка на новость с рефкой яндекса. Почему то никого это не беспокоит.
Можно эти курсы найти на трекерах. Только без практики пользы никакой. Сам их скачивал с торрентов, но применить эту теорию не знал как. Сейчас подсел на их практические задания. Задачи там интересные и довольно сложные. Задачи связаны с Computer Science. С Лямбда исчислением например, числа Чёрча всякие там. Не свистоперделки беспонтовые. И не банальные сортировки с факториалами.
похоже на то, спасибо
Это совсем разные подходы. У Кантора обучение джаваскрипту, а на Хеклете обучают программированию.
Игруля в бровзере тащем-то. И вот вопрос, а как разбивать на файлы проектик? Есть аналог инклуда какой-то, что бы написать классов и заинклудиь их в каком-нибудь стягивающем проект воедино файле? Или тупо всё должно быть в самой хатээмэльке подключено, причем в правильном порядке?
>на Хеклете обучают программированию
Там рассказывают про алгоритмы и структуры данных? Нет, там этого не рассказывают. Там просто объясняют то, что есть в любой другой книге по программированию для начинающих. Где же там обучение программированию?
Сколько же вас тут пустословов. Теперь обоснуй свои слова. В каких книгах есть тоже что на Хекслете?
Падсталом просто.
пиздец, только счас о такой вот хуйне в js узнал
Зачем оно нужно?
Гугли webpack и babel.
Зачем ты задаешь вопрос, на который не хочешь получить ответ?
только щас узнал про возможность хранить бинарные данные в жс?
>он интерпретируется браузерами
сейчас и компилируется - тоже верно
>>1080111
>Есть аналог инклуда какой-то
можно в хатээмельке, можно взять велосипед.
>>1080185
>учите то, что не будете использовать?
я очень даже использую.
Тащемта главное не язык, а принцип программирования. Будет легче вкатиться в другой, "который буду использовать".
Потому что он совершенно не интуитивен. Если ты умеешь кодить на болинстве ооп языков, то для того чтобы кодить на js тебе надо все равно ещё поразбираться в его устройстве. А на питоне например просто без задней мысли сможешь фигачить уже сразу.
Пример https://jsfiddle.net/txgz316m/
Например ссылку 5 оформить как
<div>Текст</div><a id="ssilka5" href="#">Ссылка 5</a><div>Текст</div>
Знаю что можно сделать insertBefore и вставить дивы перед нужной ссылкой, но как поставить после нужной ссылки, если айди у ссылок будут рандомными, как и количество ссылок.
Подскажите посоны, я неосиляю.
засунь айдишники в массив и отфильтруй по нужным тебе критериям. Потом обратись к набору своих ссылок по отфильтрованному айдишнику.
Simple as that, think about it, bro
>пока ты не заблокируешь домены hghit.com hgbn.rocks cdn7.rocks
Первые два в RuAdList+EasyList'е уже есть, между прочим. Попробуй переустановить винду удалить все адблокеры и поставить заново, но только один.
>Хз почему у тебя нет, может провайдер фильтрует
Пока что, наборот, это ты единственный, у кого она есть. Я уже заходил и с разных компьюетров, и с разных провайдеров, и через впн из разных стран — ну нет там ничего, всё режется.
>огромный зашифрованный текст в хейдере
Да толку-то от этого? Адрес запроса всё равно зашифрованным не останется, и там уже всё и почикается. А скрипт этот вполне может к рекламе никакого отношения и не иметь, просто есть наивные скрыватели своего супер говнокода, которые боятся, что его украдут.
>причём домены везде разные
А ты как хотел? Все эти фильтры люди вручную собирали-вбивали, там их тысячи этих доменов рекламных. Никакой магии блокировки рекламы нет.
фронтач помогай, нужно реализовать пик1, нашел статейку как сделать градиент, но он получается только такой
https://jsfiddle.net/b3rvd823/
дайте пояснения как можно сделать или ссылку на статью с пояснениями, а то что то не втыкаю
воркэраунд 1
https://jsfiddle.net/b3rvd823/4/
воркэраунд2
поебался еще малость, https://jsfiddle.net/b3rvd823/1/ все еще в поиске хорошей идеи т.к. нету знаний свг
>>1080395
Сам не знаю, смотрел вот такое:
https://www.youtube.com/watch?v=Y6dbEGjgjD8
Он во второй части ебётся с масками и паттернами. Мне кажется, тебе надо два сердечка: одно чёрное, одно с градиентом (или два, склеенные по сплошному цвету, если там необычный градиент). Чёрное сердечко будет сверху и будет обрезаться маской, размер маски будет анимироваться по процентам загрузки.
https://developer.mozilla.org/en-US/docs/Web/SVG/Element/mask
>>1080405
Ещё есть такая библиотека:
http://snapsvg.io/
Может там что найдёшь. Или в Слак к ним постучись.
да снэп мне не шибко поможет, т.к. я в свг не особо разбираюсь а это либа для упрощения работы с свг из жс, понаделал вот такого
https://jsfiddle.net/obw4asLy/2/
один хуй не могу заставить начинаться из центра сердца и двигаться по часовой
по часовой двигаться заставил, осталось только допетрить как из нужной точки вести эту ебалу
https://jsfiddle.net/obw4asLy/3/
https://jsfiddle.net/obw4asLy/5/
Хочу вкатиться в веб и приложения. Стоит ли начинать с C, чтобы потом было проще изучать новые языки? Или прямо с веба и начинать? HTML, CSS, PhP, Java.
...
return ...;
};
function func() {
...
return ...;
};
в чем разница? 1я это старый синтаксис ?как лучше писать?
То что после Си легче изучать другие языки - это миф. Без разницы с какого языка начинать. Чем дольше ты выбираешь язык, тем больше шанс что у тебя ничего не получится. Начни с JS прямо сейчас. Есть отличное введение в программирование, нужно только зарегаться https://goo.gl/GLwHHL
Первое биндит функцию к текущему контексту (this'у), второе — глобальному.
https://repl.it/NDwH
Деньги за это не платят. Только доступ к обучению. Проект реально крутой. Иначе бы я не стал никого приглашать ради доступа к курсам. Можешь мне поверить, я смотрел все курсы какие только существуют.
Я пока лучше платформы Stepic ничего не видел.
Там и уровень высокий у многих курсов и всё бесплатно.
На Степике есть хорошие курсы, согласен. Только практики там мало, или нет вообще. Да и курсы там ориентированы на языки, а не на общие принципы программирования. Либо на околопрограммистские темы, типа ОС, баз данных. Таких курсов как в Хекслете нет больше нигде. Потому что там курсы по СИКП, а сейчас СИКП никто не использует. Это с одной стороны хорошо. Меньше будет качественных программистов.
>Только практики там мало, или нет вообще
Да ладно, есть целиком практикоориентированные курсы, например создание веб сервиса на Java.
Хотя на Степике сейчас нет ни одного приличного курса по JS.
Ладно, посмотрим твой Хекслет
>Да ладно, есть целиком практикоориентированные курсы, например создание веб сервиса на Java.
Ну да, там пишется проект. Только обучения общим подходам (азам) программирования там нет. Прежде чем писать проекты, нужно крепко освоить азы. Лучший курс по азам - СИКП, но его никто не использует в обучении. Даже на западе все больше университетов отказываются от использования СИКП. Считают его слишком сложным.
Лучший курс на Степике - курс по Хаскеллю. Реально качественный, на него нужно ориентироваться. Только он стал таким не сразу. Его пилят уже много лет. По началу он был посредственным.
Есть структура вида:
<div id="маняблок1">дохуяинфо</div>
<div id="маняблок2" ng-show="showyoba"></div>
<button ng-click="showyoba= ! showyoba">Нажми</button>
При нажатии на батон,отображается содержимое маняблок2.
Задача:
Перед отображением (в момент клика по баттону) перенести содержимое маняблок1 в маняблок2
>приличного курса по JS.
Это язык с минимальным синтаксисом и без системы типов.
ЛОЛ.
Для этого правда нужны какие-то курсы?
И не надо искать. Я же тебе скинул ссылку на введение в программирование. Дальше курс "Функции". Выбери профессию Бэкенд-программист, и проходи все курсы от начала. Не забывай про практику к урокам. Есть еще общая практика.
>>1080535
Это не то. Ну как бы это СИКП, но это теория, без JS. Тем более это старые видео. Сейчас там все намного круче.
Да, он другой, ооп здесь фоном и непривычно, количество фп — куда больше, чем любят в ооп языках. Но идеально, если хочется развиться в сторону фп.
>Это язык с минимальным синтаксисом и без системы типов.
>ЛОЛ.
>Для этого правда нужны какие-то курсы?
Знание синтаксиса НЕ РАВНО знанию программирования
Писать свистоперделки это еще не программировать.
Это потому что ты не читал СИКП.
Поддерживаю. Жаль не все это понимают. Особенно удручает когда JS называют недоязыком. JavaScript один из мощнейший языков на самом деле.
Каждый нахваливает свое болото.
>как мне внутри подключить скрипт находящийся в файле?
script src=адрес, ессесно прописывать в хтмл
>>1080342
> он совершенно не интуитивен.
разницы с питоном вообще не вижу
>>1080348
> можно сделать insertBefore
а ещё insertAdjacentHTML
>>1080482
>стоит ли начинать с JS, если до этого вообще ничего не изучал?
Стоит. Конпелятор не нужен, иде не нужен. Ответов на всяких форумах и SOF до жопы на каждый случай. Скорее наоборот - в си (и в любой подобный) потом проще вкатиться, когда примерно предполагаешь что делает тот или иной кусок кода, а не прогоняешь каждый раз через make и смотришь выхлоп.
>>1080531
>Для этого правда нужны какие-то курсы?
Удваиваю этого анона. Учил сам, по js.ru и mdn.
>>1080547
>Знание синтаксиса НЕ РАВНО знанию программирования
я бы не был так категоричен.
Классик же сказал все до нас:
....Но ты же - убогое ничтожество, ты языки по синтаксису сравниваешь. Если синтаксис похож, то и языки похожи, по мнению подобных тебе недоношенных ублюдков. Что поделать - ублюдков не учат тому, что такое операционные и денотационные семантики...
>script src=адрес
В смысле, прямо в скрипте пишем на новой строчке script src=адрес и спокойно пишем код на новой строчке дальше, скрипт из файла подключен?
Например, можно добавить всем элементам в прототип функцию. Сложнее – добавить свойство, но это тоже возможно, через Object.defineProperty:
Вопрос - а разница в чем, функция(метод как я понимаю) или свойство ?
А как определять, ебашить полифилл через прихуячивание функции в прототип элемента, или через дефайн-проперти?
А разница в чем? Чет я запутался
таким годным он стал не так давно, до стандарта es6 жс был говнищем из-за колбэков.
даже странно имхо, что его овер 20 лет никто не развивал, и лишь пару лет назад начали что-то делать для людей.
кек мб майки с их саси-шарпом или какое-то другое коммунити мечтало пропихнуть свой язык для веба, кто знает почему так было...
>Классик же сказал все до нас:
щас бы в 2к17 ссылаться на эфемерного классика вместо того чтобы по делу пиздануть
>>1080673
>Какие задачи можно решать изучив синтаксис?
простейшие, а это не так уж и мало
>>1080858
>мы такое не проходили, это вместо var?
var конечно теперь не рекомендуется, но это другое, непереопределяемая переменная.
>>1080862
>В смысле, прямо в скрипте пишем на новой строчке script src=адрес
ты где скрипт юзать будешь? на веб-странице? ну вот и подключай туда.
>>1080921
>мб майки с их саси-шарпом или какое-то другое коммунити мечтало пропихнуть свой язык для веба
Dart?
кмк дело в первую очередь в возросших мощностях писюков и наладонников, ну и v8
>>с минимальным синтаксисом
>шо
>тонны говна же
Да вроде нет.
Все очень просто и логично. Типов как таковых всего то ничего, отсюда и простота всего языка в целом.
Есть проблема с множеством механизмов асинхронного программирования. фьючи, калбеки, вот это.
>>1080547
>Знание синтаксиса НЕ РАВНО знанию программирования
Знание программирования?
Похмелился бы челе.
>Писать свистоперделки это еще не программировать.
Именно что программировать, мой дорогой друг.
>Писать свистоперделки это еще не программировать.
Так то получается на JS программистов то и нет.
И вообще, вот, пикрелейтед.
Стоит тысячи курсов.
>Dart
он появился в 2013. вангую скорее VBScript от майков, он появился в 1996, и был изначально заточен для работы на клиенте и сервере
https://en.m.wikipedia.org/wiki/VBScript
Имею пикрелейтед JSON. Как я вижу внутри Object лежит Message внутри которых лежит Items внутри собственно каждого из которых лежат данные.
То есть должно быть object.message.items[0].author.given например, чтобы получить John?
Да. только незабудь распарсить свой json...
var data = JSON.parse(json);
alert(data.message.items[0].author.given);
>Есть ссылка на pdf этой книжки?
На nnm клабе есть.
http://nnm-club.name/forum/viewtopic.php?p=8762952
спасибо
>простейшие, а это не так уж и мало
Конкретней, какие простейшие? Задачи бизнеса решать со знанием только синтаксиса невозможно. То есть этот чел не может называться программистом, и уж тем более software engineer.
Изучая синтаксис ты не можешь строить сложные программы. Можешь написать интерпретатор/компилятор? Думаю нет, из-за того что не понимаешь как строить абстракции. Программирование это не язык, это не синтаксис. Программирование это абстракции.
>>1080987
А все абстракции дырявы.
Программирование это дыряво.
А таких как ты языковед.
Так что ты написать можешь?
>непереопределяемая переменная
благодарю молодой человек
>>1080949
>ну вот и подключай туда
я просто хочу знать, как можно подключить скрипт из файла, прямо внутри другого скрипта, ну например определить значения переменных и под ними подключить файл скрипта, чтобы он ими воспользовался и сделал то что должен, чтобы не подключать скрипт отдельно после скрипта определяющего значение переменных
>как можно подключить скрипт из файла, прямо внутри другого скрипта
Зачем? В JS есть require, а в ES6 появились import. С помощью этих штук можно подключать файлы, но работают ли они внутри html не знаю.
Надо дать весь файл?
Вот еще.
Эээ... где это? Я правда не вижу, лол.
У тебя скрипт в head'е подгружается, в этот момент ещё DOM не достроен. Либо пихай его в конец <body>, либо слушай событие DOMContentLoaded и тогда начинай исполнение.
И правда, получше стало! Спасибо! Теперь просто никакой реакции на клик, ну тут я уже сам хочу голову поломать.
Так-то ; совсем не обязательны в многострочном коде.
>Изучая синтаксис ты не можешь строить сложные программы. Можешь написать интерпретатор/компилятор? Думаю нет, из-за того что не понимаешь как строить абстракции. Программирование это не язык, это не синтаксис. Программирование это абстракции.
Спасибо капитан.
Без тебя никуда.
Но тут речь идет об изучении ЯЗЫКА.
И о курсах для изучения ЯЗЫКА.
Ладненько?
>Поцоны, я придумал. Давайте тех, кто пишет на ЖС, называть "сценарист" или "автор сценария".
Годно.
>Конкретней, какие простейшие?
какой-нибудь полезный юзер-жабаскрипт или приложеньице для сферического вкунтактика или любого другого сайта. И уже "вкалывают роботы, а не человек"
>>1080987
> Программирование это абстракции.
Абстрактный анон, прототип - человек разумный? И таких абстрактных анонов целый двач. Все, я погромист.
>>1081043
>например определить значения переменных и под ними подключить файл скрипта, чтобы он ими воспользовался
все равно не понимаю чем тебе инклуд в htlm не катит, один хуй сначала загрузится по ссылке, выполнится, а потом тот что на странице.
>>1081045
>есть require
емнип это что-то из ноды. В браузере только сторонний велосипед, но смысла в нем не вижу.
тебе же пишут, что messages не определено
> Слайдер работает, голый джиэс без всяких джиквери
совместимость
о
в
м
е
с
т
и
м
о
с
т
ь
соснёшь в итоге с таким подходом на кроссбровзерности, жиквери как раз удобная обёртка для DOM, что бы не париться об этом
>соснёшь в итоге с таким подходом на кроссбровзерности
почему мне кажца что ему в одном единственном бровзере юзать
Ты за хлебом тоже на камазе ездишь?
Мне как бы сам факт что работает настоящий код важен, сайт просто для тренировки.
Кошмар, в IE8 что-то может не работать и полтора некрофила с музейными экспонатами вместо компьютеров останутся за бортом. А еще ведь о юзерах Netscape Navigator стоило бы подумать.
Хуйня все эти курсы, только мозги пудрят.
Только по инструменту за раз, только офсайты, только гетинг-стартеды, только доки и исходники, только пет-проекты и хардкор.
Бля, как сам вкатывающийся питонист, понял что вся эта залупа в npm уже написанные модули как в питоне. Понял пока что блядский React это свестоперделки сверх JS.
>Только по инструменту за раз
Как у Кантора типа в учебнике ?
>только офсайты, только гетинг-стартеды
Это што такое?
из последнего вот эта статья ничетк
https://medium.com/@peterxjang/modern-javascript-explained-for-dinosaurs-f695e9747b70
1) ревью HTML5/CSS3, что учил лет 5 назад, плюс хоть какие-то основы современной верстки, бутстрап там, не знаю что у вас сейчас.
2) js, но не сам язык с нуля, а сразу в контексте инфраструктуры, фреймворков (любого известного).
Мне хотя бы начать въезжать в современный js, да вспомнить, как вообще верстают хоть немного (сейчас уже явно не как 5 лет назад). Курсы обычно лучше всего воспринимаются для подобного.
1) Посылаю запрос, получаю ответ. На пик релейтеде код и содержимое ответа.
Если пишу "titles: response.message.items.title," Нихуя не рендерит.
Если пишу "titles: response.message.items[0].title," Собственно рендерит первый элемент.
Как мне правильно пройтись итерацией? Я же вроде с помощью map преобразовал всё как надо.
2) Как правильно вставлять элементы вроде accordion в код. Вот есть у меня приложение app в котором я что-то считаю. И хочу сделать аккордеон. Для этого мне нужен скрипт. Вроде такого. https://codepen.io/adamaoc/pen/wBGGQv
3) Почему текст выделяется желтым на пикрелейтеде? Это вызывает паранойю что я проебался.
Спасибо.
я как раз хочу наоборот из фронта перейти к беку и стать фулл-кеком. Если интересно - можем устроить сеанс взаимопомощи.
По курсам - ну там вон скинули выше статью. Гугли на ютубах конкретные стэки, все очень разное.
В душе не ебу. Умею. Вопрос как мне автоматически обращаться к массиву как например в питоне "for in range". Чтобы перебрать все 5 значений и из них извлечь соответсвующий title.
response.message.items.forEach(el => console.log(el.title))
если тебе надо возвращать что то (например <li>), то
response.message.items.map(el => <li>{el.title}</li>)
Есть {a: 11, b: 22, e: 55, f: 66}
Нужно {c: 3, d: 4}
Как-нибудь покрасивее, без циклов, это можно сделать? Каким-нибудь финтом через destructing assignment например.
Спасибо. Это именно то что мне нужно было.
А как мне совместить теперь проход по двум спискам? Вытаскиваю title и хочу вытащить для этого title всех авторов, потом перейти к другому. авторы тоже массивом.
ну ты подробнее покажи, а то не понятно. На скрине у тебя authors это вообще массив с объектами. Алсо раз ты используешь лодаш, проще будет заранее все перегруппировать в простую структуру и по ней уже строить
Ну я как-то так и делаю. Object.keys по обоим объектам, потом через filter разницу. Ну а дальше по ней циклом, и беру нужное из первого объекта. Думал как покомпактнее можно.
ну так тогда
>ну ты подробнее покажи, а то не понятно. На скрине у тебя authors это вообще массив с объектами.
Есть Массив Items. Его мы перебираем и вытаскиваем Title. Внутри этого же массива есть еще один Author. Он тоже массив. Его тоже нужно перебрать таким образом чтобы на выходе вышло:
Title
Author
Author
Author
Author
И так далее. То есть в моём понимании питониста сначала делаем цикл For и для Items, а потом внутри него делаем еще один For для Author в каждом Items. Как я понял map это создание массива из массива с проходом по нему.
> Алсо раз ты используешь лодаш, проще будет заранее все перегруппировать в простую структуру и по ней уже строить
Я с лодашем еще не очень разобрался. Пока лишь нравится что короче писать.
response.message.items.map(el => {
return(
<div>
<h1>{el.title}</h1>
{el.authors.map(author => <div>{author}</div>)}
</div>)
})
=/ почему то он мне пишет что я неправильно задефайнил. Как я могу задефайнить если я не могу обратиться я не очень понимаю.
Если же я дописываю ебаный индекс, то он всё прекрасно находит судя по консоли.
он пишет что items.author не определен
довольно сложно представлять что у тебя там на структура данных
item.authors там что? Точно массив?
бля..
у тебя в this.state.items что вообще лежит?
внутри есть author? Или это вообще в другом месте массив.
Я же говорю, без полной схемы твоих данных сложно что то понять, я тебе просто написал принцип как построить если внутри твоего item есть проперти author.
В this.state.items лежит массив из 5 элементов. Внутри каждого элемента есть еще хуева туча данных в том числе и массив author.
На пике содержимое this.state.items.
Если есть такие счастливчики, поделитесь кулстори.
Кто обычно является иницниатором ваших командировок на такие мероприятия - вы сами или ваше руководство?
>>1081572
В том, что меня нахуй шлёт с item.author потому что у author нет map? Так как author - undefined.
А когда я пытаюсь привести к твоей конструкции меня еще и шлёт нахуй с Undefined Item/Items.
Я не ебу, что я делаю не так. Я объявил переменные в constructor указал им начальные this.state. Потом при получении response я с помощью того же this.setState в моём понимании присвоиваю им этот json, который я получил. Так что я серьезно не ебу в чём проблема и хочу это понять.
>все равно не понимаю чем тебе инклуд в htlm не катит
у меня мания минимализма, хочу в 1 теге script, подключить сразу всё, пока в голову приходит только write
это по-другому делается. существуют специальные системы сборки для склеивания всех жс файлов в один большой и его минификация
Бля, с силой святых индусов ютуберских, полтора мануала, поста на стаке и этого треда, я таки сделал эту залупу.
Спасибо всем, товарищи.
>у меня мания минимализма
нуладна
try EC6 export/import luke
https://learn.javascript.ru/modules
Напишите функцию, которая создаёт вложенный список UL/LI (дерево) из объекта.
Например:
var data = {
"Рыбы": {
"Форель": {},
"Щука": {}
},
"Деревья": {
"Хвойные": {
"Лиственница": {},
"Ель": {}
},
"Цветковые": {
"Берёза": {},
"Тополь": {}
}
}
};
И вообще бывает знатненько туплю - это знаxит что все очень похо?
Это значит что весь шеб - кривожопое говно, где для простейшей задачи надо пердолиться полдня либо делать npm install sum-two-numbers.
sup, у меня есть динамическая таблица с добавлением строк по кнопке (ид генерируются по принципу "+1")
но мне нужно написать функции. для подсчета сумы значений всех ячеек (типо у меня есть первая, есть вторая, а остальных пока нет).
Вопрос: как мне поставить значение 0 для не существующих ячеек?
>Ну так и что там было-то?
Ну как я понял, там надо было сделать map items, достать тайтл, а потом сделать map item.author и достать автора оттуда.
Позже скину если будет интересно, кода под рукой нет.
Теперь другой вопрос. Есть аккордеон. Внутри него еще один аккордеон. Надо сделать чтобы при раскрытии второго аккордеона посылался запрос и происходил рендер этого запроса. То есть, я не должен иметь инфу заранее, а именно в момент клика по элементу, чтобы он открылся и внутри него прорендерилось из запроса.
Тоже не осилил это. Даже после объяснений автора учебника в видеокурсе. В итоге забил и продолжил изучение дальше.
А писать с применением ES6+ синтаксиса можно или это чит?
потому что мне лень было реакт поднимать для этого
что бы каждый title обернуть в какой то тег и вернуть в разметку
Ну и как успехи? Не вкатился еще? Сколько по времени учишь?
Нет никакой разницы. Метод это тоже свойство, только функция.
И второе, как мне отрендерить что-то именно в момент после того как я открыл одну из вкладок, а не просто сделать видимой. Какой-то эвент типа isOpen или isActive. И как отследить именно внутренний. То есть аккордеон в аккордеоне.
Хуёво разъяснил наверное. Обрабатываю array и вывожу как список. Когда одно значение - всё окей, но когда их несколько вместо того чтобы создать для каждого своё, он хуярит всё в один.
Да, я понял. Как мне сделать так чтобы каждый из них был своим аккордеоном. То есть мог раскрываться.
При таком раскладе ты мог бы одним лишь бабелем обойтись, без вебпака (ведь ты ассеты и ресурсы не бандлил).
Со временем начнешь понимать. По мере изучения.
А ты заглядывал в выходной файл?
Вебпак формирует своё окружение для поддержки разношерстных модулей (которое, ко всему прочему, скорее всего неоптимизировано для прода), а так же до кучи инжектит утилзы всякие, сюда же добавляй код после транспайлера, который по определению не может быть меньше кода на входе. Так что да, все резонно.
Надо было пыху учить. Спасибо
proposals_map = Object.keys(proposals).sort((a,b) => proposals[a].terms[Object.keys(proposals[a].terms)[0]].unified_price - proposals.terms[Object.keys(proposals.terms)[0]].unified_price);
Какой сортировщик лучше применить для сортировки выше? Пирамидой, пузырьком? Чо самое топчанское по производительности?
Хм, идея хороша, но попробуй угадать - какой из трёх языков у меня используется на бэкенде?
Какой большой слоник.
Используй Node js.
попробуй лодаш, ну или хотя бы посмотри как они реализовали сорт
Единственное, что "не так" с Аррай#сорт, это то, что Хром использует квиксорт (не сохраняет изначальный порядок), а Фурифокс — мёржсорт (сохраняет).
Ты делаешь ещё два линейных Обжект.киз на каждом шаге логолинейной сортировки, сценарист хуев.
Сначала собери и посчитай нужные тебе цены в массивчик. А потом уже его сортируй.
Твой чудный однострочник мало того, что криво работает, так ещё и непонятен.
>ещё два линейных Обжект.киз
Так ведь они у него каждый раз от разных объектов.
>Сначала собери и посчитай
А какая разница-то, всё равно ведь те же самые действия будут выполнены, пускай и разделённые на два этапа.
>так ещё и непонятен
Это да, даже тебя сбило с толку. Так-то работает всё как надо https://repl.it/NP0O (ну, при условии, что в terms всегда только один ключ, и он с ценой).
да обычная таблица в форме,добавляю новые ячейки через appendChild cloneNode(true)
у элементов слудующей строки таблицы индексы в формате 'старый индекс +1'
в каждой строке таблицы нужно вычислить сумму типо var c = var a+var b (с парсингом конечно). я это сделал. это всё я прописал для 10 строк таблицы.
а теперь когда нужно найти суму этих var c каждой строки, то тут получается загвоздка, потому что скрипт работает только если в браузере в окне наклацать эти 10 строчек таблицы.
Пробывал делать через if (!element) { ..код..}, то всё-равно не работает.
Вот и думаю, можно ли придать этим "не существуюим ячейкам" value = 1; или может есть способ работать только с теми ячейками, которые я уже объявил в таблице в браузере
>эти 10 строчек таблицы
Почему 10? Откуда эта цифра берётся? У тебя там for (var i=0; i<10; i++), что ли, захардкожено? Почему бы тебе не пройтись просто имеющимся строкам (table.children там или ещё как)? А то как-то немного по-наркомански получается, что ты каким-то образом хочешь несуществующие элементы брать во внимание.
> if (!element) { ..код..},
if (!elements) срабатывает тогда, когда элемента нет. Ты только тут или и у себя в коде перепутал?
я в js совсем новичок
10 строчек, это как пример (эта таблица - только часть всей системы, которую я с accessa, которую я переделываю в Веб-форму, так-то в этой таблице должно быть не больше, чем 20 строчек) нет, там нет никаких for, я сам объявил 10 переменных по типу:
var wert = parseFloat(document.getElementById("wert").value);
var wert2 = parseFloat(document.getElementById("wert2").value);
и тд... до 10;
Как я это всё вижу:
окончательная функция имеет вид wert+wert2+wert3+..+wert10;
И, например, юзер выбрал 3 строчки таблицы, тогда значение wert, wert2, wert3 = будут те - которые вписал юзер, а у остальных value = 0;
я тут посмотрел, что это можно сделать как-то через document.getElementById('table id').rows.length; но как именно, я не знаю : /
к сожалению, код выложить не могу :С
>там нет никаких for, я сам объявил 10 переменных по типу
А таблицу на 50 или 150 строк как будешь делать? Почитай-ка про массивы и циклы лучше.
>А какая разница-то
Вопрос снимается, осенило. Но так ли это сильно затормаживает его сортировку, что может качественно помочь при аж зависании браузера?
Ну я бы не сказал, что у меня прямо зависает браузер. Сейчас вот отсортировалось 3911 таких объектов и при сортировке страницу зафризило где-то на секунду. Попробую, наверное, всё-таки сортировать на сервере.
Спасибо, я покакол через chrome.tabs.executeScript. Через него activeElement обращается куда нужно.
Все так делают
Посоветуйте библиотеку для генерации звука, которая может в ноты. Ну, чтобы не надо было руками с синусоидами возиться.
Попытался сделать <Accordion accordion={false} onChange={alert(Success)}>
И эта хуита начала вызывать бесконечные диалоговые, хотя я нихуя кроме как рендера не сделал. Она должна была вызывать только когда я кликнул бы чтобы она раскрылась.
ладно, анон, окей.
Я сделал цикл (for i=1; i<40;i++)
теперь у меня всё добавляется в цикле.
но сейчас тоже упираюсь в эту проблему, просто "зашёл " к ней с другой стороны.
как подсчитать суму значений всех элементов в цикле for?
Я нихуя не понимат
https://jsfiddle.net/qw6744wy/8/
так сделай для этого окна dislpay:none;
потом поставль onclick на кнопку, и функцию для смены display:none на display:block при нажатии клавиши
Есть файл test.png. Надо его по пикселям разобрать и запихать в матрицу. Есть в JS какие-нить функции для этого? гугль не гуглит
В PHP например можно сделать как на пикче
vasya
>Если объект равен null или его ключ не равен чему-то
Но у тебя в условии другое написано. if (obj == null || obj.key !== "value") вполне нормально сработает. (Если null, то второе уже проверяться не будет)
А так, твоё текущее написанное условие, на самом деле, бессмысленно (если не выполнется obj !== null, то obj.key !== "value" никогда не сможет выдать тру, ведь для попадания в эту часть кода obj должен быть null), и его можно переписать как (obj !== null && obj.key !== "value"), в таком случае null тут же провалит всё условие. и obj.key даже не выполнится.
>Если null, то второе уже проверяться не будет
Да? Хм, буду иметь в виду. Тогда выкину эту хуйню и перепишу так.
Но сам вопрос так или иначе заинтересовал. Анонимная функция в условии это порою нужная вещь, или что-то на уровне goto?
Стоит ли читать Фленегана ?
В html подключаю draw3.js и в body-script вызываю функцию init(). В draw3.js только эта функция. Сам файл test.png - белый квадрат хуевича. Консоль лог выдает то 0, 0, 0, 0 то 255, 255, 255, 255. Вот F5 жму, рефрешу страничку и то нолики, то 255. Шозанахуй?
Я его на виртуальном хосте запускаю, чтобы getImageData не ругался на cross-origin data.
А какое значение в этом случае будет иметь this если обработчик =>? У стрелки своего this нет, берет его из замыкания. Так написано.
И так по факту и есть вроде.
Но я не могу как то осмыслить а что мешает то в такой конструкции
elem.addEventListener('click', ()=>alert(this.innerHTML))
передать this в стрелку?
Типа у стрелки this нет как такового, и всякий раз когда this в ней объявлен он ищется как переменная в замыкании выше? Тут ссылается на window?
Вот пример:
https://jsfiddle.net/bkyu0sem/
В принципе сам понял. В стрелке this ищется в не в "контексте", а в лексическом окружение. Как если бы искалась какая нибудь переменная. То что стрелка объявлена как метод не играет роли, ее this будет браться из лексического окружения.
>>1082495
Угу, пихать this в колбеки гораздо интереснее.
Привет а чем вы отличаетесь от Java?
>Да? Хм, буду иметь в виду.
Может я не совсем ясно выразился, второе не будет проверяться только потому, что первая часть уже true, а значит что там после or стоит совсе мне важно.
>Анонимная функция в условии
Я бы сказал, что это срань нечитаемая. Но я никто.
>В стрелке this ищется в не в "контексте", а в лексическом окружение. Как если бы искалась какая нибудь переменная
ничего подобного. this это не переменная, это ключевое слово. и ни из какого окружения он не достается. попробуй написать что-то вроде
this = 5
и получишь ошибку
Ты стараешься выкрутиться за счёт абуза возможностей языка, а надо стараться писать по-человечески.
Отдельно определи предикат:
function hasOtherNameOrEmpty(obj, wrongName) {
return (obj === null) || (typeof obj === "object" && obj.name && obj.name !== wrongName)
}
Из-за "короткого замыкания" каждая следующая часть выражения может даже не выполняться.
false && alert("hui") // алёрта никогда не будет
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Логические_операторы
Тогда у тебя получится почти человекочитаемое
if (hasOtherNameOrEmpty(concreteObj, "vasya")) {...}
Всё равно плохое имя функции получается. Это потому, что нужно избегать двойные отрицания. "Ты не будешь не брать не яблоки?", — не понятно, что отвечать. "Яблоки берёшь?", — сразу понятно. Тебе нужно привести логику к прямым и простым утверждениям:
if ( isValid(concreteObj) ) {...}
else { тут для hasOtherNameOrEmpty }
this берётся из окружения на момент создания функции
http://exploringjs.com/es6/ch_arrow-functions.html#sec_lexical-variables
Можешь представить это так:
const lexical = this
elem.addEventListener("click", () => alert(lexical))
И это не зависит от "вложенности" стрелочных:
elem.addEventListener("click", () => ( () => (() => alert(this)) )() )()) // this === lexical, то же самое
https://codepen.io/anon/pen/mqbjXY?editors=0010
После Кантора с Нодой разобраться поверхностно:
https://www.w3schools.com/nodejs/default.asp
Надо, чтоб ты свой локальный сервер мог запустить и его заёбывать
https://medium.com/devschacht/node-hero-chapter-4-c2ebcd12565c
Потом про кишки подробней:
https://github.com/getify/You-Dont-Know-JS
Абузим функции:
https://github.com/getify/Functional-Light-JS
https://leanpub.com/javascriptallongesix/read
Абузим объекты:
https://addyosmani.com/resources/essentialjsdesignpatterns/book/
Делаем приложения:
http://chimera.labs.oreilly.com/books/1234000000262/index.html
[4, [2], 3, [2]]
Нужно перебрать его. Т.е.
[4, [2], 3, [2]]
[4, [2], 3, [1]]
[4, [2], 3, [0]]
[4, [1], 3, [2]]
[4, [1], 3, [1]]
.
.
.
[4, [0], 3, [0]]
Это просто сделать двойным или даже одним циклом, но проблема в том, что формат входным данных меняется и может быть таким:
[4, [2], 3, [2], 2, [2], 1[4]]
Т.е. функция перебора должна подстраиваться под количество аргументов или проще говоря, циклы для перебора должны пилиться сами, как это зделать?
круууууууууто
Хорошая идея, спасибо.
Вот этот кусок кода: https://pastebin.com/UgJnanNb
Причём такое поведение и в хроме и в лисе. Строчка timer = timer; тоже всё чинит, что за хуйня такая? Попробовал timer передавать в колбэк, а не вызывать как просто переменную определенную выше - не помогло.
Что конкретно нужно сделать?
>>1082717
>>1082726
Пиздец, это совсем наркомания какая-то. Тайны никакой нет, но слишком сильно не обоссывайте, я только учусь.
Код 1: https://codepen.io/anon/pen/GOKzVY НЕ РАБОТАЕТ, таймер автоматически не запускается.
Код 2: https://codepen.io/anon/pen/POYVMX РАБОТАЕТ, таймер автоматически запускается.
(js прямо в html, копипаст из index.html)
А теперь, внимание, пикрелейтед! Вся разница между рабочим и нерабочим кодом это появление строки console.log(sections == undefined);. Суть, как я понимаю, такая: если в коде не сделать какое-либо действие с переменной timer и переменной sections (похуй что: console.log; присвоить её же значение, сравнить с андефайном), то код ломается.
Алсо, если появляется надпись Second\Third content — удалите куки и LocalStorage для s.codepen.io.
так учить надо жс а не это говно
типичный вкатывальщик начинающий с туториала по ангулар 2 ты? да ты
Ебать, вот это фейл так фейл. Сразу бы макнули в говно и сказали, что ; проёбана.
Ой, пиздец, удоляю пока никто не увидел!
извини я пытаюсь вырастить кодера из 16 летнего ребенка и уже заебался с вами тупорылыми спорить и че-то объяснять. тебе я все скзал что хотел. дальше сам
Но это не гайд, а гайдлайн. Это сборник советов откуда начать и чем заняться, а не "прочти эту книжку и вкатишься в профессию".
Ну я с абсолютного нуля начинаю, от туда и беру друг за другом пункты что учить и учу.
перекат >>1082836 (OP)
перекат >>1082836 (OP)
перекат >>1082836 (OP)
перекат >>1082836 (OP)
Это копия, сохраненная 17 ноября 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.