Open1
【JS】変数に引数を与えると?
はじめに
JavaScriptの特性の話です。
この記事の主題は引数を明示せずとも受け取るケースです。
TypeError
のケース
const hoge = "hoge"
hoge(1) // TypeError: value is not a function
hoge
は関数ではないため、TypeError: value is not a function
となります。
引数を受け取れないケース
const activate = () => "Hello, World!"
console.log( activate() ) // "Hello, World!"
console.log( activate(100) ) // "Hello, World!"
greet
は変数であり、関数でもあります。よってTypeError
は発生しません。
ただし、greet
にいくら引数を与えても、それを認識しません。
引数を受け取るケース
2パターンあります。
1. 引数があることを明示した場合
const greet = (name) => `Hello, ${name}!`
console.log( greet("Kenji") ) // "Hello, Kenji!"
console.log( greet() ) // "Hello, !"
2. 中に関数が入っている場合
この記事の主題です。
const log = console.log
log("ok") // "ok"
引数を明示していませんが、const log = console.log
と定義したため、log("ok")
は、そのままconsole.log("ok")
を指します。
よってこの関数は正常に動作します。