← All posts tagged JS

JS немного о bind в react:

Tldr. Если бесит муть вида:
this.makesNoFuckingSense = this.makesNoFuckingSense.bind(this)
...сейчас можно пробовать: npmjs.com
Рано или поздно можно будет так: github.com

Decorators offer a convenient declarative syntax to modify the shape of class declarations: tc39.github.io (stage 2)
This proposal aims to provide a declarative mechanism for specifying fields intended to be placed on classes: tc39.github.io (stage 1)

Про general process for making changes to the specification если что: tc39.github.io
доклады оптимизации JS статьи Вчерашний moscowjs выложили, жаль что одним куском, там интересный четвертый доклад про оптимизации и бенчмаркинг: youtube.com

Слайды: docs.google.com

Баг, про который говорится в докладе ( bugs.chromium.org ), до сих пор в силе, несмотря на добавленные в 56-й версии оптимизации:
Functions that contain a compound let assignment (Optimized as of Chrome 56 / V8 5.6!)

Там же рекомендуют глянуть youtube.com (не смотрел пока)

Сегодня же, кстати, интереснейший перевод про сборку мусора выложили: medium.com

Пара related ссылок от себя:
Optimization killers: github.com (хотя русский перевод на хабре есть, лучше читать на ангельском, там обновляется)
По её мотивам была такая любопытная хрень, ныне неподдерживаемая похоже — npmjs.com

Ну и кстати вакансия у ребят там очень интересная: gist.github.com
JS holywar medium.com => От этой статьи совершенно внезапно разгорелся срач о точках с запятой в js. О самих точках писать совершенно глупо, а вот интересных ссылок по результатам есть:

github.com — эпичнейшая история из 12-го года
brendaneich.com — мнение Айка по этому поводу
tc39.github.io — раздел из спецификации (это последний драфт, по сравнению с ecma-international.org по сути мало что изменилось)
news.ycombinator.com — опрос, в топике тоже есть любопытные ссылки и высказывания, результаты — 413 за; 44 против
programmers.stackexchange.com — здравая (на мой взгляд) аргументация против

No semicolons were harmed in the making of this article

расследования скандалы JS интриги Touch Events vs Pointer Events:

Touch Events == W3C Recommendation 10 October 2013
Doug Schepers, W3C
Sangwhan Moon, Opera Software ASA
Matt Brubeck, Mozilla
Arthur Barstow, Nokia

Pointer Events == W3C Recommendation 24 February 2015
Jacob Rossi, Microsoft Corporation
Matt Brubeck, Mozilla


arstechnica.com :
There are two competing specifications for handling touch input in the browser.
The first, Touch Events, was devised by Apple and integrated into WebKit.
In response to this, Microsoft devised a similar but different specification, which it called Pointer Events.
Developers on the Blink browser engine, the core component that powers both Google's Chrome browser and Opera, announced Friday that they're dropping support for the Pointer Events specification originally devised by Microsoft.


гугль передумал:

bugs.chromium.org : Thanks for all the feedback everyone. We've heard it loud and clear and are working on a plan to hopefully allow us to ship pointer events in Chrome

theregister.co.uk :
Based on the feedback we’ve received, and the productive collaboration in the Pointer Events working group, I now believe we should implement this API in Blink... we’ve received a steady stream of feedback from web developers, framework authors and other browser vendors indicating that they see Pointer Events as a highly valuable addition to the platform.
The decision is significant because it shows willingness to implement W3C standards with or without Apple, at least in a case like this one where there is widespread developer support.

arstechnica.com :
In the meantime, jQuery and other Pointer Events supporters recommend the use of the Pointer Events Polyfill, a JavaScript library that for the most part enables the use of Pointer Events code even in those browsers that lack native support: github.com

просто блядство, скажу я вам.

JS tools gitlab.com
Is this a Babel rip-off?
Yes – insofar as it's a tool that can transform ES2015 into JavaScript that will run today. The key differences:
Bublé limits itself to ES2015 that can be transpiled to compact, performant ES5
There are no plugins or presets – less extensibility, but also zero configuration
It's comparatively tiny and many times faster