2016/01/11

関数の使い方




関数 : 複数の処理をまとめる

関数の書き方
function 関数名(引数) {
  処理
  return 返り値
}



function hello() {
  console.log("hello");
};
hello();

//引数を加えると下記のように書ける
function hello(name, age) {
  console.log("hello " + name + age);
};
hello("taro ", 40);
hello("jiro ", 30);

//返り値で書くと下記のようになる
function hello(name, age) {
  return "hello " + name + age;
};
var greet = hello("jiro ", 30);
console.log(greet)



ローカル変数について
function hello(name, age) {
  var msg = "hello " + name + age;//ローカル変数と呼ばれる。その関数内でしか有効でない変数。
  return msg;
};
var greet = hello("jiro ", 30);
console.log(greet);
console.log(smg);//関数の外から呼ぶとエラーになる



関数の違う書き方、無名関数について
var hello = function (name, age) { //無名関数、匿名関数と呼ばれる。関数名を省略できる
  var msg = "hello " + name + age;//ローカル変数と呼ばれる。その関数内でしか有効でない変数。
  return msg;
};
var greet = hello("jiro ", 30);
console.log(greet);



即時関数について
function hello() {
  console.log("hello");
}
hello();

//上記の書き方だと呼び出してあげないといけないが、下記のように書くと即時に実行できる
(function hello() {
  console.log("hello");
})();

//引数を入れた場合の書き方
(function hello(name) {
  console.log("hello " + name);
})("taro");

//さらに、呼び出してすぐに実行されるので関数名を省略可能
(function(name) {
  console.log("hello " + name);
})("taro");



即時関数を使ってローカル変数にすることにより、ほかの変数の影響を受けないようにすることができる。 複雑なjsの場合は即時関数で囲うとよい。
(function() {
  var x = 10,
      y = 11;
  console.log(x + y);
})();



参照 : ドットインストール