JavaScript関数定義

JavaScript関数はfunctionキーワードで定義されています。

関数宣言または関数式を使用できます。

関数宣言

このチュートリアルの前半では、関数が次の構文で宣言されていることを学びました:

function functionName(parameters){
//実行するコード
}

宣言された関数はすぐには実行されません。 それらは「後で使用するために保存され」、呼び出されたとき(呼び出されたとき)に後で実行されます。

関数myFunction(a,b){
a*bを返す;
}

それを自分で試してみてください”

セミコロンは、実行可能なJavaScript文を分離するために使用されます。
関数宣言は実行可能なステートメントではないため、セミコロンで終わるのは一般的ではありません。

関数式

JavaScript関数は、式を使用して定義することもできます。

関数式を変数に格納することができます:

var x=function(a,b){return a*b};

自分で試してみてください”

関数式が変数に格納された後、その変数を関数として使用できます:

var x=function(a,b){return a*b};
var z=x(4,3);

自分で試してみてください”

上記の関数は実際には無名関数(名前のない関数)です。

変数に格納されている関数には関数名は必要ありません。 それらは常に変数名を使用して呼び出されます(呼び出されます)。

上記の関数は、実行可能ステートメントの一部であるため、セミコロンで終わります。

Function()コンストラクタ

前の例で見たように、JavaScript関数はfunctionキーワードで定義されています。

関数は、Function()と呼ばれる組み込みのJavaScript関数コンストラクタで定義することもできます。

var myFunction=new Function(“a”,”b”,”return a*b”);
var x=myFunction(4,3);

自分で試してみてください”

実際には関数コンストラクタを使用する必要はありません。 上記の例は、書き込みと同じです:

var myFunction=function(a,b){return a*b};
var x=myFunction(4,3);

自分で試してみてください”

ほとんどの場合、JavaScriptでnewキーワードを使用することは避けることができます。

Function Hoisting

このチュートリアルの前半では、”hoisting”(JavaScript Hoisting)について学びました。

ホイストは、宣言を現在のスコープの先頭に移動するJavaScriptのデフォルトの動作です。

巻き上げは、変数宣言と関数宣言に適用されます。

このため、JavaScript関数は宣言される前に呼び出すことができます:

myFunction(5);
function myFunction(y){
return y*y;
}

式を使用して定義された関数はホイストされません。

自己呼び出し関数

関数式は”自己呼び出し”にすることができます。

自己呼び出し式は、呼び出されることなく自動的に呼び出されます(開始されます)。

式の後に()が続くと、関数式は自動的に実行されます。

関数宣言を自己呼び出しすることはできません。

に追加して括弧の機能を示すことで機能発現:

(function(){
var x=”こんにちは!!”;//私は自分自身を呼び出します
})();

自分で試してみてください”

上記の関数は、実際には匿名の自己呼び出し関数(名前のない関数)です。

関数を値として使用することができます

JavaScript関数を値として使用することができます:

function myFunction(a,b){
return a*b;
}
var x=myFunction(4,3);

自分で試してみてください”

JavaScript関数は式で使用できます:

function myFunction(a,b){
return a*b;
}
var x=myFunction(4, 3) * 2;

関数はオブジェクトです

JavaScriptのtypeof演算子は関数に対して「関数」を返します。

しかし、JavaScript関数はオブジェクトとして記述するのが最善です。

JavaScript関数にはプロパティとメソッドの両方があります。

arguments.lengthプロパティは、関数が呼び出されたときに受け取った引数の数を返します:

function myFunction(a,b){
引数を返します。length;
}

自分で試してみてください”

toString()メソッドは関数を文字列として返します:

function myFunction(a,b){
return a*b;
}
var txt=myFunction.toString();

自分で試してみてください”

オブジェクトのプロパティとして定義された関数は、オブジェクトのメソッドと呼ばれます。
新しいオブジェクトを作成するために設計された関数は、オブジェクトコンストラクタと呼ばれます。

Arrow Functions

Arrow functionsでは、関数式を記述するための短い構文を使用できます。

functionキーワード、returnキーワード、中括弧は必要ありません。

//ES5
var x=function(x,y){
return x*y;
}
// ES6
const x=(x,y)=>x*y;

自分で試してみてください”

矢印関数には独自のthisはありません。これらは、オブジェクトメソッドの定義には適していません。

矢印機能は掲揚されません。 それらは、使用する前に定義する必要があります。

関数式は常に定数値であるため、constを使用する方がvarを使用するよりも安全です。

関数が単一のステートメントである場合は、returnキーワードと中括弧のみを省略できます。 このため、常にそれらを保つために良い習慣かもしれません:

const x=(x,y)=>{return x*y};

自分で試してみてください”

矢印関数は、IE11以前ではサポートされていません。

コメントを残す

メールアドレスが公開されることはありません。

More: