Сохранен 519
https://2ch.hk/pr/res/737862.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

JavaScript #45

 Аноним 08/05/16 Вск 22:26:31 #1 №737862 
14627355917950.jpg
Ссылка на прошлый тред: >>734766 (OP)

Этот тред посвящён главному языку будущего - 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/ для серверного кода.
Аноним 08/05/16 Вск 22:29:13 #2 №737865 
Поясните дауну ( мне ) Чем отличается Ангуляр от Node ?
Что лучше освоить? или лучше освоить весь MEAN-stack ?
Аноним 08/05/16 Вск 22:34:22 #3 №737867 
Продолжаю заебывать всех своим калькулятором
Теперь он с историей
http://embed.plnkr.co/F43HoAkCaQ8re2Jgqqig/
Аноним 08/05/16 Вск 22:35:44 #4 №737868 
>>737865
Иди гуглить. Если ты не можешь сам найти ответы на эти вопросы, то погромировать ты точно не сможешь
Аноним 08/05/16 Вск 22:43:59 #5 №737878 
>>737867
Гришаня, думаешь я забыл о тебе? А вот нихуя!
Аноним 08/05/16 Вск 22:46:54 #6 №737880 
14627368147930.jpg
>>737878
я все равно как неуловимый Джо
Аноним 08/05/16 Вск 22:47:45 #7 №737882 
>>737867
такое делает студент программист на 1ом курсе в 1ом семестре 1ой недели
Аноним 08/05/16 Вск 22:50:46 #8 №737883 
>>737882
ну и к чему ты это сказал?
Аноним 08/05/16 Вск 22:52:18 #9 №737884 
>>737882

хуй там
Аноним 08/05/16 Вск 22:57:55 #10 №737886 
Ну, раз тут тред ньюфажеских поделий, то зацените мое, тем более, что я по поводу этого задания отписывался несколько тредов назад.
Там есть один баг, мне его впадлу пофиксить, уже неактуально. Может, потом.
http://artemperchyk.github.io/Solitaire/ диванон лигивон
Аноним 08/05/16 Вск 23:05:28 #11 №737888 
>>737886
не смог пройти с двух раз
Аноним 08/05/16 Вск 23:07:09 #12 №737890 
>>737888
Ну это нормально, там не проверяется раскладка на "проходимость". Как и в реальном пасьянсе.
Знаю, что в некоторых реализациях это запилено, но хуй знает, как.
Аноним 08/05/16 Вск 23:10:16 #13 №737892 
>>737886
калькулятор не понравился, оче много багов
правда я охуел от того сколько там файлов, я даже не знаю что большинство из них делает
Аноним 08/05/16 Вск 23:12:53 #14 №737896 
>>737886
еще сапер какой-то странный, тоже не смог пройти
Аноним 08/05/16 Вск 23:13:17 #15 №737897 
>>737892
Калькулятор был запилен за два дня на коленке, я там нихуя не дебажил толком.
Файлы - ну там я по неопытности захуярил в одну папку и чай с моккой для тестов, и бутстрап, который вообще там не использовался, ну ты понял. Там только три файла плюс тесты собственно моего кода.
Аноним 08/05/16 Вск 23:14:19 #16 №737900 
>>737896
Сапер тоже недопиленный, я, конечно, понимаю, что я показываю себя ленивым пидором, но мне это задание страшно не понравилось и я его сделал тупо для галочки.
Аноним 08/05/16 Вск 23:17:59 #17 №737902 
>>737890
Сложенные карты должно быть можно возвращать обратно.
Аноним 08/05/16 Вск 23:19:51 #18 №737903 
>>737900
ты где такие ебанутые задания находишь?
>>737897
а зря, проще всего логику написать, а самое интересное начинается потом
Аноним 08/05/16 Вск 23:19:58 #19 №737904 
>>737902
Ты имеешь в виду undo на стопке?
Аноним 08/05/16 Вск 23:20:40 #20 №737905 
>>737903
Это курсы при бодишопе.
Аноним 08/05/16 Вск 23:24:39 #21 №737907 
>>737897
скрипт польской нотации сам писал?
Аноним 08/05/16 Вск 23:25:20 #22 №737908 
>>737905
гугл говорит так косметикой торгуют
Аноним 08/05/16 Вск 23:27:43 #23 №737910 
>>737907
Да.
>>737908
Да блять, в воркаче уже сегодня пояснял, имеется в виду крупная аутсорс компания.
Аноним 08/05/16 Вск 23:35:06 #24 №737913 
14627397066600.jpg
>>737886
ня
Аноним 08/05/16 Вск 23:35:50 #25 №737914 
>>737913
ah ty peedor
Аноним 08/05/16 Вск 23:40:41 #26 №737919 
>>737913
все как у людей
Аноним 08/05/16 Вск 23:52:06 #27 №737927 
>>737904
Из стопки можно снимать карты обратно и перекладывать на борду. Стопка - считай, стэк.
Аноним 08/05/16 Вск 23:56:30 #28 №737931 
>>737927
Возможно, я просто очень сильно туплю, но ведь реализация стопки у меня точно такая же, как и во всех виденных мной реализациях (про вариацию с тремя картами не говорим, речь не о том).
Т.е. клацнул, открыл карту, есть куда перенести - перенес, нет - клацнул на другую карту и так пока всю стопку не прокрутишь.
Аноним 09/05/16 Пнд 00:03:05 #29 №737934 
14627413857440.jpg
>>737913
слава украине!
Аноним 09/05/16 Пнд 00:07:40 #30 №737939 
>>737934
Лол, ну ты даешь. Еще и страницу тян нашел.
Таки да, слава, фото с захидфеста.
Аноним 09/05/16 Пнд 00:08:17 #31 №737941 
>>737939
Хотя вообще там всем рады, справа можешь заметить флаг бульбобратьев.
Аноним 09/05/16 Пнд 00:42:48 #32 №737970 
>>737931
Я про другие 4.
Аноним 09/05/16 Пнд 00:45:47 #33 №737973 
http://learn.javascript.ru/
Я какой-то тупой, объясните где здесь найти задания по JavaScript на этом сайте (мне сказали что искать там)?
Раздел "Тесты знаний" - не то.
Аноним 09/05/16 Пнд 00:46:14 #34 №737975 
>2016 год
>Убогий неформатируемый Math.random
>Убогий неформатируемый Date
Оправдывайтесь, петуханы.
Аноним 09/05/16 Пнд 00:47:43 #35 №737978 
>>737970
Ааа, теперь понял.
Если честно, мне это в голову вообще ни разу не приходило. Причем там еще сделал для простоты так, что карта при перетаскивании на один из четырех верхних дивов просто исчезает, а див получает ее бэкграунд.
Возможно, когда руки дойдут, переделаю а сейчас ангуляр учу
Аноним 09/05/16 Пнд 00:48:58 #36 №737979 
>>737973
После глав задания идут.
Аноним 09/05/16 Пнд 00:59:04 #37 №737983 
>>737979
Спасибо
.

Кстати, анончики подскажите, лучше начинать изучать JS по книге "Выразительный JavaScript" или на learn.javascript.ru? Кому где было легче?
Аноним 09/05/16 Пнд 01:05:53 #38 №737989 
>>737983
Лучше второе. Там подробнее и проще написано для новичка.
Аноним 09/05/16 Пнд 01:07:16 #39 №737991 
>>737989
Просто в любом случае скорее всего и то и другое буду читать, просто нужно именно то что легче понять поначалу. ^-^
Аноним 09/05/16 Пнд 01:33:09 #40 №737998 
Многие играли в prison architect или хотя бы слышали. Так вот скажите, как вообще можно сделать подобную игру? Js может с этим справиться или кроме него надо будет ещё какие-то языки зубрить? Просто хочется когда-то попробовать сделать, что-то подобное.
Аноним 09/05/16 Пнд 01:42:19 #41 №738001 
>>737998
>сделать, что-то подобное
лол
эту игру делала студия из нескольких человек больше двух лет
там программирование вообще дело десятое
Аноним 09/05/16 Пнд 05:33:53 #42 №738019 
14627612332240.png
14627612332241.jpg
Джавскриптаны, мне вот интересно стало сколько приходится писать в среднем в день кода. Я прошелся по прошлым проектам и по текущему, и получается примерно 600-800 LOC в день, не считая стилей. Если дедлайны более демократичные, то моя продуктивность падает до ~400 в день.
А на пет проектах вовсе по 100-200, если каждый день писать, но там трудно посчитать из-за длительных перерывов между сессиями.
Кто имеет дело с коммерческим продакшеном, какой, в среднем, аутпут в день?
Аноним 09/05/16 Пнд 05:55:12 #43 №738021 
>>738019
Разве это всё напрямую не зависит от сложности кода? Ты же блять вроде как не на конвейере помидоры проверяешь, зачем продуктивность сравнивать?
Аноним 09/05/16 Пнд 06:12:19 #44 №738025 
>>738021
Лол, какая нахуй сложность кода в вебе. Мы тут не софт к автопилотам пишем, 90% задач логически однообразны и решения варьируются от стака к стаку.
Аноним 09/05/16 Пнд 08:06:46 #45 №738035 
>>738001
Какая разница сколько лет они ее делали. Меня интересует как сделать подобное?
Аноним 09/05/16 Пнд 08:07:50 #46 №738036 
>>738035
Ты мудак что ли?
Аноним 09/05/16 Пнд 08:15:25 #47 №738037 
>>738036
А что тебя смутило в вопросе? Почему ты агрессивный?
Аноним 09/05/16 Пнд 10:19:15 #48 №738060 
>>738035
Найти команду, подождать чуть больше двух лет.
Аноним 09/05/16 Пнд 10:40:48 #49 №738071 
Заранее прошу прощения за тупые вопросы.

Захотел на досуге заняться js, решил делать простенькую игру с мультиплеером.
Вот я начал с того, что посмотрел несколько книжечек и видео о node.js, но теперь вопрос:
1. Как организовать передачу данных в RT игре?
Передавать клиентам информацию о статусах всех объектов или только то, что изменилось с последней отправки и сделать в клиенте функцию, которая перерисует динамические элементы?
2. Как лучше взяться за примитивную графику типа бегающих кругов? Изучать create.js и подобные или можно обойтись?
3. Как сделать так, чтобы было несколько игровых комнат и как лучше отличать игроков друг от друга?
Аноним 09/05/16 Пнд 10:44:30 #50 №738074 
>>738071
Всё, что касается реал тайм, комнат и игроков - socket.io. По поводу примитивной графики это зависит от того, насколько она, собственно, примитивна. Есть много геймдев движков, где реализована базовая физика и прочие няшности.
Аноним 09/05/16 Пнд 10:44:59 #51 №738075 
>>737998
Ну в юнити и в других движках js есть как язык для behavior-скриптов, запросто можно делать. Только с 2d на юнити немного туго как по мне ну я немного тупой.
Аноним 09/05/16 Пнд 10:48:53 #52 №738082 
>>738074
Я сокет уже изучаю, но ещë не додумался до логики передачи данных в онлайн-играх, в смысле каждый раз передавать абсолютные координаты или движения? Не могу на глаз оценить, какие нагрузки могут не создавать лагов и какая будет задержка между обновлениями.
Аноним 09/05/16 Пнд 10:57:11 #53 №738086 
>>738082
Ну я сам так-то писал только статичные игры, тобишь морской бой там, такое. Но я думаю, что
>каждый раз передавать абсолютные координаты или движения
по другому никак, если у тебя реал тайм обновления. По поводу нагрузок я бы не переживал особо, джс довольно быстрый язык и реальным ботлнеком в простой игре будет только коннект, который ты контроллировать не можешь всё равно. Я читал как-то статейку, кстати, где чувак описывал как на сокетах хендлить возможный делей. Но это оптимизация.
Аноним 09/05/16 Пнд 11:03:28 #54 №738089 
>>738082
риал тайм -> udp. udp -> потери. Потери -> только абсолютные величины.
Полагаю, самих играх обычно делаются всякие интерполяции, чтобы игрока не "телепортировать", а именно подвинуть, со всеми вытекающими коллижнами и т.д.
Но я диванный, тоже только статичное делал, а риалтайм в качестве эксперимента лишь поигрался маленько.

>>738086
Коннект коннектом, но какие-то умные и магические алгоритмы для оптимизации всего этого есть.
Аноним 09/05/16 Пнд 11:07:17 #55 №738095 
>>738074
>>738086
>>738089
Спасибо, буду пробовать
Аноним 09/05/16 Пнд 11:30:05 #56 №738115 
>>737913
Вот та тян обосрется от испуга если обернётся.
Аноним 09/05/16 Пнд 11:53:56 #57 №738128 
>>738115
Или наоборот.
Аноним 09/05/16 Пнд 12:35:25 #58 №738161 
14627865257990.jpg
>>738115
>>738128
там просто фотограф рукожопый
Аноним 09/05/16 Пнд 12:37:53 #59 №738163 
>>738161
А что изменилось?
Аноним 09/05/16 Пнд 12:54:39 #60 №738177 
>>738161
Фотограф рукожопый - это мы вместе фоткали себя на зеркалку, лол, поэтому так.
А вообще тут не оцени тян тред, заебали.
Аноним 09/05/16 Пнд 12:58:53 #61 №738180 
>>738177
Иди нахуй, очкарилло, встречу на улице, ебало вскрою, петух
Аноним 09/05/16 Пнд 13:03:52 #62 №738186 
>>738180
Лол. Люблю двач.
Аноним 09/05/16 Пнд 13:05:45 #63 №738187 
Как можно передать браузеру имя файла без дополнительных запросов со стороны клиента, если я стримлю видео банально через readStream.pipe(response) (либо с диска, либо перенаправляю с того же ютуба)? Пока что фф мне выдаёт в качестве названия страницы последний путь в path'e (aaa.com/aaa/bbb/ccc -> ccc), и при попытки сохранить файл, соответственно, то же самое (ccc.mp4). Content-Disposition не влияет, да и со стримингом он, вроде бы, и не должен работать.
В самом запросе названия нет, оно по айдишнику берётся, т.е. мне со стороны нужно его впихнуть как-то.
Аноним 09/05/16 Пнд 13:06:04 #64 №738188 
>>738186
Хахол ебаный, на курсы он ходит, безмозглое животное, самому не дано видимо чему-либо научиться, уёба
Аноним 09/05/16 Пнд 13:21:33 #65 №738197 
>>738188
Так я на них отбор прошел, как раз потому что не безмозглый. Ну да похуй.
Аноним 09/05/16 Пнд 13:28:44 #66 №738201 
>>738197
Вот это тщеславие
Аноним 09/05/16 Пнд 13:42:19 #67 №738209 
Часто приходится делать this.object.doSomething.bind(this.object). Может есть сахарок?
Аноним 09/05/16 Пнд 13:46:40 #68 №738212 
>>738209
Лямбды в es6 делают, по сути, то же самое, что bind, сохраняя this.
Аноним 09/05/16 Пнд 13:57:59 #69 №738222 
>>738212
Мне нужно передавать одному агрегированному объекту метод другого с собственным контекстом как коллбек. Тут лямбды не помогут.
Аноним 09/05/16 Пнд 14:02:00 #70 №738224 
>>738209
https://github.com/andreypopp/autobind-decorator
Аноним 09/05/16 Пнд 14:04:44 #71 №738226 
>>738224
Я думал, может нейтив есть что-то.
Аноним 09/05/16 Пнд 14:08:44 #72 №738230 
>>738209
https://lodash.com/docs/#bindAll
Аноним 09/05/16 Пнд 16:00:23 #73 №738357 
Я ебал этот реакт. Почему одни пишут так:

