この問題のゴールは、簡単な実装をECMAScript 2015(ES6)を用いて実装することで、ES6の理解を深める事です。
正しく問題を回答するため、それぞれの問題のSpecを読みながら回答してみてください。
例えば、Step1の詳細は、es6/test/hello.spec.jsに記載されています。
hello.jsを編集して、HelloWorldを実装してください。
testを読んで、正しく仕様を満たすものを実装してください。
person.jsを編集して、HelloWorldを実装してください。
testを読んで、正しく仕様を満たすものを実装してください。
Polygonはある多角形の面積を計算してくれるシンプルなクラスです。 また、以下のサブクラスをもっています。
- Rectangle
- Square
- Circle
現在、SquareとCircleクラスは実装されていません。
継承を活用して、polygon.jsを完成させてください。
testを読んで、正しく仕様を満たすものを実装してください。
それぞれのクラスは以下の仕様を満たします。
- 横幅を表すコンストラクターの値は1です。
- 円の半径を表すコンストラクターの値は1です。
- 円の高さ(height)は半径*2です。
- 円の長さ(width)は半径*2です。
Promiseとは、非同期処理を抽象化したオブジェクトとそれを操作する仕組みのことです。
複雑な非同期処理等をうまくパターン化できるというのがPromiseの役割です。
Promiseを活用したpromise.jsを完成させてください。
testを読んで、正しく仕様を満たすものを実装してください。
- sleep functionは特定の時間の値をもったPromiseを返します。
- sleep functionは時間を特定すると非同期で終了します。
- もし、特定された時間が0よりも少ない場合、Promiseはリジェクトされます。
- sleep function内ではsetTimeを活用することが出来ます。
Caesar cipher(シーザー暗号)とは、単一換字式暗号の一種で、平文の各文字を辞書順に3文字だけシフトして暗号文をつくる暗号アルゴリズムです。
Caesar cipherを活用したcipher.jsを完成させてください。
testを読んで、正しく仕様を満たすものを実装してください。
- 利用できる文字列は"abcdefghijklmnopqrstuvwxyz"です。
- もし、利用できない文字列が入力された場合、その文字列は変換されずにそのままの値で結果の文字列に返されます。
- for文は利用出来ません。
- もしfor文を利用した場合は、テストは通過できません。
Step5 で実装してきたものを大文字に対応させてみましょう。
それぞれの文字は小文字と同様とみなされて変換されます。
testを読んで、正しく仕様を満たすものを実装してください。