Japan
このブログでは、Google から開発者のみなさま向けの情報をいち早くお届けします。
ブラウザーにおける ES6 と ES7 について
2016年6月2日木曜日
[この記事は Seth Thompson、プロダクト マネージャーおよび ECMAScript ESsayist(ES エッセイスト)による Chromium Blog の記事 "
ES6 & ES7 in the browser
" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]
JavaScript は進化し続けるプログラミング言語で、ブラウザ ベンダー、デベロッパー、コミュニティ メンバーからなる委員会によって時間をかけて標準化されています。ここ 2 年間で、この委員会は JavaScript 史上最大のアップデートとなる ES6 と、更新頻度が年次になって初めてのアップデートとなる ES7 を発表しました。この 2 つのバージョンには合計で何百もの新機能が追加されており、デベロッパーは豊かな表現力を持つ簡潔で高速なアプリケーションを書けるようになります。V8 JavaScript チームは長い間、設計、仕様の策定、実装という作業に協力して取り組んできました。その結果、言語サポートの大きなマイルストーンとなる地点に到達しました。今日現在の Chrome Canary では、ES6 と ES7 の両方が動作するようになっています。これは、Chrome 52 ですべてのユーザーに提供される予定です。
Chromium での ES6 と ES7 のサポートによって、JavaScript デベロッパーが長らく求めていた機能が提供されます。他のプログラミング言語には標準であっても、ウェブの世界には存在しなかったもので、具体的には、一般的なプログラミング パターンを簡略化する方法、コードを書きやすくする方法、JavaScript の動作を低レベルでカスタマイズする方法などです。たとえば、
クラス
によってオブジェクト指向プログラムの記述が簡単になり、JavaScript のビルトイン オブジェクトを安全に
拡張
できるようにもなります。
アロー関数
、
デフォルト パラメータ
、
配列関連のユーティリティ メソッド
によって慣用的なプログラムが簡単に書けるようになり、プロジェクト間でボイラープレート コードのコピー & ペーストを行う必要性が少なくなります。JavaScript の非同期実行フローやネストされたコールバックを読み解くのは非常に難しいことがあります。そのため、ES6 で
Promise
や、
イテレータとジェネレータ
が導入されました。これによって非同期コードがシンプルになり、制御フローの表現力が向上して、バグのないコードを簡単に書けるようになっています。高度なデベロッパーは、
Proxy
や
よく使うシンボル
のような強力な機能を活用して、言語の動作がアプリケーションのニーズに適したものになるようにカスタマイズすることもできます。
ウェブサイトでこのような JavaScript の新機能をフル活用するには、複数のブラウザが最新仕様をサポートする必要があります。幸いにも、クロスブラウザのサポートはここ数か月間で急速に改善されています。すべてのモダン ブラウザの最新の開発バージョンでは、ES6 の 90% 以上がサポートされています。Polyfill やトランスパイルによって古いブラウザをサポートすることもできます。最近、
<script type="module">
タグによって HTML からの JavaScript モジュールの読み込みが標準化されたことを考えると、今後、採用は拡大し続けることでしょう。Chromium は既にこの新しいタグの実装に着手しており、モジュールのサポートは
近日中に提供
する予定です。これによって、ES6 や ES7 のコードでウェブサイトを記述し、稼働させることがさらに簡単になります。
JavaScript 標準プロセスについてや、適切な tail call などの検討中の新機能、仕様の適合性についての技術的な詳細を知りたい方は、
V8 ブログ
をご覧ください。最新の JavaScript 機能や継続的に行われているパフォーマンスの最適化についても報告しますので、このページも随時ご確認ください。
Posted by
Eiji Kitamura - Developer Relations Team
コメントを投稿
ラベル
#hack4jp
3
Addy Osmani
1
ADK
2
AdMob
1
ALPN
1
AMP
2
Analytics
4
Andorid
6
Android
145
Android Auto
1
Android Design Support Library
1
Android Developer Story
2
Android N
2
Android Studio
12
Android Support Library
3
Android TV
7
Android Wear
20
androidmarket
3
AngularJS
2
API
20
APIExpert
45
app engine
21
App Indexing
5
App Invites
5
AppCompat
2
Apps Script
6
aprilfool
3
ArtTech
1
Audio
2
Auth Code
1
Authentication
2
AuthSub
2
Autotrack
1
Beacons
5
BigQuery
6
BLE
4
Blink
1
blogger
1
Brillo
1
Brotli
1
Calendar
1
Cardboard
3
Career
1
Case Study
1
chrome
52
Chrome Custom Tab
1
chrome extension
2
Chrome for Android
1
Chrome for iOS
1
Chromecast
6
chromewebstore
6
Chromium
4
ClientLogin
3
Cloud
8
Cloud Test Lab
1
CocoaPods
1
codejam
5
codelab
2
compute engine
3
Dart
2
DataCenter
1
Deep Learning
1
Demo Party
1
Design Sprint
3
DesignBytes
1
DevArt
3
DevBytes
6
Developer
14
Developer Console
3
Developer Preview
2
Developer Relations
2
DevFest
6
DevFestX
3
devtools
3
DirectShare
1
Doodle
1
DoubleClick
4
Doze モード
1
drive
2
EarlGrey
1
Easter Egg
1
ECMAScript 2015
1
Eddystone
2
egypt
1
English
2
ES2015
1
ES2016
1
ES6
2
ES7
1
Firebase
6
font
2
game
14
GDD11JP
56
GDD2010JP
23
GDE
2
GDG
10
Geo
22
Gingerbread
1
GLIDE
5
Gmail
1
Go
1
golang
4
goo.gl
1
Google
5
Google Apps
1
Google Cast
6
Google Cloud Messaging
8
Google Cloud Platform
5
Google Developer Experts
2
Google Developers Academy
1
Google Developers live
5
Google Developers Summit
1
Google Drive
2
Google Fit
2
Google for Work
1
Google Maps
27
Google Play
26
Google Play Game Services
6
Google Play Services
18
Google Plus
14
Google Search
3
Google Sign-In
8
Google+
1
Googleapps
10
GoogleGames
1
GoogleI/O
25
GoogleLabs
1
GoogleTV
1
gRPC
2
GTUG
5
GWT
2
hack4jp
2
hackathon
5
HTML5
17
HTML5Rocks
1
HTTP/2
3
HTTPS
2
ID Token
1
Identity
10
Identity Toolkit
1
Ignite
4
IME
10
intern
2
iOS
7
IoT
1
IPv6
1
JavaScript
4
K-12
1
Knowledge Graph
1
l10n
8
Lollipop
10
Machine Learning
1
Marshmallow
10
Material
1
Material Design
17
MDL
1
MIDI
1
Mobile
7
Mobile Bootcamp
4
Mobile Vision
3
mod_pagespeed
1
monetize
3
Mozc
14
Music
1
NativeDriver
2
Nearby
3
Nexus
1
Nexus S
1
NFC
1
NPAPI
2
NPN
1
oauth
6
OpenGL
3
OpenID
3
OpenID Connect
2
OpenSocial
1
opensource
11
Payment
1
People API
1
Performance
5
PersonFinder
1
Physical Web
2
Place Picker
1
Player Analytics
4
Policy
2
Polymer
6
Progressive Web Apps
3
project hosting
1
Promise
1
Promo code
1
Protocol Buffers
1
publicdata
1
Push API
1
Push Notification
1
QUIC
1
RAIL
1
Remote Display API
1
Runtime Permission
1
Sample Code
2
schema.org
1
security
8
Service Worker
3
sketchup
1
SmartLock for Passwords
4
social
4
SPDY
3
speak2tweet
1
startup
3
streetview
3
Study Jams
3
techtalk
12
TensorFlow
1
test
2
ToS
1
Transliteration
1
Twitter
1
Udacity
14
Unity
2
UX
1
V8
2
VP9
1
Vulkan
2
Watch Face
2
wave
2
Weave
1
Web
2
Web Animations
1
Web Components
4
Web Manifest
1
WebAssembly
1
WebMusic
3
WTM
2
YouTube
14
YouTube API
1
インタビュー
1
コードサンプル
1
プライバシー
1
言論の自由
1
節電
3
東日本大震災
9
日本語入力
40
ブログ アーカイブ
2016
6
5
4
3
2
1
2015
12
11
10
9
8
7
6
5
4
3
2
2014
12
11
10
9
8
7
6
5
4
3
2
1
2013
12
11
10
9
8
7
6
5
4
3
2
1
2012
12
11
10
9
8
7
6
5
4
3
2
1
2011
12
11
10
9
8
7
6
5
4
3
2
1
2010
12
11
Feed
Follow @googledevjp
"プロダクトに関するご意見は
プロダクトフォーラム
にお願いします"