var MessageComponent = React.createClass({
render: function() {
return (
<div>{this.props.message}</div>
);
}
});

А другие так:

var MessageComponent = function(){
return (
<div>{this.props.message}</div>
);
}

И то, и то называют созданием нового компонента, но в чем разница-то блять? Это одно и то же?
Аноним 09/05/16 Пнд 16:04:00 #74 №738362 
>>738357
Именно в твоем случае - да. Второй вариант это просто функциональный вариант простой компоненты, которая только отрисовывает что-то беря из пропсов.
Аноним 09/05/16 Пнд 16:11:33 #75 №738379 
Запустил у себя на шинде сервер, по локалхост:3000 захожу, по 192.168.1.x:3000 не захожу, по внешнему тоже. Открыл порт, выключил файрвол винды - та же ситуация.
Что я делаю не так?
Аноним 09/05/16 Пнд 16:22:29 #76 №738395 
>>738379
Настрой сервер чтобы он слушал на 0.0.0.0:3000
Аноним 09/05/16 Пнд 16:27:30 #77 №738401 
>>738362
А почему бабель выдает результат jsx то в кавычках, то без в зависимости от того, с большой ли буквы написан "тег"?

Например

ReactDOM.render(
<messageComponent message="Hello!" />,
document.body
);

Бабель выдал в кавычках:

ReactDOM.render(React.createElement("messageComponent", { message: "Hello!" }), document.body);

А если написать

ReactDOM.render(
<MessageComponent message="Hello!" />,
document.body
);

Бабель выдал без кавычек:

ReactDOM.render(React.createElement(MessageComponent, { message: "Hello!" }), document.body);

Если с маленькой, это типа хтмл-тег должен быть что ли? А с большой какой-то компонент?
Аноним 09/05/16 Пнд 16:32:55 #78 №738407 
>>738401
А, все, нарыл про это.
Аноним 09/05/16 Пнд 16:35:30 #79 №738411 
>>738407
Мне теперь расскажи.
Аноним 09/05/16 Пнд 16:37:45 #80 №738416 
>>738411
В JSX все что с маленькой буквой то считается html тэгом. Реакт компонента должна начинаться с заглавной.
https://gist.github.com/sebmarkbage/f1f4ba40816e7d7848ad
Аноним 09/05/16 Пнд 16:47:54 #81 №738421 
>>738411
Надо кароч в спеки заглядывать иногда, а потом бочку катить.

https://facebook.github.io/react/docs/jsx-in-depth.html
Аноним 09/05/16 Пнд 18:12:54 #82 №738485 
https://cognitive.io/post/rewriting-the-gophers-invite-form-in-go/
Оправдывайтесь.
Аноним 09/05/16 Пнд 18:19:03 #83 №738488 
>>738485
Go работает быстрее, чем нода. Зачем оправдываться? Сколько ты кода написал на go? На нем писать сложнее, чем на js.
Аноним 09/05/16 Пнд 18:20:22 #84 №738489 
>>738488
>На нем писать сложнее, чем на js.
Go примитивный до безумия, хуже Паскаля.
Аноним 09/05/16 Пнд 18:25:43 #85 №738491 
>>738488
>>738489
Почему еще не запилили транслятора из js в go?
Аноним 09/05/16 Пнд 18:27:09 #86 №738492 
>>738491
Не нужно, очевидно.
sageАноним 09/05/16 Пнд 18:47:39 #87 №738517 
>>738489
Это не значит на нем писать как-то легче.
Аноним 09/05/16 Пнд 19:14:21 #88 №738541 
>>738489
Ассемблер еще примитивнее.
Это делает его более легким?
Аноним 09/05/16 Пнд 19:43:00 #89 №738561 
>>738541
Какого хуя в es6 классах нет ебучих полей.
Почему я должен выебываться с инициализацией поля каждому объекту и тратить память, если он мне нужен в прототипе. Или писать в прототип в обход сахарной конструкции. Зачем она вообще нужна тогда?

Я не понимаю, что помешало позволить писать
class {
ololo: 'some string'
static kokok: 100
}

В чем смысл ограничения то?
Аноним 09/05/16 Пнд 19:48:07 #90 №738564 
>>738561
Поставь typescript. Можно писать и без типов, зато будет так, как ты хочешь. Транспайлится все так же.
Аноним 09/05/16 Пнд 19:51:58 #91 №738569 
>>738564
Я знаю, что можно поставить, чтобы было.
Меня интересует, что сподвигло отказаться от этого в спеке. Это же вроде ничему не помешало бы.
Аноним 09/05/16 Пнд 19:55:47 #92 №738570 
>>738569
http://stackoverflow.com/a/22986568/4957036
Аноним 09/05/16 Пнд 20:05:18 #93 №738573 
>>738489
Паттерны go не примитивные.
Аноним 09/05/16 Пнд 20:30:01 #94 №738581 
14628150016720.png
Кто что юзает на атоме?
Аноним 09/05/16 Пнд 21:25:52 #95 №738622 
http://geekforbrains.com/post/after-a-year-of-nodejs-in-production
Node классная!
Аноним 09/05/16 Пнд 21:27:20 #96 №738623 
>>738488
> Сколько ты кода написал на go?
Каждый день пишу на работе на go.
> На нем писать сложнее, чем на js.
Лично мне - нет.
Аноним 09/05/16 Пнд 21:28:57 #97 №738624 
>>738025
где-то тут есть ветка ниасиляторов лол, нода ахуенная.
sageАноним 09/05/16 Пнд 21:28:58 #98 №738625 
>>738622
Этот переписыватель сломался, несите нового. Обоссали уже в соседнем треде, иди нахуй
Аноним 09/05/16 Пнд 21:29:21 #99 №738626 
>>738025
где-то тут есть ветка ниасиляторов лол, нода ахуенная.
Аноним 09/05/16 Пнд 21:31:21 #100 №738629 
>>738625
А ты ссылку дай на "обоссывание".
Аноним 09/05/16 Пнд 21:51:06 #101 №738647 
Я поднимаю вопрос, на который так и не получил ответа.
Как по-вашему, какой путь для типизации более приближен к концепции js?

Имеющиеся кандидаты:
1. TypeScript style
>function (arg: Type)

2. Decorators (пример для примера, там можно что угодно придумать, суть в самих декораторах)
>@typeCheck {arg: Type}
>function (arg)
Аноним 09/05/16 Пнд 22:08:40 #102 №738660 
>>738647
Тайпскрипт конечно, декораторы какой-то костыль
Аноним 09/05/16 Пнд 22:15:59 #103 №738666 
>>738660
Но декораторы часть стандарта в будущем, а тайпскприт как раз костыль.
Аноним 09/05/16 Пнд 22:18:03 #104 №738667 
>>738666
Проверять типы через декораторы это костыль, а не сами декораторы.
Тайпскрипт это не костыль вообще, это компилируемый в жс язык, каких сотни тысяч уже.
Аноним 09/05/16 Пнд 22:20:24 #105 №738668 
>>738581
юзаю VIM вместо этого поделия
Аноним 09/05/16 Пнд 22:22:44 #106 №738670 
>>738668
олдфаги юзают эмакс
Аноним 10/05/16 Втр 00:39:09 #107 №738799 
Как поделить онлайн чат на несколько комнат, которые создаются по требованию?
Аноним 10/05/16 Втр 01:03:13 #108 №738822 
Если бы вы создавали JS сейчас, то чего-бы вы в него не включили?

Если проще говоря, очень часто говорят про различное легаси в архитектуре языка. Что именно? Что бы вы выкинули?
Что добавили? Что сделали иначе?

Аноним 10/05/16 Втр 01:34:20 #109 №738841 
14628332602400.png
чем он не доволен?
Аноним 10/05/16 Втр 01:42:21 #110 №738847 
>>738841
Он считает что ты объявляешь функцию внутри цикла. У тебя свитч не в цикле случаем?
Аноним 10/05/16 Втр 01:43:25 #111 №738850 
>>738841
А нахуя ты объявляешь массу одинаковых функций в качестве листнеров. Ты больной?
Аноним 10/05/16 Втр 01:44:57 #112 №738852 
>>738841
Вынеси функцию-обработчик за пределы цикла.
А далее присваивай ссылку на нее.
Аноним 10/05/16 Втр 01:52:19 #113 №738853 
>>738841
>div.querySelector('.memoryElem').querySelector('.memoryAnswer')
Умоляю, скажи честно, ты болен чем-либо или ты не умеешь в селекторы?
У тебя же ебанистический оверхед всюду.


>div.querySelector('.memoryElem .memoryAnswer')
Аноним 10/05/16 Втр 02:04:41 #114 №738855 
>>738847
в цикле фор
>>738852
ну это понятно, только зачем, если эти функции только там нужны
>>738853
да, не умею, попробую твой способ
Аноним 10/05/16 Втр 02:06:24 #115 №738856 
>>738853
работает, спс
Аноним 10/05/16 Втр 02:12:47 #116 №738858 
>>738855
>ну это понятно, только зачем, если эти функции только там нужны
Ты не понимаешь, что ты в цикле создаешь МНОГО ОДИНАКОВЫХ ФУНКЦИЙ. Каждая занимает память, при этом каждая функция идентична.

Ты действительно не понимаешь?
Аноним 10/05/16 Втр 02:14:09 #117 №738859 
>>738855
>в цикле фор
Не надо так.
Если ты в цикле объявляешь функции - то ты что-то делаешь не так.
Аноним 10/05/16 Втр 02:18:02 #118 №738860 
>>738855
>только зачем, если эти функции только там нужны
В твоей квартире есть дверной звонок и дворецкий должен открывать дверь каждому гостю, позвонившему в этот звонок.
Вместо того, чтобы использовать одного и того же дворецкого, ты нанимаешь по дворецкому на каждого гостя.

Вот что ты делаешь.
Аноним 10/05/16 Втр 02:20:20 #119 №738861 
Сап, паrни! Может мне кто объяснить в чем прикол __proto__ и prototype. Типо __proto__ - содержит все свойства, того чего он наследует, а prototype - конструктор и соответственно __proto__? Честно все эти learn'ы и хабры - читаю - нифига понять не могу
Аноним 10/05/16 Втр 02:22:53 #120 №738863 
>>738861
>в чем прикол
Да так, по накурке лдаст вор лулз запилили, не обращай внимания вообще.

Аноним 10/05/16 Втр 02:24:03 #121 №738864 
>>738863
но я хочу понять
Аноним 10/05/16 Втр 02:26:14 #122 №738865 
14628363741170.png
>>738858
ок
спс за объяснение
переписал
Аноним 10/05/16 Втр 02:26:41 #123 №738866 
>>738860
>>738859
ок, спс
Аноним 10/05/16 Втр 02:32:06 #124 №738869 
>>738864
__proto__ свойство объекта, указывает на его прототип.

2ch.__proto__ то же самое что Object.getPrototypeOf(2ch)

нежелательно использовать __proto__ это моветон. Его впилили в стандарт только потому что это было недокументированное свойсвто поддерживаемое всеми браузерами, а появилось в них, раньше рефлекии. Для доступа к прототипу используй специальные функции. Тем более что __proto__ обычное поле и может быть переопределено.

prototype свойство конструктора, описывающее прототип для будущего объекта, который конструрирует твой конструктор.

Аноним 10/05/16 Втр 02:34:04 #125 №738870 
>>738869
О, так понятнее, сяп!
Аноним 10/05/16 Втр 02:39:10 #126 №738872 
>>738869
т.е. в двух словах:
__proto__ - то, что наследуем,
prototype - описание конструктора
Аноним 10/05/16 Втр 02:40:54 #127 №738875 
>>738581
Vim.
Аноним 10/05/16 Втр 02:42:10 #128 №738877 
>>738622
Какая-то истеричка не может понять, что все языки - говно и надо просто пользовать что есть.
Аноним 10/05/16 Втр 02:43:16 #129 №738878 
>>738872
prototype - для конструктора.
в нем хранится то же самое, что ты получаешь потом через __proto__
Только прото ты используешь из готового объекта,
а прототайп с другой стороны, еще до инициализации объекта.
Аноним 10/05/16 Втр 02:44:50 #130 №738880 
>>738872
конструктор это тоже объект, и унего есть свой прототип.
constructor.__proto__ и constructor.prototype это разные объекты, это надо понимать.
Аноним 10/05/16 Втр 06:42:45 #131 №738914 
>>738187
бамп?
Аноним 10/05/16 Втр 09:09:03 #132 №738958 
>>738187
>Как можно передать браузеру имя файла без дополнительных запросов со стороны клиента
Никак, представь, что будет, если браузер начнет рыскать по файлам пользователя.
Аноним 10/05/16 Втр 09:26:39 #133 №738967 
14628615997420.png
Жсоны, есть задача. Надо сязать пользователей с городами, как показано на пикче. Использовать надо jquery. Рядом с каждым пользователем есть кнопка "добавить город" по нажатию которой появляются два дропдауна с выбором страны и города. Данные эти дропдауны получают по аяксу. Так как я с жикьюери мало работал, то вот мои вопросы:
1. где хранить шаблон(хтмл) для этих дропдаунов, так как их надо будет добавлять много.
2. какими методами надо будет сделать связь этих дропдаунов с пользователями, чтобы передать правильную инфу
3. как вставить их в нужное место на странице? Надо будет делать какие то специальные имена классов в которых будет пристутствовать userId?
Аноним 10/05/16 Втр 09:43:27 #134 №738981 
>>738958
Лол, каким файлам пользователя. Я просто хочу, чтобы вместе со стримом видео с сервера как-то пришло и его название, чтобы при "save as" или открытии этого видео в отдельно вкладке (т.е. без html страницы, где оно вставлено), это название было видно.

