node.jsをES6で書いてみる
あまり意識してなかったのですが、インストールしたnode.jsのバージョンがv8.0.0なので、ES6に対応しています。今回はES6での変更点やソースの書き方を整理します。v8.0.0で下記のように動作することを確認しました。
letで定義する
'use strict' if (1) { let i = 1; } console.log(i); // error. i is not defined
こんな感じで書くと、ちゃんとエラーを吐いてくれます。letで今後は書こうっと。
新しい型のSymbol
- Symbol()でシンボルを生成できる
- 同じ引数でSymbolを生成しても、オブジェクトが違えば別物と扱う
'use strict'; let hoge = Symbol('hoge'); //Symbolの生成 console.log(typeof hoge); // symbol let hoge2 = Symbol('hoge'); console.log(hoge === hoge2); // false
String周りの関数の追加
- 文字列を繰り返して生成できるrepeat
- 文字列が部分文字列で始まるか判定できるstartsWithなど
'use strict'; let str = 'starwars'; // repeat console.log(str.repeat(2)); //starwarsstarwars // starts console.log(str.startsWith('st')); // true console.log(str.startsWith('war')); // false // ends console.log(str.endsWith('wars')); // true console.log(str.endsWith('star')); // false
コールバック関数書く時にアロー演算子が使える
'use strict'; setInterval(() => console.log('hoge'), 1000);
これで1秒おきにhogeと出力されます。
ES6で書くデメリット
個人で小規模なコードを書いている分にはいいのですが、ES6にすると、import文が多くなり、vimmerの私にとってはキツイです。ただ、保守性が重視されるReact.jsとかだとやはりES6で書きたいですよね。