[解決済み] Javascriptの関数でパラメータを渡さなかった場合はどうなりますか?
2022-11-05 01:42:42
質問
私はJavascriptの世界に入ったばかりで、非常に基本的な関数を書いているところですが、偶然にも以下の例に出会いました。
サンプル関数
function myfunction(x) {
alert("This is a sample alert");
}
ここで、この関数を呼び出すと
myfunction();
を呼び出すと、アラートが表示されます。パラメータを渡していないのに、エラーや警告を出さずに関数を呼び出すことができるのはなぜでしょうか。
EDIT
これほど多くの素晴らしい回答があるとは思っていませんでしたし、どの回答がベストであるかを言える立場にはありません。
どのように解決するのですか?
何も起こりません。つまり、javascriptでパラメータを渡すことは任意なので、エラーや警告が出ることはありません。
供給されなかったすべてのパラメータには
undefined
値
.
function foo(x, y, z){
//...
}
foo(1);
の中は
foo
関数の中で、今
function foo(x, y, z){
x === 1
y === undefined
z === undefined
}
というように、さらに引数を渡すこともできます。
foo(1,2,3,4,5,7); // Valid!
で与えられたパラメータの量を知ることができます。
arguments.length
によって提供されるパラメータの量を知ることができます。
function foo(x, y, z) {
console.log('x value: ' + x);
console.log('y value: ' + y);
console.log('z value: ' + z);
console.log('Arguments length: ' + arguments.length);
}
console.log('Zero parameters');
foo();
console.log('Four parameters');
foo(1, 2, 3, 4);
任意の数のパラメータを扱える便利な関数の例です。
function max() {
var maxValue = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (maxValue < arguments[i]) {
maxValue = arguments[i];
}
}
return maxValue;
}
alert(max(1, 5, 7, 2, 88, 32, 44));
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] JavaScriptの変数のスコープとは何ですか?
-
[解決済み] JavaScriptの「new」キーワードとは何ですか?
-
[解決済み】JavaScript版sleep()とは?)
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] BlobからArrayBufferへ移行する方法
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] 各オブジェクトに?重複
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる
-
[解決済み] 変異を伴わないオブジェクトからの値の削除