[過去ログ]
JavaScript の質問用スレッド vol.125 (1002レス)
JavaScript の質問用スレッド vol.125 http://mevius.5ch.net/test/read.cgi/tech/1659855460/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
518: デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.243.148]) [sage] 2023/01/05(木) 00:18:03.56 ID:7P17JKmwr >>517 いや、関数かメソッドかの話じゃなくて $('#display').html(' ')をその場で実行してその戻り値であるjQueryオブジェクトを渡しちゃってるでしょって話 ちゃんと理解できてる? https://js.studio-kingdom.com/jquery/manipulation/html#1 http://mevius.5ch.net/test/read.cgi/tech/1659855460/518
519: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/05(木) 00:26:22.30 ID:EVXeoiyo0 私の勘違いだったのですね。 たしかに関数ではない。。 一応書籍のページ画像をuploadしました。 「引数funcは必ず関数リテラルで指定してください。」 https://uploda1.ysklog.net/uploda/8298a4c0da.png 「関数リテラルは....ある関数の引数として渡したり....」 https://uploda1.ysklog.net/uploda/0bcdf35455.png http://mevius.5ch.net/test/read.cgi/tech/1659855460/519
520: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/05(木) 00:27:48.45 ID:EVXeoiyo0 >>518 理解したありがとう! http://mevius.5ch.net/test/read.cgi/tech/1659855460/520
521: デフォルトの名無しさん (ワッチョイ 2e5c-uhAF [39.3.101.10]) [sage] 2023/01/05(木) 02:04:13.18 ID:hRDnYJsk0 >>519 「引数funcは必ず関数リテラルで指定してください。」 ちょっと問題のある文章だなあ https://developer.mozilla.org/ja/docs/Web/API/setTimeout 第一引数は関数またはjavascriptコードとして実行される文字列 関数ってのは関数呼び出しじゃなくて関数名、または無名関数(関数リテラル) >>514 文字列で渡したら動くはず setTimeout("$('#display').html(' ')", 1000); http://mevius.5ch.net/test/read.cgi/tech/1659855460/521
522: デフォルトの名無しさん (ワッチョイ 8201-+uJR [219.204.123.70]) [sage] 2023/01/05(木) 06:17:33.15 ID:O+NRT3S+0 >>521 > 「引数funcは必ず関数リテラルで指定してください。」 > ちょっと問題のある文章だなあ まあそこは直前に文字列でも指定できるけどって書いてるから教育的指導なんだろうとは思う まあ「必ず」という言葉が強すぎるから「引数funcは関数リテラルで指定するようにしてください。」程度でいいと思う むしろ問題は「関数リテラルは宣言した時点では、名前を持たないことから匿名関数、または無名関数と呼ばれることもあります。」の方だろうね http://mevius.5ch.net/test/read.cgi/tech/1659855460/522
523: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/05(木) 09:18:58.87 ID:EVXeoiyo0 >>521 >文字列で渡したら動くはず >setTimeout("$('#display').html(' ')", 1000); ありがとう。関数とは、関数呼び出しではなく実行される文字列 次いでもう一点お願いします。 https://uploda1.ysklog.net/uploda/0bcdf35455.png リスト4-04 function_literal.js 以下は、関数リテラルを使ってリスト4-01を書き換えたものです。 var getTraiangle = function(base,height){ return base * height/2; } console.log('三角形の面積:'+getTrianle(5,2)); ↑の getTrianle(5,2) は、関数リテラルなのですね。 てっきり()がないものが関数リテラルと思っていたが、 どうも、それも間違いようで。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/523
524: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/05(木) 09:20:11.59 ID:EVXeoiyo0 あくまで、関数を変数に代入するということが、重要なのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1659855460/524
525: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [] 2023/01/05(木) 09:23:08.82 ID:EVXeoiyo0 「関数呼び出し」と 「引数付の関数リテラル」は それだけみても違いわからないですね。 定義された場所を見て判断しないと。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/525
526: デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.246.162]) [sage] 2023/01/05(木) 10:06:29.26 ID:rM8SDmmnr >>523 >>setTimeout("$('#display').html(' ')", 1000); >ありがとう。関数とは、関数呼び出しではなく実行される文字列 いやいや、それは関数じゃなくてただの文字列 setTimeoutの第一引数は文字列か関数って書いてあるでしょ 関数リテラルって言葉はもう忘れていいと思うよ そもそもMDNに記述がないから便宜的なものだし、その本での説明も怪しい 定義の仕方で区分されてるだけで実質的にはただの関数で 挙動に差異があるわけでもないだろうし http://mevius.5ch.net/test/read.cgi/tech/1659855460/526
527: デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.246.162]) [sage] 2023/01/05(木) 10:52:19.71 ID:rM8SDmmnr >>522 >「引数funcは関数リテラルで指定するようにしてください。」程度でいいと思う それだとfunction命令で定義した関数は指定してはいけないと誤解されるからリテラルを削ったほうがいいかと http://mevius.5ch.net/test/read.cgi/tech/1659855460/527
528: デフォルトの名無しさん (ワッチョイ e6cf-/EFQ [153.174.224.39]) [sage] 2023/01/05(木) 10:52:37.45 ID:uFuuDD5j0 >>523 関数リテラルという呼び方はひとまず置いといて、無名関数という概念でとらえるとよい function(~~){~~} は見ての通り、ひとつの無名関数である var getTraiangle = function(base,height){ return base * height/2; } によって、変数getTraiangle でこの無名関数を参照できるようになる getTraiangle(5,2) では変数名を使って先の無名関数を呼び出し、戻り値が取得される これは一般に「関数の戻り値」と呼ばれる (関数リテラルではない) console.log('三角形の面積:'+getTraiangle(5,2)); では、「+」によって、文字列 '三角形の面積:' と数値である戻り値が連結されて、ひとつの文字列が生成される console.log()がそれを出力する >>525 何かしら(無名)関数を使うにあたり、引数が要るなら付ける、要らないなら付けない、それだけの話 あなたの言う「引数付の関数リテラル」は勘違いで、「引数付きの関数呼び出し」に過ぎない >>524 そういうこと http://mevius.5ch.net/test/read.cgi/tech/1659855460/528
529: デフォルトの名無しさん (ワッチョイ 2e5c-uhAF [39.3.101.10]) [sage] 2023/01/05(木) 11:50:49.92 ID:hRDnYJsk0 >>523 >setTimeout("$('#display').html(' ')", 1000); ありがとう。関数とは、関数呼び出しではなく実行される文字列 違う。全く違う。めっちゃ大事なことだから勘違いしないで それはsetTimeoutoの第一引数を文字列として指定した場合のこと 第一引数に関数を指定する方法は>>514で君は既にやっている setTimeout(clearDisplay, 1000); clearDisplay関数を定義してそれをsetTimeoutの第一引数に渡している これでいい >>527の言う通り >>526の言う通り今は無名関数とか関数リテラルとかにこだわらない方がいい >>523のうp画像に無名関数は重要な概念なので後ほど詳述ってあるからそこをみっちり勉強してね http://mevius.5ch.net/test/read.cgi/tech/1659855460/529
530: デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.240.4]) [sage] 2023/01/05(木) 12:50:07.72 ID:w+0CNSMQr 関数リテラルの説明についてはここが一番しっくりくる https://www.javadrive.jp/javascript/function/index5.html 「関数リテラルを使った関数定義」って言い回しを強調してるのが良い だから関数リテラルを引数として渡すって言ったらこういうことだよなって dispNum(10, 8, function(x, y){ return (x + y) / 2; }); http://mevius.5ch.net/test/read.cgi/tech/1659855460/530
531: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/05(木) 14:46:47.66 ID:EVXeoiyo0 すいません。やっぱり関数リテラルという意味を理解したい。。でも↓この質問でわかるかも。 だれか答えていただけますでしょうか? --- 次のコードがあります。1から5のうち どれが適切でしょうか? let dispMessage = function(msg){ console.log(msg); }; 1. function(msg){console.log(msg);} は関数リテラルである。 2. dispMessage は関数リテラルである。 3. let dispMessage = function(msg){ console.log(msg); }; が全体として関数リテラルである。 4. 全て関数リテラルとはいえない。 5. 関数リテラルとは、用法のことであり、 コード部分を表すものではない。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/531
532: デフォルトの名無しさん (ワッチョイ e67b-28F+ [153.178.229.141]) [sage] 2023/01/05(木) 14:53:38.67 ID:mmmJuCOb0 >>531 ぐぐったら以下の様に出る。結構理解しやすいと思うが。 リテラルとは リテラルとは、プログラムのソースコードにおいて使用される、数値や文字列を直接に記述した定数のことである。 変数の対義語であり、変更されないことを前提とした値である。 プログラミング言語のコード中にリテラルが挿入される場合には、判別のために特定の書式を用いる必要がある。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/532
533: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/05(木) 15:02:17.50 ID:EVXeoiyo0 うん。「リテラル」ということばによって惑わされてきた気がする。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/533
534: デフォルトの名無しさん (アウアウウー Sa6b-y47Y [106.155.3.231]) [sage] 2023/01/05(木) 15:06:19.08 ID:akcN5qw4a 関数リテラルは関数として評価可能な右辺値と考えておけばまあいいんじゃないの 正確な定義は構文木の定義を見れば書いてある http://mevius.5ch.net/test/read.cgi/tech/1659855460/534
535: デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.208.232.21]) [sage] 2023/01/05(木) 15:10:13.35 ID:HxGsZjLmr >>531 1だろう let s = "abc"; の"abc"を文字列リテラルと呼ぶけどそれを代入した変数sを 文字列リテラルとは呼ばないでしょ http://mevius.5ch.net/test/read.cgi/tech/1659855460/535
536: デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.208.238.17]) [sage] 2023/01/05(木) 15:28:42.13 ID:c7qQflpDr >>531 で、繰り返しになるけど本やサイトによっても説明がまちまちで MDN探しても出てこないような用語だからあまり囚われない方がいい 理解しようとして時間をかけるだけ無駄 http://mevius.5ch.net/test/read.cgi/tech/1659855460/536
537: デフォルトの名無しさん (ワッチョイ 9f63-uhAF [180.58.213.164]) [sage] 2023/01/05(木) 15:35:00.85 ID:m3Sm+5EJ0 >>531 強いて言えば1かな でも数値・文字列・正規表現リテラルみたいにプログラム中に単独で書くことは出来ないね 変数に代入するなり関数の引数に使うなりしないとエラーになる 英語でもfunction literalっていうみたいだけど関数リテラルってあんまりいい言葉だと思わないなあ 33; "hello"; /^js$/; function() {return true}; //SyntaxError こんなことにこだわるよりもっと基本的なこと勉強した方方がいいんじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1659855460/537
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 465 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s