JavaScript の質問用スレッド vol.126 (308レス)
JavaScript の質問用スレッド vol.126 http://mevius.5ch.net/test/read.cgi/tech/1702111239/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: デフォルトの名無しさん (オッペケ Sr9f-tek/ [126.254.232.20]) [sage] 2023/12/09(土) 17:40:39.92 ID:Mnb70srnr !extend:checked:vvvvvv:1000:512 JavaScript を自ら学ぶ人のための質問スレッドです。 >>2-5のテンプレを読んだ上で質問してください。次スレは>>950が>>2の「次スレの立て方」を元に立ててください ■質問を書く上で (1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。 (2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。 (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など) (3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。 (4) 常に自発的に調べる心構えを持ってください。 具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。 わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。 (5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。 (6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。 ※必ず「問題の事象が再現されること」を確認してください。 必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。 (7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。 (8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。 (9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。 (10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。 ■前スレ JavaScript の質問用スレッド vol.125 https://mevius.5ch.net/test/read.cgi/tech/1659855460/ VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured http://mevius.5ch.net/test/read.cgi/tech/1702111239/1
2: デフォルトの名無しさん (オッペケ Sre1-tek/ [126.254.232.20]) [sage] 2023/12/09(土) 17:41:59.25 ID:Mnb70srnr ■質問テンプレート 【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4) 【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。 【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用) 【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。 【サンプルコード】現象を再現可能な最小限のコードを書いてください。 1レスに収まらないならコード投稿サイトを利用してください。 https://plnkr.co/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/ ■次スレの立て方 本文一行目に「!extend:checked:vvvvvv:1000:512」と書いて、>>1-5のテンプレの「前スレ」「関連スレ」を最新化して立ててください。 ■JavaScriptスレの現状 元々はWeb制作板が本スレでしたが、ライブラリ信者に荒らされ、プログラム板に避難所として本スレが立てられました。 Web制作板の本スレは荒らされてから次スレが立っておらず、重複スレの消化のみとなっています。 実質的に本スレは存在しない為、質問者はWeb制作板、ブログラム板のどちらのスレで質問しても問題ありません。 http://mevius.5ch.net/test/read.cgi/tech/1702111239/2
3: デフォルトの名無しさん (オッペケ Sre1-tek/ [126.254.232.20]) [sage] 2023/12/09(土) 17:43:26.17 ID:Mnb70srnr ■関連スレ(Web制作板) JavaScript の質問用スレッド vol.126 (重複スレの消化) https://mevius.5ch.net/test/read.cgi/hp/1439005423/ JavaScript ライブラリ総合質問所 vol.5 https://mevius.5ch.net/test/read.cgi/hp/1465399470/ jQuery 質問用スレッド vol.7 https://mevius.5ch.net/test/read.cgi/hp/1466750494/ ■各種仕様 ◆ECMAScript http://bclary.com/2004/11/07/ (ECMAScript 3 HTML版) http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/ (ECMAScript 3 和訳) https://262.ecma-international.org/13.0/ (ECMAScript 2022) ◆HTML Standard (HTML5) http://www.whatwg.org/specs/web-apps/current-work/multipage/ (HTML Living Standard) https://momdo.github.io/html/ (HTML Living Standard日本語訳) http://mevius.5ch.net/test/read.cgi/tech/1702111239/3
4: デフォルトの名無しさん (オッペケ Sre1-tek/ [126.254.232.20]) [sage] 2023/12/09(土) 17:45:14.13 ID:Mnb70srnr テンプレここまで 内容は前スレ踏襲 http://mevius.5ch.net/test/read.cgi/tech/1702111239/4
5: デフォルトの名無しさん (オッペケ Sre1-tek/ [126.254.232.20]) [sage] 2023/12/09(土) 17:55:10.18 ID:Mnb70srnr テンプレの範囲ぐらい修正しとけばよかったかな http://mevius.5ch.net/test/read.cgi/tech/1702111239/5
6: デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145]) [sage] 2023/12/10(日) 16:33:48.20 ID:ngtmyS7f0 前スレで日付変換の関数で質問していた者です。 開発環境としましては、AndroidのmementoというDBを制御するために、Javascriptの使用が可能なので、試しに勉強してみようと思った次第です。 コードエディターや>>2記載のサイトでは正常動作をしていることから、開発環境に問題があると判断しました。ただそうなるとDBと合わせて使用できるメリットが無くなるので代替手段を模索しているところです。 成功例(日時が2つ表示) https://i.imgur.com/qxdJGAV.jpg 失敗例 (consolelogに対応しないため、コメントアウトしていますが、関数が結果に出力される。何も表示されないはず。) https://i.imgur.com/ldegoqM.jpg コードエディター https://play.google.com/store/apps/details?id=com.rhmsoft.code memento https://play.google.com/store/apps/details?id=com.luckydroid.droidbase http://mevius.5ch.net/test/read.cgi/tech/1702111239/6
7: デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145]) [sage] 2023/12/10(日) 16:34:26.85 ID:ngtmyS7f0 const date1 = new Date('2021/01/01') const date2 = new Date('2022/02/02') const stDate = dateToYyyymmdd(date1); const stTime = timeToHhmm(date1); const edDate = dateToYyyymmdd(date2); const edTime = timeToHhmm(date2); console.log(stDate + stTime + " " + edDate + edTime) http://mevius.5ch.net/test/read.cgi/tech/1702111239/7
8: デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145]) [sage] 2023/12/10(日) 16:34:43.88 ID:ngtmyS7f0 // DateをYYYY/MM/DD文字列に変換する function dateToYyyymmdd(date){ let n = date.getFullYear().toString(); n = date.getFullYear().toString() + "/"; n += (date.getMonth()+1).toString().padStart(2, "0") + "/"; n += date.getDate().toString().padStart(2, "0") + "_"; return(n); } http://mevius.5ch.net/test/read.cgi/tech/1702111239/8
9: デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145]) [sage] 2023/12/10(日) 16:35:00.00 ID:ngtmyS7f0 // DateをHH:MM文字列に変換する function timeToHhmm(time){ let n = time.getHours().toString().padStart(2, "0") + ":"; n += time.getMinutes().toString().padStart(2, "0"); return(n); } http://mevius.5ch.net/test/read.cgi/tech/1702111239/9
10: デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145]) [sage] 2023/12/10(日) 16:35:52.81 ID:ngtmyS7f0 申し訳有りません。 サービスでの稼働は確認出来たのですが、共有方法が分からないので、連投になってしまいましたが、直接描かせていただきました。 http://mevius.5ch.net/test/read.cgi/tech/1702111239/10
11: デフォルトの名無しさん (アウアウウー Sa49-+EJW [106.155.27.178]) [sage] 2023/12/10(日) 17:01:43.23 ID:013bN9IEa >>10 よくわからんけどそもそもその環境は関数定義して呼び出すとかできるの? 全体を関数として扱って最後の戻り値を文字列として解釈してるとかそういうノリではなく? http://mevius.5ch.net/test/read.cgi/tech/1702111239/11
12: デフォルトの名無しさん (ワッチョイ ed27-tek/ [2400:2200:6f2:ad4b:*]) [sage] 2023/12/10(日) 17:01:58.34 ID:uEdCnVbW0 >>10 https://wiki.mementodatabase.com/index.php/JavaScript_field >but only the result of the last operation will be entered into the field. とあるから最後の文の値が結果値として採用される だからtimeToHhmm関数自体が結果になっている 修正したければコードの最後に const result = stDate + stTime + " " + edDate + edTime などと追加すればその値が結果値として採用されるんではないだろうか http://mevius.5ch.net/test/read.cgi/tech/1702111239/12
13: デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145]) [sage] 2023/12/10(日) 21:02:11.63 ID:ngtmyS7f0 >>11,12 まさに仰るとおりでございました。 最後に出力文を置くことで正しく稼働を確認できました。 改めて調べようが足らなかったことを痛感しました。正直自分の中に『これ、なんかバグってるのかな…』などと考えてしまってた所もありましたが、単に仕様であったことに恥ずかしさとプラットフォーム開発者に申し訳ないですね。 wikiもしっかり読み込んで改めて勉強しなおしてみます。 本当にありがとうございます。 長々と失礼しました。 http://mevius.5ch.net/test/read.cgi/tech/1702111239/13
14: デフォルトの名無しさん (ワッチョイ b51d-C3j7 [180.178.89.53]) [sage] 2023/12/15(金) 23:44:44.09 ID:WfAwrcm40 nullとundefinedはどう違うのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1702111239/14
15: デフォルトの名無しさん (ワッチョイ b701-Y8ba [60.106.64.223]) [sage] 2023/12/16(土) 00:21:53.93 ID:92Act5oB0 >>14 型も値も何もかも違う http://mevius.5ch.net/test/read.cgi/tech/1702111239/15
16: 14 (ワッチョイ 4f1d-Qk2W [180.178.89.53]) [sage] 2023/12/16(土) 12:33:00.76 ID:3Jo1PIzy0 >>15 レスありがとうございます 単純に、nullは「空」、undefinedは「未定義」と理解しておけばいいでしょうか? うーんでも、空だから未定義であるとも言えるし、未定義だから空とも言える気もします 難しく考え出すとハマりますね… http://mevius.5ch.net/test/read.cgi/tech/1702111239/16
17: デフォルトの名無しさん (ワッチョイ 5b48-r/Us [2400:2200:3f1:994b:*]) [sage] 2023/12/16(土) 12:50:38.08 ID:GGJUNSgh0 まず「空」とはなんぞや、「未定義」とはなんぞやってところから勉強してみたら? http://mevius.5ch.net/test/read.cgi/tech/1702111239/17
18: 14 (ワッチョイ 4f1d-Qk2W [180.178.89.53]) [sage] 2023/12/16(土) 13:09:24.81 ID:3Jo1PIzy0 >>17 レスありがとうございます 自分なりに少し調べてみたら、 undefinedは「これから何かしらの値が入る余地があるがまだ定義されていない」 nullは「値が入りようがないから空」 という違いがあるみたいですね http://mevius.5ch.net/test/read.cgi/tech/1702111239/18
19: デフォルトの名無しさん (ワッチョイ 5b48-r/Us [2400:2200:3f1:994b:*]) [sage] 2023/12/16(土) 13:43:31.64 ID:GGJUNSgh0 意味的には別物だというのは納得できた? http://mevius.5ch.net/test/read.cgi/tech/1702111239/19
20: 14 (ワッチョイ 4f1d-Qk2W [180.178.89.53]) [sage] 2023/12/16(土) 16:34:04.63 ID:3Jo1PIzy0 >>19 はい、それなりに理解出来たと思います ありがとうございます JSでは、undefinedに比べるとnullの登場頻度はかなり低いみたいですね http://mevius.5ch.net/test/read.cgi/tech/1702111239/20
21: デフォルトの名無しさん (ワッチョイ 0e6d-Aq9B [240b:10:8401:ab00:*]) [sage] 2023/12/16(土) 19:13:30.08 ID:UfR4i5aB0 設計ミスだから使い分ける必要はなく 外部とのやりとり以外にnullは使わないと統一した方が問題でにくいし楽 http://mevius.5ch.net/test/read.cgi/tech/1702111239/21
22: デフォルトの名無しさん (ワッチョイ 4f10-n6T6 [180.12.82.129]) [] 2023/12/18(月) 12:29:54.63 ID:UBFKxLGp0 配列の宣言はvar list=[]; オブジェクトの宣言var obj={}; 配列の配列の宣言は var list=[[]]; ではオブジェクトの配列の宣言はどうすればいいですか? var obj={[]};のようにしてもできませんでした。 obj["aaa"][0]=100; obj["bbb"][1]=200; のように値を入れたいです。 http://mevius.5ch.net/test/read.cgi/tech/1702111239/22
23: デフォルトの名無しさん (ワッチョイ 4f10-n6T6 [180.12.82.129]) [] 2023/12/18(月) 12:38:38.33 ID:UBFKxLGp0 配列のオブジェクトって言った方が正しいのかわからないけど とにかく>>22のように代入したいんです http://mevius.5ch.net/test/read.cgi/tech/1702111239/23
24: デフォルトの名無しさん (ワッチョイ 0e2a-YOgt [240b:10:8401:ab00:*]) [sage] 2023/12/18(月) 12:58:21.29 ID:kn95Gf6w0 [[]] 配列を入れ子にしても1番目の要素を[]に初期化しているだけで 配列として使いたい場合に必要な手順ではない 仮に1番目を[1,2]、2番目を[3]にしたい時に操作が変わってしまうので邪魔なだけ 配列は空のまま [] で十分 あとconst/letじゃなくvarで書くスタイルは古い 参考にした情報があるなら忘れよう 更新もせずずっと放置しているなら害悪でしかない http://mevius.5ch.net/test/read.cgi/tech/1702111239/24
25: デフォルトの名無しさん (ワッチョイ 225c-ivtJ [61.196.5.7]) [sage] 2023/12/18(月) 13:13:46.30 ID:BJv/M26K0 let obj = {}; obj["aaa"] = [100]; obj["bbb"] = [undefined]; obj["bbb"][1] = [200]; http://mevius.5ch.net/test/read.cgi/tech/1702111239/25
26: デフォルトの名無しさん (ワッチョイ 225c-ivtJ [61.196.5.7]) [sage] 2023/12/18(月) 13:15:33.46 ID:BJv/M26K0 obj["bbb"][1] = 200; http://mevius.5ch.net/test/read.cgi/tech/1702111239/26
27: デフォルトの名無しさん (ワッチョイ 4f61-3PPy [180.23.197.208]) [sage] 2023/12/18(月) 13:42:57.71 ID:WXLOngT30 const obj = { aaa: [100], bbb: [, 200] }; http://mevius.5ch.net/test/read.cgi/tech/1702111239/27
28: デフォルトの名無しさん (ワッチョイ 5bd1-r/Us [2400:2200:738:48fd:*]) [sage] 2023/12/18(月) 14:17:37.97 ID:oIHu3KbV0 >>23 そこがあやふやだからどう宣言すればいいかも分からないんだと思う 君が宣言したいものは「配列をメンバーに持つオブジェクト」だよ http://mevius.5ch.net/test/read.cgi/tech/1702111239/28
29: デフォルトの名無しさん (ワッチョイ 4f10-n6T6 [180.12.82.129]) [] 2023/12/18(月) 18:21:51.41 ID:UBFKxLGp0 >>24-28 ありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1702111239/29
30: デフォルトの名無しさん (ワッチョイ 4f10-n6T6 [180.12.82.129]) [] 2023/12/18(月) 23:55:35.85 ID:UBFKxLGp0 オブジェクトのkeyにelementを使うのは不具合になりますか? const element = document.getElementById("test_id"); const element2 = document.getElementById("test2_id"); let obj ={}; obj[element] = 200; obj[element2] = 300;というような感じです 一応動作はしたけどやらないほうがいいんですか? http://mevius.5ch.net/test/read.cgi/tech/1702111239/30
31: デフォルトの名無しさん (ワッチョイ c73f-r/Us [2400:2200:736:eb7f:*]) [sage] 2023/12/19(火) 00:19:13.16 ID:ny/Z19vi0 >>30 本当に期待通りに動いてるかしっかり確認した? http://mevius.5ch.net/test/read.cgi/tech/1702111239/31
32: デフォルトの名無しさん (ワッチョイ 0343-Qk2W [2001:268:9a84:9fef:*]) [sage] 2023/12/19(火) 00:31:33.88 ID:z6V4TATi0 const element = 何々 で、elementがオブジェクトなら、キーに使ってはならない。 primitive なら、キーに使える この表記は、constがついていても、 そのオブジェクトの中身・内容は変えられるから、 本当の意味のconstではない Ruby では、オブジェクトをfreeze すると、浅い第1階層で変更できなくなる。 変更できなくなった部分に、次の第2階層のオブジェクトがあれば、そこは変更できる! だから完全に深い階層まで、再帰的にfreezeしないと、 本当の意味でfreezeにならない >>20 undefined はユーザーが作り出せないものだから、 普通は空を表すのに、null を使う Rubyのnil と同じ http://mevius.5ch.net/test/read.cgi/tech/1702111239/32
33: デフォルトの名無しさん (ワッチョイ 4f61-3PPy [180.23.197.208]) [sage] 2023/12/19(火) 01:47:20.29 ID:jkXgnxvQ0 >>30 MapやWeakMapを使おう http://mevius.5ch.net/test/read.cgi/tech/1702111239/33
34: デフォルトの名無しさん (ワッチョイ 4f10-n6T6 [180.12.82.129]) [] 2023/12/19(火) 12:32:27.47 ID:wIcY707L0 >>31 確認したら期待通りに動きました >>31-33 ありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1702111239/34
35: デフォルトの名無しさん (ワッチョイ f613-r/Us [2400:2200:738:481a:*]) [sage] 2023/12/19(火) 14:48:44.22 ID:s0aDiAUA0 >>34 >>30のあとに console.log(obj[element]); と書くと何が表示されると思う? http://mevius.5ch.net/test/read.cgi/tech/1702111239/35
36: デフォルトの名無しさん (ワッチョイ f613-r/Us [2400:2200:738:481a:*]) [sage] 2023/12/19(火) 14:54:15.24 ID:s0aDiAUA0 あ、これだけだと前提が足りないか test_idもtest2_idもdivタグだとする http://mevius.5ch.net/test/read.cgi/tech/1702111239/36
37: デフォルトの名無しさん (アウアウウー Sa9b-KnN9 [106.146.121.126]) [sage] 2023/12/19(火) 15:48:03.09 ID:g4Os8oTba >>16 実用的はそれらは同値だと判断した方が良い 少なくともコード上分けるメリットはゼロ http://mevius.5ch.net/test/read.cgi/tech/1702111239/37
38: デフォルトの名無しさん (ワッチョイ 0274-mQNm [211.124.81.22]) [] 2023/12/20(水) 13:23:41.58 ID:QAvRAUPM0 JavaScriptで関数を変数に代入できると聞いて、 物理学で万物が粒子だけでなく波としての性質も合わせもつと聞いたときと同じくらいの衝撃を受けました。 どうもこのJavaScriptで関数を変数に代入できるという考えがしっくりこないのですが、どう考えれば受け入れられますか? http://mevius.5ch.net/test/read.cgi/tech/1702111239/38
39: デフォルトの名無しさん (ワッチョイ 0e33-YOgt [240b:10:8401:ab00:*]) [sage] 2023/12/20(水) 13:43:53.69 ID:bsiqnAom0 >>38 関数定義の構文 function f() {...} は関数オブジェクトを変数 f に代入してるだけなので g = f としたら g() で同じ関数呼べるし f = 123 と再代入したら f() で関数呼べなくなる f = () => {...} これで関数定義できることからもわかる http://mevius.5ch.net/test/read.cgi/tech/1702111239/39
40: デフォルトの名無しさん (ワッチョイ a262-Zz6i [2001:240:2428:b257:*]) [sage] 2023/12/20(水) 15:57:28.18 ID:5U5fDbVv0 >>38 Arrayだろうが関数だろうが変数に格納されてる値はポインタで 値を使う時に自動的にデリファレンスされてると思っとけばいいんじゃね 最近の言語ならどれも同じようなことできるけどね http://mevius.5ch.net/test/read.cgi/tech/1702111239/40
41: デフォルトの名無しさん (ワッチョイ 23cf-j1fn [2404:7a82:3de0:3500:*]) [sage] 2023/12/21(木) 01:46:28.22 ID:9dULh+b20 >>38 実態からはかけ離れるけど、メソッドが1個しかないオブジェクトの特別な扱いだと捉えるとどうだろう? 関数を変数に代入できるというのは、C言語のような古いものでも関数ポインタという形で実現してる。 関数はそのコードがメモリ上に配置されていて、関数の呼び出しはそのメモリのアドレスにジャンプするという形で行われるけど、そのジャンプ先のアドレスを変数に入れる感じ。 JavaScript ではクロージャって概念でもっと高度だけど、代入された変数には結局その関数の在りかが紐づけられてる。 http://mevius.5ch.net/test/read.cgi/tech/1702111239/41
42: デフォルトの名無しさん (スップ Sd42-MF53 [49.97.109.220]) [sage] 2023/12/21(木) 14:29:18.32 ID:0EYD168kd やろうと思えば各要素に関数の入った配列を作れるってことが http://mevius.5ch.net/test/read.cgi/tech/1702111239/42
43: デフォルトの名無しさん (ワッチョイ 2279-F8eA [61.192.187.100]) [sage] 2023/12/22(金) 21:46:22.69 ID:nFOKM4xK0 LISP→Scheme→Javascriptという歴史的経緯があるのでそこから理解すると判りやすいかも コードはLISPにとってはただのリストというデータ表現でしかなかったのでコードを変数に代入するというのはとても自然な事だった Schemeでレキシカルスコープが定義され一般的なクロージャの形になった 括弧だらけの構文は一般受けしないのでCっぽい構文のJavascriptが生まれた ざっくり書けばこういうわけです http://mevius.5ch.net/test/read.cgi/tech/1702111239/43
44: デフォルトの名無しさん (ワッチョイ 83ee-JyiE [2404:7a82:3de0:3500:*]) [sage] 2023/12/23(土) 01:26:50.34 ID:ZuCxSQpj0 >>43 分かりやすいかなぁw http://mevius.5ch.net/test/read.cgi/tech/1702111239/44
45: デフォルトの名無しさん (ワッチョイ 131b-taje [2400:2200:395:6245:*]) [sage] 2023/12/23(土) 02:10:18.87 ID:YHpw3jwo0 挙がってる各言語を知ってる人はなるほどと思うかもしれないけど そうでないならただの遠回りな気が http://mevius.5ch.net/test/read.cgi/tech/1702111239/45
46: デフォルトの名無しさん (ワッチョイ 3f79-Eb5K [61.192.187.100]) [sage] 2023/12/23(土) 18:09:35.53 ID:87/jUj+m0 >>39-41は代入できますって以上の説明はできてないし ショックを受けた38が知りたいのはそういう事じゃないんだろう Coders at WorkによればJavaacript設計者のブレンダン・アイクはSICPとSchemeの崇拝者で、 最初のアイデアはNetscapeブラウザにSchemeを持ち込むことだったとの事だよ まずはSICPでも読むといいんじゃないの http://mevius.5ch.net/test/read.cgi/tech/1702111239/46
47: デフォルトの名無しさん (ワントンキン MMdf-llxg [153.248.8.149]) [sage] 2023/12/23(土) 18:34:01.16 ID:seU0bwIPM 起源が知りたいわけじゃないと思うよ… http://mevius.5ch.net/test/read.cgi/tech/1702111239/47
48: デフォルトの名無しさん (ワッチョイ 3f48-taje [2400:2200:39a:a839:*]) [sage] 2023/12/23(土) 18:43:21.05 ID:RHehsd3K0 別に関数を変数に代入できるのはJavaScriptが初とか唯一ってわけじゃないからそこを掘り下げてもね http://mevius.5ch.net/test/read.cgi/tech/1702111239/48
49: デフォルトの名無しさん (ワッチョイ 3f79-Eb5K [61.192.187.100]) [sage] 2023/12/23(土) 20:16:48.44 ID:87/jUj+m0 >>47-48 起源というかね、こういうのは歴史的経緯を辿って理解した方が判りやすいという話よ 君らのつまらんレスを読むよりはずっとね Javascriptでやってる事は関数のポインタとはわけが違うんだから http://mevius.5ch.net/test/read.cgi/tech/1702111239/49
50: デフォルトの名無しさん (ワントンキン MMdf-llxg [153.248.8.149]) [sage] 2023/12/23(土) 20:22:17.26 ID:seU0bwIPM >>49 それは絶対にない>わかりやすい http://mevius.5ch.net/test/read.cgi/tech/1702111239/50
51: デフォルトの名無しさん (ワッチョイ 7f95-UZ2u [240b:12:6820:b000:*]) [sage] 2023/12/23(土) 20:30:53.27 ID:1KvsNCZl0 歴史を追いかけられるくらい論理的に文章組み立ててくれないか? http://mevius.5ch.net/test/read.cgi/tech/1702111239/51
52: デフォルトの名無しさん (ワッチョイ cfcf-x2Sm [153.206.76.80]) [sage] 2023/12/23(土) 20:34:16.96 ID:6J3b/0Sr0 >Javascriptでやってる事は関数のポインタとはわけが違うんだから LISPが違うのはわかるけどJavaScriptは関数ポインタとそんなに違うんだっけ? http://mevius.5ch.net/test/read.cgi/tech/1702111239/52
53: デフォルトの名無しさん (ワッチョイ 3f48-taje [2400:2200:39a:a839:*]) [sage] 2023/12/23(土) 20:55:11.83 ID:RHehsd3K0 >>49 賛同されなかったからつまらんレスとか言い出すのは大人げないよ http://mevius.5ch.net/test/read.cgi/tech/1702111239/53
54: デフォルトの名無しさん (アウアウウー Sa17-Krj3 [106.155.25.196]) [sage] 2023/12/24(日) 14:20:26.14 ID:eKX/4s7na >>52 だいぶ違うぞ クロージャって言葉知ってる? 定義された場所のローカル変数を参照できるの そしてローカル変数がクロージャによってキャプチャされたら その変数はクロージャが死なない限りずっと保持される これは関数ポインタとは訳が違う そしてそれこそがscheme信者のアイクが取り入れたかったもの クロージャじゃないなら関数ポインタと大して変わらんっちゃ変わらん http://mevius.5ch.net/test/read.cgi/tech/1702111239/54
55: デフォルトの名無しさん (ワッチョイ 13b1-l39z [2001:240:242e:2802:*]) [sage] 2023/12/24(日) 15:20:54.55 ID:D70pmwho0 >>54 関数がクロージャを形成するかどうかと 関数を受け渡すときに関数へのポインタを使ってるかどうかは直交した別の問題 実際どのJavaScriptエンジンも関数へのポインタを使って変数への代入や関数の受け渡しを実現している C言語はクロージャをサポートしないのでC言語の関数ポインタを使ってもクロージャにはならないのは当たり前 もう少し言えば関数を受け渡し可能にするためのスコープ解決の仕組み/ルールと受け渡す際に関数へのポインタを使ってるかどうかは別の問題 http://mevius.5ch.net/test/read.cgi/tech/1702111239/55
56: デフォルトの名無しさん (ワッチョイ 13b1-l39z [2001:240:242e:2802:*]) [sage] 2023/12/24(日) 15:53:19.34 ID:D70pmwho0 別スレで見かけたトンデモ記事書いてる人だと思うけどレキシカルスコープの話と第一級関数の話とレキシカルスコープを使ったクロージャによって第一級関数を実現する話を混同してるんじゃないか Schemeはレキシカルスコープを使ったクロージャという考え方を広く普及させた言語ではあるがレキシカルスコープや第一級関数はScheme以前の昔から実現されてたものだし レキシカルスコープを使ったクロージャもScheme以前の昔からあった考え方 Schemeが初めてレキシカルスコープを定義したかのように書くのはやめよう http://mevius.5ch.net/test/read.cgi/tech/1702111239/56
57: デフォルトの名無しさん (スップ Sd5f-96gJ [1.72.3.74]) [sage] 2023/12/24(日) 16:19:26.43 ID:+dT+Yo8pd >>56 ちょっと指摘させてもらうと 誰も起源の話なんてしてないよ http://mevius.5ch.net/test/read.cgi/tech/1702111239/57
58: デフォルトの名無しさん (アウアウウー Sa17-Krj3 [106.155.24.145]) [sage] 2023/12/24(日) 16:48:55.22 ID:awd0q31Fa >>56 いや別に起源とかはどうでも良くて関数ポインタとは違うよって話をしてるだけなんだけど http://mevius.5ch.net/test/read.cgi/tech/1702111239/58
59: デフォルトの名無しさん (ワッチョイ f367-l39z [2001:240:242a:1b50:*]) [sage] 2023/12/24(日) 18:14:29.42 ID:uJ8b4azy0 >>57 >>43がしてるでしょ この人同じように間違ったことをあちこちで書いてるから指摘しただけ http://mevius.5ch.net/test/read.cgi/tech/1702111239/59
60: デフォルトの名無しさん (ワッチョイ cfb1-llxg [2400:4050:afe0:3700:*]) [sage] 2023/12/24(日) 19:40:11.40 ID:3LVtZ1UM0 彼は命題論理が理解できなくて、120年前の古文書まで読み返して、それでも分からなくて200年前の哲学書まで遡った結果、今でも命題論理が分かってないって人間だから、彼の歴史的経緯を遡れば理解しやすくなるって主張は実は彼自身によって反証されてたりする http://mevius.5ch.net/test/read.cgi/tech/1702111239/60
61: デフォルトの名無しさん (ワッチョイ 8321-JyiE [2404:7a82:3de0:3500:*]) [sage] 2023/12/24(日) 22:35:22.54 ID:ietP5AWI0 >>38 が分かりやすかったかどうか答えてくれれば解決だな http://mevius.5ch.net/test/read.cgi/tech/1702111239/61
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 247 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s