おもに【ECMAScript6の新機能 - Qiita】の記事を読み進めるにあたって、自身が今まで曖昧に理解していたものをピックアップ。
今後も追記するかどうかはその時の気分とか余裕度によって。
{ [ 'prop_' + (() => 42)() ]: 42 }
計算結果をプロパティ名にできる。
const obj = { [ 'prop_' + (() => 42)() ]: 42 }
const obj.prop_42; // => 42
メソッド名にも使用できる。
const a = 'hello';
const obj = {
[a]() {
console.log('this is hello');
}
};
obj.hello(); // => 'this is hello'
- enhanced object literals
https://qiita.com/rana_kualu/items/1f98c1a642102f48aa78#enhanced-object-literals
{ somthing }
変数名とkey名が一緒なら省略可能。
const something = 'hello';
const obj = {something };
obj.something; // => 'hello'
- enhanced object literals
https://qiita.com/rana_kualu/items/1f98c1a642102f48aa78#enhanced-object-literals
[...someArray]
スプレッド演算子。
関数の引数で使ったら配列で受けるやつ。
呼び出す側でつかったら配列を引数に展開するやつ。
function f(a, ...b) {
console.log(a); // => 1
console.log(b); // => [2, 3]
}
f(...[1,2,3]);
- default + rest + spread
https://qiita.com/rana_kualu/items/1f98c1a642102f48aa78#default--rest--spread
for(;;)
無限ループ。
きちんとbreak
すること。
- generators
https://qiita.com/rana_kualu/items/1f98c1a642102f48aa78#generators - 省略可能な for の式
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/for#Optional_for_expressions
function*
function* 宣言 (末尾にアスタリスクが付いたfunctionキーワード)は、 Generator オブジェクトを返すジェネレーター関数を定義します。
- function* - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/function*