ひよっこPGのブログ

主に、技術メモや英語たまにギター関連のことも書いているブログです。

JavaScriptの関数について、復習をかねてアウトプットしてみる。

JavaScriptの関数について、学んだので基本的なことですがアウトプットします。

関数の定義方法

var addFunc = function(a,b){
   return (a+b);
};

関数は必ず値を返す。

var func = function(){
};

console.log(func() === undefind);
//=> true

return文を書かなければ、undefindが返される。

関数は第一級関数

第一級関数というのは、
関数を
・変数に代入出来る。
・配列に代入出来る。
・オブジェクトの値として代入出来る。
・関数の戻り値として返すことが出来る。

といったような特徴を持った関数のこと。
つまり、数値とか文字列とかと、同様に使えますよということだと思います。
第一級関数 - Wikipedia

定義した引数の数、渡された引数の数を取得

定義した引数の数は 関数オブジェクト.length
渡された引数の数は 関数内で、arguments.length

var func = function(a,b,c){
    console.log(arguments.length);
};

console.log(func.length); //=> 3
func(100); //=> 1
func(100,200); //=>2

関数の実行を中断したい

関数の実行中に return文を書けば、実行中断出来る。

var func = function(){
    console.log(1);
    console.log(2);
    return;
    console.log(3);
    console.log(4);
}

func();
//=> 12

無名関数を即時実行

(function(str){
    console.log(str);
})("Hello World!!!");
//=> "Hello World!!!";

関数を即時実行したい場合は、括弧に入れる必要がある。

定義前でも、関数は実行出来る。

addFunc(1,2);
//=> 3;

function add(a,b){
   return (a+b);
};

コンパイラが、一旦全て解析した後実行するから、出来るみたいです。

開眼!  JavaScript ―言語仕様から学ぶJavaScriptの本質

開眼! JavaScript ―言語仕様から学ぶJavaScriptの本質