JSer.info #328 - Firefox 53がリリースされました。
CSS Masksやdisplay: flow-root
のサポート、<video>
と<audio>
のデフォルトUIの変更、URLSearchParamsの仕様追従、auxclick
イベントの対応などが行われています。
また、ES2015のFunction.nameの仕様追従が行われました。
Firefox52までは次のように無名関数はfn.name
がundefinedとなっていました。
var foo = function() {};
console.log(foo.name); // undefined
Firefox53からは、無名関数やArrow Functionに対してもコンテキストに基づいた名前がつくようになりました。
var foo = function() {};
console.log(foo.name); // "foo"
const bar = () => {}
console.log(bar.name); // "bar"
Node.jsのHTML/DOM実装であるjsdom 10.0.0がリリースされました。
Node.js 5.x以下はサポートしないことや基本的な使い方が大きく変更されています。
今までは、jsdom.env
というメソッドで初期化を行っていました。
var jsdom = require("jsdom");
jsdom.env(
`<!DOCTYPE html><p>Hello world</p>`,
function (err, window) {
console.log(window.document.querySelector("p").textContent); // "Hello world"
}
);
10.0.0からは、JSDOMコンストラクタをnewすることで、dom
オブジェクト経由でwindow
を手に入れることができるようになりました。
const { JSDOM } = require("jsdom");
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
console.log(dom.window.document.querySelector("p").textContent); // "Hello world"
その他にもScript
やCookieJar
の追加、omitJsdomErrors
をomitJSDOMErrors
へリネーム、dir
の対応改善、window.postMessage()
のoriginチェックを修正などが含まれています。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Release Notes for Safari Technology Preview 28 | WebKit
webkit.org/blog/7516/release-notes-for-safari-technology-preview-28/
Safari Technology Preview Release 28リリース。
バックグラウンドタブの処理を抑制、クロスオリジン iframeのrequestAnimationFrame
を30fpsに制限するなど。
WebCryptoでAES-CTRをサポート
Firefox — Notes (53.0) — Mozilla
www.mozilla.org/en-US/firefox/53.0/releasenotes/
Firefox 53.0リリース。
ES2015のFunction.nameの仕様追従
var f = function() {};f.name; // "f"
、auxclick
イベントの対応、display: flow-root
の対応など
- Firefox 53 for developers - Mozilla | MDN
- MozillaZine.jp » Blog Archive » Firefox 53 がリリースされた
- Firefox 53: Quantum Compositor, Compact Themes, CSS Masks, and More ★ Mozilla Hacks – the Web developer blog
- Firefox 53 サイト互換性情報 | Firefox サイト互換性情報
New in Chrome 58 | Web | Google Developers
developers.google.com/web/updates/2017/04/nic58
Chrome 58リリース。
IndexedDB 2.0、display: flow-root
のサポートなど
jsdom/Changelog.md at 10.0.0 · tmpvar/jsdom
github.com/tmpvar/jsdom/blob/10.0.0/Changelog.md
jsdom 10.0.0リリース。
Node.js <=5のサポートを終了、基本的な使い方を変更(new JSDOM(html)
など)、Script
の追加。
omitJsdomErrors
をomitJSDOMErrors
へリネーム、dir
の対応改善、window.postMessage()
のoriginチェックを修正など
アーティクル
Async iterators and generators - JakeArchibald.com
jakearchibald.com/2017/async-iterators-and-generators/
Async iteratorについての解説
A Vue.js introduction for people who know just enough jQuery to get by
Vue.jsを使ってTwitterの投稿画面のようなダイアログ表示を作成するチュートリアル。
機能毎に実装を進めていて、データバインディングやメソッドの呼び出し、アニメーションなどについて解説してる。
FRESH! Web パフォーマンス改善 〜クライアントサイド編〜 | CyberAgent Developers Blog | サイバーエージェント デベロッパーズブログ
developers.cyberagent.co.jp/blog/archives/6057/
パフォーマンス改善についての解説記事。
Service Workerを使ったキャッシュ、Intersection Observerを使ったlazy load、SVGスプライトをやめて個別にSVGを読み込むなど。
脱jQueryのためにしたこと - Qiita
qiita.com/clockmaker/items/50c3a9772e36a95ae500
jQueryで書かれたサイトを標準のAPIやVue.jsを使って書き換えていく話
Visual Testing — the pragmatic way to test UIs – Chroma
blog.hichroma.com/visual-testing-the-pragmatic-way-to-test-uis-18c8da617ecf
コンポーネントのビジュアルテストについて。
スナップショットテスト、ReactStoryBookなどを使ったUI component explorersのアプローチなどについて
How to build a math expression tokenizer using JavaScript (or any other language)
medium.freecodecamp.com/how-to-build-a-math-expression-tokenizer-using-javascript-3638d4e5fbe9
JavaScriptでトークナイザーを書いていくチュートリアル
JavaScript Testing Tool Showdown: Sinon.js vs testdouble.js — SitePoint
www.sitepoint.com/javascript-testing-tool-showdown-sinon-js-vs-testdouble-js/
Sinon.jsとtestdouble.jsの比較記事
React Fiber現状確認 - blog.koba04.com
blog.koba04.com/post/2017/04/25/a-state-of-react-fiber/
React v16から入る予定のFiberアーキテクチャについて。
ReactコアのReconciliationを置き換えるもので、今までは作業単位が1つのツリーだったものを、Filberという作業単位で行うようにする仕組みの解説。
また、v16以降に入るError Boundaryなどの変更について。
スライド、動画関係
Browser animation in 2017 by birtles
slides.com/birtles/browser-animation-2017
CSS Animations/Web Animationsについてのスライド。
Web Animations APIやフレームアニメーションについて、またその実装状況にについて
abouthiroppy/node8
abouthiroppy.github.io/slides/node8/
5月30日にリリース予定のNode.js 8.0.0についてのスライド。
Node.js 8.0.0ではV8の新しいコンパイラパイプラインが入る予定。
またNode.js 7.x ~ 8.0.0で入る予定の変更点について。
サイト、サービス、ドキュメント
ericvicenti/intro-to-react: A Hands-On Walkthrough of your first React Web App
github.com/ericvicenti/intro-to-react
Reactについて学ぶワークショップの資料と動画
Get Started With Analyzing Runtime Performance | Web | Google Developers
developers.google.com/web/tools/chrome-devtools/evaluate-performance/
Chromeの開発者ツールを使ったパフォーマンス解析のチュートリアル
WCAG 2.0 達成方法集
waic.jp/docs/WCAG-TECHS/Overview.html
Techniques for WCAG 2.0の翻訳
State Architecture Patterns in React: A Review – Skyler Nelson – Medium
medium.com/@skylernelson_64801/state-architecture-patterns-in-react-a-review-df02c1e193c6
Reactでよく見るステート管理パターンについて。
ナイーブな階層構造、上から下へStateを渡すTop-Heavy Architecture(Central State)、Pub/Subなどについて
Introducing a faster BBC News front page | Wildly Inaccurate
wildlyinaccurate.com/introducing-a-faster-bbc-news-front-page
BBC Newsのパフォーマンス改善について。
SpeedCurveを使って計測を行い、画像遅延ロード、Reactをサーバサイドレンダリングのみに利用してる。
まだ改善の1段階で、Reactをブラウザ側で動かしたときにモバイルだと重たい問題などが課題となってる(そのためサーバサイドレンダリングのみになっている)
ソフトウェア、ツール、ライブラリ関係
chadhietala/babel-plugin-debug-macros
github.com/chadhietala/babel-plugin-debug-macros/
Babelを使ったHygenic Macroのプラグイン。
assertやdeprecate、warning、feature flagなどのマクロ化したもの
aweary/tinytime: A straightforward time and time formatter in <1kb
小さなstrtime的なライブラリ。 時間フォーマット