質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

746閲覧

仮引数の必要性について

sato771

総合スコア1

foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/06/02 11:12

編集2020/06/02 11:16
{ const sample =["あ","い","う"]; function hoge(value){ console.log(value) } sample.forEach(hoge); }

forEach文を勉強中です。
そこで、なぜ(value)という仮引数がないと、配列の中身が反映されないのかふと疑問に思いました。

仮に(value)の中身に何も入れず、()という仮引数が無い空カッコの状態で実行して、配列の中身が反映されないのかが謎です。
↓この状態のことです

{ const sample =["あ","い","う"]; function hoge(){ console.log() } sample.forEach(hoge); }

「そもそも仮引数という概念を記述しないと中身が反映されない」と覚えるしかないですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

仮引数

仮引数とは、関数定義時に指定する引数です。

仮引数は、関数実行時に引数を受け取るために必要です。

Array.prototype.forEach

そこで、なぜ(value)という仮引数がないと、配列の中身が反映されないのかふと疑問に思いました。

Array.prototype.forEach がコールバック関数を呼び出す際に第一引数に「要素値」を指定しているからです。
挙動の詳細を知りたい場合は、「Polyfillコード」もしくは「ECMAScript仕様書」を読むと良いです。

Re: sato771 さん

投稿2020/06/02 11:35

think49

総合スコア18189

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

仮に(value)の中身に何も入れず、()という仮引数が無い空カッコの状態で実行して、配列の中身が反映されないのかが謎です。

いえ、反映することは可能です。

javascript

1function hoge(){ 2console.log(arguments[0]); 3} 4

投稿2020/06/02 11:20

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/06/02 11:21

> 配列の中身が反映されないのかが謎です。 何を疑問に思っているのか謎です。「console.log()」は「引数のない」メソッド呼び出しです。
sato771

2020/06/02 11:25

回答ありがとうございます。 おっしゃていただいた記述は理解出来たのですが、 配列の中身を一気に反映させるには function hoge(value){ console.log(value) } のようにvalueという仮引数を入れてしまうのが手っ取り早いですか?
maisumakun

2020/06/02 11:26

そうですね、いちいちargumentsを使うのも面倒かと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問