Или так нельзя, и единственный выход это дополнительная кнопка "скачать", которая там будет выставлять нужное имя файла?
Аноним 10/05/16 Втр 09:46:57 #135 №738982 
Как поделить онлайн чат на несколько комнат, которые создаются по требованию?
Аноним 10/05/16 Втр 10:11:29 #136 №738994 
>>738981
> или открытии этого видео в отдельно вкладке
В этом случае имя файла это часть url, что ебешь мозги. Формируй url на сервере.
Аноним 10/05/16 Втр 10:13:27 #137 №738997 
>>738967
Никто не будет тебе это объяснять.
Ты не с теми вопросами пришел.
Или иди изучай js или плати деньги, чтобы за тебя решили твою задачу.
Аноним 10/05/16 Втр 10:15:12 #138 №738998 
>>738581

sublime or idea
Аноним 10/05/16 Втр 10:16:01 #139 №738999 
>>738967
Пользователи у тебя на сервере или это чисто фронтэнд?
Аноним 10/05/16 Втр 10:51:24 #140 №739031 
>>738997
Я же написал конкретные вопросы, которые мне не понятны. Подскажи какой нибудь гайд чтобы я почитал и решил эту проблему.

>>738999
Пользователи с бекэнда приходят. Ну и вообще в конце таблицы еще есть кнопочка применить и уже на стороне сервера пользователи будут привязываться к городам. А мне надо туда отправить список айди городов связанных с пользователями, но это я знаю как сделать.
Аноним 10/05/16 Втр 11:11:01 #141 №739042 
Поясните за загрузку файлов на сервер аяксом. Мне нужно его сконвертить в строку а потом отправить как значение в жсон объекте? Или отдельно отправлять? Просто у меня еще данные из формы передаются.
Аноним 10/05/16 Втр 11:42:35 #142 №739059 
>>739042
multipart/form-data
Аноним 10/05/16 Втр 12:10:07 #143 №739090 
Анон, поясни, допустим я захочу свою срань на хостинг залить, чтобы показать кому - нибудь, мне для этого нужно домен регистрировать или можно будет как - то по ip зайти?
Аноним 10/05/16 Втр 12:13:47 #144 №739098 
>>739090
Heroku.com
Заливаешь на халяву и показываешь кому надо.
Аноним 10/05/16 Втр 12:15:33 #145 №739101 
>>739098
Спасибо
Аноним 10/05/16 Втр 12:15:48 #146 №739102 
>>739090
Если тебе не нужен постоянный онлайн, то и без хостинга обойтись можно. Например вот так https://localtunnel.me/
Аноним 10/05/16 Втр 12:15:50 #147 №739103 
>>739042
var fData = new FormData();
fData.append('key', 'value');
$.ajax({
url: '/url/',
data: fData,
cache: false,
contentType: false,
processData: false,
type: 'POST',
success: function(data) {console.log('response:', data);},
error: function(xhr, status, err) {
console.error(xhr, status, err.toString());
}
});

Я это делаю так.
Аноним 10/05/16 Втр 12:16:48 #148 №739105 
>>739102
О, вот этого годнота
Аноним 10/05/16 Втр 14:44:38 #149 №739226 
Если в реакте делать ajax запрос в рендере, это совсем пиздец?
Аноним 10/05/16 Втр 14:45:48 #150 №739227 
>>739226
Конечно, для этого есть ComponentDid(Will)Mount.
Аноним 10/05/16 Втр 14:47:38 #151 №739229 
14628808581890.jpg
>>739227
Так это понятно, но мне надо в рендер
Аноним 10/05/16 Втр 14:50:05 #152 №739231 
>>739229
Что значит "надо", тебя что палкой пиздят и заставляют говнокод писать? Помимо прочего, если ты собираешься использовать резалты аякс запроса внутри этого компонента, то ты получишь охуенный рекурсионный фейл.
Аноним 10/05/16 Втр 15:04:00 #153 №739247 
14628818407880.png
>>738865
Аноним 10/05/16 Втр 15:04:52 #154 №739248 
>>739231
А если я буду вызывать this.ComponentDidMount это тоже пиздец?
Аноним 10/05/16 Втр 15:07:12 #155 №739249 
>>739248
Ты объясни зачем тебе эта вакханалия, мне просто интересно что у тебя за юзкейс такой.
Аноним 10/05/16 Втр 15:09:11 #156 №739254 
>>739249
Юзкейс называется ньюфаня пишит говнокод чтобы закрепить знания о реакте.

Алсо, спасибо что поясняешь
Аноним 10/05/16 Втр 15:15:37 #157 №739259 
>>739254
Если у тебя нету стейтменеджера какого-то, т.е. флакс реализации какой-то (редакс, альт, рефлакс, етц) то ты используешь локальный стейт компонента, т.е. this.state = { key: value }, ну или getInitialState() если ты не как порядочный человек классы объявляешь. Твой компонент загружается, ты в componentDidMount() вызываешь свой аджах, success = (response) => this.setState({value: response}). И других вариантов особо нет, рендер занимается исключительно отображением данных.
Аноним 10/05/16 Втр 15:16:20 #158 №739260 
Зацените сортировку.

[5,1,2,6,12,1,64,13,7,15].forEach(function (num) {
    setTimeout(() => {console.log(num)}, num*5)
});
Аноним 10/05/16 Втр 15:19:00 #159 №739265 
>>739259
Я так и делаю, спасибо

Но могу ли я вызвать componentDidMount() для отправки нового запроса чтобы стейт обновился и компонент получил новые данные?
Аноним 10/05/16 Втр 15:19:03 #160 №739266 
14628827430820.jpg
>>739260
>[5,1,2,6,12,1,64,13,7,15].forEach(num => setTimeout(() => {console.log(num)}, num*5));
Взялся писать нормальный джс, пиши до последнего.
Аноним 10/05/16 Втр 15:20:40 #161 №739269 
>>739266
Буду на собеседованиях ее хуярить.
Аноним 10/05/16 Втр 15:24:49 #162 №739272 
>>739265
Для этих целей есть специалные хуки в лайфсайкле компонента. Как-то componentWillUpdate, componentWillRecieveProps и иже с ними.
Вот почитай, даже если с английским плохо, тут не много.
https://facebook.github.io/react/docs/component-specs.html#lifecycle-methods

Любое обновление стейта через setState вызывает ре-рендер компоненета. Если тебе новые данные нужны по таймауту, скажем апдейты раз в минуту, то ты просто можешь в CDM (didMount) установить setInterval() и получать апдейты регулярно. А если по юзер реквесту, то ты делаешь отдельный метод, например getUpdates(), не забываешь его биндить в конструкторе this.getUpdates = ::this.getUpdates, и по клику на нужные тебе элемент, onClick={this.getUpdates} ты выполняешь нужный тебе реквест на апдейты.
Аноним 10/05/16 Втр 15:25:29 #163 №739273 
>>739260
Зачем num x 5
Делай num+1
Аноним 10/05/16 Втр 15:27:31 #164 №739275 
>>739272
>А если по юзер реквесту, то ты делаешь отдельный метод, например getUpdates(), не забываешь его биндить в конструкторе this.getUpdates = ::this.getUpdates, и по клику на нужные тебе элемент, onClick={this.getUpdates} ты выполняешь нужный тебе реквест на апдейты.

Вот про это я и спрашивал, большое спасибо
Аноним 10/05/16 Втр 15:28:20 #165 №739276 
14628833009200.png
>>739260
>[5984565421, 25466544, 788888851]
Аноним 10/05/16 Втр 15:28:36 #166 №739278 
>>739273
num+1 - это считай num, точность будет низкая. 1 ms разницы может не хватить, чтобы вывести предыдущее число.
Аноним 10/05/16 Втр 15:29:36 #167 №739280 
>>739278
Тесты проведи.
Или используй вместо таймаут реквестаниматионфрейм. Там учитывается все.
Аноним 10/05/16 Втр 15:30:24 #168 №739282 
>>739276
[1, 1<<30]
Аноним 10/05/16 Втр 15:33:23 #169 №739285 
>[5,1,2,6,12,64,13,7,15].sort((a, b) => a - b)
problems weren't.
Аноним 10/05/16 Втр 15:42:15 #170 №739295 
14628841355520.jpg
>>739285
[5,1,2,6,12,64,13,7,15].sort()
Аноним 10/05/16 Втр 16:08:14 #171 №739343 
https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript
Аноним 10/05/16 Втр 16:08:57 #172 №739344 
>>739102
>>739105
Еще есть ngrok.
Аноним 10/05/16 Втр 16:29:26 #173 №739387 
>>739266
> [5,1,2,6,12,1,64,13,7,15].forEach(num => setTimeout(() => {console.log(num)}, num*5));
Зачем фигурные скобки вокруг console.log? Мы вам перезвоним, в общем.
Аноним 10/05/16 Втр 16:31:52 #174 №739392 
14628871128620.jpg
>>739387
Я лениво фиксил его трилайнер.
Аноним 10/05/16 Втр 16:33:35 #175 №739397 
Все знают, что в шестом ноде добавлены аргументы по-умолчанию?

function sum(x = 0, y = 0) {
return x + y;
}
Аноним 10/05/16 Втр 16:35:04 #176 №739399 
>>739397
Все транспайлят es6\7 уже давно.
Аноним 10/05/16 Втр 16:40:17 #177 №739411 
У меня бугурт, что в JS так и нет полноценного кортежа. Нельзя написать
myFunc(x instanceof Array ? ...x : x);
так как ...x не может существовать "самостоятельно"
Аноним 10/05/16 Втр 16:41:20 #178 №739413 
>>739411
Я имею ввиду кортеж в луавском смысле, не в питоновском.
Аноним 10/05/16 Втр 16:43:24 #179 №739418 
Какой нынче самый толковый и актуальный туториал по реакту?
Ну, кроме фейсбуковских доков.
Аноним 10/05/16 Втр 17:05:51 #180 №739453 
>>739247
что значит "f &&..."?
Аноним 10/05/16 Втр 17:11:50 #181 №739458 
>>739453
f - переменная.
&& - "and" оператор.
Аноним 10/05/16 Втр 17:12:57 #182 №739460 
>>739453
>что значит "f &&..."?
почитай, как работает &&
Аноним 10/05/16 Втр 17:17:54 #183 №739468 
>>739453
там записано то же самое, что и
if (f) btn.onclick = f;
только более понтово.
Аноним 10/05/16 Втр 17:21:14 #184 №739472 
Как можно писать на js и не знать паттерна
> data && data.pos && data.pos.x
хотя бы в теле условия?
Кстати, от него же вроде как-то хотели избавиться в ES7?
Аноним 10/05/16 Втр 17:36:58 #185 №739493 
>>739468
спасибо, хорошо объяснил
Аноним 10/05/16 Втр 17:41:12 #186 №739498 
>>739247
"var btn of buttons" тоже интересно сделано, первый раз вижу
Аноним 10/05/16 Втр 17:42:42 #187 №739499 
>>739418
Фейсбуковские до...
>Ну, кроме фейсбуковских доков.
Тогда хз.
Аноним 10/05/16 Втр 17:54:47 #188 №739510 
>>739387
>[5,1,2,6,12,1,64,13,7,15].forEach(n => setTimeout(console.log.bind(console), n*5, n));
Аноним 10/05/16 Втр 17:56:09 #189 №739511 
>>739397
В chromium уже давно
Аноним 10/05/16 Втр 18:18:46 #190 №739537 
>>739498
for-of довольно новый стандарт. Если нужна совместимость со старыми браузерами, юзай i = 0; i < ...
Аноним 10/05/16 Втр 18:25:40 #191 №739550 
>>739537
В твоей вселенной не завезли транспайлеров?
Аноним 10/05/16 Втр 18:27:14 #192 №739552 
>>739550
>транспайлеров
можешь сразу на тайпскрипте писать, мне похер.
Аноним 10/05/16 Втр 18:29:45 #193 №739558 
>>739552
Я на нем и пишу, лел.
Аноним 10/05/16 Втр 18:34:36 #194 №739566 
>>739537
ясно, спс
Аноним 10/05/16 Втр 19:26:42 #195 №739626 
Хочу js рантайм как в smalltalk
Скомпилированными образами.
Аноним 10/05/16 Втр 20:07:06 #196 №739644 
Как считаете, wasm убьёт JS? Эйх говорит, что нет. Но он мне сейчас напоминает Януковича, который сам вступил в заговор против себя и вот-вот всех переиграет.
Аноним 10/05/16 Втр 20:20:15 #197 №739659 
14629008158980.jpg
>убьёт JS
Аноним 10/05/16 Втр 20:23:51 #198 №739667 
>>739644
Он скорее его дополнит, у них разное применение.

Хотя было классно, если бы любой язык мог компилироваться в него и все бы освободились от JS-папаши.
Аноним 10/05/16 Втр 20:27:55 #199 №739677 
>>739644
Он ничем не отличается же.
Выполнение не ускорится. Ускорится лишь парсинг, потому что wasm - суть ast
Исполняться будет в той же vm, как и обычный js
При этом wasm слишком низкоуровневый, ив него еще даже не завезли работу с объектами.
А это значит что к окружению не подцепиться, пока еще.

С тем же успехом можно и сейчас транспайлить из других языков в js, максимально оптимизируя код по asm.js
Это одно и тоже.
wasm не приносит ничего нового, чего нет или не будет в обычном js
Аноним 10/05/16 Втр 20:32:09 #200 №739680 
>>739677
>Выполнение не ускорится.
Если не считать что жс - тормозное говнище, которое даже v8 не вытаскивает, то да. На практике - нет, такой хуиткой можно будет достигнуть перформанса явы.

Чтобы не истекали говном, оставлю стандартно http://benchmarksgame.alioth.debian.org/u64q/javascript.html
Аноним 10/05/16 Втр 20:33:49 #201 №739683 
>>739644
Вам дебилам куча прайм пипл, с учетом самих создателей wasm твердит что у них разные задачи, но видимо бестолку.
Аноним 10/05/16 Втр 20:34:13 #202 №739684 
>>739680
>тормозное говнище
Самое быстрое из интерпретируемых.
>vs Java
С плюсами сравни ещё, ебан.
Аноним 10/05/16 Втр 20:34:40 #203 №739685 
>>739680
Дурачек.
wasm ничего не ускорит.
пиши оптимизированный код сейчас, и будет тоже самое.

По факту все ждут не wasm а оптимизирующих компиляторов. Потому что сами писать не умеют.

