js関数

2755 ワード

関数の宣言
JavaScriptには3つの関数を宣言する方法があります.
(1)functionコマンド
functionコマンド宣言のコードブロックは、関数です.Functionコマンドの後は関数名で、関数名の後は丸括弧で、中は着信関数のパラメータです.関数は大括弧の中にあります.
function print(s) {
  console.log(s);
}
上記のコードはprint関数と名づけられました.今後print(print)という形式を使うと、該当コードを呼び出すことができます.これは関数という声明です.
(2)関数式
関数を宣言するためにfunctionコマンドを使う以外に、変数の割り当ての書き方もできます.
var print = function(s) {
  console.log(s);
};
この表記は匿名関数を変数に割り当てます.この場合、この匿名関数は、関数式(Function Expression)とも呼ばれます.これは、割当文の等号の右側に式を置くしかないからです.
関数式宣言関数を使用する場合は、関数名の後ろには関数名がありません.関数名を加えると、この関数名は関数体内部でのみ有効で、関数体外部では無効です.
var print = function x(){
  console.log(typeof x);
};

x
// ReferenceError: x is not defined

print()
// function
上のコードは関数式に関数名xを加えます.このxは関数の内部だけで使用できます.関数の表現自体を指します.他のところは全部利用できません.このような書き方の用途は2つあります.1つは、関数の内部で自身を呼び出すことができます.2つは、エラーの解消に便利です.したがって、以下の形式のステートメント関数も非常に一般的である.
var f = function f() {};
関数の表式は、語句の末尾にセミコロンを付けて文の終わりを表します.関数の宣言は、末尾の大括弧の後に加算記号を使用しません.総じて言えば、これらの2つの宣言関数の方式は、非常に微妙な違いがあり、等価と近似されることができる.
(3)Function構成関数
三つ目の宣言関数の方式はFunctionコンストラクタです.
var add = new Function(
  'x',
  'y',
  'return x + y'
);

//    
function add(x, y) {
  return x + y;
}
上のコードでは、Functionコンストラクタは、最後のパラメータがadd関数の「関数体」であることを除いて、三つのパラメータを受け入れます.他のパラメータはすべてadd関数のパラメータです.
任意の数のパラメータをFunctionコンストラクタに渡すことができます.最後のパラメータだけが関数体として扱われます.パラメータが一つしかないなら、このパラメータは関数体です.
var foo = new Function(
  'return "hello world"'
);

//    
function foo() {
  return 'hello world';
}
Functionコンストラクタはnewコマンドを使わずに返しても良いです.
総じて、このような宣言関数の方式は非常に直観的ではなく、ほとんど使われていません.関数の繰り返し宣言
同じ関数が何度も声明されると、後の声明が前の声明を覆います.
function f() {
  console.log(1);
}
f() // 2

function f() {
  console.log(2);
}
f() // 2
上のコードでは、後の関数宣言が前回を覆っています.また、関数名の向上により、前回の宣言はいつでも無効となりますので、特に注意してください.
条件文
通常はコードを書く時、異なる決定のために異なる動作を実行する必要があります.コードに条件文を使ってタスクを完了できます.
JavaScriptでは、以下の条件文が使えます.
if    -          true  ,          
if...else    -      true      ,     false        
if...else if....else    -                   
switch    -                   
1.If文
コードは、指定された条件がtrueの場合にのみ実行されます.構文
if (  )
  {
         true       
  }
注意:小文字のifを使ってください.大文字(IF)を使うとJavaScriptエラーが発生します.
2.If...else文
if....else文を使用して、条件がtrueの時にコードを実行し、条件がfalseの時に他のコードを実行してください.構文
if (  )
  {
       true       
  }
else
  {
        true       
  }
4.If...else if...else文
if....else if...else文を使用して、複数のコードブロックを選択して実行します.構文
if (   1)
  {
      1   true       
  }
else if (   2)
  {
      2   true       
  }
else
  {
条件1と条件2がtrueでない場合に実行されるコード}