JavaScript の質問用スレッド vol.126
1 :デフォルトの名無しさん (オッペケ Sr9f-tek/ [126.254.232.20]) :2023/12/09(土) 17:40:39.92 ID:Mnb70srnr.net !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
2 :デフォルトの名無しさん (オッペケ Sre1-tek/ [126.254.232.20]) :2023/12/09(土) 17:41:59.25 ID:Mnb70srnr.net ■質問テンプレート 【環境】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制作板、ブログラム板のどちらのスレで質問しても問題ありません。
3 :デフォルトの名無しさん (オッペケ Sre1-tek/ [126.254.232.20]) :2023/12/09(土) 17:43:26.17 ID:Mnb70srnr.net ■関連スレ(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日本語訳)
4 :デフォルトの名無しさん (オッペケ Sre1-tek/ [126.254.232.20]) :2023/12/09(土) 17:45:14.13 ID:Mnb70srnr.net テンプレここまで 内容は前スレ踏襲
5 :デフォルトの名無しさん :2023/12/09(土) 17:55:10.18 ID:Mnb70srnr.net テンプレの範囲ぐらい修正しとけばよかったかな
6 :デフォルトの名無しさん :2023/12/10(日) 16:33:48.20 ID:ngtmyS7f0.net 前スレで日付変換の関数で質問していた者です。 開発環境としましては、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
7 :デフォルトの名無しさん :2023/12/10(日) 16:34:26.85 ID:ngtmyS7f0.net 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)
8 :デフォルトの名無しさん :2023/12/10(日) 16:34:43.88 ID:ngtmyS7f0.net // 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); }
9 :デフォルトの名無しさん :2023/12/10(日) 16:35:00.00 ID:ngtmyS7f0.net // DateをHH:MM文字列に変換する function timeToHhmm(time){ let n = time.getHours().toString().padStart(2, "0") + ":"; n += time.getMinutes().toString().padStart(2, "0"); return(n); }
10 :デフォルトの名無しさん :2023/12/10(日) 16:35:52.81 ID:ngtmyS7f0.net 申し訳有りません。 サービスでの稼働は確認出来たのですが、共有方法が分からないので、連投になってしまいましたが、直接描かせていただきました。
11 :デフォルトの名無しさん (アウアウウー Sa49-+EJW [106.155.27.178]) :2023/12/10(日) 17:01:43.23 ID:013bN9IEa.net >>10 よくわからんけどそもそもその環境は関数定義して呼び出すとかできるの? 全体を関数として扱って最後の戻り値を文字列として解釈してるとかそういうノリではなく?
12 :デフォルトの名無しさん (ワッチョイ ed27-tek/ [2400:2200:6f2:ad4b:*]) :2023/12/10(日) 17:01:58.34 ID:uEdCnVbW0.net >>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 などと追加すればその値が結果値として採用されるんではないだろうか
13 :デフォルトの名無しさん :2023/12/10(日) 21:02:11.63 ID:ngtmyS7f0.net >>11 ,12 まさに仰るとおりでございました。 最後に出力文を置くことで正しく稼働を確認できました。 改めて調べようが足らなかったことを痛感しました。正直自分の中に『これ、なんかバグってるのかな…』などと考えてしまってた所もありましたが、単に仕様であったことに恥ずかしさとプラットフォーム開発者に申し訳ないですね。 wikiもしっかり読み込んで改めて勉強しなおしてみます。 本当にありがとうございます。 長々と失礼しました。
14 :デフォルトの名無しさん :2023/12/15(金) 23:44:44.09 ID:WfAwrcm40.net nullとundefinedはどう違うのでしょうか?
15 :デフォルトの名無しさん :2023/12/16(土) 00:21:53.93 ID:92Act5oB0.net >>14 型も値も何もかも違う
16 :14 :2023/12/16(土) 12:33:00.76 ID:3Jo1PIzy0.net >>15 レスありがとうございます 単純に、nullは「空」、undefinedは「未定義」と理解しておけばいいでしょうか? うーんでも、空だから未定義であるとも言えるし、未定義だから空とも言える気もします 難しく考え出すとハマりますね…
17 :デフォルトの名無しさん :2023/12/16(土) 12:50:38.08 ID:GGJUNSgh0.net まず「空」とはなんぞや、「未定義」とはなんぞやってところから勉強してみたら?
18 :14 :2023/12/16(土) 13:09:24.81 ID:3Jo1PIzy0.net >>17 レスありがとうございます 自分なりに少し調べてみたら、 undefinedは「これから何かしらの値が入る余地があるがまだ定義されていない」 nullは「値が入りようがないから空」 という違いがあるみたいですね
19 :デフォルトの名無しさん :2023/12/16(土) 13:43:31.64 ID:GGJUNSgh0.net 意味的には別物だというのは納得できた?
20 :14 (ワッチョイ 4f1d-Qk2W [180.178.89.53]) :2023/12/16(土) 16:34:04.63 ID:3Jo1PIzy0.net >>19 はい、それなりに理解出来たと思います ありがとうございます JSでは、undefinedに比べるとnullの登場頻度はかなり低いみたいですね
21 :デフォルトの名無しさん :2023/12/16(土) 19:13:30.08 ID:UfR4i5aB0.net 設計ミスだから使い分ける必要はなく 外部とのやりとり以外にnullは使わないと統一した方が問題でにくいし楽
22 :デフォルトの名無しさん :2023/12/18(月) 12:29:54.63 ID:UBFKxLGp0.net 配列の宣言はvar list=[]; オブジェクトの宣言var obj={}; 配列の配列の宣言は var list=[[]]; ではオブジェクトの配列の宣言はどうすればいいですか? var obj={[]};のようにしてもできませんでした。 obj["aaa"][0]=100; obj["bbb"][1]=200; のように値を入れたいです。
23 :デフォルトの名無しさん :2023/12/18(月) 12:38:38.33 ID:UBFKxLGp0.net 配列のオブジェクトって言った方が正しいのかわからないけど とにかく>>22 のように代入したいんです
24 :デフォルトの名無しさん :2023/12/18(月) 12:58:21.29 ID:kn95Gf6w0.net [[]] 配列を入れ子にしても1番目の要素を[]に初期化しているだけで 配列として使いたい場合に必要な手順ではない 仮に1番目を[1,2]、2番目を[3]にしたい時に操作が変わってしまうので邪魔なだけ 配列は空のまま [] で十分 あとconst/letじゃなくvarで書くスタイルは古い 参考にした情報があるなら忘れよう 更新もせずずっと放置しているなら害悪でしかない
25 :デフォルトの名無しさん :2023/12/18(月) 13:13:46.30 ID:BJv/M26K0.net let obj = {}; obj["aaa"] = [100]; obj["bbb"] = [undefined]; obj["bbb"][1] = [200];
26 :デフォルトの名無しさん :2023/12/18(月) 13:15:33.46 ID:BJv/M26K0.net obj["bbb"][1] = 200;
27 :デフォルトの名無しさん :2023/12/18(月) 13:42:57.71 ID:WXLOngT30.net const obj = { aaa: [100], bbb: [, 200] };
28 :デフォルトの名無しさん :2023/12/18(月) 14:17:37.97 ID:oIHu3KbV0.net >>23 そこがあやふやだからどう宣言すればいいかも分からないんだと思う 君が宣言したいものは「配列をメンバーに持つオブジェクト」だよ
29 :デフォルトの名無しさん :2023/12/18(月) 18:21:51.41 ID:UBFKxLGp0.net >>24-28 ありがとうございます
30 :デフォルトの名無しさん (ワッチョイ 4f10-n6T6 [180.12.82.129]) :2023/12/18(月) 23:55:35.85 ID:UBFKxLGp0.net オブジェクトのkeyにelementを使うのは不具合になりますか? const element = document.getElementById("test_id"); const element2 = document.getElementById("test2_id"); let obj ={}; obj[element] = 200; obj[element2] = 300;というような感じです 一応動作はしたけどやらないほうがいいんですか?
31 :デフォルトの名無しさん (ワッチョイ c73f-r/Us [2400:2200:736:eb7f:*]) :2023/12/19(火) 00:19:13.16 ID:ny/Z19vi0.net >>30 本当に期待通りに動いてるかしっかり確認した?
32 :デフォルトの名無しさん (ワッチョイ 0343-Qk2W [2001:268:9a84:9fef:*]) :2023/12/19(火) 00:31:33.88 ID:z6V4TATi0.net const element = 何々 で、elementがオブジェクトなら、キーに使ってはならない。 primitive なら、キーに使える この表記は、constがついていても、 そのオブジェクトの中身・内容は変えられるから、 本当の意味のconstではない Ruby では、オブジェクトをfreeze すると、浅い第1階層で変更できなくなる。 変更できなくなった部分に、次の第2階層のオブジェクトがあれば、そこは変更できる! だから完全に深い階層まで、再帰的にfreezeしないと、 本当の意味でfreezeにならない >>20 undefined はユーザーが作り出せないものだから、 普通は空を表すのに、null を使う Rubyのnil と同じ
33 :デフォルトの名無しさん :2023/12/19(火) 01:47:20.29 ID:jkXgnxvQ0.net >>30 MapやWeakMapを使おう
34 :デフォルトの名無しさん :2023/12/19(火) 12:32:27.47 ID:wIcY707L0.net >>31 確認したら期待通りに動きました >>31-33 ありがとうございます
35 :デフォルトの名無しさん :2023/12/19(火) 14:48:44.22 ID:s0aDiAUA0.net >>34 >>30 のあとに console.log(obj[element]); と書くと何が表示されると思う?
36 :デフォルトの名無しさん :2023/12/19(火) 14:54:15.24 ID:s0aDiAUA0.net あ、これだけだと前提が足りないか test_idもtest2_idもdivタグだとする
37 :デフォルトの名無しさん :2023/12/19(火) 15:48:03.09 ID:g4Os8oTba.net >>16 実用的はそれらは同値だと判断した方が良い 少なくともコード上分けるメリットはゼロ
38 :デフォルトの名無しさん :2023/12/20(水) 13:23:41.58 ID:QAvRAUPM0.net JavaScriptで関数を変数に代入できると聞いて、 物理学で万物が粒子だけでなく波としての性質も合わせもつと聞いたときと同じくらいの衝撃を受けました。 どうもこのJavaScriptで関数を変数に代入できるという考えがしっくりこないのですが、どう考えれば受け入れられますか?
39 :デフォルトの名無しさん :2023/12/20(水) 13:43:53.69 ID:bsiqnAom0.net >>38 関数定義の構文 function f() {...} は関数オブジェクトを変数 f に代入してるだけなので g = f としたら g() で同じ関数呼べるし f = 123 と再代入したら f() で関数呼べなくなる f = () => {...} これで関数定義できることからもわかる
40 :デフォルトの名無しさん (ワッチョイ a262-Zz6i [2001:240:2428:b257:*]) :2023/12/20(水) 15:57:28.18 ID:5U5fDbVv0.net >>38 Arrayだろうが関数だろうが変数に格納されてる値はポインタで 値を使う時に自動的にデリファレンスされてると思っとけばいいんじゃね 最近の言語ならどれも同じようなことできるけどね
41 :デフォルトの名無しさん :2023/12/21(木) 01:46:28.22 ID:9dULh+b20.net >>38 実態からはかけ離れるけど、メソッドが1個しかないオブジェクトの特別な扱いだと捉えるとどうだろう? 関数を変数に代入できるというのは、C言語のような古いものでも関数ポインタという形で実現してる。 関数はそのコードがメモリ上に配置されていて、関数の呼び出しはそのメモリのアドレスにジャンプするという形で行われるけど、そのジャンプ先のアドレスを変数に入れる感じ。 JavaScript ではクロージャって概念でもっと高度だけど、代入された変数には結局その関数の在りかが紐づけられてる。
42 :デフォルトの名無しさん (スップ Sd42-MF53 [49.97.109.220]) :2023/12/21(木) 14:29:18.32 ID:0EYD168kd.net やろうと思えば各要素に関数の入った配列を作れるってことが
43 :デフォルトの名無しさん (ワッチョイ 2279-F8eA [61.192.187.100]) :2023/12/22(金) 21:46:22.69 ID:nFOKM4xK0.net LISP→Scheme→Javascriptという歴史的経緯があるのでそこから理解すると判りやすいかも コードはLISPにとってはただのリストというデータ表現でしかなかったのでコードを変数に代入するというのはとても自然な事だった Schemeでレキシカルスコープが定義され一般的なクロージャの形になった 括弧だらけの構文は一般受けしないのでCっぽい構文のJavascriptが生まれた ざっくり書けばこういうわけです
44 :デフォルトの名無しさん :2023/12/23(土) 01:26:50.34 ID:ZuCxSQpj0.net >>43 分かりやすいかなぁw
45 :デフォルトの名無しさん (ワッチョイ 131b-taje [2400:2200:395:6245:*]) :2023/12/23(土) 02:10:18.87 ID:YHpw3jwo0.net 挙がってる各言語を知ってる人はなるほどと思うかもしれないけど そうでないならただの遠回りな気が
46 :デフォルトの名無しさん :2023/12/23(土) 18:09:35.53 ID:87/jUj+m0.net >>39-41 は代入できますって以上の説明はできてないし ショックを受けた38が知りたいのはそういう事じゃないんだろう Coders at WorkによればJavaacript設計者のブレンダン・アイクはSICPとSchemeの崇拝者で、 最初のアイデアはNetscapeブラウザにSchemeを持ち込むことだったとの事だよ まずはSICPでも読むといいんじゃないの
47 :デフォルトの名無しさん :2023/12/23(土) 18:34:01.16 ID:seU0bwIPM.net 起源が知りたいわけじゃないと思うよ…
48 :デフォルトの名無しさん :2023/12/23(土) 18:43:21.05 ID:RHehsd3K0.net 別に関数を変数に代入できるのはJavaScriptが初とか唯一ってわけじゃないからそこを掘り下げてもね
49 :デフォルトの名無しさん (ワッチョイ 3f79-Eb5K [61.192.187.100]) :2023/12/23(土) 20:16:48.44 ID:87/jUj+m0.net >>47-48 起源というかね、こういうのは歴史的経緯を辿って理解した方が判りやすいという話よ 君らのつまらんレスを読むよりはずっとね Javascriptでやってる事は関数のポインタとはわけが違うんだから
50 :デフォルトの名無しさん (ワントンキン MMdf-llxg [153.248.8.149]) :2023/12/23(土) 20:22:17.26 ID:seU0bwIPM.net >>49 それは絶対にない>わかりやすい
51 :デフォルトの名無しさん (ワッチョイ 7f95-UZ2u [240b:12:6820:b000:*]) :2023/12/23(土) 20:30:53.27 ID:1KvsNCZl0.net 歴史を追いかけられるくらい論理的に文章組み立ててくれないか?
52 :デフォルトの名無しさん (ワッチョイ cfcf-x2Sm [153.206.76.80]) :2023/12/23(土) 20:34:16.96 ID:6J3b/0Sr0.net >Javascriptでやってる事は関数のポインタとはわけが違うんだから LISPが違うのはわかるけどJavaScriptは関数ポインタとそんなに違うんだっけ?
53 :デフォルトの名無しさん (ワッチョイ 3f48-taje [2400:2200:39a:a839:*]) :2023/12/23(土) 20:55:11.83 ID:RHehsd3K0.net >>49 賛同されなかったからつまらんレスとか言い出すのは大人げないよ
54 :デフォルトの名無しさん :2023/12/24(日) 14:20:26.14 ID:eKX/4s7na.net >>52 だいぶ違うぞ クロージャって言葉知ってる? 定義された場所のローカル変数を参照できるの そしてローカル変数がクロージャによってキャプチャされたら その変数はクロージャが死なない限りずっと保持される これは関数ポインタとは訳が違う そしてそれこそがscheme信者のアイクが取り入れたかったもの クロージャじゃないなら関数ポインタと大して変わらんっちゃ変わらん
55 :デフォルトの名無しさん :2023/12/24(日) 15:20:54.55 ID:D70pmwho0.net >>54 関数がクロージャを形成するかどうかと 関数を受け渡すときに関数へのポインタを使ってるかどうかは直交した別の問題 実際どのJavaScriptエンジンも関数へのポインタを使って変数への代入や関数の受け渡しを実現している C言語はクロージャをサポートしないのでC言語の関数ポインタを使ってもクロージャにはならないのは当たり前 もう少し言えば関数を受け渡し可能にするためのスコープ解決の仕組み/ルールと受け渡す際に関数へのポインタを使ってるかどうかは別の問題
56 :デフォルトの名無しさん :2023/12/24(日) 15:53:19.34 ID:D70pmwho0.net 別スレで見かけたトンデモ記事書いてる人だと思うけどレキシカルスコープの話と第一級関数の話とレキシカルスコープを使ったクロージャによって第一級関数を実現する話を混同してるんじゃないか Schemeはレキシカルスコープを使ったクロージャという考え方を広く普及させた言語ではあるがレキシカルスコープや第一級関数はScheme以前の昔から実現されてたものだし レキシカルスコープを使ったクロージャもScheme以前の昔からあった考え方 Schemeが初めてレキシカルスコープを定義したかのように書くのはやめよう
57 :デフォルトの名無しさん :2023/12/24(日) 16:19:26.43 ID:+dT+Yo8pd.net >>56 ちょっと指摘させてもらうと 誰も起源の話なんてしてないよ
58 :デフォルトの名無しさん :2023/12/24(日) 16:48:55.22 ID:awd0q31Fa.net >>56 いや別に起源とかはどうでも良くて関数ポインタとは違うよって話をしてるだけなんだけど
59 :デフォルトの名無しさん :2023/12/24(日) 18:14:29.42 ID:uJ8b4azy0.net >>57 >>43 がしてるでしょ この人同じように間違ったことをあちこちで書いてるから指摘しただけ
60 :デフォルトの名無しさん :2023/12/24(日) 19:40:11.40 ID:3LVtZ1UM0.net 彼は命題論理が理解できなくて、120年前の古文書まで読み返して、それでも分からなくて200年前の哲学書まで遡った結果、今でも命題論理が分かってないって人間だから、彼の歴史的経緯を遡れば理解しやすくなるって主張は実は彼自身によって反証されてたりする
61 :デフォルトの名無しさん :2023/12/24(日) 22:35:22.54 ID:ietP5AWI0.net >>38 が分かりやすかったかどうか答えてくれれば解決だな
62 :38 (ワッチョイ bf74-uzyf [211.124.81.22]) :2023/12/24(日) 23:33:56.01 ID:M3Ha8RQ30.net さっぱり分からん
63 :デフォルトの名無しさん (ワッチョイ cfb1-llxg [2400:4050:afe0:3700:*]) :2023/12/24(日) 23:38:36.92 ID:3LVtZ1UM0.net おっIP同じやし38本人やん まあそうだよな。あの説明でわかりやすく人間なんておらんやろ
64 :デフォルトの名無しさん :2023/12/25(月) 06:04:30.08 ID:G5r1XQvR0.net クロージャは第一級市民関数。 関数外のローカル変数などの文脈を取り込む。 つまり、スコープがゆるい 一方、Ruby の関数はスコープがきつくて、 関数外のローカル変数を通さないので、第一級関数ではない。 ただし、ブロックはブロック外のローカル変数を通すから、クロージャ 他に、レシーバーとメソッドを持ち運ぶ、メソッドオブジェクトもある
65 :デフォルトの名無しさん :2023/12/25(月) 08:32:20.98 ID:xnbzJK+y0.net >>38 ,62 何がどうわからないのか、を詳しく説明してくれ。 具体的なところがさっぱり分からん。
66 :デフォルトの名無しさん :2023/12/25(月) 21:05:49.32 ID:HhwD874b0.net そりゃそもそもLISPやSchemeを全く知らない人だったんでしょ 分かりやすくなる要素なんて1ミリもないわな
67 :デフォルトの名無しさん :2023/12/25(月) 21:28:48.99 ID:XllulW5ca.net struct Closure { struct Env env; struct Function func; }; Closureの最もシンプルな実装 Envはキャプチャしたローカル変数を保持する環境 Functionは関数ポインタやらを保持してるオブジェクトだと思ってくれ たったこれだけのことに過ぎない 関数ポインタにenvが追加されただけのものだ
68 :デフォルトの名無しさん :2023/12/26(火) 01:40:31.83 ID:XlP1bh7b0.net クロージャやレキシカルスコープがどうやって実現されてるかという質問なら[[Environment]]のことを教えてあげるのはいいと思うけど そういう話は誰もしてないからねぇ
69 :デフォルトの名無しさん :2023/12/26(火) 12:17:20.00 ID:iZHdB3Jl0.net 結局のところ>>38 の問題って関数は変数に代入できないものだっていう固定観念を他の言語に持ち込んでるところだと思う プログラミング言語なんて所詮ヒトがそれぞれの都合で作ったものであって言語が違えば考え方や常識も違う そこを理解して他の言語の固定観念を持ち込まないようにしないとこの先もしっくりこないこと、受け入れられないことだらけだろう
70 :デフォルトの名無しさん (ワッチョイ efc9-l39z [2001:240:247c:3ea8:*]) :2023/12/26(火) 18:41:41.07 ID:DtaEhUmP0.net 関数を変数に直接代入できないCの系譜の言語が最も広く普及してるから そういう言語をやってきた人が関数を変数に直接代入できる言語に初めて接したら>>38 のように驚くのは極々自然のこと 何が固定観念なのかなんてそれが覆るまで分からないんだから固定観念を持ち込むなとか言っても何の役にも立たないよ
71 :デフォルトの名無しさん (ワッチョイ 3f27-taje [2400:2200:391:e73b:*]) :2023/12/26(火) 19:02:16.70 ID:ar+aUrwZ0.net 今回のことで固定観念だったと気づければそれでいいと思うよ そうすれば次からは疑ってかかることができるわけだし
72 :デフォルトの名無しさん :2024/01/05(金) 08:36:00.72 ID:kvxPBg+iM.net 糞長い式が真値のときだけ変数に代入したくて if (糞長い式) { X = 糞長い式 } と書いてるんですが糞長い式を一度で済ますにはどうしたらいいですか
73 :デフォルトの名無しさん :2024/01/05(金) 09:10:31.40 ID:PLcvVAqJ0.net >>72 いますぐ糞をして寝ることだ。 糞!
74 :デフォルトの名無しさん :2024/01/05(金) 09:12:10.60 ID:PLcvVAqJ0.net X = 糞長い式 ? 糞長い式2 : X;
75 :デフォルトの名無しさん :2024/01/05(金) 09:26:22.59 ID:B0YNzjLy0.net Y = 糞長い式 if (Y) { X = Y }
76 :デフォルトの名無しさん :2024/01/05(金) 09:52:24.63 ID:UVxCqy8T0.net 2回評価したくないときもあるし>>75 https://docs.python.org/ja/3/whatsnew/3.8.html#assignment-expressions そこまで糞長くないならセイウチ演算子
77 :デフォルトの名無しさん :2024/01/05(金) 11:11:29.09 ID:j+cl8so10.net X = 糞長い式 || X; わかりやすい>>75 でいいと思うわ
78 :デフォルトの名無しさん (ワッチョイ efbb-bJ3A [240f:108:3018:1:*]) :2024/01/05(金) 18:15:32.86 ID:xFVV62H30.net カルノー図やクワイン・マクラスキー法で書けないほど複雑だと どうにもならない if else if else にうまく展開するか switch 文をうまく使うとかかなあ
79 :デフォルトの名無しさん (ワッチョイ fd9f-stEI [122.133.203.183]) :2024/01/08(月) 08:24:08.50 ID:HV7sMHf30.net 質問させていただきます。 タグの属性onclick等で設定したイベント処理では 処理側の関数ではeventオブジェクトを参照出来ないのでしょうか? 色々探してるのですが見つけられなくて・・・よろしくお願い致します。
80 :デフォルトの名無しさん :2024/01/08(月) 10:20:56.34 ID:FNFcnj+v0.net >>79 onclick属性のイコールの右側にある値は無名関数をそのままラップしたもので、eventオブジェクトはその関数の第一引数に渡される つまり<タグ onclick="func(arguments[0]);">とすれば取得できる
81 :デフォルトの名無しさん (ワッチョイ 8d43-iBaE [114.148.50.247]) :2024/01/08(月) 10:51:13.68 ID:adS5ZNXz0.net >>79 引数で渡されてくるけど? HTMLのタグの中に書く事例では意味も解らずその引数を省略しているのが多い それより、今どきはHTMLと分離した、こっちの書き方がおすすめ https://developer.mozilla.org/ja/docs/Web/API/Element/click_event
82 :デフォルトの名無しさん :2024/01/08(月) 13:07:07.19 ID:cXOMuDOl0.net >>79 onclick属性値の中でもeventは使える。 <p onclick="console.log(event);"> ところで、「処理側の関数」とは?
83 :デフォルトの名無しさん :2024/01/08(月) 13:58:47.00 ID:pIW6TUAd0.net ブラウザの開発者ツールにあるデバッガをつかえば気づける 止めたところの環境が丸見えになるから
84 :デフォルトの名無しさん (ワッチョイ fd2e-dvWY [2001:268:9a3d:8302:*]) :2024/01/08(月) 20:55:54.87 ID:gJaMg8aw0.net 例えば、jQuery なら、これで5つのキーのkeydown をキャッチできる $( function ( ) { $( 'body' ).keydown ( function( e ) { switch( e.key ) { // 32:空白、37:←、38:↑、39:→、40:↓ case " " : case "ArrowLeft" : case "ArrowRight" : case "ArrowUp" : case "ArrowDown" : console.log( e.key ); } } ) } );
85 :デフォルトの名無しさん (ワッチョイ 434b-NOlf [240b:12:6820:b000:*]) :2024/01/08(月) 21:08:17.54 ID:Jg6SbkUr0.net <button onclick="hoge(this)">ってやると意図しない動きすることあるからルールで禁止してるところもあるよね
86 :デフォルトの名無しさん :2024/01/11(木) 09:49:12.76 ID:L0eqWFW50.net 子要素は含まないようにelementを取得するにはどうすればいいですか? これだとテーブルの中のフォームをスライドさせてもalertが表示されてしまいます。 子要素は含まないテーブルのみのelementを取得することはできますか? <table style="width:500px;height:300px;background:#ffff00" id="aaa"> <tr><td><input type="range" style="width:inherit"></td></tr> </table> <スクリプト> const elm = document.getElementById("aaa"); elm.addEventListener( "mousedown", function(e){alert("www");} ); </スクリプト>
87 :デフォルトの名無しさん (ワッチョイ b536-QPx5 [2400:4052:5062:9ff0:*]) :2024/01/11(木) 10:30:37.07 ID:8+5yXztZ0.net 何をやりたいのかがわからない説明 とりあえずプログラムを意識せずに やりたいことの要件を日本語でよろしく
88 :デフォルトの名無しさん (ワッチョイ 2319-dvWY [2001:268:c0d0:700e:*]) :2024/01/11(木) 10:35:49.26 ID:oja63d6W0.net function(e){ // input要素以外をクリックした場合の処理 if (e.target.tagName !== 'INPUT') { alert("www"); } }
89 :デフォルトの名無しさん (ワッチョイ 0510-zseD [180.12.82.129]) :2024/01/11(木) 13:03:40.31 ID:L0eqWFW50.net >>87 子要素を除外したelementを取得したいってことっす >>88 ありがとうございます試してみます
90 :デフォルトの名無しさん :2024/01/11(木) 14:18:15.97 ID:8+5yXztZ0.net それ、バブリングを意識しないとダメかもよ
91 :デフォルトの名無しさん :2024/01/11(木) 14:44:36.31 ID:bfPtSoSL0.net 先ほどは手元にソースコードがなかったので即席で質問してしまいました。 やりたいことはテーブル部分でタッチムーブしたときブラウザのスクロールを禁止にしたいのですが、 テーブルにあるスライダーまでロックされて動かせないようになってしまうので、 スライダーを除外したテーブル部分のelementだけ取得できれば上手くできるのでは?と思ったから先ほどのような質問をしてしまいました。 ようするにブラウザのスクロール禁止にするけどスライダーは動かせるようにしたいんです。 <table style="width:500px;height:300px;background:#ffff00" id="aaa"> <tr><td><input type="range" step="1" min="0" max="10" value="1"></td></tr> </table> <スクリプト> const elm = document.getElementById("aaa"); elm.addEventListener( "touchmove", function(e){ e.preventDefault(); //ブラウザのスクロールを禁止にする } ); </スクリプト>
92 :デフォルトの名無しさん :2024/01/11(木) 15:08:55.09 ID:k0wEY4GK0.net よく分からんが、cssでそんなのがあるな https://developer.mozilla.org/ja/docs/Web/CSS/overscroll-behavior
93 :デフォルトの名無しさん :2024/01/11(木) 16:34:13.87 ID:tWeEPqJO0.net >>91 preventDefault()をstopPropagation()に変えるだけでいいかもしれない この場合は多分preventDefault()はいらない
94 :デフォルトの名無しさん :2024/01/11(木) 22:20:25.19 ID:vnpK4WpS0.net clickやmousedownに仕込む話したど思ったのでバブリングを指摘したけれど スマホの場合にスライダー操作でスクロールしちゃうのを止めたい場合の話なら別問題 スクロールはブラウザ側の仕組みでDOMのイベントバブリングを止めてもダメ それとターブルじゃなくて、スライダーをtouchmoveしたときにスクロールを止めたいのじゃないですか 要件としては スライダーのtouchstartでブラウザのスクロール機能を無効にして スライダーのtouchendでブラウザのスクロール機能を有効に戻す スクロールの有効・無効は、スクロール要素のcssのスタイルで制御できるので、JavaScriptでstyle要素のoverflowYまたはoverflowXを'hidden'または'auto'と値を切り替える
95 :デフォルトの名無しさん :2024/01/11(木) 22:41:54.15 ID:bfPtSoSL0.net >>93 ありがとうございます。 スライダーのelementにe.stopPropagation()をしたらスライダーを動かせるようになりました >>94 ありがとうございます。試してみます。
96 :デフォルトの名無しさん :2024/01/13(土) 03:22:15.94 ID:bBKen2/T0.net すいません、vueの質問はここでいいですか?
97 :デフォルトの名無しさん :2024/01/13(土) 11:42:05.46 ID:sUiBS1y50.net ↓あたりにどうぞ JavaScriptフロントエンド総合 Part.11 https://mevius.5ch.net/test/read.cgi/tech/1660898820/ Vue vs React vs Angular vs Svelte Part.11 https://mevius.5ch.net/test/read.cgi/tech/1660969032/
98 :デフォルトの名無しさん (ワッチョイ ad01-1c9G [126.168.252.135]) :2024/01/14(日) 17:21:53.60 ID:vAN1c9wS0.net ありがとうございます
99 :デフォルトの名無しさん :2024/01/26(金) 17:25:13.36 ID:2+81uqBd0.net WebフロントエンドでのJavaScriptを勉強中です 「jQueryでできることは素のJSでもできるのがほとんどになったから、jQuery不要」という話しが出てきますが、 エレメントの操作などで、素のJSだと記述する文字が長く、jQueryだとすごく短く書けるので、それだけでも十分便利と感じています。 document.querySelector('selector') ⇒ $('selector') jQuery不要の場合、効率良く書くために代わりに何を使っているのか気になります。 大型のフレームワークとかでしょうか?フレームワーク使うと、ここのエレメントの参照・操作などはもはや不要になるのでしょうか?
100 :デフォルトの名無しさん :2024/01/26(金) 19:57:32.14 ID:vs+8Yc4d0.net jQueryの技術覚えてもjQueryにしか使えない。素のJS技術はどんなフレームワーク使っても役に立つ
101 :デフォルトの名無しさん :2024/01/26(金) 20:11:15.77 ID:Uafucq2BM.net >>99 コード補完機能(任意のスニペット呼び出しを含む)のある現代のエディタではその全てをキータイプする必要は無いし、どうしても短く書きたいならショートハンドを定義すればいい たとえば、5ch互換掲示板ビューアであるブラウザ拡張機能「read.crx 2」では、同拡張機能の共同メンテナの方が作成したjQueryライク(互換ではない)なショートハンドライブラリ「shortQuery.js」が使われてる(だいぶ前にいわゆる「脱jQuery」のお供として導入されたハズ) なんにせよ、初心者が今からjQueryを学ぶのは悪手
102 :デフォルトの名無しさん :2024/01/26(金) 20:12:23.71 ID:Z5KyuX5d0.net 素のjs分からずにjquery使えるわけないだろ
103 :デフォルトの名無しさん (ワッチョイ 433e-K/rq [2400:2200:7d4:c4d1:*]) :2024/01/26(金) 21:41:55.02 ID:bxMKu9aD0.net >>99 その通り ReactやVueに代表されるような昨今のフレームワークは開発者がDOMを直接操作しない
104 :デフォルトの名無しさん (ブーイモ MM43-kvtp [49.239.68.29]) :2024/01/26(金) 21:48:25.16 ID:KJ09lp1IM.net そう思ってるとこんなん当然知ってますよねみたいなノリでevent処理とかrefとか出て詰むゾ
105 :デフォルトの名無しさん :2024/01/28(日) 11:39:44.53 ID:WhNL7KNN0.net >>99 jQueryの現在はHPフロントエンジニアさんが 抱負なライブラリでHPに花をそえるために使っているだけ ウェブアプリ屋さんはjQueryが邪魔くさい時があるので使わない どの分野を目指すのかが決まっているなら その分野で何が主流なのかを見極めたほうがいい
106 :デフォルトの名無しさん :2024/01/28(日) 19:30:17.30 ID:1z8oB9tQ0.net 動的に作られる特定の要素にだけイベント追加するのがラク jQueryがバニラJSに勝ってる唯一の点だけど、そういう処理を入れるくらいDOMの操作使ったアプリ作るなら他のフレームワークのほうが良いだろう
107 :デフォルトの名無しさん :2024/01/28(日) 20:16:55.07 ID:9hZosd/l0.net ゆうて古から続くjqueryの資産はいたる所にあるから、読めることくらいは出来ないとな 難しいもんではないんだし
108 :デフォルトの名無しさん :2024/01/28(日) 23:52:21.72 ID:Plt7vTfv0.net >>106 バニラでも祖先ノードでmatches(selectors)を使えば対応可能なので、それほどjQueryに優位性はない気がする。 それから、jQueryはバブリングフェースのみ対応という弱点がある。 バブリングしないイベントタイプに関してはaddEventListener()に優位性がある。
109 :デフォルトの名無しさん :2024/01/29(月) 01:34:06.63 ID:fIBxeYXl0.net 他から持ってきたコードが指すjQueryが最近のじゃなくて だれが互換性担保するのってのが一番困る jQueryを直接つかう分には検証できるけど 依存しているライブラリは採用せんでほしい
110 :デフォルトの名無しさん (ワッチョイ f95a-w/9U [2400:4052:5062:9ff0:*]) :2024/01/30(火) 09:12:09.86 ID:GdANFjKZ0.net jQuery使いの人は行き当たりばったりな人が多い jQueryライブラリファイルの読み込みが沢山あってなんじゃこりゃみたいな
111 :デフォルトの名無しさん :2024/01/30(火) 11:06:06.79 ID:kUs11O+K0.net jQueryが出た頃はSelectors APIもなかったからな 行き当たりばったりというより昔の標準APIが貧弱でライブラリに頼るしかなかった
112 :デフォルトの名無しさん (ワッチョイ 99d1-NbCu [2001:268:9a89:2571:*]) :2024/01/31(水) 00:18:29.61 ID:Z4CJtIhd0.net jQuery は短く書けるので、ちょっとしたデモには良い。 でも、React, Vue.js では使わない Bootstrap も、5 からは使わない。 popper.js に変わった
113 :デフォルトの名無しさん :2024/01/31(水) 08:00:03.26 ID:8Xe2gISY0.net >>110 しかもバージョンがところどころ違ったり読込先や仕方が違ったりする
114 :デフォルトの名無しさん :2024/02/03(土) 01:34:02.49 ID:VXfZdpMe0.net >>99 ■jQueryの良さは健在だが…… 機能のある程度はES2015で代替出来るが jQueryの良さは健在、そこはお前さんの言ってる通り それとは全く別の話 手続き型的な手法でDOMを触ってるのが前時代的 ■DOMを触るのが不味い理由 DOM作り直しは要素の改ざんな訳だ DOMを更新するためには、探索して選択、それを作り変えるの2ステップがあるけど 別の機能がDOMを消したり書き換えたら 見つけられなくてエラー出るかも知れないよね? 選択できても改ざんされてて加工出来ずにエラー吐くかも知れないよね? 担保するのは全て貴方の目視テスト 10機能作ったら10x9の90通りのマトリックステスト作ってね このように機能を作る度にnの2乗みたいなテストを目視でさせられる 全部で100機能作りましょうとかなるとありえん無理 ■代替はJSフレームワーク HTML作るテンプレートエンジンでsmartyやBlade、pugとか色々あるけど あんな感じでDOMを生成する何かを用意しておいて JS内で変数が変更されたのを検知して、勝手に新しいDOMツリーを作り直して嵌め込んでくれよって思わん? その思想で作られてるのがReactやVue、Angular等のJSフレームワーク JSフレームワークが用意した「変数の変更通知を行う」お作法を覚えて動かすとDOMが常に最新のあるべき姿になる これによりDOM操作回りはJSフレームワークという外部の業者が全て責任持ってやってくれる 俺達はDOMの元であるテンプレートを読み込ませたら ただ変数がちゃんと正しい値になってるか?を保証すれば完璧に動作するよね 変数書き換えたら常にあるべき姿のDOMに書き換わるシステムに、jQueryで改ざんし始めると衝突して邪魔になる 次のDOM更新でjQueryが書き換えた内容そっくり消えるしな だからこれからのWeb開発にjQueryは不要なんだよ 決してES2015が優れてて代替出来るから不要になったという話では無い
115 :デフォルトの名無しさん (ワッチョイ 13ad-IeYv [61.26.38.34]) :2024/02/03(土) 06:58:45.76 ID:hL2W++6M0.net 変数更新してるだけに見えて、別処理が勝手に動くというのも実はアレだけどな 今はリアクティブが流行してるからそこにケチつける風潮ないけれど
116 :デフォルトの名無しさん (ワッチョイ 1901-fC/B [60.88.91.184]) :2024/02/03(土) 10:15:49.25 ID:HeN++Rh50.net >>99 (ワッチョイ 4d7c-MQtI [122.212.16.94]) これだけ回答をもらって無反応か 最近の質問者はこういう人が多いな
117 :デフォルトの名無しさん (アウアウエー Sae3-P9+J [111.239.175.167]) :2024/02/03(土) 10:49:13.33 ID:YZYv2rY+a.net 反応欲しいなら知恵袋にしとけって
118 :デフォルトの名無しさん :2024/02/04(日) 02:28:25.82 ID:ipvGCo7I0.net JavaScriptで作れるプログラムって、webブラウザ以外になにかありますか? 全然ユーザーがいないのはダメだけど ある程度需要がありそうな用途
119 :デフォルトの名無しさん :2024/02/04(日) 03:05:45.75 ID:w9OYnB1OM.net >>118 WebブラウザとWebページを区別できるようになろう
120 :デフォルトの名無しさん :2024/02/04(日) 05:18:25.36 ID:7DDGpERD0.net でもまあwebブラウザが全てではあるよね 他に出番無いし
121 :デフォルトの名無しさん :2024/02/04(日) 07:00:09.01 ID:wRU34d220.net 今はNode.jsでサーバ側もJSってこともある
122 :デフォルトの名無しさん (ワッチョイ bd43-tydm [114.148.57.9]) :2024/02/04(日) 10:50:30.37 ID:Vls4Se8V0.net そうだね node.jsでJavaScriptはサーバサイドだけじゃくてデスクトップアプリでも使われている 代表格はVScode(node.js+Electron)がある Webpackもnode.jsだし 身近なところでは汎用掲示板ビューアSikiがnode.js+ElectronでJavaScriptだね
123 :デフォルトの名無しさん (ワッチョイ 85a1-aUy2 [240b:12:203:6300:* [上級国民]]) :2024/02/04(日) 12:44:47.52 ID:ieWwGMGa0.net CSSもHTMLも生で書くのは平成だしな 普通SASSやらPugやら使うだろ JSだってWebpackやらBrowserify越しに使うやろ まぁNode.jsじゃトランスパイル遅いから GOやRustのツールに置き換える流れにはなってるが じゃあ最初からCやGO、Rustでやれば良かったよねとはならないフットワークの軽さがNode.jsにはあるからな
124 :デフォルトの名無しさん (ワッチョイ 1b47-JMKI [2001:240:2462:f08:*]) :2024/02/04(日) 12:55:11.06 ID:m4gIKl+m0.net Rustで書いたJSトランスパイラは速いけどRust自体のコンパイルは遅い
125 :デフォルトの名無しさん :2024/02/04(日) 23:16:57.06 ID:/yrx0E0+0.net あることをローカルマシンでやりたくて、Python入ってっから、それでやろうとしたらできなくて(いや正確にはすごく遅い)Node.jsになってしまった。何かは言わない。
126 :デフォルトの名無しさん :2024/02/05(月) 09:44:15.86 ID:Q9Y3g4UN0.net node.jsの良さはJavaScriptでプログラミングできる事 Electron使えばUIもHTMLで書けるので便利 なれたらJavaScriptでデスクトップアプリを書くのが楽しくなった
127 :デフォルトの名無しさん (ワッチョイ abcf-aUy2 [2001:240:242f:19bc:* [上級国民]]) :2024/02/05(月) 15:57:34.49 ID:thNH7tNN0.net >>126 Electronはファイルがデカいから 俺が何か作る時はCLI一択だわ 対話的な物作る時は Tauriで作ってみたいなぁと思う
128 :デフォルトの名無しさん :2024/02/05(月) 18:19:30.64 ID:1m9RfVzn0.net >>118 Visual Studio Codeがjavascriptで作られている
129 :デフォルトの名無しさん :2024/02/05(月) 19:17:51.68 ID:+Fh+RIwSa.net vscodeが糞な理由が分かった気がした
130 :デフォルトの名無しさん (ワッチョイ 436c-OKLl [240b:12:6820:b000:*]) :2024/02/06(火) 07:31:11.51 ID:JsprpZ5q0.net ElectronとAngularで作られてるシステム見させてもらったんだけど、reactに書き換えるって言ってたな ならnativeでよくね?
131 :デフォルトの名無しさん :2024/02/06(火) 14:51:45.98 ID:nsw90RpoM.net reactとreact nativeって書き換えが必要なの? ゴミかな?
132 :デフォルトの名無しさん :2024/02/06(火) 15:07:15.20 ID:4bvVpi0E0.net >>0127 TauriはWebViewなので Electronの様にWebRequestを簡単に操れない Rustに拘らないのなら 使い慣れた開発言語でWebViewを組み込んだ方が手っ取り早い
133 :デフォルトの名無しさん :2024/02/07(水) 01:01:55.81 ID:8Eizk2eA0.net YouTube 動画で見たけど、 北米では、Flutter よりも、React Native が多いらしい
134 :デフォルトの名無しさん :2024/02/07(水) 10:23:32.40 ID:Q0zrTHJg0.net JavaScriptで書ける環境の話から かなり脱線気味
135 :デフォルトの名無しさん (ワッチョイ 3743-5kwM [60.32.26.124]) :2024/02/11(日) 13:06:38.03 ID:4EmF6N4v0.net 業務がWebアプリなのは危険だと言い出した管理職がいて Electronでチャチャとデスクトップソフト風にしたら 仕事が早いとお褒めいただいたw 何も変わっちゃいなんだけれどそれはナイショ
136 :デフォルトの名無しさん :2024/02/11(日) 14:27:08.42 ID:cAyMWgFh0.net 危険だという懸念が素人の無理解から来てるだけなのか妥当な懸念なのか分からないから何とも言えんな 前者なら悪くない回避策
137 :デフォルトの名無しさん :2024/02/11(日) 21:47:35.74 ID:VNWSIW9O0.net ブラウザのアドインに情報吸われる危険性は下がるね
138 :デフォルトの名無しさん (ワッチョイ 2279-8TQs [61.192.207.171]) :2024/02/11(日) 23:27:36.16 ID:Z05z2D4x0.net まあ一般的に考えて危険やな その認識は正しいさすが管理職
139 :デフォルトの名無しさん :2024/02/12(月) 12:55:25.07 ID:3q7oTZTX0.net 管理職が正しい どんなに堅牢なシステムでも狙われたら終わり だから今はクラウドじゃなくてオンプレ回帰してる
140 :デフォルトの名無しさん :2024/02/12(月) 15:27:53.80 ID:2z81MgsB0.net もうネット使うなよ
141 :デフォルトの名無しさん :2024/02/12(月) 15:53:51.52 ID:BAGnA5Sa0.net Access でいいよ
142 :デフォルトの名無しさん :2024/02/17(土) 10:17:04.46 ID:eAolMzZEd.net VBAとC#でちょくちょくアプリ作ってる程度のもんなんですけど 最近VS Code使ってjavascriptの勉強始めたわけですよ デフォルトの環境で扱ってる限り、typoの指摘が甘くて気づくのに時間かかってしまってつらいです Visual StudioでC#つかってるとかなり丁寧に指摘してくれるんで助かるんですが Codeはその辺厳しいですね Code Spell Checkerを入れてみたんですけど、よさそうな対策は他にありますか?
143 :デフォルトの名無しさん :2024/02/17(土) 10:48:07.30 ID:Hugfzc2R0.net JSはデフォだとどんなパラメータも持ちうるのでtypoを機械的に見つけにくい言語。 なのでjsdocゴリゴリ書く(もっとやるなら@ts-checkも)かTypeScript使うと良いよ
144 :デフォルトの名無しさん (スッププ Sd42-hHXc [49.105.71.123]) :2024/02/17(土) 14:57:51.18 ID:eAolMzZEd.net >>143 ありがとうございます TypeScriptも視野にいれてちょい調べてみます
145 :デフォルトの名無しさん (ワッチョイ f7d7-bM9J [240b:12:203:6300:* [上級国民]]) :2024/02/17(土) 15:05:36.03 ID:MLAS2UwQ0.net >>142 VSと比較するならWebStormじゃなきゃ辛いし VSCodeのままでもLSPなりで魔改造すれば頑張れるやろ
146 :デフォルトの名無しさん :2024/02/17(土) 17:54:57.60 ID:3rmfz0Aa0.net >>142 の言うtypoが具体的にどんなのか気になる 厳しいのはCodeじゃなくてJavaScriptなのを誤解してそう
147 :デフォルトの名無しさん :2024/02/17(土) 18:56:27.31 ID:snWQTW2N0.net JSもDataflow Proposalsが導入されたら 普通に使い続けるんだがなぁ
148 :デフォルトの名無しさん :2024/02/19(月) 18:24:10.88 ID:waVDHmuE0.net マウスボタンを押しながらマウスを移動させてからマウスボタンを離すと マウスボタンを離したときにmouseupだけでなくmousemoveも反応してしまうんだけど仕様ですか? これ知らなくて動作が思うように行かなかった。
149 :デフォルトの名無しさん (ワッチョイ ef5b-WqLa [2400:2200:6b5:cb6f:*]) :2024/02/20(火) 00:12:35.13 ID:n1uvc9Mt0.net 手元で試したところmouseup直後に同じ座標でmousemoveが発火してるのを確認 うまく判定して後続処理が走らないようにすれば良さそうではある
150 :デフォルトの名無しさん :2024/02/20(火) 12:26:48.30 ID:jaWYglX60.net >>149 ありがとうございます そうしてみます
151 :デフォルトの名無しさん :2024/02/20(火) 12:38:34.44 ID:SYHvuSDa0.net >>148 mouseoverはマウスが何かの要素の上を移動すれば毎回出てくるから マウスを持ってる限り常に垂れ流し続けるぞ ドラッグアンドドロップを実装したいなら イベント(関数発火)が非同期かつ大量に垂れ流しになること前提で組む必要がある 一案としては上のスコープで何個か変数を定義 mousedown -> 直下の要素を掴んでhold変数に放り込む mousemove -> hold変数に値が入ってないなら即return、座標変数に座標情報を格納 mouseup -> 精算、hold変数と座標変数をnullにする
152 :よろしくお願いいたします :2024/02/28(水) 10:59:38.09 ID:j/HFCr6sd.net はじめて、質問させていただきます。 今やってることはリストボックスの行を以下で選択しています。 document.getElementById('xxxx').selectedIndex = n; PC版ブラウザではうまくいきました。しかし、モバイル版ブラウザでは1行のドロップダウンリストになってしまいます。 https://ja.stackoverflow.com/questions/34627/html%E3%81%AEselect%E3%81%AEsize%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%82%821%E8%A1%8C%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%95%8F%E9%A1%8C それで、以下のjqueryの $("select").fixForSafariMobile(true); を使ったところ、表示はドロップダウンリストからリストボックスになりましたが、上のselectedIndexが動作しなくなりました。 https://github.com/sylvain-hamel/safarimobile-multiline-select/blob/master/src/safarimobile-multiline-select.js https://github.com/sylvain-hamel/safarimobile-multiline-select/blob/master/experiments/experiments.html
153 :よろしくお願いいたします :2024/02/28(水) 11:00:05.73 ID:j/HFCr6sd.net はじめて、質問させていただきます。 今やってることはリストボックスの行を以下で選択しています。 document.getElementById('xxxx').selectedIndex = n; PC版ブラウザではうまくいきました。しかし、モバイル版ブラウザでは1行のドロップダウンリストになってしまいます。 https://ja.stackoverflow.com/questions/34627/html%E3%81%AEselect%E3%81%AEsize%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%82%821%E8%A1%8C%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%95%8F%E9%A1%8C それで、以下のjqueryの $("select").fixForSafariMobile(true); を使ったところ、表示はドロップダウンリストからリストボックスになりましたが、上のselectedIndexが動作しなくなりました。 https://github.com/sylvain-hamel/safarimobile-multiline-select/blob/master/src/safarimobile-multiline-select.js https://github.com/sylvain-hamel/safarimobile-multiline-select/blob/master/experiments/experiments.html
154 :デフォルトの名無しさん :2024/02/28(水) 11:09:45.91 ID:74XehS+p0.net はじめて、質問させていただきます。 今やってることはリストボックスの行を以下で選択しています。 document.getElementById('xxxx').selectedIndex = n; PC版ブラウザではうまくいきました。しかし、モバイル版ブラウザでは1行のドロップダウンリストになってしまいます。 https://ja.stackoverflow.com/questions/34627/html%E3%81%AEselect%E3%81%AEsize%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%82%821%E8%A1%8C%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%95%8F%E9%A1%8C それで、以下のjqueryの $("select").fixForSafariMobile(true); を使ったところ、表示はドロップダウンリストからリストボックスになりましたが、上のselectedIndexが動作しなくなりました。 https://github.com/sylvain-hamel/safarimobile-multiline-select/blob/master/src/safarimobile-multiline-select.js https://github.com/sylvain-hamel/safarimobile-multiline-select/blob/master/experiments/experiments.html
155 :デフォルトの名無しさん :2024/02/28(水) 11:10:03.68 ID:74XehS+p0.net はじめて、質問させていただきます。 今やってることはリストボックスの行を以下で選択しています。 document.getElementById('xxxx').selectedIndex = n; PC版ブラウザではうまくいきました。しかし、モバイル版ブラウザでは1行のドロップダウンリストになってしまいます。 https://ja.stackoverflow.com/questions/34627/html%E3%81%AEselect%E3%81%AEsize%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%82%821%E8%A1%8C%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%95%8F%E9%A1%8C それで、以下のjqueryの $("select").fixForSafariMobile(true); を使ったところ、表示はドロップダウンリストからリストボックスになりましたが、上のselectedIndexが動作しなくなりました。 https://github.com/sylvain-hamel/safarimobile-multiline-select/blob/master/src/safarimobile-multiline-select.js https://github.com/sylvain-hamel/safarimobile-multiline-select/blob/master/experiments/experiments.html
156 :デフォルトの名無しさん :2024/02/28(水) 11:34:49.79 ID:j/HFCr6sd.net すみません。5個書き込まれてしまいました。すみません。
157 :デフォルトの名無しさん :2024/02/28(水) 12:19:36.32 ID:bgJbuEEB0.net >>152 そもそもjQueryは時代遅れだから ReactなりVue.jsなりのJSフレームワーク覚えて移行しろ 理由は>>114 誰が作ったか分からん動くかも全く保証されてないし、10年前からもうメンテすらされてない fixForSafariMobileなんてプラグインなんて持ち出してきて 意図通りに動きませんとか動くわけないし、アドバイス出来る訳ない プラグインの作者は神様でも何でもない 俺らとそう変わらない腕前の奴が少しの善意と承認欲求で作ったコード片でしかない どうしてもjQuery+プラグインでやりたいならその作者のsylvain-hamelさんにでも聞くか GitHubで公開されてるコードを全て読んでちゃんと理解して手直ししなよ
158 :質問者 (スップ Sdfa-RtHD [1.72.9.18]) :2024/02/28(水) 18:05:41.24 ID:j/HFCr6sd.net レスありがとうございます。昔からあるjsやjQueryは今は時代遅れなんですね。 ただ、今回は15年動いているものの改修作業なんです。 fixForSafariMobileはjQueryソースからselectboxからlistに変換するということはわかりました。 $("selectTarget").selectValue(ul, val)で、できそうだと思ったのですが、ulで何を渡すかまでは来ました。 valからulを検索して取得してからこれなんですかね?
159 :デフォルトの名無しさん (ワッチョイ 13d2-fCbz [240b:12:203:6300:*]) :2024/02/29(木) 00:27:46.28 ID:XLzCkQ6P0.net >>158 なるほどなぁ、なら何とかツギハギで頑張ってパッチするわけか んで、.selectValueで出来そうだと思いました!って言われても そんなメソッドjQueryには無いぞ ttps://api.jquery.com/ 何らかのライブラリなりで jQueryのメソッドを拡張・追加すれば実現出来るが それを何の前提知識も無く「どうやって使えば良いですか?」と言われても何もアドバイス出来んぞ jQueryはもう相当うろ覚えだが .valメソッドとかを使うんじゃなかったか? セレクトボックスは動きが特殊だから.valで動かんかったら他のメソッド探してみろ jQueryの公式ドキュメントを読め JavaScriptの話ならMDNをちゃんと読め そうとしか言えんわ頑張れ
160 :質問者 :2024/03/01(金) 23:06:30.38 ID:Id25sy0k0.net いろいろとありがとうございます。
161 :質問者 :2024/03/01(金) 23:23:12.37 ID:Id25sy0k0.net やりたいこと ・プログラムのデバッガみたいなステップ実行ができるWEBで作成されたものを改修。 ・スクロールしていくので、複数行リストボックスで現在行を選択表示して、実現。PC版では動く。 ・しかし、モバイル版では、html形式の複数行リストボックスは1行のドロップダウンリストBOXになってしまう。 どうもこれは、モバイルの仕様なようで、実現するのは不可能ぽい。 過去にある人がjqueryで、モバイルで複数行リストボックスみたいな事は実現しているが、これはあくまでも表示のみで選択は不可。 ・複数行リストボックスをリスト型で実現している。なので、Val()でも、スクロールして、選択表示できない。 ほかの方法で考えた方が良いですかね?ただ、改修なので、別のフレームワークに変えるのは無理ですね。
162 :デフォルトの名無しさん (ワッチョイ 47f6-WOak [2400:2200:714:c52d:*]) :2024/03/02(土) 00:10:12.99 ID:Rcnd56Cm0.net sizeが指定されているSELECTタグのdisplayをnoneにして消す 代わりに自分でsize分だけのリストなりボタンなりを追加する これをjsでモバイル表示のときだけ実現すりゃいいんじゃない
163 :質問者 :2024/03/02(土) 11:13:20.78 ID:TgRbMsKE0.net >代わりに自分でsize分だけのリストなりボタンなりを追加する >これをjsでモバイル表示のときだけ実現すりゃいいんじゃない レスありがとうございます。 データが100行あります。 今、複数行選択リストボックス(select size=25)では、25行表示できるエリアがあって、75行が隠れています。 99行目のListをスクリプトで選択(人間は選択しません。見てるだけです。)したら、自動的にそこまでスクロールしてくれます。 リスト(ul,li)ではスクロールまでしてくれず、隠れてしまって、実現はできないと思うのですが...
164 :質問者 :2024/03/02(土) 11:46:08.42 ID:TgRbMsKE0.net <html> <select id='now_exe_prg_row' size=25> <option value="1">プログラム1行目</option> <option value="2">プログラム2行目</option> : <option value="100">プログラム100行目</option> </select> <js> $('now_exe_prg_row').val('99') これをlistで実現したいのですが、無理ですよね?
165 :デフォルトの名無しさん :2024/03/02(土) 12:45:11.55 ID:Rcnd56Cm0.net 無理じゃない jsでdom操作はいくらでもできる ul liでoptionのような動作をするカスタムのリストボックスも作成可能でcssフレームワークではよくつかう手法 そういうカスタムのWebComponentを作るといいよ selectから情報をひっぱってきて外観をul liでカスタムコンポーネントを作り、liのクリックイベントリスナーでselect要素のselectedIndexを変更すればいい select要素はモバイル環境ではdisplayをnoneにする
166 :デフォルトの名無しさん :2024/03/02(土) 12:47:42.36 ID:Rcnd56Cm0.net 再利用しないのならWebComponent書くまでもなくそのままjsで書けばいい
167 :デフォルトの名無しさん :2024/03/02(土) 12:52:06.03 ID:Ac/Ek54X0.net >>164 CSSでul > liの見栄えを調整しろ ・メディアクエリの画面横幅で適応されるCSSを切り分ける ・heightをliの25行分の高さに指定 ・overflow: scrollを付けてul内でスクロール出来るようにする CSSを見栄えを整える能力は Webで食ってく行くならこの先ずっと使うから覚えろ CSS2の頃はまだ「技術的にも無理です!」ってケース多かったが CSS3までフル動員させたら「それお前が無知なだけ」ってケースばかりだぞ
168 :デフォルトの名無しさん :2024/03/02(土) 13:00:31.15 ID:Rcnd56Cm0.net 仕事で受けてるのならこのくらいできないとヤバいぞ カスタムコンポーネントにすれば customListBox.size = 25 customListBox.selectIndex = 99 みたいに設定できるようにメソッド追加すると便利
169 :デフォルトの名無しさん (ワッチョイ 8f43-04EL [114.166.8.189]) :2024/03/02(土) 14:29:55.91 ID:83dahe0E0.net 無理にiOSでも同じUIにする必要ないのと違う ぐるぐる回るドラム式がiOSのSafari流でかっこいいじゃんと褒め殺せば 林檎ユーザー特有の優越感をくすぐりOKもらえる気がする
170 :デフォルトの名無しさん (ワッチョイ ba40-aDj+ [2400:2200:770:d15b:*]) :2024/03/02(土) 15:39:45.46 ID:Ozqjn7Yu0.net >>164 細かい要件が分からないけどただそれっぽく表示するだけならこんなのでいいんじゃないの? jsfiddle.net/sj3xkrad/1/
171 :質問者 (ワッチョイ 572e-lvv7 [118.86.90.123]) :2024/03/03(日) 22:00:44.67 ID:719to9SO0.net 皆さんレスありがとうございます。今日休みで明日から参考にさせていただきます
172 :デフォルトの名無しさん (ワッチョイ 9724-lvv7 [2001:268:9a3d:bf34:*]) :2024/03/04(月) 10:08:20.56 ID:ORhetY7X0.net Bootstrap, Tailwind, Bulma などに、 使えそうなコンポーネントは無いの?
173 :デフォルトの名無しさん :2024/03/05(火) 18:22:59.72 ID:dRdKhnsT0.net 質問で、 chrome.tabs.query({}, function(tabs) { で全タブを取得した各タブに関して、 そのタブのwindowType(appとかnormalなど)って取得できますか?
174 :デフォルトの名無しさん :2024/03/05(火) 18:47:33.98 ID:qENbjC0BM.net >>173 個別のtab.windowIdから引けるハズ もっとも、はじめからwindow.getAll()を使った方がいいとは思うが
175 :デフォルトの名無しさん (ワッチョイ 9f02-ZLJX [27.91.124.53]) :2024/03/06(水) 10:35:08.32 ID:c6agTDKp0.net >>174 お、できた! ありがとう! ネットでtabs.WindowTypeってのが載ってたので、それで惑わされてた…
176 :デフォルトの名無しさん (ワッチョイ 9f02-ZLJX [27.91.124.53]) :2024/03/06(水) 10:42:44.31 ID:c6agTDKp0.net >>174 取得した各tabに対して取得したかったので、 chrome.windows.get()を使いました。
177 :デフォルトの名無しさん :2024/03/29(金) 14:50:19.65 ID:yy1PP2Jg0.net 非同期処理を同期処理から呼び出すラップ関数を作りたいのですが方法がわかりません AIに聞いたら次のコードが返ってきましたが、当然awaitが使えないので失敗します ------------------------------- //非asyncな呼び出し元から、asyncメソッドを呼び出し、結果が帰るまで待って返却する function FromSyncToAsync() { const result = await [値を返すだけの非同期な関数](); return result } ------------------------------- 調べても呼び出し元をasyncにする方法しかみつかりません…
178 :デフォルトの名無しさん :2024/03/29(金) 15:40:17.46 ID:yy1PP2Jg0.net これはエラーはおきないけど失敗。戻り値がpendingになりました ------------------------------- function SyncToCallAsync(){ return getWasmFileLastModified().then((result) => { // 結果を返却 return result; }); } -------------------------------
179 :デフォルトの名無しさん (ワッチョイ 5f85-qPgS [240b:12:203:6300:* [上級国民]]) :2024/03/29(金) 16:32:26.02 ID:utPNPoKt0.net >>177 残念ながら不可能 一度非同期の世界に入ると 同期処理の世界には戻って来られないぞ ・非同期処理から値を受け取る箇所はPromise値を返す関数にする ・前処理や後処理を含めて色々やってくれる関数をasync関数で定義する ・極力此処の関数やクラスメソッドは小さくして、関係ない値を持たせない事で全てをasync関数にする事を防ぐ JavaScriptという言語がイベント駆動やイベントループ前提で作られてる以上 こういう作りを維持し続けるしかない まぁ、ロジックを司るデカい所は基本async関数だよ 作り直す許可を上長や顧客からもぎ取るのが仕事やね そういう交渉が出来ないなら細かくPromise.thenで作業していくしかない
180 :デフォルトの名無しさん (ワッチョイ 5fad-VtrB [124.141.209.120]) :2024/03/29(金) 16:55:52.54 ID:yy1PP2Jg0.net ありがとうございます。いくつかのAIに聞いても堂々と回答実現不能なコードばかり返してくるので困っていました。できないとわかったほうが先に進めます
181 :デフォルトの名無しさん (ワッチョイ df68-csuD [2400:2200:454:574d:*]) :2024/03/29(金) 17:39:27.22 ID:D+b6Pa3z0.net 現時点ではAIは不可能なことを不可能と答えないケースが多い 信用しすぎないように
182 :デフォルトの名無しさん :2024/04/05(金) 21:57:54.50 ID:otPTbv2G0.net test
183 :デフォルトの名無しさん :2024/04/05(金) 21:58:17.84 ID:J45N4zHg0.net test
184 :デフォルトの名無しさん :2024/04/13(土) 22:59:37.70 ID:3VlMmSMB0.net すいません、Reactの質問ってここでいいですか?
185 :デフォルトの名無しさん :2024/04/13(土) 23:23:14.15 ID:i7geu5sV0.net まずスレ一覧をReactで検索するぐらいしてみたら?
186 :デフォルトの名無しさん :2024/04/20(土) 13:04:04.45 ID:/vy8T+9K0.net 昔、私が大学でプログラミングを習ったとき(C言語でした)には円周率など特別な値については定数にしろと言われはしましたが、その他の変数については定数にしろとは言われませんでした。 Javascriptの本を今読んでいるのですが、再代入を行わない場合にはすべて「let」ではなく「const」を使えと書いてあります。 このようなことが言われるようになったのはいつ頃からでしょうか? 私がそう習わなかっただけで、昔から言われていたことでしょうか?
187 :デフォルトの名無しさん :2024/04/20(土) 14:12:14.37 ID:7dIwEOD00.net >>186 JavaScriptはCromeやFirefox等のブラウザ作ってる所が各自で動作するエンジン作れと丸投げしてるが 仕様書にあたるECMAScriptが長い間ES5というバージョンのまま止まってた その頃には変数宣言はvarのみだった 流石に今時のプログラミング言語にしようぜって事でECMAScriptの強化が始まり(ES6というプロジェクト) 最終的に2015年からは毎年強化した仕様を出しましょうという話になった その最初の成果物とも言えるES2015で変数宣言としてvarの他にletとconstの2つが追加 for (var i = 0; i < 5; i++) { setTimeout(() => console.log(i)) } これの出力結果が4が5個連続で表示される 違和感があるが、 letのブロックスコープによって解消されてるのでvarはもう二度と使うなという風潮が出来た (それ以外にもvarは関数の先頭で纏めて書かないと変な動きする箇所がちらほら見受けられ、コーディング規約で制限されていた) また値がコロコロ変わる状態変数が多いと 登場人物がやたら多い粗悪な小説みたいになって作業者が困るので 「再代入禁止の変数」を求める声が元々多かった その要望を汲んだ再代入禁止のconstも実装されたため 必要になるまで全てconstでプログラミングして、必要な箇所だけ最小限にletを使いましょうという風潮が比較的早く出来た
188 :デフォルトの名無しさん :2024/04/20(土) 14:22:49.70 ID:7dIwEOD00.net constは直訳すれば定数だが JSのconstは再代入しちゃいけませんよってだけで 基本は普通の変数として取り扱う 配列やオブジェクト、関数、インスタンスなんかもconstで宣言出来るね 他言語のletみたいなものと考えると良い constで宣言したオブジェクトや配列は再代入禁止なだけで、中身は普通に加工出来てしまうのも作りとして良くない const arr = [1, 2, 3]; arr.push(4); console.log(arr); // [1, 2, 3, 4] この辺は勝手に加工しないよう運用でカバーやね 値は基本的に複製しまくってガベージコレクションで掃除してもらう パフォーマンスチューニングで仕方なく一つの値を加工しまくる時はライブラリ化したり関数で固めたりして、メインロジックの邪魔にならないようにすること
189 :デフォルトの名無しさん :2024/04/20(土) 14:53:24.59 ID:/vy8T+9K0.net >>187-188 ありがとうございました。
190 :デフォルトの名無しさん :2024/04/20(土) 21:40:49.05 ID:KOUUOZ8l0.net すみません。 以前からJSフレーム・ワークについて 疑問を持っていたのですが フレーム・ワークを使う人は、 1. JavaScriptに精通しているので 中規模程度のサイトなら 素のJavaScriptと_lodash等だけでも組めるが 効率が悪いのでフレーム・ワークを その内部構造をも理解して使っている。 2. JavaScriptの基本的な仕組みと DOM操作の基本は理解しているが 素のJavaScriptではサイトを作れないので フレーム・ワークの仕様仕組みを理解して使っている。 の2種類に大別できると思うのですが 結局ブラウザは素のJavaScriptで動いているだけなので 「1」の技能習得に向かわざるを得ないと思うのですが いかがでしょうか。
191 :デフォルトの名無しさん (ワッチョイ 6b55-Olxi [2400:2200:6b3:858d:*]) :2024/04/20(土) 22:07:39.36 ID:xlVv2mR90.net どこから突っ込んでいいのかわからなくて答えようがない
192 :デフォルトの名無しさん (ワッチョイ d1f1-4mIM [240b:12:203:6300:* [上級国民]]) :2024/04/20(土) 22:27:55.19 ID:7dIwEOD00.net >>190 lodashは関数型プログラミング的な値の加工を司るフレームワークだぞ 一部だけ利用させて頂いて関数片の集合体ライブラリとして使うことも出来るがな フレームワークは機能を提供するライブラリであると共に 大きなプロダクトを作っていく為のファイル・関数・モジュール置き場をルールで区切ってここに設置してくださいねー こういう司書さんみたいな役割も担ってる 複数人でプロダクトを触ったり 半年後にどれどれ?と帰ってきて読み直した時にナニコレ?にならない為に プログラミングスキルの良し悪しに限らず 適切なフレームワークがあるなら使った方が良い フレームワークを使わん機能を作る時でも 関数やファイルを作って保管するタイミングで「このフレームワークの考え方は好きだな、同じディレクトリ名を作ってそこに保管しよう」 自然とこういう発想が生まれる なのでフレームワークを使い分けてる人間は引き出しが多くなっていき 可読性の良いプロダクトを作る能力も養われる 結局フレームワーク無しで適当に関数やファイルを作って放り投げるばかりで 読み辛いプロダクト作ってる奴なんて3流の雑魚だよ
193 :デフォルトの名無しさん (ワッチョイ d721-K5o/ [121.2.134.225]) :2024/04/21(日) 00:20:10.62 ID:R6fhRdj50.net >>191 >>192 ありがとうございます。 ご教示参考にさせて頂き 精進いたします。
194 :デフォルトの名無しさん :2024/04/21(日) 02:22:30.51 ID:9CBVBBl20.net >>186 サイの表紙のサイ本。 初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017 ECMA Script は、ES6(ES2015)で大きな改正があった。 var を非推奨にして、let/const を使う オブジェクトの場合は、たいていconst を使う。 代入はできないが、オブジェクトの中身は更新できるから const a = { x: 1 } a.y = 'あ' a //=> { x: 1, y: 'あ' } a = 2 //=> エラー。再代入はできない!
195 :デフォルトの名無しさん (ワッチョイ 0979-208W [110.2.64.150]) :2024/04/28(日) 21:53:35.47 ID:zlR73q8o0.net スレ立てあらしスクリプト対抗age
73 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★
本文 スレッドタイトル 投稿者