JavaScript の質問用スレッド vol.126 (308レス)
上下前次1-新
1(2): (オッペケ Sr9f-tek/ [126.254.232.20]) 2023/12/09(土)17:40 ID:Mnb70srnr(1/5) AAS
!extend:checked:vvvvvv:1000:512
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-5のテンプレを読んだ上で質問してください。次スレは>>950が>>2の「次スレの立て方」を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
省15
2(3): (オッペケ Sre1-tek/ [126.254.232.20]) 2023/12/09(土)17:41 ID:Mnb70srnr(2/5) AAS
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
省7
3(2): (オッペケ Sre1-tek/ [126.254.232.20]) 2023/12/09(土)17:43 ID:Mnb70srnr(3/5) AAS
■関連スレ(Web制作板)
JavaScript の質問用スレッド vol.126 (重複スレの消化)
2chスレ:hp
JavaScript ライブラリ総合質問所 vol.5
2chスレ:hp
jQuery 質問用スレッド vol.7
2chスレ:hp
省10
4(2): (オッペケ Sre1-tek/ [126.254.232.20]) 2023/12/09(土)17:45 ID:Mnb70srnr(4/5) AAS
テンプレここまで
内容は前スレ踏襲
5(2): (オッペケ Sre1-tek/ [126.254.232.20]) 2023/12/09(土)17:55 ID:Mnb70srnr(5/5) AAS
テンプレの範囲ぐらい修正しとけばよかったかな
6: (ワッチョイ 5510-yLTa [222.230.65.145]) 2023/12/10(日)16:33 ID:ngtmyS7f0(1/6) AAS
前スレで日付変換の関数で質問していた者です。
開発環境としましては、AndroidのmementoというDBを制御するために、Javascriptの使用が可能なので、試しに勉強してみようと思った次第です。
コードエディターや>>2記載のサイトでは正常動作をしていることから、開発環境に問題があると判断しました。ただそうなるとDBと合わせて使用できるメリットが無くなるので代替手段を模索しているところです。
成功例(日時が2つ表示)
画像リンク[jpg]:i.imgur.com
失敗例
(consolelogに対応しないため、コメントアウトしていますが、関数が結果に出力される。何も表示されないはず。)
省5
7: (ワッチョイ 5510-yLTa [222.230.65.145]) 2023/12/10(日)16:34 ID:ngtmyS7f0(2/6) AAS
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: (ワッチョイ 5510-yLTa [222.230.65.145]) 2023/12/10(日)16:34 ID:ngtmyS7f0(3/6) AAS
// 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 +=
省3
9: (ワッチョイ 5510-yLTa [222.230.65.145]) 2023/12/10(日)16:35 ID:ngtmyS7f0(4/6) AAS
// DateをHH:MM文字列に変換する
function timeToHhmm(time){
let n = time.getHours().toString().padStart(2, "0") + ":";
n += time.getMinutes().toString().padStart(2, "0");
return(n);
}
10(2): (ワッチョイ 5510-yLTa [222.230.65.145]) 2023/12/10(日)16:35 ID:ngtmyS7f0(5/6) AAS
申し訳有りません。
サービスでの稼働は確認出来たのですが、共有方法が分からないので、連投になってしまいましたが、直接描かせていただきました。
11(1): (アウアウウー Sa49-+EJW [106.155.27.178]) 2023/12/10(日)17:01 ID:013bN9IEa(1) AAS
>>10
よくわからんけどそもそもその環境は関数定義して呼び出すとかできるの?
全体を関数として扱って最後の戻り値を文字列として解釈してるとかそういうノリではなく?
12(1): (ワッチョイ ed27-tek/ [2400:2200:6f2:ad4b:*]) 2023/12/10(日)17:01 ID:uEdCnVbW0(1) AAS
>>10
外部リンク:wiki.mementodatabase.com
>but only the result of the last operation will be entered into the field.
とあるから最後の文の値が結果値として採用される
だからtimeToHhmm関数自体が結果になっている
修正したければコードの最後に
const result = stDate + stTime + " " + edDate + edTime
省1
13: (ワッチョイ 5510-yLTa [222.230.65.145]) 2023/12/10(日)21:02 ID:ngtmyS7f0(6/6) AAS
>>11,12
まさに仰るとおりでございました。
最後に出力文を置くことで正しく稼働を確認できました。
改めて調べようが足らなかったことを痛感しました。正直自分の中に『これ、なんかバグってるのかな…』などと考えてしまってた所もありましたが、単に仕様であったことに恥ずかしさとプラットフォーム開発者に申し訳ないですね。
wikiもしっかり読み込んで改めて勉強しなおしてみます。
本当にありがとうございます。
長々と失礼しました。
14(1): (ワッチョイ b51d-C3j7 [180.178.89.53]) 2023/12/15(金)23:44 ID:WfAwrcm40(1) AAS
nullとundefinedはどう違うのでしょうか?
15(1): (ワッチョイ b701-Y8ba [60.106.64.223]) 2023/12/16(土)00:21 ID:92Act5oB0(1) AAS
>>14
型も値も何もかも違う
16(1): 14 (ワッチョイ 4f1d-Qk2W [180.178.89.53]) 2023/12/16(土)12:33 ID:3Jo1PIzy0(1/3) AAS
>>15
レスありがとうございます
単純に、nullは「空」、undefinedは「未定義」と理解しておけばいいでしょうか?
うーんでも、空だから未定義であるとも言えるし、未定義だから空とも言える気もします
難しく考え出すとハマりますね…
17(1): (ワッチョイ 5b48-r/Us [2400:2200:3f1:994b:*]) 2023/12/16(土)12:50 ID:GGJUNSgh0(1/2) AAS
まず「空」とはなんぞや、「未定義」とはなんぞやってところから勉強してみたら?
18: 14 (ワッチョイ 4f1d-Qk2W [180.178.89.53]) 2023/12/16(土)13:09 ID:3Jo1PIzy0(2/3) AAS
>>17
レスありがとうございます
自分なりに少し調べてみたら、
undefinedは「これから何かしらの値が入る余地があるがまだ定義されていない」
nullは「値が入りようがないから空」
という違いがあるみたいですね
19(1): (ワッチョイ 5b48-r/Us [2400:2200:3f1:994b:*]) 2023/12/16(土)13:43 ID:GGJUNSgh0(2/2) AAS
意味的には別物だというのは納得できた?
20(1): 14 (ワッチョイ 4f1d-Qk2W [180.178.89.53]) 2023/12/16(土)16:34 ID:3Jo1PIzy0(3/3) AAS
>>19
はい、それなりに理解出来たと思います
ありがとうございます
JSでは、undefinedに比べるとnullの登場頻度はかなり低いみたいですね
21: (ワッチョイ 0e6d-Aq9B [240b:10:8401:ab00:*]) 2023/12/16(土)19:13 ID:UfR4i5aB0(1) AAS
設計ミスだから使い分ける必要はなく
外部とのやりとり以外にnullは使わないと統一した方が問題でにくいし楽
22(1): (ワッチョイ 4f10-n6T6 [180.12.82.129]) 2023/12/18(月)12:29 ID:UBFKxLGp0(1/4) AAS
配列の宣言はvar list=[];
オブジェクトの宣言var obj={};
配列の配列の宣言は var list=[[]];
ではオブジェクトの配列の宣言はどうすればいいですか?
var obj={[]};のようにしてもできませんでした。
obj["aaa"][0]=100;
obj["bbb"][1]=200;
省1
23(1): (ワッチョイ 4f10-n6T6 [180.12.82.129]) 2023/12/18(月)12:38 ID:UBFKxLGp0(2/4) AAS
配列のオブジェクトって言った方が正しいのかわからないけど
とにかく>>22のように代入したいんです
24(1): (ワッチョイ 0e2a-YOgt [240b:10:8401:ab00:*]) 2023/12/18(月)12:58 ID:kn95Gf6w0(1) AAS
[[]] 配列を入れ子にしても1番目の要素を[]に初期化しているだけで
配列として使いたい場合に必要な手順ではない
仮に1番目を[1,2]、2番目を[3]にしたい時に操作が変わってしまうので邪魔なだけ
配列は空のまま [] で十分
あとconst/letじゃなくvarで書くスタイルは古い
参考にした情報があるなら忘れよう
更新もせずずっと放置しているなら害悪でしかない
25(1): (ワッチョイ 225c-ivtJ [61.196.5.7]) 2023/12/18(月)13:13 ID:BJv/M26K0(1/2) AAS
let obj = {};
obj["aaa"] = [100];
obj["bbb"] = [undefined];
obj["bbb"][1] = [200];
26(1): (ワッチョイ 225c-ivtJ [61.196.5.7]) 2023/12/18(月)13:15 ID:BJv/M26K0(2/2) AAS
obj["bbb"][1] = 200;
27(1): (ワッチョイ 4f61-3PPy [180.23.197.208]) 2023/12/18(月)13:42 ID:WXLOngT30(1) AAS
const obj = {
aaa: [100],
bbb: [, 200]
};
28(1): (ワッチョイ 5bd1-r/Us [2400:2200:738:48fd:*]) 2023/12/18(月)14:17 ID:oIHu3KbV0(1) AAS
>>23
そこがあやふやだからどう宣言すればいいかも分からないんだと思う
君が宣言したいものは「配列をメンバーに持つオブジェクト」だよ
上下前次1-新書関写板覧索設栞歴
あと 280 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.017s