0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

よく使ったES6の新機能

Last updated at Posted at 2021-12-08

一、constとlet

この前のバッジョンにおいて、varしかないが、es6からconstとletを新規追加されます。
それぞれの機能は下記の通りです。

  • const: constを使えば、定数を実現できる。
const a = 1
a = 0 //compile error
  • let: 以前はvarで宣言される変数はブロック外でも参照できるので、本番環境で怪しい問題が起こるかもしれません。es6からletで宣言される変数はブロック内しか参照できない。
var x = 'グローバル変数';
{
  let x = 'ブロック変数';
  console.log(x); // ブロック変数
}
console.log(x); // グローバル変数

二、アロー関数

アロー関数とは、もっと簡潔なプログラミング方式の一つです。
アロー関数を使うと、下記のよいポイントをもらえます。

  • function というキーワードを書く必要がなくなる。
  • returnというキーワードを書く必要がなくなる。
  • 直前のthisキーワードを継続する。

例えば、

// ES5
var add = function (a, b) {
    return a + b;
};
// アロー関数
var add = (a, b) => a + b;

三、for...of と for...in

  • for...ofで配列などのデータを繰り返す。
let letter = ['a', 'b', 'c'];
letter.size = 3;
for (let letter of letters) {
  console.log(letter);
}
// result: a, b, c
  • for...inでオブジェクト中の属性を繰り返す。
let stu = ['Sam', '22', ''];
stu.size = 3;
for (let stu in stus) {
  console.log(stu);
}
// result: Sam, 22, 男

四、クラス

es6から、クラスを作れますのでオブジェクト指向プログラミング出来ます。

class Student {
  constructor() {
    console.log("I'm a student.");
  }
 
  study() {
    console.log('study!');
  }
 
  static read() {
    console.log("Reading Now.");
  }
}
 
console.log(typeof Student); // function
let stu = new Student(); // "I'm a student."
stu.study(); // "study!"
stu.read(); // "Reading Now."

かつ、es6で親のクラスを継承出来ます。

class Phone {
  constructor() {
    console.log("I'm a phone.");
  }
}
 
class Iphone extends Phone {
  constructor() {
    super();
    console.log("I'm a phone designed by Iphone ");
  }
}
 
let myIphone= new Iphone ();

五、promise

promiseとは、JavaScriptにおいて、非同期処理の操作が完了したときに結果を返すものです。

const promise = new Promise((resolve, reject)=>{
  if (/* success */){
    resolve(value);
  } else {
    reject(error);
  }
});

ここでは、
resolve関数はpromise対象の状態をpendingからfulfilledに変換して処理結果を戻す。
reject関数はpromise対象の状態をpendingからrejectedに変換してエラーをスローする。

promise.then((value)=>{
  // success
  console.log(value)
}, (error)=> {
  // failure
  console.log(error)
});

最終に

最後まで読んでいただき、ありがとうございます。
その他のes6の新機能について、下記のサイトをご参照ください。
ECMAScript 6: New Features
http://es6-features.org

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?