А wasm для этих самых компиляторов.
wasm это блядь просто AST
Аноним 10/05/16 Втр 20:38:31 #204 №739695 
>>739684
А почему ты считаешь что такие сравнения == говно?
мимоньюфаг
Аноним 10/05/16 Втр 20:40:17 #205 №739698 
>>739685
>пиши оптимизированный код сейчас, и будет тоже самое.
Дай мне возможность не вычислять типы в рантайме и ебаться с указателями как в плюсах вместо копирований на каждый пук - напишу.
>wasm это блядь просто AST
Это в первую очередь возможность эскейпнуться от сборщиков мусора, юзать многопоточность и писать то, что жс не позволяет.
Аноним 10/05/16 Втр 20:42:00 #206 №739701 
>>739695
Потому что ему пичот. Раньше можно было сказать - да, интерпритируемый, не корректное сравнение. Теперь он так же компилируется в байткод, но ему не помогает.
Аноним 10/05/16 Втр 20:47:25 #207 №739707 
>>739698
>Это в первую очередь возможность эскейпнуться от сборщиков мусора, юзать многопоточность и писать то, что жс не позволяет.
Ты поехавший?
Этого не будет.

Эскейпиться от GC ты и сейчас можешь, используй типизированные массивы.

>Дай мне возможность не вычислять типы в рантайме
wasm их так же будет вычислять в рантайме.

Ты плохо понимаешь что такое wasm похоже.
Аноним 10/05/16 Втр 20:50:04 #208 №739711 
>>739698
>не вычислять типы в рантайме
>эскейпнуться от сборщиков мусора
>юзать многопоточность
>писать то, что жс не позволяет.
Представил твою фрустрацию, когда ты выйдет wasm.
Спасибо. Ты сделал мой вечер.
Аноним 10/05/16 Втр 20:50:32 #209 №739712 
>>739683
Двачую этого. Этим дебилам уже в шапку вынесли ответ на вопрос, но они продолжают сравнивать васм и жс. Давайте ещё питон и свифт сравнивать.
Аноним 10/05/16 Втр 20:55:22 #210 №739721 
>>739698
>не вычислять типы в рантайме
Всегда будет.
Для статической компайл-тайм есть препроцессоры.

>сборщиков мусора
Пили поверх типизированных массивов свои типы данных. Там тебе голая память, на здоровье.

>юзать многопоточность
Она предоставляется окружением. В браузерах есть webworkers
У ноды нет и не планируется многопоточности, откуда wasm ее возьмет по-твоему?
У ноды есть модули реализующие кластер из процессо.

>писать то, что жс не позволяет.
WebAssembly не даст писать ничего, чего не позволяет писать js. Он даст лишь иной синтаксис, для представления скриптов, удобный машине,а не человеку. Всё.
Аноним 10/05/16 Втр 21:08:19 #211 №739737 
Т.е. после появление wasm можно будет наконец писать клиентские html5-игры, которые каждый школьник не сможет хакнуть из консоли или спиздить для показа на другом домене?
Аноним 10/05/16 Втр 21:08:55 #212 №739738 
>>739701
Падажжи, ты сравниваешь жс-движок с виртуальной жава-машиной? Ты вменяемый?
Аноним 10/05/16 Втр 21:11:02 #213 №739744 
>>739737
Пиздец, какой же ты мудак блять. Почему, сука, вы не учите основы веба, как он работает, а сразу лезете в жс? А? А? Пидоры
Аноним 10/05/16 Втр 21:11:44 #214 №739745 
>>739744
у меня опыт js > 5 лет. просто я про wasm не очень понял.
Аноним 10/05/16 Втр 21:13:45 #215 №739746 
>>739745
p.s. Я к тому, что будет ли возможность представлять исполняемую в браузере огику каким-то байт-кодом, а не человекочитаемым скриптом и не уродливым обфускатом.
Аноним 10/05/16 Втр 21:14:01 #216 №739747 
>>739746
логику
Аноним 10/05/16 Втр 21:15:13 #217 №739749 
>>739745
И что ты пять лет делал, формсы на жквери отправлял? С тру-5-летним стажем ты б такую хуйню не спрашивал
Аноним 10/05/16 Втр 21:20:07 #218 №739755 
14629044073440.jpg
>>739746
wasm это AST
он читается человеком.

И потом, wasm манипулирует все теми же сущностями vm. А vm управляется из рантайма. Так что, что можно будет хакнуть, как и прежде, не беспокойся.

Пикрелейтед, то как wasm будет выглядеть для человека, например в дебаггере.

Аноним 10/05/16 Втр 21:22:05 #219 №739756 
>>739755
лиспом завоняло чет
Аноним 10/05/16 Втр 21:23:14 #220 №739758 
>>739756
Нет. Это ближе к LLVM IR.
От лиспа там нет ничего.
Это именно ассемблер.
Только не для твоего нативного процессора, а для js-engine
Аноним 10/05/16 Втр 21:24:21 #221 №739761 
>>739758
А компилятор из JS в эти скобки будет?
Аноним 10/05/16 Втр 21:25:47 #222 №739764 
>>739761
Нет.
Из asm.js разве что.
Но если бы ты мог писать asm.js руками, то и wasm сможешь писать руками.
Аноним 10/05/16 Втр 21:27:11 #223 №739767 
>>739761
Компилятор это ты.
Если ты пишешь ебанистический код, где в циклах создаешь замыкания, и ебашишь метапрограммированием повсюду. То в какой бы wasm ты чего не переводил - ничего не измениться.
Аноним 10/05/16 Втр 21:28:56 #224 №739768 
>>739767
я сейчас думаю не о скорости, а о банальной защите исходников.
Аноним 10/05/16 Втр 21:30:07 #225 №739771 
>>739768
Так они ничем не защищены же.
Это тот же asm.js ином представлении.
Из wasm легко переводится в js
А уж деобсфукация js
это сам понимаешь, зависит от объема и логики.
Аноним 10/05/16 Втр 21:32:11 #226 №739773 
>>739771
Нет, разница всё-таки есть. Ты сложную программу и на С++ (asm), и на Java (байткод) заебешься восстанавливать из каши, которая получается после компиляции. Почему такого же не сделать для JS.
Аноним 10/05/16 Втр 21:32:50 #227 №739774 
>>739768
Чтобы перевести из JS в WASM, тебе надо преобразовать свой js код в asm.js совместимый. А для этого придется отказаться от многих вещей, и использовать лишь надможество js.

А вот из WASM в JS (asm.js) переводится легко.
Аноним 10/05/16 Втр 21:33:13 #228 №739775 
>>739755
Нечитаемая параша, а зачем это нужно, анон, объяснишь?
Аноним 10/05/16 Втр 21:33:38 #229 №739776 
>>739773
Так с тем же успехом, ты можешь защищать сейчас свой код, если будешь писать на asm.js
Это тоже самое.

Аноним 10/05/16 Втр 21:34:10 #230 №739777 
>>739775
В эту парашу должно быть легко скомпилировать многие языки, например. Сейчас всякие дарты компилятся в JS, а будут сразу в это.
Аноним 10/05/16 Втр 21:34:46 #231 №739778 
>>739775
Для упрощения написания компиляторов из других языков.

Но, не принося никаких фич из этих других языков, которые нельзя бы было реализовать на js
Аноним 10/05/16 Втр 21:34:52 #232 №739779 
>>739777
То есть писать на нем не надо будет?
Аноним 10/05/16 Втр 21:35:36 #233 №739780 
>>739777
Сейчас все компилится в asm.js
wasm это тоже самое.
Только ужато до байткода.
Ускорение только на уровне парсинга исходного файла. Все.
Аноним 10/05/16 Втр 21:35:53 #234 №739782 
>>739779
Надо будет.
Разработчикам компиляторов.
Аноним 10/05/16 Втр 21:36:01 #235 №739783 
>>739779
Только при желании.

WASM даёт возможность писать браузерные клиентские программы не только на JS. Отсюда и опасения, что JS-у хана.
Аноним 10/05/16 Втр 21:37:02 #236 №739788 
>>739783
А что работает быстрее?
Аноним 10/05/16 Втр 21:37:53 #237 №739789 
>>739783
Но возможностей никаких не будет, сверх тех, что и так доступны из js
Аноним 10/05/16 Втр 21:38:00 #238 №739790 
>>739788
Будет гонка компиляторов в wasm из разных языков, очевидно. Как бы только JS тут не отстал.
Аноним 10/05/16 Втр 21:38:44 #239 №739794 
>>739788
Ничто. Одинаково.
Про asm.js знаешь?
Аноним 10/05/16 Втр 21:39:28 #240 №739796 
>>739794
>Одинаково.
Ага, если на js писать как на asm.js
Аноним 10/05/16 Втр 21:39:46 #241 №739797 
>>739794
Сейчас читаю спецификацию.

>>739790
Мне очень нравится js, все, за что его не любят программисты других языков, для меня наоборот манна небесная.
Аноним 10/05/16 Втр 21:40:19 #242 №739799 
>>739790
>Как бы только JS тут не отстал.
Пока все будут придумывать как им изъебнуться чтобы представить свои стипы и стркутуры из других языков, в типы и структуры на js, в то время когда в js они уже представлены?
Конечно, как бы не отстал, да..
Аноним 10/05/16 Втр 21:42:17 #243 №739806 
>>739796
У них разные задачи.
В wasm нет объектов.
Аноним 10/05/16 Втр 21:46:31 #244 №739810 
Весь этот хайп он именно хайп.
Все думают что вот будет, кококок.

Суть в том, что wasm не приносит никаких новых возможностей, для того, чтобы компилировать из других языков в js.
Это уже сейчас можно делать.
Например есть emscripten. Он и останется, только на выходе будет байткод.

Если бы кому-то надо было компилировать в js Хаскель\руби\го\питон\етк, то и компилировали бы уже давно.

Но никому не надо.
А если и есть какие-то поделки, то они все тянут с собою ебанистические рантаймы, и ими никто не пользуется в серьез.

Все так и останется.

Wasm нужен именно для компияторов. ЧТобы использвовать их оптимизации при алгоритмах с числодроблениями например.



Аноним 10/05/16 Втр 21:50:02 #245 №739813 
>>739810
Алсо, вместе с wasm придут расширения спеки, типа совместимых дататайпов с низкоуровневыми языками, или SIMD
Но пользоваться ими можно будет и из js

Те кому и сейчас нужны оптимизации и так пишут оптмизированный код, и задействую всякие ништяки типа TypedArray которые есть уже давно.
Аноним 10/05/16 Втр 22:37:23 #246 №739862 
>>739797
Поддвачну пожалуй.
Аноним 10/05/16 Втр 22:58:07 #247 №739879 
>>739797
>Мне очень нравится js, все, за что его не любят программисты других языков, для меня наоборот манна небесная.

На твой взгляд, есть вещи которые ты бы исправил? Может что-то выкинул бы как лишнюю сущность? Может что-то добавил, а что-то реализовал бы иначе?

Аноним 10/05/16 Втр 23:05:44 #248 №739891 
>>739879
В новом JS появился новый пиздец: паттерны наподобие Array.prototype[Symbol.iterator]. Раньше нубов пугали с помощью [].slice.call(arguments), теперь будут вот этим.
Аноним 10/05/16 Втр 23:10:26 #249 №739899 
>>739891
Ну Array.prototype[Symbol.iterator] это метауровень, это полезно и нужно, а [].slice.call(arguments) простое делегирование.


Аноним 10/05/16 Втр 23:12:26 #250 №739900 
>>739899
>а [].slice.call(arguments) простое делегирование
по-моему, главная уловка в том, что новички не знают о ебанутой природе объекта arguments, который не массив, но с параметром length.
Аноним 10/05/16 Втр 23:21:51 #251 №739908 
>>739900
Это описывается в каждом учебнике.
Так что если какой-то новичок этого не знает, то он какой-то странный новичок.

Уловкой тут было бы правильно назвать, что конструкция
>[].slice.call(arguments)
на каждый вызов будет создавать экземпляр объекта
И вернее использовать Array.prototype,slice.call

Это разумеется мелочь, и в отдельных случаях экономия на спичках. Но выходит так, что опуская подобные мелочи в самом начале, люди во-первых не до конца понимают архитектуру языка, а во-вторых приучаются писать плохой код, потому что во-первых.

То же самое с замыканиями и прочими вещами.
На хеллоу-вордах, много замыканий не страшно разумеется. Но им кто-то видимо говорит это так. что это нес страшно вовсе, потому как потом они запиливают эти замыкания в циклах, на каждый чих и все такое прочее.

Переучиваться потом сложнее, чем понимать сразу.

К слову слайсить arguments тоже нет необходимости всегда, а только лишь тогда, когда тебе нужен этот аргументс полностью как массив. Но я часто видел, как люди слайсят его и просто, чтобы например получить последний аргумент (зачем-то).

Печально то, что многие не вникают в суть той или иной конструкции, да.
Аноним 10/05/16 Втр 23:26:43 #252 №739917 
>>739900
Не знаю, зачем его слайсят всегда, создавая новый объект, когда можно просто заменить прототип

>Object.setPrototypeOf(arguments, Array.protytype
)
Аноним 10/05/16 Втр 23:34:39 #253 №739924 
>>739917
Ты че мутируешь?
Аноним 10/05/16 Втр 23:35:46 #254 №739926 
>>739924
Что?
Аноним 10/05/16 Втр 23:38:24 #255 №739928 
>>739879
Не он, но отвечу.

Добавил бы статическую типизацию и расширенный ООП уровня шарпа. Тайпскрипт идеален, жалко его нужно компилировать и пока нет движков, выполняющих его напрямую.
Аноним 10/05/16 Втр 23:40:09 #256 №739930 
>>739928
А быстро ли будет он напрямую выполняться со всеми этими проверками?
Аноним 10/05/16 Втр 23:41:48 #257 №739932 
>>739928
В чем проблема компиляции? Тот же шап, нужно компилировать в IL, который выполняет CLR, тот же механизм ts->js->browser/node.
SystemJS, кстати, может загружать .ts файлы, и компилировать их уже в браузере.
Аноним 10/05/16 Втр 23:43:37 #258 №739935 
>>739926
Аргументы.
Аноним 10/05/16 Втр 23:52:15 #259 №739940 
Ангуларобоги, подскажите. По нажатию на Enter отправляю сообщения в чат и делаю содержимое инпута равным "", курсор после нажатия перескакивает на следующую строку. Как изменить поведение курсора, чтобы он оставался на месте после нажатия на энтер?
Аноним 10/05/16 Втр 23:57:01 #260 №739943 
>>739940
Найти и закомментировать код, который заставляет курсор перескакивать, лол.
Аноним 11/05/16 Срд 00:00:28 #261 №739948 
Сап. Насколько встроенные методы завязаны на встроенные объекты?

