[過去ログ]
JavaScript の質問用スレッド vol.125 (1002レス)
JavaScript の質問用スレッド vol.125 http://mevius.5ch.net/test/read.cgi/tech/1659855460/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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
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
539: デフォルトの名無しさん (ワッチョイ 66db-TwI4 [217.178.96.73]) [sage] 2023/01/05(木) 19:28:05.49 ID:j61eMuZ00 >>511 技術評論社のjQuery本格入門はものすごく読みづらかった。 もっと分かり易い言葉で解説して欲しかった。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/539
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
541: デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89]) [sage] 2023/01/05(木) 20:55:47.77 ID:XhDooIHVH >>531 自分もあまりJS詳しくないんですけど リテラルっていうのは、括るもの、という意味合いでは? オブジェクトリテラルっていうのは波かっこで括るオブジェクト={} 文字列のリテラルは、""や’’ 展開のリテラルは、``とか 関数のリテラルというのは、functionを指定した引数括弧つきのオブジェクトリテラルでfunction(){} 関数リテラルといえば、例えばfunction func(){...} とした場合、{...}は変数funcに文字列として代入されます そしてfuncは関数オブジェクトと指定されていて 関数の実行は()を読み込むことで実行されます func 文字列 () 関数の実行 http://mevius.5ch.net/test/read.cgi/tech/1659855460/541
542: デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89]) [sage] 2023/01/05(木) 21:01:26.21 ID:XhDooIHVH >>531 解決済みだったようですみませんでした 参考までに追加 function func(){return 1} とした場合 console.log(func) と console.log(func()) を見比べるとわかりますが、 func変数の中身は、function指定された文字列で func()は関数を実行した結果の1が表示されます http://mevius.5ch.net/test/read.cgi/tech/1659855460/542
543: デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.208.231.97]) [sage] 2023/01/05(木) 21:40:35.47 ID:n/EqvkXYr >>541 JavaScriptのリテラルに関してはまず下記を読んでください 括ってあればリテラルというわけではないです https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Grammar_and_types#%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB http://mevius.5ch.net/test/read.cgi/tech/1659855460/543
544: デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89]) [sage] 2023/01/05(木) 22:26:48.61 ID:XhDooIHVH >>543 括る、というのはそういう意味かと リテラルはリテラルなので括る必要はなくて プリミティブは、これは文字列です、 これは配列です、 これはオブジェクトです とエンジンに理解させるための記述なのかと思いまして http://mevius.5ch.net/test/read.cgi/tech/1659855460/544
545: デフォルトの名無しさん (ワッチョイ a62d-IQJE [121.102.19.45]) [sage] 2023/01/05(木) 22:39:53.19 ID:scsW7zY90 リテラルはベた書きで良かろう http://mevius.5ch.net/test/read.cgi/tech/1659855460/545
546: デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.208.231.97]) [sage] 2023/01/05(木) 22:41:03.03 ID:n/EqvkXYr >>544 申し訳ないけど全体的に文意が取れません 1行目の「そういう意味」は何を指してますか? http://mevius.5ch.net/test/read.cgi/tech/1659855460/546
547: デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89]) [sage] 2023/01/05(木) 22:57:51.54 ID:XhDooIHVH 括ることで、エンジンに対して、これは配列オブジェクトだよとか これは{}だよとか、これは文字列だよとか、そういうことを伝えているってことですけど http://mevius.5ch.net/test/read.cgi/tech/1659855460/547
548: デフォルトの名無しさん (ワッチョイ 8201-+uJR [219.204.123.70]) [sage] 2023/01/05(木) 22:59:39.77 ID:O+NRT3S+0 >>541 > リテラルっていうのは、括るもの、という意味合いでは? >>544 > リテラルはリテラルなので括る必要はなくて 自分で何書いてるのか理解できてる? http://mevius.5ch.net/test/read.cgi/tech/1659855460/548
549: デフォルトの名無しさん (ワッチョイ 8201-+uJR [219.204.123.70]) [sage] 2023/01/05(木) 23:00:08.63 ID:O+NRT3S+0 >>547 数値リテラル http://mevius.5ch.net/test/read.cgi/tech/1659855460/549
550: デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89]) [sage] 2023/01/05(木) 23:12:56.82 ID:XhDooIHVH <<538 諄いですね 正しい理論的な話あればご披露ください JSの処理エンジンに、どういう記述があれば どう処理するかというのがあるでしょ {}とう記述を読めば、オブジェクトなのだな、と ””ならもじれるなのかなと、 function でて意義されたものがあれば関数なのかなと リテラルは数値などの表現で 文字列は””、’’のクオーテーションで 関数は、function装飾委sで それぞれが何を表現してるのかを確認し スクリプト実行時にそれらをコンテキストに登録して その後の作動を担保する、ってことなのかな http://mevius.5ch.net/test/read.cgi/tech/1659855460/550
551: デフォルトの名無しさん (ワッチョイ 9fcf-/EFQ [180.14.48.253]) [sage] 2023/01/05(木) 23:17:36.32 ID:/79BsoYR0 一から教えるにはここじゃスペースが足りないからまず入門書一冊買って読め。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/551
552: デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89]) [sage] 2023/01/05(木) 23:20:08.45 ID:XhDooIHVH 先生、ありがとうござす 時間とれましたら勉強してみます、ありがとうです http://mevius.5ch.net/test/read.cgi/tech/1659855460/552
553: デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.208.231.97]) [sage] 2023/01/05(木) 23:20:49.68 ID:n/EqvkXYr 中途半端に字句解析、構文解析の話になってるのか・・・ 誰もそんなレベルの話はしてないのに http://mevius.5ch.net/test/read.cgi/tech/1659855460/553
554: デフォルトの名無しさん (スプッッ Sdc2-DLel [1.75.213.141]) [sage] 2023/01/05(木) 23:28:36.71 ID:V3WBk68sd 誤変換の多さと言い意味の通ってなさと言い酔っ払ってるとしか思えんなw http://mevius.5ch.net/test/read.cgi/tech/1659855460/554
555: デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89]) [sage] 2023/01/05(木) 23:34:22.58 ID:XhDooIHVH すみませんでした、もっと勉強します http://mevius.5ch.net/test/read.cgi/tech/1659855460/555
556: デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.204.227.44]) [sage] 2023/01/06(金) 12:07:23.77 ID:ipvOzmbWr 勉強しますの前にまず筋の通った主張を相手に分かるようにお願いします >>548の指摘もそういうことだし http://mevius.5ch.net/test/read.cgi/tech/1659855460/556
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
558: デフォルトの名無しさん (ブーイモ MMee-DakT [133.159.153.167]) [] 2023/01/06(金) 21:33:28.00 ID:Ynt2iWE0M リテラルはもともと「文字通りの」って意味 ソースに書いた内容が変数とかを介さずにそのまま1つの値として評価されるもの 括弧で括るとかの意味は全く無い http://mevius.5ch.net/test/read.cgi/tech/1659855460/558
559: デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89]) [sage] 2023/01/06(金) 22:25:41.09 ID:Th1PE0Z2H リテラル ””や’’で表現されるのは文字列と評価する []は配列と評価する {}はオブジェクトと評価する JSエンジンがオブジェクトをどう評価して処理するかということだと思ったんですけど 何やら全く的外れなこと言ってたみたいですみませんでした 何度も謝ったのでもう許してください、鬼神様 http://mevius.5ch.net/test/read.cgi/tech/1659855460/559
560: デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.247.11]) [sage] 2023/01/06(金) 23:10:59.17 ID:AlXqoCEJr >>559 的外れなことを繰り返し書かなくていいから黙って>>502を読んでおいて http://mevius.5ch.net/test/read.cgi/tech/1659855460/560
561: デフォルトの名無しさん (JP 0Hd3-DWwd [126.249.157.89]) [sage] 2023/01/07(土) 08:36:35.89 ID:I26x6s3dH 時間があるときに読んでおきます http://mevius.5ch.net/test/read.cgi/tech/1659855460/561
562: デフォルトの名無しさん (ワッチョイ 8a74-+oQO [211.124.81.22]) [] 2023/01/07(土) 11:56:48.02 ID:n88Tb37q0 >>561 いますぐ読みたまえ http://mevius.5ch.net/test/read.cgi/tech/1659855460/562
563: デフォルトの名無しさん (アウアウウー Sa3f-03PQ [106.154.143.205]) [sage] 2023/01/07(土) 12:11:11.83 ID:Oa/pj9jla 読めたら読みます http://mevius.5ch.net/test/read.cgi/tech/1659855460/563
564: デフォルトの名無しさん (ワッチョイ 8a74-+oQO [211.124.81.22]) [] 2023/01/07(土) 12:11:57.01 ID:n88Tb37q0 >>563 読めなくても読むのだ http://mevius.5ch.net/test/read.cgi/tech/1659855460/564
565: デフォルトの名無しさん (スプッッ Sdea-pEag [1.75.238.210]) [sage] 2023/01/07(土) 15:51:52.95 ID:zzWcN8NZd >>559 わざわざもう1回書いたのは自分の中ではこれが正しいという思いが捨てられなくて 賛同してくれる人が現れないかと期待してってところか http://mevius.5ch.net/test/read.cgi/tech/1659855460/565
566: デフォルトの名無しさん (ワッチョイ 9310-zDHW [180.12.82.129]) [] 2023/01/07(土) 18:24:30.76 ID:2xit7B8+0 再帰関数についての質問 function test(){ 処理1 test(); 処理2 } とした場合 処理2の前にtest()があるので、処理2はずっと実行されないということですか? http://mevius.5ch.net/test/read.cgi/tech/1659855460/566
567: デフォルトの名無しさん (アウアウウー Sa3f-03PQ [106.154.143.205]) [sage] 2023/01/07(土) 18:46:02.96 ID:Oa/pj9jla いいえそれは処理1次第です http://mevius.5ch.net/test/read.cgi/tech/1659855460/567
568: デフォルトの名無しさん (ワッチョイ 9310-zDHW [180.12.82.129]) [] 2023/01/07(土) 19:05:43.05 ID:2xit7B8+0 >>567 ありがとうございます 処理1はreturnや他関数への再帰はしないものとします http://mevius.5ch.net/test/read.cgi/tech/1659855460/568
569: デフォルトの名無しさん (ワッチョイ fecf-DSRP [153.174.224.39]) [sage] 2023/01/07(土) 19:11:57.35 ID:GmV1yQnL0 最大の再帰の深さは JavaScript エンジンによって制限されていて その範囲内で終了条件を満たすように作る必要があります でなければエラー終了するので、無限再帰は有り得ません http://mevius.5ch.net/test/read.cgi/tech/1659855460/569
570: デフォルトの名無しさん (ワッチョイ 6a7c-Or7w [43.235.241.201]) [sage] 2023/01/07(土) 21:33:23.91 ID:YilgzCe20 そもそも永久に再帰は無理なのを理解していないのか? それと何故再帰を使うのかという理由が全く分からん http://mevius.5ch.net/test/read.cgi/tech/1659855460/570
571: デフォルトの名無しさん (ワッチョイ aa02-DSRP [59.138.123.33]) [sage] 2023/01/08(日) 01:51:54.62 ID:uPZeFpc/0 まあ普通は無限ループだな わざわざ再帰にしなければいけない 理由が何かだな http://mevius.5ch.net/test/read.cgi/tech/1659855460/571
572: デフォルトの名無しさん (ワッチョイ 7b79-Jp3v [220.150.90.192]) [sage] 2023/01/08(日) 01:53:28.42 ID:FOdy7Dic0 末尾再帰最適化が保証されている言語では特定条件を満たせばさもループの代替として使えるが javascriptではそうはならなかった 以上 http://mevius.5ch.net/test/read.cgi/tech/1659855460/572
573: デフォルトの名無しさん (ブーイモ MM4a-mEot [49.239.64.156]) [] 2023/01/08(日) 01:53:30.69 ID:gpkzwVQsM 末尾最適化されてれば無限ループ可能でしょ? ES2015で末尾最適化の仕様化されたけど適合してない実装が多いというだけ http://mevius.5ch.net/test/read.cgi/tech/1659855460/573
574: デフォルトの名無しさん (ブーイモ MM4a-mEot [49.239.64.156]) [] 2023/01/08(日) 01:54:05.49 ID:gpkzwVQsM ありゃ被ったか http://mevius.5ch.net/test/read.cgi/tech/1659855460/574
575: デフォルトの名無しさん (ワッチョイ 7b79-Jp3v [220.150.90.192]) [sage] 2023/01/08(日) 02:24:13.14 ID:FOdy7Dic0 規格があっても準拠するかどうかは実装次第というね ちなみにjavascriptは関数がファーストクラスでレキシカルスコープを持つためいわゆるクロージャを無意識に生成できる クロージャがあれば末尾再帰できないからと不自由に感じることはないと思われる http://mevius.5ch.net/test/read.cgi/tech/1659855460/575
576: デフォルトの名無しさん (ワッチョイ 9310-zDHW [180.12.82.129]) [] 2023/01/08(日) 17:51:20.88 ID:TObCTh0j0 >>570 @supportsや@mediaのネストされたcssの全プロパティ値を取得するために 再帰使いたかった http://mevius.5ch.net/test/read.cgi/tech/1659855460/576
577: デフォルトの名無しさん (ワッチョイ db01-9cRY [60.69.179.40]) [sage] 2023/01/09(月) 07:24:55.41 ID:Bl4X3MiM0 >>576 無限にネストすることはないはずだが http://mevius.5ch.net/test/read.cgi/tech/1659855460/577
578: デフォルトの名無しさん (オッペケ Srd3-HOhV [126.208.230.4]) [sage] 2023/01/09(月) 12:44:15.19 ID:mLvtK4oer >>576を実現するにしても>>566にはならんと思うけども http://mevius.5ch.net/test/read.cgi/tech/1659855460/578
579: デフォルトの名無しさん (ワッチョイ 6a7c-Or7w [43.235.241.201]) [sage] 2023/01/09(月) 13:34:27.76 ID:nBXeWSyT0 ホントになw // aはarray function test(a) { a.forEach( b => { if (b.isArray()) { test(b) } }) } みたいな感じなら分かるがw http://mevius.5ch.net/test/read.cgi/tech/1659855460/579
580: デフォルトの名無しさん (ワッチョイ 7b79-Jp3v [220.150.90.192]) [sage] 2023/01/09(月) 15:00:57.73 ID:2yNmR2Eh0 ノードを全部舐めるみたいなトラバース系の処理はエンジンの制限とか気にするなら再帰のロジックを配列とループで作った方が安全だし 恐らく関数を呼び出すより速いから検討してみてね http://mevius.5ch.net/test/read.cgi/tech/1659855460/580
581: デフォルトの名無しさん (ワッチョイ 6305-S6ln [116.94.64.124]) [] 2023/01/14(土) 18:28:43.16 ID:WRdKOG7o0 質問 scriptタグで指定されてるリンク先をjavascriptで変えたい 例えば. script type="text/javascript" src="A” になってんのを script type="text/javascript" src="B”に変えたい replace等でやろうとしたものの上手くいかなかった http://mevius.5ch.net/test/read.cgi/tech/1659855460/581
582: デフォルトの名無しさん (ワッチョイ 7f7c-f6s+ [43.235.241.201]) [sage] 2023/01/14(土) 20:27:52.90 ID:Ww/QFSM20 ちょっとググったら出てくるやろw https://www.softel.co.jp/blogs/tech/archives/6794 http://mevius.5ch.net/test/read.cgi/tech/1659855460/582
583: デフォルトの名無しさん (ワッチョイ 6305-S6ln [116.94.64.124]) [] 2023/01/14(土) 23:08:43.95 ID:WRdKOG7o0 >>582 ありがとうございます… 本当に助かりました… http://mevius.5ch.net/test/read.cgi/tech/1659855460/583
584: デフォルトの名無しさん (アウアウウー Sac7-wtyD [106.146.97.205]) [sage] 2023/01/15(日) 01:42:33.54 ID:k1TuDUU1a 確かに以下のように、jQuery で、script タグのsrc 属性を、 a.js から、b.js へ変えても、scriptタグが再読み込みされない $("script[src='a.js']:first").each(function (index, elem) { $(elem).attr('src', 'b.js'); }); 新たなscriptタグを追加してから、元のscriptタグを削除すれば、読み込まれるかも http://mevius.5ch.net/test/read.cgi/tech/1659855460/584
585: デフォルトの名無しさん (ワッチョイ a361-1Ylv [222.144.108.11]) [sage] 2023/01/15(日) 02:01:27.46 ID:iV9MAA6y0 読み込まれたスクリプト自体はscript要素消しても消えない事に注意 http://mevius.5ch.net/test/read.cgi/tech/1659855460/585
586: デフォルトの名無しさん (オイコラミネオ MMa7-+Atj [150.66.84.146]) [] 2023/01/15(日) 13:53:25.79 ID:0IRxms8qM ルーターのブロードステーションに電源を入れると エッジブラウザが起動して自動的にブロードステーションのルーターのページが表示されます。 ブロードステーション関連のソフトウェアは一切インストールしていないにもかかわらずです。 これって動きだけ見ますとルータが勝手にこっちのpcを操作してるように見えるのですがどういう仕組みなんでしょうか? ブラウザ(JavaScript)はページ内しか操作出来ない筈なんですが。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/586
587: デフォルトの名無しさん (ワッチョイ 3f3d-/16g [133.32.132.49 [上級国民]]) [sage] 2023/01/15(日) 15:02:28.33 ID:yvxMece60 よろしくお願いします 【環境】Win11,Chrome 【何をしたのか】下記コードをHTMLファイルにしてchromeで読み込ませて、コンソールで見た JSONのItemsを一個追加して、追加したageだけ書き換えたいが、両方書き換わる 【エラーメッセージ】エラーメッセージはない 【期待する結果】Itemsの2個めのageだけが40になるはず 【サンプルコード】現象を再現可能な最小限のコードを書いてください。 <script> json = { "color_list": [ "red", "green", "blue" ], "Items": [ { "name": "Tanaka", "age": 26 }, ] } data0=json["Items"][0] json["Items"].push(data0) console.log("before"); console.log(json["Items"][0]["age"]); console.log(json["Items"][1]["age"]); json["Items"][1]["age"]=40 console.log("after"); console.log(json["Items"][0]["age"]); console.log(json["Items"][1]["age"]); </script> 結果 before 26 26 after 40 40 http://mevius.5ch.net/test/read.cgi/tech/1659855460/587
588: デフォルトの名無しさん (ワッチョイ cfcf-7DGa [153.174.224.39]) [sage] 2023/01/15(日) 15:12:37.19 ID:XTiaoq8f0 >>587 そのコードで、参照がコピーされているので data0={...json["Items"][0]} とすればいい http://mevius.5ch.net/test/read.cgi/tech/1659855460/588
589: デフォルトの名無しさん (ワッチョイ a361-1Ylv [222.144.108.11]) [sage] 2023/01/15(日) 15:18:59.77 ID:iV9MAA6y0 >>587 https://developer.mozilla.org/ja/docs/Glossary/Deep_copy http://mevius.5ch.net/test/read.cgi/tech/1659855460/589
590: デフォルトの名無しさん (ワッチョイ 3f3d-/16g [133.32.132.49 [上級国民]]) [sage] 2023/01/15(日) 15:22:38.08 ID:yvxMece60 >>588,589 できましたありがとうございます。 http://mevius.5ch.net/test/read.cgi/tech/1659855460/590
591: デフォルトの名無しさん (ワッチョイ cfcf-7DGa [153.174.224.39]) [sage] 2023/01/15(日) 15:31:02.14 ID:XTiaoq8f0 この場合はこれで十分ですが スプレッド構文はシャローコピーなので、 データがより複雑な構造の場合は、それなりの記述が必要です http://mevius.5ch.net/test/read.cgi/tech/1659855460/591
592: デフォルトの名無しさん (ワッチョイ a361-1Ylv [222.144.108.11]) [sage] 2023/01/15(日) 15:40:55.97 ID:iV9MAA6y0 >>586 キャプティブポータルの検出機能が誤爆してるんじゃないかな http://mevius.5ch.net/test/read.cgi/tech/1659855460/592
593: デフォルトの名無しさん (ワッチョイ 634b-mccM [110.2.215.28 [上級国民]]) [sage] 2023/01/15(日) 20:06:20.61 ID:7dUg93Xk0 mainfn() function mainfn(){ pg1 = win1.pnl.add('group') pg1.orientation = "row" pg1.add("statictext", [0,0,70,23], "拡大・縮小") rd11 = pg1.add("edittext", [0,0,40,23], 100) pg1.add("statictext", [0,0,30,23], "%") pg9 = win1.pnl.add('group') pg9.orientation = "row" CAN = pg9.add("button",[0,0,100,30],"cancel") OK = pg9.add("button",[0,0,100,30],"OK") CAN.onClick = function(){win1.close()} OK.onClick = function(){ win1.close() dofn() } win1.show() } function dofn(){ bai = parseFloat(rd11.text) …… 以下略 これが正常に動作するのですが、rd11はローカル変数だとおもうのですが、なぜ違う関数内(dofn())から読めるのでしょうか? こういう書き方が出来るのなら楽なのですが… http://mevius.5ch.net/test/read.cgi/tech/1659855460/593
594: デフォルトの名無しさん (オッペケ Sr67-2lig [126.208.238.32]) [sage] 2023/01/15(日) 20:27:36.55 ID:Vv6s9YYpr 関数内でvarを付けずに宣言された変数はグローバルスコープになる var rd11 = pg1.add("edittext", [0,0,40,23], 100) とすると関数スコープになって外部からアクセスできなくなるはず 関数内での変数宣言はvar文で行うべきで これを「楽」と思ってしまうのは危険 http://mevius.5ch.net/test/read.cgi/tech/1659855460/594
595: デフォルトの名無しさん (ワッチョイ 634b-mccM [110.2.215.28 [上級国民]]) [sage] 2023/01/15(日) 20:53:03.10 ID:7dUg93Xk0 >>594 ありがとうございます 非常に勉強になりました http://mevius.5ch.net/test/read.cgi/tech/1659855460/595
596: デフォルトの名無しさん (オッペケ Sr67-2lig [126.208.230.75]) [sage] 2023/01/15(日) 21:30:36.07 ID:YqyTW3mJr >>595 'use strict'が効くならスクリプトの先頭行に書いとくといいよ http://mevius.5ch.net/test/read.cgi/tech/1659855460/596
597: 502 (ワッチョイ 8301-DQ2E [60.103.69.185]) [sage] 2023/01/15(日) 23:28:40.23 ID:bMctduL80 >>593 それAdobe Illustratorかなにかで使うソースでしょ? どういう環境で使うソースなのかは一言書いといた方がいいよ http://mevius.5ch.net/test/read.cgi/tech/1659855460/597
598: デフォルトの名無しさん (アウアウウー Sac7-wtyD [106.133.104.22]) [sage] 2023/01/15(日) 23:45:44.09 ID:r5uLxMWea ES2015(ES6)以降は最低限、 変数宣言にはvar ではなく、let/const を付けよう http://mevius.5ch.net/test/read.cgi/tech/1659855460/598
599: デフォルトの名無しさん (ワッチョイ 8301-fAIW [60.69.179.40]) [sage] 2023/01/15(日) 23:55:04.30 ID:cRCjJN100 >>597 この指摘は何度も見てるが、いつになっても改善されない 質問者にとっては直す気がない、どうでもいい問題なんだろうな… http://mevius.5ch.net/test/read.cgi/tech/1659855460/599
600: デフォルトの名無しさん (オッペケ Sr67-2lig [126.204.224.48]) [sage] 2023/01/15(日) 23:55:05.86 ID:5X3ij1Yxr >>598 このadobeのスクリプトはES3相当らしいのでvarを案内してるのよ まあそもそもスレ違いだからID:7dUg93Xk0は今後adobeのフォーラムで質問するようにね その方が我々も余計な労力を払わなくていいし君も的確な回答がもらえる https://community.adobe.com/t5/forums/searchpage/tab/message?filter=location&q=%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%20script&noSynonym=false&location=category:jp&collapse_discussion=true http://mevius.5ch.net/test/read.cgi/tech/1659855460/600
601: デフォルトの名無しさん (ワッチョイ 8301-fAIW [60.69.179.40]) [sage] 2023/01/15(日) 23:55:37.31 ID:cRCjJN100 >>597 この指摘は何度も見てるが、いつになっても改善されない 質問者にとっては直す気がない、どうでもいい問題なんだろうな… http://mevius.5ch.net/test/read.cgi/tech/1659855460/601
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 401 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s