Это копия, сохраненная 16 октября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Для программирования на ХТМЛ https://codepen.io/pen/
Для фреймворков библиотек https://codesandbox.io/
Для живой странички из коробки https://repl.it/languages/web_project
Для Ноды с пакетами и консолькой https://repl.it/languages/nodejs
Задеплоить https://zeit.co/now
Аноны, хочу получить советов мудрых, высераю пару предложений и код на скриншоте, а получаю смехуёчки. Как быть?
Если рассчитываешь получить дельный ответ, формулируй правильно вопрос:
что я хочу получить, что я для этого делаю, что я вместо этого получаю.
В этом треде собираются величайшие умы человечества – мастера валидации форм и специалисты по JSON-технологиям. Этот тред посвящён главному языку будущего – 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/
>бле, не могу уже?
Что блять? Сиди и делай, я мимо скроллил нулевую.
>У кантора есть похожая задча, но хули этот код у меня не работает?
Я тебе раскрою все тайны - читай вдумчиво. Переосмысливай и перечитывай, пока не пропустишь эту хуйню через себя внутри.
мимо_андройд_иос_разраб
Представляешь, а потом когда устроишься на РАБоту, тебя кинуть разгребать легаси говно. Вот тогда этот котик и понадобиться.
Я бы на твоем месте посмотрел другие направления, если фронт не нравится. А если нравится - то ты и дальше продолжишь ебаться.
Все мои друзьяшки, которые вкатывались жунами, говорили, что в начале им показывали какую-нибудь хуйню, а потом они сидели и делали её, потом со временем показывали другую хуйню. Кароч работали они с чем-то одним. Кароч хз, я же не могу быть самым необучаемым человеком из всего моего окружения? Ведь все кто серьезно брался за прогу и собирался туда вкатываться, все туда вкатились, кто-то быстрее, кто-то медленней. Но никто не выкатился назад а там и остались.
> Кароч хз, я же не могу быть самым необучаемым человеком из всего моего окружения?
Cейчас ты выглядишь именно так. Все решается кол-вом просиженной дырки в твоем стуле.
> Но никто не выкатился назад а там и остались.
А больше идти некуда)
Из предыдущего треда...
>>1249630
Так они же не для цифр, а для чисел побольше: L(50), C(100), D(500), M(1000)
>Ты же не хочешь заменять арабские числа ими же.
Я думал можно как-то один раз их записать, чтоб не дублировать...
>>1249634
Вот поэтому и не приглянулась мне таблица замен.
А index%10 не много места занимает, шустро работает,
к тому же и любые символы можно в первую строку пхнуть, хоть китайские, хоть мухосранские.
>Добавить плейсхолдер :3
Внатуре! Так и добавил в массив: "'(Добавить плейсхолдер :3)', ".
Что б я без тебя делал - хорошо, когда есть кому мозги попарить.
>А в них и не посимвольные замены.
Если юникодом писать, то посимвольные. Ты же сам процитировал:
>"Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ"
здесь по одному символу!
С Hieroglyphic(Egyptian) и Sinhala (а там два кода на одну крякозябру) пришлось попотеть...
Сначала вот таким вот образом:
var symbol = 'ИЕРОГЛИФ'; console.log('\\u'+symbol.charCodeAt(0).toString(16).toUpperCase()+'\\u'+symbol.charCodeAt(1).toString(16).toUpperCase());
вытащил коды символов, затем записал их кодами в массив.
После этого - модифицировал функцию внутри replace...
Уложился ровно в сто строк, код - тут: https://codepen.io/anon/pen/eLYBPj
Тесты - в console.log(), в браузере это клавиша F12.
При этом, функция принимает на вход как одиночные симолы, так и строки.
Однако запятая и точка здесь не интерпретируется, а только лишь заменяется на указанный кастомный разделитель.
Именно код интерпретации запятых и точек, после замены цифр, хотелось бы оптимизировать, а то там ещё целых 200 строк.
Из предыдущего треда...
>>1249630
Так они же не для цифр, а для чисел побольше: L(50), C(100), D(500), M(1000)
>Ты же не хочешь заменять арабские числа ими же.
Я думал можно как-то один раз их записать, чтоб не дублировать...
>>1249634
Вот поэтому и не приглянулась мне таблица замен.
А index%10 не много места занимает, шустро работает,
к тому же и любые символы можно в первую строку пхнуть, хоть китайские, хоть мухосранские.
>Добавить плейсхолдер :3
Внатуре! Так и добавил в массив: "'(Добавить плейсхолдер :3)', ".
Что б я без тебя делал - хорошо, когда есть кому мозги попарить.
>А в них и не посимвольные замены.
Если юникодом писать, то посимвольные. Ты же сам процитировал:
>"Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ"
здесь по одному символу!
С Hieroglyphic(Egyptian) и Sinhala (а там два кода на одну крякозябру) пришлось попотеть...
Сначала вот таким вот образом:
var symbol = 'ИЕРОГЛИФ'; console.log('\\u'+symbol.charCodeAt(0).toString(16).toUpperCase()+'\\u'+symbol.charCodeAt(1).toString(16).toUpperCase());
вытащил коды символов, затем записал их кодами в массив.
После этого - модифицировал функцию внутри replace...
Уложился ровно в сто строк, код - тут: https://codepen.io/anon/pen/eLYBPj
Тесты - в console.log(), в браузере это клавиша F12.
При этом, функция принимает на вход как одиночные симолы, так и строки.
Однако запятая и точка здесь не интерпретируется, а только лишь заменяется на указанный кастомный разделитель.
Именно код интерпретации запятых и точек, после замены цифр, хотелось бы оптимизировать, а то там ещё целых 200 строк.
Отступы очень важны для восприятия. Вставь свой код сюда
https://prettier.io/playground/
и посмотри, насколько читаемей он становится.
Свич уродлив (как по мне) и мало где может пригодиться. Словарики (объекты) выглядят намного понятней (пик1) и работать с ними проще.
Такие словарики могут хранить не только примитивы, но и функции (пик2).
Тебе наверно хочется проверить этот код, но ты не можешь, потому что это ебаные картинки. Как бы было здорово, если бы я воспользовался ссылками из ОП-поста и сделал песочницу на Кодпене, а не уебанские скриншоты.
хорошо. я зрозумиу. спасибо наверно. пойду переписывать с картинки -_-
>У меня портабельный хром версии 34.0.1847.131 m обновляться не может.
Тебя не смущает, что современная версия хрома 68?
С тем же успехом, ты можешь под ie6 верстать, если тебе надо повыебываться, а не задачу решать.
Закладки в хроме, как и все остальное, прекрасно синхронизируется.
Ну, в общем-то жрать кактус - твое право .
>Ну, в общем-то жрать кактус - твое право .
Только больше не ной, что у тебя там где-то что-то не работает. Это в общем-то исключительно твоя вина.
>Так они же не для цифр, а для чисел побольше
>здесь по одному символу!
Тебе об этом и говорят.
Число записанное римскими цифрами, не прозрачно конвертируется в число записанное арабскими.
На конвертируй своим конвертером число MCMLXXXVI
>>49870
А как же обратная совместимость?
Он у меня с 2014-го года, как часы работает,
и мне порой кажется что он у меня такой навороченный, там всё такое УХХХ!!!
А у вас одна стрелочная функция, let, const, и больше нифига, возможно дальше ещё и баги, если копнуть.
Вот что значит любимый браузер, лол.
>>49873>>49874
Ну, там уже алгоритм надо отдельный делать,
а я имел в виду десятичную систему счисления, из 10-ти цифр,
которой пофигу каким символом именуется одна тысяча у каких-то там римлян.
Для интереса - сконвертировал твоё число тут: https://www.rapidtables.com/convert/number/roman-numerals-converter.html
получил 1986, вспомнил Оруэлла, и radix представления числа (основание системы счисления).
У меня вот здесь, кстати: https://username1565.github.io/BigInteger.js/test_encoding_and_decoding.html
можно длинные числа bigInteger - юникод-символами кодировать с radix-ом до 63008.
И удерживая в памяти radix, скажу, что
ты бы ещё hex предложил интерпретировать там, base36, base64, или даже base58Check.
Последняя кодировка, кстати надёжнее, потому что там в конце ещё и контрольная сумма цепляется.
Она в биткоине для адресов используется, но всё это - уже не числа десятичной системы...
>Как
https://carbon.now.sh
глючит сейчас
>зачем
Чтоб пожурить других с картинками. Код на картинке это плохонько.
>>49876
https://codepen.io/anon/pen/QVWMKX?editors=0010
пикрил
> Вот поэтому и не приглянулась мне таблица замен.
> А index%10 не много места занимает, шустро работает,
Идеального решения не существует. Таблица замен в итоге занимала бы больше места, но ее было бы легко отлаживать в случае проблем, замены не влияли бы друг на друга, не нужно б было добавлять плейсхолдеров, и она легко подстраивалась бы под любую задачу (типа "хочу только чтоб числа от 1 до 5 заменялись, а остальные не трогались"). Решение на массиве хрупкое, оно рассчитывает на то, что символов в каждой "строке" ровно 10. Случайно добавишь/удалишь один — и хрен ты отладишь проблему (а добавлять код проверок — та еще морока). Даже пришлось плейсхолдеры добавлять.
Еще это решение неявное, потому что работает на индексах вместо явных замен один-к-одному из таблицы замен.
Здесь тебе предстоит найти компромисс между количеством кода, читабельностью и быстродействием. Вариант с таблицами замен читабельней, более быстрый, но немного больше места занимает, ага.
Касательно кода: запятые можно в регулярке не экранировать.
> (typeof replace_comma_to !== 'undefined') ? replace_comma_to : ','
Условие с тернарником можно заменить (и скорее всего прокатит) просто на
> replace_comma_to || ','
> /[٫]/g
Один символ можно не оборачивать в скобки.
Сами арабские цифры можно из массива убрать, потому что нет смысла заменять их на них же. Лишняя операция + цвеличивает время поиска по массиву.
> (Добавить плейсхолдер :3)
Название плейсхолдера не несет смысловой нагрузки. Видно, что это плейсхолдер, но сходу не ясно, ЗАЧЕМ он здесь. Строка типа 'Zero placeholder' куда ясней была бы. Потому что это именно плейсхолдеры для нуля.
Если хочешь быстро таблицу замен сгенерировать на основе массива, то бери lа делай.
console.log(JSON.stringify(digits.reduce(function(acc, val, index) { acc[val] = index % 10; return acc; }, {}), null, 4));
> Именно код интерпретации запятых и точек, после замены цифр, хотелось бы оптимизировать, а то там ещё целых 200 строк.
Опиши, как он должен работать, может подскажу чего тогда.
> Вот поэтому и не приглянулась мне таблица замен.
> А index%10 не много места занимает, шустро работает,
Идеального решения не существует. Таблица замен в итоге занимала бы больше места, но ее было бы легко отлаживать в случае проблем, замены не влияли бы друг на друга, не нужно б было добавлять плейсхолдеров, и она легко подстраивалась бы под любую задачу (типа "хочу только чтоб числа от 1 до 5 заменялись, а остальные не трогались"). Решение на массиве хрупкое, оно рассчитывает на то, что символов в каждой "строке" ровно 10. Случайно добавишь/удалишь один — и хрен ты отладишь проблему (а добавлять код проверок — та еще морока). Даже пришлось плейсхолдеры добавлять.
Еще это решение неявное, потому что работает на индексах вместо явных замен один-к-одному из таблицы замен.
Здесь тебе предстоит найти компромисс между количеством кода, читабельностью и быстродействием. Вариант с таблицами замен читабельней, более быстрый, но немного больше места занимает, ага.
Касательно кода: запятые можно в регулярке не экранировать.
> (typeof replace_comma_to !== 'undefined') ? replace_comma_to : ','
Условие с тернарником можно заменить (и скорее всего прокатит) просто на
> replace_comma_to || ','
> /[٫]/g
Один символ можно не оборачивать в скобки.
Сами арабские цифры можно из массива убрать, потому что нет смысла заменять их на них же. Лишняя операция + цвеличивает время поиска по массиву.
> (Добавить плейсхолдер :3)
Название плейсхолдера не несет смысловой нагрузки. Видно, что это плейсхолдер, но сходу не ясно, ЗАЧЕМ он здесь. Строка типа 'Zero placeholder' куда ясней была бы. Потому что это именно плейсхолдеры для нуля.
Если хочешь быстро таблицу замен сгенерировать на основе массива, то бери lа делай.
console.log(JSON.stringify(digits.reduce(function(acc, val, index) { acc[val] = index % 10; return acc; }, {}), null, 4));
> Именно код интерпретации запятых и точек, после замены цифр, хотелось бы оптимизировать, а то там ещё целых 200 строк.
Опиши, как он должен работать, может подскажу чего тогда.
>Здесь тебе предстоит найти компромисс между количеством кода, читабельностью и быстродействием.
Как по мне так index%10 и читабельнее, и меньше места занимает в виде кода,
и быстрее работает (если разместить более вероятные символы поближе к нулевому индексу),
к тому же и более гибкий (ведь можно задать по дефолту хоть кхмерские цифры).
Но да, ты прав, один символ стоит удалить оттуда - и все индексы поползут, вся конструкция порушится там.
>Условие с тернарником можно заменить
Ок.
>Один символ можно не оборачивать в скобки.
Ага, я просто там два писал через слэш. Как видишь - это какая-то арабская карлючка (если в гугл её вбить).
>Название плейсхолдера не несет смысловой нагрузки.
То я для прикола сунул, '(No_null_here :3)' - вот так будет.
Скобки там, чтоб в регексп посимвольно не искал эту строку.
>код интерпретации запятых и точек
>Опиши, как он должен работать, может подскажу чего тогда.
А уже всё было сказано в прошлом треде и в тестовых примерах здесь:
https://codepen.io/anon/pen/LJPrYM
Там у меня - 12 переменных и пол кода занимают операции с просчётом того, где какой символ цифра,
где точка первая в числе, была ли запятая три - шесть символов назад, какую точку удалить а какую нет,
и всякое такое... На тестах наглядно видно. Вроде-бы всё правильно.
Может быть много лишних операций, и можно попроще, вот это хотелось бы и оптимизировать.
Минифиером не хочу всё это жать, нечитабельно будет, а так ещё и откомментировано для ньюфань, если кто залезет в код.
Саму замену цифр мы с тобой уже конкретно ужали,
и заюзав вот эту цункцию https://codepen.io/anon/pen/eLYBPj
я целый цикл послимвольной замены удалил из кодепен повыше,
потому что на вход замены принимается строка, а не символ. Меньше операций!
>Здесь тебе предстоит найти компромисс между количеством кода, читабельностью и быстродействием.
Как по мне так index%10 и читабельнее, и меньше места занимает в виде кода,
и быстрее работает (если разместить более вероятные символы поближе к нулевому индексу),
к тому же и более гибкий (ведь можно задать по дефолту хоть кхмерские цифры).
Но да, ты прав, один символ стоит удалить оттуда - и все индексы поползут, вся конструкция порушится там.
>Условие с тернарником можно заменить
Ок.
>Один символ можно не оборачивать в скобки.
Ага, я просто там два писал через слэш. Как видишь - это какая-то арабская карлючка (если в гугл её вбить).
>Название плейсхолдера не несет смысловой нагрузки.
То я для прикола сунул, '(No_null_here :3)' - вот так будет.
Скобки там, чтоб в регексп посимвольно не искал эту строку.
>код интерпретации запятых и точек
>Опиши, как он должен работать, может подскажу чего тогда.
А уже всё было сказано в прошлом треде и в тестовых примерах здесь:
https://codepen.io/anon/pen/LJPrYM
Там у меня - 12 переменных и пол кода занимают операции с просчётом того, где какой символ цифра,
где точка первая в числе, была ли запятая три - шесть символов назад, какую точку удалить а какую нет,
и всякое такое... На тестах наглядно видно. Вроде-бы всё правильно.
Может быть много лишних операций, и можно попроще, вот это хотелось бы и оптимизировать.
Минифиером не хочу всё это жать, нечитабельно будет, а так ещё и откомментировано для ньюфань, если кто залезет в код.
Саму замену цифр мы с тобой уже конкретно ужали,
и заюзав вот эту цункцию https://codepen.io/anon/pen/eLYBPj
я целый цикл послимвольной замены удалил из кодепен повыше,
потому что на вход замены принимается строка, а не символ. Меньше операций!
>Как по мне так index%10 и читабельнее,
Если ты делаешь этот код исключительно для себя, то почему бы и нет. Тебе это читабельней, потому что ты сам этот код разрабатывал. А представь мысли кого-то не знакомого с кодом, когда тот начнет его читать?
"Сначала массив чисел. Какой/зачем. Пока непонятно, дальше разберемся. Зачем-то плейсхолдеры, ну ладно... Так-с, остаток от деления индекса на 10... Ага, это цифры. Ага, взгляну еще раз на массив. О, разобрался."
Без поясняющих комментариев о том, как это работает, человеку пришлось бы по коду вверх-вних пару раз ходить.
В случае в таблицей замен было бы достаточно пройтись один раз сверху вниз.
"Ага, объект, ключи — какая-то хрень, значения — цифры, ок. Так, составляется регулярка из ключей, ок. Так, замена. О, всё с ходу понятно."
Я к тому, что в подходе с массивом сложность логики сама по себе сложнее в разы по сравнению с таблицей замен.
> и быстрее работает (если разместить более вероятные символы поближе к нулевому индексу),
Не быстрее ведь. Утрируя, если в массиве/таблице замен у тебя миллиард значений, то массив будет работать тем медленнее, чем больше в нем символов, а таблица будет одинаково быстро работать при любом числе символов.
Ну, по первой части сообщения скажу что откомментировать можно и массив, как я и сделал в примерах.
А по второй части, ты прав, ведь в твоём примере, и том, что я подхватил -
весь массив грузится в регулярное выражение при помощи .join('')... А значит прогоняется от начала до конца - каждый раз.
И если там миллиард значений - то можно было бы снизить нагрузку,
разделив на блоки сам процесс построения рызных регекспов,
то есть циклом задав диапазоны индексов в массиве, где символы наиболее вероятны.
Не думаю, что весь массив грузился бы в память, а если и загружался, то однажды.
И его не приходилось бы каждый раз целиком прогонять.
Только если символ не найден - тогда уже другой кусок массива в другой регексп. Но это уже изъебства с этим массивом.
Таблица замен же, ("ключ-значение") просто ищет ключ и даёт значение. Она не грузится каждый раз никуда.
И вот прояуляется - именно энергоэффективность при объемах данных и нагрузках в виде элементарных операций.
О! Можно Jasmine SpecRunner прикрутить и зациклить тесты разных вариантов, кстати. Чтоб наглядно было.
>Можно Jasmine SpecRunner прикрутить и зациклить тесты разных вариантов, кстати. Чтоб наглядно было.
Как раз для наглядной демонстрации и пиара этих ваших парадигм и подходов,
в той же сфере BigData (раз тут нарисовался миллиардный массив в браузере).
>Таблица замен же, ("ключ-значение") просто ищет ключ и даёт значение.
Поправлю тебя: она не ищет ключ, она обращается по ключу. В случае массива будет перебор. А в случае хэш-таблиц по ключу просто идет обращение. Поэтому от количества ключей и не зависит быстродействие таблицы замен. (Быстродействие регулярки проигнорируем, потому что она и там, и там одна и та же).
Вижу календарь, вижу простейшую табличку.
Может есть гайды как делать свои графические элементы?
Есть на этой страничке пример:
https://wordpress.org/gutenberg/handbook/block-api/rich-text-api/
Собственно, вопрос. Там где return wp.element.createElement(...) мне нужно, чтобы этот элемент содержался в моей разметке. То есть, что-то типа
return "<b>yoba</b>" + wp.element.createElement(...). Как это сделать?
Скрин 1: то, как есть сейчас. Создаётся блок с разметкой, которая в return(...)
Скрин 2: пример с сайта WP, где в return возвращается WP Element
Мне нужно как-то скрестить два этих варианта. Чтобы блок содержал WP Element, который заключен в другую разметку сделанную мной.
опчик, помоги, оно не работает. Я не понимаю, меня уже подташнивает. Покажи плиз, я уже в сумме над этой хуйней часов 8 сижу. Я пробовал как ты писал, но оно не работает у меня.
https://codepen.io/anon/pen/BOaENO
https://codepen.io/anon/pen/MqWNBK?editors=0011
Универсальный. Но будет работать для новых столбцов, только если ты сохранишь такие же правила именования (заголовок соответствует полю объекта и т.д.).
Такой код сложно рефакторить, потому что у тебя все части приложения проникают друг в друга. Как спагеттины в тарелке образуют комок.
Хочется, чтоб объекту с контактами (логика) из ЖС было пофигу, какие там атрибуты в разметке (представление) или как оно там отсортировалось в Локалсторедже (хранение).
Попробуй сделать такой объект.
Класс СписокКонтактов, который как-то внутри себя умеет сортироваться и добавлять новые контакты.
Функции, которые работают с документом (обработчик клика или отрисовка таблицы) должны опираться только на этот уже готовый Список.
Решая эти трудности, ты потихоньку придёшь к приёмам, которые и составляют все эти модные реакты и ангуляры.
Добра тебе, няша
а тот вариант моей сортировки со switch совсем уебищным был? Меня бы за него на работе обоссали бы?
Тебя бы на работу просто с таким не взяли.
Стоит читать? Много ли неактуальной информации?
А то вроде стандарт, а вроде и никому не нужно.
Хуёво это. Так и копиться в стандарте легаси-хуйня, которая вроде и никому не нужна (а некоторая хуйня ещё и сильно мешает), но нужно поддерживать ради обратной совместимости.
Как же я вообще бугурчу из-за легаси в этом вашем погромировании.
Особенно в JS куча дерьма вроде arguments и приведения типов при бинарных операциях/сравнении, которое никто не любит, оно воняет, но за овер 20 лет это дерьмо так никто и не вычистил, только костылями прикрыли.
Python очень няшный в этом плане. В 3.0 просто взяли и плюнули на обратную совместимость. И ничего, как-то все перекатились на новую версию, пусть и несколько лет понадобилось.
https://andrew.hedges.name/experiments/innerhtml/
>switch
Не в каком-то свиче дело. Там весь код лапша.
>на работе
Дык работы разные бывают. Этот код вполне стоит того дошика, за который ты с радостью согласился бы его написать. Главное, что он работает и может делать что-то полезное. Код это не продукт.
В серьёзной разработке никто конечно без фреймворков не пишет. Не потому, что модно. А потому, что, как я и сказал, фреймворки решают как раз вот такие задачи, с которыми ты уже сталкиваешься в маленьком модуле.
Вот тебе три списочка:
https://en.wikipedia.org/wiki/Coupling_(computer_programming)
https://en.wikipedia.org/wiki/Cohesion_(computer_science)
https://en.wikipedia.org/wiki/Connascence
Бережно к ним отнесись. Переведи, перепиши красиво на листочек, повесь в рамочку. Я серьёзно.
Сразу ты их не особо поймёшь. Но дальше тебе будет попадаться куча статей-книг-видосов про "правильные" подходы, принципы, парадигмы, паттерны, приблуды, и т.д. С тем возвращайся каждый раз к этим трём списочкам.
> просто взяли и плюнули на обратную совместимость
То есть, по-твоему, яваскрипт мог бы, если б захотел, взять и дропнуть обратную совместимость прям как питон? Какая узколобость, я ебал.
> что считается плохим кодом
А ты знаешь почему оно считается плохим? И что не всегда ради быстродействия стоит жертвовать остальным?
Взял бы и дропнул, в "use strict"-моде.
А лучше бы вместо "use strict" ввёл указание конкретной версии.
Или вообще оставили бы ванильный JS как есть и на его основе, но уже без дерьма сделали бы новый язык и назвали бы его, внезапно, EcmaScript.
А дальше пусть браузеры ебуться с поддержкой разных версий как хотят.
>А дальше пусть браузеры ебуться с поддержкой разных версий как хотят.
Собственно, так раньше и было. И смотри, к чему это привело.
>считается плохим
Что в нём плохого, кроме уязвимости к инъекции по глупости?
>быстрее
Очевидно. Так сразу внутря работают. А ЖС это ебучий оверхед. Спеку открой — каждая операция из десятка шагов, каждый ещё на десяток шагов. ВебАссембли не от хорошей жизни придумывают.
>>50427
>просто взяли и плюнули
А мы вот не можем просто взять и плюнуть на весь Веб.
http://exploringjs.com/es6/ch_one-javascript.html#sec_versioning
У нас одна вера, один ЖС, один Веб.
>Чё там с веб-компонентами
Потихоньку развиваются.
Уже сейчас можно сделать компонент из Реакта и другой рядом из Вью. Но оба будут тащить за собой свою имплементацию. А вот когда во всех браузерах будет готовенькая имплементация...
Тогда нас ждёт очередной виток пиздеца, как мне кажется. Ты же не думашь, что клиентский код в будущем ждёт что-то хорошее? Микрофреймворки начнут меряться особыми подходами в конкретных задачах. И странички превратятся в ещё большую мешанину, чем сейчас. Но, хули, железо всё стерпит.
>Что в нём плохого, кроме уязвимости к инъекции по глупости?
То, что референсы приходится после вставки как-то умудряться брать. И дополнительные мутации объекта, если банально какой-нибудь обработчик захочешь повесить.
>она не ищет ключ, она обращается по ключу
>В случае массива будет перебор. А в случае хэш-таблиц по ключу просто идет обращение.
Тогда вообще годно!
>>50040
Расписал таблицу замен, но не так как тут, в столбик: >>1249489 а по 10 цифр в строчку.
Длинной почти как тот массив, из поста >>49860
Засунул цикл с условием if(char in replaces),
так оно вообще без регулярного выражения работает и .join('') не нужен для его создания.
Должно заменять быстрее и эффективнее.
Иероглифы и Sinhala numerals - тоже прикрутил, засунув по два юникод-символа туда их кодом.
Откомментировал всё - получилось ещё меньше чем в предыдущем примере - 80 строк: https://codepen.io/anon/pen/bxNwyX
Думаю туда можно и римские L, C, D, M засунуть (в юникоде конечно же), но тогда придется к числам плюсовать,
а не с одиночными символами работать.
Алсо, объявил дефолтные символы в первых двух строках таблицы замен, чтобы можно было китайские цифры туда записать.
>Собственно, так раньше и было.
А как раньше-то было? Раньше насколько я понимаю проблемы со стандартизацией были.
А так было бы два стандарта. Один легаси-JS, другой, новый, развивающийся - ES.
Я если что говорю только про стандарт "языка веба", которым сейчас является только JS.
Проблем с прокидыванием DOM API и прочего API реализуемого браузером в два языка быть вроде не должно, Web API вообще не дизайнятся конкретно под JS.
Ну а проблему с легаси в самом Web API я не знаю как решать, да.
> Раньше насколько я понимаю проблемы со стандартизацией были.
Как раз со стандартизацией никаких проблем не было. JS изначально пилился стандартами. Проблемы были с поддержкой этих стандартов браузерами и, внезапно, расширениями браухерами существующих стандартов или реализации черновиков. То, что оддин браузер что-то поодерживал, а другой нет - было не проблемой того, что не было стандарта. Он как раз был, и его расширяли, каждый как хотел. Или не реализовывали правильно.
Ты можешь под любой язык реализовать vm\компилятор\интерпретатор как тебе вздумается и несовместимо со спекой\другими компиляторами\интерперетаторами, это не значит, что это язык такой хуевый.
Какой самый простой способ доехать до места назначения на собственном авто, без такси и наемных водителей?
без-недели-вкатывальщик
Отлично, я как раз пару часов назад закончил курс форм хтмл-овских.
>>Чё там с веб-компонентами
>Потихоньку развиваются.
Немного погуглил, как я понял они далеки от рекоммендейшн-стандарта и погрязли в консорциум-девелопмент-хелле.
Меня в заблуждение ввёло https://youtu.be/HiE7FmIKOQ0
Там веб-компоненты поданы как
"Заебало обмазываться вебпаком и кучей фреймворков? Так вот уже в стандарте есть возможности компонентной разработки, нативные, прям в вашем браузере уже сегодня и навсегда!"
> как я понял они далеки от рекоммендейшн-стандарта и погрязли в консорциум-девелопмент-хелле.
За последние несколько лет только выпилили хтмл-импортс и теневой дом перешел на версию 2.0. в остальном ничего не менялось. использовать их можно было с 2013-го года, с полифилами, разумеется, как и все.
> Алсо, объявил дефолтные символы в первых двух строках таблицы замен, чтобы можно было китайские цифры туда записать.
> result += replaces[replaces[string.substring(i-1, i+1)]];
Как тебе вариант явного создания массива с цифрами? Типа digits = ['0', '1', '2', '3', ...] (или китайские, как хочешь), а в таблице замен в качестве значений хранил бы тогда именно числа вместо строк. В итоге было бы digits[replaces[...]]. replaces возвращал бы индекс цифры-замены, которая потом просто бралась бы из массива цифр.
> так оно вообще без регулярного выражения работает и .join('') не нужен для его создания.
Хорошо придумал. Батя грит малаца.
> Иероглифы и Sinhala numerals - тоже прикрутил, засунув по два юникод-символа туда их кодом.
А вот это говно ебаное. Смотри, вместо двух условий/ветвей просто пишешь:
if((string === '\uD80C' || string==='\uD804') && string.substring(i, i+2) in replaces) { i++; плюс замена }
Т.е. в случае удачного попадания увеличиваешь сам i на единицу, чтоб пропустить следующую итерацию, и вуаля. А то ты нагородил...
Я читаю совсем не шустро, поэтому тщательно выбираю литературу.
> но книга уж совсем не первой свежести
Программирование вещь сама по себе не первой свежести.
Открой секрет - в массе вещей с восьмидесятых годов ничего не поменялось.
Так речь не о маняфреймворках с вызовом СплитПиздаБуттон, а о основах, о организации кода в целом. Тут мало что поменялось.
Ищи парсеры с поддержкой юникода, и расширенного юникода.
>���쥢�� ���⨫��� ���-17
У тебя тут - заменяющий символ.
Это значит, что символ некорректно пропарсен, и не может быть выведен.
Это может быть в случае, если один символ кодируется двумя,
как например вот этот египетский иероглиф с котейкой: https://unicode-table.com/ru/130E0/
Ты можешь скопировать этот символ, и вставить в консоль или текстовый редактор - он у тебя может отображаться в виде двух символов.
>var double_symbol = '';
>console.log(
> double_symbol.charCodeAt(0), double_symbol.charCodeAt(1)
>, String.fromCharCode(double_symbol.charCodeAt(0)), String.fromCharCode(double_symbol.charCodeAt(1))
>); //55308 56544 "�" "�"
Как видишь, они оба, по отдельности - Replacement Character.
>console.log('�'.charCodeAt(0)); //65533
Алсо, если будешь в коде колупаться, на тебе вот это:
>var symbol = ''; console.log('\\u'+symbol.charCodeAt(0).toString(16).toUpperCase()+'\\u'+symbol.charCodeAt(1).toString(16).toUpperCase());
>//\uD80C\uDCE0
>console.log('\uD80C\uDCE0'); //
Добавлю в свой список золотых цитат.
Но в ангуляре куча конструкций поверх нативного языка. Это усложняет код и он становится ненадежным.
А на ангуляре действительно хуже.
>Как тебе вариант явного создания массива с цифрами?
Норм, сунул. Ещё один для теста - буквами заполнил и закомментировал. Поудалял немало кавычек.
Условия пришлось ветвить, потому что не все иероглифы - цифры, но i инкрементировал, кода меньше.
А ещё, сгенерировал себе много символов юникода в браузере (циклом по charcode'ам от 0 до 65535),
и случайно заметил, что цифры в поиске в хроме - подсвечиваются по системам нумерации, если искать по странице (F3).
Затем, пошёл сюда: https://unicode-table.com/ru/ смотреть расширенный юникод, подсвечивая цифры там.
В общем, добавил туда ещё символов и систем нумераций - получилось 150 строк, хорошо откомментирванного кода.
https://codepen.io/anon/pen/dqopqz
>>51087
Просто так красивее смотрится, вроде,
и скорее для того, чтобы коды капсом - "в глаза кидались", рядом с мелкобуквенной u - когда символов много.
К тому же, их можно, не особо заморачиваясь - извлечь в массив, по регистру: string.match(/[\d\A-Z]{4}/g),
Но ты прав, можно и так /[\d\A-F]{4}/ig ...
>Условия пришлось ветвить, потому что не все иероглифы - цифры
Это понятно, но зачем ветвить-то?
>пусть он сам шишки набивает, лол.
У меня опыта коммерческого 18 лет. Я потому и говорю, что реакт не нужен.
Иди литературу на лето дочитывай, а то классуха заругает.
Не оптимально, а проще, а проще когда за тебя работа сделана а не самому его обновлять (оптимально или не оптимально)
>Чё там с веб-компонентами, юзает их кто?
Мы юзаем. Сделали веб-компонент из сложного ангулар компонента (практически мини-приложение) и отдали соседнему отделу, которые сопровождают дремучее легаси на пыхапе и жеквери. Ребята пользуются, говорят, малацца, заебись сделали.
Если не ветвить и через else if записать,
то придётся два раза строку с Replaced characters дублировать в условие, а она много букв занимает.
Хотя я её и так два раза записал, но вариант с search закомментирован,
и один прогон делается при поиске каждого символа.
C else if - было бы два прогона на каждый двойной символ, цифрой не являющийся.
А ну-ка закинь файл с парой букв куда-нибудь, чтобы можно было слить и поиграться.
Я вижу Windows-1254 разные таблицы имеет:
http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1254.TXT
http://latin.az/Ru/kabmin4.htm
В частности, видно что - коду 0x7A соответствуют разные символы в этих обоих случаях...
Я в UTF-8 файлы перекодирую при помощи Notepad++,
и хотя многие символы юникода не отображаются, но они сохраняются и копируются нормально.
В браузере можно чар-коды посмотреть, в консоль зайди и там вводи комманды.
> C else if - было бы два прогона на каждый двойной символ, цифрой не являющийся.
А, все двойные символы с сугубо определенных модификаторов начинаются? А вторые "знаковые" символы могут быть сами по себе чем-то другим?
>А, все двойные символы с сугубо определенных модификаторов начинаются?
Ага, пикрил. Тут, подробнее: https://en.wikipedia.org/wiki/Plane_(Unicode)
>А вторые "знаковые" символы могут быть сами по себе чем-то другим?
Ну да, чем угодно могут быть... Я же только цифры в таблицу замен записал.
Но наверное, надо все первые цифры прописать туда,
а то бывают двойные символы без цифр вообще...
Хорошо, что ты задал эти вопросы, ведь очевидно,
что если один из этих попадётся (а цифр тут нет): https://unicode-table.com/ru/blocks/transport-and-map-symbols/
функция должна знать, что вот такой пароходик: https://unicode-table.com/ru/1F6A2/
символ - двойной, потому что чаркод унего U+1F6A2 (🚢) далеко за пределами 0xFFFF (65535)
При этом, код его '\uD83D\uDEA2', по отдельности - это Replaced characters '�', и код первого '\uD83D' не объявлен в объекте.
Значит читать строку с этим корабликом функция будет по одному символу, выдавая �� по пути.
Скоро пропишу туда все replaced characters. К тому же, пока не выбрал кораблик, нашёл коптские цифры.
Они не подсвечивались, щас занесу туда.
>А, все двойные символы с сугубо определенных модификаторов начинаются?
И все они - заменяющие символы.
>>50981
>�
>>51084
>заменяющий символ
>Replacement Character
Вот они все, в диапазоне: /[\uD800-\uDFFF]/g
раз: https://unicode-table.com/ru/blocks/high-surrogates/
два: https://unicode-table.com/ru/blocks/high-private-use-surrogates/
три: https://unicode-table.com/ru/blocks/low-surrogates/
>>51125
Добавил коптские цифры. Убрал тут indexOf, поставил search регекспом повыше, (без флага g, там один символ),
кода меньше, диапазон шире, и параходик двухсимвольный теперь в строке как символ возвращается.
>Да и вообще, зачем передавать все эти библиотеки по сети если их можно сразу в бровзер вшить.
А чё б не вшить сервер в браузер и не сделать его p2p -
со всеми плюшками вроде торрентов, WebRTC, криптовалютных нод и прочее?
Бекенд сервисов не позволяет что-ли?
Запустил, такой, расширение - а там универсальный сервер,
он короче забиндился на порт, порт открылся во вне и доступен по хешу в Direct Hash Table.
Между браузерами же - peer exchange, как в Tox'e, с раздачей легковесной DHT.
Потом такой, перетащил туда программу - она запускается внутри расширения и хостит там, что надо (если это нода).
Или файл кинул в это расширение - а он сразу хостится, и расширение тебе ссылку на закачку выдаёт.
Ещё один подальше затерялся с кодом '\uFFFD' , других вроде бы нет.
> Ищи парсеры с поддержкой юникода, и расширенного юникода.
Если ты про парсеры кодировки, то, как мне кажется, они в моем случае бесполезны. Когда парсер таблицы выполняет свое предназначение, то по ходу своей работы проводит "портит" строку (как можно видеть на скрине) так, что парсер кодировки выдает строку одинаковых символов (у меня, например, выводилось насколько 'э').
Если ты про парсер dbf-файла, то, как уже писал, в npm подходящего не нашел. Есть мысль проверить yarn, вчера заглянув туда, сложилось впечатление, что библиотеки так такие же, как и в npm.
Если фронтенд, то да, если с нодой ебаться, то да, но не сильно.
На реакте что ли? Так оно же изи, идешь на сайт
https://material-ui.com/getting-started/installation/
Смотришь как юзать тот или иной компонент и используешь у себя. Посмотри сначала гриды, флексбоксы чтобы приблизительн опредставлять как оно работает
Я так понял Grid это как в бутстрапе? Чтоб адаптивная верстка была?
Просто я изучал пытался изучать по этому ресурсу компоненты. Проблемы были с тем, что при использовании каких то компонентов, там используются и другие. Т.е. чтобы понять как работает один компонент, нужно переходить к другому и читать про него и т.д. и т.п.
Ну и еще нередко используется синтаксис который мне не до конца понятен. Я понимаю, что я новичок в этом деле. Просто хочется чтобы изучение не было болезненным с точки зрения понимания
В любом случае если альтернатив нет, то придется в документации копаться
>Grid это как в бутстрап
Верно
А я как писал, взял написал посмотрел работает или нет, погуглил если не так подумал, чуть переделал, посмотрел работает или нет и так по кругу. Что то типа брутфорса.
+ у них есть апи для каждого компонента а еще ты можешь всегда посмотреть код компонента на гитхабе.
>чтобы понять как работает один компонент, нужно переходить к другому и читать про него
Это не сложно, там не надо почти ничего читать, там примеры с кодом сразу.
>нередко используется синтаксис который мне не до конца понятен.
А что там с синтаксисом? Это уже вопрос по реакту наверное. Попробуй погуглить что такое jsx
>изучение не было болезненным с точки зрения понимания
Просто надо копаться
По сравнению с бутстрап-материал на реакте по времязатратам писать дольше раза в 3 наверное. По моим наблюдениям.
Хммм, про бутстрап-материал ничего не слышал. Ну мне дали вектор в material-ui. Вроде как потихоньку иду.
А ты долго вкатывался в эти фреймворки с красивым оформлением?
Там проходятся Bootstrap, jQuery, Sass, React, Redux. Все они нужны или какие то можно пропустить?
>А ты долго вкатывался в эти фреймворки с красивым оформлением?
Да хрен знает, я до сих пор не вкатился мне кажется. Нет точных сроков.
>>51316
>Все они нужны или какие то можно пропустить?
В любом случае придется изучать, причем в том порядке в котором ты написал. Sass и редукс можно пока не изучать, но они нужны.
Привет, аноны.
Как связать два элемента хтмл с собой? У меня есть одна картинка которая двигается и один блок, который должен прилегать к одному месту картинки и поворачиваться rotate() вместе с ней. Как такое сдилоть?
>В любом случае придется изучать, причем в том порядке в котором ты написал
Все понял. Не буду тогда изобретать велосипед и по порядку пройду.
Самая очевидная идея, это их спозиционировать и в общий див засунуть, но мне это решение не подходит
Занимательная ссылка, но мне не поможет.
Допустим у меня есть один элемент, для которого я уже настроил трансформ. Мне к нему надо прилепить стрелочку, так, чтобы это был не вложенный элемент и чтобы он повторял анимацию другого
https://www.the-art-of-web.com/javascript/animate-curved-path/
Попробуй спозиционировать оба элемента абсолютно
Слушай, анон, а как z-index вложенного элемента перекрыть? Никак?
Я пишу проектик на реакте + node.js с вебсокетами. Считай само приложение запускаешь в браузере, сервак можешь развернуть хоть на смартфоне хоть где угодно.
Писал на нем небольшую тудушку с авторизацией. Если не сильно изъёбистый функционал нужен, но будет норм. Ну и еще уебанская работа с анимацией, но это ему от реакта досталось.
640x640, 0:17
Тебе возможно нужен transform-origin. Допустим, левому элементу даешь '100% 50%', а второму '0 50%'.
КАП как раз про то, что не все проблемы можно решить в коде. Кодом становятся только непротиворечивые бизнес-правила.
У нас с тобой сервис по записи на танцульки с лолями. Мы выросли и у нас теперь два сервера, один в Рашке, другой в Пиндошке. Вдруг что-то пошло не так, связь между серверами пропадает. Что нам делать?
1. Позволить пока бронировать только у себя на местности. Мы потеряем клиентов, которым хотелось заграничного. Но когда связь восстановится, мы легко синхронизируем сервера. Согласованность данных.
2. Позволить бронировать всех и будь, что будет. Мы потенциально получим конфликты при синхронизации и в реальном мире, но сохраним большинство клиентов. Доступность.
И кодом ты тут ничего не решишь. Решать должен менеджмент, что выгодней — разрешать конфликты или терять некоторых клиентов.
Если менеджмент выбирает доступность, тогда нужны правила для разрешения конфликтов. Опять же, их выбирает менеджмент. Допустим, он говорит: "всё для заграничных гостей". Тогда, при синхронизации мы отдаём приоритет заграничным записям, а местным посылаем письмо с извинениями и предложениями.
Применимо к Монге, это правила для реплик, кто из них главной станет в случае аврала.
Красиво пояснил, благодарствую.
>реакт нэтив
НИ НУ ЖОН
Скорее всего тебе достаточно будет сделать PWA
https://whatwebcando.today/
https://medium.com/@firt/progressive-web-apps-on-ios-are-here-d00430dee3a7
Ну а если тебе нужны низкоуровневые АПИшки, тот тут уже только родное говно писать.
Нужно что бюы на разных платформах выглядело одинаково. Свинг-подобная параша - общепризнанный моветон.
>Нужно что бы на разных платформах выглядело по-разному . Свинг-подобная параша - общепризнанный моветон.
фикс
На вкате вряд ли. Я бы лучше посмотрел:
https://www.edx.org/micromasters/software-development
А так конечно скобочки расширяют сознание.
https://www.youtube.com/watch?v=OyfBQmvr2Hc
PEREVEDITE MNE DENGI
- PEREVODIM..... DENGI ETO MONEY
Проблемы походу у тебя, раз ты такой херней занят.
А уже в C:\Users\OP\node_modules\react есть все необходимые файлы, джейсон и т.д.
У нас во дворе за такие вопросы убивают нахуй.
>парсить язык относящийся к контекстно-зависимым по иерархии Хомского
>регулярными выражениями
Анон, тот, с таблицей замен, смотри что получилось:
https://github.com/username1565/insect/commit/86d9246fdd064b0152c1f77dd6c91d836f8fb62b
Теперь, даже при вводе команды в терминал, происходит авто-замена цифр, запятых и точек.
Когда команду уже ввёл - отображается старая команда, её можно скопировать и передать в URL.
Всё работает локально прямо с папки /web
если качнуть zip, разжать его, и открыть index.html во вкладке браузера.
> Всё работает локально прямо с папки /web если качнуть zip, разжать его, и открыть index.html во вкладке браузера.
А тебе забыли рассказать главную особенность интернета и браузеров? Она состоит в том, что ты можешь зайти с браузера на сайт и ничего не нужно будет качать. Потрать уже наконец один вечер на то, чтобы разобраться как на хероку деплоить и заливай туда свои хелловорлды.
Я не понял, на гитхабе можно развернуть как на пике, видишь у него там сайтик на github.io
Есть сайты с серверной стороной, на PHP, ASP, и базами данных, и бекендом сервисов там.
А эта шняга - client-side, что я и подчекнул.
Да.
1. Регистрируешься, создаёшь проект, заливаешь туда свой index.html и js
2. Потом идёшь в Settings -> GitHub Pages и выбираешь master branch.
Сохраняешь - Save, и видишь ссылку на проект на своём сайте.
Ещё можно там, в Settings - птичку Issues активировать,
чтоб люди могли вопросы задать по проекту или предлоить чо-нибудь:
https://github.com/username1565/insect/issues
По умолчанию, эта вкладка - выключена.
Гугли исходный код Google Chrome
Посмотреть только в исходниках браузера. Он на то и натив, что написан скорее всего на Плюсах.
Даже функции, которые не имеют дела с IO. Например Array#sort может дрочить ЖС-массив не как абстракцию, а конкретно его внутреннее представление на Плюсах, чтоб быстрее было.
Посмотрел вакансии в своей мухосрани, больше всего таких связок Html+css+js+php, есть гайд как это все максимально быстро выучить, готов тратить по 12 часов в день.
В PHP-треде гайд есть
Редакс не очень, потому что проект и так большой с огромным количеством редьюсеров, мне по головке надают, если я туда еще стейт нескольких инпутов засуну. Но этот вариант я все равно оставляю как запасной.
Context API? Не вижу применения, мне особо ничего шарить не нужно между разными компонентами, только все воедино собрать где-то в одном компоненте.
Еще можно было бы в компоненте, где баттон, создать jsx всех инпутов, чтобы можно было иметь доступ к их значениям тут же, а потом через пропсы вниз передать этот jsx и там уже отрендерить. Пик 2. Но тут видите, тут для другого используется, только чтобы пропсы передать в уже готовый компонент, а у меня будет много jsx.
Если что структура максимально упрощена для наглядности, на самом деле все хуже(( просто из чаилдов тащить всех наверх тяжело.
Пик 2 потерялся.
Сделать еще один компонент - InputContainer - отвечающий за рендеринг этих самых инпутов?
мимогений
За полгода можно неплохо освоить верстку, жаваскрипт и какой-нибудь фреймворк к нему. А по 12 часов тратить бесполезно, голова будет кипеть от количества информации и ты ничего не будешь понимать.
Я нихуя не понял, потому-что сам новичёк, но почему все эти инпуты не могут вызывать при onChange один и тот же каллбек, какого-нибудь верхнего компонента, и записывать своё значение в его локальный state?
>По 12 часов он сидеть собрался, лол
Я вот сижу с 28 июня 2017 года "каждый" день на максималках. Правда иногда выгораешь, этак через месяца 3-4 непрерывной долбежки, тогда я отдыхаю максимум день или два.
Вот так.
Ты скорее себя просто успакаиваешь тем что ты "сидишь", а на деле продуктивности в этом промежутке максимум 2-3 часа
Да не, если бы они могли быть в одном компоненте, они бы и так там были. А так инпуты находятся в совсем разных местах на экране, грубо говоря — (инпут1, <компонент с картинкой и своим инпутом2 <еще один компонент внутри компонента с картинкой + инпут3/> />). Это вдруг чего реакт-нетив, поэтому все так сложно, там еще и кнопка не под формой, а в хедере, а хедер это вообще левый компонент в этом дереве.
>>52320
Да нормально, я и сам джун недавно работают, просто смущает, что это нужно будет прокидывать через много компонентов, поэтому и решил узнать, может есть хороший вариант для такого задания.
она расширяется,и бесконечно конечные размеры
Сколько можно терроризировать Райана?
Он же с 2012 года с нодой не работает, не?
А зачем тебе вообще знакомиться с бэкэндом? Тебе не норм работать с запросами и просто считать бэкэнд черным ящиком?
Сделает из меня хоть какое-то подобие фулстека. Конечно полноценным фуллстеком быть не хочу, но хотелось бы, с горе пополам, но уметь не всрато написать себе простенькую серверную часть.
>хотелось бы, с горе пополам, но уметь не всрато написать себе простенькую серверную часть
Зачем?
Сейчас во всю продвигают serverless-подход, если тебе просто по роуту дёргать данные из базы данных. Это не бек, это дрисня.
>Я раньше думал что оператор new как-нибудь активно использует это свойство, для инициализации экземпляра.
Оно и используется. Просто если не задать самому конструктор, то используется конструктор по умолчанию.
Аноны, как тестить на производительность правильно?
У меня есть код что-то типа драг н дроп и он пиздец тормозит, я не понимаю почему
> У меня есть код что-то типа драг н дроп и он пиздец тормозит, я не понимаю почему
Потому что используешь дорогие обработчики событий? Ну, типа mousemove и прочие. Наверняка, у тебя в них ниибечески много обсчетов.
А еще он может на каждом тике вызывать repaint/reflow.
Открывай Фурифокс или Хром, жми Ф12, вкладку Перфоманс, начинай запись, делай свой драг-энд-дроп, останавливай запись. Будет много инфы, тыкай там всё до просветления.
Скачал Sublime text 3. Накатил плагины SublimeLinter, SublimeLinter-eslint, JavaScript Enhancements. Скачал npm, накатил eslint. Вопрос -- как из этого сделать полноценное автодополнение/подсказки кода на js в файлах типа .js и .html? Вот я например подключил библиотеку gavno.js через тег script в .html, но определения из неё не выводятся как варианты автодополнения. eslint же пишет, что такой-то объект не определён (вбил готовый пример для библиотеки gavno.js).
Ещё -- есть ли унифицированная схема дерева каталогов в проекте с использованием js/html/css?
Панель управления - программы - находишь сублайм текст - нажимешь на нем пкм и жмешь удалить. А потом качаешь вижуал студио код и пользуешься.
А чем оно лучше? Я порядочно потратил времени, чтобы разобраться, что к чему. А если в студии та же хрень и превозмогание?
Двачую адеквата.
Sublime Text, как сильно я его ни люблю, прежде всего текстовый редактор. В то время как IDE созданы именно для разработки.
Тогда и Саблайм с плагинами будет тоже тормозить, если сможешь настроить.
Код действительно хорошо зделоли. На саблаймах все только по привычке сидят. У тебя такой привычки, похоже, нет. Так что однозначно качай Код.
У них отличные доки (если не считать пиар азур-параши). Обязательно их полистай.
https://code.visualstudio.com/docs
В настройках Кода сделай
"javascript.implicitProjectConfig.checkJs": true
В папке со своим проектом сделай
npm init -y
npx eslint --init
Выбирай популярный Стандард или отвечай на вопросы.
Потом установи плагин
https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint
Код уже начинает бить тебя по рукам, но можно ещё краше. Сделай
npm i -D prettier eslint-plugin-prettier eslint-config-prettier
добавь последним в массив в файле eslintrc
{ "extends": [другие, "plugin:prettier/recommended"]}
установи
https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode#overview
включи в настройках Кода
"editor.formatOnSave": true
Всё, теперь ты, даже бухой, хуячишь такой код, что не стыдно анону показать. И это всё не просто работает в Коде, это настроенный независимый тулчейн, который можно из консольки запускать, Код его только эксплуатирует через плагины.
Автодополнение и так богатое, но плагинов мало не бывает. Всё найдёшь в доках.
Я сейчас проверил, что за хуйню я вообще написал. Всё работает. И заняло это меньше пяти минут.
Не, ну можно говнокод хуярить без услилий, чо. И потом мириады минут тратить, вчитываясь в него.
Ладно, спс что расписал. Мне так-то самому студия и подобное майкоговно ближе, на с#/c++ я уже прирос к нему пиздец.
>>53170
Ну это понятно. Просто для меня все иде пиздец какие тормознутые, я ебал. Да и отдельные их части могут чем-то не устраивать. Хотел хоть раз попробовать подобрать нормальные неинтегрированные инструменты, посмотреть, если ли там жизнь.
>майкоговно
Там от них только "торговая марка". Всё делается с нуля и попенсорсом.
>>53128
>схема дерева каталогов
Первое, что приходит в голову, это раскидать по типам. Сделать папочку scripts и туда кидать ЖС, images для картинок и т.д.. Это ты и без меня догадаешься. Но вопросов бы не возникало, если бы этот подход работал.
Я тебе предлагаю хуячить фракталы.
Определяешься, что у тебя будет главным, вокруг чего всё собирается. У нас это будут страницы и пути к ним.
Далаешь папку pages, в ней делаешь index.html, это корневая страница, очевидно. Остальные относящиеся к ней файлы называешь так же, как эта страница, т.е. index.js, index.css и кладёшь рядом. Картинки и прочее тоже кладёшь рядом, но называешь с префиксом index_big-logo.jpg.
Допустим с Индекса есть ссылка на Эбаут и Каталог. Тогда ты тут же создаёшь папку index, а в ней about.html и catalog.html. Мол, они вложены в индекс. Там же будет и about.js, например. Принцип ты понял. Все файлы на одном уровне, с одинаковым именем или префиксом, только с разным расширением, если из них что-то логически следует, то папка с таким же именем и в неё.
Быстро наткнёшься на повторяющийся код. Создаёшь рядом с pages папку common. И выносишь всё повторяющееся в неё. Там тоже одно начнёт зависеть от другого, хуяришь фрактал по той же схеме.
Выгоды очевидны. Pages воспроизводит реальный мир, тебе понятно, где что искать. Нет прыготни по папочкам, пока работаешь с конкретной страницей. И там ты можешь без опаски вносить изменения. А вот в common нужно изменять с осторожность, зато в одном месте.
Да ты поди и программировал на бумажке.
>6 часов
Достаточно просто начать учитывать помидорки и плакать над своими пятью в конце недели.
> Вообще не ебу про реакт ничего, не для чего он нужен, не что такое jsx и т.д.
Значит он тебе и не нужен.
мне может и не нужен, нужен работодателям, которые суют его в вакансии.
Че ты тупого включаешь то ?
Если тебе нечего сказать по делу, то лучше просто молчать, а не позориться и говорить какую-то хуйню.
Ты же не можешь самостоятельно не то что найти информацию для обучения, а даже понять что и зачем ты собираешься учить. Какой тебе реакт, дурачок?
https://www.youtube.com/watch?v=lDLQA6lQSFg
Допустим, я хочу делать в VSCode простенькие задания из самого начала Кантора, где-то в районе первого применения переменных. Столкнулся с тем, что у меня банально не работает отладка, как в том ж старом PascalABC, где ты жмешь кнопку Run и тебе выполняет/не выполняет прогу и тычут лицом в ошибку.
На VSCode же банально не вижу возможность дебагнуть JS-код: при нажатии F5 из выпадающего контекстного меню ты можешь выбрать лишь node.js, при выборе которого пишет "не удается найти программу для отладки", после чего создается launch.json файл. Node.js я уже скачал и установил с офсайта. ЧЯДНТ?
Дополнение: 1)В каталоге плагинов VSCode дебагера JS я не нашел. Нагуглив, нашел некий "Code Runner", который обязан в отдельном окне открывать выполненную прогу, однако он тоже выдает ошибку.
2)Пролистав тред, увидел, что мне нужен некий npm. Я нашел оный в плагинах VSCode и скачал, однако мне это не помогло.
Макаба не пропускает мой пост ругаясь на спам, так что запостил через пастбин.
Особенности динамической типизации. Некоторые операторы как + умеют работать только с определенными типами данных. Поэтому, если ты добавляешь к числу массив, то массив будет преобразован в число.
if () {};
То есть не юзать елсе, а писать несколько условий? Они выполнятся последовательно? Это нормально так делать?
Тупое говно, не динамической, а СЛАБОЙ типизации, мудак, СЛАБОЙ блядь, иди матчасть учи, формошлеп обоссанный.
Ничего не мешает. Но зачастую цепочки условий нужны. Смотри. Например, код:
var a = 1;
if (a < 2) { console.log('соси'); }
if (a < 5) { console.log('хуй'); }
Выведет тебе оба слова: "соси" и "хуй". А код с else:
var a = 1;
if (a < 2) { console.log('соси'); }
else if (a < 5) { console.log('хуй'); }
Выведет только "соси". Разное поведение.
То есть если выставить правильную последовательность, либо ретерн из тела условия, то все ок. Спасибо
Ага. То есть большей частью это вкусовщина и кодстайл.
Поспоришь. Формы можно шлепать, даже не зная, что это там за типизация. Слабая, динамическая...
Я работаю главным заседателем на мамкиной шее.
Конечно. Слайдеры, да много всего.
Хочу чтоб при открытии не было этой кнопки, а сразу открывался весь текст. Пмагити
todo-list
То есть есть большой проект, с определенными подобным образом компонентами, а мне надо, чтобы одна его часть вела себя немного иначе, к исходникам само собой доступа не имею, если переопределение темплейтов не проблема в данном случае, то с контроллером беда. Подскажите кто чем может
Желательно подальше, лол.
Какие подводные?
Проект(ы) - фронтенд - реакт, вью, бабель, хуябель, вебпак etc.
>папки проекта?
>Желательно подальше, лол.
>
>Какие подводные?
>
>Проект(ы) - фронтенд - реакт, вью, бабель, хуябель, вебпак etc.
>
А нахуя? В гитигнор добавь.
>Просто стало интересно, есть ли культурный способ вынести это за пределы проекта, и не в родительский каталог.
Для чего?
> ОСОЗНАТЬ Жаваскрипт,
Не пытайся осознать то, что создавалось без задней мысли. Поступай так же, как его разрабы: не думай, пиши! В этом и есть Дао Жаваскрипта.
Я понял в чем ошибка моих рассуждений. Важно не то, где функция описана, а в каком контексте она вызывается. Все правильно?
Да. Функция это тоже объект. Но ты не изучил, что такое объект. Потому как несешь ахинею про выдуманные тобой вложенные функции. Объекты содержат поля с определёнными параметрами доступа и возможными значениями. Никаких понятий вложенных функций у объектов нет.
parseInt - это объект с внутренним методом call и конструктором Function
parseInt.toString - это посылка сообщения get объекту parseInt с параметром' toString'
parseInt.toString() это посылка сообщения get объекту parseInt с параметром 'toString' и затем посылка сообщения call полученному объекту с параметром thisArg: parseInt
Но у любой функции может быть забиндено значение thisArg, и тогда при посылке сообщения call параметр thisArg будет проигнорирован. Это касается например стрелочных функций. И тогда как раз имеет значения в каком контексте была объявлена, а не вызывается функция.
Помимо этого, кроме сообщения call некоторые функции могут принимать сообщения construct, и тогда thisArĝ будет иметь не контекст в котором она вызвалась, а свежесозданнй объект.
pareInt.toString() - thisArg == pareInt
new parseInt.toString() - thisArg == {_proto_:parseInt.toString.prototype}
Из двух фреймворков с примерно одинаковыми задачами я бы посоветовал выбрать только ОДИН, блядь.
Типа из-за конст, чтобы имени функции нельзя было случайно назначить другое значение?
Конкретно здесь никакого смысла.
Паттерн какой-то ебучий есть с похожим стилем.
бамп
Через setInterval не работает, внешняя функция начинает скакать, как ебанутая. Впрочем, setTimeout работает так же, начинает считать по +2.
Хули делать?
var a = 0;
var timer = setTimeout( function count() {
a++
if ( a % 3 == 0 ) {
setTimeout( function setToZero() {a = 0; console.log(a)}, 10000 )
}
setTimeout( count, 5000 )
}, 5000)
Какие книжки почитать чтоб уметь создать сайт полностью с 0? Сейчас знаком только с html и css, начал читать по js первую книжку из поста. Что дальше?
Так там не в жабе суть, а в алгоритме. Жаба - это сиподобный синтаксис и ООП. И то, и другое имеется в жаваскрипте, так что если ты его знаешь, то освоить жабу на уровне написания какого-то алгоритма - это дело одного вечера.
Хотя каким хуем жаба относится к жс стажеру - это тоже вопрос. Вообще, оба тестовых - это какая-то олимпиадная хуита, не стал бы время тратить на этих еблозавров.
Начать надо с того, что я достаточно слабо могу в js, тем более новомодный. Делаю свой петпроджект, бекенд на рельсах ну а что, фронтенд на вью через гем webpacker, если это важно. Вью потихонечку учу, собственно сразу на практике. История начинается с того, что я хочу отправить пост запрос на API. Запись в базе данных создать, условно.
Само приложение связанно с беттингом, я буду примеры на этой сфере приводить. Допустим, я хочу сделать запись в БД с новой ставкой. Я напишу, что примерно я хочу получить в итоге, мне нужно знать, должен ли я делать кучу запросов к API или есть способы в моём случае получше.
В теле пост запроса на создание хочу следующие вещи:
— «Дисциплина». Пускай будет выпадающий список. Это уже гет запрос к апи отдельный? В каком виде, айдишники + названия? И соответственно если такой дисциплины нет — мне нужно будет на сервере создать новую запись в таблице с дисциплинами, окей.
— «Участники». Естественно, их может быть разное количество. Чаще всего две, но может быть и одна. А может бывают и больше двух хотя пока приложение делается с двумя только участниками в ставке, там можно и пустое поле проставить во втором поле например. Плевать, это могут быть как конкретные фамилии, так и команды, не важно поле :name.
— «Прогноз». Обычное текстовое поле, но было бы неплохо тоже выпадающий список. Это ещё один запрос?
— «Ставка», «Коэффициент», «Комментарий». Здесь без лишних запросов, окей.
— «Результат». Вот тут интересное дело. Обычно может быть их три разных исхода — победа, поражение, возврат. Хорошо, я мог бы захардкодить это в фронтенде. А допустим, я захочу в бекенде создать ещё один какой-нибудь исход, неважно какой. Можно было бы как-то после создания дать фронтенду об этом знать? Без лишних запросов, каким-нибудь коллбеком после создания пихануть для фронта эту инфу? И чтобы выпадающий список пополнился. Ещё есть поле «Тип ставки». Там бывает прематч и лайв пока что. Вот зеркальная тоже ситуация, я мог бы в случае чего дать фронтенду об этом знать?
— «Букмекерская контора». Выглядит нетрудно, я хотел бы это как выпадающий список из картинок. Ну здесь тоже запрос, мне получается нужны будут от бека айдишники, названия, ссылки на картинки. Верно?
— «Дата». Здесь вроде тоже всё понятно, надеюсь у меня не возникнет проблем с подобным. Выставлять по умолчанию текущую сегодняшнюю, а там уж пользователь датапикером пускай выберет, что-то прикручу.
А, самое вот ещё интересное что забыл. Хочу перед созданием пользователем новой ставки проставлять некоторые поля по умолчанию в зависимости от последней занесённой ставки. То есть, если предыдущая ставка была на теннис, например, то в новой уже тоже теннис выбран, букмекерская контора тоже и тип ставки. Это ещё один запрос?
Попытался понятнее написать, ответ хочу получить такой — какой/какие запросы мне необходимо делать в виде гет запроса перед отправкой моего о новой ставке, и также как будет выглядеть пост запрос с созданием новой ставкой/редактированием имеющейся?
Заранее извиняюсь за.. Да за всё, я осознаю, что с подобными вопросами мне наверное не сюда, но спросить некого.
Начать надо с того, что я достаточно слабо могу в js, тем более новомодный. Делаю свой петпроджект, бекенд на рельсах ну а что, фронтенд на вью через гем webpacker, если это важно. Вью потихонечку учу, собственно сразу на практике. История начинается с того, что я хочу отправить пост запрос на API. Запись в базе данных создать, условно.
Само приложение связанно с беттингом, я буду примеры на этой сфере приводить. Допустим, я хочу сделать запись в БД с новой ставкой. Я напишу, что примерно я хочу получить в итоге, мне нужно знать, должен ли я делать кучу запросов к API или есть способы в моём случае получше.
В теле пост запроса на создание хочу следующие вещи:
— «Дисциплина». Пускай будет выпадающий список. Это уже гет запрос к апи отдельный? В каком виде, айдишники + названия? И соответственно если такой дисциплины нет — мне нужно будет на сервере создать новую запись в таблице с дисциплинами, окей.
— «Участники». Естественно, их может быть разное количество. Чаще всего две, но может быть и одна. А может бывают и больше двух хотя пока приложение делается с двумя только участниками в ставке, там можно и пустое поле проставить во втором поле например. Плевать, это могут быть как конкретные фамилии, так и команды, не важно поле :name.
— «Прогноз». Обычное текстовое поле, но было бы неплохо тоже выпадающий список. Это ещё один запрос?
— «Ставка», «Коэффициент», «Комментарий». Здесь без лишних запросов, окей.
— «Результат». Вот тут интересное дело. Обычно может быть их три разных исхода — победа, поражение, возврат. Хорошо, я мог бы захардкодить это в фронтенде. А допустим, я захочу в бекенде создать ещё один какой-нибудь исход, неважно какой. Можно было бы как-то после создания дать фронтенду об этом знать? Без лишних запросов, каким-нибудь коллбеком после создания пихануть для фронта эту инфу? И чтобы выпадающий список пополнился. Ещё есть поле «Тип ставки». Там бывает прематч и лайв пока что. Вот зеркальная тоже ситуация, я мог бы в случае чего дать фронтенду об этом знать?
— «Букмекерская контора». Выглядит нетрудно, я хотел бы это как выпадающий список из картинок. Ну здесь тоже запрос, мне получается нужны будут от бека айдишники, названия, ссылки на картинки. Верно?
— «Дата». Здесь вроде тоже всё понятно, надеюсь у меня не возникнет проблем с подобным. Выставлять по умолчанию текущую сегодняшнюю, а там уж пользователь датапикером пускай выберет, что-то прикручу.
А, самое вот ещё интересное что забыл. Хочу перед созданием пользователем новой ставки проставлять некоторые поля по умолчанию в зависимости от последней занесённой ставки. То есть, если предыдущая ставка была на теннис, например, то в новой уже тоже теннис выбран, букмекерская контора тоже и тип ставки. Это ещё один запрос?
Попытался понятнее написать, ответ хочу получить такой — какой/какие запросы мне необходимо делать в виде гет запроса перед отправкой моего о новой ставке, и также как будет выглядеть пост запрос с созданием новой ставкой/редактированием имеющейся?
Заранее извиняюсь за.. Да за всё, я осознаю, что с подобными вопросами мне наверное не сюда, но спросить некого.
1) Хочу делать автодополнение по участникам в зависимости от выбранной только что или не только что дисциплины. Это к вопросу про запросы.
2) Интересно, как лучше отправлять в пост запросе «участников». И как их хранить в БД, у меня если в зависимости от дисциплины будут отдельные участники это окей, понятно. А именно в таблице со ставками как лучше? Собственно пока чтобы об этом не задумываться у меня просто два поля «Участник 1» и «Участник 2», но хотелось бы максимально идеально всё.
Ты серьезно считаешь, что кто-то будет читать и разбирать такую большую простыню сомнительно оформленных мыслей? Подумой и изложи суть более кратко.
Есть мнение, что лаконичнее смог бы изложить только человек, который бы уже знал все ответы. Увы, я не знаю. Тем не менее, мой вопрос, КМК, затрагивает чуть ли не ежедневные задачи крудошлёпов фронтендеров даже средней руки. Вот и подумал, что несмотря на криво изложенный вопрос, ответ я смогу получить.
Дано: дата начала периода времени в формате ДД.ММ.ГГГГ и дата окончания периода времени в том же формате, сумма долга к началу периода времени.
Что накодить, чтобы посчитать проценты на сумму долга за ограниченный двумя указанными датами период при условии, что процентная ставка менялась несколько раз в периоды, у которых в свою очередь тоже есть дата начала и дата окончания. Процентная ставка в разные периоды времени заранее известна.
+1. А еще и аватаркоблядь. Отвлекает.
https://codesandbox.io/s/v3m5wm5ky7
Нужно чтобы красиво было, буду очень благодарен.
мимо рубист
Возможно с помощью class properties, которые еще не в стандарте, но на полных парах движутся туда. Сейчас на 3 стадии всего.
Попробуй так, я накидал примерно:
1) Время мы представляем в виде числа, 10:00 -> 1000
2) Записываем время прибытия в один вектор-матрицу (в первый массив двумерного массива), а время ухода в другой (во второй массив)
3) Сортируем ТОЛЬКО время прихода (ему должно соответствовать время ухода)
4) Начинаем проверять неравенства со второго сотрудника [1]:
Мы прибавляем единицу к максимальному числу сотрудников тогда и только тогда, когда Число прибытия прошлого сотрудника меньше или равно числу текущего и число прибытия текущего меньше числа ухода прошлого if ((n[1]-1) <= n[1] < m[1]).
Скорее случайность, что ответ у меня совпал с ответом на пике, но кто знает.
export interface APIResponse<T> {
data: T;
meta: {
itemsCount: number;
limit: number;
page: number;
pageCount: number;
total: number;
};
}
ебать как же сильно поменялась разработка на жабаскрипте за года. как это все странно и непривычно и одновременно круто. всегда блядь мечтал использовать в работе дженерики, хоть на пол шишечки и завидовал сисярпирам. мне казалось это каким-то все загадочным, непостяжимым и вот оно вошло в мою повседневную работу. пиздос сколько всего поменялось... как можно пиздеть на современную разработку на жабаскрипте? это охуительно и охуительно удобно в сравнении с тем что было
Потому что ты даун.
Хуюрист.
не ври пентиплу.
А если серьезно, ну анон, чего ты ожидаешь, в общем алгоритм ты уже описал.
начинаешь с dateStart = n
dateFirstCheckpoint = { date: n, percent: n}
dateNextCheckpoint = {date: z, percent: l}
после суммируешь это все по дням/неделям/месяцам
пара библиотек для ускорения:
https://momentjs.com/ работа с датами ( в жс из коробки моча божьей коровки а не нормальное апи дат )
складывать проценты и любые другие числа можешь при помощи jQuery ( пикрил )
складываешь все набежавшие проценты в каждом периоде
так найми кодеров.
Есть ли минусы разработки реакт натив + питон+ джанго именно под андройд?
Какие камни?
Ты чо ебанутый? На ведре джава/котлин и 2,5 фреймворка с нихуевой базой стайл гайдов по написанию кода. Кому там нахуй всралась твоя говносвязка?
Сейчас первый проект делаю в виде бложика на питоне с нуля, вот периодически нужен js, а особенности для костылей, которые день реализовывать на бэкэнде.
Вроде так копипастой справляюсь более или менее, да ещё м jQuery ОЧЕНЬ помогает, чего не знаю -- гуглю. Но без жс в наше время в вебе делать нечего, поэтому хочу вкатиться максимально продуктивно. Спасибо
Просто сейчас даже не знаю как происходит разработка на js. У питона есть своя консолечка с ультрагодным ipython, и всё что ты сделал видно сразу, а с js чет непонятно, всё на HTML страницу выводить что ли? Может песочница какая есть? Было бы здорово, если бы что-то было где можно учиться с телефона/планшета, ибо много времени провожу на работе, а ноут туда носить очень проблематично.
F12 нажми
У меня есть данные для трех форм и мне нужно вбить их в поля, нажать 'calculate' и извлечь данные которые он отобразить после расчета.
Возможно ли сделать это автоматизированно?
Т.е. как реализовать эти запросы?
Greasemonkey/tampermonkey.
Аноны, как копировать объект без заёбов?
Заебало.
Соответственно на выходе получаю два пушнутых объекта с from и to равными 21. Пробовал и обычным копированием каждого св-ва и т.д.
object.assign быстрее в два раза.
Я нашел уже ошибку, пиздец, как только я пощу где-нибудь вопрос после нескольких часов ебалова над ним я сразу же нахожу ответ.
Ассайн происходит поверхностно, вот я и так и делал, а нужно clone = obj.assign({}, error)
Очень весело обрезать скобки, какой сын шлюхи на этой борде только мог додуматься до такого?
Есть лучше, братишка.
https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html
>>56350
Сначала Ноду (буфер -> стрим -> хттп), потом Экспресс, потом Монгу, потом Реакт.
>>55735
Типизация это шаг назад.
><T>
а ребусы это вообще пиздец.
Ангуляр конечно же.
Спасибо, почтеннейший из почтенных, достойнейший из достойных!
> Типизация это шаг назад.
> ><T>
> а ребусы это вообще пиздец.
Два чаю этому доктору жс наук.
Пишешь логику за 30 минут, описываешь типы - два часа. Охуительная производительность, чо.
Типобезопасность ради типобезопасности.
Ты вешаешь типы на модальные окошки что-ли, лол?
Типы нужны не чтобы сейчас было удобно, а чтобы потом не тупить при масштабируемости, когда код не видел в глаза уже полгода, например
Как не думай? А как я погромистом буду? Хуй с ним погромистом, как я буду дебильные задачи на бумажке на собеседовании решать?
А как люди становятся дворниками, если не любят подметать и наводить чистоту? Никак.
ставь бабель парсер для еслинта
Может тогда задумаешься над этими задачками уже на том этапе жизни когда захочешь перестать формочки клепать, которые даже ещё не начал?
Чтобы казаться программистами.
Абсолютли легетимайзи. Сам так сделал.
Правда, через пару недель уже на флексах сам всё верстал. Видишь ли, все хотят универсального солдата, и при слове "вротэндер" подразумевают верстака и жс-кодерка в одном флаконе. Сад, но недетский.
можно числа - пиксели или строчки типа "50%" - значит 50% от высоты/ширины контейнера, еще есть react-native-extended-stylesheet, в котором проценты работают по другому
https://github.com/lerna/lerna/pull/1616
https://github.com/palantir/tslint/issues/4141
https://github.com/palantir/blueprint/issues/2876
Петушок, который бугуртил по поводу покупки гитхаба, снова забыл принять таблетки.
Как тогглится данная фича, при нажатии условного чекбокса на странице, если я хочу именно убрать этот кусок кода из памяти браузера. Понятно, что, скорее всего, это будет импортируемый модуль, но можно ли его тогглить на лету, асинком там или хуй знает, я тупой, расскажите плз.
Вот ты - наглядный пример человека, со сломанным логическим мышлением и неспособностью в алгоритмы, для тех, кто говорит, что в алгоритмы могут все.
Чтобы ты понимал - твои рассуждения сейчас таковы - ты считаешь, что при нажатии выключателя в комнате (для включения\отключения света) из комнаты удаляется электропроводка, а потом проводится заново, налету.
хуй знает, если прям хочешь удалить код из браузера, то чёт сложно
а так добавляешь куда-нибудь в код флажок, чекбоксом его переключаешь, в нужной функции лепишь проверку на флажок в самом начале - если флажок выключен, то работай, если включен, то return
Лол, охуеть.
Сублайм коде 3.
А если серьезно, то очевидный вижуал студио, там 1гб требуют https://code.visualstudio.com/docs/supporting/requirements
В общем предложили галеру(Стартап) и выкатили список того, с чем придется ебаться: js,express.js node.js, теперь вопрос у мастаков сия треда, есть какая-то чтива, которую вы бы могли с уверенностью посоветовать
Пс, главное чтоб не javascript с нуля для детей от 0+ :)
Я сначала подумал, что я обосрался и переменную нельзя, но в интернетах пишут можно.
Пока ты прочитаешь стартап уже станет единорогом.
Нужно через конструктор регекс переменные загонять.
Привет, тред. Я только вкатываюсь, поэтому не совсем понимаю: let или var? Я понял, в чем их отличие, но не уверен, что актуальнее и стоит использовать. Вроде как, глобальные переменные - моветон, а поэтому let?
let и const не поддерживаются многими браузерами, да и вообще хуйня хипсторская, нормальные пацаны var используют.
let - переменная видна только внутри блока из фигурных скобок.
var - переменная видна во всей функции.
Переменная созданная при помощи коючевого слова var внутри блока кода обрамлённого фигурными скобочками тоже самое что и переменная объявленная с ключевым словом let. Область видимости у них будет в пределах фигурных скобок.
Я презираю гугл, гугл для терпил и крыс.
Нормальные пацаны обкашливают проблему устно друг с дргугом, чтобы гугл не догадался. Лишние глаза и уши ни к чему.
В смысле неправ?! Внутри функции переменная объявленная через var доступна только внутри функции. Не еби мозг.
Вопрос не по js даже, а по html/css, отдельного треда для них не нашел, пишу сюда.
Делаю менюху, задал 4 блокам ширину 25% каждому, как будто бы получается они вчетвером должны покрывать всю ширину экрана.
Задал также, что при наведении мышкой блок меняет цвет. Но, сука, почему-то крайний левый блок начинается не от края левого экрана (хотя, вернее - не от левого края таблицы #mainmenu). С остальными же тремя блоками всё ок.
Я в недоумении. Как сделать так, чтобы не было этой фиолетовой полоски больше слева? Откуда взялись эти 40-50 пикселей сверху моих 25%+25%+25%+25% ?
Все что мне удалось - погонять эту "лишнюю полоску" влево-вправо, задав margin-left: -20px самому левому блоку.
А блок из фигурных скобок может следовать ещё и за if, switch, for и while.
Да, поэтому я прошу вас покинуть этот тред и отправиться в гугл, если вы не хотите, чтобы я применил к вам силу!
Margin у меня нигде и не был задан, padding удалил и все также, padding же вообще там у меня относится к ссылкам <a>, а тут дело-то в самих блоках <li>
Нихуя себе новости. Молодчага. Водочки откушал некачественной или так, с дуру ляпнул?
>Все правильно же, хули тебе не нравится?
Ты не прав в своем утверждении. Тебе уже подсказали почему, но ты не въехал. Почитай какую-нибудь книжку для начинающих, что-ли.
Опыта у него много, ага, а элементарные вещи не знаешь. Представляю какой говнокод ты хуяришь, ебама-рама
У меня на хате за такие вопросы в петушиный угол отправляли.
Шалун какой.
>2.5 года опыта
>не знает, чем var отличается от let
Проследуйте в /web или в /biz, а этот тред вам перезвонит.
Зато у браузера заданы. Дефолтные стили
let и const, за var забывай
У контейнера ul обнули
Сорямба, я недолго занимаюсь этим, не ебу при чем тут алгоритмы, речь идет об особенностях работы языка/браузеров, Если я о них не знаю и задаю, может быть, тупые вопросы, то это не значит, что я не умею играть в бейсбол или хуй знает что там.
>>56909
Мне приходит на ум только работа с <script> тегом в html. Хуй знает, можно ли его как-то отключить. Я просто не знаю, как браузеры работают с этим. Но как наилучшим образом разгружается память бразуера за ненадобностью куска кода, вот в чем вопрос.
>>56920
А если там жир какой-нибудь солидный?
Ветвление - пережиток ООП-прошлого. Сейчас оно не нужно.
var создает локальную переменную только в области видимости другой функции, а не в блоке {} как let/const
ээ, даже гуглить не буду, обьясни?
На деле и var можно использовать, если не нужны плюшки let/const. Но вот, если будешь собеседоваться, и увидят что ты юзаешь var, никто не подумает что ты делаешь это осознанно, будут думать что твои знания на уровне 2010-го года
Зависит от твоего текущего уровня и доступного тебе времени. Но тебя возьмут реактомакакой без знаний верстки лишь в том случае, если ты будешь хорошей реактомакакой. И никого лучше на горизонте не будет.
Сам в такой же ситуации, планирую почекать принципы построения адаптива/респонсива, освежить этим память, и всё. Думаю это самое важное.
не работаю. деньги есть еще на 6-8 месяцев неработы. БОльше 3-4 часов учиться чет не получается, начинаю закипать. Иногда могу и 6-8 часов сидеть ебаться с кодом, когда что-то не получается, но по результатам дня грустно становится. ПРоебался 6 часов, написал 4 строчки кода, две которые скопипастил с инета.
Оке, тогда наверно всё же надо распаковывать курс хтмл академии по верстке и переезжать в верстка тред.
Ты че, ебанутый? За полгода можно спокойно и верстать научиться вслепую, и спа на реакте как конвейер клепать, и даже ноду немного освоить.
Как же вы заебали
Кто-то может, кто-то нет, чё ты выёбываешься?
Когда совсем с нуля в эту сферу начинаешь вкатываться, дело идёт не так бодро, потому-что только долбоёб будет чувствовать прилив сил от того что у него почти нихуя не получается, а у других людей от этого мощная демотивация, с которой нужно постоянно бороться. Со временем к этом чувству привыкаешь, и когда "неполучается" уже есть чёткий и заготовленный алгоритм того что нужно делать о чудо, оказывается лучше документацию читать
нормально же общались, ты чего. Но общий посыл твой понял, значит возьмусь за верстку пока.
>, потому-что только долбоёб будет чувствовать прилив сил от того что у него почти нихуя не получается
А если все получается?
Вышеперечисленное я освоил за 6-7 месяцев. Весь мой прошлый опыт погромирования - полтора урока информатики с около вижуал бейсиком в пятом классе. При этом я ушел после девятого класса, а выпускной экзамен по математике за меня полностью написала учительница, после чего я 4 года пинал хуи в никак не связанной с программированием путяге, где мои мозги практически атрофировались по причине неиспользования. Я не то что бекграунда и способностей к программированию не имел, а даже забыл уже как думать и учиться. И естественно у меня ничего не получалось первое время, постоянно были мысли о том, что это не мое, что у меня нет способностей и я не осилю, вплоть до нервных срывов и желания выпилиться нахуй. Но за эти 7 месяцев я не пропустил ни дня по своей воле и учился от трех до десяти часов, в том числе и на быдлоработке с телефона книги читал правда я на этой быдлоработке не больше двух недель проработал, но все равно упомяну для пущей драматичности. Так что твои нули, хуи - это все оправдания своей слабохарактерности и лени.
>>58031
Общий посыл был в том, что если ты не будешь ебланить, то времени тебе хватит с головой и на реакт, и на верстку, и на что угодно.
>о чудо, оказывается лучше документацию читать
Документация все желание отобьет. Ищи бодренькие курсы на инглише.
Перепись аутистов хоть на тебе закончится, интересно? Я бугурт решил запилить, но уже нихуч не смешно от количества мудаков итт ревших мне доказать очевидную вещь. Мельчает харкач...
Мне кажется, анонче имел в виду тот факт, что переменная, будь то var, let или const, будет доступна отовсюду в функции. Нюансы блочного vs функционального скоупа он, наверняка, знает, просто не про этот момент упомянул.
1) в 12 начинаю учиться(можно раньше, но не позже 12).
Учусь 3 часа, до 15. Делаю перерыв 20-30 минут на чай и двач.
2) 15.30-16.30(17.00) верстаю.
3)16.30-18.00 готовлю жрать/жру.
4)И вот тут хз, или еще 2 часа жаба скрипту посвятить, или начать одним глазом смотреть основы пхп(думаю от хтмл академии интенсив посмотреть, потом вордпресс какой наверно). Почему-то в Минске очень много именно жуновских вакансий где js/html/css просят еще php.
Вот. Как вам моя программа? Не работаю и качусь уже 3 месяца, но как-то без программы не очень. Хочу как-то систематизировать.
>>57995
>>58003
кун
Во-первых, тебе лучше доучить верстку по продвинутому интенсиву академии, а потом плотнее засесть за жс. Верстка не настолько важная штука, чтобы досконально все помнить. Во-вторых, не смотри интенсивы по программированию, формат обучения не подходит. В-третьих, я что-то не вижу у тебя в расписании просмотр аниме или манги, у тебя с ним точно все в порядке?
>Я просыпаюсь в 10
А значит, засыпаешь часа в 3 ночи. Важные гормоны вырабатываются с 23 до 3 в темноте. Ты их упускаешь, засыпаешь уже под сумерки.
Хитрость в том, что надо ставить не будильник, а засыпальник. Поставь будильник на 21. С этого момента ты заканчиваешь день. Больше ничего требующего концентрации. Придумай-запиши рутину-ритуал (застелить кроватку -> выключить свет -> почистить зубы -> выпить стакан воды). К 22:30 ты уже должен лежать в кроватке, под что-нибудь нудное, если скучно (мне заходит научпоп с Ютюба, брюзжание про политику, аудиокниги). В темноте. Первое время лучше поставить будильник на 7, чтоб выровнять ритм. Через пару дней ты уже будешь просыпаться раньше сам.
>в 12 начинаю
Ну или думаешь, что половина дня уже позади и можно особенно не напрягаться. Сильный час это второй час после пробуждения. Придумай-запиши рутину-ритуал (зарядка -> медитация -> душ -> завтрак). Завтрак принимай последним, как благодарность за выполненные практики. Со второго часа ты начинаешь резко выполнять самую отвратительную задачу на день. Ту, которая сейчас пугает или напрягает больше всего. Но не пытайся помыслить всю эту задачу целиком. Думай только о самых маленьких шагах, которые нужны конкретно сейчас. "Включаю комплюктер... теперь открываю редактор... создаю файл... пишу первое, что в голову пришло, без раздумий... следующее... редактирую...".
Привычки и режим надо учитывать. Надо двигаться к ним маленькими шагами.
https://habitica.com/
>Учусь 3 часа
Это так не работает. Учишься ты 20 минут. Остальное время ты заставляешь себя с около нулевой эффективностью.
https://www.youtube.com/watch?v=IlU-zDU6aQ0
https://www.youtube.com/watch?v=vd2dtkMINIw
Поэтому помидорки реально работают. И их количеству надо обязательно вести учёт.
https://pomotodo.com/
И не забывай, что обучение это новая прокрастинация. Если ты посмотрел главу, статью или видосик, то обязан тут же потратить минимум столько же времени на написание этюдов к прочитанному. Если ты из заголовка понимаешь, что ничего не напишешь, то и не смотри. Отложи это на время развлекухи.
Идея браться за ПХП сомнительна. Распыляешься. Осиль ЖС хорошо. Он прекрасен тем, что ты на нём можешь учиться делать весь стек, от сервера до клиента. Это тебе сейчас и нужно. Разобраться с архитектурой, как всё оно вместе работает, а не тратить время на другой язык.
>Я просыпаюсь в 10
А значит, засыпаешь часа в 3 ночи. Важные гормоны вырабатываются с 23 до 3 в темноте. Ты их упускаешь, засыпаешь уже под сумерки.
Хитрость в том, что надо ставить не будильник, а засыпальник. Поставь будильник на 21. С этого момента ты заканчиваешь день. Больше ничего требующего концентрации. Придумай-запиши рутину-ритуал (застелить кроватку -> выключить свет -> почистить зубы -> выпить стакан воды). К 22:30 ты уже должен лежать в кроватке, под что-нибудь нудное, если скучно (мне заходит научпоп с Ютюба, брюзжание про политику, аудиокниги). В темноте. Первое время лучше поставить будильник на 7, чтоб выровнять ритм. Через пару дней ты уже будешь просыпаться раньше сам.
>в 12 начинаю
Ну или думаешь, что половина дня уже позади и можно особенно не напрягаться. Сильный час это второй час после пробуждения. Придумай-запиши рутину-ритуал (зарядка -> медитация -> душ -> завтрак). Завтрак принимай последним, как благодарность за выполненные практики. Со второго часа ты начинаешь резко выполнять самую отвратительную задачу на день. Ту, которая сейчас пугает или напрягает больше всего. Но не пытайся помыслить всю эту задачу целиком. Думай только о самых маленьких шагах, которые нужны конкретно сейчас. "Включаю комплюктер... теперь открываю редактор... создаю файл... пишу первое, что в голову пришло, без раздумий... следующее... редактирую...".
Привычки и режим надо учитывать. Надо двигаться к ним маленькими шагами.
https://habitica.com/
>Учусь 3 часа
Это так не работает. Учишься ты 20 минут. Остальное время ты заставляешь себя с около нулевой эффективностью.
https://www.youtube.com/watch?v=IlU-zDU6aQ0
https://www.youtube.com/watch?v=vd2dtkMINIw
Поэтому помидорки реально работают. И их количеству надо обязательно вести учёт.
https://pomotodo.com/
И не забывай, что обучение это новая прокрастинация. Если ты посмотрел главу, статью или видосик, то обязан тут же потратить минимум столько же времени на написание этюдов к прочитанному. Если ты из заголовка понимаешь, что ничего не напишешь, то и не смотри. Отложи это на время развлекухи.
Идея браться за ПХП сомнительна. Распыляешься. Осиль ЖС хорошо. Он прекрасен тем, что ты на нём можешь учиться делать весь стек, от сервера до клиента. Это тебе сейчас и нужно. Разобраться с архитектурой, как всё оно вместе работает, а не тратить время на другой язык.
>я 4 года пинал хуи в никак не связанной с программированием
Пердак порвался у меня. В начале 2015 бодро решал задачи на ПрожектЭйлере по 10 в час, сейчас попробовал и почувствовал себя тупым относительно того времени.
Верно утверждают, что с возрастом человек тупеет.
>переменная, будь то var, let или const, будет доступна отовсюду в функции
Да что вы говорите. Как интересно. Где учат таких погромистов, которые нихуя не знают, м?
за всю жизнь я посмотрел из анимэ "добро пожаловать в нхк" и "5сантиметров в секунду", это было в 2008. И то потому что со мной учился паринь который и показал мне двач который мечтал стать отаку, и авторитетом у него был его друг онибака, у которого было много тайтлов.
>>58512
я попробую делать, как ты советуешь. Но раньше часа ложиться не получится, но зато можно сдвинуть пробуждение на 8.30-9
Не вырывай из контекста. TDZ и хоистинг к эдж-кейсам относятся.
Дрочишь кантора
а
Дрочишь кантора
а
Плачешь
а
Дрочишь кантора
Лайфхаков никаких нет и не может быть, за неделю не вкатишься, гипнозы и прослушивание лекций во сне не поможет. Кантора можно чем-нибудь другим заменить. Учишь функции, циклы, условия, массивы, объекты, вот это вот все, потом идешь ебаться с домом и обязательно решаешь там все задачи, потому что пердящие в консоль функции и алерты быстро надоедают, а посредством написания перделок набиваешь руку так сказать, начинаешь шарить чуть больше. У меня это наступило после окончания раздела события в деталях. После этого возвращаешься к первой части, разбираешься с прототипами, ООП, замыканиями, с ес6. Когда поймешь, что в принципе любой код можешь прочитать за исключениям васянства, попыток в байтоебство и прочего нечитаемого говна и начнешь в целом понимать что ты пишешь, а не воспроизводить знакомые слова, то идешь фреймворк выбирать. Разбираешьсы с ним и с самыми часто используемыми с ним библиотеками, делаешь мувисерчер, все.
>пропускали и возвращались
Если решить или нагуглить за 15 не можешь, то бросай и забудь. Ты всё равно что-то узнал и это не в пустую. Но эта задача концептуально очень далеко от твоего нынешнего положения.
>но он их тогда не знал
Видосы, курсы это полная хуйня. Большая польза от них — преодолеть страх неизвестного в начале. Первый час, два максимум. Дальше только как развлекательный контент вместо телевизора по вечерам.
А вот доки и исходники на офсайтах, которые жутко пугают ньюфань, наоборот, намного полезней. Многие тут спрашивают, как вкатиться в Реакт, даже не пытаясь сайт Реакта загуглить, а ребята ведь старались, там сплошная годнота.
курсы < видосы < говно < моча < книги < статьи < доки < исходники
Усиленно начал изучать жс примерно поздней зимой-ранней весной, до этого около года пердолился с вёрсткой не на постоянной основе, а скорее набегами - типа сверстал за недельку барбершоп - забил на месяц. Перед этим знал жс на уровне document.querySelector('.className') ну и базовый синтаксис с массивами, циклами и переменными, всякие методы для манипуляции с ДОМом гуглил по мере выполнения той или иной задачи типа - к примеру, нужно добавить элемент на страницу - гуглю appendChild, нужно что-то сделать с родителем целевого элемента - гуглю parentNode, нужно замутить анимацию - ставлю жиквери и ебусь с animate
Весной глянул базовый по жс от академии, попробовал смотреть продвинутый, но не особо затянуло, ибо там в основном только фишки es6 рассказывали. Поэтому забил на второй интенсив, решил запилить что-то для себя, чтобы заодно закрепить материал из базового интенсива (особенно часть с ООП). До этого имел календарик сорт оф тудулист, слайдер без анимаций, сделанный на коленке за полчаса, и всратую игру наподобие той, где у тебя внизу экрана пушка, которую двигаешь влево-вправо и стреляешь, а сверху летят хуйни-враги. Для закрепления базового интенсива и знаний по жсу в целом пилил вторую игру бродилку весь июнь, попутно добавив плюхи из ес6 (классы вместо всратых прототипов, леты, стрелочные функции), получилось терпимо, хотя говнокода много, а рефакторить было впадлу пиздос.
Сейчас вот с конца июля ебусь с реактом, редаксом и сопутствующими штуками типа thunk для сложных, асинхронных акшонов и роутера для навигации, пытаюсь из всего этого зоопарка запилить МУВИСЁРЧЕР, вроде почти сделал, осталось поебаться с дизайном немного и поправить говнокод где возможно может ещё заменить нихуя нормально не отлавливающий коды ошибок запросов fetch на вроде как отлавливающий axios
Как-то так. Кантора кстати мало трогал совсем, только самое базовое говно с синтаксисом, циклами и массивами. Чувствую, что зря, ибо часто туплю и горожу велосипеды где не надо, как мне кажется.
Усиленно начал изучать жс примерно поздней зимой-ранней весной, до этого около года пердолился с вёрсткой не на постоянной основе, а скорее набегами - типа сверстал за недельку барбершоп - забил на месяц. Перед этим знал жс на уровне document.querySelector('.className') ну и базовый синтаксис с массивами, циклами и переменными, всякие методы для манипуляции с ДОМом гуглил по мере выполнения той или иной задачи типа - к примеру, нужно добавить элемент на страницу - гуглю appendChild, нужно что-то сделать с родителем целевого элемента - гуглю parentNode, нужно замутить анимацию - ставлю жиквери и ебусь с animate
Весной глянул базовый по жс от академии, попробовал смотреть продвинутый, но не особо затянуло, ибо там в основном только фишки es6 рассказывали. Поэтому забил на второй интенсив, решил запилить что-то для себя, чтобы заодно закрепить материал из базового интенсива (особенно часть с ООП). До этого имел календарик сорт оф тудулист, слайдер без анимаций, сделанный на коленке за полчаса, и всратую игру наподобие той, где у тебя внизу экрана пушка, которую двигаешь влево-вправо и стреляешь, а сверху летят хуйни-враги. Для закрепления базового интенсива и знаний по жсу в целом пилил вторую игру бродилку весь июнь, попутно добавив плюхи из ес6 (классы вместо всратых прототипов, леты, стрелочные функции), получилось терпимо, хотя говнокода много, а рефакторить было впадлу пиздос.
Сейчас вот с конца июля ебусь с реактом, редаксом и сопутствующими штуками типа thunk для сложных, асинхронных акшонов и роутера для навигации, пытаюсь из всего этого зоопарка запилить МУВИСЁРЧЕР, вроде почти сделал, осталось поебаться с дизайном немного и поправить говнокод где возможно может ещё заменить нихуя нормально не отлавливающий коды ошибок запросов fetch на вроде как отлавливающий axios
Как-то так. Кантора кстати мало трогал совсем, только самое базовое говно с синтаксисом, циклами и массивами. Чувствую, что зря, ибо часто туплю и горожу велосипеды где не надо, как мне кажется.
>классы вместо всратых прототипов
Ты ведь в курсе, что классы - это синтаксический сахар над прототипами?
Ну не скажи, документация не всегда хорошо написана. В документации того же редакса ньюфаг хуй разберется.
Да, в курсе, но зато выглядит как у людей
>После этого возвращаешься к первой части, разбираешься с прототипами, ООП, замыканиями, с ес6
>ООП
Теперь поясните мне, что вы подразумеваете под этим, когда ты изучаешь первый яп (js)?
Ок. Я знаю как устроена реализация экземпляров и классов в js. Примерно понимаю что значат и для чего нужны: инкапсуляция, полиморфизм и наследование. Но даже зная всё это, я не смогу построить приложение в стиле ООП, из-за того что знания поверхностые.
Я могу говорить на собесах что "я знаю ООП"? И если нет, то почему тогда многие так мельком перечисляют знание ООП, среди прочих мелочей функционала JS? Это же огромный пласт теории и пракики, который идёт совсем отдельно от самого ЯП
Потому что победившая парадигма. Как полвека говорили что жир вредно и вообще не ешьте жир.
У меня, как у аутиста видимо именно вопрос в плане действия стоит. Расписал хорошо, попробую именно так двигаться
>>58791
>нагуглить за 15 не можешь
Как это понимать? Нагуглить решение? Мне кажется что это уже не то будет, не усвоятся же знания. Или я чего - то не понимаю
>>58793
Сложновато ты написал канеш. А с версткой я и сам ебался, и с джсом тоже самое. Видимо это те самые курсы от сами знаем кого
Я 10 дней учу и думаю через неделю начать пилить свой петпроект, будет говнокод, но на практике интереснее изучать.
ну так и пиздуй дрочи свой хуй в коморке, нерд ебаный. ХУли ты у нас, молодых и шутливых, забыл?
>не усвоятся же
Усвоятся, если ты прилежно воспроизведёшь. Усвоятся на 101%, если как-то модифицируешь.
А вообще, гуглить конечно только после некоторых попыток решить. Так ты сможешь идентифицировать проблему и норм запрос написать.
>я чего - то не понимаю
Да, это называется "слабоумие и отвага". Когда ты такой не прогал никогда, и тут опа: "Я все задачи сам решать буду" — герой. Фрустрации, бабах, слив. Гордыня омрачила рациональное.
Ты недооцениваешь силу копирования, воспроизведения. Ты абсолютное большинство навыков в жизни именно так и получил.
У меня? Да. Испытываешь проблемы с эрекцией?
2014 год, и ваще че за хуйня. Пиздуй на htmlacademy и learnjavascript чтоли.
Сука, вспомнил как мне ебаное тяночмо порекомендовало прочитать талмуд на 1000+ страниц жопаскрипт и жеквери для профессионалов, 2010 года. Хорошо что я ее не послушал.
А проверив в Excel, получаю правильный результат -0,58.
Чем в джваскрипт-коде нужно заменить команду Math.pow чтобы вычислить нужную мне степень?
В далекие времена, когда опера только стала бесплатной, и у всех на языке была аббревиатура DHTML, начал пердолить простенькие юзерскрипты, букмарклеты, локальные html странички для удобной организации закладок, короче всё для более лучшего серфинга интернетов. Гораздо позже, когда эти умения кратковременно понадобились на более высоком уровне и когда JS сильно эволюционировал - Кантора, без решения задач, потом уже в процессе работы над практическими задачами, которые были посложнее чем у Кантора бесконечные часы на MDN/SO, MDN/SO. Алсо до всего этого я уже знал и писал на нескольких ЯП, т.к. неоконченная профильная вышка, так что во всякую базовую хуйню вроде концепций ООП, алгоритмов, булевой алгебры мне уже вникать не приходилось. Алсо в IT я не работаю и работать не хочу - дерьмовая работа, которая окуклит тебя у монитора и сожрет всё свободное время, зрение, позвоночник, прямую кишку и все мысли о чём-нибудь другом, ибо круглые сутки в бошке все мысли о проекте. Но вангую в других профессиях так же, у пилотов, у архитекторов, хотя не знаю, я сторож.
А, всё не надо. Спасение нашлось:
https://math.stackexchange.com/questions/317528/how-do-you-compute-negative-numbers-to-fractional-powers
Ну бля, начал за здравие, а кончил за упокой
это чтобы функция внутри выполнялась в строгом режиме. написано же 'use strict;' вверху блока
мимо-жс-сеньор
Я где-то читал, что ФП весьма старая вещь, не в смысле математической концепции, а в смысле практического применения и её активно применяли или пробовали применять, пока не уперлись в невозможность реализации каких-то очень масштабных вещей без ООП, так и похоронили это фп, пока хипстеры нового века снова не откопали это. Не знаю, мб это и так, но кмк вот эти сахарные классы возможно первый звоночек, что впереди старые грабли.
Одно другому не мешает. ФП в ООП прекрасно вписывается.
420x420, 3:38
Я в курсе что функции это тоже объекты.
Но в каком случае объект считается функцией?
В каком случае результатом typeof-оператора будет "function"?
341x420, 5:05
Шизоид, я не абстрактное определение спрашивал, а как оно в JS устроено.
>Функция - действие над данными и возвращает результат.
>Обьект - сами данные.
Ты в курсе что в JS функция - это тоже объект?
Функция специальный языковой объект со своими свойствами, как regex или array.
Также функция может быть конструктором (и классом в es6+).
>В каком случае результатом typeof-оператора будет "function"?
let f = new Function('name', 'body);
let f = () => 'hi';
И стандартный способ
Вроде class тоже должен, но это не точно
В случае если ониможет принимать сообщения call или construct.
Большинство типов сообщений можешь почерпнуть изтописанря хэндлера в Proxy.
Помимо очевидных объектов и функций в ЖС есть абстрактные операции и внутренние поля. Это и есть кишки ЖСа, которые описаны в спеке. К ним никак нельзя получить доступ. Более того, их вообще может не быть в таком виде внутрях. Движок должен только соответствующе вести себя.
Например, для функции будет вызвана абстрактная операция isCallable [ https://tc39.github.io/ecma262/#sec-iscallable ], которая проверит перед вызовом, что у объекта есть внутренний метод [[Call]].
Не путай его с обычным методом Function#call [ https://tc39.github.io/ecma262/#sec-function.prototype.call ], это две вообще никак не связанные вещи. Обычный call это объект, у которого, как и у любой обычной функции, есть свой внутренний метод [[Call]].
Очевидно, что объект, который можно вызвать, это функция.
>typeof
С ним памятная история. Господом нам посланный Брендан Айк тогда спешил подарить миру лучший из языков. У каждого объекта был идентификатор и тип объекта был закодирован в первых трёх битах идентификатора. Для обычных объектов это было 000. Дело в том, что null это не объект, это просто нули, тоже с 000 начинается.
typeof null === "object"
к слову, лучше используй
const typeOf = x => Object.prototype.toString.call(x).slice(8, -1)
typeOf(null) === "Null"
Теперь спека вообще не говорит том, как определить конкретный тип объекта, только какие-то косвенные признаки
https://tc39.github.io/ecma262/#sec-typeof-operator
Ну а функция тут это уже знакомый тебе [[Call]]
334x420, 5:28
Да я в курсе и про [[ВнутренниеПоля]], и про проблемы typeof.
И уже нагуглил инфу про [[Call]]. Просто я думал что есть другие способы создания объекта-функции, а не только "встроенные синтаксические". Как в Питоне.
>К ним никак нельзя получить доступ.
Ну, некоторыми [[Полями]] можно манипулировать через специальные функции.
>const typeOf = x => Object.prototype.toString.call(x).slice(8, -1)
Хотел выебнуться и переписать этот typeOf без слайса, вместо toString используя x.__proto__[Symbol.toStringTag].
Это свойство-строка которая вставляется в результат toString. (И это свойство можно на своих объектах определить, сорт оф "имя класса").
Но оказалось что не у всех встроенных классов это свойство определено. У Set/Map - есть, у Array - нет.
Даже не знаю по каким причинам, наверн очередное ЛЕГАСИ.
Сори, паттерн "шаблонный метод"
Суть в том, чтобы определенными цветами подсвечивать определенные диалоги вконтакте (определенных людей)
Могу отблагодарить на вебмани. Если вы не против - могу обращаться к вам иногда с просьбами по контактам
>Спойлер: это не работает
Как-то не так заливаешь. Гит в твоём случае просто скачивает на хероку файлы. Так что должно работать.
Использую netlify ибо там для деплоя консоль не нужна, но закинуть файл js без index.html не могу.
Ну, я только начал в это вкатываться, узнал, что такое репозиторий. Всё.
Ну суть остаётся той же, я ебашу node.js, чтобы его потом задеплоить на облачный сервер вместе со своим ботом?
Хоть ты и быдло с Телегой, но подскажу.
В шапке написано
>Задеплоить https://zeit.co/now
Тебе не понятно слово "задеплоить"?
В следующей шапке напишу "залить", ёпта.
Быдло с телегой лишь оттого, что хочу научиться с этим работать. Сейчас посмотрю, что там.
Лол, делюсь обосрамсами. Взял код бота из интернетов, шоб посмотреть. Задеплоил, нихуя не работает. Я нихуя не понимаю. На этом, пока что, всё.
Вот допустим у меня есть textBox. Значение в нем постоянно меняется в теле Реакт компонента.
Как экспортировать обновленное значение textBox? Он постоянно экспортирует его начальное значение, которое равно null. Пытался записывать значение в глобальную переменную, но все бестолку
>в глобальную переменную
Больше ни слова! Вижу, вижу проблемы в верхней чакре.
>Для фреймворков библиотек https://codesandbox.io/
Соре, понимаю что в слепую мало что понятно. Вот простенький пример.
https://codesandbox.io/s/9j3w4wz954
Можно считать, что вместо export default используется console.log(). В теории я хотел, чтобы значение записывалось в переменную с постоянным обновлением и потом экспортировалось обновленное значение. Но это не происходит. Console.log() показывает самое первое значение переменной undefined. Скорее всего проблема в области видимости. У тебя случайно нет идей как решить данную проблему?
сделайте меня это развидеть пожалусто
Сашенька, ты совсем долбоеб? Какие блядь переменные, зачем ты дом напрямую ковыряешь? Ты хоть документацию там почитать, говнокурсы скачать, да хоть видосы на ютубе посмотреть удосужился или просто пошел тыкоть в надежде, что как-нибудь само разберется? Иди документацию читай, блядь.
Мне не надо сделать. Мне надо понять в чем проблема. Я хочу научиться, а не брать готовое!
Мдауж
Лол, смешно
Ты просто лютую дичь творишь, но хотя бы прочитай код и подумой над ним еще раз. Ты инициализировал переменную, создал класс, один из его методов меняет значение переменной. Да, он действительно будет его менять так, как ты хочешь, в переменной действительно будет значение инпута при каждом нажатии. Но ни экспорт, ни консоль лог это не ебет абсолютно, потому что они на эту переменную не подписаны. Они при первом запуске кода отработали свое и все, больше они не будут задействованы никогда. Как сделать чтобы работало - читай в документации реакта, это надо самому понять, а лучше не трогой реакт, пока не начнешь в ванилле разбираться нормально. Нет, сейчас ты в ней не разбираешься.
Ясно, но то что ты мне сказал я итак знаю. Решением проблемы могла быть возможность экспортировать переменную изнутри реакта, если это вообще возможно. Поэтому подумал, что если записать его глобально, то получится это сделать. Ну а без практики разве приобретешь знания какие - нибудь. Хотя не суть. Я тебя услышал
Это не совсем то, чего я хотел, но ты натолкнул меня на одну мысль. Думаю завтра уже этим займусь, спасибо
Ты не знаешь, ты дурачок и ничего не знаешь, иди учи ваниллу, а то кучу время и нервов потеряешь.
Я тебя услышал. Буду дальше разбираться
ну так напиши че ты хочешь
вся суть реакта в том что ты пишешь у компонента евохний стейт и он может переиспользоваться где угодно ниче не дергая и используя этот стейт
если чето передать нужно то передаешь это через пропс во время вызова компонента
Так я же написал выше, что мне нужно только экспортировать значение textBox. Это значение будет использоваться для работы на других страницах и компонентах.
Мне не нужен компонент, в котором находится textBox. Мне нужно экспортировать значение textBox, которое постоянно меняется в самом Реакт компоненте. Переменная, которая находится внутри реакта не экспортируется.
Иными словами на другой странице этот компонент не нужен, но значение, которое меняется в TextBox должно использоваться. Надеюсь донес достаточно ясно
Кажется это то, что я ищу. Спасибо
На другую страницу. В проекте маршрутизация присутствует. Но Это не важно в данной проблеме, я думаю. Займусь этим завтра, пожалуй
А как узнать, что язык знаешь? Наизусть весь API заштудировать? Не подъеба ради, просто интересно
ну так сделай рут-компонент со стейтом и 2 компонентами
первый компонент будет менять этот стейт через пропс
второй использовать или что ты хочешь
Когда ты хотя бы понимаешь, что ты пишешь и можешь любой код прочитать. А если ты его написал, то и сконпелировать в голове. Когда ты будешь писать матх.рандом() и где-то на подсознательном уровне уже понимать, что ты не просто пишешь слова какие-то и аллаh заставляет работать шайтан-машину, а с помощью оператора . выбираешь у объекта матх метод рандом и вызыаешь его с помощью оператора (). Как-то так, короче, хуй знает как объяснить.
1) Что именно проверяет оператор instanceof (расскажи алгоритм его работы)?
2) Как сделать чтобы этот код вывел числа от 0 до 10 (реализуй это)
>for(let n of 10) console.log(n)
3) Создай объект, который, при обращениии к любому его полю, возвращал бы строку "hello, {имя поля}"
>your_object.someField // hello, someField
>your_object.tyHui// hello, tyHui
>и так далее
4) Реализуй класс Interface, и несколько его наследников, который работал бы как пикрелейтед
бабки вперёд! а если серьёзно, и ты тот чел кому это нужно, то я в новом треде уже ответил, что получилось кривоватое говно на интервалах, хз даже
Это копия, сохраненная 16 октября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.