Если я перепиливаю весь рантайм, меняю прототипы у встроенных объектов и все такое прочее. Есть ли вероятность того, что где-то какой-то метод завязан на метод встроенного объекта, а не использует его через какую-то внутреннею ссылку?


Проще говоря, если я например переопределю Array.prototype.sort
Есть ли вероятность что сломается какой нибудь Element.prototype.someMethod ?

(речь только о встроенных объектах)
Аноним 11/05/16 Срд 00:01:57 #262 №739949 
>>739940
Гугли preventDefault
Аноним 11/05/16 Срд 00:07:40 #263 №739954 
14629144601760.png
вангую в итоге скрипт на тыщу строк
Аноним 11/05/16 Срд 00:15:44 #264 №739961 
>>739954
Используй === вместо ==, когда тебе не нужно приведение типов.

У тебя много таких вещей, как например

if (memoryList.style.display) {
memoryList.style.display = ..
}else{
memoryList.style.display = ..
}

Каждый раз, у тебя запрашивается сначала объект memoryList потом memoryList.style а уже потом поле memoryList.style.display

Вместо этого вынеси один раз memoryList.style в переменную и уже дальше используй style.display


Аноним 11/05/16 Срд 00:18:55 #265 №739967 
>>739961
спс, учту
Аноним 11/05/16 Срд 00:19:17 #266 №739968 
>>739961
>Вместо этого вынеси один раз memoryList.style в переменную и уже дальше используй style.display
Это копейки рядом с временем операции по применению любого стиля.

>>739954
А что, jQuery уже не в моде?
Аноним 11/05/16 Срд 00:19:28 #267 №739969 
>>739954
Алсо, в цикле у тебя там memoryButtons.children.length
Проверяется каждый раз, хотя количество кнопок статично.
Зачем?

опять же выноси в переменную. Не дергай объекты каждый раз, тем более children возвращает живую коллекцию

Приучайся писать оптимизированный код сразу.
Пытайся понимать, что ты делаешь, каждый раз, чтобы понять, где ты что-то делаешь не хорошо.
Аноним 11/05/16 Срд 00:20:16 #268 №739972 
>>739968
>Это копейки
Я уже писал, чем чреваты такие копейки в будущем. >>739908

Аноним 11/05/16 Срд 00:21:39 #269 №739974 
>>739968
> jQuery уже не в моде
А это модно, учить язык с фреймворков?
Аноним 11/05/16 Срд 00:23:56 #270 №739977 
>>739949
Спасибо, решил проблему. Следующий вопрос, необходимо по комбинации shift+enter не слать сообщение в чате, а переходить на следующую строку в чате. Как сделать?
Аноним 11/05/16 Срд 00:25:53 #271 №739980 
>>739977
Отлавливаешь нажатие на клавишу (enter)
и в обработчике смотришь не зажата ли при этом shift

Посмотри в консоли на event который передается в обработчик, там вроде даже есть специальный флаг зажата ли shift
Аноним 11/05/16 Срд 00:28:29 #272 №739982 
>>739977
Лови keydown и смотри
Аноним 11/05/16 Срд 00:33:00 #273 №739987 
>>739968
я за полгода еще даже ваниль толком не усвоил, какой жиквери
Аноним 11/05/16 Срд 00:33:16 #274 №739988 
>>739980
>>739982
Да, нашёл флажок. Спасибо.
Аноним 11/05/16 Срд 00:39:37 #275 №739992 
>>739987
jquery потому и советуют, ибо он проще ванили.
Но это не тру, начинать не с ванили.
Все правильно делаешь.
Аноним 11/05/16 Срд 00:45:48 #276 №740000 
>>739992
да наверное, если заюзать жиквери и всякие библиотеки, то код станет в 10 раз короче
Аноним 11/05/16 Срд 00:46:33 #277 №740001 
>>740000
Сейчас ваниль на том уровне, когда и на ней можно писать не длинее жиквери.
Аноним 11/05/16 Срд 00:46:55 #278 №740003 
>>739908
тут поддвачну, с начала месяца читаю Кантора там же все это есть. Какие-то тупые новички раз в элементарное не въезжают
Аноним 11/05/16 Срд 00:50:33 #279 №740005 
>>739928
А я бы ничего бы не менял. Js вполне логичен, если сесть и разобраться в нем самом, а не сравнивать с другими яп и тем как привык, как не привык.
Но мое мнение никому не интересно, поэтому и выходит что могу на двачике только его писать
Аноним 11/05/16 Срд 00:55:31 #280 №740007 
>>740005
А меня например коробит, от нововведеной конструкции class которая не нужна, а еще от испокон веков поведшейся концепции хранить конструктор отдельно от прототипа.

Должно быть что-то типа
Object.new () {
return Object.create(this)
}

Как раз это бы было максимально логично.
И так, чтобы инстансить можно было любой объект. А если в нем не прописан конструктор, то возвращается именно Object.create(this)

Аноним 11/05/16 Срд 01:00:10 #281 №740010 
>>740007
>меня например коробит, от нововведеной конструкции class которая не нужна
Недавно переделал все фабрики в своём nodejs-проекте под class'ы - код стал намного чище. Стало можно без изворотов делать многоуровневое наследование.
Аноним 11/05/16 Срд 01:02:07 #282 №740011 
>>740007
class Creature {}
class Feline extends Creature {}
class Lynx extends Feline {}

Запиши это без классов.
Аноним 11/05/16 Срд 01:08:31 #283 №740014 
>>740011
Я тебе тоже самое могу сказать.
Запиши мне с помощью class
В прототип поле field со значением true

Или в статик поле запиши?


А наследование реализуется как и прежде. Только раньше можно было запилить удобную обертку, и она бы не выбивалась из общей концепции. А этот сахар новомодный, как раз выбивается, потому что он не повторяет поведения.
Аноним 11/05/16 Срд 04:32:09 #284 №740068 
Обезьяны, у кого сегодня null null?
http://elm-lang.org/blog/farewell-to-frp
Аноним 11/05/16 Срд 04:42:29 #285 №740070 
>>737862 (OP)
Жаваскриптаны, оцените хуйню которую я написал на жкверях.
https://jsfiddle.net/Lk7w309j/
Код вначале скрипта - плагин на колесо мыши (не нашел как иначе добавить), дальше мой. Сносно или пиздец?
Аноним 11/05/16 Срд 09:55:16 #286 №740156 
>>739680
>>739644
Господи, все эти дилетанты, которые абсолютно не понимают как работают браузеры, которые абсолютно не понимают зачем и почему есть жс. Кичиться какими-то бэнчмарками, но не знать про то, что бОльшую часть времени выполняются рендер, обращения к дому и к прочим браузерным апи.

Прежде чем открывать рот, хоть вот это посмотрите.
https://www.youtube.com/playlist?list=PL7664379246A246CB
Аноним 11/05/16 Срд 10:10:51 #287 №740167 
>>740156
>в тестах тестируют node js
>но не знать про то, что бОльшую часть времени выполняются рендер, обращения к дому и к прочим браузерным апи.
>все дилетанты
Подмойся.
Аноним 11/05/16 Срд 10:32:19 #288 №740177 
>>740167
Я про отсутствие фундаментальных знаний. Вот и ты не понимаешь как нода работает, поэтому бэнчмарки как показатель ПРОИЗВОДИТЕЛЬНОСТИ можешь засунуть куда подальше вместе с:
> transliterated from Mike Pall's Lua program
> transliterated from Rick Branson's Ruby program

Аноним 11/05/16 Срд 10:35:58 #289 №740181 
>>740177
Я все прекрасно понимаю. Но спорить с персонажем с завышенным ЧСВ, который не предоставил опровержения бенчам (хотя ведь если он такой всезнающий, для него бы не составило труда переписать тест под ноду, и доказать свою правоту по в-рослому, а не кукареканиями - вы врееетии) и поклоняется каким-то аффторитетам, типа Крокфорда. О чем с тобою говорить.
Аноним 11/05/16 Срд 10:41:04 #290 №740183 
>>740181
Че, Крокфорд не авторитет?
Аноним 11/05/16 Срд 10:43:39 #291 №740184 
>>740183
Авторитетов не может быть вообще.
Аноним 11/05/16 Срд 11:27:27 #292 №740204 
Поясните по JWT.
Данные, которые находятся в теле, довольно предугадываемые. Что мешает злоумышленнику, зная вход, выход и алгоритм, подобрать наш секрет и подписывать себе админские токены?
Аноним 11/05/16 Срд 11:39:54 #293 №740208 
>>739680
А почему не все тесты в ноде мультипроцессорные? Не чесна так!
Аноним 11/05/16 Срд 11:56:50 #294 №740214 
14629570104790.png
>>740204
>подобрать наш секрет
Каким же образом?
Аноним 11/05/16 Срд 12:12:07 #295 №740225 
>>740214
Самое простое - отксорить. Конечно, с hmac не пройдет, но первая интуитивная мысль - почему бы и нет?
Сейчас читнул SO, говорят, можно только брутфорсом.
Аноним 11/05/16 Срд 12:15:06 #296 №740227 
>>740225
>Сейчас читнул SO, говорят, можно только брутфорсом.
В том то и дело, ты представляешь себе возможным брутфорсить JWT токен со сроком годности? С учетом того, как легко присечь подобного рода брутфорс, заморачиваться на эту тему не стоит.
Аноним 11/05/16 Срд 12:21:10 #297 №740233 
>>740227
Да это понятно, я думал, вдруг есть что-то, кроме брутфорса.

>легко присечь подобного рода брутфорс
А вот это не правда. Перебор на клиенте же.
Аноним 11/05/16 Срд 12:26:58 #298 №740237 
>>740233
>Перебор на клиенте же.
Ну будешь ты с клиента машины спамить, как это помешает серверу контроллировать токен спам?
Аноним 11/05/16 Срд 12:29:31 #299 №740239 
>>740237
Мы на сервер ничего не передаем.
Подбираем секрет, пока не сможем верифировать наш же токен.
Аноним 11/05/16 Срд 12:35:20 #300 №740245 
>>740239
Интересно, я наверное просто не в теме, я помню читал статью про client side bruteforce и она по сути сводилась к тому, что это стандартный брутфорс, просто ты не отсылаешь токены через кукисы атакующей машины, а используешь клиента для выполнения атаки. Я не совсем понимаю, как ты без сервера узнаешь что токен прошел верификацию, когда сам факт верификации объявляется сервером?
Аноним 11/05/16 Срд 12:42:22 #301 №740249 
>>740245
Так верификация это просто декодирование, используя входное сообщение, алгоритм и секрет.
Делаем hmac_decode, пока не получим выходной json.
Конечно, есть вероятность коллизии, что hmac_decode(secret1) = hmac_decode(secret2). Но мы даже до нее вряд ли сможем забрутить.
Аноним 11/05/16 Срд 13:12:56 #302 №740267 
Посони, кажите где косячу в скрипте? Надо получить среднее арифметическое, значения переменных приходят корректно, но полученное значение не выводит в <p> http://pastebin.com/k160tNZn
мимопитонист
Аноним 11/05/16 Срд 13:16:58 #303 №740271 
>>740267
Ну ты б свой $('p.hui') бы хоть проверил сначала, питонист.
Аноним 11/05/16 Срд 13:21:47 #304 №740277 
Есть html таблица, из неё нужно вытащить данные, которые находятся в ячейках и сформировать ассоциативный массив, после чего сформировать xml страницу с этими данными. Как это осуществить, аноны?
Аноним 11/05/16 Срд 13:30:49 #305 №740287 
>>740277
думаешь, тебе тут готовый скрипт напишут?
я блять не представляю даже где у тебя сложность возникла
Аноним 11/05/16 Срд 13:33:00 #306 №740288 
>>740287
та не готовый скрипт, а что делать вообще
как из html таблицы массив сформировать, как потом xml из него создать
Аноним 11/05/16 Срд 13:36:52 #307 №740290 
>>740271
Поясни что не так? Или просто мамкин петросян упражняется?
Аноним 11/05/16 Срд 13:38:45 #308 №740293 
>>740288
Ну не будь мудаком.
http://stackoverflow.com/questions/11383236/how-to-output-html-form-data-to-a-xml-file-using-javascript
>>740290
У тебя там проблема в том, что ты пытаешься взять p по классу, а у него по факту id: p.hui => p#hui.
Аноним 11/05/16 Срд 13:42:59 #309 №740298 
>>740293
блё, я так и знал, что в какой-то мелочи лоханулся. Спасиб
Аноним 11/05/16 Срд 14:16:37 #310 №740314 
>>740293
Спасибо!
Аноним 11/05/16 Срд 14:56:45 #311 №740338 
>>740245
Почитай про jwt. Сервер даже не хранит токены.
Аноним 11/05/16 Срд 17:11:48 #312 №740468 
Тут чувак в презентации говорит, мол если юзать реакт с жуквери, то виртуал дом похерится, потому что реакт не будет понимать, где свои изменения, а где жукверевские:

https://youtu.be/YJNUK0EA_Jo?t=938

Это что значит, если что-то пилишь на реакте, нельзя на эту вещь одновременно как-то другими штуками влиять?
Аноним 11/05/16 Срд 17:49:49 #313 №740485 
>>740468
Да никто тебе не запрещает, влияй.
Аноним 11/05/16 Срд 18:03:04 #314 №740494 
>>740070
Бамп же
Аноним 11/05/16 Срд 18:04:37 #315 №740496 
>>740485
Но реакт тогда пробется и не сможет отслеживать изменения дома извне? Или сможет?
Аноним 11/05/16 Срд 18:05:15 #316 №740498 
>>740496
Зачем тебе жеквере в реакте?
Аноним 11/05/16 Срд 18:07:20 #317 №740503 
>>740496
Жеквери можно использовать не только для манипуляций с домом :^)
Аноним 11/05/16 Срд 18:07:21 #318 №740504 
>>740498
>- сколько стоит доллар?
>- зачем тебе доллары?

Ты еврей?

Аноним 11/05/16 Срд 18:07:52 #319 №740505 
>>740498
Ну например для жеквери уи
Аноним 11/05/16 Срд 18:08:10 #320 №740506 
>>740503
Окей,я поставлю вопрос иначе.
Если менять дом в обход реактовского вдома, например используя ванильные методы - то вдом теряет смысл, верно?
Аноним 11/05/16 Срд 18:15:27 #321 №740512 
>>740498
Пока мне это все вообще нахуй не надо, но предупрежден значит вооружен и все такое.
Аноним 11/05/16 Срд 18:18:09 #322 №740515 
>>740506
Да. Плюс это еще ебет в рот смысл реакта как инструмент для однообразного отображения куска дома из определенного стейта.
Аноним 11/05/16 Срд 18:32:58 #323 №740531 
>>740515
Это значит, что реакт монополизирует ДОМ.
Если кто-то написал что-то на реакте. А потом кто-то захотел, что-то допилить, не затрагивая всю архитектуру (добавить ебаных снежинок, лол, не суть что). То это все пойдет по пизде?

