ECMAScript6(ES6,ES2015)について
簡単に言うとECMAScriptとはJavaScriptのバージョンのことですね。
以前に書いた「ストップウォッチを作る」でのコードにおいては、ECMAScript5の文法にて書かれています。
ES6では進化してバグが発生しにくい書き方であったり、同じ処理を少ないコード量で書けるようになったりしています。
ES5に比べてES6の主な変更点はこちらです。
では、ES5の書き方で以前作った「ストップウォッチを作る」をES6にリファクタリング(コードの動作を変えずに、処理を整理すること) して学んでみましょう。
アロー関数
関数の表記は「function(){}」ですが、ES6では新たに「()=>{}」という書き方も使えるようになりました。基本的にはどちらも通常の関数として扱われますが、thisが関係する場合には単純に置き換えられないことがあります。
変更前startButton.addEventListener(‘click’, function(){
変更後startButton.addEventListener(‘click’,()=>{
名前のついている関数にも、以下のようにアロー関数を変数に代入することで変わらない動きができます。
変更前function addMessage(message){
}
変更後const addMessage = (message) =>{
}関数のデフォルト引数
変更前function MystopWatch(options){
…..options = options || {};
これはもしもoptions引数が与えられない場合には空のオブジェクトを代入し直すということです。 同様の処理が次のように書くことができます。
変更後function MystopWatch(options = {}){
分割代入
オブジェクトの一部のプロパティだけを扱いたいときに使います。
変更前function MystopWatch(options = {}){
・・・var color = options.color || ‘blue’;
var backgroundColor = options.backgroundColor || ‘grey’;
変更後function MystopWatch(options = {}){
・・・let {color, backgroundColor} = options;
color = color || ‘blue’;
backgroundColor = backgroundColor || ‘grey’;
赤字が今回変更したコードです。
ES6バージョンにリファクタリングしても、正常に動かなければ意味ないので、動作を確認してみましょう。
ストップウォッチ
この本から引用、参考にして学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが3,000円弱ならコスパよく、買っておいてよかったと満足してます。