ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript 関数の変更可能性に関する簡単な説明parameters_javascript スキル

JavaScript 関数の変更可能性に関する簡単な説明parameters_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 17:10:431487ブラウズ

これは、筆記試験の問題を考えた結果です。通常、関数内のパラメーター値を変更する人はいません。ここで説明するのは 3 つの方法です。

1、関数宣言時に仮パラメータを直接変更します

コードをコピー コードは次のとおりです

function f1(a) {
alter(a);
a = 1;//仮パラメータ a
alter(1 === a) を変更します);
alter (1 === argument[0]);
}
f1(10);

関数 f1 は、パラメーター 10 を渡します。 、最初に 10 をポップアップし、a を変更すると 1、true は 2 回ポップアップし、a と argument[0] は両方とも 1 になります。

2、関数内の引数オブ​​ジェクトを通じて

コードをコピーします コードは次のとおりです。

function f2(a) {
alter(a);
argument[0] = 1;//引数を変更します
alter(1 === a) );
alert(1 === argument[0]);

}

関数 f1 と同じです。

3. 関数内で宣言されたローカル変数は仮パラメータと同じ名前です

コードをコピーします コードは次のとおりです:

function f3(a) {
alert(a);
var a = 1;//ローカル変数 a を宣言し、値を代入します。 of 1
alter(1 === a);
alter(arguments[0]);
}
f3(10);

関数 f3 は、仮パラメータ a を指定し、関数内でローカル変数 a を宣言します。代入は 1 ですが、ここでの a はパラメータ a のままです。これは、最後に表示される argument[0] が 1 に変更されるという事実によって証明できます。 。

4. 値を割り当てずにローカル変数 a を宣言するだけの場合は状況が異なります

コードをコピー コードは次のとおりです。

function f3(a) {
var a;//宣言のみ、代入なし
alter(a); argument[0 ]);
}
f3(10);

この時点で表示されるのは未定義ではなく 10 です。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。