Во времена библиотек, такого не было.
Аноним 11/05/16 Срд 18:35:33 #324 №740534 
>>740531
это значит что снежинки тоже на реакте надо пилить, и мы тихонько подходим к мысли что тот, кто не знает реакт, будет беспомощный лох.
Аноним 11/05/16 Срд 18:41:32 #325 №740542 
>>740531
Ну конкретно для снежинок добавим ветку в дом, которая будет на том же уровне что и корень реакта.
Аноним 11/05/16 Срд 18:45:56 #326 №740547 
>>740542
>>740534
Это означает именно монополизацию.
То с чем так долго боролись, по типу модификаци нативных обхектов, расширения\изменения нативных прототипов и все такое прочее, что мешало бы в проекте использовать сторонние модули, или дополнять проект не зная third_party библиотек.
Все это вылезло в ином месте.

Аноним 11/05/16 Срд 18:57:05 #327 №740558 
>>740547
Я бы не рассматривал это как что-то ужасное.
Времена, когда надо было добавлять свистоперделки на свой сайт на народе уже давно прошли. И для задач простого представления информации давно уже придумали кучу элегантных решений.

Но сейчас то задачи сводятся к другому, люди хотят видеть полное приложение, к чему хтмл и дом приспособлены очень плохо, они не создавались для этого. Для этого и придумывают такие вещи как виртульный дом, и реакты, чтобы создать некую систему взаимодействия и это не предусматривает кучу костылей.

В любом случае стек и инструменты это твой (или твоего начальства) выбор.
Аноним 11/05/16 Срд 18:57:16 #328 №740559 
>>740534
>будет беспомощный лох.
Если я заказываю проект, с учетом того, что правок в его архитектуре не будет, но я может в будущем захочу допилить там лишнюю формочку, или добавить выпадающую менюшку, а так как я не вау-программист, и мои знания ограничиваются ванилой и джеквери. Я плачу за эту работу, и мне запиливают так, что я потом нихуя не смогу сделать не нанимая кого-то снова - это не круто.

Чтобы починить\заменить вилку от провода, мне не нужно знать физику\электрику.

Чтобы заменить масло или ремень, не нужно быть автослесарем.

Аноним 11/05/16 Срд 19:02:01 #329 №740568 
>>740559
> Чтобы заменить масло или ремень, не нужно быть автослесарем.
Если это шестерка твоего бати (веб 2.0), но не если это болид формулы 1.
Аноним 11/05/16 Срд 19:02:44 #330 №740571 
>>740558
Парадокс в том, что когда всякого рода монополизацию делали с помощью неразрекламированных продуктов, хотя точно так же отлично документированных. Сообщество взрывалось - да как так можно.
Как только монополизацию произвели корпорации - сообщество проглотило и попросило еще.
Аноним 11/05/16 Срд 19:04:18 #331 №740573 
>>740571
>когда всякого рода монополизацию делали с помощью неразрекламированных продуктов

например?
Аноним 11/05/16 Срд 19:05:57 #332 №740575 
>>740573
Например sugar.js
Аноним 11/05/16 Срд 19:13:50 #333 №740579 
Ну вот что за хуйню он тут лепит? Монополия, блядь. Вообще охуеть. Запилят тебе на бекбоне с кофескриптом в *.eco темплейтах приложение и захочется тебе добавить завтра новый кусок к нему, знаешь что ты будешь делать? Правильно, будешь ебашить бекбон на кофе в ико темплейтах или с нуля всё переписывать под то, что тебе надо. А знаешь что будет если тебе на ангуларе запилят такое приложение? Всё верно, будешь хуярить на ангуларе, может ещё и тайпскриптец подтянуть надо будет. Или, если ты не "вау-программист" будешь искать того, кто знает стак который у тебя в продакшене. Всегда так было и всегда так будет.
Аноним 11/05/16 Срд 19:14:34 #334 №740580 
>>740558
>к чему хтмл и дом приспособлены очень плохо
Чем это?
Все тормоза не из-за них, а из-за возможностей которые они предоставляют.
А эти возможности очень широкие.

Если ебашить динамические интерфейсы на какой-нибудь нативной либе, то там тебе придется все примитивы реализовывать самому, и рендерить самому, когда тебе виджетов будет не хватать.

Собственно никто тебе не мешает точно так же делать и в вебе. Например различные онлайн-офисы, не используют для рендеринга дом, потому что это не рационально. Но то же самое было бы и в нативных гуишных либах, точно так же отрисовывали бы на контекстах в ручную.
Аноним 11/05/16 Срд 19:15:32 #335 №740582 
>>740579
>Всегда так было
В том то дело, что не было.

Аноним 11/05/16 Срд 19:18:39 #336 №740585 
>>740534
>>740547
Блять, поехавшие. Шедоу-ДОМ это неофициальный стандарт, который скоро будут поддерживать все браузеры. Второй ангулар тоже в него может.
Аноним 11/05/16 Срд 19:19:37 #337 №740588 
>>740579
двачую. совсем уж ебнулись эти джиквери еба погромисты
Аноним 11/05/16 Срд 19:19:49 #338 №740589 
>>740575
Это инструменты статичного веба, который еще сам Тим Бернес-Ли придумал. И тормоза от того как костылями с этим борются.
Канвас это тоже костыль.
Аноним 11/05/16 Срд 19:19:53 #339 №740590 
>>740585
При чем тут shadow дом и vdom?
Шадоу дом такой же дом, как и обычный. Только со своим контекстом.

А вдом, это легковесная копия, это вообще не дом.
Аноним 11/05/16 Срд 19:20:30 #340 №740592 
>>740582
Конечно было. Инструментов меньше в целом было меньше, поэтому менее разношёрстные стаки были, а по сути если у тебя было extjs приложение, то extjs бы ты и писал. Короче ни о чем вискас, я пошел пить кофе.
Аноним 11/05/16 Срд 19:20:53 #341 №740593 
>>740589
>Канвас это тоже костыль.
Канвас есть не только в вебе. Тебе браузер все рендерит на собственном канвасе.
Аноним 11/05/16 Срд 19:23:12 #342 №740596 
>>740593
Я конкретно про браузерный канвас. И хтимл и всякие его друзья типа хмл тоже есть не только в вебе.
Аноним 11/05/16 Срд 19:25:24 #343 №740598 
>>740590
shadowDOM > vDOM потому что
vDOM временный костыль
Аноним 11/05/16 Срд 19:29:50 #344 №740604 
>>740598
shadow dom - это дом. со всеми вытекаюшими.
вдом - это объект, который только биндится и обновляет куски настоящего дома.

С тем же успехом, ты мог бы сам управлять обычным домом. Но совсеременный программист слишком глуп для этого, ему нужно чтобы кто-то делал это за него, чтобы он не косячил.

Когда shadow dom придет всюду, те кто сейчас не пользуются обычным домом, так же не будут пользоваться теневым. Будут так же использовать такие же прослойки как реакт, потому что с домом они обращаться не умеют.
Аноним 11/05/16 Срд 19:32:10 #345 №740606 
>>740604
>Будут так же использовать такие же прослойки как реакт, потому что с домом они обращаться не умеют
А я и не против. Только я предпочитаю думать, что это дополнительный уровень абстракции для удобства, а не я тупой.
мимопроходил
Аноним 11/05/16 Срд 21:33:29 #346 №740736 
Как же я заебался. Нужна регулярка для валидации формы на количество символов. От n до m. Ненавижу регулярки. Спасай, анон.
Аноним 11/05/16 Срд 21:35:24 #347 №740738 
>>740736
>регулярка на количество символов
Это шутка?
Аноним 11/05/16 Срд 21:40:25 #348 №740742 
>>740606
Давай поебемся) я буду нежно и страстно целовать тебя, делать массаж, гладить твою нежную попку и теребить языком соски. Потом войду в тебя, мы сольемся в единый организм, состоящий из оргазма, наслаждения, похоти, чувств, тишины, тоски по детству, низости первородного греха, голубого неба, ветра в поле, ночного костра..затем я поцелую тебя в лоб, прижму к себе и ты укутаешься в мои объятия, предавшись миру Морфия. Я же включу недосмотренный тайтл и добью оставшиеся 5 серий. Выключив ноутбук, я, ощутив тепло твоего тела и услышав размеренное спокойной дыхание, постараюсь уснуть.
Аноним 11/05/16 Срд 22:00:46 #349 №740763 
>>740736
>валидации формы на количество символов
Что это значит?
Аноним 11/05/16 Срд 22:15:23 #350 №740795 
>>739891
[].slice.call(arguments) - это вызов метода slice у array.prototype для преобразования массивоподобного объекта в массив, да? Я недавно js начал изучать
Аноним 11/05/16 Срд 22:17:46 #351 №740801 
14629942665940.jpg
14629942665961.png
>>737862 (OP)
Нужно побыстрее вьехать в D3.js, дайте совет, что ли.
Аноним 11/05/16 Срд 22:23:59 #352 №740811 
>>740795
Да.
Поясните мне, стоит ли писать Array.prototype.slice или [].slice достаточно?
Аноним 11/05/16 Срд 22:25:57 #353 №740814 
>>740811
эскобар.жпг
Аноним 11/05/16 Срд 22:37:17 #354 №740833 
>>740811
>>739908
Аноним 11/05/16 Срд 22:38:41 #355 №740835 
>>740801
Насколько быстро?
Если есть пара дней, то http://chimera.labs.oreilly.com/books/1230000000345/index.html
Аноним 11/05/16 Срд 23:13:54 #356 №740862 
14629976341040.jpg
>>740736
Аноним 11/05/16 Срд 23:16:27 #357 №740867 
14629977871740.jpg
>>740862
Аноним 11/05/16 Срд 23:21:06 #358 №740869 
>>740736
>/^(.{n,m})$/
Не благодари, короче.
Аноним 11/05/16 Срд 23:27:42 #359 №740879 
14629984626030.png
Объясните феномен.
Аноним 11/05/16 Срд 23:32:00 #360 №740884 
>>740879
Оберни в скобки. Заработает.
Аноним 11/05/16 Срд 23:33:41 #361 №740885 
>>740884
Можно ещё плюсик впереди поставить, тоже заработает. Но почему ошибка-то.
Аноним 11/05/16 Срд 23:41:50 #362 №740888 
>>740885
Потому что имени нет.
Может легаси поведение.
Аноним 11/05/16 Срд 23:43:47 #363 №740891 
>>740885
Ты пытаешся использовать на ходу анонимную функцию, не присваивая ее никуда, и не используя в качестве колбека.
Скобочный блок возвращает последний результат, поэтому оно будет работать.
А плюсик это вообще приведение к числу так что я хз что там у тебя работает
Аноним 11/05/16 Срд 23:43:49 #364 №740892 
>>740885
Советую почитать, как работает консоль и что такое function expression
Аноним 11/05/16 Срд 23:49:25 #365 №740897 
>>740891
Ну плюсик приведёт функцию к NaN и вернёт его.
Аноним 11/05/16 Срд 23:50:56 #366 №740900 
>>740891
>Ты пытаешся использовать на ходу анонимную функцию, не присваивая ее никуда, и не используя в качестве колбека.
И что?
Ты когда считаешь 1+2 никуда не присваивая, или используешь любой литерал в репле, это же работает.

>Скобочный блок возвращает последний результат, поэтому оно будет работать.
Подтяни свои знания
Во=первых стрелочные функции, а что такое скобочный блок я не знаю.
А во-вторых ()=>{10} не вернет тебе 10
Авто-ретурн работает только для однострочных функций.


Аноним 11/05/16 Срд 23:52:12 #367 №740902 
>>740892
Консоль работает через eval
Аноним 11/05/16 Срд 23:54:36 #368 №740907 
>>740900
>Скобочный блок
>()=>{10}
Я не про это. Я этот пример вообще не увидел, лол. Я про это (function(){}).
В глаза ебусь.
Аноним 11/05/16 Срд 23:55:50 #369 №740909 
>>740891
>>740892
То есть по-вашему нормально, что
> var x = eval('100'); // x = 100
работает, а
>var x = eval('function(){}'); // SyntaxError
не работает?
Аноним 11/05/16 Срд 23:57:33 #370 №740913 
>>740909
Если знать как работает рантайм, такое смущать не будет
Аноним 11/05/16 Срд 23:58:41 #371 №740914 
>>740909
Ты получаешь ошибку потому что это поведение бессмысленно. Ты создаешь анонимную функцию, не присваиваия ее в переменную и не в качестве коллбека. То есть ее невозможно вызвать вринципе, к ней нет доступа.
Аноним 12/05/16 Чтв 00:00:42 #372 №740915 
>>740914
Ты в глаза долбишься что ли?
Я присваиваю ее в переменную x

Если следовать твоей логике то eval('100') еще более бессымсленно, но почему-то ошубику не выбрасывает.

Алсо ты проебал момент что eval('()=>{}') работает отлично. а вот с function(){} нет.
так что твое объяснение высосано из пальца.
Аноним 12/05/16 Чтв 00:02:07 #373 №740917 
>>740914
>бессмысленно
Это твое существование бессмысленно.
Только посмотрите на него.
Изобрели компиляторы, которые оценивают смысл написанного программистом кода.
Аноним 12/05/16 Чтв 00:03:19 #374 №740918 
>>740917
>Твоя программа не разделяет моей картины мира, я не буду ее выполнять.
Аноним 12/05/16 Чтв 00:05:27 #375 №740920 
>>740913
Да это понятно.
Просто забавное поведение.
Хочется докопаться до причины.
Arrow же пропускает.
Мне кажется либо это arrow забыли не пропускать, либо наоборот, осталось легаси какое-то.
Аноним 12/05/16 Чтв 00:11:01 #376 №740923 
>>740920
Хотя arrow наверное правильно пропускает, он же на лету оборачивается в bind
Аноним 12/05/16 Чтв 00:11:59 #377 №740924 
14630011198510.jpg
>>740835
Спасибо, годно.
Аноним 12/05/16 Чтв 00:16:36 #378 №740928 
>>740811
> [].slice лучше не писать, так как создаётся лишний [] только чтобы взять свойство его прототипа.
Аноним 12/05/16 Чтв 00:16:53 #379 №740929 
>>740928
без >
Аноним 12/05/16 Чтв 00:21:14 #380 №740933 
>>740928
Забавно, что в npm пакетах которые все используют не глядя хуй клали на подобные оптимизации
https://github.com/juliangruber/isarray/blob/master/index.js
Аноним 12/05/16 Чтв 00:22:39 #381 №740935 
>>740933
Не нравится - контрибуть!
Аноним 12/05/16 Чтв 00:25:48 #382 №740937 
>>740933
Потому что так и есть.
От подобных петушков всегда проигрываю >>740928. Ноль понимания того, как работает компилятор
Аноним 12/05/16 Чтв 00:27:18 #383 №740938 
Анонсы, нужно было программу написать которая просит ввести число больше 100, а иначе (кроме выхода) будет опять выводить окно и спрашивать.

