Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
>>777728 (OP) >Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Что такое "гибкость" и как она связана с тем что JS используется во всех этих областях?
> Удобный синтаксис позволяет легко писать на нём Удобный по сравнению с чем?
И хватит фреймворкосрачей. Вы заебали. Ни реакт, ни второй ангулар на данный момент не сдохли. Не надо хоронить реакт, пока не релизнулся второй ангулар. И не надо хоронить второй ангулар, пока он не релизнулся. Релизнется ангулар, потом сритесь, а сейчас это просто флуд.
>>777730 > Что такое "гибкость" https://habrahabr.ru/post/214087/ > как она связана с тем что JS используется во всех этих областях? Популярность языка позволила ему перейти на другие платформы. Гибкость в популяризации сыграла не последнюю роль > Удобный по сравнению с чем? У javascript отличный уровень абстракции на данный момент. Ты не теребишь байты между регистрами, но и всё не так сложно, как в lisp/haskell. Такая вот золотая середина с удобным порогом вхождения.
Посоны, мне тут друг ( такой человек, который с тобой общается на постоянной основе ) доказывал что ООП в js зло и дескать надо ФП осваивать, поддерживаемость говорит в разы лучше, тестируемость расширяемость и еще куча всего, не пиздит ли ? А есть че почитать на эту тему годного ?
Добрый день, аноны. Объясните ньюфагу. Вот я прочитал learn.javascript.ru,и вроде бы надо сделать что-то свое типа змейки или калькулятора. Вопрос в том, что можно ли подглядывать другие сделанные работы по змейке или калькулятору, так как я не могу представить с чего надо начать? Знаю, что такие вопросы тут уже задавались не раз, но все же подскажите как мне быть?
>>777825 Конечно, епта. Потому и говорю, что все эти канторы это по большей части хуйня, т.к. Илюша может и хороший человек, но мылить не учит, а просто рассказывает то, как работает язык. Правильно предыдущий анон сказал, подписывайся на интересные репозитории, изучай сорсы.
>>777668 >тут азы азов, даже не замыкания (а хоистинга тут и близко нет), а посмотреть знает ли петух элементарщину, что после return ничего не выполняется. Во-первых, про замыкания, а точнее про Лексикал Енвайромент, так он создается для функции, так как ты используешь переменную, которая хранится в функции, то ты используешь замыкание, просто в настолько явной форме, что ты даже не думал, что это оно, еблан. Во-вторых, вопрос на хоистинг - всплывет второе значение(переприсваивание) или нет. Функция всплыла бы с телом из любой точки кода, переменная нет, так как работает иначе, потому после ретурна хоистинга не происходит. Хуле ты такой тупой и категоричный, баклан?
>>777854 >хоистинг - всплывет второе значение(переприсваивание) >хоистинг >всплывёт значение >потому после ретурна хоистинга не происходит. Чё несёт...
>>777881 Ты туповат, да? Хорошо, еще раз - там вопрос был с целью запутать нуба, чтобы он хойстинг функций попутал с хойстингом переменных, который отличается. Нуб и попутал. Пример, хойстинга функций function func() { var x = "la"; function f(){console.log("ti dolboeb")}; return f; function f(){console.log("ti TUPORILIY dolboeb")}; } func()(); Вуаля, вывело, что ты тупорылый долбоеб. Надеюсь теперь ты понял о чем шла речь.
>>777926 Если бы ты определял через var f = function, то результат был бы иной. Там не хоистинг, а присваивание, а здесь чистый хостинг, функция f в любой точке кода во время исполнения будет равна функции с тупорылым долбоебом.
>>777935 Я другой анон. Я это упростил до: Есть два прохода Во время интерпретации блока кода, Один, чтобы декларации функций собрать, Имена переменных в неймспейсе создать, Второй, чтобы код воедино собрать, Исполнив все то, что программист соизволил сковать.
>>777926 Да мне похуй, в чём там вопрос был, у меня к твоему посту претензии. Хоистинг поднимает объявление переменной в начало. И плевать, где именно это было: до, после, или вообще внутри ретурна, если сумеешь вставить. На присваивание значения переменной хоистинг никак не влияет. Нет никакого "хоистинга ФД" и "хоистинга переменных". Есть один хоистинг — это вынос объявлений (declarations, значение используемого тобой ФД ведь знаешь?) в начало кода.
>>778007 Да, только первое вхождение меня устраивает. Чтобы возвращал все вхождения тоже не хитрое занятие. Вопрос заключается в том, насколько правилен сам подход
>>778018 Начиная с каждого элемента массива A проверяешь следующие n элементов на равенство элементам массива B, где n - длина "подмассива" B. Если всё чётко, то готово. Для поиска нескольких можно либо перепрыгнуть на n, если пересечения не разрешены, либо продолжить дальше искать. Что тут ещё-то можно придумать? Ты, вроде, так и делаешь, только c = 0 нахуя? всё равно ведь тут же break'аешься, а потома она завново создаётся. И внешний нужно ограничить на длиной sourceArray, а sourceArray.length - nextArray.length чому next-то?
>>778042 Пять введений с кофескрипта никак его не заменяют, иначе б я не чувствовал БОЛИ от перехода. Ты вообще на сайт кофе хоть раз заходил? Посмотри сколько всего НЕ сделали, и, вероятно, никогда не сделают http://coffeescript.org
>>778169 Нахуй тебе апач? Голая нода в сотню раз эффективнее будет справляться с балансировкой, чем это тормозящее говно, жрущее по несколько мегабайт на коннект
>>778237 Можешь считать, что там написано arr.map(foo[, thisArg]) где foo - это какая-то функция. Вообще наименование callback подчёркивает что в функцию map в качестве аргумента передаётся не просто какое-то значение/объект, а исполняемый код другой функции, но в данном случае тебе необязательно это знать. С колбэками ты познакомишься позднее, когда будешь дрочить nodejs. У того же Кантора есть довольно картавые годные скринкасты про ноду: http://learn.javascript.ru/screencast/nodejs
>>778246 >С колбэками ты познакомишься позднее, когда будешь дрочить nodejs Типа в браузере асинхронные функции нинужны? Или ты ожидаешь, что он будет промисы хуярить, если не для него колбеки СЛОЖНА?
>если не для него колбеки СЛОЖНА А мне твоё предложение СЛОЖНА.
Я к тому, что в принципе-то колбек по определению функция foo, переданная в другую функцию bar. Но в то же время колбеком обычно считается бравыми фронтендерами, которые пишут на ноде функция foo, которая будет вызвана после того, как функция bar вернёт значение. У нас тут колбэк по определению, и ни о какой асинхронности речи не идёт. И кстати, хуй его знает, столкнётся ли он с асинхронными функциями в браузере или нет. eventListener, например, асинхронный, но колбеков там нет. А вот в ноде мимо них не пройти.
>>778280 >eventListener, например, асинхронный, но колбеков там нет А эвент тебе аллах атачит к элементу? Или ты всё в html атрибутах делаешь и никогда addEventListener(callback) не пользуешься?
>>778226 Колбэк функция - функция вызываемая внутри другой функции, точка. >а именно в методах перебора массива например Функция будет вызвана изнутри переборщика массива для каждого элемента массива.
>>778286 >Колбэк Нахуя лямбде дали какое-то тупое бессмысленное название, придуманное гуманитарием, не осилившим лямбда-формализм? Вообще, я смотрю, в программировании полно каких-то сельскохозяйственных названий. Возможно, это потому, что типичный программистишка - это не божественный шизоид-математик, а мещанин с кругозором типичного рашкинского жлоба-семьянина.
>>778316 Ну, у метеора есть своя ниша рельс, а первый ангуляр будет жить ещё несколько лет как минимум, дохуя всего на нём написано, что никак не переписать даже за полгода-год.
Но вот учить эмбер, который даже не родившись умер, обладает охуенно высоким порогом вхождения, но во всем сосёт у всех популярных фреймворков и либ - 0 из 10.
>>778322 >в 50% стартап это 3,5 первокурсника, выучившие вчера как сделать сервер на экспрессе и тудухи на реакте >в 45% кукан вместо зп >в остальных 5% никто и не требуется, потому что опытные люди просто взяли своих коллег и знакомых, с которыми уже есть опыт работы
>>778366 Чому? Они лучше книг, чистая практика. Смотрит как делает мужик на экране и делаешь так же. Есть вопрос - лезишь в доки, гуглишь. Ну тут надо знать английский хорошо, правда. >>778367 >Куча воды, нудятина. Книга для основ, а дальше статьи и подкасты Ага. И с какой скоростью ты читаешь эти книги? Я просмотрю курс(3-4, может 5 часов) по хуита_нейм за один день, а сколько ты будешь читать книгу на 200-400 страниц? Притом на английском.
>>778366 >>778367 Имеют, если это нормальные западные курсы от какого-нибудь Абрамова или Джона Папы, не имеют, если это ебучий индус или Васян очередной, который 25 часов рассказывает базовую хуйню, которая в нормальном видео занимает 40 минут.
Учить что-то по рюскей видосам была моя самая большая ошибка, я представить не могу как они только умудряются записывать 3х часовые видосы для 20 минутных тем, при этом почти без примеров, когда в 20минутном дохуя примеров кода и почему именно так стоит делать, а не вот так.
Впрочем, у нас книги писать не умеют, видео записывать тоже, всё как обычно.
>>778399 Дохуя кто. Vue.js в Китае очень популярен, например. Inferno сейчас вон как замену React форсят он говно, не ведитесь, автор долбоеб который пиздит код у других и не знает как он работает
>>778415 >Имеют, если это нормальные западные курсы от какого-нибудь Абрамова >Учить что-то по рюскей видосам была моя самая большая ошибка Ранняя деменция детектед. >)
>>778417 Тупой даун, тебе: 1) в po, рюсня сосёт хуи и ты тоже, страна с мертвым айти рынком 2) Абрамов рюсня, но курс он делал для западного рынка, заметно выше качеством чем наше говно
Ты такой тупой потому что мама много пила и отец её бил во время беременности?)))
>>778357 >корпорация Фейсбук Они на таких дурачков срать хотели. Они намеренно разделили html верстку и js код в реакте, тогда как ангулародауны пытаются смешать всё.
>>778521 Ты пихаешь разметку в файл с джсом или не пихаешь? Пихаешь. Потом упоминаешь компилятор, но даже это обсёр, потому что тебе надо постоянно перекомпилирывать твою разметку.
>>778523 Это делает tsc при каждом сохранении. Для того же можно настроить галп с вотчером и бабел-парашей, если ты на ES2015. Декларативное описание оче удобно. Его так же можно выносить в модули, что я и делаю.
>>778524 >Декларативное описание оче удобно Что. Ты. Несешь. Сейчас выяснится что HTML - не декларативен, а истинно декларативен только JSX в кишках JS-лапши (потому что куча говна и палок, перевязанная изолентой умеет его оттуда выковыривать самым извращенным способом). И что декларативность изобрели инженеры Фейсбука и к ним теперь разработчики Prolog ходят опыт перенимать.
>>778535 В результате транспиляции или ручного набора - нет html/xml. JSX можно вынести в самостоятельные модули, как шаблоны с разметкой. В чём проблема?
Подскажите нубу, что нужно прописать в package.json что npm устанавливал пакет с гитхаба? Собрал проект, загрузил на гитхаб. Но при попытке установить его с помощью npm, инсталлятся только зависимости, лол. Прозреваю, что забыл какую-то хуйню добавить в package.json.
Давеча читал сайклджёрк адвокатов ангуляр о судьбе ag2. Пришли к выводу, что моментума не буде. Короче, ковыряние этой бадяги - удел банковских интерпрайз-приматов. Узкая ниша. Да здравствует Реакт!
NPM выкидвает варны: npm WARN enoent ENOENT: no such file or directory, open 'D:\experiments\TEMP\package.json npm WARN TEMP No description npm WARN TEMP No repository field. npm WARN TEMP No README data npm WARN TEMP No license field.
>>778588 Всмысле? npm init при создании проекта и делал. Вручную добавил только поле repository. Сейчас вот проверил тулзой http://package-json-validator.com свое репо на гитхабе - package.json валидный, отсутствует несколько необязательных полей, вроде bugs, contributors, engines.
Джосоны, может кто-нибудь посмотреть код и сказать что доделать, исправить? И подсказать как сделать так, чтобы открытие группы пустых клеток работало? Лучей добра. :)
>>778593 Лол. Интересная хуйня получается. Сделал, как ты сказал, но теперча npm прячет мой пакет в 'node_modules'. Я так понимаю, npm работает как и задумано? Просто я немного другого поведения ожидал. Думал, по команде npm install github/repo npm распакует репо в папку и поставит зависимости, чтоб вручную git clone не дрочить каждый раз. По ходу дела такого функционала нет?
Аноны, вчера тут спрашивал по поводу калькулятор и змейке. Нашел код калькулятора, повторил за ним все, а что делать дальше с ним теперь? http://codepen.io/Okhre/pen/begpgg
>>778568 Ты когда устанавливаешь модуль, должен флаг --save добавлять. Тогда в пэкейдже в свойстве dependencies будет записано имя модуля и версии и так зависимости будут автоматом качаться.
>>778596 Ничего. Никому нахуй твои калькуляторы не всрались. Даже на стажировки всякие задания такого уровня подразумевают минимум работы, например, с реактом, а не просто файлик с нативным жсом. Вот тебе пример заданий на стажировку: 1) сделать калькулятор матриц, чтобы можно было добавлять т убавлять столбцы и строки, проверка валидности вся хуйня. 2) сделать записную телефонную книгу, которая бы хранила в local storage браузера инфу, можно было бы сортировать, искать по любому столбцу
>>778600 >2) сделать записную телефонную книгу, которая бы хранила в local storage браузера инфу, можно было бы сортировать, искать по любому столбцу Джейсану это. Пожалуй, одно из самых частых заданий для юниоров в энтерпрайзе это разработать справочник сотрудников. К примеру, выглядеть UI должен так: - слева панель со списком подразделений организации; - наверху панель со списком сотрудников в текущем подразделении; - снизу область профайла выбранного сотрудника (фото и данные). Функционал должен включать примитивный менеджер базы данных - добавление, удаление (подразделений и сотрудников), возможность экспорта.
>>778606 MVC сюда вы идеально вписалось. Но можешь во вьюхе все херачить, как то предлагает Реакт.
>>778595 > Я так понимаю, npm работает как и задумано? Да > Просто я немного другого поведения ожидал. Думал, по команде npm install github/repo > npm распакует репо в папку и поставит зависимости, чтоб вручную git clone не дрочить каждый раз. Нет, нпм должен только зависимости подтягивать, а не качать и распаковывать проекты > По ходу дела такого функционала нет? Нет. Обычно ты должен делать git clone https://github.com/user/project.git . && npm i
>>778609 ну я еще вообще зеленый в джс, стараюсь все зубрить, чтобы хоть что-то сделать самому. Не знаю приступать ли к изучению всяких фреймворков, но я еще не до конца понял ДОМ. Да и реакт посмотрел сегодня ночью ради интереса для чего нужен. Вроде если я правильно понял, то он отвечает за интерфейс?
>>778675 Звучит умно. Вот спросят тебя, как ты хранишь данные, а ты такой "я юзаю редакс". И все сразу "ооо, какой он умный и продвинутый". А если скажешь что в одном объекте хранишь, то подумают что долбоеб. Хотя по факту разницы никакой.
Напомните, нахуя вообще во фронтенде все эти фреймворки? Если в 99% в случаях, где их используют, можно заменить это всё простыми скриптами, которые напишет даже школьник. Фронтенд макаки поняли, что нужно повышать порог вхождения, иначе пиздец их зарплатам? Или просто хотят походить на успешных господ, занимающихся настоящим программированием?
>>778745 >ru Если не можешь читать по-английски, читай хотя бы со словарём и учись, всё равно не уедешь никуда, если не можешь банально документацию осилить, даже от джунов сейчас требуют хотя бы на уровне чтения литературы знать инглиш.
>>778840 Не всегда открываются все клетки, если ткнул в пустую область. На области не может быть пустых клеток. Хуевый интерфейс через промты. Нельзя ставить флажки.
>>778596 Любая игра работает через цикл: обновил данные, перерисовал. setTimeout(function(){ обновить_даннные(); перерисовать(); }, 1000/40 ); Грубо говорят так.
>>778877 В ноде у тебя контекcт модуля, в браузере ты ебашишь переменную в контексте window и удивляешься откуда она там. Оберни в модуль и удивись, что в window ее не будет
>>778877 Получается, единственный способ в ноде записать в глобальный объект – в нонстрикт моде без var объявить переменную. А как в браузере объявить её вне глобального объекта?
>>778793 >чтобы визуализировать как ты хочешь, эти 6 элементов должны быть дочерними Значит два пробега, первый делит по 6, второй отрисовывает, по-другому не вариант.
>>779122 >халявки Халяв - раздача ништяков беднякам по случаю какого-нибудь праздника. Ты хотел сказать халтурки. Учи ноду. Потому что хайп вокруг реакта в основном из-за изоморфности, которая возможна пока только с нодой.
Хочу организовать drag&drop так, чтобы указатель мыши "цеплялся" к определённому краю захваченного объекта (независимо от того, где именно на объекте мы кликнули мышкой). А потом сделать акцептором именно тот объект, над которым висел указатель в момент сброса. Как-нибудь можно это всё в jQuery реализовать? Или что-то другое надо искать?
>>779266 В jqueryui есть модуль DND. Можно использовать только его, сделай кастомную сборку. Ты перемещаешь объект относительно локальной точки клика (из события).
Сап, гайз. Пилю микросервис на ноде и встал вопрос, а посредством чего лучше отдавать апи? Вебсокеты или обычный HTTP(S)/REST? Высокой нагрузки не предвидится, если что, ресурсы тоже зело ограниченные.
>>779339 Не все роботы умные. На работке подключал статистику, там требовалось, чтобы мета-данные выводились в комментах. Их робот вряд ли будет читать виртуальный дом.
>>779352 Для неумных роботов есть дохрена сервисов, которые за треть миски риса с радостью возьмут твой джаваскрипт и выдадут статический хтмл, пригодный для роботов.
Открою секрет - фреймворки не нужно учить. Нужно учить и понимать принципы, на которых они построены, а также смотреть какую пользу они могут принести/какие проблемы решают в отличие от уже существующих. Я сейчас могу в любом фреймворке, в любой библиотеке, разобраться за пару часов и начать использовать её в продакшен-реди коде. Потому что сами базовые принципы не так сильно различаются, часто повторяются и т.д.
>>779545 Ну после такого заявления было бы здорово если бы ты дал рекомендации по учебным материалам о принципах, а то пока у большинства получается что их можно выучить только в процессе разучивания фреймворков
А что если написать js engine на golang? Тогда ведь можно будет использовать мультипоточные горутины вместо однопоточного евент-лупа, для асинхронности. Ну, я о том, что асинхронность останется той же, но будет уже многопоточной, нет?
Рейтаните задачку для ньюфага, которую можно на фулл JS стеке решить. Идей тред мёртвый, а тут как раз по теме. Что-то я упустил может быть в своих рассуждениях? >>779825
С какого-то момента перестал воспринимать учебник Кантора как учебник, а не как справочник по основным моментам, написанным для людей, которые уже имеют опыт веб-разработки.
Что почитать для совсем нубных нубасов? Фак читал.
https://litvinenkoevgeny.github.io/cdevs/ Двач выручай, я уже как то спрашивал про енту хуйню, короче когда анимация заканчивается, она исчезает, а должна заново начинаться, я прост вообще никогда с flw не работал, как такое поправить ? Гугл что то вообще ничем не помог
>>780131 Он наверное имел в виду Server-side JS как технология, нежели язык в целом. Да и появлением Asm.js необходимость в чистом виде JS снижается, да.
>>780139 То, что код, скомпиленный из CPP в JS, например, дает на выходе лучшие результаты в производительности выполняемого кода, нежели код, написанный на чистом жс.
Кажется, на гитхабе pixi обсуждали есть ли смысл переносить операции на asm.js. Насколько я помню и правильно понял, асм работает как веб-воркеры, в том смысле, что имеют собственный контекст и во время перегона данных между ui-тредом и asm теряется производительность. В итоге получается хуже.
>>780227 Ссылки на сидиэны хороши тем, что керишуются. Есть вероятность, что кто-то уже использовал эту библиотеку и твоя страничка загрузится быстрее.
>>780227 Я думаю так же. Но смотрю на людей, и они держат файлы в сервере. Хотя в любом случае после первой закачки они закешируются и будет всё равно.
>>780238 Ни в чем, там нет сарказма. Там делают все нормальные ребята. Ещё лучше делать проверку на доступность пакета, и, если что, другой cdn юзать: <script>window.jQuery || document.write('<script src="googleCdnUrl">\x3C/script>')</script>
>>780248 Ещё бывает ресурсы окукливают для интранет-онли или как у ростелекома, когда у тебя заканчиваются средства на счету, рубятся внешние ресурсы и "кабинет" перестаёт работать. Лал, всегда, когда хочу оплатить кредиткой через дешборд, напоминаю этим даунам, чтобы не резали доступ хотя бы к библиотекам, которые используют.
>>780383 Но дьявол в деталях. Гитхаб, коллаборация, все дела, только как сказал абраша, цукербук может выдернуть штепсель, как гугол с первым ангуляром.
>>780422 > как гугол с первым ангуляром Как же вы доебали, суки. Как будто гугел ещё в начале 14-го вторую версию не анонсил и не сетовал, что первому уже 5 лет, и он уже технологически подустарел
>>780430 Это совсем другой фреймворк с тем же названием, а не обновление. Пилю стартапчик. Из-за отсутствия обратной совместимости, мои многотысячноLOC скрипты устарели, так и не успев дойти до продакшена.
>>780436 Это ж веб, всё быстро меняется. Если бы они этого не сделали, ангулар бы помер, потому что не удовлетворяет современным требованиям, и не может соперничать даже с тем же реактом Но они, кстати, постарались написать о миграции, где объясняют тонкости работы со вторым, если ты знаешь первый, что уже довольно неплохо https://angular.io/docs/ts/latest/guide/upgrade.html
>>780452 Гугол делает ставку на компонентность, это уже околостандарт И компонентность есть что в ангуларе, что в полимере. Только в полимере компонентов куда меньше, не совсем понимаю зачем он вообще нужен и для кого делался
>>780444 > потому что не удовлетворяет современным требованиям, и не может соперничать даже с тем же реактом Проиграл. В каком модно бложике это написано?
var number = 1.123; number.toFixed(2); Такая конструкция не работает по какой-то причине. То ли переменную нельзя перезаписать, то ли после применения объектного метода на выходе получается то же число, что и на входе, потому что метод-то обектный и число представляется в виде поля объекта. Интересно.
Хочу запилить дизайнерскую прожку на ангуляре, и выложить ее на гитхаб-пейджес. Подскажите, удастся ли обойтись без бэк-энда (PHP/MySQL), и реализовать с помощью localstorage структуру хранения данных (пикрилейтед).
>>780476 Это понятно, что если перезаписать переменную, то резалт схоронится. Интересно другое, после применения к примитиву напрямую объектного метода сам примитив не изменяется. Значение можно лишь переприсвоить.
>>780511 Уже понятно, что не взлетел. Когда первый Ангулар был близок к релизу, его уже юзали везде. Сейчас второй почти вышел и никто, кроме гугла и двух хипстеров его не использует. Они умудрились проебать все преимущества первого. Хеллоуворлд, выводящий одну страницу с одним h1 заголовком "Hello world!" требует 25 файлов и тащит 170 мегабайт зависимостей. Неудивительно, что это говно оказалось невостребованно. Сейчас пишут либо на первом ангуларе, либо на реакте. Даже самые новые проекты начинают создавать на первом. Провал.
>>780511 Задай себе вопрос - зачем это делать? Кто будет использовать его? Сами евангелисты говорят, что он займёт интерпрайз-нишу. Это где абстрактные фабрики фасолин. Где angular.min.js весит 500+Кб и всем норм.
... что в умелых руках JS оказаться не может, потому что умелые руки об него пачкаться не станут. Человек, мало-мальски понимающий, что он делает, никогда, ни при каких условиях не станет применять JS на сайте. Иное дело, что в современных условиях грамотные люди в веб-разработке не задерживаются.
JS очень повышает юзабилити
Смешно, да. Ну давайте посмотрим, как реально обстоят дела с этой вашей юзабилити. Лично я обычно просто не хожу на сайты, которые не работают без JS, то есть вообще не хожу — точно так же, как не хожу, например, в такие магазины, где продавцы хамят и матерят покупателей. Но, увы, есть парочка сайтов (буквально: два), которые мне использовать приходится, несмотря на наличие там JS и невозможности работы без него. Так вот, чтобы зайти на такой сайт, мне приходится на рабочей машине держать специально для этого пустой аккаунт, на котором периодически сносится всё, что там успел нагвоздить браузер; перед заходом на JS-нутые сайты я делаю ssh -X bolvan@localhost и уже там запускаю браузер. Это вы называете "повышением юзабилити"?!
NB: у любого сколь бы то ни было технически грамотного человека JS в браузере должен быть выключен. Period. А дальше те, кто пользуются *nix-системами, хотя бы могут делать как я — гонять второй браузер из-под чистого и изолированного аккаунта, тогда как пользователи Win и прочей нечисти не имеют даже этой возможности. Но ублюдков-вебразработчиков, разумеется, это не волнует, потому что, видимо, они всерьёз не понимают, почему это всё так.
программы-сайты, например полноценные IDE
IDE не имеют права на существование вообще, то есть изначально. Что касается идеи IDE как браузерного приложения, то автора этой идеи следовало бы, как мне кажется, изолировать от общества. Этот псих опасен для окружающих.
или музыкальные плееры
Я знаю только одно применение для браузерного плеера — сделать так, чтобы скачанная пользователем музыка при этом не сохранялась локально на компьютере пользователя. При этом неискушенные пользователи уверены, что они вообще ничего не скачали (реально, сам таких видел). Тех, кто это всё делает, следует подвергнуть смертной казни в особо продвинутой форме — например, путём утопления в бочке с дерьмом. Публичного.
код на JS полностью абстрагирован от реального железа и не зависит от среды выполнения
То же самое можно сказать про любой интерпретируемый язык, а равно и про язык, который компилируется в байткод. И это никоим образом не повод иметь в браузере интерпретатор любого алгоритмически полного языка, неважно, JS это или что-то ещё. Кстати, от среды выполнения JS очень даже зависит — если статический HTML ещё более-менее реально заставить выглядеть одинаково в разных браузерах, то заставить JS вести себя всегда одинаково — невозможно в принципе, это превышает возможности человека.
>>780516 > Уже понятно, что не взлетел. Когда первый Ангулар был близок к релизу, его уже юзали везде. Почему ты говоришь о том, в чем не разбираешься, хуила? Он популярность только в 2013 набрал
и один говнокод который должен тащить комменты текущего поста: app.factory('Comment', ['$resource', function($resource) { return $resource('/posts/:post_id/comments/:id.json', {post_id: '@post_id', id: '@id'}); }]);
почему-то '@post_id' не видит, хотя в модельке он точно есть, чяднт?
>>780522 > Лично я обычно просто не хожу на сайты, которые не работают без JS, то есть вообще не хожу. Проиграл с этого бунтаря. Типо назло мамке не буду ходить)))
Парни, можно ли на js написать сервис который будет собирать инфу с определённых сайтов и выводить в качестве статистики, сравнения. Или для этого похапе нужен еще? И на чем вообще лучше реализовать подобное?
>>780619 Судорожные попытки высрать что-то удобоваримое. Через год будут переписывать на другие фреймворки, а через два пошлют нахуй js и будут из нормальных языков компилировать в webassembly.
Сап, программач. Я надеюсь ты уже достаточно ночной. Я вот что хотел узнать - js плохой, ко-ко-ко, куча недостатков, все хейтят, это окей-окей, мы знаем. Мне любопытно, сколько людей тут сидящих (ну и разумеется пишущих на js) довольны языком, он вообще им вполне нравится и все такое, а не (он хуевый, но мейнстрим все на на нем приходится писать, нет альтернативы, это не интересует). Отпишитесь именно те, кто доволен языком, может быть кому он любим, и если не трудно, то сопроводите комментариями за что он вам нравится (какие его стороно\аспекты\етк), и можете еще отписать, какими языками владеете помимо него. Будьте добры.
Соу, просто любопытно, ибо хайп хейта настолько велик, что у меня за последние года полтора (а может и два) сложилось впечатление, что язык именно ненавидят все поголовно, а те кто работает с ним постоянно, работают только потому что ниша и нет выбора. Но я думаю (чисто по законам статистики) должны быть и иные. Спасибо.
>>780529 Бамп вопросу. Почаны юзают $scope.forum = Forum.get({id: $routeParams.id}) но у меня routeParams пустой почему-то, шаманство с ng-view не помогает.
>>780807 Так его хейтят именно за очень высокую популярность. Все вещи, достаточно популярные, чтобы быть у всех на слуху, люди начинают ненавидеть просто потому что
>>780821 Ну, я не соглашусь. Я во фронтеде слишком давно и как следствие крутился в кругах html\css\js постоянно (для меня он собственно и популярным то стал незаметно, ибо я как мониторил развитие, так и мониторю). И его впринципе всегда не любили большинство, просто этого большинства тогда было меньше и причины были часто иными (еще не было джита, еще были ранние спеки, огромные проблемы с кроссбраузерным апи и вот это все, находили за что и точно так же большинство) я не помню., чтобы были времена когда большинство его любило. Это как с музыкой, или с какими-то убеждениями еще. В людях (в большинстве) есть такая сущность, что если они ни за что-то, то скорее всего против этого. (кардинально различные музыкальные жанры, политические взгляды, религиозные, социальные, рассы, феминизм, ориентация, вот это все). Большинство из большинства, разумеется ведомы стадным инстинктом. У иных, вполне объективные причины для недолюбливания (я правда не могу судить о их причинах для отровенного хейта, как и хейта чего угодно иного, ибо мне если что и не по душе, то я просто к этому равнодушен и не питаю никаких эмоций, и уж тем более не трачу их на какие-то там осуждения, если мне что-то не нужно, то мне это не нужно. у многих иначе, ну пусть, их дело, я опять же никого не сужу). В сущности то, мне любопытно сколько, хотя бы на фоне треда, людей к языку относятся именно что позитивно (а не отрицательно или равнодушно от безвыходности). Вот.
>>780830 У современного ES6, снабженного приличным линтером, который не дает отстрелить себе ногу, крайне мало объективных причин для откровенного хейта. Может быть работа typeof и пара других мелочей.
ты ожидал что sraka(peka) вернёт тебе обьект {yoba: peka}, но соснул, потому что парсер воспринял скобки как блок, и следовательно, нужно: const sraka = (yoba) => {return {yoba}}
>>780871 >я чот думал, что если юзаешь скобки, то return нужно Не. Более того, eslint будет ругаться, если там стоит соответствующее правило и ты так сделаешь.
>>780898 Очевидно, что нужно инкрементить вот так: ++а. В твоем случае сначала происходит процесс сравнения, а потом уже манипуляции над значением переменной.
>>780807 JS - хорош, особенно посыпанный ES6. Промисы и стрелки как завезли, так две большие проблемы закрыли сразу: 1. хуй знает какой контекст в функции (хотя на самом деле, те кто прогали на JS больше пары дней всегда знали где и какой контекст, но тем не менее) 2. Калбек хелл трансформировался в красивые цепочки промисов Мне нравится JS - потому что он как конструктор, набрал модулей тяп-ляп и в прод (шучу конечно, но в npm действительно есть почти все что нужно), мне нравится js за асинхронность, мне нравится js потому что он и на ноде и на клиенте, нравится js потому что много хайпа, как следствие много различного материала, хотя много шлака, много и годноты, мне нравится js за его покрытие: и клиент, и сервер, хоть десктопное приложение, хоть мобильное, и все это буквально в два клика. Конечно, и на плюсах можно писать что угодно, вот только крыша съедет, как сядешь какое-нибудь рест апи простое писать на них, добра. p.s. Другие ЯП не хейчу, люблю питон
Регулярка должна найти все слова, которые начинаются с "хуй". Долго думал как бы это сделать, пришел к пикрелейтеду, но как видите если после слова нету пробела окончание строки, например, то регулярка не работает. Как правильно сделать?
>>781138 В вёрстка треде могут и скорее всего не знают особенности работы с svg/d3. .tooltip имеет position:absolute и z-index: 999 так что его никто не может перекрыть.
Аноны, дайте совет\свои размышления. Выбираю сейчас фреймворк какой-нибудь типа Ember. От angular на работе уже начинает тошнить, react тормозящая наркомания с плохим дизайном. Неужели спустя 4 года лучше Ember, Backbone, Angular люди ничего не реализовали?
>>781166 Да с тем же ангуларом. Тестировал на мобилках одинаковую логику. Виртуальный дом, особенно вставка новых элементов, ппц как тормозила. Хз, может это уже изменилось, ибо около года назад пробовал. >>781166 >>781171 Спасибо за идею, погляжу.
>>781147 Понял, что было не так. Если кому интересно, то класс .tooltip уже был занят какой-то библиотекой или даже браузером. Я правда не понял какие свойства применялись к .tooltip, что он не был виден, потому что в computed styles: visibility был visible, display: block, а opacity: 1.
>>780750 >Через год будут переписывать на другие фреймворки, а через два пошлют нахуй js и будут из нормальных языков компилировать в webassembly ВОТ СЕЙЧАС УЖЕ НАЧНУТ БАЗАРЮ ЕЩЁ ЧУЧУТЬ ТОЛЬКО НУЖНО ПОТЕРПЕТЬ Эх, сколько лет я уже это слышу.
Анон, помоги договнякать фильтр для телефона! Немного допилил фиддл какого-то типа, хочу чтобы ещё можно было сразу без +7 вводить, в нынешнем варианте первая цифра затирается. http://jsfiddle.net/s0xpkgmq/365/
>>781326 >>781330 Я изначально думал, что проблемы с правами на установку, в дебилиане это вечная проблема. Поэтому не долго думая, последовал советам вас обоих. Но ничего не изменилось. Потом я еще чуть-чуть погуглил, решил не сдаваться. Нагуглил эти команды в описании своей проблемы и применил их: npm config set prefix ~/npm export PATH="$PATH:$HOME/npm/bin"
После них все встало замечательно. Даже все дерево стало оранжевым, а не с белыми элементами, как у куна выше.
Не знаю, что именно помогло, может нагугленные команды прописания пути, а может все в совокупности. Кстати, после обновления npm консольная графика загрузчика чуть-чуть изменилась, не знаю, почему, я ведь только час назад поставил npm впервые.
8 осел не поддерживает, ну не предосталяет и хуй бы с ним сам возьму, например document.body.offsetWidth + ширина скроллбара, надо только нагуглить где ее взять
Жаваскриптаны, нужна помощь. Вот дрочу я свой первый фреймворк, Реакт. Добрался до раутов, возник вопрос. Вот допустим у меня есть дефолтный раут с компонентом Layout представляющим из себя менюшку,я хочу чтоб всей логикой заведовал он, соответственно у него есть стейт и функции-хендлеры, которые он передает ниже. Но так как эти НИЖЕ - динамически меняющийся компонент и мы пишем его в рендере как {this.props.children}, я хуй знает как красиво передать компонентам-детям эти пропсы. В гугле советуют враппер написать и передавать его в компонент раута, но там речь, похоже, о простых пропсах а не берущихся от внешнего компонента и вообще костыльно как-то. Что делать?
>>781445 > чтоб всей логикой заведовал он bad idea ты по мере надобности создавай контейнеры с логикой, а так как ты делаешь можно и в 1 жс файл все писать
>>781451 Ну ладно, не всей, я неправильно выразился. Просто смотри, пишу я тудушку, добрался до раутинга, накидал root менюшку, плейсхолдером about раут в добавок к самой тудушке, и захочет чтоб в менюшке напротив ToDo кнопки у меня счетчик активных тудушек висел, а значит вроде как и стейт с массивом тудушек и методы-хендлеры должны быть у этого компонента. Как-то это же должно быть решаемо. Может флаксы-редаксы, но я пока не хочу ими обмазываться, хочу последовательно учиться.
Возможно ли как-то посмотреть запросы отправляемые phantomjs в таком виде как в аддоне для браузера live http headers? Ну или можно как-то настроитьключи в вайршарк чтоб он показывал https не как кашу?
>>781531 то есть ты утверждаешь, что невозможно создать helperFunc которая получает компонент, который сейчас будет рендерится и решает что передавать в пропсах ?
>>781877 Я утверждал скорее, что меня интересует корректное/общепринятое решение. Вроде нашел где хранится тип ребенка (this.props.children.type.displayName), буду пилить.
>>781906 > Подними серв на своей машине Сейчас так, но серв уже не справляется > отдай на коллок Что? > А не хуйней страдай. Тащемта, это обычная практика в небольших коммерческих продуктах
>>781910 > Опеншифт используй или vds в хетцнере купи Всё равно это далеко не 100% защита, хетзнер вон вломали недавно. Лучше перестраховаться, чем потом конкурировать с ребятами на твоем же движке
>>781912 А если твой комп взломают и уведут исходники? Мне кажется ты недостаточно думаешь о безопасности. Советую разрабатывать только в офлайне, а если надо глянуть что-то в гугле, то перед выходом онлайн переписуй на флешку исходники, а на помне делай erase с перезаписью каждого файла миниму 50 раз.
>>781935 Зачем ты сразу в крайности? Ты школьник? Это обычная практика в других языках, погугли. В жабе/пыхе в нормальных компаниях исходники прячут, в ноде есть node-obfuscator, но он какой-то кривоватый
>>782018 А зачем исходники жабы на чужом сервере хранить?
>>782028 По-моему, это всё тот же, что хотел на клиенте алгоритм обфусцировать. Посоветовали логику на сервер перенести, но оказалось, что и там есть, от кого обфусцировать...
>>782034 Я тоже когда-то был таким же ебланом, пёкся о своём говнокоде, шифровал зенд гардом, но потом нашёл "резидента", который перехватывал код после расшифровки. Миша, всё хуйня!
>>782033 > А зачем исходники жабы на чужом сервере хранить? Я на жабе сам не пишу, но часто вижу для неё всякие обфускаторы. На пыхе есть ion, вкупе с обфускатором до исходников добраться невозможно. > По-моему, это всё тот же, что хотел на клиенте алгоритм обфусцировать. Посоветовали логику на сервер перенести, но оказалось, что и там есть, от кого обфусцировать... Не, я тоже его хуесосил. Клиентскую логику бессмысленно защищать, а серверную есть смысл. Моя основная цель усложнить модификацию движка тем, кто его может каких-либо образом получить.
ребятки поясните про анонимные самовызывающиеся функции. вот перехожу к методам обектов но чувтсвую что нужно расставить все точки над і, что бы не путатся в самом елементарном.
Ребята, начал изучать язык, делаю для практики олимпиадные задачки. Поясните почему цикл for не выполняется? в режиме отладки видно что браузер просто пропускает его и переходит сразу в конец. Уже час сижу туплю, непонимая в чем дело.
>>782437 >for (var i = 4; numbers = 0; i++) В этой строчке, цикл сразу заканчивает свою работу не успев начаться, потому что тестовое выражение равно нулю или фолсу. >; numbers = 0; Это тестовое выражение. Фор луп выполняется пока тестовое выражение не будет равняться фолс.
Здаров скриптаны, выполняил задание Кантора по учебнику его, даётся html и css который менять нельзя, а самому нужно написать на JS компонент.
Короче скажите, как можно это переписать мне без сетаймаут.
По-поводу почему я не использовал сетинтервал:
Для setTimeout – внутренняя ссылка исчезнет после исполнения функции. Для setInterval – ссылка исчезнет при очистке таймера. Так как функция также тянет за собой всё замыкание, то ставшие неактуальными, но не отменённые setInterval могут приводить к излишним тратам памяти.
>>782044 Так и пиши не на хипстерском говнище тогда, а на статическом языке на сервере и все проблемы решаться. Тема обфускации js кода тысячу раз на cyberforum например поднималась.
Ребят, помню давно читал отрывок из какой-то книги по JS, там очень подробно описывался алгоритм конвертации типов данных, вроде "если foo - строка, а bar - число, то при использовании оператора X получим тип данных Y". Обгуглился уже, ничего найти не могу, может помнит кто?
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Часто задаваемые вопросы:
https://github.com/xxxwww/js-thread/blob/master/Wiki/faq.md
Список материалов для изучения:
https://github.com/xxxwww/js-thread/blob/master/Wiki/learn.md
Список инструментов и направления JS-разработки:
https://github.com/xxxwww/js-thread/blob/master/Wiki/tools.md
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.