SIBYL System

just technical blog

ES2017を理解してみる

   

es6

ECMAScriptについて、とっても詳しく説明されているスライドが以下にあるので是非参照して下さい

 

ECMAScript(ES)とは

上のスライドとも説明が重複しますが、ECMAScript(えくますくりぷと)とは、JavaScriptの言語仕様で、JavaScriptはECMAScriptの仕様に基づいた実装のひとつとなります。

es-js

 

 

各々のブラウザはJavaScriptを動かす仕組み(JavaScriptエンジン)を持っていますが、各ベンダが開発したものであり、メソッド別の性能や(バグがあるなどの理由で)挙動が少し異なる場合があります。以下は代表的なブラウザをいくつかとそのJavaScriptエンジン名です。

1479922549_chrome 1479922557_internet-explorer 1479922574_safari 1479922580_firefox
Google Chrome
V8
Internet Explorer
Chakra
Safari
Nitro
Firefox
Spider Monkey

ES.Nextとは


ECMAScript便

ECMAScriptES.Next

(2016)ES.NextES20172017

ES2017


ES2017

稿MDN

 

Object.values / Object.entries


Object.keyskeyObject.valuesObject.entries

Object.keys

Object.values

Object.entries

 

ブラウザ Chrome Firefox (Gecko) Internet Explorer Opera Safari
サポート 51.0 47

最新状況:

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/values

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

String padding

StringのprototypeにpaddingStartとpaddingEndメソッドの追加が提案されています。

第一引数が文字長、第二引数が埋める文字となっておりデフォルトは空白文字で埋められます。

padStartは前方にパディングを行います。

対して、padEndは後方にパディングを行います。

 

ブラウザ Chrome Firefox (Gecko) Internet Explorer Opera Safari
サポート 48  –

:

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padStart

 

Object.getOwnPropertyDescriptors


Object.getOwnPropertyDescriptorObject.getOwnPropertyDescriptors

Object.getOwnPropertyDescriptor(s)ObjectDescriptorobar

Object.getOwnPropertyDescriptor(s)barDescriptorDescriptorDescriptor

Property Descriptor 


(一)DataDescriptor

(二)AccessorDescriptor

(三)GenericDescriptor


6fieldProperty Descriptor


Enumerable  for-initeratekey

Configurable  Property Descriptor

Writable  Data

Value  Data

Get  getter

Set  setter


barObject.getOwnPropertyDescriptor

DescriptorwritablevalueDataDescriptorfieldPropertyDescriptor
ブラウザ Chrome Firefox (Gecko) Internet Explorer Opera Safari
サポート 50  –

最新状況:

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors

Trailing commas in function parameter lists and calls

引数を複数行で書いた場合の最後のカンマ(通称ケツカンマ)を許容します。よくある追加/削除時にバージョン管理ツールで変更箇所が2行になるのを1行に抑えられます。

引数が増えてもy引数が書かれている行は既にカンマが入っていたので変更が加わりません。

 

Async Functions

非同期処理を同期的に書くことができるようになります。

 

 

ブラウザ Chrome Firefox (Gecko) Internet Explorer Opera Safari
サポート 55 52 42

最新状況

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

ES2017の実行環境を作ってみる

npm環境を新規作成して、npmでbabel-cliとes2017のプリセットを入れましょう。

babelのプリセット情報を記載する.babelrcファイルを作成します。

 

index.jsを作ります

実行します。

startが表示された1秒後にendが表示されたでしょうか。

その他

asyncに関しては時間が作ってもう少し調べて見ようと思います。

参考

http://yoshiko-pg.github.io/slides/20161112-nodefes/

http://efcl.info/2015/10/18/ecmascript-paper/

 

 - Javascript , , ,