Я только начинаю изучать язык и не пойму почему интерпретатор ругается на Break?

while (true);{
var Number = prompt(+"Введите число больше 100",'');
if (Number > 100 || Number == null) break;
else (Number < 100) continue;
}
Аноним 12/05/16 Чтв 00:28:22 #384 №740939 
>>740938
>var Number
Аноним 12/05/16 Чтв 00:30:32 #385 №740942 
>>740939
и?
Аноним 12/05/16 Чтв 00:32:28 #386 №740947 
>>740938
>Анонсы, нужно было программу написать которая просит ввести число больше 100, а иначе (кроме выхода) будет опять выводить окно и спрашивать.

while (+prompt('Введите число больше 100') <= 100) {}
Аноним 12/05/16 Чтв 00:33:41 #387 №740948 
>>740947
Мне другой код не нужен, объясните почему этот не работает.
Аноним 12/05/16 Чтв 00:34:28 #388 №740949 
>>740948
а хули ты ; после while() поставил?
Аноним 12/05/16 Чтв 00:37:03 #389 №740950 
>>740949
p.s. Да там полный пиздец вообще.

while (true) {
var number = +prompt('Введите число больше 100');
if (number > 100) break;
}
Аноним 12/05/16 Чтв 00:37:23 #390 №740951 
>>740950
бля, ну табы вырежешь
Аноним 12/05/16 Чтв 00:38:22 #391 №740952 
14630027022080.jpg
>>740928
>>740935
>>740937
Аноним 12/05/16 Чтв 00:40:04 #392 №740954 
>>740952
что за чертовщина
Аноним 12/05/16 Чтв 00:42:42 #393 №740957 
>>740949
Спасибо, ошибка пропала. Потом выдавало новую на счет continue, но мой мозг додумался что это бесполезная хуйня в ЗАМКНУТОМ цикле.
Аноним 12/05/16 Чтв 00:42:42 #394 №740958 
>>740954
Никакой чертовщины.
Создать пустой объект дешевле, чем запрашивать цепочку из Array > prototype > slice
или по-твоему как поля ищутся в объекте. Цепочка вызова никак не компилируется в одну ссылку, потому что никогда не известно куда будет ссылаться эта цепочка в следующий момент. Язык динамический же.
Аноним 12/05/16 Чтв 00:46:30 #395 №740961 
while (true){
var Number = +prompt("Введите число больше 100",'');
if (Number > 100 || Number == null) break;
}

Почему-то при нажатии "Отмена" цикл не завершается, хотя в условии прописано, опять туплю.
Аноним 12/05/16 Чтв 00:49:27 #396 №740962 
14630033678780.jpg
14630033678781.jpg
>>740954
А у меня наоборот.
Аноним 12/05/16 Чтв 00:49:58 #397 №740963 
>>740961
У тебя в условиипрописано либо болше 100 либо null
А при отмене у тебя возвращается 0, ты же его плсиком к число приводишь.
Аноним 12/05/16 Чтв 00:50:53 #398 №740965 
>>740963
Даже если бы не приводил, undefined не > 100
Аноним 12/05/16 Чтв 00:52:06 #399 №740967 
>>740961
замени null на undefined
Аноним 12/05/16 Чтв 00:52:10 #400 №740968 
>>740958
>Создать пустой объект дешевле, чем запрашивать цепочку из Array > prototype > slice
По твоему в случае вызова метода из объекта, он не обращается к prototype?
Аноним 12/05/16 Чтв 00:52:47 #401 №740969 
>>740967
вернее на NaN тогда уж. бля
Аноним 12/05/16 Чтв 00:52:51 #402 №740970 
>>740963
Спасибо, понял.

>>740965
что простите? при чем здесь undefined?
Аноним 12/05/16 Чтв 00:53:30 #403 №740971 
>>740970
Когда ты жмёшь отмену в окне промпта, оно возвращает undefined.
Аноним 12/05/16 Чтв 00:54:05 #404 №740973 
>>740971
он возвращает null
Аноним 12/05/16 Чтв 00:54:33 #405 №740974 
ладно, запизделся. всё равно нормальные пацаны prompt не юзают. а null тем более.
Аноним 12/05/16 Чтв 00:55:36 #406 №740977 
14630037367810.jpg
>>740962
Если только ты сделал так.
Аноним 12/05/16 Чтв 00:56:07 #407 №740978 
>>740965
Зато undefined == null
Аноним 12/05/16 Чтв 00:56:26 #408 №740979 
>>740967
>>740978
Не пизди
Аноним 12/05/16 Чтв 00:57:00 #409 №740980 
>>740974
А еще нормальные пацаны не умеют в приведение типов.
Аноним 12/05/16 Чтв 00:57:07 #410 №740981 
>>740977
Array всегда window.Array в браузере, это глобальный контекст.
Аноним 12/05/16 Чтв 00:57:34 #411 №740982 
>>740978
нахер такие приведения.
Аноним 12/05/16 Чтв 00:58:05 #412 №740983 
>>740981
При чем тут это.
Там константа.
Аноним 12/05/16 Чтв 00:58:34 #413 №740984 
>>740982
Знать надо.
Аноним 12/05/16 Чтв 00:59:07 #414 №740985 
>>740983
Я не создавал константу, ты где-то накосячил просто. Либо переопределил Array через супер-множественное наследование, а теперь зеленишь.
Аноним 12/05/16 Чтв 00:59:13 #415 №740986 
>>740983
попробуйте const prot_slice = Array.prototype.slice;
Аноним 12/05/16 Чтв 00:59:28 #416 №740987 
>>740985
Нет. Я тебе гарантирую это.
Аноним 12/05/16 Чтв 00:59:33 #417 №740988 
14630039738230.jpg
>>740984
Аноним 12/05/16 Чтв 00:59:47 #418 №740990 
>>740986
Зачем. Это не имеет смысла.
Аноним 12/05/16 Чтв 01:01:15 #419 №740994 
>>740985
Это ты что-то переопределил.
Вот тебе чисто открытая вкладка.
Аноним 12/05/16 Чтв 01:01:31 #420 №740995 
14630040912680.jpg
>>740994
Отклеилось.
Аноним 12/05/16 Чтв 01:05:23 #421 №740996 
14630043237050.jpg
14630043237051.jpg
>>740995
>>740987
Еще раз, логика в том, что при вызове метода объекта, если не указана прямая ссылка, то обращение идет к prototype. Только в случае прямого присвоения (в фабрике) не будет цепочки прототипов. Но будет оверхед на ссылку (4 байта, вроде бы).
Аноним 12/05/16 Чтв 01:06:37 #422 №740997 
14630043974690.jpg
>>740994
>>740995
Забираю свои слова обратно. В ноде тоже наоборот.
Тогда я не знаю в чем дело.
Может в хромиуме.
Аноним 12/05/16 Чтв 01:08:01 #423 №740998 
>>740996
Так оверхед по памяти же, а тут замеряется время.

Аноним 12/05/16 Чтв 01:08:10 #424 №740999 
14630044907040.png
Не так сильно, но все же да.
Аноним 12/05/16 Чтв 01:09:45 #425 №741002 
>>740999
В теперь ноде проверь. там тест честнее чисто логически.
Аноним 12/05/16 Чтв 01:10:21 #426 №741003 
Почему let так странно работает в заголовке цикла? В других языках эта переменная тоже новая каждый проход? Как теперь ловить новичков на собеседованиях.

for (let i = 0; i < 5; i++) {
setTimeout(()=> console.log(i), i*10); // 0, 1, 2, 3, 4
}
Аноним 12/05/16 Чтв 01:11:20 #427 №741004 
14630046801730.jpg
>>740998
В случае фабрики - да, поэтому фабрика лучше, если объектов меньше 50 тысяч и быстродействие важнее памяти.
В случае же чистого быстродействия без создания объекта прямая ссылка, естественно, выиграет.
Аноним 12/05/16 Чтв 01:12:10 #428 №741006 
14630047302560.jpg
>>740997
>>741002
>>740999
Алсо, если запускать не из консоли, а из подключенного скрипта, то Прототип снова быстрее.
Аноним 12/05/16 Чтв 01:13:49 #429 №741007 
>>741004
Ты мне рассказываешь какие-то очевидные вещи. Я это все и так знаю.

Но вот скажи почему
Тут так >>740995
А тут >>740997
И тут >>741006
иначе?
Все эти тесты мои. Все одинаковые.

Аноним 12/05/16 Чтв 01:14:34 #430 №741008 
>>741007
Оптимизация на уровне VM, очевидно.
Аноним 12/05/16 Чтв 01:14:48 #431 №741009 
Анон, а что в реакте в качестве key использовать, когда массив перебираешь? Читал, что индекс это плохо
Аноним 12/05/16 Чтв 01:15:17 #432 №741010 
>>741003
Она не новая каждый проход. ее область видимости ограничена блоком.

Это тебя ловить надо.
Аноним 12/05/16 Чтв 01:15:44 #433 №741011 
>>741010
>Она не новая каждый проход
проверь сам, еба
Аноним 12/05/16 Чтв 01:18:40 #434 №741015 
14630051208940.jpg
>>741011
Аноним 12/05/16 Чтв 01:21:41 #435 №741018 
>>741015
ты вообще не понял о чем я говорю.
каждый проход цикла i получается новая.
нельзя ошибочно сослаться на её устаревшее значение в асинхронной функции как в случае с var.
Аноним 12/05/16 Чтв 01:24:48 #436 №741020 
14630054885810.jpg
>>741018
Потому что в случае с var в момент вызова твоей отложенной по таймауту функции твоя переменная уже изменена. Там нет никакой ошибки. Ошибка в твоем не понимани как замыкаются области видимости.


Аноним 12/05/16 Чтв 03:54:39 #437 №741041 
14630144795900.jpg
Начал изучать JS по сайту learn.javascript.ru , остановился на одном задании и никак не мог его решить, посмотрел в ответ на схему решения, а до этого попытался понять логику и составить какой-то алгоритм решения "на бумаге", получилось что-то такое:

1) Создать интервал (Number) от 2 до 10, с помощью цикла for:
for (Number = 2; Number <= 10; Number++)

2) Создать второй интервал чисел от 2 до Number-1 c помощью цикла for:
for (i = 2; i<= Number-1; i++)

3) Как-то с помощью этих циклов начать делить Number на i и проверять условие:
if (Number % i !== 0) т.е "условие выполняется если Number не делится на i без остатка"
и выводятся alert(Number) т.е так называемые простые числа.


В схеме из решения написано "проверить, делится ли число i на какое-либо из чисел до него".
И я это просто осмыслить не могу немного, как это работает вообще и как это понять.
Всегда была проблема (в школе на информатике) с циклами и я не могу представить одновременную работу двух циклов сразу да и вообще в представлении каких-то логических штук у меня вечно проблемы, нихуя не понимаю, зато другие это решают без проблем а я выдумываю что-то непонятное.
Аноним 12/05/16 Чтв 03:56:00 #438 №741042 
>>741041
дополнение:

т.е мне решение здесь не важно, хочу понять именно логику и ОСОЗНАТЬ решение.
Аноним 12/05/16 Чтв 04:02:44 #439 №741044 
>>741042
Если есть сложности с пониманием алгоритма, прогони его вручную на бумаге.
Типа вот у нас есть Number=2 из первого цикла, второй цикл будет проходит от 2 до 1, то есть ни одного раза; Number=3, i от 2 до 2, делится на 2? нет, значит простое и так далее.
Аноним 12/05/16 Чтв 04:18:45 #440 №741047 
>>741044
Ну вот я вроде примерно так и прогонял. Сейчас через Отладчик пытался прогонять, криво получается у меня это =D

Код такой, но почему-то условие не выполняется и alert не выводит, выводит просто все числа.

var Number = 2;
var i = 1;
for (; Number <= 10; Number++) {
for (; i < Number; i++) {
if (Number % i !== 0) {
alert(Number);
}
}
}



Аноним 12/05/16 Чтв 04:43:32 #441 №741050 
>>741047
дополнение:

кстати при таких фигурных скобках второй цикл возвращается к первому, а не переходит на if (только потом уже начинает переходить) и этого я тоже не пойму, почему так?
Аноним 12/05/16 Чтв 05:22:19 #442 №741053 
>>741047
>((Number % i) !== 0)
?
Аноним 12/05/16 Чтв 05:26:57 #443 №741056 
>>741053
типо если Number делится на i с остатком, то условие выполняется, я так понял.
Аноним 12/05/16 Чтв 07:45:29 #444 №741089 
Посоны напомните сайт где на js даются задачки, сначала суперпростые а потом сложнее, 10 уровней вроде.
Аноним 12/05/16 Чтв 08:41:37 #445 №741109 
>>740938
>while (true);

