LoginSignup
0
0

More than 3 years have passed since last update.

Udacity: ES6 JavaScript Improved メモ②

Posted at

UdacityのES6 - JavaScript Improvedコースを、受講しながらメモしていきます。
Lesson2: Functions

Arrow Functions

アロー関数(Arrow Function Expression)。匿名関数を簡潔に書くための式。

example.js
// 従来の記法
const upperizedNames = ['Farrin', 'Kagure', 'Asser'].map(function(name) { 
  return name.toUpperCase();
});
example.js
// アロー関数を使用
const upperizedNames = ['Farrin', 'Kagure', 'Asser'].map(
  name => name.toUpperCase();
);

どちらも結果は同じ。ちなみにmapメソッドは、配列のそれぞれの要素に対して何らかの処理を行い(ここがfunctionの部分)、その処理の結果を要素に持つ、新しい配列を返す。

注意点
・引数が1つのとき、_ => fooと書く慣習がある。
アンダースコアはただの変数名であり、「受け取るけど捨てる引数」という意味が込められているっぽい(Scalaにアンダースコアを使った構文があるらしく、それの影響…?)。

・関数部分が2行以上の場合、{}で関数部分を覆ってやり、returnを明記する必要がある。

アロー関数における「this」

通常のfunctionにおけるthisは、functionがどう呼び出されたか、によって参照先が動的に変化する。
アロー関数におけるthisは、functionがどこで呼び出されたかによって参照先が動的に変化する。
…まだ理解しきっていないため、MDNを参照するように。

Default Function Parameters

引数にデフォルト値を代入できるようになった。仮引数。
function greet(name = 'Student', greeting = 'Welcome') のように書けば、nameやgreetingに引数が渡されなくとも、それぞれ'Student'と'Welcome'が代入される

Classの基本

分量が多いので、Javaとの違いだけ。

Class is just a function. classはあくまでfunctionにすぎないよ、ということを強調していた。
typeof ClassHogeの結果はfunction
JavaScriptのコンストラクタは、constructor()で定義する。
クラスの中で定義されたメソッドは、prototypeオブジェクトと解釈され、継承可能。

0
0
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
0