とほほのjavascriptで勉強しています。
http://www.tohoho-web.com/js/function.htm#objFun …
ここの
function goukei() {
var ans = 0;
for (i = 0; i < goukei.arguments.length; i++) {
ans += goukei.arguments[i];
}
return(ans);
}
sum = goukei(1, 2, 3, 4, 5);
goukei関数を定義したときの引数は、なしなのに
goukei関数を呼び出すとき、goukei(1, 2, 3, 4, 5)と、このように5つも引数を指定しています。
Javaでは、こんな呼び出し方をすれば、コンパイルエラーになりますよね。
javascriptでは、引数なしで関数を宣言しても、呼び出すときに、好きな個数の引数を渡せるのですか?
「javascript 引数 省略」とか、「javascript 引数なし」とかいろいろググッてみたのですが
肝心の、javascriptでは引数なしにして宣言しても、呼び出すとき、好きな個数の引数つけて呼び出しても大丈夫。みたいな、確認したい記述はみつかりませんでした。
javascriptでは、このような書き方もできるということでしょうか。
No.1ベストアンサー
- 回答日時:
できます
JavaScriptでは関数の引数は
arguments
というオブジェクトに格納されます
つまり
function aaa( a0, a1) {
とした場合、常に
a0 == arguments[0]
a1 == arguments[1]
が成り立ちます
回答ありがとうございます。
関数の定義の引数の個数と、関数を呼び出す際の引数の個数が一致しないのは
javascriptではOKなんですね。
なんて簡便なんだろう。
引数がargumentsオブジェクトに格納されるという仕組みになっているのですね。
飲み込めました。
No.2
- 回答日時:
JavaScriptは引数をチェックしてくれない仕様になっています。
しかし、"arguments"というオブジェクト?があり、
これにより引数を管理する事ができます。
で、例題の場合は可変引数(引数で渡す値の数が自由に変えられる)のもので、
引数分だけループして合計すると言うものです。
回答ありがとうございます。
定義する側と、呼び出す側が一致していなくても、きちんとブラウザで実行されるので
あれ?と思ったら、そういうことだったんですね。
関数呼び出しで渡す引数の個数を、いろいろ変えられたら便利なんでしょうね。
今は、まだ未熟なので使いこなせないけど。
No.3
- 回答日時:
argumentsは慣れないと分かりづらいですね
きちんとかくとこんな感じです
<script>
window.goukei=function(){
var ans = 0;
var obj=arguments.callee;
for (var i = 0; i < obj.arguments.length; i++) {
ans += obj.arguments[i];
}
return(ans);
}
var sum = goukei(1, 2, 3, 4, 5);
alert(sum);
</script>
回答ありがとうございます。
今はまだjavascriptは未熟なので、提示してくださったコードを完全に理解
できないのですが、わかるようになるように、がんばろうと思います。
javascriptひととおり、飲み込んでから、再度、コードを読んでみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- JavaScript JavaScriptの即時関数の書き方 1 2022/11/29 09:52
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# C言語のwhileを含む関数について 2 2022/12/16 12:28
- C言語・C++・C# C言語初心者です、、、お助けください 2 2023/03/14 20:08
- その他(データベース) DAOファイルのSQLクエリの部分を引数にして呼び出すときに引数でSELECT文持たせたら 1 2023/01/10 17:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
第3日曜日のみの日付を取得、...
-
javaScript textareaの一行あた...
-
択一形式のテストをつくりたいです
-
分岐処理(アルゴリズム)
-
特定のclassを表示、非表示にする
-
Javascript で可能でしょうか
-
APIを使って埋め込んだグーグル...
-
ASP.NETのコントロールの値をJa...
-
GoogleMap 住所から座標の取得
-
商品コードを入力で、商品名、...
-
javascriptにお詳しい方に質問...
-
アルファベットABCD…をスマート...
-
JavaScriptのindexedDBに格納し...
-
なぜmatchメソッドがエラーにな...
-
ホームページの最終更新日を他...
-
ページ最終行へジャンプする方法
-
GASでGoogleフォームの自動返信...
-
functionから別のfunctionを実...
-
javascriptで自動計算フォーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
メールフォームの日付入力フォ...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
ローカルにあるファイルを検索...
-
HTMLで作った時報アプリが動き...
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
javascriptでテーブルに追加し...
-
VSCODE[Python]の設定について
-
JavaScriptで決まった「時刻」...
-
ASP.NET MVCでObjectをjsに渡す
-
イベントが初めの一回しか起き...
-
jqGridについて
おすすめ情報