JavaScript 関数を紹介します
関数の基本構文は次のとおりです:
function functionName(arg0,arg1,...,argN) { statements }
これは例です:
function str(name,age){ document.write("hello my name is " + name + ". and i am " + age + " years old."); } str(" oliver",23); //hello my name is oliver. and i am 23 years old.
さらに、どの関数でも、return ステートメントの後に返される値を使用することで、いつでも値を返すことができます。例:
function sum(num1,num2){ return num1 + num2; alert("hello"); //返回return 之后不会继续执行alert } var result = sum(321,32); document.write(result); //353
実行は return ステートメントの直後に停止して終了するため、return ステートメントの後にあるコードは実行されません。
もちろん、関数には複数の return ステートメントを含めることができます。例:
function conp(a,b){ if (a > b){ return a; }else if (a == b){ return "equal"; }else{ return b; } } var result = conp(4,4); document.write(result); //equal var result = conp(321,4); document.write(result); //321
さらに、return ステートメントは戻り値を持たないこともできます。このようにして、関数の実行を即座に停止し、未定義を返すことができます。例:
function conp(a,b){ if (a > b){ return; document.write("bad"); }else{ document.write(b); } } var a = conp(33,3); document.write(a); //返回undefined 且不会出现"bad"
関数のパラメータ
ECMAScript 関数のパラメーターには、任意の数と任意のデータ型を指定できます。最初のパラメータはarguments[0]、2番目のパラメータはarguments[1]など、関数本体のargumentsオブジェクトを通じてアクセスできます。名前付きパラメータは便利ですが、必須ではありません。例:
function greeting(){ document.write("hello " + arguments[0] + ". you look " + arguments[1] + "."); } greeting("oliver","good"); //hello oliver. you look good.
さらに、arguments オブジェクトの length プロパティにアクセスすることで、関数に渡されるパラメーターの数を取得できます。例:
function countArguments(){ document.write("there are " + arguments.length + " arguments here."); } countArguments(321,321,32,32); //there are 4 arguments here.
if文と組み合わせて判定することができます。例:
function count(){ if (arguments.length == 1){ document.write("you just have 1 arguments."); }else{ document.write("you have many arguments."); } } count(321,321,321) //you have many arguments.
また、arguments[] は名前付きパラメータとともに使用できます。
関数のオーバーロード (オーバーロードなし)
同じ名前の 2 つのパラメーターが定義されている場合、名前の変更は後で定義された関数にのみ属します。例:
function add(){ document.write(arguments[0] + arguments[1]); } function add(){ document.write(arguments[0] + 100); } add(321,2); //421 不会执行第一个函数(两个参数相加),只执行最后一个同名的函数(第一个参数加上100)
追記: JavaScript 匿名関数
関数は JavaScript で最も柔軟なオブジェクトです。ここではその匿名関数の使用法のみを説明します。無名関数:関数名のない関数です。
1.1 関数の定義 まず関数の定義を簡単に紹介します。大きく分けて 3 つの方法があります
最初のタイプ: これも最も一般的なタイプです
function double(x){ return 2 * x; }
2 番目の方法: このメソッドは Function コンストラクターを使用し、パラメーター リストと関数本体の両方を文字列として扱います。これは非常に不便なので、お勧めできません。
3 番目のタイプ:
「=」の右側の関数は無名関数であることに注意してください。関数を作成した後、関数は変数 square に代入されます。
1.2 無名関数の作成
最初の方法は、上で述べたように二乗関数を定義することであり、これも最も一般的に使用される方法の 1 つです。
2 番目の方法:
(function(x, y){ alert(x + y); })(2, 3);
ここ (最初の括弧内) で匿名関数が作成され、2 番目の括弧を使用して匿名関数を呼び出し、パラメーターを渡します。