プログラミグ学習のモチベーションをキープするには目標を明確に描くことです。 どのようなところに就職したいのか?そのために必要なスキルは何か?そういったことをゴールから逆算することです。 私自身もリクルートへ転職できたのも2年前からそれらを設計していたからです。 現在の自分の実力を知る意味でも「マイナビIT AGENT」にご登録して、プロに無料相談してみてはいかがでしょうか?

SE・プログラマーの転職『マイナビエージェント×IT』

【5分レッスン】JavaScript超入門コース#14 実践

はじめに

こんにちは。キノコードです。
「【5分レッスン】JavaScript超入門コース#14 実践」について説明します。

クラスの定義

実践編として、テスト結果を判定するプログラムを作ってみましょう。
まず、どんなクラスを定義するか説明します。
クラス名はStudentとします。そのクラスにユーザーの名前「name」のフィールドを定義して、さらに、点数の平均を計算するメソッドを定義します。
まずClassと書いて、次にクラス名を書きます。
今回はStudentというクラス名なので、Student。

フィールドの定義

次に、コンストラクタの定義していきましょう。
佐藤さん、鈴木さん、佐々木さんといったような名前を代入したいので、プロパティはnameとしておきましょう。

メソッドの定義

カウンタ変数を使って、配列の平均を計算するcalculateAvgというメソッドを定義します。
これでフィールドとメソッドの定義は完了です。

インスタンス化

続いて、「インスタンス化」をします。
まず、変数名を書きます。
変数名は、ユーザー名の「sato」としておきましょう。
イコールを書いて、new演算子という「new」を書いて、クラス名に丸括弧をつけておわりのコロン。
インスタンス化が終わり、クラスを使えるようになりました。
フィールドに値を代入してみましょう。
代入方法は、オブジェクト名のあとにピリオド、フィールド名です。
ユーザーはsatoさんなので、フィールドにもsatoを代入しましょう。
次に、calculateAvgメソッドを作ってみましょう。
配列変数のdataを定義します。
変数名はavgとしましょう。
イコールを書いて、引数dataを代入。
平均点を計算するメソッドを作成することができました。

class Student{

  constructor( name ) {
    this.name = name;
  }

  calculateAvg(data) {
    var sum = 0;
    for( var i=0; i < data.length; i++ ) {
      sum += data[i];
    }
    var avg = sum/data.length;
    return avg;
  }

}
var sato = new Student();
var data = [70, 65, 50, 90, 30];

sato.name=""sato"";
var avg = sato.calculateAvg(data);

最後に、jedgeメソッドを作ってみましょう。
変数名はresultとしましょう。
イコールを書いて、引数avgを代入。
結果が表示されるようにコンソールログを書きます。
テスト結果を判定するメソッドを作成することができました。
表示させてみましょう。

"
class Student{

  constructor( name ) {
    this.name = name;
  }

  calculateAvg(data) {
    var sum = 0;
    for( var i=0; i < data.length; i++ ) {
      sum += data[i];
    }
    var avg = sum/data.length;
    return avg;
  }

  jedge(avg) {
    var result;
    if( 60 <= avg ) {
      result = ""passed"";
    } else {
      result = ""failed"";
    }
    return result;
  }

}
var sato = new Student();
var data = [70, 65, 50, 90, 30];

sato.name=""sato"";
var avg = sato.calculateAvg(data);
var result = sato.jedge(avg);    

console.log(sato.name + "" "" + result);"

sato passed と表示されました。
平均点が60以下なので、sato failedが表示されました。