javascriptの関数宣言まちがいはどれ?
javascriptについて勉強中、functionの書き方いろいろあってややこしいな〜と思います。
javascriptの関数の宣言のしかたには3つのやり方があるのですが、ここでクイズ!
次のうち、間違っている宣言方法はどれ?
- function ok() return “OK";
- function ok() {return “OK";}
- var ok = function() {return “OK";}
- (function() {return “OK";})();
一つだけ間違っています。
そして、3つの関数宣言とはこちらです。
- 関数名をつけて宣言する
- 無名関数として宣言する
- 即時実行関数として宣言する
それぞれについてまとめておきます。
関数名をつけて宣言する
一番一般的に使われている宣言方法なのではないかと思います。
function ok() {
return "OK";
}
console.log(ok);
// ƒ ok() {
// return "OK";
// }
console.log(ok()); // OK
var result = ok();
console.log(result); // OK
一度定義したものは何度でも呼び出せます。
無名関数として宣言する
まあまあ使われているやつです。フレームワークによっては結構使いますね。
var ok = function() {
return "OK";
}
console.log(ok);
// ƒ () {
// return "OK";
// }
console.log(ok()); // OK
var result = ok();
console.log(result); // OK
こちらは変数に直接オブジェクトとして関数を入れています。変数の有効範囲では何度でも使用できます。
即時実行関数として宣言する
使う場面は限られますが、知っているとちょっとしたときに役立つ書き方です。
var result = (function() {return "OK";})();
console.log(result);
// OK
console.log((function() {return "OK";})());
// OK
このように、名前の通り宣言したとき1度だけ実行されます。
ディスカッション
コメント一覧
まだ、コメントがありません