ES6とES5の違い

jsprimer.net

ES5の書き方

qiita.com

ES6 (ES2015)

codeaid.jp

twotone.me

ES2015の「関数」

アロー関数 (ES6)

const foo = (引数) => {関数内処理};
const foo = (param) => {
  console.log(param);
};
foo(1);

以前

function foo(param) {
  console.log(param);
}

無名関数なので、引数に関数を指定するような処理に直接記述することもできます。
=> 例えば、clickEventのリスナー。

clickEventのリスナー

ES6

button.addEventListener('click', ()=>{
  クリック時の処理
});

以前

button.addEventListener('click', function(){
  クリック時の処理
});

ES2015の「文字列の結合」

ES6 (「バッククォートと${}」で)

let price = 100;
console.log(`この商品の金額は税抜で${price}円となります。`);

以前 (「+」記号を用いて)

let price = 100;
console.log('この商品の金額は税抜で' + price + '円となります。');

ES2015の「クラス宣言」

ES6 (constructorも使える)

class Profile {
  constructor() {
    this.name = '太郎';
  }

  desc() {
    console.log(`${this.name}はお人好しでカワイイです。`);
  }
}
let person = new Profile();
console.log(person.name); // 太郎
person.desc(); // 太郎はお人好しでカワイイです。

以前 (Prototypeを用いて)

function Profile() {
  this.name = '太郎'; // プロパティ
}
Profile.prototype.desc = function() { // メソッド
  console.log(this.name + 'はお人好しでカワイイです。');
};

var person = new Profile();
person.desc();



[ES2015] ECMAScriptモジュール(ESモジュール、JSモジュール)

jsprimer.net

ECMAScriptモジュールは、export文によって変数や関数などをエクスポートできます。
また、import文を使って別のモジュールからエクスポートされたものをインポートできます。
インポートとエクスポートはそれぞれに 名前つき と デフォルト という2種類の方法があります。



名前つきインポート

指定したモジュールから名前を指定して選択的にインポートできます。
次の例では my-module.jsから名前つきエクスポートされたオブジェクトの
名前を指定して名前つきインポートしています。
import文のあとに続けて{}を書き、
その中にインポートしたい名前つきエクスポートの名前を入れます。
複数の値をインポートしたい場合は、
それぞれの名前をカンマで区切ります。

my-module.js
export const foo = "foo";
export function bar() { }
named-import.js
// 名前つきエクスポートされたfooとbarをインポートする
import { foo, bar } from "./my-module.js";
console.log(foo); // => "foo"
console.log(bar); // => "bar"