function文で定義します。
sample.js
function fact(n) {
return (n==0) ? 1 : n*fact(n-1);
}
for(var i=0; i<7; ++i) console.log(i +'!='+ fact(i));
実行例
$ node sample.js
0!=1
1!=1
2!=2
3!=6
4!=24
5!=120
6!=720
ラムダ式も使用可能
JavaScriptでも、いわゆるラムダ式で無名関数を定義できます。
sample.js
var f = function(x) {
return x*x;
};
console.log(f(2));
実行例
$ node sample.js
4
引数の省略
引数を省略した場合、undefinedが代入されます。そのため、下記サンプルのような既定値の記述法が可能となります。
sample.js
function f(x,y,ope) {
ope = ope || '+';
switch(ope) {
case '+': return x+y; break;
case '-': return x-y; break;
case '/': return x/y; break;
case '*': return x*y; break;
}
};
console.log(f(1,10));
console.log(f(1,10,'+'));
console.log(f(1,10,'-'));
console.log(f(1,10,'/'));
console.log(f(1,10,'*'));
実行例
$ node sample.js
11
11
-9
0.1
10
可変長引数
argumentsオブジェクトを用いて可変長引数をもつ関数を定義できます。
sample.js
function f(/*...*/) {
for(var i=0; i<arguments.length; ++i)
console.log(arguments[i]);
};
f(1);
f(1,2);
f(1,2,3);
実行例
$ node sample.js
1
1
2
1
2
3
引数にラベルを付けて渡す
引数の個数が多すぎて順番がややこしいときに重宝します。
sample.js
function f(args) {
return args.x + args.y + args.z;
};
console.log( f({x:1, y:2, z:3}) );
実行例
$ node sample.js
6
クロージャ
sample.js
function f(x) {
return function() {return x;}
};
var f_arr = [];
for(var i=0; i<5; ++i) f_arr[i] = f(i);
for(var i=0; i<5; ++i) console.log(f_arr[i]());
実行例
$ node sample.js
0
1
2
3
4
0
記事の執筆者にステッカーを贈る
有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。
さらに詳しく →Feedbacks
ログインするとコメントを投稿できます。
関連記事
- Date オブジェクトの使用例 (JavaScript)コンストラクタ // 現在時刻 var d = new Date(); console.log(d); // システムのタイムゾーンに変換して出力 (この例では JST) //=> Thu Jan 29 2015 23:45:21 GMT+0900 (東京 (標準時)) // システムのタイムゾーン (以下の例では JST) での日付指定 d = new Date('2000/01/01')...
- AngularJS が提供するユーティリティAngularJS では JavaScript の言語仕様として不足のある汎用的な処理を補うためにユーティリティが提供されています。代表的なものをコード例とともに列挙します。公式ドキュメントはこちらです。 <!DOCTYPE html> <html lang="ja" ng-app> <head> <meta charset="utf-8"> ...
- JavaScript のグラフ描画ツール Dygraph の使用例ダウンロード こちらのページから dygraph-combined.js をダウンロードします。 サンプルコード チュートリアルより。 <html> <head> <script type="text
- サービス (AngularJS)AngularJS のビルトインサービスのうち代表的なものをコード例とともに列挙します。公式ドキュメントはこちらです。 <!DOCTYPE html> <html lang="ja" ng-app="myApp"> <head> <meta charset="utf-8"> <script src="angular.min.js">...
- React Hook のサンプルコードReact 16.8 で導入された Hook のサンプルコードを記載します。 コンポーネントの機能を共有するための手法であった Render Props や [Higher-Order Components](https://reactjs.org/docs/higher-order-components.html