Node.js入門(3)Node.jsでES2015(ES6) 入門

JavaScript

ECMAScriptはEcma Internationalによって標準化された仕様です。ECMAScript6は2015年に採用されたため、ES2015やES6などと省略されて呼ばれています。ここではES6で特筆すべき機能を紹介します。
Node.jsではES6の仕様がサポートされていますので、積極的に使って行きたいものです。クライアントJavaScriptはIEが未対応ですので注意が必要です。
ECMAScript6対応状況

スポンサーリンク

letについて

ブロックスコープは通常のJavaScriptではその概念がありません。けれどもES6ではブロックスコープが利用可能となっています。
ブロックスコープの変数宣言はlet命令を使います。
let命令の例

if(true){
  let num = 5;
  console.log(num); //5
}
console.log(num); //error

*letは変数の巻き上げが起こりませんので注意してください。

constについて

定数はJavaScriptには存在しませんでしたが、ES6で使用可能となりました。
定数は一度宣言して値を代入したら、再び代入はできません。その時点でエラーになります。

const num = 5;
num = 8; //エラー

アロー関数

アロー関数は無名関数をより簡単に記述するものです。

アロー関数の記述方法
 (仮引数) => {
命令文
}

let myName = (name) => {
  console.log(name);
}
myName('Tahara');

引数が1つの場合は()を省略したり、処理が1行なら{}を省略することもできます。

let myName = name => console.log(name);

テンプレート文字列

文字列に変数を埋め込む場合JavaScriptでは + で繋げます。結構面倒なのですが、ES6の新しい構文で、${}を使った文字列連結が行えます。
文字列リテラルをバッククォートで囲んでいることに注意してください。

参考例

var myName = 'Tahara';
console.log(`私の名前は${myName}です。`);

クラスの定義

JavaScriptにはクラスの概念がありません。ES6でようやく本物のクラスを使えるようになりました。
関数宣言は巻き上げされるのに対し、クラス宣言ではされないことです。クラスにアクセスする前に、そのクラスを宣言する必要があります。
コンストラクタは、クラスによって定義されるオブジェクトの生成時に、初期化を行う特別なメソッドです。
クラスの定義の例

class Animal{
  constructor(name) {
    this.name = name;
  }
  set name(name){
    this._name = name;
  }
  get name(){
    return this._name;
  }
  getName(){
    console.log(`種類は${this.name}です。`)
  }
} 
let dog = new Animal('芝犬');
dog.getName();
タイトルとURLをコピーしました