JavaScript宣言関数の方式及び各方式の違い
2272 ワード
1.
:
function ( 1, 2,...){
//
}
1:
function sum(num1,num2){
return num1+num2;
}
2.
その は の りです
var = function( 1, 2,...){
//
};
2:
var sum = function(num1,num2){
return num1+num2;
};
2は を し、 として します. の ろに がないのは、 を って を する に、 を う がないからです. sumで を することができます.また、 の を するように、 を って を すると、 の にセミコロンがあります.
3.Functionコンストラクターを する
Functionコンストラクタは の のパラメータを け り、 のパラメータは 、 のパラメータは しい のパラメータを げます.その は の りです
var = new Function(" 1"," 2",...," n"," ");
3:
var sum = new Function("num1","num2","return num1+num2");
の い
な から, をFunctionコンストラクタで する は であるが, を するのはこの が2つのコードを し, に するからである. のJavaScriptコードを めて し、 されたコンストラクタの を 2 します.しかし、このような は「 はオブジェクトであり、 はポインタである」という を するために に である.
と の2つの の にとって、 は ではない. は、まず を み り、 のコードを する に にします. については、 がそのコード に されるまで、 に されて される があります. をあげましょう.
4
alert(sum(10,10));//20
function sum(num1,num2){
return num1+num2;
}
4の は20です.なぜですか?コードが される に、 は を じて(function declaration hoisting)アップグレードのプロセスを い、 に を しました.コードの を める 、jsエンジンは 1 で を して、それらをソースコードツリーの に きます.したがって、 がコードを び した でも、jsエンジンは を に げることができます.しかし、 の を に すると、 にエラーが します.
5
alert(sum(10,10));//20
var sum = function(num1,num2){
return num1+num2;
};
5は ではなく に があるため、エラーを します. い えれば、 のあるステートメントに する に、 sumには への は されません.また、 の のコードは されません. には の にも されません.