04--関数、小練習、初期スコープ
3467 ワード
関数
プログラミングは、同じ機能のコードを抜き出してブラックボックスに入れ、呼び出しごとにこのブラックボックスを呼び出すと、もう自分で書かなくてもいいです.何度も繰り返さないようにします.Javascriptの中でブラックボックスの役割を果たしているのが関数です.結合とは重複の意味です.
関数のfunctionキーワードはVarと本質的な違いがありません.関数の基本機能と呼び出し:
1、関数宣言の基本形式:
2、関数式
3つの方法は1つの違いしかありません.1つ目の定義と3つ目の定義方法の関数名は自分自身です.2つ目は変数名です.
構成形式
1、関数名は、関数キーワードfunction、関数名、()、{}が必要です.2、パラメータ(オプション)javascriptのパラメータは個数を制限しません.これもjavascriptパラメータの強力な機能です.形の参と実の参の数は一定ではありませんて、実参加は形の参より多いことができて、形の参も実の参より多いことができます.は、括弧にaを追加し、bは、関数内で暗黙的に宣言された2つの変数に相当しますが、値がないので、パラメータを渡すことによってパラメータに値を割り当てることができます.
各関数には、アーグメンント--[11,2,3]--実際の参加リストがありますが、参加を受け入れたかどうかに関わらず、アーグメンツは実際の参を行列として保存します.参加を受信していない場合も、すべての参加リストにアクセスできます.实参
パラメータの長さ:外形の長さはsum.lengthでアクセスでき、実際のパラメータの長さはargments.lengthで知ることができます.パラメータは変数であれば、どのタイプでも大丈夫です.
イメージと実パラメータの数を比較します.
つまり、形参と実参加が同じ時にマッピングルールがあります.待たないと、形参が多くなります.
3、戻り値(return)は終了関数であり、関数の最後にreturnが付加されていない場合、システムは暗黙的にreturnを追加して関数を終了します. は戻り値です.これはよく使われています.
プログラミングは、同じ機能のコードを抜き出してブラックボックスに入れ、呼び出しごとにこのブラックボックスを呼び出すと、もう自分で書かなくてもいいです.何度も繰り返さないようにします.Javascriptの中でブラックボックスの役割を果たしているのが関数です.結合とは重複の意味です.
関数のfunctionキーワードはVarと本質的な違いがありません.関数の基本機能と呼び出し:
function test(){
var a = 123;
var b = 234;
var c = a +b;
doucument.write(c);
}
test(); //357 //
関数の定義1、関数宣言の基本形式:
//
function test(){
//
}
document.write(test) // function test(){}
//test ,test()
関数名と変数名の名前のつけ方が似ていますが、もし関数名や変数名が複数の単語であれば、開発規範に合うように、最初の単語を小文字で書いてください.2、関数式
// :
var test = function testAbc(){
document.write('a'); //
}
// : ---- ,
var demo = function(){
document.write('b');
}
document.write(test()) //a, test()
ネーミング関数表現形式宣言関数は、関数の名前を無視します.ここでは関数名も匿名関数に相当します.つまり、式として機能すると、関数体として機能しません.ネーミング関数式は関数体を表すのも変数名testです.abcではありません.3つの方法は1つの違いしかありません.1つ目の定義と3つ目の定義方法の関数名は自分自身です.2つ目は変数名です.
構成形式
1、関数名は、関数キーワードfunction、関数名、()、{}が必要です.2、パラメータ(オプション)javascriptのパラメータは個数を制限しません.これもjavascriptパラメータの強力な機能です.形の参と実の参の数は一定ではありませんて、実参加は形の参より多いことができて、形の参も実の参より多いことができます.
function sum(a, b){
// -- var a; var b;
document.write(a+b);
//sume.length --
}
パラメータの種類を宣言する必要はありません.ここでのパラメータは一つの形式を表していますので、形式パラメータと呼ばれています.各関数には、アーグメンント--[11,2,3]--実際の参加リストがありますが、参加を受け入れたかどうかに関わらず、アーグメンツは実際の参を行列として保存します.参加を受信していない場合も、すべての参加リストにアクセスできます.
function sum(a){
//arguments -- [11, 2, 3]
//console.log(arguments); //
for(var i = 0; i< arguments.length; i++){
console.log(arguments[i]);
}
}
sum(11, 2, 3)
ここで実際に使う時に送るパラメータは実際のパラメータです.パラメータの長さ:外形の長さはsum.lengthでアクセスでき、実際のパラメータの長さはargments.lengthで知ることができます.パラメータは変数であれば、どのタイプでも大丈夫です.
イメージと実パラメータの数を比較します.
function sum(a, b, c, d){
if(sum.length > arguments.length){
console.log(' ');
}else if(sum.length < arguments.length){
console.log(' ');
}else{
console.log(' ');
}
}
sum(2, undefined, 11,'abc',7);
任意の数の合計を実現します.function sum(){
var result = 0;
for(var i = 0; i< arguments.length; i++){
result += arguments[i];
}
console.log(result)
}
sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
形参とアーグメンントは同時に変化しますが、彼らは同じ変数ではなく、システム内部にマッピングルールがあります.例えば、以下の例:function sum(a, b){
//arguments[1,2]
//var a = 1;
//
a = 2;
console.log(arguments[0]); // 2
//
a = 2;
arguments[0] = 3;
console.log(a); // 3
}
sum(1, 2);
しかし、実際の参加は形より少なく、このときのマッピングは存在しない場合があります.例えば、実際の参は一つしかなく、形は二つあります.function sum(a, b){
b = 2;
console.log(arguments[1]); // undefined
}
sum(1);
実際に参加して送る時いくつかあって、決めたのは変えられないで、ここでb=2も実参加リストに値を添加することはできなくて、それがまったく第2のパラメーターがないため、この時bは1つの変数に相当します.つまり、形参と実参加が同じ時にマッピングルールがあります.待たないと、形参が多くなります.
3、戻り値(return)
function myNumber(target){
return +target;
}
var num = myNumber('123');
console.log(typeof(num) + " " + num);