Open1

【JS】変数に引数を与えると?

Kohki_TakatamaKohki_Takatama

はじめに

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")を指します
よってこの関数は正常に動作します。