ECMAScript 6
最新版のFirefoxなど、ECMAScript 6の新機能が実装されているブラウザのコンソールに以下の内容を入力して、動作を確認してください
// デフォルトパラメータ function func(a, b = 5) { return a * b; } func(5); // 25
// 可変長引数 function func(a, b, ...args) { return args.concat(a, b); } func(1, 2, 3, 4, 5); // [3, 4, 5, 1, 2]
// 定数 const PI = 3.14;
// 配列の展開演算子 var args = [1, 2]; console.log([0, ...args, 3, 4]); // [0, 1, 2, 3, 4]
// アロー演算子 [1, 2, 3, 4].reduce((a, b) => a + b); // 10 [1, 2, 3, 4].reduce(function (a, b) { return a + b }); // 10
// 分割代入 function func() { return [1, 2, 3]; } var [a, b, c] = func(); console.log(a, b, c); // 1 2 3
// ブロックスコープの管理 var a = 0; if (true) { let a = 1; console.log(a); // 1 } console.log(a); // 0 for (let i = 0; i < 10; i++) { } console.log(i); // ReferenceError: i is not defined
// モジュール ※執筆時点では動作しません import func from 'module'; console.log(func()); import 'module' as m; console.log(m.func());
// イテレータ for (let v of ['a', 'b', 'c']) console.log(v); // "a" // "b" // "c" function List(o) { for (let k in o) { yield [k, o[k]]; } } for (let [k, v] of List({a: 9, b: 8, c: 7})) console.log(k, v); // "a" 9 // "b" 8 // "c" 7