引数とは?引数の仕組みについてまとめてみた。

画像

引数とはプログラムや関数に渡す値のことです。基本、引数は関数の中で値を渡したい時に使います。関数は呼び出し時に外側からデータを渡せる性質があります。値を渡したい時に使われるのが引数ということです。

引数の概念はとても複雑です。プロのエンジニアの方でも引数について上手く説明できない人がいるくらいです。引数を理解することが難しい訳は引数と同じ役割を担う「パラメータ」というものが存在するからです。

もくじ

  1. 引数とは
  2. なぜ引数は必要なのか
  3. パラメータとは
  4. 引数とパラメータの違い
  5. 結局、引数とは何か?

引数とは

引数とはプログラムや関数に渡す値のことです。基本、引数は関数の中で値を渡したい時に使います。関数は呼び出し時に外側からデータを渡せる性質があります。値を渡したい時に使われるのが引数ということです。

仮に引数をもので例えるとした場合、「家電製品」がわかりやすいかと思います。電子レンジの「温め時間」や、エアコンの「設定温度」が引数の概念に相当します。引数は便利に調整できる「機能」だと思ってください。

argument.js
function square (number) {
  return number * number;
}
square(5); // 5が引数 5は関数内ではnumberという名前がついている
square(12); // 12が引数 12は関数内ではnumberという名前がついている

引数の使い方はsquare( )の中に任意の数値を入れます。引数の値を関数の( )で受け取ります。引数には文字列もしくは変数を入れることも可能です。

argument.js
function sayHello (name, age) {
  return "hello, " + name + "さん 年齢は" + age + "です";
}
sayHello("山田", 35); // "hello, 山田さん 年齢は35です"

引数は複数定義することもできます。引数の使い方は関数の( )の中に引数名を入れます。もし、( )の中に参照したい引数名がない場合、返り値はundefinedとなります。

なぜ引数は必要なのか

引数を使わずにプログラミングを組むことは可能です。しかし、引数を使うことでソースコードがスッキリして、エラーが少なくわかりやすいソースコードを作成することが可能です。

また、引数を使用することで同じソースコード内で何度も使用される同じ処理を、1つの関数を用いて引数・戻り値で使い回すことができます。使い回すことにより非常に簡素化されたソースコードにすることができます。

実際に引数がないプログラミングを書く不便さを感じないと「必要性」や「使いどころ」は理解できないかもしれませんね。

引数は一種の「発明」と言っても過言ではないです。

パラメータとは

パラメータとは関数に受け渡されるものを宣言することです。外から入ってくる値とも言います。IT分野では外部から投入されるデータなどのことをパラメータと呼ぶことが多いです。

パラメータを別の言い回しで例えた場合、表計算ソフト「エクセル」を起動する時に、開くファイルの名前を指定するものや電子レンジで温め時間を指定するものだと思ってください。

引数とパラメータの違い

引数とパラメータを同じだと考える人がいるかと思いますが「引数 === パラメータ」ではないです。

パラメータは関数に受け渡されるものの「宣言」です。それに対して引数は関数に渡した「実際の値」のことです。もう少し噛み砕いて説明すると、パラメータは「関数に受け渡されるものの宣言」で、引数は「関数に渡した実際の値」ということです。

argument.js
function hello (a,b) {}; // aとbというパラメータを受け取るhelloという関数
hello(3,5); //hello関数に引数として3,5を渡す

ただ、あまり厳密に区別しなくても会話は成立することが多いです。パラメータと引数を混同して使っても意思疎通にそれほど影響出ていないので問題ないと思います。

でも、きちんと使い分けて伝えた方がすっきりしますよね。細かい人はずっと気になった状態でいるかもしれません。要は気持ちの問題ということです。

結局、引数とは何か?

画像

関数の引数は概念としてはかなり難しい部類に入ります。プロのエンジニアの方でも頭が混乱しやすい部類です。「引数」と「パラメータ」を混同してしまう人がいるからではないかと思います。

引数を使用したソースコードを書いていくうちに自然と引数の使い方に慣れてくるかと思うのでそこまで焦らなくても良いです。いまはなんとなく程度で理解しておけば大丈夫です。

引数を使用したソースコードをたくさん書けば自ずと引数に対して理解度は深まってくるかと思います。