Это копия, сохраненная 24 мая 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Этот тред посвящён главному языку будущего - 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
Конфа /pr/ в Slack: https://slack-2chpr.herokuapp.com/
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
Добавили промисы, а мы смеемся. Присыпали сахаром прототипы и назвали классами, а мы смеемся.
Три тимлида прыгнули с крыши 16-этажного дома, взявшись за руки после попытки разгрести код с тридцатикратной вложенностью, а мы смеемся и просим еще. Промисы, колбэки, асинки/авайты — мы смеемся. Модульность, асинхронность, непрерывная интеграция, юнит-тестирование, key-value хранилища, два десятка фреймворков на любой вкус — мы смеемся. GitHub позволил писать приложения на десктопе, запихивая в каждый хеллоуворлд отдельный браузер — мы смеемся. Мы бездушно подпишемся под чем угодно, наши предпочтения не основаны на здравом смысле, бесцельные споры — наша стихия, мы — истинное лицо современного IT.
Сенкс. Но как чтобы для при отмене просто закрылось, а не писалось null или undefined где указано.
vanilla.js
Блядь ну подумай йобана. Хорошо сука подумай. Ответ под спойлером:https://jsfiddle.net/2gxj0Lv0/26/
https://jsfiddle.net/yqtzgz1r/6/
Потому что ты даун, очевидно же. Таким как ты даже помогать нет никакого желания. Противно смотреть.
Ещё раз внимательно посмотри на строки 23 и 24. Подумой, что они должны делать, и что они делают сейчас.
Да я чёт не въезжаю в колбеки ваще.
async function populate(url, callback){
await fetchJSON(url);
await callback(json);
}
Так что ли?
await callback(json);
Объясни, что делает эта строчка?
Меня удивляет, как ты смог в одном месте написать нормально, а в другом — нет. Явно спиздил где-то, не вникая, прям как глупый списывальщик в классе.
конфиги такие: https://ideone.com/tc2KJ5
ты разберись с промисами для начала, а потом ебашь async/await
Пытается исполнить функцию принятую параметром с параметром, полученным из предыдущей.
Ты не знаешь, сколько я времени въебал чтобы к такому виду прийти. Конечно пару подсказок у друга взял, но в целом это часы и часы гугла, иногда несколько суток к ряду.
Я не могу понять как ебучие колбеки делать, абстрактные примеры на стаковере или ещё хуй знает где вообще не помогают.
В целом это эта функция, которую я пытаюсь разбить на блоки https://jsfiddle.net/9fv5stx4/ , и я просто читаю и нихуя не понимаю как колбек сделать чтобы вызвать populate с аргументом, полученным из fetchJSON. Да я знаю, что из асинхронной функции нельзя просто взять и вернуть значение, но разве await/async не для того чтобы асинхронные вещи выполнять в синхронной манере?
в качестве упражнения предлагаю тебе реализовать свой собственный fetch, используя XMLHttpRequest:
заготовка: https://jsfiddle.net/nzxhszxd/1/
готовый код: https://jsfiddle.net/nzxhszxd/5/
$.get('http://sitename.com/api/posts')
.done((data) => {
console.log('Result', data)
})
.fail((err) => {
console.log(err.statusText)
})
для начала ответь на вопрос: какое отношение REST имеет к jquery в частности и к js вообще?
бамп
раз никакого не имеет, то смотри, что тебе семантически удобнее. надо рест - делай рест. не надо - не делай.
>но разве await/async не для того чтобы асинхронные вещи выполнять в синхронной манере?
Именно для этого, да.
Ладно, хуй с тобой, не буду пытаться тебя самого подвести к ответу, распишу.
Твой код https://jsfiddle.net/yqtzgz1r/6/
>await populateLegend(json);
Вызывает функцию populateLegend, передавая в неё json. Где ты создал объект с именем json внутри функции populate? Нигде, у тебя его нет. Откуда он должен браться? очевидно, из fetchJSON(url).
>await fetchJSON(url);
Действительно вызывает fetchJSON, дожидается его выполнения (т.е. получения данных из интернета) и лишь затем переходит на следующую строку.
Внутри fetchJSON
>return json;
вполне вовремя возвращает эти данные, только когда они получены.
Но куда он их возвращает? Вникуда. Ты не сохраняешь возвращённые данные нигде.
Вот тут
> const json = await response.json();
же ты нормально сделал, и асинхронную функцию вызвал, и возврат присвоил переменной. так и там тоже
>const json = await fetchJSON(url);
сделай и всё должно заработать.
Блядь, точно, анончик, пиздец. Я не спал пару дней и уже дупля не давал почти что я делаю. С работы вернусь и сделаю, спасибо, держи интернеты.
можно ли создать удаленный репозиторий(на гитхабе) локально?
я знаю, что можно сделать "git clone" уже существующего на моем гитхабе репозитория.но как сделать наоборот, т.е. например создал папку на рабочем столе -> сделал в ней git init, и как через командную строку дальше разместить его на гихабе?
скачай гитдесктоп и не мучайся
создаешь реп на гитхабе, затем git remote add * && git push -u master в своем локальном
спасибо.
а создать удаленный из локального получается нельзя?
>git remote add && git push -u master
&& - что это?
В общем плане вкусовщина. Для новичка- если совсем нуб, проще будет электрон, если нуб, но при этом много пилил расширений под хром и знаком с его хромовским api - nwjs.
В не общем плане, разница в построении архитектуры приложеия на низком уровне. Если у тебя ПО для которого важно то,к ак устроенна в нем мультипроцессорность, как именно и по какой логике создаются рендер процессы, работа с контекстами ноды\браузе, и прочее, то тут есть разница. (самое очевидно из такого, nwjs позволяет не создавать на каждое новое нативное окно по процессу, в то время как в электроне это невозможно).
Я пилю кастомный браузер для себя. И долго метался между ними двумя. Витоге по всем юхкейсам все взвесив nwjs подошел лучше. Но для "стандартных" проектов, которые все берутся пилить на этих платформах, каких-то там утилит и прочим, что вообще не стоит пилить на таких тяжеловесных штуках - проще электрон, ибо у него api более удобно оформлено для нубов.
Electron построен вокруг CEF, NWJS вокруг полноценного хромиума. Вся разница в том, как контексты ноды внедряются в браузер движка, и как дергаются нативные апи. (в электроне это обертки над cef, в nwjs это переиспользование апи для chrome apps\extensions.) Короче говоря, разница эта важна только в очень специфических случаях.
>например создал папку на рабочем столе -> сделал в ней git init
В командной строке переходишь в нужный каталог и делоешь git init
>и как через командную строку дальше разместить его на гихабе?
git push
На, читай https://git-scm.com/book/ru/v2/
создать реп на гитхабе из командной строки, ты про это? гитом - никак, git - это не клиент для гитхаба. в github desktop наверное можно.
>а создать удаленный из локального получается нельзя?
Используя github API можно.
https://stackoverflow.com/questions/2423777/is-it-possible-to-create-a-remote-repo-on-github-from-the-cli-without-opening-br/10325316#10325316
https://stackoverflow.com/questions/28385884/how-to-create-repository-in-github-through-github-api
А мне вот больше электрон приглянулся, так как по стилю программирования он как нода, а нвжс показался "простоватым"(понятно, что не в плане возможностей). Не знаю, как объяснить. Ну и по быстродействию, нвжс быстрее работает лично у меня.
мимо
У них совершенно одинаковые возможности в плане функционала, который они предоставляют и позволяют реализовать.
Разница на низком уровне реализации. И архитектуре этой реализации. Это может быть важно лишь тем, кто и пилит что-то углубляясь на этот самый уровень, а не просто делает обертки для сайтов.
Ну и если это важно, то - nwjs старше электрона. Электрон пилится гитхабом + сообществом, но рулится самим гитхабом и его компанией. Это изначально корпоративный проект, хотя начинался тоже как проект одного единственного чувака (до релиза atom-shella, он пилил PoC у него есть в его репозитории).
nwjs пилится в сущности одним чуваком + сообществом + инвестиции от компаний (в nwjs вливаются intel). Короче как-то так.
А, ну еще когда все начиналось, был AppJS, но он очень быстро сдох не выдержав конкуренции.
Это о том, что на электрон подвязано намного больше продакшен проектов корпораций (атом, vscode), что собственно не даст ему просто так внезапно если вдруг что издохнуть.
С nwjs дела иначе, на нем таких крупных массовых проектов вроде нет.
Электрон в общем-то и выстрелил в тот момент, когда разработка nwjs сильно затормозилась. Истории была очень похожа на раскол node.js на io.js, собственно и просиходила в тоже время. Хотя в тих случаях это история была не о форках, а о платформах.
>если совсем нуб, проще будет электрон, если нуб, но при этом много пилил расширений под хром и знаком с его хромовским api - nwjs
Видимо я как-то не правильный нуб. Электрон мне показался сложнее, чем нвжс.
Зачем тебе с кем-то советоваться? Сиди и дрочи сначала базовые конструкции языка. Потом придумай себе задачу и пили её. Далее план всегда одинаковый:
0. Хочу сделать N
1. Не знаю, как сделать
2. Гугл
3. Гугл
4. Гугл
5. Гугл
6. Спросить конкретно твой вопрос на стаковерфлоу/2чч.хека/пр
7. go to 0
Со временем будет опыт, что-то будешь делать без гугла или хотя бы будешь конкретно знать, где искать. Так примерно вся разработка на всех языках и происходит, если ты, конечно не синьёр и не пишешь всё на память(кроме синьёров 2000 года рождения)
Котаны, давно забил на JS. Напомните правильно ли я помню (и понимаю) как работает async/await:
После инструкции await ожидается промис, после чего конструкция ожидает пока этот промис выполнится и результат из него (resolve или reject, не важно вроде) будут переданы в константу, в данном случае в res. В конце функция обозначенная как async всегда будет возвращать промис, даже если там примитив, т.е оно неявно создает промис в выполненном состоянии и возвращает его, поэтому этот async можно передать в другой await тем самым как бы создавая цепочку.
>Котаны, давно забил на JS
Тот, кому простить предательство, будет предавать тебя всю жизнь.
Иди туда, где был. Отныне мое сердце принадлежит другому.
Если промис реджектится, то await выдаст ошибку, так что await нужно в try/catch заворачивать.
>В конце функция <...> как бы создавая цепочку.
Хуй знает, что ты тут имел в виду, но скорее всего ответ да.
>async function f(){return 5}
>const p = f(); // p — промис
>const r = await p; // r == 5
Пакет нпм YouTube-audio-stream какой то уебанский, ничо не понятно. Смог консольный плеер замутить только.
А мне веб нужен. Хелп.
надо создавать аудио-стрим как то? А как? Если для экспресса есть догадки, то как на коа реализовать - я в тупике.
Спасибо братишка. А то я уже стал разбираться с библиотеков 'co', чтобы вспомнить как эта хуйня вся работает. Там же вроде на корутинах все реализовано было.
Есть существующий сайт, пишу юзерскрипт для себя. Ясно, что я вообще понятия не имею как это делать.
И мне в общем нужно изменить элемент на пикриле. Что это такое и как к нему обратиться, чтобы изменить стили у него?
Ты аудио-файл с ютуба получить не можешь или имея аудио на сервере на сайт не можешь застримить его?
youtube-dl -f <код_формата_для_аудио> -g <video_id>
Получаешь прямую ссылку на аудио файл, дальше хоть в <video> вставляй.
(вебм аудио, работающее в html5 video имеет коды 251, 250 и 249 самые часто доступные, остальные в сорцах youtube-dl сам найдёшь).
>Пакет нпм YouTube-audio-stream какой то уебанский, ничо не понятно.
А тут ютуб виноват, не дают, гады, нормального АПИ для скачивания всех форматов. Я youtube-dl на js для себя портировал, там да, жопа та ещё, особенно для декрипта сигнатур всяких.
Алсо, упомянутая тобой либа какая-то ниочинь, она какчает видео и с помощью ffmpeg'а конвертит в аудио. Лучше вот https://github.com/fent/node-ytdl-core попробуй.
Да я уже нашёл. Похоже что и правда там всё очень плохо
Сам я c# макака, но начинал свой путь с JS и многое уже подзабыл, и вот думаю стоит пройтись по JS и вспомнить его или сразу заняться TS?
Не подскажешь как добавить таблицу стилей в документ?
[CODE].b-link_button.is-censored::before{
content: '';
}[/CODE]
Проект в котором я буду участвовать делается на TS
> CSS-ку кастомную?
Ну я насколько понял - да.
> Я через плагины браузерные добавлял свои правила на лисе Stylish, например
Да не хотелось бы ещё лишний плагин заводить.
бля я и не знал о втором способе
Задача:
Простейший экспресс (или чистая нода) сервер локально.
Принимает с локальной реакт аппы запрос, редиректит на адрес, получает ответ, редиректит реактовской аппе.
Покажите пример, как реализовать, пожалуйста.
Заходи поясню
Надо, охуенная тема. Смотри funfunfunction, читай вот эту хуйню - https://github.com/MostlyAdequate/mostly-adequate-guide
не оч понял что ты именно хочешь
если тебе нужен before.content - добавляй свой цсс через addstyle
Такой нет, т.к. язык динамический. Более-менее нормально работает VS Code и Webstorm, там Typescript definitions есть.
бамп
создать из js правило css с описанием этого псевоэлемента и поместить его в CSSOM
И как лучше с этим быть? Сервер мой, могу просто на каждый патч запрос вешать новый токен с обновленной инфой и на стороне клиента тоже его использовать. Это вообще логично? Как подобные приложения должны работать? Кажется, я уже с логикой где-то налажал.
О, я придумал. Кажется, будет проще не в токене хранить юзеринфо, а каждый раз, как страница обновляется, слать запрос на сервер, чтобы он возвращал нужные данные о залогиненном пользователе, а по токену будет просто аутентификация.
А зачем мне вообще в токен что-то пихать? Почему так делали в видео, по которым я учился? Там, наверное, статическая информация была. Ну и ладно.
Ну, если я конечно все делаю неправильно, то можете что-нибудь подсказать.
Можно ли как-то сохранить получаемые данные из jsonа в переменную result и использовать вне функции? Получается только вывод в консоль, алерт итд.
Так, аноны, вот есть у меня библиотека, в библиотеке в одной из функций есть такой вызов:
var querystring = require('querystring');
var https = require('https');
var postreq = https.request(options);
postreq.write(postBody);
postreq.end();
Как мне посмотреть что именно эти функции делают?
Как вы заебали. Иди читай про асинхронное программирование. И учись тому, что тебе не надо сохранять свои данные из жсона в переменную, блядь.
Да пошел ты нахуй, пидрила
И как им пользоваться?
Там в официальной документации охуительное объяснение уровня запускаешь@писоешь@какоешь
https://nodejs.org/en/docs/guides/debugging-getting-started/
Запускаешь. Он тебе пишет порт. Открываешь блядь вdevtools в хроме ссылку, и работаешь. Там ахуенное описание. Все понятно даже идиоту.
Не хочешь девтулс в хроме, можешь в вс коде.
Написано же всё https://nodejs.org/en/docs/inspector/
Или ты ждешь, что тебе там будет написано как дебаггером пользоваться? ТОгда вынжужден тебя разочаровать, как пользоваться дебаггером конкретной среды, которой ты пользуешься - ты должен и так знать. Инспектор лишь предоставляет протокол для взаимоействия тоего дебаггера с нодой.
Мне непонятно, можешь считать меня идиотом.
>Он тебе пишет порт. Открываешь блядь вdevtools в хроме ссылку, и работаешь.
Пикрелейтед. Ну или WebSockets request was expected если ws:// убрать
>>59364
А так чтобы без установки всякого левого говна?
>>59365
Вообще я задавал конкретный вопрос, как мне посмотреть что делают функции: >>59355
В C для того чтобы это сделать я сразу открываю хедер с нужной функцией, если что потом еще в сорцы могу залезть. И в эклипсе это у меня так настроено, что я по ЛКМ+Ctrl сразу открываю функцию. Ну я и хочу похожий функционал, но для редактора ноды, чтобы не копаться в сотне файлов и искать где же там эта херня реализована.
>В C для того чтобы это сделать я сразу открываю хедер с нужной функцией
Документацию читать не пробовал?
>Пикрелейтед
>Chrome DevTools
>Option 1: Open chrome://inspect in a Chromium-based browser. Click the "Open dedicated DevTools for Node" link.
А ты что блядь открываешь?
Ой дурак.
Тебе не дебаггер нужен. И не исходники читать.
иди, читать, документацию блядь. https://nodejs.org/dist/latest-v9.x/docs/api/
У меня дедлайн через 3 дня, а еще нихуя не сделано, я только всякую документацию по Javascript открыл и в ней нихуя не понятно. У меня уже 200 вкладок в браузере открыто и я половину из них я прочитал, но нихуя не могу понять.
Сейчас пытаюсь разобраться, как мне выводить все мои https реквесты в лог.
>Сейчас пытаюсь разобраться, как мне выводить все мои https реквесты в лог.
Ебать. Сделать обертку вокруг модуля https в котором реализовать логгирование и использовать его вместо оригинального. Паттерн Прокси - слышал о таком, горее ООП-программист.
WebStorn. Я пользуюсь его аналогом для Java - IntelliJ IDEA, тут тоже есть поддержка джаваскрипта, в принципе норм работает. Правда тупит иногда.
Да, но второе семантически правильнее, как бы сразу очевидно что оно делает и это функция. Можно делать так: arr.map(Boolean). Возможно оно и работает быстрее, но не уверен.
Ну например, пишу я игру, и говорю гипотетическому персонажу human.raiseLeg('left'). Он раздумывает, запускает анимацию поднятия левой ноги, а после того, как анимация закончится, он кидает Promise.resolve(). Я резолв принимаю и после этого говорю ему: human.raiseLeg('right'). Он раздумывает, а потом кидает Promise.reject('Я что, на хуе стоять должен?'). Я в кэтче это ловлю и отправляю пользователю соответствующее сообщение, предлагая поразмыслить ему над более подходящей командой.
Вот насколько так правильно делать? Я заметил, что 1) к моим реджектам подмешиваются другие эксепшены типа ReferenceError, и 2) даже если отделять мои сообщения от остальных исключений, дебажить становится трудно, потому что через промисы просерается стек вызовов. Или может, по крайней мере, возвращать мои ошибки через резолв типа resolve({ fail: 'Я что, на хуе стоять должен?' })? Или вообще как бы вы подобную задачу решили?
Ты наверное на первоклассников тоже кричишь, что они дебилы и умножать даже не умеют
Так, ну с хуйней разобрался более менее.
Мне на самом деле не сам Javascript нужен, а понять как работает сетевой стэк Дискордовского API, ну вот я и пытаюсь развинтить эту либу: https://discord.js.org/
Сейчас пока только разобрался как отправлять сообщения через Webhooks, и то там свои ньюансы.
Сейчас пытаюсь понять этот код и как именно он принимает сообщения на сетевом уровне, то есть чтобы что-то подобное я мог провернуть с curl-ом или другой подобной библиотекой: https://gist.github.com/eslachance/3349734a98d30011bb202f47342601d3
Хорошо. Не кричишь, а обзываешь
С промисами проще писать тесты, поэтому решил склониться к ним. И вот вопрос, а может зря?
import React, { Component } from 'react';
После реакта можно развлечься, может вакансия подвернется, че бы нет.
мимо засматриваюсь на джава и питоно макак, которых пачками перевозят заграницу.
Спс
благодарю
еще вопрос назрел . То есть indexOf() вернет индекс первого элемента массива , значение которого не равно e ?
так ведь перед indexOf() стоит отрицание ~ . значит функция будет работать в обратном направлении .
если бы небыло отрицания - indexOf вернула бы индекс элемента , значение которого = e
Думаю, это сделано для того, чтобы не похерить все делегируемые объекты, модифицировав их прототипный объект.
В смысле? Я не понимаю твой ответ. Можно спокойно изменить любой метод в любом прототипе, в том числе стандартный в базовых объектах. Так в чем смысл отдельного свойства prototype?
Вернет значение индекса и потом применит побитовое отрицание. То же самое что перевести число в двоичное представление и заменить нули на единицы а единицы на нули
>отрицание ~
побитовое отрицание. Это не логическое НЕ.
~01011100 = 10100011
~0 = -1
~1 = -2
~2 = -3
и т.д.
есть клиентская (VIEW) часть для нее я выбрал библиотеку React . состояние приложения я буду хранить в store Redux .
для серверной части :
нужен роутинг , для этого буду юзать react-router
база данных - MySQL . для взаимодействия с БД использовать планирую PHP .
таким образом , PHP мне нужен только для получения данных из БД и дальнейшей отправки их на клиент посредством Ajax .
Правильно ли я понимаю взаимодействие между клиентской и серверной частью ? не намудил ли с выбором инструментов ?
ты либо остряк , либо очень глупый
>Правильно ли я понимаю взаимодействие между клиентской и серверной частью ? не намудил ли с выбором инструментов ?
Вот на этом этапе стоило бы задуматься, правильно ли ты поступаешь, что дрочишь инструменты не понимая основ.
Прошу объяснить без категоричных высказываний - туда ли я зашел?
Если мне придется работать не удаленно определенное время для стажа - я готов, не критично. Важна первоначальная цель.
Нормана, главное делай, через 100 сайтов ты считай уже мастер верстки, методологии и всего всего.
Но мой совет: Спрашивать это хорошо, но ведь самому попробовать это неплохо?
Главное вести отчет о себе в Гите, но правда я не знаю какая у тебя цель, деньги или Искусство.
>зачем мой пост из пыхапе треда закопипастил?
Мне просто интересно было как местные отнесутся к этому посту.
Реакция везде одинаковая: 1-2 ответов на вопросы, 10 подрывов уровня "КАК ОН ПОСМЕЛ?!".
>Пришел какой-то залетный хуесос, который ни дня не учился и ни сделал ни одной задачи и сходу начинает спрашивать про работу и перспективы.
Вернулся из рубитреда. Там мне предложили написать HelloWorld и предложили зп 300к в месяц руби программистом.
Спасибо за интерпретацию, но у меня вопрос именно в асинхронных методах. То есть, ты вызвал moveLeftLeg, он подумал, сходил покурить, вызвал какой-нибудь setTimeout, доложил серверу о том, что ты приказал ему поднять ногу, и только потом поднял. А следующую команду ему нужно дать только, когда он закончит предыдущую. И вот здесь у меня прямо чешутся руки делать это через промисы, учитывая все вышеописанные недостатки.
В том, что если мы унаследуем первый объект от второго, а потом поменяем свойство второго объекта именно объекта, а не его прототипа, то это не затронет унаследованный объект, прототип останется неизменным. Можно и прототип поменять, никто не запрещает. Но тогда это затронет и все делегирующие объекты, если у них внутри себя эти свойства не переопределены.
Для лохов. Юзай redis и koa.
Давай больше инфы с конкретной задачей, я хуй знает что тебе нужно там.
реакт-роутер для роутинга серверной части на пхп, че
с помощью чистого js, можно и jq
Скачать xml'ку, распарсить, отобразить данные, как и где тебе нужно. В чём вопрос?
Вроде эквивалентные операции же, почему в первом случае переменна становится статической, а во втором - нет.
(() =>{...}) () ; - синтаксис функции, которая вызывается сразу же. Без () в конце она не будет вызываться.
Удали во втором варианте ( перед function и заработает.
То есть разница лишь в том, что в первом варианте она сразу вызывается, а во втором не сразу. То есть если функцию сразу при объявлении не вызвать, то переменная counter не сохранится, а если вызвать, то сохранится. Втф?
Что у тебя есть сейчас вообще? Куда ты вывести хочешь?
Имей в виду, что из-за CORS'а просто так в скрипте на своём сайте в браузере эту xml'ку ты не скачаешь (так что jq бессилен).
Ну а на сервере в nodejs всё элементарно:
request(url, (err, resp, data) => {
xml2js(data, (err, data) => {
console.log(data) // { rating: { kp_rating: [ [Object] ], imdb_rating: [ [Object] ] } }
})
})
А первом случае ты делаешь один вызов, после которой у тебя появляяется одна единственная переменная counter в замыкании. И замыкание всего одно.
А в вот тором случае, ты каждый раз создаешь новое замыкание, в котором хранится своя собственная переменная counter.
Что не понятного-то блядь.
Ты не пробовал упростить свой код, чтобы понять, в чем дело?
В первом случае у тебя он такой
>var counter = 0
>function myFunction() {
> element.innerHTML = counter++
>}
а во втором
>function myFunction() {
> var counter = 0
> element.innerHTML = counter++
>}
>просто так в скрипте на своём сайте в браузере эту xml'ку ты не скачаешь
из-за этого и пришёл сюда, так как не смог, к сожалению доступ есть только к дизайну, так что хотелось бы всё таки на стороне клиента выполнять, вот пример который из-за этого сейчас не работает yraaa.ru/scripts/rating-kinopoisk-imdb
Спасибо, анон. Я понял. Правда минут 15 доходило, но разобрался.
Я искал проблему в первой функции, а она оказалась во второй.
Вторая функция стирала из памяти мое замыкание каждый раз после своего завершения.
Если добавить перед ней add = add(); то все снова работает.
Второе не наботает потому, что он каждый раз создаёт новую функцию и вызывает её. В первом случае функция создаётся изначально и вызывается одна и та же.
Как организовать это всё? Или хотя бы как загуглить правильно?
Повесить обработчик на список, который будет смотреть какой нибудь дата аттрибут у event. Target и в зависимости от этого аттрибута открывать/показывать форму. Гугли делегирование событий.
Максимально важно
Так и сделал, по id выцепляю выбранный элемент из списка и отображаю нужную форму, через show/hide.
Но вот теперь проблема - поля во всех формах required=True, и когда форма скрыта, а поля в ней не заполнены, то данные не хотят отправляться.
Какие есть варинты решения?
required=False - не самый лучший вариант т.к. не хочу на стороне сервера ещё и заполненность формы проверять.
Динамически создавать форму с валидацией в процессе.
Динамически заполнять required.
Проверять заполнение формы вручную (не использовать required).
Халявы нет.
Потому, что не в тексте надо смотреть, а в отладчике (DOM).
Ох-хо-хо
Я с JS вообще не знаком.
Печально-сложные,для меня, пути решения, ладно.
Спасибо за помощь.
Апи их загугли
На самом деле, можно попробовать такой фокус:
Изначально required не ставишь вообще.
Для элементов формы, которые должны быть required, делаешь класс типа "frm_required".
Дальше - у тебя же есть набор элементов, которые ты показываешь в данный момент? Допустим, они у тебя в переменной $currFrmElts. Тогда ты пишешь:
$currFrmElts.find(".frm_required").prop("required", true);
Вместо переменной у тебя может быть селектор:
$(...).find(...).prop(...);
Я понял, всё логично, спасибо, заюзаю такой вариант.
> Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования.
Вот это спизданул. На плакат нахуй.
ESLint
просто инклудить CDN в HTML нормально?
для чего существует bootstrap-react ?
правильно посмотреть в доках CRA bootstrap-react и просто bootstrap как они работают вместе. Инклюдить в хтмл хуйня, собери нормально, чтобы все пакеты из твоей сборки вебпака применились к бутстрапу.
а какие подводные если инклудить в ХТЛМ все же?
спрашиваю так как bootstrap-react не поддерживает bootstrap 4.
я ен пробовал, но предполагаю, что если все вебпаковские модули сработают (глянь сколько их в cra) на одной части кода и не сработают на той что с сдна будет неоч. Ну и лишний запрос с целой библиотекой не ок, когда тебе нужны только некоторые части, которые и запихаются в бандл.
Кстати, если мне надо сделать каждую строку таблицы кликабельной, чтобы при нажатии открывалась страница с описанием этого объекта, хранить id как <tr data-id="1"> это норм? Если без Jquery.
ок спасиб анон, пока пришлось взять бутстрап 3, так как столько времени копаться с этой хренью нету.
А, все.
На стороне сервера валидацию в любом случае надо делать. Потому что послать данные на сервер не через пользовательский интерфейс, а как-то ещё (например, через Postman или Curl) — дело пяти минут. На клиенте валидацию делают только для удобства пользователя, а не в качестве реальной меры безопасности.
https://pastebin.com/pjxBvz5E
По-сути, строгий режим мне нужен только в define-функции, т.к. скрипт загружается в страницу.
Пробовал ставить в начало файла? У тебя где-то в середине, может поэтому?
Если нужно только для функции, то в ней и пиши, а не перед ней.
Пробовал как и перед define, так и в define функции, так и все сразу. Все 'use strict' стоят перед началом кода (в самом начале файла).
Нужно не только для функции, а для всего модуля.
В vscode. Валидаторов нет.
привет, кто нибудь делал скрипты которые читают историю браузера и подстраивают стиль на сайте под его вкусы
например если юзер читает мейлач, то фон будет как у мейлачика, тот же цвет.
если порнхуб то черный фон и желтые буквы
и тд
Ты не можешь читать историю браузера.
Ты прежде чем задавать такие вопросы не задумался хоть на секунду о том, насколько абсурдна твоя задумка? То есть ты действительно предполагал, что любой кто угодно, может просто вот так запросто посмотреть какие сайты ты посещаешь?
А адаптивную тему как в мобильном хроме на десктопную версию еще не сделали?
>запросто посмотреть какие сайты ты посещаешь
Можно.
Сейчас узнают ип, географический адрес, страну, провайдера, комп, браузер
Не напрямую из браузера. Гугл может, у него закладки везде, а ты — нет.
Как к этой хуите прикрутить свои классы?
Все сам сделал. Какой же я молодец.
Ну это понятно, антош, я это как раз для забывчивых юзеров делаю, которые могут забыть заполнить одно из 5 полей.
чому я дебил у меня получается так много биндов? есть какой-то "более правильный" способ?
Бля, ну пагинацию делать через отдельную библиотеку - это уже совмем перебор. Ну тоесть блядь вообще пиздец как перебор. Там самому на коленке писать минут 5. И то из них 4 ты кофе пить будешь.
Анон, история такая. Подрядили на работе писать фронтенд. Ну я его и пишу уже месяца два. За это время у меня в голове образовалась просто нечеловеческая каша из стандартов, подходов, фреймворков и всего остального.
И вот настал день, когда мы решили начать переписывать наш фронт на реакт. Естественно, я хочу подойди к этому вопросу ответственно и структурировать в голове всю мою кашу. Так вот, где бы найти хороший учебник по js, в котором учитываются самый новые стандарты и вот этот ваш ES-6 (погуглил тут и оказалось, что есть уже 8), но в пизду его.
Антоны, я не знаю ни парадигм ООП, ни модели MVC.
Хочу окунуться в практику, познавая и осмысляя теорию в процессе.
Зарабатывать программизмом не буду, поэтому мой говнокод в продакшене вы не увидете.
Вопрос у меня вот в чем. Хочу уметь в node js.
Стоит ли мне сначала изучить js, а потом уже постигать нюансы ноды?
Или сразу, с нулевыми знаниями можно с нее начинать?
ой, давай ты вместо того, чтобы пиздеть лучше покажешь как надо
>>62836
у меня лэгаси. ЕС6 нельзя, бабель тоже нельзя. ну точнее я блять не успею так быстро перейти на бабель
придумал как вариант закэпчурить this в переменную, но не ли чего-то более идеоматичного
еще раз проблема:
1. Сделал класс
2. Класс содерджит поле $element
3. Хочу в методах класса вешать листнеры jquery и внутри их обращаться к полю через this
> >JS это язык с ООП, в нём нельзя говнокодить
> JS это язык с ООП
Ой веей
> в нём нельзя говнокодить
> JS
> нельзя говнокодить
Ооооой веееееееей
Че-то я сомневаюсь, что я бы справился за 5 минут. У меня опыта нет. Да и зачем, если есть готовое решение?
Ну хуй знает. Зачем ты вообще тогда в это полез? Вон уборщику в макдаке платят 45к, и ему тоже норм. И он тоже не хочет разбираться.
App - это объект приложения. А router это объект маршрута? Т.е он сразу как-то привязан к app и знает что мы определяем миддлвары именно для этого приложения?
И еще один вопросик. Объект req.session доступен в течении того времени, пока сохранена определенная кука в браузере? Т.е даже если HTTP-сессия будет закрыта, то эта, можно сказать user-session будет все еще активна, правильно?
Тогда как работает res.locals? Это локальное хранилище переменных для текущего запроса или для всех запросов в определенной сессии?
>придумал как вариант закэпчурить this в переменную, но не ли чего-то более идеоматичного
Ну так-то
>const self = this
вполне себе типичный жс-код был какое-то время (может даже и сейчас), так что нормальный вариант.
бамп
>Зачем ты вообще тогда в это полез?
Ну например потому, что я вообще не на js-е пишу, но пришлось немного заняться фронтендом и я не хочу творить откровенную хуйню?
>Пол Грэм в статье «Великие хакеры» утверждал, что программисты, пишущие на Java, далеко не так умны, как приверженцы Python. Он взбесил множество глупых Java-программистов (неужели я это написал?), которые принялись писать на своих сайтах развернутые контраргументы. Бурная реакция показала, что он задел за живое.
>Я присутствовал при первой презентации этой статьи. И она заставила меня вспомнить один эпизод.
>Я приехал в Индию, чтобы набрать сотрудников, и просматривал сотни кандидатов, претендующих на десяток рабочих мест. Наша команда, проводящая собеседования, страдала от нехватки сил и времени из-за низкого процента успешно пройденных собеседований. Несмотря на поздний вечер, головную боль и красные глаза, мы не расходились, пытаясь найти новый подход к отбору кандидатов. Требовалось оптимизировать процесс, увеличив число интервьюируемых или каким-то образом привлекая более толковых людей (а лучше и то и другое). Тем, что осталось от моего голоса после двенадцатичасовых попыток получения ответов от ошеломленных программистов, я предложил добавить к ключевым словам, по которым наши специалисты по поиску персонала отбирали резюме из базы данных,
слово «Smalltalk». «В Индии никто не знает этого языка», — кричал заведующий отделом кадров. Но на это и был направлен мой расчет. Ведь программирование на Smalltalk коренным образом отличается от программирования на Java. Вариативный опыт даст нам новый уровень требований к кандидатам, а динамическая природа Smalltalk позволит Java-программистам подойти к решению задач с другой стороны. Я надеялся, что эти факторы дадут нам специалистов с высоким уровнем технической подготовки, которого не было у уже просмотренных соискателей. Добавление к списку требований Smalltalk удивительным образом уменьшило кадровый пул. Но теперь к нам приходили более одаренные люди. Они действительно разбирались в объектно-ориентированном программировании. Они знали, что Java не является универсальным, как его порой пытаются представить. Многие из них обожали программировать! Нам оставалось недоумевать, где же вы все были в предыдущие две недели?
>Я до сих пор пользуюсь этим приемом при поиске разработчиков. Как лицо, отвечающее за подбор персонала, могу сказать, что в первую очередь это показывает степень вашей заинтересованности. Если я узнаю о том, что человек изучает некую область для саморазвития или, еще лучше, — для удовольствия, то пойму, что передо мной целеустремленный и любящий свою профессию специалист. Когда я спрашиваю людей, довелось ли им познакомиться или использовать некоторые нестандартные технологии, меня сводит с ума ответ: «У меня не было возможности работать в этой области». Не было возможности работать?! Но у меня ее тоже не было! Но я использовал свою возможность учиться.
Эти второстепенные технологии и методологии не только создают образ правильно мотивированного и увлеченного своим делом человека. Они и в самом деле делают вас глубже, лучше, умнее и изобретательнее. Если вы не считаете все вышеперечисленное достойными внимания причинами, возможно, вы неверно выбрали профессию.
>Пол Грэм в статье «Великие хакеры» утверждал, что программисты, пишущие на Java, далеко не так умны, как приверженцы Python. Он взбесил множество глупых Java-программистов (неужели я это написал?), которые принялись писать на своих сайтах развернутые контраргументы. Бурная реакция показала, что он задел за живое.
>Я присутствовал при первой презентации этой статьи. И она заставила меня вспомнить один эпизод.
>Я приехал в Индию, чтобы набрать сотрудников, и просматривал сотни кандидатов, претендующих на десяток рабочих мест. Наша команда, проводящая собеседования, страдала от нехватки сил и времени из-за низкого процента успешно пройденных собеседований. Несмотря на поздний вечер, головную боль и красные глаза, мы не расходились, пытаясь найти новый подход к отбору кандидатов. Требовалось оптимизировать процесс, увеличив число интервьюируемых или каким-то образом привлекая более толковых людей (а лучше и то и другое). Тем, что осталось от моего голоса после двенадцатичасовых попыток получения ответов от ошеломленных программистов, я предложил добавить к ключевым словам, по которым наши специалисты по поиску персонала отбирали резюме из базы данных,
слово «Smalltalk». «В Индии никто не знает этого языка», — кричал заведующий отделом кадров. Но на это и был направлен мой расчет. Ведь программирование на Smalltalk коренным образом отличается от программирования на Java. Вариативный опыт даст нам новый уровень требований к кандидатам, а динамическая природа Smalltalk позволит Java-программистам подойти к решению задач с другой стороны. Я надеялся, что эти факторы дадут нам специалистов с высоким уровнем технической подготовки, которого не было у уже просмотренных соискателей. Добавление к списку требований Smalltalk удивительным образом уменьшило кадровый пул. Но теперь к нам приходили более одаренные люди. Они действительно разбирались в объектно-ориентированном программировании. Они знали, что Java не является универсальным, как его порой пытаются представить. Многие из них обожали программировать! Нам оставалось недоумевать, где же вы все были в предыдущие две недели?
>Я до сих пор пользуюсь этим приемом при поиске разработчиков. Как лицо, отвечающее за подбор персонала, могу сказать, что в первую очередь это показывает степень вашей заинтересованности. Если я узнаю о том, что человек изучает некую область для саморазвития или, еще лучше, — для удовольствия, то пойму, что передо мной целеустремленный и любящий свою профессию специалист. Когда я спрашиваю людей, довелось ли им познакомиться или использовать некоторые нестандартные технологии, меня сводит с ума ответ: «У меня не было возможности работать в этой области». Не было возможности работать?! Но у меня ее тоже не было! Но я использовал свою возможность учиться.
Эти второстепенные технологии и методологии не только создают образ правильно мотивированного и увлеченного своим делом человека. Они и в самом деле делают вас глубже, лучше, умнее и изобретательнее. Если вы не считаете все вышеперечисленное достойными внимания причинами, возможно, вы неверно выбрали профессию.
var html = document.documentElement;
var body = document.body;
var scrollTop = html.scrollTop || body && body.scrollTop || 0;
scrollTop -= html.clientTop; // в IE7- <html> смещён относительно (0,0)
alert( "Текущая прокрутка: " + scrollTop );
Извини, это уже что-то экстраординарное и сложное. Что-то уровня сложных оптимизаций, чтобы понять суть которых нужно иметь ученую степень. Вряд ли тут найдется человек, способный дать тебе ответ. Просто не обращай внимания на этот кусок кода, пожалуйста.
бамп
Все, до меня дошло зачем там body. Тупанул, заучился слегка лол
Просто, чтобы понять как работает этот код, нужно быть не меньше, чем чертовым гением.
Почему если в примере заменить на var scrollTop = 1 && body; будет NaN а если var scrollTop = body && 1; будет 1?
Сап, аноны.
Как нормально дебажить транспиленный ES6/7/x код?
А то меня уже доебало, что в хроме stepover улетает непонятно куда вместо перехода на след строчку, а внутри лямбд проебывается this.
Так это как раз с сурсмапами.
дело в том что при выводе body выводится объект, но почему то если менять местами то выводит NaN
Начал учить жс. Понял что он ебанутый какой-то. Посоветуйте годных транспиляторов, пока думаю о бабеле и тайпскрипте?
Как это относится к транспиляторам?
При чем тут твой пик? Один хер браузер не вдуплит import from.
На самом деле хуй знает конечно, мне весь этот ебанутый стек достался в наследство от CSSSR.
Ты долго еще будешь тупить, вместо того, чтобы пойти и почитать, как работает оператор && и зачем он нужен?
читал я, обчитался и все равно не понимаю. Сначала он натыкается на 1 идет дальше натыкается на body и с хуя ли NaN?
бамп
Во-первых, взгляни ещё раз, в какой момент ты выводишь значение scrollTop'а. Затем, иди по шагам назад и смотри, где, как и какие ты ему значения присваивал. Если не получится, в NASA не возьмём, это твой последний шанс.
Я все уже перепробовал прежде чем сюда писать. Если присвоить только body то будет object HtmlBodyElement, если присвоить 1 && body, то NaN, а если body && 1, то 1
Жаль, очень жаль. Но не отчаивайтесь, вам всегда будут рады в Сколково!
https://codepen.io/anon/pen/xWPved
Я понял, там дальше была арифметическая операция над результатом. Всем спасибо, все свободны!
Увы, слишком поздно. В качестве наказания следующее ваше собеседование будет провальным. Можете даже не ходить.
Ушел въебыватьно сначала поспать
Нахуя устраиваться? Иди на фриланс
Ухх бл, это ж на целую тильду нажать надо!
Бля в Линуксе && значит строчный цикл While true, а || значит While untrue, что это значит в JS?
Внук луковых оладей подрос.
чого? И что значит "в Линуксе"?
Документация.
>Посоны, а есть что-то свежее, чтобы сейчас сесть за Node.js? Работая на клиенте я конечно постоянно с ним каким-то боком взаимодействовал, но не хватает системных знаний. Привык учиться по книжкам, нравится логичность подачи материала в них. Но вот смотрю на "Node.js in Action", а ей 100 лет в обед, при том что новые версии ноды выходят очень часто. Поделитесь опытом кто за ноду садился в последние год-полтора - по каким материалам изучали, как набивали руку, как разбирались с best practices.
>
На чистой ноде вроде как никто не пишет, поэтому смело выбирай фреймворк для начала, а потом литературу. По Express'у неплохо зашла «Веб-разработка с применением Node и Express. Полноценное использование стека JavaScript» Итана Брауна.
*мимо фронтендер, написал пару недель назад API на Express'е с авторизацией и всеми нужными плюшками.
Нет конечно. Это просто интерпретатор вне браузера, грубо говоря.
У меня есть две страницы: поиск организаций и добавление организации. На обоих страницах есть одинаковые компоненты: EconomicActivitiesSelect и TaxesCommitteeSelect. Оба подргружают данные по пользовательскому вводу и позволяют выбрать что-то из подгруженных вариантов.
Мой store имеет следующую структуру: https://pastebin.com/bCwR2BfB
Как сделать так, чтобы в mapStateToProps передавался не весь state, а state.organizationsSearch или state.addOrganization, чтобы можно было сделать так:
https://pastebin.com/r8tUuwvE
То есть, грубо говоря, компоненту должна передаваться часть state, а какая именно — зависит от того, где он размещён.
Пока что додумался только брать нужную часть state в родительском компоненте и спускать данные в свои EconomicActivitiesSelect и TaxesCommiteeSelect как обычные props. Это нормальный подход?
Насколько я помню -- neeqaque. А зачем тебе?
Насколько я помню, «нормальный подход» — это создать модель предметной области, как здесь:
http://www.r-5.org/books/computers/all-js/#/
http://www.r-5.org/files/projects/bookshelf-v10.zip
И в этой модели написать функции, которые в твоём случае назывались бы:
organizations()
addOrganization()
searchOrganization()
и так далее.
>>63944
Модель в числе прочего имела бы функции-«геттеры», что позволило бы передавать её куда угодно, в любой компонент. И он бы читал из неё данные, как будто они там есть. Как раз в зависимости от класса компонента, его параметров (они же «props» компонента) и от того, где он сейчас размещён.
Свои же данные, а тем более «window.sessionStore» модель ото всех скрывает.
Да, и у тебя должен быть компонент Router, их много, возьми любой стандартный роутер, он будет вызывать нужные функции или возвращать константы, в зависимости от адреса страницы.
Там русский технический писатель _умничает_, как у них принято. Упивается собой, вместо того, чтобы объяснять предмет.
Не читай ничего по программированию на русском, и будет тебе счастье.
Алсо, до некоторых вещей надо "дорасти".
Т.е. столкнуться с проблемой, для которой данная вещь является решением.
Хуямп.
Хули ты дурацкие вопросы задаёшь?
И причём тут парадигмы и модели, лол?
Учи язык.
И лучше английский, для начала.
Английский я знаю.
>И причём тут парадигмы и модели, лол?
>Учи язык.
Т.е. ты утверждаешь, что можно выучить объектный язык, не понимая модели ООП?
Надеюсь, ты такой же программист как и я.
Можешь начинать с 0 знаниями, но раз ты всё равно будешь постоянно бегать в доки ЖС, то почему бы не пробежаться по ней сразу, тогда будет меньше беготни в будущем.
хуле мусора, хуле мусора, хуле мусора, хуле?
ну да, лучше в твиттере писать, он надежнее))
| - And
|| - If != True
&& - If = True
Типа [ test ] || action
[ test ] && {action} (Угу кавычки во втором случае)
>| - And
Шо несёшь, это пайп.
>|| - If != True
>&& - If = True
Шо несёшь, это же же ИЛИ и И. Вот те пруф даже с первой же рандомной станицы http://www.tldp.org/LDP/abs/html/ops.html
>[ test ] && {action} (Угу кавычки во втором случае)
И? action && action тоже можно, чтобы вторая команда выполнялась только при успещном выполнении первой, например.
ВВеди в ЖС'е, блин, a == true && console.log("я лох"), точно так же выведется текст. Так работают логические операции, блин.
в прошлом году поглядывал, везде один реакт был
сейчас куда ни плюнь - вью
чзх реакт уже немодно?
За пределами хипстерских влажных фантазий реакт никуда не девался. Но если хочешь гоняться за бородатыми модниками в узких штанишках -- ради бога.
Причём тут немодно?
Vue гораздо менее opinionated.
Проще toolchain.
Меньше clutter.
И т.д.
И т.п.
И ещё год назад про него уже все всё поняли, кроме русскоязычных slowpoke.
Да это смузи-бородач решил рекламный буклет зачитать вслух, не обращай внимания.
Нет, ты.
Откуда вы, блядь, лезете?
Сказать по делу тебе нечего.
Припекло - охлаждай.
Зачем засирать тред?
Пиздец, сука, просто филиал /b уже тут устроили, программисты-пидоры-дебилы.jpg
> сейчас куда ни плюнь - вью
Примеры? Вот BitBucket недавно зарелизил одностраничную версию - там реакт, куда ни плюнь - dropbox, slack, sentry, rollbar - везде реакт.
Короче вопрос по организации this в реализации создания компонента class Timer extends React.Component
вот пример
https://jsfiddle.net/zpc3hz1x/
Класс в ES6 - это просто сахар, под капотом все тоже. В данном случае this это вообще что?
Класс рендерит компонент - и этот компонент и есть this?
Очевидно же, что this - это именно this - этот экземпляр.
С сахаром или без.
Вообще, смысл сахара - совместить функцию-конструктор и привязку наследуемого прототипа.
Вместо "this.increment = function(){ ... }.bind(this)" в конструкторе надо просто определить метод в классе, раз уж ты решил с сахаром.
Не жс, а С-- !!!
> заранее
Это называется "преждевременная оптимизация".
И она ничем не лучше преждевременной эякуляции.
>объясняет нормально
Знаешь, я давно уже программирую.
И все эти (детские) темы давно уже усвоил и даже успел забыть, лол.
Так вот, мне пришлось буквально продираться через текст на твоей картинке. Не понятно вообще нихуя. Левая терминология, манера изложения и т.п.
И у меня постоянно такое с русскоязычными текстами. Они просто ни о чём. Даже оригинальные, не говоря уже о переводах.
По английски читаю и понимаю гораздо быстрее. При этом, с разговорным у меня не очень, например.
Я таки дал себе труд прочесть вот это:
https://ru.hexlet.io/courses/js-ddd/lessons/container/theory_unit
Хуета ни о чём, как я и говорил.
Если бы я не имел дело с этой темой раньше, не понял бы вообще ничего.
Отдельно стоит отметить бессмысленные примеры кода.
Читни вот это вот, хотя-бы, если хочется на русском:
https://habrahabr.ru/post/232851/
Спс, просто у меня с английским языком пока проблемы (в процессе изучения), поэтому читать могу только какую-то документацию, и то понимаю лишь 40% написанного, остается читать лишь тексты на русском. У меня нет желания прямо влиться и понять - хотя бы иметь общее представление об этом. Спс за статью.
>>64858
>>64847
https://www.youtube.com/watch?v=AxZLJA84_74
Вот неплохое видео нашел по этой теме (ну как мне показалось), дай бог здоровья этому человеку.
Блядь, ну охуеть. Что делать?
Предыстория: накатил как всегда ноду/нпм, все вроде заебись, но потом у меня отказался галп работать, причем по ряду причин видимо, я долго с ним пердолился, несколько ошибок пофиксил, в итоге нагуглил, что по дефолту нод и нпм в репозиториях древние. Ну я удалил ноду и нпм, накатал все по гайду, а потом такая залупа. При том команда npm изначально работала после ранее перечисленного, лол, пока я не удалил /usr/lib/node_modules.
dependency injection - видимо когда пакет в себе и своем коде не содержит вредного и опасного кода, но содержит в себе зависимости, которые могут таковыми быть.
Проблема слишком раздута имхо, просто юзай проверенные библиотеки и почаще пиши свои решения и будет тибе щастье
>речь не об оператора шла
>use of operator
Это те же самые операторы. Впрочем, так-то почти всё можно назвать оператором
https://www.gnu.org/software/bash/manual/bashref.html#Lists
И тут их тоже И и ИЛИ называют, пускай и с припиской "... lists". Самое главное: суть их та же, что и при проверке логических условий: в A&&B бесполезно проверять второй операнд на истинность (исполнять команду B), если A не истинно, в то же время, если A истинно, то B необходмо проверить (выполнить команду/выражение) на истинность для получения.
Впрочем, вот тут http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_10 этому оператору дали навание AND_IF, так что частичка истины в твоих "if true" может и есть, я лишь хотел настоять на том, что нет какой-то глобальной разницы между этими и операторами и теми, что в условиях используются (как в JS, так и в баше), это одно и те же логические операции. Ну а ещё, тот >>63831 вообще цикл умудрился привязать сюда, что уж вот точно бред.
>>64969
https://www.gnu.org/software/bash/manual/bashref.html#Pipelines
>И у меня постоянно такое с русскоязычными текстами. Они просто ни о чём. Даже оригинальные, не говоря уже о переводах.
По английски читаю и понимаю гораздо быстрее. При этом, с разговорным у меня не очень, например.
Неистово двачую. По мне всё русскоязычное чуть ли не спизжено, переводы с английского в основном делают коряво, порой ничего не понятно, что имел ввиду автор оригинала. Причем пиздят всё и делают это в разы хуже.
>>64985
Спасибо что помог разобраться.
>dependency injection - видимо когда пакет в себе и своем коде не содержит вредного и опасного кода, но содержит в себе зависимости, которые могут таковыми быть.
Нормально все, не слушай дебила сверху, быстрее начнешь ковыряться, быстрей въедешь, удачи.
Не знаю, правильно ли сделал что написал в тред про JS, так как частично я думаю это и серверную часть должно затрагивать (node.js).
Есть множество сервисов, которые предоставляют клиентам возможность встраивания их виджетов к ним на сайт.
Как правило процесс встраивания заключается в банальной вставке стороннего скрипта к себе на сайт. Есть два типа таких скриптов:
//core.sitename.com/api.js
или скажем
//api.sitename.com/<uniqid>.js
Поговорим о втором варианте. Просмотрев его код (и код нескольких похожих сервисов), стало понятно, что содержимое там следующее:
///
/// Вначале идёт конфигурация конкретного пользователя
///
/// Далее идёт общий код для всех
Соответственно: 1 пользователь = 1 файл js, где внутри пару строчек уникального конфига, и далее общий код для всех.
Вопрос следующий.
Понятно, что изначально сформировать такой файл просто. Понятно, что если изменилась конфигурация у одного пользователя, то легко заново сформировать такой файл для него.
НО! А если у нас меняется что-то в коде, общем для всех (понятно что это изначально отдельный файл, а при создании файла <uniqid>.js идёт конкатенация). Нам что надо в таком случае? Пробегаться по всем таким файлам <uniqid>.js и их переделывать? Я не понимаю. Понятно что так не делается, но я не могу понять как это всё организовано.
У меня были мысли что на самом деле множество файлов <uniqid>.js и вовсе нет. Просто когда идёт обращение //api.sitename.com/<uniqid>.js он генерируется скажем так на ходу. Но каким образом? Есть вариант c .htaccess:
AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js
<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>
Но мне кажется что это костыли. Тем более возникает вопрос кэширования. Может кто-то сталкивался с подобным или объяснит как это всё устроено?
Не знаю, правильно ли сделал что написал в тред про JS, так как частично я думаю это и серверную часть должно затрагивать (node.js).
Есть множество сервисов, которые предоставляют клиентам возможность встраивания их виджетов к ним на сайт.
Как правило процесс встраивания заключается в банальной вставке стороннего скрипта к себе на сайт. Есть два типа таких скриптов:
//core.sitename.com/api.js
или скажем
//api.sitename.com/<uniqid>.js
Поговорим о втором варианте. Просмотрев его код (и код нескольких похожих сервисов), стало понятно, что содержимое там следующее:
///
/// Вначале идёт конфигурация конкретного пользователя
///
/// Далее идёт общий код для всех
Соответственно: 1 пользователь = 1 файл js, где внутри пару строчек уникального конфига, и далее общий код для всех.
Вопрос следующий.
Понятно, что изначально сформировать такой файл просто. Понятно, что если изменилась конфигурация у одного пользователя, то легко заново сформировать такой файл для него.
НО! А если у нас меняется что-то в коде, общем для всех (понятно что это изначально отдельный файл, а при создании файла <uniqid>.js идёт конкатенация). Нам что надо в таком случае? Пробегаться по всем таким файлам <uniqid>.js и их переделывать? Я не понимаю. Понятно что так не делается, но я не могу понять как это всё организовано.
У меня были мысли что на самом деле множество файлов <uniqid>.js и вовсе нет. Просто когда идёт обращение //api.sitename.com/<uniqid>.js он генерируется скажем так на ходу. Но каким образом? Есть вариант c .htaccess:
AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js
<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>
Но мне кажется что это костыли. Тем более возникает вопрос кэширования. Может кто-то сталкивался с подобным или объяснит как это всё устроено?
nvm накати
Я думаю, что такие файлы генерируются и кешируются на той стороне. Т.е. при изменении какой-либо части файл (или все файлы) автоматически генерируется заново.
Кешированием на клиентах можно управлять, добавив параметр (номер версии или хеш файла) в URL, типа api.example.com/ololo123.js?v=123456
>он генерируется скажем так на ходу.
>Но каким образом?
Общая идея такова, чтобы сервер при запросе js файлов (всех или некоторых) вызывал какой-то серверный скрипт, который и будет генерировать этот файл или брать уже сгенерированный ранее, проверять, менялось ли что-то и т.д.
Подробности зависят от того, чем ты пользуешься на сервере.
>все файлы автоматически генерируется заново.
То есть если у нас скажем 500 000 пользователей, у нас будет 500 000 файлов js? И при изменении в скажем так ядра, нужно будет все 500 000 файлов сгенерировать заново?
Я как-то сомневаюсь что так делается.
Ну вот это уже ближе к теме. Я тоже так думаю, но каким образом это делается?
Ведь если мы запрашиваем /<uniqueid>.js мы сразу получаем js. Как его сформировать на ходу при запросе?
Я как писал ранее нашёл единственный вариант с .htaccess:
AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js
<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>
То есть js при запросе в определённой папке обрабатывается как php, и отдаёт сформированный новый js. Но я где-то читал что это костыль, и так делать не надо.
Есть ли ещё какие-то варианты? На сервере PHP.
Это можно по-разному делать.
Зависит от того, что дороже - время выполнения запроса (и загрузка сервера) или место на диске.
Генерировать заново можно всё сразу, а можно именно по запросу - для конкретного пользователя.
Можно использовать что-то вроде include - общую часть читать с диска (брать из памяти, на самом деле), на лету добавлять (генерировать) специфику для пользователя и отдавать всё вместе.
Не знаю, как это сделать на PHP, но на Java EE это можно сделать несколькими способами совершенно несложно.
>читал что это костыль
Это не костыль (само по себе).
Так это и делают - при запросе файла xxx.yyy вызывают скрипт, который генерирует нужное содержимое, выставляет заголовки и отдаёт.
Так генерят картинки, например, и вообще что угодно.
Как это сделать именно на пхп - спроси в треде по пхп.
Изучил JS и DOM, дальше смотрю в сторону реакта. Но написав пару простых скриптов на чистом JS'e понял что многие свистоперделки банально не реализовать (или можно но будет говнокод), тот же пример - плавный скролл, или различные анимации. Про заёбы с IE и постоянные несовместимости во всяких мелочах молчу. Так же нет многих плагинов, которые есть на JQuery.
Так вот вопрос, сначала стоит освоить JQuery и потом перекатываться в реакт и уже писать JS исключительно с помощью JQuery? Нормальная ли это вообще практика JQuery + React?
Если хочешь учиться тому, что актуально сейчас -- забудь про jquery. Если только ты не ставишь перед собой задачу поддерживать очень старые браузеры.
>освоить JQuery
Чего там осваивать, наркоман? Как $ использовать? Даже у самого аутиста максимум неделя уйдёт. Ебашь реакт и не еби нам мозг.
Если хочешь совмещать MVVVC фреймворк и голый JS и/или JQuery, то Vue.js для этого больше подходит.
>Хрен с ними с браузерами, но как быть с тысячью написанных под JQuery плагинов?
Тебе сразу вся тысяча нужна? 99% вероятность того, что то, что тебе реально понадобится, реализовано уже сто раз под реакт.
>Неужели чтобы реализовать какой-нибудь банальный слайдер при разработке на React нужно его писать с нуля?
material-ui тебе в помочь. Ну и гугл научись уже использовать, классная штука, базарю.
Мля, анон, зачем ты к у кого-то спрашиваешь разрешения? Бери JQuery да используй на всю катушку. Если увидишь, что он на каком-то этапе перестанет тебе подходить, то просто возьмешь другой инструмент.
Вот да.
С учётом нынешнего зоопарка в JS-разработке, "нормально" будет всё, что сам считаешь нормальным.
Тем более, что требования у всех разные.
Например, покажите мне аналог DataTables на React или Angular или на Vue - хуй там ночевал.
И я не имею в виду "просто таблицу", а таблицу годную для промышленного применения и десятков тысяч строк данных + вся хуйня, что там наворочена.
Также и кукарекания про то, что jQuery "не нужно" - это отличный маркер долбоёба ограниченного человека.
Что мешает интегрировать все это? Дохуя ж библ.
Ну а так, похер конечно каким инструментом пользуешься. Обычно главное результат.
Хотя для меня реакт по сути очень удобный.
берут - вкатывайся, официальный опыт не лишним будет.
Вакансии, вроде, на первом есть, второй приятнее, а третий быстрее...
inb4 экспресс уже знаю
Koa раз Express знаешь.
Однозначно нет, то что ты описал это даже хуже чем макакинг. Лучше пиши очердной spa бложик.
Я ведь не реакт пердолю :с
Спасибо братюнь, но я тупой и не понял.
У меня пара вопросов по моему примеру:
https://jsfiddle.net/eh3hhq1g/
Что то я буксую с пониманием передачи контекста в классах в реакте.
С реактом я не работал (почти).
Но,
>так как внутрь функции <span> this не передан.
с чего ты это взял? Смотрел исходники реакта?
Как раз, логично было бы, чтобы он привязывал "правильный" this в таких случаях.
Ты ведь понимаешь, что "<span>" обрабатывается транспилером и превращается в настоящую фунцию, а потом вызывается с теми аргуметами и this, с какими реакт захочет?
А вот "onClick = {this.increment}" - это уже какая-то другая фигня, не могу сказать - читай мануал, смотри исходники.
И да, там может быть не bind(this), а call() или apply().
Самофиксюсь -
https://jsfiddle.net/3z0b1yv7/
коечто кажется понял, но не все. Аноны, помогоите.
//с чего ты это взял? Смотрел исходники реакта?
Как раз, логично было бы, чтобы он привязывал "правильный" this в таких случаях.
Бро, видимо по логике вещей и так и есть. Метод рендер как то передает this во все свои внутренние функции, и его можно подхватить. Поэтому и биндится метод из прототипа прямо внутри функции.
//И да, там может быть не bind(this), а call() или apply().
Представь, но нет, вот такая конструкция работает у меня.
В баттон передается не вызов же метода, а сам метод.
<button onClick = {this.increment.bind(this)} >Кнопка</button>
>this.increment = this.increment.bind(this);
Выглядит как лютый костыль.
Так не должно быть (по идее).
Но, как лучше - не знаю.
Странно, что такая проблема вообще возникает.
Ты бы погуглил ещё, возможно, как то вообще иначе всё делается (с учётом специфики реакта).
Вообще, в подобных случаях в ES5 часто используют такой фокус, как объявление в функции-конструкторе переменной self:
var self = this;
И далее, внутри всех методов используют self вместо this.
Но, странно, что подобный фокус, получается, нужен и в ES6 тоже.
Да блядь, откройте уже для себя стрелочные функции наконец.
class MyShiityComponent extends React.Component {
....
increment = () => {
....
}
render() {
return
...
<Button onClick={this.increment}>MyShittyLabel</Button>
}
}
Ну, вариант со стрелочными функциями я не стал предлагать потому, что они не являются полноценной заменой обычных.
А с другой стороны, для методов экземпляра - это то что нужно, да.
Не надо сагать в тематике, это некультурно
гляньте на идиота, нахуй читаемый код, лучше как на ассемблере, школьник ебучий.
Прочел учебник на learn.javascript.ru
А там внутри получается полифилы?
У кого-нибудь есть опыт в этом деле?
Его нет на php
XHR спасет отца русской демократии
Вот у меня есть папка с однотиными изображениями , они должный быть в цикле загружены в однотипные же элементы DOM. Галерея , да
И это вызывает кучу идиотских вопросов типа:
- Есть ли готовой решение вида "загрузить все файлы из папки в массив или объект или какое то еще хранилище"
- Нужно ли мне для этого называть файлы изображений максимально просто типа " 1.jpeg" и тд.
Пока всё до чего я додумался это сделать для каждого раздела объект и в нем поля
'scr' : '../img/1.jpg',
'description' : 'какая нибудь подпись под картинку'
Это вообще адекватно?
Анончики , подскажите пожалуйста . обещаю как научусь сам тоже буду помогать новичкам.
примерно так делают обычно:
есть некий апи который возвращает айтемы примерно как ты описал
GET /api/pictures
[
{ src: "/img/1.jpg", description: "foto kota"},
{ src: "/img/2.jpg", description: "tvoya mamka"},
]
зачитываешь айтемы любым способом
у теб будет массив объектов с полями src, description
теперь либо тупо ставишь их в ДОМ, но тогда они сразу начнут загружатся и будет немного хреново, либо ищи js-компонент который умеет подгружать картинки "правильно" - в бэкграунде, чтобы не было блинка при загрузке, по скроллу и тд
Запилил приложуху, на men'е, с регистрацией, RESTом и прочими ништяками, сам, с нуля. До этого запилил бложик-приложение, а также всякие мелкие приложухи с использованием сторонних API.
Куда двигаться дальше?
Вот ты хуй. А кинь гит..
А то я вот учусь и могу работать только с открытым апи. Делать запросы, посылать чет. А как свой бек на ноде или сервер запустить не могу - ваще не ебу че там и как. Ты где учил эт все, и сколько?
А почему бы тебе не запилить базу данных на монге, а потом их возвращать при помощи mongoose?
>На РАБоту
У меня 0 опыта, не думаю, что куда-то возьмут, тем более с моими скудными познаниями. Год назад получил диплом погромиста, но нас учили всякой древней хуйне. Вот решил научиться самому пилить веб-приложухи, во фронтенд могу на уровне вёрстки/жквери/ваниллы.
>>66003
>кинь гит..
Деанон же.
>сервер запустить не могу
А чего там уметь лел? node %приложениенейм%.js :D
>Ты где учил эт все, и сколько?
Если ты про men, то по книжкам и мануалам, последние пару месяцев. Но я ж только учусь.
Не знаю, что мне сделать такое, чтобы потом возможный работодатель посмотрел в гитхаб и охуел от того, как я могу.
Бля, деанон по гиту...ну на дваче уже слишком много шкварок.
>А чего там уметь лел? node %приложениенейм%.js :D
Я имел ввиду на хостинг какой-то, со своей бд, чтобы работал как полноценный сайт, а не дерьмецо..Но видимо надо рили учится долго чтоб такое пилить.
>последние пару месяцев
ты учил бек последние пару месяцев, или вообще все? Хтмл, цсс, фронт и прочее.
Спасибо, Капитан. Не ментейнятся они, автор отсылает к вышеозначенному blessed.
Ладно, я смотрю тут тредж уровня пхп-треда в целом, так что наверное вопрос не по адресу энивей.
Только бэк, а именно men.
Но я плотно так задрачивал, часов по 8-10 в сутки т.к. нигде не работаю, почти всё время на это трачу
>Хтмл, цсс, фронт
Это я ещё со школы знаю.
Ну и в универе нас учили бэку на питоне, но безуспешно. Плюс всякой легаси хуйне типа пхп, жквери, cms-кам разным, типа друпала и джумлы.
все понял
Спроси в Гугле:
"use strict" site:file.allitebooks.com
И он тебе найдёт книги по современному ES6.
Потому что он возвращает объект.
Ты вообще наугад тыкаешь что ли? Изучи хотя бы основы js лол.
Вообще немного смущает эта nextIndex переменная.
прост заумно написаный цикл.
при каждом вызове счетчик цикла (nextIndex) увеличивается до тех пор пока не достигнет profiles.length, тогда выставляется done=true и все.
Переменная nextIndex не создается в объекте, она создаётся один раз при вызове ProfileIterator в области видимости этой функции, а потом вызовы анонимной функции обращаются к ней через замыкание.
Я не могу понять каким образом объявленная переменная становится связанной с profiles[nextIndex]
Если мне не изменяет память, стрингифай учитывает только own enumerable properties.
Кого куда выводит, чо ноделист? Что тебя не устраивает и что тебе надо, ты можешь русским языком сказать?
три точки мб.
Подскажите, как научиться норма верстать под реакт? То есть я вроде все умею, весь мдн пролистал, могу подключить сss модулес, стайлд компонентс, материал юи и проч, но как самому-то норм быстро верстать и дизайнить мелкие юишные компоненты? Где примеры найти?
Наконец ты понял, что это не твое!
Тогда фреймворк Vanilla.js
Пытаюсь найти их через $("#id"), их нет.
Помню раньше с этой хуйней сталкивался, надо как-то по-другому их искать.
Как в jquery найти элементы из измененного DOM?
Через find() тоже нихуя не находит
Смешно пошутил.
function createTariffs () {
var tariffsURL = "https://url.com";
$.getJSON (tariffsURL, function (data) {
$.each (data, function (code_name, tariff) {
$ ("#tariffs").append ("<option value='" + JSON.stringify (tariff) + "'>"
+ tariff.interface_name + " - " + tariff.monthly_payment_rubles + " рублей в месяц.</option>");
});
});
// Инициализируем форму.
alert ($ ("html").find ("#tariffs option:last").val ());
$ ("#tariffs").val ($ ("#tariffs").find ("option:last").val ());
$ ("#tariffs").val ($ ("#tariffs").find ("option:last").val ());
}
Добавил пару пунктов в селект, эта параша не находится.
#tariffs - селект.
Тут вообще код нахуй не нужен блядь, все очевидно, даун тупой.
Достаточно того, что я сказал в первом посте.
поясните, чо перспективней учить Vue или React?
Vue или Angular 2
>становится связанной с profiles[nextIndex]
Она не становится связанной. nextIndex сам по себе, это индекс — число. profiles[nextIndex] — это просто обращение к элементу профайла под номером nextIndex.
Твой NodeList пустой, ёба.
Вот https://pastebin.com/1NNXvcm9 код полифилла для метода closest(css).
Зачем в конце return null?
Чтобы если ничего не нашлось, тебе выдался именно нулл, а не дефолтный undefined, очевидно.
Это нормально или я совсем даун? Где почитать, чтоб для совсем ебычей разжевали?
Да он ебнутый по всей видимости.
Он выделил элемент в инспекторе, и пытается его выбрать по селектору :hover в консоли через querySelectorAll.
Только вдумайтесь в его затею, и осознайте какой пиздец в голове у этого "прекрасно знающего основы js" человека.
А они у тебя точно лежат в том объекте, на котором ты пробовал, а не в его прототипе?
Да все уже, я разобрался. Там проблема вообще с этим не связана. Просто значение присваивается через асинхронный запрос и объект формируется раньше, чем оно присваивается. Я просто заменил запросы синхронными, это сильно bad practice, или норм?
Такие как он насмотрятся васянских уроков на ютубе, научаться копипастить, и уже считают себя гуру фронтенда. А на деле не могут селектор в доме выбрать.
Как же хорошо, что нам в ВУЗе разжевали ванильку, хоть это и было сто лет назад.
А this.methodName = this.methodName.bind(this) дохуя читаемый код, довен?
>Я просто заменил запросы синхронными, это сильно bad practice, или норм?
Это оче плохо, лучше переделай нормально.
И в чем принципиальная разница?
Существуют ли функции для деления и отнимания больших чисел в виде строк,
как например вот эта: https://jsfiddle.net/mtsL1k2x/5/
Можно ли написать так же кратко, используя какой-то быстрый алгоритм рассчёта?
У меня есть ещё функция для перемножения чисел, если хотите - дам.
если инглиш знаешь, скачай курс с рутрекера understanding weird parts, там лучше чем в Канторе пояснено (кантора я не понял в свое время, а их легко). Оттуда тупо 2 главы можешь посмотреть, одна про контекст запуска функций, скоуп и евент луп, вторая про объекты и функции.
Ну теперь сходи узнай, что существуют не только целые числа. Потом узнай про IEEE 754и что такое действительно большие числа, а не твоя детская поделка.
потому что может себе позволить
>Ну теперь сходи узнай, что существуют не только целые числа.
Любое дробное число, если это не бесконечная дробь (периодическая или непериодическая),
можно представить в виде N/(1⋅10^R), где N - целое, R - число знаков после точки.
Поэтому, меня интересуют целые числа.
>Потом узнай про IEEE 754и что такое действительно большие числа.
наименьшее отличное от нуля положительное число, которое может быть представлено
как 1 × 10^-101, а самым большим 9999999 × 10^90 (9,999999 × 10^96)
Тот код может оперировать намного большими числами, в виде строк.
Максимальное число для безопасной работы в JS - это MAX_SAFE_INTEGER
2^53-1 = 9007199254740991.
>твоя детская поделка
Сходи лучше узнай что такое - длинная арифметика.
Интересуют алгоритмы быстрого вычитания длинного большего от длинного меньшего,
с целочисленным положительным результатом,
а также алгоритм быстрого деления с остатком - с целыми числами в результате
или же нулём, если остатка нет.
Я знаю, что есть BigInteger, но инклюдить его не очень хочется,
а перелопатить код, чтоб найти функции долгое и нудное занятие. Они могут зависеть от других.
А в ссылке, что я закинул сюда - там лишь две простые функции.
Предпочитаю чтобы nullable типов было явным, в TS такая опция есть, но не по-умолчанию.
Поясните, использование strictNullChecks в TS может сломать декларации типов библиотек, которые писались без strictNullChecks?
Посмотрел презентацию, все говорят мол хватит поддерживать старые браузеры, нужно двигаться вперед. Но ведь без поддержки никак, да и производительности, но технологии от W3 намного лучше по оптимизации и производительности, и они вернули старый вид разметки, который был удобен, да и работает лучше.
Просто делаю магазин, с гридами и флексами прям удобно делать все, не нужно кучу коробок создавать, чтобы их флотить, никаких больше паддингов, никаких width: 30%. Уже встроенный фрейворк.
Как ты думаешь, всунут ли Grid или Flexbox в другие фреймворки? Если уже не всунули? Я нуб просто.
в юишные фреймворки всунули. Есть же компоненты в материал-юи типа грида, они стопроц на флексах с медиа кваери под любую ширину. Да и бутстап вроде тоже на флексах уже
Буду ли я прав, если скажу, что кложюры - это частный случай работы скоуп чейнаа, когда функция, которая вызвала экзикьюшнл контекст проебуется со стэка, но ее переменные, на которые остались ссылки, остаютяс в памяти?
При этом кложюр работает только если переменные физически находятся снаружи в коде? А зис наоборот присваивается там, где функцию инвокят?
мне кажется что говном мамонта в современном интернете пользоваться просто не получится, даже какой-нибудь оперой-12, не говоря про ие. так что можешь сильно не переживать или влепить плашку.
в бутстрапе юзается, и в других скорее всего тоже
Мне много не надо, я студент и деньги нужны только на игоры и подобные небольшие траты, это не вопрос выживания, просто какие-нибудь даже 10-20$ за неделю(по полчаса-час) по вечерам мне пригодятся, но главное что хоть какой-то реальный опыт в чем-то будет, пока в вузе я задрочу математику. Вообще опыт у меня в программировании довольно большой для первого курса(кресты, опенгл, жаву и юнити юзал), но максимум что я делал - небольшие игры.
Я посмотрел на фрилансер.ком что требуется от жсбояр - в основном "ай нид а сайт" за 100$, реакт, расширения для хрома, "пофикси вот это".
Сейчас у жаваскрипта я немного знаю синтаксис и написал какую-то хуйню с jquery ui с минимальной версткой страницы(просто кнопки всчкие расставил и пару виджетов от жквери). Я правильно понимаю что надо позадротить хорошо реакт(который пойдет ка кдля запиливани и попробовать сделать расширения для хрома и можно приступать к фрилансу?
на 100% реально, на cms еще реальнее, просто гугли биржи и смотри на тамошних индусов.
ну вы долбоебы что я могу сказать.
Код должен читаться без комментариев и должен быть без сложных структур которые заставляют задумываться. Т.е ты читаешь код, видишь конструкцию зависаешь вспоминаешь и читаешь дальше и так по 200 раз в место прямого пути ветвистый. А когда дочитал до конца функции уже устаешь.
Я когда стал писать так свой код, комменты даже редко стал оставлять потому-что и так понятно что он делает из названий методов + разделение ответственности, слабо связанный код и явных конструкций типа function() {} в место закорючек которые отвлекают от себя внимание. Код в результате легко читается. А если там вложенные данные, массив состоящий из объектов у которых свойства - методы создаваемые в циклах или еще что-нибудь, запарьшься читать подобное
[{{}=>[{}[][][][][]{}]}].
И еще пример, вот ты читаешь книгу, она бывает насыщена всякими терминами и сложными выражениями которые несут закодированный смысл (zip архив ирл). А бывают легкие книги, где раскрыты все мысли, но текста больше, прикол в том что они и читаются быстрее и понятнее и не утомляют
>Это все, что вам нужно знать о среднем уровне современного джаваскриптера.
>
Вообще-то я синьор
хуй я клал на то что ты, неуч, видишь ли некоторые конструкции не понимаешь. Учи паттерны и потом приходи.
Спред оператор - сахар для Object.assign. Вся та же хуйня, оно не копирует методы у инстанса класса. Я просто хуею с этого.
Только так — https://repl.it/repls/WildPitifulEvaluation
Почему — в интернете почитаешь. Методы в прототипе лежат, если вкратце, которые не enumerable.
Нахуя мне читать оправдания жалких жабаскриптовских макак, которые только и умеют, что решать IMMEDIATE проблемы и не могут на шаг вперёд предусмотреть последствия своих действий?
Откуда вы лезете такие.
bind && (apply || call) можно проэмулировать при наличии нативной call || apply.
колл можно проэмулировать оператором () и постановкой функции в нужный объект и запуск оттуда, кроме (), кола и эплая других способов запуска функции нет, все они ссылаются на внутренний метод prototype.[[call]] вроде как. Еще их можно друг через друга переписать.
зис при запуске присваивается либо сам глобальный, либо через дот нотэйшн, иначе никак если не ошибаюсь
Как же заебали шизики, которые обсирают фичу_нейм в язык_нейм, хотя не знают других языков и как эта фича в них устроена.
Внезапно, в большинстве ОПП-языков обычно ты сам должен для класса определить метод copy(), который обычно включает в себя вызов, блять, конструктора класса.
меня унижают на хабре за использование жиквери, шпасите
И что с этого? В других языках даже методы из третьих либ не делают такую хуйню, какую творит копировалка из родной либы жабаскрипта. Не копировать сука методы, что это за пиздец вообще? Почему они до сих пор не пофиксили или не заинтродюсили нормальный вызов, который делал бы нормальную копию инстансов класса, если уж классы в жабаскрипте есть?
https://jsfiddle.net/tL8pu2kt/7/
Но тоже самое можно и без apply.
см пикрелетейд. но это не будет работать, если thisArg запечатан. тогда нужен только нативный экземпляр apply\call.
А при наличии call или apply - bind эмулируется совершенно тривиально.
Жри что дают, мразь, и не выёбывайся. Не нравится — пошёл нахуй. Ебал твою мать.
Все просто. ты ебануй даун зажатый в концепциях одной единственно концепции. Неспособный понять ничего кроме.
Да я уже понял, что походу объявлять функции в жабаскрипте - это себе в ногу стрелять, нужно юзать только инстанс функции. Создателям надо вообще нахуй выпилить их, раз они нормально вообще нигде не работают: то блядь this теряют, то сука не копируются. Вообще охуеть.
Таким уебкам как ты даже помогать нет желания.
В js классы в отличии от твоих зашоренных мировоззрений - это такие же полноценные объекты, как и все остальное. Методы твоего "инстанса" не лежат в твоем инстансе, они лежат в другом объекте. И более того, они не перечисляемы. Ты используешь метод, для КОПИРОВАНИЯ СОБСТВЕННЫХ СВОЙСТВ ОБЪЕКТА, и ожидаешь, что скопируются НЕ СОБСТВЕННЫЕ. Ты умственно-неполноценный?
Они работают как раз нормально, как и должны.
Это ты работаешь не нормально, пытаясь натянуть сову на глобус.
Схуяли ты вообще решил, что везде должно быть так, как ты привык где-то в другом месте? Ты не видишь дальше собтсвенного носа.
И как, часто тебя выручал такой Object.assign, который не копирует методы класса в новый объект? Дохуя логично же!
Вот, в общем, костыль против такой хуйни:
const copiedInstance = Object.assign( Object.create( Object.getPrototypeOf(correspondingInstance)), correspondingInstance);
где correspondingInstance - инстанс класса.
Тебе весь тред говорят, что Object.assign не предназначен для того, для чего ты его используешь. Ты нихуя не понимаешь и продолжаешь тянуть свою лямку.
То, что ты изобразил - это не копирование.
Твой новый объект точно так же зависим от цепочки прототипов, и от изменений в ней.
Короче, хуй с тобой.
А Классовые объекты вообще нельзя копировать, так,к ак это делаешь ты. Ни водном языке. Потмоу что они блядь должны конструироваться. И если копироваться, то специальными, внутренними конструкторами. Это тебе не структуры данных, дебил ебанный. Иди попробуй поклониируй DOM Ноды или Файловые дескрипторы, представленные объектами.
>И как, часто тебя выручал такой Object.assign, который не копирует методы класса в новый объект? Дохуя логично же!
Дохуй. У Object.assing совершенно иной юзкейс. Он предназначен для ассигнирования хэш-мапов, а не объектов. Например когда не было дефолтных значений аргументов функций, он использовался повсеместно.
Она же разрабатывается всеми подряд на гитхабе, блядь. Сходи да посмотри.
А вспомнил, в Си точность теряется с неопределенным типом после превышения значения экспоненты E7 или как то там.
У тебя пример логике противоречит. Если ты передашь зис сам, то он всегда будет верным и нет смысла его проверять и вообще зисом называть. Просто ссылка на объект. Методы другого объекта ты все равно не сможешь использовать на этом объекте, как бы ты не исхитрялся передавать. Мб я не прав. Я просто даже не вижу у тебя строчки зис = зисарг или чего-то такого.
Хотя смотри че нашел, это из жквери, немного похоже на то, что ты хочешь
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
ПЕРЕКАТ https://2ch.hk/pr/res/1167958.html (М)
>то он всегда будет верным и нет смысла его проверять
Это ты не понмаешь как оно работает. Переданный this может быть null, undefined и тогда он должен указыать на global, или может быть примитивом числом\строкой\булом, и тогда его надо завернуть во временный объект иначе ничего не заработает.
Флекскоробки – определенно юзать, только с автопрефиксером!
Гриды же слишком прогрессивно, для прода рано.
мимо ванилла-верстала
ок
Это копия, сохраненная 24 мая 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.