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

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

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

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

Q&A

解決済

1回答

687閲覧

javascriptの関数呼び出しについて

LKawauso

総合スコア13

JavaScript

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

0グッド

0クリップ

投稿2020/06/18 12:04

初心者の質問ですみませんが、javascriptで分からない事があるので質問します。

関数呼び出しの時は 関数() で呼び出すと習いました。
なので、html側で関数を呼び出す時もonClick="関数()"で動くのですが、
js側で上記を書かずにaEddventListener('click',関数())とすると動きません。
関数()を関数 だけにすると動きます。
逆にhtml側でやる時は()を省くと動きません。()がある無しでどう言う意味があるのでしょうか?
返り値が入る?てのはなんとなく分かりますが、js側のイベント発火内では()が在ると動かず、html側では無いと動かないのはどう言う事なんだろうと思って質問しました。

ご回答いただけると嬉しいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

()がある無しでどう言う意味があるのでしょうか?

()を付けると、関数を実行します。
()を付けないのは、関数そのものです。

HTMLタグのonclick="~"は、クリックしたときに文字列を評価する(実行する)という機能です。

aEddventListener('click',関数)は、「クリックしたときに関数を実行する」という登録を実行します。なので、関数の実行結果じゃなくて関数そのものを引数で渡す必要があります。

投稿2020/06/18 12:36

otn

総合スコア85901

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

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

LKawauso

2020/06/18 13:01

ご回答ありがとうございます。   ()があると結果が返り、無いと式が実行される。と覚えたらいいのかな?と今思ってます。 デベロッパーツールで()あり無しで実行してみたら、関数()はアンデファインド 関数 式が帰ってきました。なので、上記の様な解釈になりました。奥が深くてjs大変ですが一つ理解出来てよかったです。ありがとう御座いました。
otn

2020/06/18 13:06

> 無いと式が実行される。 どういう意味でしょう? デベロッパーツールで、 > function foo() { return 1; } ← undefined > foo() ← 1 > foo ← ƒ foo() { return 1; } と、括弧を付けると実行されて、付けないと関数そのものというのが分かると思うのですが。
LKawauso

2020/06/18 13:15

あ、そう言う意味?です。 ()をつけると答えが帰ってきて、()が無いと式が帰ってきたのでクリックイベントの時は式を実行して欲しいので()無し、html側では結果が欲しいので()あり。。なのかなって解釈しちゃいました。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問