関数内のコードで、一部の値を決定できない場合は、関数のパラメーターを通じて外部から値を受け取ることができ、関数はさまざまなパラメーターを渡すことでさまざまな操作を完了できます。
関数パラメータは、仮パラメータと実パラメータに分けられます。関数を宣言するとき、関数名の後に括弧内にパラメーターを追加できます。これらのパラメーターは仮パラメーターと呼ばれます。関数が呼び出されるときは、実パラメータと呼ばれる対応するパラメータも渡す必要があります。関数の仮パラメータは、Li 数が宣言された時点では関数が呼び出されておらず、これらのパラメータがどのような値を渡すかが不確実であるため、仮パラメータです。実パラメータは実際のパラメータであり、その値は関数が呼び出されたときに決定されます。
関数パラメータと実パラメータの具体的な文法形式は以下のとおりです。
function 函数名(形参1,形参2,...) //函数声明的小括号里的是形参
//函数体代码
}
函数名(实参1,实参2,...); //函数调用的小括号里的是实参
関数には、カンマで区切って複数のパラメータを指定することも、パラメータを指定しないこともできます。以下では、コードを通じて関数パラメーターの具体的な使用法を示します。
function cook(arg) {
console.log(arg);
}
cook('potato');
上記のコードでは、 arg は関数の仮パラメータであり、変数に似ており、関数が呼び出されるときの値は、呼び出し時に渡される値、つまりポテトになります。
次に、任意の 2 つの数値の合計を求める関数の使用方法を示します。具体的なコードは次のとおりです。
function getSum(numl,num2) {
console.log(numl + num2);
}
getSum(1,3);
//输出结果:4
getSum(3,8);
//输出结果:11
上記のコードでは、4 行目のコードは、関数を呼び出すときに 2 つの実パラメータ (それぞれ 1 と 3) を渡します。これら 2 つの実パラメータは、関数内の仮パラメータ num1 と num2 に対応し、これをインラインで変更します。 2 2 つの値が加算されるため、結果の出力は 4 になります。同様に、5 行目のコードは関数呼び出し時に 2 つの実パラメータ 3 と 8 を渡しているため、結果は 11 になります。
コツを学びましょう:
関数の仮引数は変数とみなすことができ、関数の仮引数に値型変数を引数として渡す場合、実際にはスタック空間にある変数の値を仮引数にコピーします。メソッド 仮パラメータを変更しても、外部変数には影響しません。
function fn(a) {
a++;
console.log(a);
}
var x = 10;
fn(x);
console.log(x);
参照型変数を仮引数に渡す場合、実際にはその変数がスタック空間に保存しているヒープアドレスを仮引数にコピーしますが、仮引数と実引数は実際には同じヒープアドレスを格納しているため、次のような動作になります。同じオブジェクト。
function Person(name) {
this.name = name;
}
function f1(x) {
// x = p
console.log(x.name); // 2. 这个输出什么 ?
x.name = "张学友";
console.log(x.name); // 3. 这个输出什么 ?
}
var p = new Person("刘德华");
console.log(p.name); // 1. 这个输出什么 ?
f1(p);
console.log(p.name); // 4. 这个输出什么 ?