>почему интерпретатор ругается на Break?
А ты не пробовал читать, что имено он тебе говорит?
Аноним 12/05/16 Чтв 09:01:46 #446 №741113 
>>741089
http://www.codewars.com/ ?
Аноним 12/05/16 Чтв 09:08:02 #447 №741118 
>>741113
Оно самое!
Спасибо, анон, да пребудет код твой идеально структурирован и документирован.
Аноним 12/05/16 Чтв 09:29:42 #448 №741128 
>>741047
Гугли решето эратосфена.
Когда-то задали подобное на практичной и пока у всех были пиздецкие нагрузки на обработку тысяч чисел, мне один зракомый сказал о решете
Аноним 12/05/16 Чтв 09:47:48 #449 №741145 
>>741113
Клёвая штука с утра под кофе проснуться. Там задачки постоянно новые генерятся или фиксированный стак?
Аноним 12/05/16 Чтв 10:01:12 #450 №741155 
>>741047
Бля, да не называй ты переменные с большой буквы.
Аноним 12/05/16 Чтв 10:15:17 #451 №741163 
>>741009
Бамп
Аноним 12/05/16 Чтв 10:16:17 #452 №741165 
>>741009
>массив перебираешь? Читал, что индекс это плохо
Массив перебирать по индексу это вполне ок, map и forEach в любом случае перебирают по индексу.
Аноним 12/05/16 Чтв 10:17:24 #453 №741167 
>>741163
У меня обычно всегда есть id, т.к. это обычно объекты с каким-то данными. Айдишник надежней всего, очевидно.
Аноним 12/05/16 Чтв 10:22:20 #454 №741175 
14630377407020.jpg
>>741165
Имел ввиду использовать индекс как react id
Аноним 12/05/16 Чтв 10:23:32 #455 №741176 
>>741175
>>741167
Аноним 12/05/16 Чтв 10:25:22 #456 №741178 
>>741175
Хм, могу попробовать с сервера еще и id присылать, спасибо
Аноним 12/05/16 Чтв 10:25:38 #457 №741179 
>>741178
>>741167
Аноним 12/05/16 Чтв 10:27:28 #458 №741181 
Как правильней, объявлять 10+ переменных или засунуть все в объект?
Аноним 12/05/16 Чтв 10:28:34 #459 №741183 
>>741181
Если переменные относятся к одной сущности, то проще выделить им один неймспейс в виде объекта.
Аноним 12/05/16 Чтв 10:30:32 #460 №741185 
>>741175
Да конечно можно индекс, какая разница. Тебе нужен уникальный идентификатор, просто обычно данные редактируются и потом сабмитятся обратно на сервер, поэтому всегда есть айди. Если у тебя просто шоу каких-то фиксированных данных, то можешь по индексу.
Аноним 12/05/16 Чтв 10:33:03 #461 №741191 
Использовал индекс и закономерно соснул, поэтому и спрашивал
Аноним 12/05/16 Чтв 11:39:12 #462 №741234 
двачик почему когда я вывожу ключи объекта в переменную то вычисление не работает. А если не вывожу пише ну прямую obj[key] то работает

http://jsbin.com/bakamitozu/edit?js,console
Аноним 12/05/16 Чтв 11:44:37 #463 №741239 
>>741155
Он просто не знает, что Number - встроенный объект, который не следует перезаписывать.
Аноним 12/05/16 Чтв 11:47:47 #464 №741241 
Народ, а на какую кату/дан с codewars джун тянет? Или нет такого соответствия? Просто интересно, увидел у вас выше ссылку на сайт, зарегался только что, начал решать задачки.
Аноним 12/05/16 Чтв 11:52:55 #465 №741244 
>>741239
Даже если бы не было встроенного объекта. По соглашениям с большой буквы называют функции-конструкторы, а не обычные переменные.
Аноним 12/05/16 Чтв 11:53:06 #466 №741245 
>>741234
ну надо полагать потому что в неправльном случае ты меняешь переменную, а результатом выводишь изначальный объект. Работает-то он правильно. наверно стоит после умножения добавить obj[key] = objKey ?
Аноним 12/05/16 Чтв 11:55:50 #467 №741247 
>>741244
Видно же, что он не с нуля в js пришёл, а из другого языка. Думаю, это C#, ученный по урокам Unity.
Аноним 12/05/16 Чтв 11:56:20 #468 №741248 
>>741245
Да работает, на нахуя опять присваивать тем более наоборот. obj[key] = objKey;

Когда я в самом начали контекст свойства объекта присвоил в переменную мне же логичней и удобней все операции совершать над переменной?
Аноним 12/05/16 Чтв 11:57:38 #469 №741249 
>>741248
переменная твоя должна быть хотя бы глобальной, или вообще нахуй ее убирай.
Аноним 12/05/16 Чтв 12:09:10 #470 №741251 
14630441507370.png
>>741041
Аноним 12/05/16 Чтв 12:49:52 #471 №741282 
>>741248
>удобней все операции совершать над переменной?
Это если они мутабельная и все операции твои соответствующие.

Ты же там сначала делаешь objKey = obj[key], а потом objKey = ... Очевидно, что ты изменяешь значение переменной objKey, а не элемета массива.
Это тебе не си, где можно было бы
int z = 0;
int i = &z;
i = 5;
Аноним 12/05/16 Чтв 12:50:33 #472 №741284 
>>741282
э, ну выпонели, там тест * звёздочки.
Аноним 12/05/16 Чтв 13:53:34 #473 №741343 
>>741241
Бамп
Аноним 12/05/16 Чтв 14:28:11 #474 №741367 
>>741343
Никакого соответствия нет. Там даны разве появились? Хотет.
Аноним 12/05/16 Чтв 14:44:11 #475 №741383 
14630534513550.png
>>741367
Аноним 12/05/16 Чтв 15:43:24 #476 №741407 
14630570047310.jpg
>>741383
ну наверно так
Аноним 12/05/16 Чтв 15:50:25 #477 №741411 
>>741407
Лол, там 5-6 кью за час под чаек набивается. Сегодня зарегался уже набил. А вот задачки 4 и выше уже потяжелее кажутся. Так что скорее с него джун начинается
Аноним 12/05/16 Чтв 15:56:22 #478 №741420 
>>741407
Ох если бы.
Решаю 4-5 кью задачки, через полгода планирую начать искать место даже не джуна, а стажера хотя бы.
Аноним 12/05/16 Чтв 16:03:04 #479 №741431 
>>741420
нихуя у тебя свободного времени полгода
Аноним 12/05/16 Чтв 16:17:40 #480 №741447 
14630590606760.png
>>741411
>>741420
>>741241

90% там задачек на матан, и логику которая вообще никакого отношения к продакшену и джунам не имеет.

Лучше борду(еще одну) запилите и то больше пользы будет чем от этих дрочилен на цифры.



Аноним 12/05/16 Чтв 16:29:01 #481 №741452 
14630597412420.png
>>741447
Ну я на кодварс подзабил пока сам. С ванили хочу соскочить, сейчас жквери изучаю, затем фреймворки начать курить с реакта.
>>741431
Да ты охуел, свободного. Я пашу на заводе по 12 часов.
Аноним 12/05/16 Чтв 16:34:54 #482 №741455 
>>741447
в "мы вам перезвоним" скинули кстати
https://medium.com/@evnowandforever/f-you-i-quit-hiring-is-broken-bb8f3a48d324#.q2khdvree

а так спасибо за совет, но думаю все-равно понемногу решать, а то вот на интервью какая-нибудь лажа как тому телу попадется и пиздец
Аноним 12/05/16 Чтв 17:12:47 #483 №741494 
Как отменить предыдущий ajax-запрос (или хотя бы не обрабатывать ответ сервера) если отправлен новый? ==> if(ajax){
ajax.abort();
}

не помогает, всё равно отправляется несколько
Аноним 12/05/16 Чтв 17:15:15 #484 №741497 
14630625152510.png
>>741494
Суть такая: что отправка поиска кнопкой срабатывает дважды
Аноним 12/05/16 Чтв 17:21:07 #485 №741506 
>>741251
да я не код просил...
Аноним 12/05/16 Чтв 17:30:39 #486 №741512 
>>741494
Как можно отменить запрос, который уже отправлен? Можно только отменить колбек, ждущий ответа от сервера на этот запрос.
Аноним 12/05/16 Чтв 18:19:47 #487 №741565 
>>737862 (OP)
Работаю простым HTML/CSS верстальщиком. Параллельно учу JS. Читаю уже второй учебник. Синтаксис более менее освоил. Но не совсем понятно, что конкретно из себя представляет работа фронт-енд разработчика (да и вообще разработка сайта в целом). Допустим, есть у меня адаптивный макет, вот что с ним дальше делать?
Аноним 12/05/16 Чтв 18:23:51 #488 №741568 
>>741565
>адаптивный макет
Настоящий JS-кодер поворачивается и уходит, едва заслышав хотя бы одно слово из этих двух. Вёрстка - работа девочек-студенток, а не фронтенд-разработчика.
Аноним 12/05/16 Чтв 18:26:38 #489 №741572 
>>741568
Понял-понял. Девочка-студентка сверстала макет, дальше отдает его настоящему фронтенд-разработчику. В чем заключается работа фронтендера? Опиши дальнейшие этапы разработки или подскажи, где самому почитать об этом в деталях (гугл не помогает)?
Аноним 12/05/16 Чтв 18:31:56 #490 №741578 
>>741572
Фронтенд разработчик должен с полуслова понимать бэкенд-разработчика и обеспечивать работу логики клиентской стороны.
Аноним 12/05/16 Чтв 18:32:13 #491 №741579 
>>741572
Из картинки делает такие штуки:
https://poloniex.com/exchange
Аноним 12/05/16 Чтв 18:32:18 #492 №741580 
>>741497
Дисабли кнопку, енабли в при исполнении запроса.
Аноним 12/05/16 Чтв 18:32:32 #493 №741582 
>>741568
Tell me more. Чем же тогда фронтендер занимается, если не работает с домом?
Аноним 12/05/16 Чтв 18:33:48 #494 №741584 
>>741582
Работает с виртуальным домом.
Аноним 12/05/16 Чтв 18:35:34 #495 №741586 
>>741582
Он может работать с DOM'ом, но только из JS. Верстальщик делает окно чата на html и пишет стили для div-мессагов, а фронтент-разработчик пишет логику добавления новых сообщений, подцепляя описанные css-стили из кода.
Аноним 12/05/16 Чтв 18:41:21 #496 №741590 
>>741586
Ты конечно прав, в идеальном мире.
На деле же верстальщик городит какую-то хуйню, так как он не шарит как в дальнейшем логика будет представлена, поэтому большую часть стилей и разметки фронт все равно потом переделывает/дописывает под себя.
Аноним 12/05/16 Чтв 18:42:41 #497 №741591 
>>741586
Если фронтендер не может работать с домом, а девочка-студентка не умеет работать с домом из ЖС, то кто верстает страницы на реакте?
Аноним 12/05/16 Чтв 18:44:44 #498 №741595 
14630678845800.jpg
>>741591
Аноним 12/05/16 Чтв 18:48:25 #499 №741601 
Я как раз вовремя. Пацаны, до какого уровня нужно ДжС недоджуну подтянуть верстку? флексы, гриды, адаптивность, хуйня-муйня
Аноним 12/05/16 Чтв 18:49:22 #500 №741602 
Ананасы, есть 2 дня на подготовку к собеседованию мидл-фулстек макаки, посоветуйте исходя их этого какую-нибудь книгу, где максимально сжато но в то же время глубоко и содержательно изложены главные аспекты и тонкости языка, желательно на английском. С js знаком довольно неплохо, но работаю в основном однотипно в контексте angular/jquery, поэтому интересуют именно тонкости, что могут спрашивать на mid/senior fullstack.
Аноним 12/05/16 Чтв 18:51:05 #501 №741606 
>>741602
монгу и ноду читай, фул-стак-оверфлоу ты мамкин
Аноним 12/05/16 Чтв 18:52:07 #502 №741609 
>>741602
У кореша на должность сеньёра спрашивают результат следующих сложений:
[]+[]
{}+[]
[]+{}
{}+{}
Аноним 12/05/16 Чтв 18:53:48 #503 №741614 
>>741606
>>741609
Няши, ну не тральте. Что почитать-то лучше?
Аноним 12/05/16 Чтв 18:54:26 #504 №741615 
>>741609
лол, тут недоджуны это знают
Аноним 12/05/16 Чтв 18:58:18 #505 №741618 
>>741615
>лол, тут недоджуны это знают
Я не знаю и знать не хочу. Это легаси-поведение, а сами эти операции - плохой паттерн.
Аноним 12/05/16 Чтв 19:01:07 #506 №741622 
>>741609
запиздуй это в сонсоль, кек
++[[]][+[]]+[+[]]
Аноним 12/05/16 Чтв 19:03:09 #507 №741625 
>>741601
Чем ниже, тем лучше. ЖС погромист вообще не должен знать верстку, этим девочки-студенки занимаются. Если ты даже не догадываешься что такое <div> или text-transform, значит ты об это говно не шкварился и тебя можно брать на работу. Ну а если что-то верстал в своей жизни, то ты просто ВЕРСТАЛЬЩИК, таких червей-пидоров погромистоми не берут.
Аноним 12/05/16 Чтв 19:05:20 #508 №741627 
>>741625
кек
Аноним 12/05/16 Чтв 19:06:05 #509 №741629 
>>741627
а ещё никогда не говори, что писал на php и через силу смейся над $ в начале переменных.
Аноним 12/05/16 Чтв 19:08:28 #510 №741630 
>>741625
Упитанно.
Аноним 12/05/16 Чтв 19:08:37 #511 №741631 
>>741622
>++[[]][+[]]+[+[]]
давай еще че-нибудь ибо это было просто
Аноним 12/05/16 Чтв 19:10:21 #512 №741633 
>>741629
кстати в начале переменных еще погромисты на jq ставят знак доллара. Венгерская нотация или хз как оно называется, мол это переменные для jq. Хотя по венгерской там вроде типы указывают в начале
Аноним 12/05/16 Чтв 19:12:26 #513 №741635 
>>741633
Ну я тоже так делаю, сам додумался, кстати. Чтобы знать, где простой дом-элемент, а где обёрнутый в jquery.
Аноним 12/05/16 Чтв 19:14:07 #514 №741638 
Нихуя не понял суть getInitialState в реакте. Фидл с примером:

https://jsfiddle.net/tylermcginnis/du72b5L2/

Здесь же по сути устанавливается стейт, почему тогда метод называется get, а не set?
Аноним 12/05/16 Чтв 19:15:22 #515 №741639 
>>741638
Создай отдельный тред же. Здесь всем посрать на реакт и прочее хипстерское говно.
Аноним 12/05/16 Чтв 19:16:40 #516 №741640 
>>741633
> начале переменн
в ангуляре этой хуеты полно
Аноним 12/05/16 Чтв 19:51:53 #517 №741667 
П Е Р Е К О Т
Е https://2ch.hk/pr/res/741666.html
Р https://2ch.hk/pr/res/741666.html
Е https://2ch.hk/pr/res/741666.html
К https://2ch.hk/pr/res/741666.html
О https://2ch.hk/pr/res/741666.html
Т https://2ch.hk/pr/res/741666.html
Аноним 12/05/16 Чтв 21:55:20 #518 №741781 
/e/
Аноним 12/05/16 Чтв 22:21:31 #519 №741800 
>>741568
Если твой скилл верстки ограничивается созданием простенького макетика, то не значит что другие не могут делать что-то годное. В верстке потолок умений намного выше, чем все думают.
comments powered by Disqus

Отзывы и предложения