[過去ログ]
JavaScript の質問用スレッド vol.125 (1002レス)
JavaScript の質問用スレッド vol.125 http://mevius.5ch.net/test/read.cgi/tech/1659855460/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
499: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [] 2023/01/04(水) 19:01:14.59 ID:jNmuxM610 「無名関数」、「関数リテラル」の理解がちょっとぼやけています。 次の様なコードがあったとき、 let calcResult = function calc(a,b){ return a*b; } calc() と()をつけて表せるものが普通の関数、それを変数に代入したもの calcResult が関数リテラルかと思っていました。 しかし、どうやら違うようで。。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/499
500: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [] 2023/01/04(水) 19:01:57.33 ID:jNmuxM610 例えば以下の2つの関数があります。 ■「function関数」を変数に格納 let calcResult1 = function calc(a,b){ return a*b; } ■「無名関数」を変数に格納 let calcResult2 = function(a,b){ return a*b; } 「無名関数」は「関数リテラル」と同義である。とさまざまな文献に記述されています。 ならば、 calcResult1 は、関数リテラルではない。 calcResult2 は、関数リテラルである。 という認識で間違っていないでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1659855460/500
501: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [] 2023/01/04(水) 19:02:26.96 ID:jNmuxM610 SetInterval() に与える引数は、関数リテラルでなくてはならないそうです。 となると、以下は誤りで、 SetInterval(calcResult1,1000); 以下なら問題ない SetInterval(calcResult2,1000); という理解でよろしいでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1659855460/501
505: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/04(水) 20:57:54.46 ID:jNmuxM610 >>502 すっごい分かりやすい。 モヤモヤしていたのがすっきりしました。 ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/505
508: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/04(水) 21:23:57.48 ID:jNmuxM610 あれ。関数リテラルには引数はないのか。。引数の不要な関数しか関数リテラルにならんのか。 もちょっと調べてみます。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/508
509: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [] 2023/01/04(水) 21:32:15.85 ID:jNmuxM610 >>507 必要ならページ画像をどっかにアップします。。 技術評論社 JavaScript本格入門 https://gihyo.jp/book/2016/978-4-7741-8411-1 P362 setTimeout/SetIntervalメソッドの注意点 ...引数funcは必ず関数リテラルで指定してください。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/509
510: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/04(水) 21:39:03.24 ID:jNmuxM610 でも何かの引数に関数をわたすときは、 一般的に関数リテラルで渡すのがデフォと ぼんやり思っている。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/510
514: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [] 2023/01/04(水) 22:21:10.60 ID:jNmuxM610 >>512 setTimeout()の例でしかもjQueryで 申し訳ないのですが。 1秒後に#displayのhtmlの内容を空にするコードです。 以下のようなコードではsetTimeoutが動かず、 setTimeout($('#display').html(' '), 1000); 代わりに、以下で動きます。 function clearDisplay(){ $('#display').html(''); } setTimeout(clearDisplay, 1000); このことから書籍にあるように 関数リテラルでないと引数に渡せないと 思っていました。。 書籍の文脈ですが、実際にあとで画像アップします。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/514
517: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/05(木) 00:01:25.43 ID:EVXeoiyo0 >>515 setTimeout($('#display').html(' '), 1000); これそもそも渡してるの関数じゃないからリテラル云々の問題じゃなくない? 渡しているのは関数じゃない。。 んー。メソッドか。だから動かない。 ありがとう。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/517
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
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
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
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
538: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/05(木) 15:38:00.87 ID:EVXeoiyo0 あ。 誤解していたところがとけました。 当初は「2」かと妄信していたので、 だいぶ合点がとれました。 関数リテラルが無名関数と同義という説明も いやそうではないという説明も すっきりしました。 皆さん長々とお付き合いいただき ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/538
540: デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/05(木) 20:02:55.70 ID:EVXeoiyo0 >>534 >関数リテラルは関数として評価可能な右辺値と考えておけばまあいいんじゃない この発想というか常識が無かったなあ。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/540
557: 538 (ワッチョイ 8202-9yt5 [27.92.176.51]) [sage] 2023/01/06(金) 17:52:02.25 ID:AgA2i3Ln0 リテラルって文字列とか数値というイメージ だから、 let dispMessage = function(msg){console.log(msg)} っていう文があれば、関数リテラルならどうみても 左側の変数の文字列の事って思うじゃないですか。 右側はfunctionとか{}とか()とかあるので、 リテラルからかけ離れていると思ってました。 どうりで、話が噛み合わないなと思ってたが 今、全部なっとく。ありがとうございました! http://mevius.5ch.net/test/read.cgi/tech/1659855460/557
643: デフォルトの名無しさん (ワッチョイ 9202-AGaU [27.92.176.51]) [sage] 2023/02/17(金) 12:17:26.22 ID:DJukcnvm0 $.each()とsetIntervalをつかって、 インターバル時間ごとに順番に配列の中身を、コンソール出力する方法ありますでしょうか? $.each()は、一度に処理するから、一つづつコンソール出力するのは難しいですかね。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/643
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.050s