◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1636525464/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん (ワッチョイ 8a52-hQZx [61.87.108.223])2021/11/10(水) 15:24:24.80ID:jxD2VXPG0
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。

※前スレ
+ JavaScript の質問用スレッド vol.123 +
http://2chb.net/r/tech/1491143438/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured

2デフォルトの名無しさん (ワッチョイ 7f52-hQZx [61.87.108.223])2021/11/10(水) 15:26:36.49ID:jxD2VXPG0
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)

■テンプレ案
https://fiddle.jshell.net/6018r9tu/1/show/light/

3デフォルトの名無しさん (ブーイモ MM0f-8Kye [163.49.205.32])2021/11/10(水) 15:46:52.81ID:qwlO4mThM
前スレ998の質問だけど
一般的にはc2が返してるような関数のことをクロージャと呼ぶことが多いが
JavaScriptの関数は全部クロージャなのでc2自体もクロージャ

4デフォルトの名無しさん (ワッチョイ df4e-9n+R [210.138.216.243])2021/11/10(水) 16:02:48.18ID:ABhSQgxq0
なるほど

5デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102])2021/11/10(水) 17:50:22.23ID:KxrU4/8D0
>>998
追記です

3つの要素を持つオブジェクトセットを利用して、
関数内のクローズ状態を実現する、ということ意味して
そのセットをクロージャーと呼んでいるのだという理解でいかがでしょう?

6デフォルトの名無しさん (ワッチョイ ff46-H2rd [111.98.111.65])2021/11/10(水) 18:59:16.59ID:l7XWnHd40
過去スレみれねー

7デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102])2021/11/11(木) 11:19:40.42ID:FWyFKZol0
前スレで誤字があったので訂正と
クロージャーに関してわかりやすく説明しときます
closerは誤りでclouserでした

8デフォルトの名無しさん (ブーイモ MM83-WKYw [210.138.176.182])2021/11/11(木) 11:24:24.80ID:vTNkP19HM
末尾セミコロンはどうしたらいいですか?

9デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102])2021/11/11(木) 11:47:50.28ID:FWyFKZol0
【クロージャー】
クロージャーはJSの関数に下記の仕組みを持たせるための要素のセットです
・関数内部をクローズにする(外部から直接アクセスできない)
・関数からは外部のプロパティにアクセスできる

この仕組みを作るものがクロージャーです
クロージャーの要素は、おおざっぱに関数自身、関数内情報、関数外部を参照するポインタで、
この要素のセットをクロージャーと呼びます


【外部ポインタの働きと内部情報の動きの確認】
<サンプルコード>
function f1(){ let c=0;return c++; }
function f2(){ let c=0;return ()=>{let s=0;return [c++,s++];} }

let f3=f2() ;

1 f1() ;f1() ;console.log(f1());
2 f2()();f2()();console.log(f2()());
3 f3() ;f3() ;console.log(f3());

<結果出力>
1 c:0
2 c:0 s:0
3 c:2 s:0

ここで外部への参照ポインタをouterとします
f1のクロージャーは、{関数f1 return c}{変数c}{outer(global}
f2のクロージャーは、{関数f2 return function}{変数c}{outer(global}
f2のアローの場合、 {無名  return [c,s]}{変数s}{outer(f2)}

10デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102])2021/11/11(木) 11:48:17.36ID:FWyFKZol0
コード1では、f1を2回呼びますが、関数呼び出し1回につき、1つの(別々の)クロージャーが生成されます
同じ変数名のcであっても、別物のcとなります
ですから、cはインクリメントされずに0となります

コード2ではf2から戻されるアロー関数を複数回呼び出しますが
関数の呼び出し1回につき、別々のクロージャーが生成されますので
上記と同じようにcは0になります

コード3では、f2から戻されるアロー関数を変数f3に代入し、それを複数回呼び出します
呼び出しのたびに別々のクロージャーが生成されますが
外部への参照は、outer(f2)なので、同じcを参照していますので
複数回呼び出すとcをインクリメントします
一方でアロー関数内の変数sは、コード1や2の説明と同じでインクリメントされません

11デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102])2021/11/11(木) 11:48:37.71ID:FWyFKZol0
【関数はクロージャーか?】
クロージャーは関数ではありませんし
関数はクロージャーではありません

関数内をクローズにし、外部参照を持たせる、という仕組みをつくるための
関数、内部情報、外部参照ポインタのセットがクロージャーです

【言語は多数者が正しい】
f2で戻される無名関数をクロージャーと呼ぶ人がいるのは
クロージャーの説明のために多用されていることで
無名関数をクロージャーと誤解してしまったり

f1が外部からクローズ状態なので、f1がクロージャーなんだと
そう理解してる人が多かったりしています

クロージャーという言語の用法に関して
何が正しいのかは、それぞれの立場を主張する人数によって
決定することが正しいのかもしれません

以上で訂正とまとめを終わります

12デフォルトの名無しさん (ワッチョイ 5f21-+Epa [222.230.61.102])2021/11/11(木) 12:08:29.83ID:FWyFKZol0
>>8
javascript.infoでは
[ ]の前にセミコロンは想定していないため、前段と次段のコードが連続することが説明されてます

console.log(1)
[...'string'].forEach(console.log)



console.log(1)[...'string'].forEach(console.log)

と同じ扱いで、1を出力したのち、エラーになります
[]を使うときに思い出してください

13デフォルトの名無しさん (ワッチョイ 5f01-Q360 [126.145.174.156])2021/11/11(木) 13:44:12.02ID:PJUcZthZ0
>>7
closureでは?

14デフォルトの名無しさん (ワッチョイ ffdb-H2rd [217.178.96.78])2021/11/11(木) 14:51:22.63ID:69bvz9620
スジャータ

15デフォルトの名無しさん (ブーイモ MM0f-8Kye [163.49.200.151])2021/11/11(木) 16:11:30.72ID:+2WcRgNnM
クロージャーに「関数内部をクローズにする」なんて意味はないよ

16デフォルトの名無しさん (ワッチョイ 7ff0-+Epa [61.205.223.183])2021/11/11(木) 16:24:36.04ID:YbaQuGpg0
JSのクロージャーってどういう意味なの?

17デフォルトの名無しさん (ワッチョイ 7ff0-+Epa [61.205.223.183])2021/11/11(木) 16:26:10.03ID:YbaQuGpg0
9の長い長い説明はまったくもって的外れ?

18デフォルトの名無しさん (ワッチョイ ff46-H2rd [111.98.111.65])2021/11/11(木) 18:44:36.77ID:a2zl13Hx0
ふーん、なるほどねぇ

19デフォルトの名無しさん (ワッチョイ ff46-H2rd [111.98.111.65])2021/11/11(木) 19:03:41.76ID:a2zl13Hx0
||クロージャーは、組み合わされた(囲まれた)関数と、
||その周囲の状態(レキシカル環境)への参照の組み合わせです。
||言い換えれば、クロージャは内側の関数から外側の関数スコープへのアクセスを提供します。
||(MDN)

「関数の内から関数の外を参照できる、参照権限(参照できる状態(仕組み))」ということだろ!!!
これできめ!

20デフォルトの名無しさん (ワッチョイ 5f01-lK5T [126.242.217.11])2021/11/11(木) 19:41:41.77ID:CFwD9UgS0
クロージャは関数閉包のこと
関数の中に関数が内包された状態を指す
外側の関数をエンクロージャと呼ぶが、クロージャ=関数ではない

21デフォルトの名無しさん (ワッチョイ ff2d-+Epa [121.102.71.88])2021/11/11(木) 20:24:37.12ID:eeb4OqXn0
現在のスコープに変数が見つからなければ、どんどん外のスコープに変数を探しに行って
最終的にwindowまで探しに行ってくれる機能のことをクロージャと呼ぶ

かな?

22デフォルトの名無しさん (ワッチョイ 5f01-lK5T [126.242.217.11])2021/11/11(木) 20:29:10.77ID:CFwD9UgS0
>>21
違う
それはスコープチェーン

23デフォルトの名無しさん (ワッチョイ ffb0-QVGU [153.219.213.62])2021/11/11(木) 21:31:01.83ID:P2a3zHOn0
Promiseの状態(pending/fullfilled/rejected)って外から取得できないんだっけ?
探しても方法が見つからな。

24デフォルトの名無しさん (ブーイモ MM4f-8Kye [133.159.152.241])2021/11/11(木) 22:17:06.64ID:9vb0JKHxM
MDNの訳が微妙すぎると思ったら原文も同じだった

A closure is the combination of a function with references to its surrounding state.

A closure is a function bundled together with references to its surrounding state.
のどっちかにしたかったんだろう

25デフォルトの名無しさん (ワッチョイ ff46-H2rd [111.98.111.65])2021/11/11(木) 22:18:41.74ID:a2zl13Hx0
>>20
それは違う言語でしょ
JSはグローバルも一つの環境としてるから
グローバル内に宣言された関数も、囲まれた関数なんだよ
グローバルを関数と呼ぶのなら、それはそれかもなんだけど

26デフォルトの名無しさん (ワッチョイ ff46-H2rd [111.98.111.65])2021/11/11(木) 22:22:39.31ID:a2zl13Hx0
>>24
JSの設計のあいまいさを感じられるな

27デフォルトの名無しさん (ブーイモ MM4f-8Kye [133.159.150.0])2021/11/11(木) 22:44:02.25ID:/xlmv84EM
囲まれた関数ってのは微妙な原文と訳文で作られた言葉

ここの真ん中くらいにあるクロージャの定義を読むといい
https://javascript.info/closure

28デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])2021/11/12(金) 07:15:12.60ID:JgN/83EX0
それを読んでも統一見解が得られづらいからこうなってるってわかる?

29デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])2021/11/12(金) 07:25:05.37ID:JgN/83EX0
でもまぁ一連のやり取りで
環境レコードや外部参照チェーンやスコープの復習ができたということで
この部分に関しては、脱素人になったわけだ、おめでとー

30デフォルトの名無しさん (ワッチョイ bd10-HV3m [180.12.82.129])2021/11/14(日) 19:04:13.43ID:y8V9oC250
canvasでcontext.lineWidth=1;にして直線を描いても幅が1にならなくて2ピクセル分の太さになってしまいます
どうすれば幅1の直線が描けますか?

31デフォルトの名無しさん (ワッチョイ 4d01-gBK2 [126.243.242.148])2021/11/14(日) 19:57:25.52ID:oSBO5A5Z0
>>25
言語仕様に言及するのなら、「ECMAScriptにクロージャは存在しない」が正解

> グローバル内に宣言された関数も、囲まれた関数なんだよ

そんな仕様はない
クロージャなんて概念は忘れて、変数、スコープ、関数の仕組みを覚える方が正しい理解に繋がる

32デフォルトの名無しさん (ワッチョイ f661-lRA9 [153.160.97.54])2021/11/14(日) 20:00:15.95ID:g8AzdeEc0
>>30
整数座標はピクセル中央ではなくピクセル左上になるので0.5足す
めんどくさかったらcontext.translate(.5, .5)するとか

33デフォルトの名無しさん (ワッチョイ 4d01-gBK2 [126.243.242.148])2021/11/14(日) 20:54:05.86ID:oSBO5A5Z0
>>28
クロージャで統一見解といえるのは「クロージャ=関数が入れ子になった状態」だけ
そこに機能的価値を見いだそうとするなら「クロージャという名の機能は存在しない」だ
機能的には別の機能で実装されていて、
関数を入れ子にした結果、それらの機能が便利な状況を作り出しているに過ぎない
学習目的なら「クロージャ」は忘れた方がいい

34デフォルトの名無しさん (ブーイモ MM8e-o9bf [133.159.149.178])2021/11/14(日) 21:16:07.13ID:Ec4oDlx8M
関数が入れ子かどうかなんて関係ないよ

理解してない人たち同士で"統一見解"を求めようとするからドツボに嵌ってる

35デフォルトの名無しさん (ワッチョイ 4d01-gBK2 [126.243.242.148])2021/11/14(日) 21:27:55.45ID:oSBO5A5Z0
>>34
仕様にない単語に、統一見解を求めるのが間違いなんだろうな

36デフォルトの名無しさん (ワッチョイ f6b0-WW/G [153.219.213.62])2021/11/14(日) 21:47:51.05ID:ybz8bu8o0
とはいえ「クロージャ=関数が入れ子になった状態」って定義は明らかに間違いだろう。

37デフォルトの名無しさん (ブーイモ MM5e-o9bf [163.49.204.253])2021/11/14(日) 21:57:27.13ID:pXm3Ey2jM
ECMAの仕様にはAbstruct Closure Specification Typeが定義されてるし、関数定義周りでclosureって言葉は繰り返し出てくるよ

まあでも仕様型みたいな大半の人が知らなくても困らないような詳細知識よりも
クロージャとは一般的にどういうものを指すのかという基礎的知識を身につけたほうがいい

38デフォルトの名無しさん (ワッチョイ 4d01-gBK2 [126.243.242.148])2021/11/14(日) 23:10:09.15ID:oSBO5A5Z0
>>37
一般解を示す公式文書を出せる?

ぶっちゃけ、言語が異なれば用語定義も変わると思ってるし、共通の用語なんてないと思ってる
複数言語習得者が勝手に共通認識を定義しているだけなのでは?

39デフォルトの名無しさん (ワッチョイ da02-wd7R [59.129.58.203])2021/11/15(月) 00:30:22.12ID:gtEjBgCa0
ワロスw

40デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])2021/11/15(月) 07:13:10.30ID:slHpwqED0
JSのクロージャーは
関数内のプロパティに、外部から直接アクセスできないが
関数内から外部への参照はチェーンしているという状態をいう

外部Lexicalへの参照を持たない関数型は
関数ではあるけどクロージャーにならない
入り子になっていても

もうクロージャはこれで終わり
クロージャーに貴重な人生を奪われるなよ?

4140 (ワッチョイ 6e46-wd7R [111.98.111.65])2021/11/15(月) 07:21:28.04ID:slHpwqED0
状態ではなく仕組みがいいな
クロージャーはオブジェクトセットという表現が適してる例が散見されるみたいだし
必要なオブジェクトセットを使ってnativeでクロージャーを実現してるんだから
クロージャーは仕組み!これできめ!

42デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])2021/11/15(月) 07:45:40.57ID:slHpwqED0
>>37

var a=0;
let b=1;
let c='C';

function func(){
let c=2;
return [a,b,c];
}

func.a='A';

console.log(
[window.a,window.b,window.c],
[a,b,c],
func(),
[func().a,func().b,func().c],
[func.a,func.b,func.c]
);


この出力を理解するにはクロージャーの仕組みの理解は必要でない?

43デフォルトの名無しさん (ワッチョイ 4d01-gBK2 [126.161.181.74])2021/11/15(月) 19:30:23.51ID:rDFc2Y3T0
>>40-41
あなたの見解は理解した
正しさの根拠が見つからないのでそれだけだが

44デフォルトの名無しさん (ワッチョイ eec3-lRA9 [159.28.152.184])2021/11/15(月) 21:15:21.66ID:eCFTqC9o0
すいません、下記のようにボタンを押した時の処理をあらかじめ一つずつJSで書いて書いてるんですが、
ボタンの種類と数が莫大な量になるとJSを書くのが大変になってきました

逆にクリックされた任意のボタンオブジェクトを変数に入れる方法ってあったりしますでしょうか
(ボタンがクリックされる→クリックされたボタンのclassやvalueやtextを調べて目的の処理、という順番に変更したい)

下記が現状のコードです


・html
<button class="BtnA" value="固有の番号">ボタンAタイプ</button>
<button class="BtnA" value="固有の番号">ボタンAタイプ</button>
<button class="BtnB" value="固有の番号">ボタンBタイプ</button>

・js
const BtnA = document.getElementsByClassName('BtnA');
for(i=0;BtnA.length>i;i++){
BtnA[i].addEventListener('click', () =>{
//ここに押された時の処理を書く
});
}
const BtnB = document.getElementsByClassName('BtnB');
以下BtnAのコードとほぼ同様

45デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])2021/11/15(月) 22:27:30.97ID:slHpwqED0
>>44
クラス数×value数×text種類数だけ処理数があるってことですか?

46デフォルトの名無しさん (ワッチョイ f62c-FDGb [153.136.94.40])2021/11/15(月) 22:58:29.48ID:OfX77+Sf0
class="BtnA BtnAll"
class="BtnB BtnAll"

みたいに、BtnAll で、すべてのボタンの処理をまとめれば?

JavaScript のスレは、この板ではなく、web制作管理板の方へ書き込んでください!
この板のスレは、荒らしが出た時に、緊急的に立てられたものだから

47デフォルトの名無しさん (ワッチョイ eec3-lRA9 [159.28.152.184])2021/11/16(火) 00:43:22.12ID:Ca8LCMpZ0
>>45
そのイメージに近いです

>>46
ある程度まとめた結果が
BtnA BtnB BtnCみたいなグループです。

了解です、Web製作管理板に移動させていただきます。

48デフォルトの名無しさん (ワッチョイ 4d01-gBK2 [126.161.181.74])2021/11/16(火) 07:19:53.13ID:L8BSEbG10
>>44
event.currentTarget
event.target

49デフォルトの名無しさん (ワッチョイ 5af0-lRA9 [219.121.80.140])2021/11/16(火) 13:14:21.44ID:x6nbCzKN0
>>44
処理数が多すぎて管理効率が悪くなってるってことかな?
ボタン数×(value数-1)×(str数-2)の数の処理があって
保守管理しづらいというのなら下記の考え方はどうでしょう?

変数buttonにはボタンオブジェクト
変数getFuncにはクリックイベント処理を固有番号で紐づける
変数buttonをfor of で回して、固有番号で分岐して、リスナーを設定する

button=document.getelementsbytagname('button')
getFunc={
固有番号:function(){}
固有番号:function(){},,,}

for(let i of button){
switch(i.value){
case '固有番号':i.addEventlistener('click',getFunc[固有番号]);break;

50デフォルトの名無しさん (ワッチョイ 5af0-lRA9 [219.121.80.140])2021/11/16(火) 13:26:34.28ID:x6nbCzKN0
>>44
上の説明だとわかりづらいかな

let getButton=function(){button=document.getElementsByTagName('button');}

// valueの固有番号毎に処理を設定
let addEvent=function(){
for(let i of button){
switch (i.value){
case '101':i.addEventListener('click',addFunc[101]);break;}}}

let button;
// 関数をまとめ置く
let addFunc={
101:function(){console.log(this.value)},
102:function(){console.log(this.className)},}

51デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])2021/11/16(火) 19:57:25.19ID:ES2RXggH0
switchの中をObject.keys().forEach()でまわして
addFunc[+i.value]で作り直したらすっきりしそう
いじりたくなるコードだけど可読性を考えたらこれはこれなのか

52デフォルトの名無しさん (ワッチョイ eecb-wd7R [223.132.4.34])2021/11/16(火) 22:10:30.79ID:iK58PKMQ0
リアクトでのスマホアプリ開発なんですが、エミュレータは何がお勧めですか?
というのも実機を持っていません。

また、実機を使う場合はアンドロイド5などは使い物になりますか?
古い機種に合わせて作っても、上位互換性のないソフトになるんでしょうか?

53デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])2021/11/17(水) 07:47:58.17ID:/ZY56h0o0
>>52
「React andoridアプリ開発 エミュレータ」で検索どうぞ
「api16 開発 不具合 or 互換性」で検索どうぞ

これがベストっていう答えがないから
開発者が自分で試行錯誤して答えを出す問題かな
互換性の問題は作るものによっても違うからね
jellyならそんな問題ないとおもうけど

54デフォルトの名無しさん (ワッチョイ eecb-wd7R [223.132.4.34])2021/11/17(水) 10:05:17.45ID:syddc80l0
>>53
jellyッテの調べてみますです

55デフォルトの名無しさん (ワッチョイ eecb-wd7R [223.132.4.34])2021/11/17(水) 14:33:19.47ID:syddc80l0
>>53
すみません。互換性に関して見つけられなかったです。
android5向けに作った場合、上位互換性ってあるんでしょうか?

javascriptのバージョン?次第とも考えられますけど

56デフォルトの名無しさん (テテンテンテン MM8e-IL+H [133.106.50.1])2021/11/17(水) 17:43:10.56ID:+3kxan1mM
androidの話はandroid開発スレで聞いてくれ
多分実機なしは無謀、5は古すぎでFA

57デフォルトの名無しさん (ワッチョイ eecb-wd7R [223.132.4.34])2021/11/18(木) 06:50:53.17ID:TN6Tj1JF0
>>56
了解す

58デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])2021/11/18(木) 07:17:54.57ID:DvlppRWo0
そんなことはない
android5で使えるアプリが目的なんだから
android5で作成するのがベスト

reactNativeエンジンがどうエンコードして
androidで動かしてるのか分らんので
今のreactでandroid5のどの機能を使えるのか
全然わからんけどな

59デフォルトの名無しさん (アウアウクー MM75-/vwC [36.11.224.2 [上級国民]])2021/11/18(木) 07:27:37.77ID:dAtvmzd9M
React NativeはAndroid 5.0以上に対応だね

https://github.com/facebook/react-native

60デフォルトの名無しさん (ワッチョイ 6e46-wd7R [111.98.111.65])2021/11/18(木) 19:32:55.35ID:DvlppRWo0
API21からなんだな

61デフォルトの名無しさん (ワッチョイ 5b10-MXQP [180.12.82.129])2021/11/19(金) 12:50:28.04ID:zuBm2fI80
文字列化した数式を計算させるにはどうやればいいんですか?
test("x*x+10",2);

function test(suushiki_str,x){
var y = suushiki_str(この場合x*x+10)でx=2を代入;
retuen(y)
}
こういうのがやりたいんだけど

62デフォルトの名無しさん (ワッチョイ 0e2d-9IQd [121.102.71.88])2021/11/19(金) 12:55:11.51ID:CS9Fe95O0
function test(suushiki_str,x){
return eval(suushiki_str)
}

63デフォルトの名無しさん (ワッチョイ 5b10-MXQP [180.12.82.129])2021/11/19(金) 13:17:09.00ID:zuBm2fI80
>>62
ありがとー

64デフォルトの名無しさん (ブーイモ MM26-1svM [163.49.209.232])2021/11/19(金) 13:41:30.73ID:5MAibbygM
何がしたいのか分からないけど、設計自体が間違ってる気がするけどなあ

65デフォルトの名無しさん (ワッチョイ 6301-wksM [60.74.72.59])2021/11/19(金) 21:34:02.13ID:FkG8ODwP0
eval is evil
evalをそのまま使う事はまずないな

66デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])2021/11/20(土) 07:02:21.23ID:0rDRyz8e0
evalを使えとなw

67デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])2021/11/20(土) 07:04:06.68ID:0rDRyz8e0
evalが生きていること自体、JSが未成熟の証

68デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])2021/11/20(土) 07:46:31.86ID:0rDRyz8e0
>>61
evalは非推奨だから

function test(fun,x){
return fun(x);
}

test(function(x){return x*x+10},5);
としときましょう

69デフォルトの名無しさん (ワッチョイ 5b10-MXQP [180.12.82.129])2021/11/20(土) 18:55:29.17ID:BgP9vp1q0
evalって外部から入力させなければ使っても問題ないんじゃないの?

70デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])2021/11/20(土) 18:57:47.86ID:0rDRyz8e0
使いたければつかったらいいよ

71デフォルトの名無しさん (オッペケ Srbb-eA7U [126.194.225.246])2021/11/20(土) 19:05:52.91ID:Gd107dzfr
やっぱjavascriptできるとなんでも作れるな
めちゃくちゃ便利だわ

72デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])2021/11/20(土) 19:54:48.88ID:0rDRyz8e0
ブラウザ限定だし
HTMLと一緒でメンテナンスとか関係なければな

もしJSで金融システムみたいな厳格なシステム作ろうとしたら
開発者はみんな気がくるってしまうんじゃないかな

73デフォルトの名無しさん (オッペケ Srbb-eA7U [126.194.225.246])2021/11/20(土) 19:57:24.06ID:Gd107dzfr
マジでjavascriptだけでめちゃくちゃ儲けてる
使いこなせばガチで素晴らしい

74デフォルトの名無しさん (ワッチョイ 372f-IS5D [218.220.251.107])2021/11/20(土) 20:02:17.98ID:4VXr5Xxs0
仕事で使ってるサイトをJavascriptで自動化できませんか?
たとえば出勤と退勤のときの時間を管理するのに「勤次郎」というサイトを使ってるんだけど
毎回ログインしたあといちいち入力するのが面倒くさい。

75デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])2021/11/20(土) 20:22:43.02ID:0rDRyz8e0
>>74
データーの保存はどこを想定してますか?

76デフォルトの名無しさん (ワッチョイ 035c-+VBe [220.212.121.177])2021/11/20(土) 20:24:55.79ID:b48agA+u0
seleniumでいいじゃん

77デフォルトの名無しさん (オッペケ Srbb-eA7U [126.194.225.246])2021/11/20(土) 20:46:00.92ID:Gd107dzfr
認証しないシステムなんて攻撃か踏み台にされるとか考えないのか

78デフォルトの名無しさん (ワッチョイ 7f4e-8G9t [210.138.216.243])2021/11/20(土) 21:05:08.87ID:t4XZd1270
定型をポチポチ入力してボタン押すのがダルい程度ならブックマークレットでいいだろ

79デフォルトの名無しさん (ワッチョイ 4e2c-iAR7 [153.136.94.40])2021/11/21(日) 08:08:40.09ID:zYUtuXs90
>>74
ブラウザを自動操作なら、iMacros は?

例えば漏れは、Ruby のselenium-webdriver で、
ブラウザを自動操作して、ヤフーにログインしてる

ユーザー名を入力して、ボタンを押す。
パスワードを入力して、ボタンを押すとか

require "selenium-webdriver"

options = Selenium::WebDriver::Chrome::Options.new
options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大

driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10 # default timeout

driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym";

element = driver.find_element(:id => "username")
element.send_key "ユーザー名"

driver.find_element(:id => "btnNext").click # ボタンを押す

element = driver.find_element(:id => "passwd")
element.send_key "パスワード"

driver.find_element(:id => "btnSubmit").click # ボタンを押す

80デフォルトの名無しさん (ワッチョイ 5b10-MXQP [180.12.82.129])2021/11/21(日) 18:31:02.25ID:8Vc5P3wO0
>>768
それだと数式を""で囲んで文字列にすると計算できない

81デフォルトの名無しさん (ワッチョイ 5b10-MXQP [180.12.82.129])2021/11/21(日) 18:31:35.22ID:8Vc5P3wO0
>>68

82デフォルトの名無しさん (ワッチョイ cedb-+VBe [217.178.96.78])2021/11/21(日) 19:15:18.38ID:s72Bw1rA0
classが非推奨になるのはいつですか?

83デフォルトの名無しさん (ワッチョイ 6301-wksM [60.74.72.59])2021/11/21(日) 19:23:58.62ID:6CiZCeOJ0
>>82
その予定はない

84デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])2021/11/21(日) 21:16:08.25ID:CIU/fTVN0
>>81
>>70で答えてる

eval非推奨な意味を理解していて使うならそれでいいんじゃね?

85デフォルトの名無しさん (ワッチョイ 7f4e-8G9t [210.138.216.243])2021/11/21(日) 21:19:33.19ID:QvzeRvg10
>>61
function test(suushiki_str, x){
var f = Function('x', 'return ' + suushiki_str);
return f(x);
}

test('x * x + 10' ,2);
//=> 14

86デフォルトの名無しさん (オッペケ Srbb-eA7U [126.205.247.161])2021/11/21(日) 22:55:28.72ID:EhgufZNWr
javascriptが使えるとやりたいことが簡単にできる

87デフォルトの名無しさん (ワッチョイ cedb-+VBe [217.178.96.78])2021/11/22(月) 11:19:44.15ID:svQfIHqM0
>>86
JavaScript最強伝説。

88デフォルトの名無しさん (オッペケ Srbb-eA7U [126.254.145.114])2021/11/22(月) 14:30:42.59ID:zL7mhfu3r
ブラウザで動く
LambdaやGoogle Functionsで動く
デスクトップアプリも作れる
OfficeWeb版やGASでも動く

インフラ構築不要で最強すぎるだろ

89デフォルトの名無しさん (ワッチョイ cedb-+VBe [217.178.96.78])2021/11/22(月) 16:46:08.87ID:svQfIHqM0
>>88
でも、文法が分かりにくい。
というか無駄に複雑過ぎる。

90デフォルトの名無しさん (オッペケ Srbb-eA7U [126.254.145.114])2021/11/22(月) 16:48:25.46ID:zL7mhfu3r
>>89
文法なんかふつう

複雑な意味がわからん
ほかの言語だと単純なの?

91デフォルトの名無しさん (ワッチョイ f6c3-9IQd [159.28.152.184])2021/11/22(月) 17:43:25.62ID:+p8qnn8E0
すいません、下記のように読み込んだshiftJISのcsvファイルを
正規表現を使って置換しようとしてるのですがうまくいきません

文字コードの問題なのか指定したマッチパターン意外の色んな文字が勝手に置換されてしまいます

const requestCSV = new XMLHttpRequest();
requestCSV.overrideMimeType('text/plain; charset=Shift_JIS');//csvの文字コードがshiftJSであることは変更できない

requestCSV.addEventListener('load', (event) => {

 const orgCSV = event.target.responseText;
 tempKey="["+key+"]";//keyは変数を使う必要があります
 keyName = new RegExp(tempKey, "g");//複数マッチさせる必要があります

 result=orgCSV.replace(keyName, "ほげ");
}

正規表現オブジェクトを使わずにreplaceさせると問題なく動くのですが、
マッチパターンを変数にしたいのと、複数回以上にマッチさせるため g をつけるため、
正規表現オブジェクトを使わざるを得ない状態です。

どなたかアドバイスお願いできますでしょうか

92デフォルトの名無しさん (ワッチョイ cedb-+VBe [217.178.96.78])2021/11/22(月) 17:45:45.05ID:svQfIHqM0
>>90
Javaの方が分かりやすかった。

93デフォルトの名無しさん (ワッチョイ 7f4e-8G9t [210.138.216.243])2021/11/22(月) 18:41:55.55ID:kseOISZ70
Javaと比べたらJavaScriptのほうが文法複雑じゃないと思うが…
TypeScriptと混同してない?

94デフォルトの名無しさん (ワッチョイ 7f4e-8G9t [210.138.216.243])2021/11/22(月) 18:43:22.51ID:kseOISZ70
それかDOM APIをJavaScriptの文法に含むと勘違いしてるとか

95デフォルトの名無しさん (ブーイモ MM26-IS5D [163.49.208.33])2021/11/22(月) 18:50:50.35ID:jaRoUi/NM
Javaのほうが圧倒的にすっきりしている。
ほんとに両言語をちゃんと勉強したことあるか?
アルツハイマーでもこれくらい分かる。

96デフォルトの名無しさん (ワッチョイ 4e61-9IQd [153.160.97.54])2021/11/22(月) 18:53:04.86ID:yUT2zM6b0
>>91
keyを[]で囲む必要なし

97デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])2021/11/22(月) 18:54:55.94ID:LGR+CB3F0
>>94
古いJSとの互換性を取ろうとすると
古い文法も理解しないとならないからな
オブジェクトの生成も多種多様
JSの細かいところまで理解しようとすると
javaやpythonとかのほうが整理されていてわかりやすい

let obj var objのLexicalの違いや
let obj={}
let fun=function(){}
function fun(){}
class cs extends fun{}
class cs{
__proto__=a;
}

obj.constructor.prorotype=obj
newObjext ,Object.create

こんなのシンプルなわけがない

と92はいいたんだと思う

98デフォルトの名無しさん (ワッチョイ f6c3-9IQd [159.28.152.184])2021/11/22(月) 19:05:02.79ID:+p8qnn8E0
>>96
"["+key+"]"

というようにカッコで囲んだ形式で検索したいのでここはあえてそうしてるんです…

99デフォルトの名無しさん (ワッチョイ 7f4e-8G9t [210.138.216.243])2021/11/22(月) 19:40:22.23ID:kseOISZ70
Java
class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

JavaScript
console.log("Hello World!");

hello worldからしてこれだからな
あなたの「シンプル」の定義を見せてもらえないと…

100デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])2021/11/22(月) 20:19:16.63ID:LGR+CB3F0
>>99
JSのクラスは疑似クラス
他言語のClassと同じように扱えるように
functionを疑似的にclass表現できるようにしてるだけ

Javaと異なりJSはconstructorを有するオブジェクトの生成方法が沢山ある
それすら理解できずに、99の問いとは、、、もっとJSを勉強しようぜ
Javaのほうが圧倒的に整理され覚える文法が少ない

つか、JavaとJS、両方ともそこそこ使えたら
99みたいなこと言えないだろw

101デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])2021/11/22(月) 20:26:36.75ID:LGR+CB3F0
>>99
もうちょっと言わせてもらえば
Javaは変数エラーをチェックしやすい言語設計
JSは変数エラーを無限に生成し得る言語設計

JSはマークアップを動的に処理することから発生し
高度な言語設計にしても互換性の問題から
古い文法を生かしているので、とても複雑怪奇になっている

そう表現したらわかるかな?

102デフォルトの名無しさん (テテンテンテン MMb6-9fbt [133.106.36.42])2021/11/22(月) 20:44:07.24ID:LDcgDFlhM
変数エラーとは

103デフォルトの名無しさん (テテンテンテン MMb6-9fbt [133.106.36.42])2021/11/22(月) 20:52:35.36ID:LDcgDFlhM
>>98
上手く行かない具体例出してよ
ぶっちゃけ[ ]の使い方ミスってる様な気がするんだけど

104デフォルトの名無しさん (ワッチョイ f6c3-9IQd [159.28.152.184])2021/11/22(月) 23:07:56.11ID:+p8qnn8E0
>>103
置換した具体例で言うと例えば

さっきの例で置換部分が
result=orgCSV.replace(keyName, "ほげ");

元のテキストが下記だとすると
<title>[name]</title>

結果が下記になってしまってなんじゃこりゃ…て感じですね
<titlほげ>[ほげaほげほげ]</titlほげ>

正規表現オブジェクトを使わなければ普通に成功します
result=orgCSV.replace("[name]", "ほげ"); //<title>ほげ</title>になる

しかし先述のようにマッチパターンを変数化しつつgをつけて複数置換する必要があるため難しいんです…

105デフォルトの名無しさん (ワッチョイ 4e61-9IQd [153.160.97.54])2021/11/22(月) 23:44:57.26ID:yUT2zM6b0
>>104
 tempKey="\\["+key+"\\]";

106デフォルトの名無しさん (ワッチョイ 5b10-iUmB [180.12.82.129])2021/11/22(月) 23:59:47.75ID:LPlgTaUb0
javascriptで計算の値がオーバーフロウするかどうかを調べるにはどうすればいいんですか?
例えば10000の10乗を計算しようとしてオーバーフロウするならばalertで計算できませんと
表示したいんだけど

107デフォルトの名無しさん (ワッチョイ 8b01-wksM [126.74.75.203])2021/11/23(火) 00:04:12.05ID:KUvc8h5G0
>>104
[] は文字クラス
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions/Character_Classes

更に、keyにメタキャラクタがあれば同じ事になるので、文字列全体をエスケープすべき
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions#escaping

上記は正規表現の基本
正規表現を体系的に学習すれば、絶対に気がついたこと
急がば回れ

108デフォルトの名無しさん (ワッチョイ 8b01-wksM [126.74.75.203])2021/11/23(火) 00:07:12.09ID:KUvc8h5G0
>>106
BigIntと文字列比較

109デフォルトの名無しさん (ワッチョイ 7f4e-8G9t [210.138.216.243])2021/11/23(火) 00:24:05.58ID:t+JcGiN60
>>100
なんでクラスの話に?詭弁では?
クラスベースの奴らがうるさいからclassなんて入れる羽目になったんだが。
そいつらのせいで木に竹を接ぐようなことさせられてむしろ複雑になった。
プロトタイプベースとしてシンプルでよかったのにほんと独善的でろくなことしない。
Reactでもクラスコンポーネントは廃れ99%のケースでFCになったよ。

110デフォルトの名無しさん (ワッチョイ cedb-+VBe [217.178.96.78])2021/11/23(火) 01:06:21.92ID:cKz+CerT0
>>109
エセクラスベースは絶対に反対。
classは早期に非推奨にすべき。

111デフォルトの名無しさん (ワッチョイ f6c3-9IQd [159.28.152.184])2021/11/23(火) 01:17:09.89ID:SfFCbJaV0
>>105
>>107
ああ、なるほど、エスケープをダブルでつけないといけなかったんですね
シングルではつけてみていたんですがそれで動かなかったのであれって思ってました
資料の提示もありがとうございます!

112デフォルトの名無しさん (ワッチョイ 7646-+VBe [111.98.111.65])2021/11/23(火) 07:20:19.58ID:A/hfu3xU0
>>102
その問いはマジ質問?

>>109
JavaとJsの言語設計に関して
どっちがすっきりしてるかを話ししてるだけだろ
疑似クラスなんてあること自体がお笑いだし
オブジェクト生成方法も多岐にわたるとか
どこが整理されてる言語なのかと

113デフォルトの名無しさん (テテンテンテン MMb6-9fbt [133.106.243.30])2021/11/23(火) 07:33:58.18ID:MZ1To5x7M
変数エラーでググっても出てこなかったです
何処の業界用語ですか?

114デフォルトの名無しさん (ワッチョイ 4e2c-C1KD [153.136.94.40])2021/11/23(火) 08:34:50.37ID:Ln8GWMq+0
>>104
Ruby では、Regexp.escape で、

正規表現において、特別な意味を持つ文字の直前に、
エスケープ文字(バックスラッシュ)を挿入した、文字列を返す

p esc_1 = Regexp.escape( "[-a]" ) #=> "\\[\\-a\\]"

reg_1 = Regexp.new( esc_1 )
p reg_1.match( "x[-a]y" ) #<MatchData "[-a]">

115デフォルトの名無しさん (アメ MM17-8G9t [218.225.234.214])2021/11/23(火) 09:26:25.23ID:AKV1HaX9M
>>112
お笑いと言えばJavaの無名クラスだろ
なんだったのアレ
関数がファーストクラスオブジェクトじゃなかった欠陥言語の苦肉の策とは言えとんでもなくキッタネェコード
今じゃラムダ関数使ってだーれも使ってないし
最初からそうしとけばよかったのにね
ぜんぜん整理されてなかったのかな?w

116デフォルトの名無しさん (ワッチョイ 9af0-9IQd [219.121.80.140])2021/11/23(火) 10:33:28.85ID:9dlC3Wki0
言語の完成度はJava>JS
学びやすさもJava>JS

だからと言って優劣を表現してるわけじゃないよ
マークアップ操作言語として
JS、HTML、CSS等との新旧互換性を担保しながら
成長してきた言語だから
継ぎ接ぎ言語になっているのは仕方ないこと
JSでできることは多いし楽しい言語であることを否定してるわけじゃないんだ
でもJSが整理されてシンプルな言語であるとは言えないってだけ

117デフォルトの名無しさん (オッペケ Srbb-eA7U [126.254.145.114])2021/11/23(火) 10:45:11.29ID:jndULnQpr
javascriptさえあれば何もいらん
javascriptだけでスケーラブルなシステムが作れる

118デフォルトの名無しさん (アメ MM17-8G9t [218.225.234.214])2021/11/23(火) 10:52:32.71ID:AKV1HaX9M
あまりにも面倒くさいため、誰もJavaでGUIを作らなくなりました。
やる気とAWT,Swingなど道具立てはあったのです。
ただJavaがクソ過ぎた。
イベントドリブンで必須のリスナー登録はこんな感じ(笑)
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("clicked");
}
});
一方C#ではデリゲートで簡単に書くことができました。
Javaはデリゲートが言語機能として無いのでマネできませんでしたw
結果今では誰もJavaでクライアントGUIプログラムを書きませんがC#はバリバリ使われてますw
結局Java8でJavaScriptをパクってlambdaで以下のように書けるようにしました(ハズカシーw)
button1.addActionListener(e -> System.out.println("clicked"));
しかし時すでにお寿司、誰もJavaでGUIを作っていないのであるwww
Javaはサーバーサイドに集中して成功者?
ノンノンw
Javaが糞でめんどくさくて誰も書かなくなったから廃れた、これがシンプルな答えですw

119デフォルトの名無しさん (ワッチョイ 9af0-9IQd [219.121.80.140])2021/11/23(火) 11:43:58.38ID:9dlC3Wki0
うん、わかった
確かにその通りです

120デフォルトの名無しさん (ワッチョイ 8b01-wksM [126.243.168.20])2021/11/23(火) 15:55:58.57ID:MdPJopiF0
Android StudioではまだJava言語で開発が必要だったような

121デフォルトの名無しさん (ワッチョイ 1333-BhQk [59.190.185.22])2021/11/27(土) 15:29:53.92ID:czi6N/jr0
0から9の入ったランダムの配列に適当に選んだnという数字が最大何個並んでいるか
これはどういう方法が早いのでしょうか
気にするほどでもないのでしょうか
配列を見ていくのは遅いとか言う話も聞いたような気もします
一般的にはどういう方法を取るのでしょうか

・配列の前から順にforでnであるか、あればカウンターインクリメント、なければカウンターリセット
・joinで配列を文字列化したあとforでi文字数ぶんのnを検索文字として includesがfalseになるまでか最悪配列数まで調べる
・文字列化したあとmatchで/n+/gで一覧を出して一覧の配列をmap(e=>e.length)で文字数にしてMath.maxで調べる

122デフォルトの名無しさん (ブーイモ MM8b-/4Ud [133.159.152.250])2021/11/27(土) 17:26:03.23ID:YexJKObKM
>>121
まずは自分で試して比べろよ

123デフォルトの名無しさん (ワッチョイ 1333-BhQk [59.190.185.22])2021/11/27(土) 20:27:12.12ID:czi6N/jr0
コードはこんな感じでいいですか?
https://jsfiddle.net/rj457v0q/
windows10 firefox 64bit 94.0.2のabout:newtabのコンソールでやった結果
11374, 1970, 2920
とかそれに似たような時間なんですが
同じ環境でJSFiddle に保存した際に実行された時間が
320, 1994, 2938
と1番目が早くなって結果が真逆になっています
どういう事なんでしょうか

124デフォルトの名無しさん (ワッチョイ 1333-BhQk [59.190.185.22])2021/11/27(土) 21:17:39.73ID:czi6N/jr0
IronというChromeベースのブラウザでも試したところ
FirefoxからJSFiddleを開いてそこで走らせた時間と同じような結果になりました

125デフォルトの名無しさん (ワッチョイ 2110-ZQOw [180.12.82.129])2021/11/27(土) 22:00:25.94ID:w/hwUzDX0
element.addEventListener(
"mousemove",
function(e){alert(e.offsetX);}
);

このfunction(e)の部分はfunction(aaa,e,bbb){}のように引数を複数設定することはできますか?
e以外を渡すにはグローバルしかできないんですか?

126デフォルトの名無しさん (ワッチョイ 3332-m/w5 [133.207.66.224])2021/11/27(土) 23:25:49.55ID:QiKYnGor0
>>123
Firefox の Math.max() が激重っぽい(1万回の関数呼び出しが重い?)
三項演算子とかにすれば JSFiddle と同じくらい早くなる

127デフォルトの名無しさん (ワッチョイ 1333-BhQk [59.190.185.22])2021/11/27(土) 23:48:23.24ID:czi6N/jr0
>>126
ありがとうございます。
Math.maxを使わず、
配列のまま計算させたほうがいいみたいですね。
3つ目もMath.maxを使ってますが使わないようにしても、
こちらはMath.max関数の呼び出し回数が1周1回なせいか短縮されませんでした。

128デフォルトの名無しさん (ブーイモ MM8b-/4Ud [133.159.151.119])2021/11/28(日) 12:42:42.78ID:TNNdgbH5M
>>123
1つめのバグっとるよ
2つめのは連続する数が大きいのでも確かめないとパフォーマンス特性が分からない

jsbench.meみたいなところで試すといい
アルゴリズムのオーダー考えれば単純ループが一番高速

129デフォルトの名無しさん (ワッチョイ 3332-m/w5 [133.207.66.224])2021/11/28(日) 21:15:40.16ID:P+UGlIn90
>>125
引数を複数設定できる。ただし、第一引数以外は何も渡されない。(デフォルト引数なんかの例外もある)
thisを渡せる。bind()とhandleEvent()を含むオブジェクトで渡せる。

130デフォルトの名無しさん (ワッチョイ 1333-BhQk [59.190.185.22])2021/11/28(日) 21:21:54.23ID:PdYmCZpH0
>>128
ありがとうございます
サイトは次使う時に使って見たいと思いますw

131デフォルトの名無しさん (テテンテンテン MM8b-PefI [133.106.57.30])2021/11/28(日) 21:29:03.95ID:eSM912u0M
>>125
どんな使い方をするのか想定コードを教えて

あと代入されるaaa,bbbの値はいつ確定する?
呼び出し時に確定するなら変数で置いとくしか無いし
関数定義する時点で確定してるなら引数にする必要が無い

132デフォルトの名無しさん (ワッチョイ 2110-kHZs [180.12.82.129])2021/11/29(月) 12:33:33.13ID:nUjIBrRJ0
>>131
canvasの領域内をクリックしながらマウスを移動させたときの
canvas内のマウスの座標を得たいんだけど
mousedownでvar clickcyuu = 1;mouseupでclickcyuu=0;
mousemoveでclickcyuu===1ならばdrag_mouse_x = e.offsetX;drag_mouse_y = e.offsetY
とやりたかったのでfunction(e,clickcyuu){}としたかった

133デフォルトの名無しさん (テテンテンテン MM8b-PefI [133.106.249.166])2021/11/29(月) 13:18:58.10ID:kIPjw4qWM
>>132
それだと結局グローバル変数参照してるのと同じじゃない?
わざわざ引数経由する理由がない

134デフォルトの名無しさん (ワッチョイ c101-gtDo [126.243.41.97])2021/11/29(月) 13:23:14.24ID:T3PYHNfj0
>>132
>>129の方法ではダメなのか?

135デフォルトの名無しさん (ワッチョイ 5961-MeBs [114.150.87.142])2021/11/29(月) 15:20:06.33ID:0iOICyJy0
定期的にaddEventListener自体から引数渡したいって人出てくるけど
仮にできたとしてもaddEventListenerした時点で値が固定されることが考えから抜け落ちてるよね
>>132
引数渡したいならイベントハンドラに関数式使えば済むけど
複数のイベント仕込むなら一連の動作をこんな感じでclassかオブジェクトにした方が楽よ
https://jsfiddle.net/hgro7t5m/

136デフォルトの名無しさん (ブーイモ MM45-/4Ud [210.138.176.81])2021/11/29(月) 15:41:30.31ID:cAtmNTK4M
クロージャ使えば普通にできるやろ
それに参照型ならaddEventListenerした後からでも値を変えられるよ

137デフォルトの名無しさん (ワッチョイ 1b46-D8AZ [111.98.111.65])2021/11/29(月) 18:56:58.07ID:QQHq1BUR0
var か

138デフォルトの名無しさん (ワッチョイ c101-gtDo [126.243.41.97])2021/11/29(月) 20:17:26.02ID:T3PYHNfj0
>>135
オブジェクトを束縛すれば、プロパティは固定されない(>>129)
handleEventも使ってみればその有用性に気がつくと思うが

139デフォルトの名無しさん (ワッチョイ efc3-wVd4 [159.28.152.184])2021/12/04(土) 12:18:05.48ID:Zxe83BGy0
読み込みたいファイルのパスだけがわかっている場合に

reader= new FileReader();
reader.readAsText("aaa/hoge.csv") ;

みたいな感じで読み込もうと思ったんですが、
readAsTextの引数はblobだかfileオブジェクトでないとだめみたいで、
レファレンスを読んで見るも、
パスからblogだかfileオブジェクトだかを作成する方法がわかりませんでした。

ファイル読み込み自体は他の方法を使ってできるものの、
FileReaderとreadAsTextの組み合わせを使ってトライしてみたいので
どなたかアドバイスお願いできますでしょうか

140デフォルトの名無しさん (ワッチョイ 6f01-Mnqw [126.243.120.8])2021/12/04(土) 12:36:24.21ID:6Q/yxXZX0
>>139
それが出来たら、ファイルの情報を盗み出せるようになるな

141デフォルトの名無しさん (ワッチョイ efc3-wVd4 [159.28.152.184])2021/12/04(土) 12:48:45.94ID:Zxe83BGy0
>>140
例えばxmlhttpRequest()でもパスからファイルを読み込むことが出来るので
FileReaderでそれが出来ないのは不思議な気になるんですがそういうものなんですかね

142デフォルトの名無しさん (テテンテンテン MM8f-FSU1 [133.106.200.234])2021/12/04(土) 14:35:37.60ID:t4TtjIXNM
むしろ他の方法とやらが気になる

143デフォルトの名無しさん (ワッチョイ 6f01-Mnqw [126.243.120.8])2021/12/04(土) 14:36:47.65ID:6Q/yxXZX0
>>141
xhrは基本的にhttp接続しか出来ない

144デフォルトの名無しさん (ブーイモ MM87-rU9g [202.214.125.245])2021/12/04(土) 16:15:20.01ID:4OadB/pcM

145デフォルトの名無しさん (ワッチョイ 4b01-Z6Z9 [60.66.7.153])2021/12/07(火) 11:51:05.11ID:sVKUttQ/0
ガチでヌーブなんですけどrequestsとbeautifulsoupでスクレイピングやってます
waitかけないとバンされるよと言われましたがどうすればいいですか?
requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います
これに対してどうすればいいですか?

146デフォルトの名無しさん (ワッチョイ cf7b-2EUD [153.185.174.10])2021/12/07(火) 11:56:58.02ID:PaA+NeG00
>>145
マルチ禁止

147デフォルトの名無しさん (ワッチョイ ef04-lq0O [223.134.134.66])2021/12/09(木) 15:07:14.43ID:uyimWi/30
const test = [
{main:"A"},
{main:"B"},
{main:"C"}
]
から全てのmainをとり出した["A","B","C"]となる配列を作りたいです
forを使えば作れますが、もっと簡単に作れる便利なメソッドあったりしますか?

148デフォルトの名無しさん (ワッチョイ 3f33-v359 [59.190.185.22])2021/12/09(木) 15:32:51.58ID:gfmL2AFS0
const test = [
{main:"A"},
{main:"B"},
{main:"C"}
]

let testB = test.map(e=>e.main)
知っててコレジャナイ方法をきいてるのかもしれないけど

149デフォルトの名無しさん (ワッチョイ ef04-lq0O [223.134.134.66])2021/12/09(木) 15:38:12.28ID:uyimWi/30
>>148
自分もそれやってたけど不可能なので質問しましたが
どうやらqueryselectorAllにmapが効かないっていうのが原因だったみたいです
すんません

150デフォルトの名無しさん (ワッチョイ ef04-lq0O [223.134.134.66])2021/12/09(木) 15:51:07.69ID:uyimWi/30
許して下さい…

151デフォルトの名無しさん (ワッチョイ 1361-wVd4 [114.150.87.142])2021/12/09(木) 16:09:45.62ID:CDvY1Ccm0
querySelectorAllの戻り値はArrayではなくNodeListだからね
hoge = Array.from(test).map(e => e.main);

152デフォルトの名無しさん (ブーイモ MMed-2CNx [210.138.208.223])2021/12/10(金) 03:36:53.73ID:TbLIJEp/M
hoge = Array.prototype.map.call(test,e => e.main);
とか

153デフォルトの名無しさん (ワッチョイ 0bbb-4iyA [217.178.137.56])2021/12/10(金) 20:33:15.32ID:Kd0T5CdW0
Pythonの

154デフォルトの名無しさん (ワッチョイ 0bbb-4iyA [217.178.137.56])2021/12/10(金) 20:34:21.58ID:Kd0T5CdW0
PythonのコードですがどなたかJavascriptに直して下さい…

sorted(pts, key=clockwiseangle_and_distance)

import math

pts = [[2,3], [5,2],[4,1],[3.5,1],[1,2],[2,1],[3,1],[3,3],[4,3]]
Origin = [2, 3]
refvec = [0, 1]

def clockwiseangle_and_distance(point):
 vector = [point[0]-Origin[0], point[1]-Origin[1]]
 lenvector = math.hypot(vector[0], vector[1])
 if lenvector == 0:
  return -math.pi, 0
 normalized = [vector[0]/lenvector, vector[1]/lenvector]
 dotprod = normalized[0]*refvec[0] + normalized[1]*refvec[1]
 diffprod = refvec[1]*normalized[0] - refvec[0]*normalized[1]
 angle = math.atan2(diffprod, dotprod)
 if angle < 0:
  return 2*math.pi+angle, lenvector
 return angle, lenvector

155デフォルトの名無しさん (ワッチョイ 7b04-YTVu [223.134.134.66])2021/12/11(土) 11:19:38.29ID:kTfvj9Ya0
すんません

var hoge = test(); //←2個入った配列が返ってくるヤツ
var A = hoge[0];
var B = hoge[1];

って書いてます。
これもーちょっとカッコよく

var A B = test();

って感じで一行でAとBに変数に入れる方法とかあります?

156デフォルトの名無しさん (ワッチョイ 1333-Ef8D [59.190.185.22])2021/12/11(土) 11:55:24.52ID:4C+gjCbR0
var hoge = [1,9];
var [A,B] = hoge;

157デフォルトの名無しさん (ワッチョイ 7b04-YTVu [223.134.134.66])2021/12/11(土) 11:56:54.19ID:kTfvj9Ya0
>>156
うおーすげー天才
ありがとうございます!

158デフォルトの名無しさん (テテンテンテン MM6b-fD8e [133.106.48.27])2021/12/12(日) 17:05:57.60ID:neOkkgxzM
var obj={
key:{x:200,y:300}
}
obj.key2=500;
alert(obj.key2);
alert(obj.key.x);
上はオブジェクトで下はオブジェクトのオブジェクトです。
実行結果は上が500で下が200です。
一応動作はしますがこのような使い方は間違っていますか?

159デフォルトの名無しさん (ワッチョイ e901-txWz [126.53.74.66])2021/12/12(日) 18:15:54.15ID:vioicQgx0
>>158
「間違っている」は「期待する動作」によって決定される
それをあなた自身しか知らないので、第三者による判断は不可能

160デフォルトの名無しさん (ワッチョイ c910-BpYN [180.12.82.129])2021/12/12(日) 18:40:13.36ID:MwcQtjtM0
>>159
文法的にはどうですか?

161デフォルトの名無しさん (ワッチョイ e901-txWz [126.53.74.66])2021/12/12(日) 19:22:12.57ID:vioicQgx0
>>160
文法は他人に聞くまでもない
コンソールにSyntaxErrorが出力されていなければ、文法的に問題ない

162デフォルトの名無しさん (ブーイモ MM3d-2CNx [202.214.230.79])2021/12/12(日) 20:06:45.86ID:A9cM/MPAM
何に引っかかってるのか書かないと期待してる答えは返ってこない
特に変なところないし

163デフォルトの名無しさん (ワッチョイ c910-BpYN [180.12.82.129])2021/12/13(月) 08:42:46.82ID:8aJMJMAP0
引数が多い場合の引数の渡し方について
function(
aaa,
bbb,
ccc,
・・・(略)
zzz
){}
って書くより
function(obj){
var aaa = obj.aaa;
var bbb = obj.bbb;
・・・・・(略)
var zzz = obj.zzz;
}
って書く方がいいんでしょうか?
どっちもメリット、デメリットはあると思うけど

164デフォルトの名無しさん (ワッチョイ e901-txWz [126.141.164.97])2021/12/13(月) 13:06:28.94ID:CRKwXgwv0
>>163
何でこう無条件に善し悪しを求めようとするかね
メリット、デメリットがあるなら、どちらが良いと決めつけることは出来ないと判断出来ないものなのか

165デフォルトの名無しさん (ワッチョイ 614e-ohB/ [210.138.216.243])2021/12/13(月) 15:27:20.29ID:+BabEBNV0
下のほうなら
const f = function({aaa, bbb, zzz}){
console.log(aaa, bbb, zzz);
}
のほうが分かりやすくないか
const o = {
aaa: 'あ',
bbb: 42,
zzz: 'ん',
};
f(o);

166デフォルトの名無しさん (テテンテンテン MM6b-cqSP [133.106.48.47])2021/12/13(月) 18:56:15.12ID:hdHWXJOsM
>>136
形だけひとまとめにしても後でバラすんじゃなんの意味もない
objとかじゃなくて意味のある名前が付けられる範囲でまとめるべき

167デフォルトの名無しさん (テテンテンテン MM6b-cqSP [133.106.48.47])2021/12/13(月) 18:56:54.87ID:hdHWXJOsM
>>166>>163あて

168デフォルトの名無しさん (テテンテンテン MM6b-fD8e [133.106.52.36])2021/12/14(火) 13:31:35.06ID:qf3fX3jjM
var str="x^2 + (x+2)^2 - (x*(x-2))^3";
をMath.pow(x,2)+Math.pow((x+2),2)-
Math.pow((x*(x-2)),3)に置換するにはどうやればいいんですか?

169デフォルトの名無しさん (ワッチョイ f902-8/hI [124.215.44.217])2021/12/14(火) 15:01:16.14ID:82CERvuP0
Math.powを使わなければ簡単なんだけどね

eval(str.replace(/\^/g, '**'));

170デフォルトの名無しさん (ワッチョイ 0b7b-1/S7 [153.185.174.10])2021/12/14(火) 15:08:13.94ID:4lV7iDvz0
スペース含まない半角文字列限定。式の文字列つくるまで。
賢い人ならもうちょっとスマートに書けるかと。

var str="x^2+(x+2)^2-(x*(x-2))^3";
function func(s){
var s2=s.split('^');
var s3=s2[1].replace(/¥d+/,"");
return "Math.pow("+s2[0]+","+s2[1].replace(/[^¥d]/,"")+")"+s3;
}
var result=str.replace(/[a-z¥(¥)¥d¥*¥+¥-¥/]+¥^¥d+([¥+¥-¥*¥/]|$)/g,func);

171デフォルトの名無しさん (ワッチョイ c910-fD8e [180.12.82.129])2021/12/14(火) 18:05:48.23ID:ZmdmxRFm0
>>169
そうやった方が簡単そうですね
>>170
ありがとうございます

172デフォルトの名無しさん (ワッチョイ 7bc3-4iyA [159.28.152.184])2021/12/15(水) 19:13:45.77ID:h9C3pi7L0
いつもはreplaceやmatchを使うんだけど、
execってのがキャプチャグループだけを簡単に抜き出せて便利そうだから使ってみました

txt="AabBxxB";

pattern = /A(.*)B/;

d=pattern.exec(txt);

alert(d[1]);



期待する結果はab

でも実際はabBxxが返ってきます、後方参照ってやつですか?一番後ろのものとマッチしてしまう
これって最短距離でのマッチを取得するにはどうすれば良いんでしょうか?

173デフォルトの名無しさん (ワッチョイ 535c-8/hI [211.121.86.123])2021/12/15(水) 19:19:59.60ID:UjbkuvW00
.*?

174デフォルトの名無しさん (ワッチョイ 1333-Ef8D [59.190.4.184])2021/12/15(水) 19:20:26.59ID:LAChl8N10
ぱっとしかみてないけど
pattern = /A(.*?)B/;

175デフォルトの名無しさん (ワッチョイ 0b46-LR8T [153.161.191.103])2021/12/15(水) 19:22:08.15ID:Z/edc8620
A([^B]*)B

176デフォルトの名無しさん (ワッチョイ 614e-ohB/ [210.138.216.243])2021/12/15(水) 20:16:03.92ID:1LHweqXF0
( ^)o(^ )b

177デフォルトの名無しさん (ワッチョイ 7bc3-4iyA [159.28.152.184])2021/12/15(水) 20:34:33.03ID:h9C3pi7L0
>>173
>>174,175
ありがとうございます
なるほど、*も+も?も単体で使うと最長一致になるけど
*?とか+?みたいに組み合わせて使うと最短一致になるんですね、ややこしい…

178デフォルトの名無しさん (ワッチョイ e901-txWz [126.141.136.21])2021/12/16(木) 20:22:00.71ID:bW+aVaO40
>>177
その通りだが、一文字ならバックトラックが発生しない最長一致がいいと思う >>175

179デフォルトの名無しさん (アウアウウー Sa45-n01y [106.128.158.140])2021/12/22(水) 17:33:35.08ID:ONJh0jXva
【環境】Windows 7 64bit, IE11
【何をしたのか】
$("form")で取得している内容が自分の考えと正しいかを確認したい
1. alert($("form")) → [object Object]と表示される
2. alert(JSON.stringify($("form"))) → IEが動作を停止しましたで強制終了
【エラーメッセージ】-
【期待する結果】
$("form")の中身が確認したいです
手段は選びません
console.log()は試していませんがshowModalDialogにて新規で開かれるウィンドウが描画されるまでに行われる処理のようで、コンソールを開く前に終わってしまうためalertで今は試しています
【サンプルコード】
$("form").attr("name");

180デフォルトの名無しさん (アウアウウー Sa45-n01y [106.128.158.140])2021/12/22(水) 17:43:33.97ID:ONJh0jXva
>>179
自分は取得しているものが<form 〜>であると思っています
なのでHTMLが確認したいです

181デフォルトの名無しさん (ワッチョイ 0233-xasP [59.190.4.184])2021/12/22(水) 18:34:04.36ID:VeORz/HR0
試してみたらfirefoxだと強制終了しないね
IEは消したからわからん

182デフォルトの名無しさん (ワッチョイ 3901-+xN7 [126.225.77.49])2021/12/22(水) 20:25:41.33ID:WODdA7db0
>>179
試してないconsole.logやconsole.dirでいいと思うが、まず試してみては?
コンソールはモーダルウインドウが開いてなくても関係ない

あなたがほしいのは$("form")[0]な気はするが

183デフォルトの名無しさん (ワッチョイ 3901-+xN7 [126.225.77.49])2021/12/22(水) 20:33:32.43ID:WODdA7db0
モーダルウインドウ上でコンソール出力しようとせず、モーダルウインドウを開くページから参照するとか、breakpointで止めるとか、モーダルウインドウを閉じるコードを一時的にコメントアウトするとか

モーダルウインドウを使わないのが一番だが
、Win7を使ってるならインターネットに接続してないのだろうし、相当特殊な環境だな

184デフォルトの名無しさん (ワッチョイ 122e-n01y [133.114.228.183])2021/12/22(水) 22:15:47.78ID:oJlbnIXA0
>>181-183
ありがとうございます

>>182,183
お察しの通り過去に作られたIE用のシステムをEdgeに対応する必要があり、
現時点では当時の開発環境(VS2012)でデバッグ実行しています
JavaScriptに関わるのが初めてでとにかく動かして覚えようとしているところです
$("form")[0]は明日試してみます

console.logなどを試していない(諦めた)理由は、
動作として、親ウィンドウからshowModalDialogで子ウィンドウを開く
→子でデータを選択する→親に選択したデータが入力される という流れになっており、
親画面でF12のコンソールを開いておいても子が開かれるとモーダルにより親画面のコンソールも触れない
ので諦めたんですが、もしかしてピン止め外すと止まらないんですかね?
ピン止めした状態でしか動かしてなかったので明日試してみようとおもいます

>モーダルウインドウを開くページから参照するとか、
ウィンドウ間のやりとりがまだよくわからないのでその発想に至れませんでした

>breakpointで止めるとか、
showModalDialogで開いた後に処理される関数に貼ってみたんですが
張っていないshowModalDialogの行で止まって、関数の中をステップ実行できなかったんですよね…
関数の最初にdialogArgumentsを参照してifで分岐するんですが
showModalDialog以外で呼ばれるときはステップ実行できるのでそういうものなのかと諦めました

>モーダルウインドウを閉じるコードを一時的にコメントアウトするとか
その発想はなかったです
今後のデバッグに使ってみます

ひとまず、$("form")[0]とピン止めを試してみます

185デフォルトの名無しさん (ワッチョイ 7f41-ass7 [182.168.252.41])2021/12/27(月) 21:01:36.58ID:XB7P0UiP0
html5のcanvasについて質問です
drawImageでこの画像をcanvasに描写した後、画像の白い部分だけを赤くマスクしたいです
+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚

ctx.globalCompositeOperation = 'destination-in';

c2.globalCompositeOperation = 'darken';
を使うとオシイのですが、どうしても黒い箇所が赤くそまってしまったり、明るい方が優先されてしまったりします
何か良い手はないでしょうか?

186デフォルトの名無しさん (ワッチョイ 0cdb-t0J7 [217.178.96.78])2021/12/28(火) 10:31:30.75ID:ChI3TD7z0
今後はclassが標準になるの?

187デフォルトの名無しさん (ワッチョイ 0cdb-t0J7 [217.178.96.78])2021/12/28(火) 10:36:46.52ID:ChI3TD7z0
JavaScriptのクラスは、内部的にはsuperキーワードが追加された以外は以前と変わっていません。



そのため、以前できなかったことは、今でもできません。



クラス定義を使えば、わかりやすいコードを作れるという意見もありますが、誰にとってわかりやすいかいまいち不明。
prototypeを隠蔽しているので、初心者がJavaScriptの本質を理解しにくくなる気もします。



class構文は内部でどんな置き換えをしているのか、ということを理解してからでないと、勉強にならないですね。
でも理解したら、わざわざclassを使う必要がない気がします。



使いたければ使えばいいんじゃない?と思います。

188デフォルトの名無しさん (ワッチョイ 2101-BKNS [126.194.142.131])2021/12/28(火) 12:53:44.91ID:s8DIRgNG0
>>186-187
自問自答?
使いたくなければ使わなければいいと思うが、定期的にネガキャンするのは無駄なので、止めて欲しい
>>82,110

189デフォルトの名無しさん (ワッチョイ 0cdb-t0J7 [217.178.96.78])2021/12/28(火) 13:05:03.77ID:ChI3TD7z0
JavaScriptのクラスは、内部的にはsuperキーワードが追加された以外は以前と変わっていません。
そのため、以前できなかったことは、今でもできません。
クラス定義を使えば、わかりやすいコードを作れるという意見もありますが、
誰にとってわかりやすいかいまいち不明。
prototypeを隠蔽しているので、初心者がJavaScriptの本質を理解しにくくなる気もします。
class構文は内部でどんな置き換えをしているのか、ということを理解してからでないと、
勉強にならないですね。
でも理解したら、わざわざclassを使う必要がない気がします。

190デフォルトの名無しさん (ワッチョイ d02c-nHKY [153.136.94.40])2021/12/28(火) 13:28:00.05ID:ediH0wTa0
>>179
const form = $( 'form' )
console.log( form.length, form[ 0 ] )

HTML 内に、フォームが1つしかないなら、
form.length は1 で、form[ 0 ] でform 要素を取得できる

<form action="" id="form_1" name="form_1">
みたいに、id を付けた方が良いかも

そうすれば、これで取得できる
const form_1 = $( '#form_1' )

まあ、HTML, JavaScript, jQuery の質問は、
この板よりも、web制作管理板の方へ書き込んでください

向こうのスレが、本スレです

191デフォルトの名無しさん (ワッチョイ d02c-nHKY [153.136.94.40])2021/12/28(火) 13:30:12.08ID:ediH0wTa0
今は、class を使う

今さら、prototype を使う人は、いない

192デフォルトの名無しさん (ワッチョイ 0cdb-t0J7 [217.178.96.78])2021/12/28(火) 13:50:08.36ID:ChI3TD7z0
>>191
内部構造が分かりにくい。

193デフォルトの名無しさん (ワッチョイ 4fa0-2/Bw [110.4.221.248])2021/12/28(火) 14:58:53.60ID:Gh6bV9aa0
ワイにとってはclassのほうが分かりやすいかな

194デフォルトの名無しさん (ワッチョイ 0cdb-t0J7 [217.178.96.78])2021/12/28(火) 16:37:46.66ID:ChI3TD7z0
すごい。
みんな頭いいんだな。

195デフォルトの名無しさん (アウアウアー Sa02-5lpS [27.85.206.63])2021/12/28(火) 17:14:08.11ID:jIrgILJka
まあな

196デフォルトの名無しさん (ワッチョイ edb0-BY+R [114.158.162.114])2021/12/28(火) 18:05:32.60ID:VM83xPh40
中がprototypeだとか別に関係ないだろう。外から見てclassとして振舞うならそれでいいわけだし。
classとしての振る舞いに何か問題があるならそこは注意すべきだが。

197デフォルトの名無しさん (ワッチョイ 0cdb-t0J7 [217.178.96.78])2021/12/28(火) 19:24:57.81ID:ChI3TD7z0
みなさんjavascript何年目?
オレは2年。

198デフォルトの名無しさん (ワッチョイ 6b01-h6Ia [122.255.141.199])2021/12/31(金) 00:19:23.87ID:K3Q5NoN00
 昼食が3億!?AppleCEOや投資の神様とのランチ権オークションがすごい

スティーブ・ジョブズが亡くなった後にAppleのCEOになったのがティム・クック氏です。
そんな彼との1時間のランチ権が今年4月から5月にかけてCharitybuzzというオークションサイトに
出品され、$515,000(約5,150万円)で落札されました!
実はクックは過去にも同様の出品をしていて、今年の出品で4回目となります。

2000年からこれまでに計17回出品されているのが、「投資の神様」とも呼ばれるウォーレン・バフェット氏
とのランチミーティング権。2003年からは、世界最大級のオークションサイト「eBay」で毎年開催される
チャリティー・オークションのひとつとして出品されています。
今年6月に出品された際には、なんと$3,456,789(約3億4,568万円)で落札されました! 

199デフォルトの名無しさん (ワッチョイ efcb-hDuN [223.132.4.34])2022/01/02(日) 11:53:11.76ID:qPLPCP6o0
fc2ブログを使用しているのですが、javascriptが動かない設定などあったりするのでしょうか?
<script type="text/javascript">alert("hoge");</script>

また、動かない原因をブラウザの検証から調べる事はできますか?

200デフォルトの名無しさん (ワッチョイ efcb-hDuN [223.132.4.34])2022/01/02(日) 12:00:54.33ID:qPLPCP6o0
自己解決 すみませんす

201デフォルトの名無しさん (ワッチョイ efcb-hDuN [223.132.4.34])2022/01/03(月) 10:30:02.94ID:ciAHc7bt0
文字数の制限をしたいのですが、htmlでoverflow hiddenするのとjsでカットするのはどちらがいいんでしょうか?
ブログのトップページなんですが、本文の1部を表示させておいて、続きを読むというリンクを設置したいなと。
<div id="text">123456789</div>

<script>
let text = document.getElementById("text");
let inner_text = text.innerHTML;
let text_length = inner_text.length;
let max_length = 5;
if(text_length > max_length){
console.log("5文字超えてます");
text.innerHTML = inner_text.substr(0,max_length);
}
</script>

これで動きはしましたけど

202デフォルトの名無しさん (ワッチョイ 6b10-45BR [180.12.82.129])2022/01/04(火) 19:09:00.18ID:NiWy5jYJ0
x=<span id="x">0</span>,y=<span id="y">0</span>

<p> </p>
<div style="text-align:center">
<canvas id="canvas"></canvas>
</div>

<スクリプト>
var canvas_elm = document.getElementById("canvas");
var x_elm = document.getElementById("x");
var y_elm = document.getElementById("y");

var context = canvas_elm.getContext("2d");
canvas_elm.width = 600;
canvas_elm.height = 500;

context.fillStyle = "#0000ff";
context.fillRect(0,0,canvas_elm.width,canvas_elm.height);

canvas_elm.addEventListener(
"mousemove",
function(e){
x_elm.innerHTML = e.offsetX;
y_elm.innerHTML = e.offsetY;
}
);
</スクリプト>

canvas上でのマウスやタッチポインターの座標を表示したいんですけど、、PCではこれで座標が表示されるけど
mousemoveをtouchmoveにしてchromeでF12キーを押してスマホモードにしてタッチポインターを動かしたときxy座標がundefinedと表示されてしまいます。
スマホモードでもポインターの位置を表示できるようにするにはどうやればいいんですか?

203デフォルトの名無しさん (ワッチョイ 0f2c-4nvB [153.136.94.40])2022/01/04(火) 19:25:07.68ID:vw+5Ecnq0
スマホなど、色々なデバイスに対応させるのは、
React, Vue.js などのフレームワークを使うのでは?

それと、JavaScript の質問は、この板よりも、
web制作管理板の方へ書き込んでください!

この板のスレは、荒らしが出て、緊急避難用に立てたものだから

204デフォルトの名無しさん (ワッチョイ 0f2c-4nvB [153.136.94.40])2022/01/04(火) 19:34:13.24ID:vw+5Ecnq0
>>201
Ruby on Rails では、続きを読むのは、truncate(文字数)。
Railsがどういう実装をしているかまでは知らないけど

npm とか、Lodash とかに、そういう関数が無いのか?

「javascript 続きを読む」「css 続きを読む」で検索してみれば?

205デフォルトの名無しさん (ワッチョイ 9f61-CTdg [61.214.181.68])2022/01/04(火) 20:53:53.77ID:QGpHZiP/0
>>202
タッチイベントにはevent.offsetX, event.offsetYはありません
event.changedTouches[0].pageX等から計算してください

206デフォルトの名無しさん (ワッチョイ 6b10-45BR [180.12.82.129])2022/01/04(火) 22:55:40.12ID:NiWy5jYJ0
そうなんですか
ありがとうございます

207デフォルトの名無しさん (ワッチョイ 0fdb-hDuN [217.178.96.78])2022/01/05(水) 10:08:51.69ID:D2CbxegU0
>>206
どう致しまして。

208デフォルトの名無しさん (ワッチョイ 6b10-nofO [180.12.82.129])2022/01/06(木) 12:37:03.20ID:qVRSVavo0
質問1 element.addeventlistnerとdocument.addeventlistnerの違いは?
質問2 
function(elm){
elm.addeventlistner(
"click",
function(e){alert("クリック");}
);
}
のような関数がある場合document.addeventlistnerの場合はelementがないので個別に関数作らないとだめなのか?

209デフォルトの名無しさん (ワッチョイ 0f2c-4nvB [153.136.94.40])2022/01/06(木) 12:51:53.90ID:/RkhTEU50
外側・親に、イベントを付けて、親で、子のイベントをキャッチできる。
jQuery で書いた

<div id="btn-wrap">
<button class="BtnA BtnAll" value="1">A-1</button>
<button class="BtnA BtnAll" value="2">A-2</button>
<button class="BtnB BtnAll" value="3">B-3</button>
</div>

// 外側・親に、イベントを付けて、親で、子のイベントをキャッチする

$( '#btn-wrap' ).on( 'click', function ( event ) {
console.log( $( event.target ).prop( 'value' ) )
} );

この板よりも、web制作管理板の方へ書き込んでください!
そちらの方が、本スレです

210デフォルトの名無しさん (ブーイモ MM7f-Huc/ [163.49.215.54])2022/01/06(木) 13:04:40.48ID:nb3ueMLOM
>>208
1. 対象要素が違うだけ。バブリングによって「あらゆる要素」のイベントをトラップしたい場合は後者を使うといい(一般的には普通は比較的近いコンテナ要素でトラップするもんだが...)
2. その関数なら共通でOK

>>209
本当に誘導したいなら、せめてリンクを貼りましょう

211デフォルトの名無しさん (ワッチョイ 1b23-hDuN [120.51.55.80])2022/01/06(木) 14:19:29.65ID:j/6fwGrk0
このスレで質問しても何の問題もありません
荒らしやアフィリエイト宣伝業者に騙されて誘導されないようにしてください

212デフォルトの名無しさん (ワッチョイ 9b01-aXRe [114.48.120.222])2022/01/06(木) 15:06:56.73ID:cXhLxUi00
>>208
回答1
event.currentTargetが異なる

回答2
e.targetを確認すれば良い

213デフォルトの名無しさん (ワッチョイ 9b01-aXRe [114.48.120.222])2022/01/06(木) 15:09:56.94ID:cXhLxUi00
>>209
Web制作板でも次スレが立たず、旧スレを再利用してる状態
本スレなど存在していない

本気で本スレに誘導したいなら、最新スレを探して次スレを立てて保守すべき
それぐらいの情熱がある人はもういないと思ってたが、あなたがそうしたいのなら止めはしない

214209 (ワッチョイ 0f2c-4nvB [153.136.94.40])2022/01/06(木) 16:09:40.84ID:/RkhTEU50
この板のスレは元々、web制作管理板が荒らされた時に、緊急避難用に立てられたもの。
本スレは、向こうの方

この板は荒らしが多い

荒らしは短文で、必ず2回書き込む。
複数回書き込むことで、多くの人が書いているように見せる

それと、テンプレをしょっちゅう、自分が有利なように書き換える

Python のスレのテンプレとか、ひどい。
NGワードは何々とか、しょっちゅう書き換えている

まあ、ソースコードを書かない香具師は、
プログラマーじゃないから、相手にしない方がよい

215デフォルトの名無しさん (ワッチョイ efcb-hDuN [223.132.4.34])2022/01/06(木) 21:02:16.03ID:Ozp6fgWI0
window.onload = function(){
}
このfunctionって何の意味があるんですかね?

216デフォルトの名無しさん (ワッチョイ 9f33-qpXy [59.190.4.184])2022/01/06(木) 21:09:14.63ID:N8zU5Utu0
中の変数とかを外から見えなくしてるんじゃない?

217デフォルトの名無しさん (ワッチョイ eb5f-rGxQ [14.11.8.0 [上級国民]])2022/01/06(木) 21:28:50.56ID:aRDKku+G0
>>215
変数 = function() { ... }
で関数式(無名関数)っていう形で定義できる

関数式についての説明はこの辺を参照
https://ja.javascript.info/function-expressions
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Functions

で、window.onload = function() { ... }
っていう風に実装すると、少し特殊な動きになって
HTMLを完全に読み込んだタイミングで、関数の中身を実行するっていう動きになる
https://developer.mozilla.org/ja/docs/Web/API/GlobalEventHandlers/onload

(他言語だとあんまり見ない書き方だから混乱するかもしれんけど)

218超面白いyoutubeチャンネル (ワッチョイ cb01-45BR [60.111.41.11])2022/01/06(木) 21:52:51.91ID:eAd55W1B0

219デフォルトの名無しさん (ワッチョイ efcb-hDuN [223.132.4.34])2022/01/07(金) 07:23:20.82ID:RiDo7mPm0
>>217
変数に関数を入れられるんですよね。
処理を直には入れられないから、関数で包むとイメージなんでしょうかね。

220デフォルトの名無しさん (ワッチョイ efcb-hDuN [223.132.4.34])2022/01/07(金) 13:51:45.20ID:RiDo7mPm0
<div class="content">

<h2>header2</h2>

<h2>header2-2</h2>

<h2>header2-3</h2>

<h2>header2-4</h2>

</div>



<script>

let content = document.getElementsByClassName("content");

let all_element = content.querySelectorAll("h2");

console.log(all_element);

</script>

gebcnで取得したターゲットにqueryselectorは使えないんでしょうか?
idで取得したものなら可能なんですけども。

221デフォルトの名無しさん (ワッチョイ 9f33-qpXy [59.190.4.184])2022/01/07(金) 14:27:21.79ID:YQSfQDAQ0
>>220
contentはgetElementsでHTMLCollectionをとってるので
content[0]とかにすればでるんじゃない?

222デフォルトの名無しさん (ワッチョイ efcb-hDuN [223.132.4.34])2022/01/07(金) 18:28:49.81ID:RiDo7mPm0
>>221
返り値が違うんですね。
要素だけを取ってくるもんだと思っていました。

ありがとうございます。

223デフォルトの名無しさん (ワッチョイ efcb-hDuN [223.132.4.34])2022/01/07(金) 18:31:00.59ID:RiDo7mPm0
エレメントしかいらないのならid使ったほうが良いみたいですね

224デフォルトの名無しさん (ワッチョイ 9f61-CTdg [61.214.181.68])2022/01/07(金) 18:36:46.10ID:HaEbTiQw0
document.querySelectorAll(".content > h2");
でよくね?

225デフォルトの名無しさん (ワッチョイ efcb-hDuN [223.132.4.34])2022/01/07(金) 20:54:20.38ID:RiDo7mPm0
こういった場合クラスを使うんでしょうか?
cssではidは出来るだけ使わないということになっているらしいですが

226デフォルトの名無しさん (ワッチョイ 9b63-rZjE [114.155.73.208])2022/01/07(金) 21:09:58.61ID:/l7S/g/G0
できるだけ使わないというか詳細度に関わる
1ページ一回というユニークルールもcss使い回しに不向き

227デフォルトの名無しさん (ワッチョイ efcb-hDuN [223.132.4.34])2022/01/08(土) 05:37:14.84ID:ly/XOtiZ0
classnameでやってみますです

228デフォルトの名無しさん (ワッチョイ efcb-hDuN [223.132.4.34])2022/01/08(土) 05:41:40.78ID:ly/XOtiZ0
>>224
そうやって書けるんすね
html collectionの構造がよくわからんくて

229デフォルトの名無しさん (ワッチョイ efcb-hDuN [223.132.4.34])2022/01/08(土) 05:48:14.75ID:ly/XOtiZ0
>>224
いや、これだめでしたね
nodelistは帰ってきますけど、h2はとれてないです

230デフォルトの名無しさん (ブーイモ MM7f-Huc/ [163.49.213.86])2022/01/08(土) 05:55:36.78ID:fLniY7PXM
全てconstでOK

231デフォルトの名無しさん (スプッッ Sdbf-d5qO [1.79.82.91])2022/01/08(土) 07:52:36.25ID:GNp2CfCTd
Android10 F-51A
Chrome 93.0.4577.62

ブラウザ上での画像についての質問です。
画像自体は恐らく読み込めているようなのですが、全く映らないか、映っても一瞬で消えてしまいます。
エラーメッセージは出ません。
ファイルマネージャーというアプリから起動すると、正常に動作します。

考えられる原因、解決案は、例えば何があるでしょうか。
絶対パスというものなら出来るかと思ったのですが、自分のやり方が悪いのか、上手く行きませんでした。

232デフォルトの名無しさん (ワッチョイ 2333-bpII [59.190.4.184])2022/01/08(土) 09:00:28.06ID:5hFueUuG0
>>229
最初の一個だけでいいなら
let all_element = document.querySelector(".content h2")

233デフォルトの名無しさん (ワッチョイ 0332-Cwx9 [133.207.66.224])2022/01/08(土) 09:52:41.58ID:UKENl29p0
>>231
情報が少なすぎて詰めきれません。もう少し詳細な情報を提供できませんか?
(まず、JavaScriptはどのように使用していますか?)

234デフォルトの名無しさん (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/08(土) 10:15:27.19ID:GNp2CfCTd
>>233
スマホアプリの「QuickEdit」というテキストエディタで制作しています。

そういう意味じゃなかったらごめんなさい。

$Game_Image_Data = [];
$Game_Image_Data[0] = new Image(); $Game_Image_Data[0].src = "image/player.png";

これで「$Game_Image_Data[0].src」をアラートで出力すると、こうなります。

+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚

235デフォルトの名無しさん (ワッチョイ 5bcb-dXQO [223.132.4.34])2022/01/08(土) 14:43:01.70ID:ly/XOtiZ0
>>232
どうも。今回はindex使うことにしてみます。

236231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/08(土) 17:15:55.99ID:GNp2CfCTd
可能な限り絞り込み? ました。

検証にご協力していただける方は、「imageフォルダに適当な「player.png」の画像を挿入して、実行してみてください。

ここまである程度余計な要素を取り除いたので、流石にこれならいけるんじゃないか? と思ったのですが、自分の環境ではやはり駄目でした。

よろしくお願いいたします。

237231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/08(土) 17:19:01.00ID:GNp2CfCTd
<! html>
<html>
<head>
<meta ="utf-8"/>
<title>No_Name_Game</title>
</head>
<body>
<div id="Original_Game_Windows">
<canvas id="Game_Main_Window" width="640" height="480" style="background-color:#000000;"></canvas>
</div>
<style>
body { margin: 0; padding: 0; }
#Original_Game_Windows {
width: 640px;
height: 480px;
position: relative;
}
</style>
</body>

238231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/08(土) 17:22:09.26ID:GNp2CfCTd
ごめんなさい、貼り付けるの無理でした。

239デフォルトの名無しさん (ワッチョイ 2361-2G4o [61.214.181.68])2022/01/08(土) 17:26:57.57ID:c2V21ewI0
>>236
サーバーに画像アップロードしないとだめですよ?

240231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/08(土) 17:42:45.65ID:GNp2CfCTd

241231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/08(土) 17:44:17.60ID:GNp2CfCTd
斧を使わせて貰いました。
よろしくお願いします。

242231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/08(土) 17:44:45.13ID:GNp2CfCTd
>>239
もちろん承知しています。
それで試しても駄目でした。

243デフォルトの名無しさん (ワッチョイ 2361-2G4o [61.214.181.68])2022/01/08(土) 18:53:38.87ID:c2V21ewI0
>>242
>>234のalertに表示されてるアドレスNot Foundだけど?

244231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/08(土) 19:05:34.21ID:GNp2CfCTd
>>243
この文章って、そういう意味なのですか?
てっきり、アクセスは出来てるという意味だと勘違いしていました。
勉強不足で申し訳ありません。

ただ、今回は確実に、ちゃんと画像もフォルダ内にアップロードしたのですが、上手く行きませんでした。


+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚
+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚
+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚

245デフォルトの名無しさん (ワッチョイ 2361-2G4o [61.214.181.68])2022/01/08(土) 19:12:51.05ID:c2V21ewI0
>>244
頭のpが大文字じゃないですか…

246231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/08(土) 19:26:33.45ID:GNp2CfCTd
>>245
ありがとうございました。

私が馬鹿すぎました。
ネタでやってたんじゃないです。ガチです。お騒がせしました。本当にありがとうございました。

247231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/08(土) 19:30:48.95ID:GNp2CfCTd
>>245
報告までに。
一応確認したところ、無事成功しました。
ありがとうございました。

248デフォルトの名無しさん (ワッチョイ c55f-gByX [14.11.194.224])2022/01/08(土) 20:24:29.61ID:70jc3KgD0
ドンマイ

249デフォルトの名無しさん (ワッチョイ c55f-Krhj [14.11.8.0 [上級国民]])2022/01/08(土) 20:40:02.49ID:6njacc4u0
わりとやらかすミスだからしゃーない

250デフォルトの名無しさん (ワッチョイ 0b2c-mvA8 [153.136.94.40])2022/01/09(日) 01:12:15.51ID:lzN+drLE0
>>229
const elems = document.querySelectorAll(".content > h2");
console.log( elems, elems[ 0 ] )

これで、4つのh2が、ちゃんと取れている

NodeList(4) [h2, h2, h2, h2]
NodeList <h2>​header2​</h2>​

この板よりも、web制作管理板の方で聞いた方がよい。
向こうのスレが、本スレだから

251デフォルトの名無しさん (ワッチョイ 6501-dXQO [126.29.248.173])2022/01/09(日) 01:27:51.26ID:wKoMs7Y50
そいつは、>1 のテンプレをしょっちゅう改変している、テンプレ改変荒らし。
基本的に、ソースコードを書かない香具師は荒らし

「Ruby, Rails, クソチョン」などを、NGワード登録推奨とか、
自分が有利なように、いつもテンプレを改変する

荒らしがスレ主として、居座っているので、
まともな人がスレ立てして、テンプレも元に戻した方がよい

荒らしは必ず、短文で2回以上書き込む。
必ず、複数人がいるように見せかける

252デフォルトの名無しさん (ワッチョイ 8d63-YELL [114.155.73.208])2022/01/09(日) 02:26:51.89ID:WLNeqQAW0
>>251
統合失調症ですか?

253デフォルトの名無しさん (ワッチョイ 8d01-0qby [114.48.120.226])2022/01/09(日) 10:47:02.34ID:94EdrQaq0
>>250
「本スレはない」といっても伝わってなかったんだな >>213
Web制作板のスレは長らく次スレが立ってない
複数ある過去スレ(重複)を質問者が好き勝手に選んで再利用してるだけ
利用者も「重複だから本スレはこちら」などの誘導は誰もやってないし、どれが本スレとか誰も把握してない
繰り返すが、そもそもスレ消化時に次スレが立たなかったのでWeb制作板の本スレは消滅している
Web制作板のスレを追いかけてきたなら知ってるはずなんだがな

254デフォルトの名無しさん (ブーイモ MMd9-q/K3 [202.214.125.224])2022/01/09(日) 10:50:05.66ID:zqBk0tn4M
>>250
本気で誘導したいならリンクを貼りましょう

255231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/09(日) 11:32:48.03ID:8qT6W49sd
昨日はお世話になりました。
二日連続になって申し訳ないのですが、質問させていただきます。

localStorageに保存しておける文字数って、あんまり多くないのでしょうか?

2000×400字ほどで、エラーが出てしまいます。
2000×300字だと問題なかったので、やり方じゃなく文字数の関係なのかと思ったのですが、どうなんでしょうか。

ちなみに、配列、オブジェクト型データです。

256デフォルトの名無しさん (ワッチョイ c55f-Krhj [14.11.8.0 [上級国民]])2022/01/09(日) 11:40:12.10ID:81xkTGx10
>>255
文字数というより、localStorageのデータ保存量の上限は基本5MBで
ブラウザや個人設定によって変わってくる
http://www.htmq.com/webstorage/

257デフォルトの名無しさん (ワッチョイ c55f-gByX [14.11.194.224])2022/01/09(日) 11:47:21.66ID:Km6Rc4Yy0
>>255
エラーとは?そこを詳しく説明して

258デフォルトの名無しさん (ワッチョイ 5bcb-dXQO [223.132.4.34])2022/01/09(日) 11:51:03.02ID:RPzdd9tK0
変数や関数名の迷わない命名ルールってありますか?
変数は名詞、関数は動詞とは聞きますね。

259231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/09(日) 11:56:07.27ID:8qT6W49sd
>>257
DOMEException { stack ~ってエラーです。

+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚

260デフォルトの名無しさん (ワッチョイ c55f-gByX [14.11.194.224])2022/01/09(日) 12:09:04.30ID:Km6Rc4Yy0
>>259
exceeded the quota(割当超過)で確定
サイズ減らすかindexedDB使うか

261デフォルトの名無しさん (ワッチョイ 8d01-0qby [114.48.120.226])2022/01/09(日) 12:10:23.57ID:94EdrQaq0
>>258
言語仕様としては、使用可能文字があるのみで命名規則に縛りはない
ビルトイン関数/プロパティの慣習的にクラスはUpperCamelCase、関数はlowerCamelCaseなので、守るとビルトインのコードと統一性が出来て良いだろう

後は採用しているコーディング規約を守れば良い
例えば、Google JavaScript Style Guide
https://google.github.io/styleguide/jsguide.html#naming
https://w.atwiki.jp/aias-jsstyleguide2/pages/13.html#va

262231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/09(日) 12:16:18.69ID:8qT6W49sd
>>260
回答ありがとうございます。
サイズ減らしたくないので、indexdDBと言うものを調べてみようと思います。

263デフォルトの名無しさん (ワッチョイ 5bcb-dXQO [223.132.4.34])2022/01/09(日) 12:39:38.59ID:RPzdd9tK0
>>261
回答どうも。
規則というか命名ルールみたいなものが知りたいなと。

迷ってる時間が無駄になっているので。

264デフォルトの名無しさん (ワッチョイ 2301-dXQO [219.23.92.148])2022/01/09(日) 12:45:08.85ID:CpwtZL4w0
すいません、アホな質問かもしれません。
マウスの右ボタンクリックで独自のサブメニューを表示したいと思います。
この場合は JavaScriput が必須で、CSSでは出来ないという理解で良いでしょうか。

265デフォルトの名無しさん (ワッチョイ 8b02-2G4o [121.82.250.131])2022/01/09(日) 14:49:13.23ID:MpHyBZWL0
仕事関係なのと、JavaScript は全くの初心者なんで聞き辛いのですが、
【環境】 Raspberry Pi OS Ver10.11
【期待する結果】 文字列の後ろに 1バイトの値を付加したい。
シリアルで受信したメッセージから特定の値を抜き出して別のユニットにシリアルで送信
します。見様見真似とネットで調べながら、

set_Message: function (message) {
const _STX = '\x02'; // STX
const _ETX = '\x03'; // ETX
// 送信フレーム生成
var frame = _STX + message + _ETX;
// BCC 生成
var idx = 0;
var bcc = frame.charCodeAt(idx++);
do {
bcc ^= frame.charCodeAt(idx++);
} while (frame.charAt(idx) != '');
var buff = new ArrayBuffer(5);
var BCC = new DataView(buff);
BCC.setUint8(0, Number(bcc));
// 送信実行
var command = "echo -n " + frame + " > " + TTY_USB;
execsyncs(command);
command = "echo -n " + BCC.getUint8(0) + ',' + (bcc - 0) + ',' + Number(bcc) + ',' + parseInt(bcc, 10) + " > " + TTY_USB;
execsyncs(command);
return;
}

関数を作成、ブロックチェックコード BCC を計算させました。BCC を最後に付加したいのですが、
どれも値が 2バイトの文字列になってしまいます。"JavaScript" + "文字列を数値に変換" とかの
キーワードで検索しながら試行錯誤していますが、単純な数値にするヒントを頂ければ幸いです。
組み込みプログラマーなので、C と、C++ が少しわかります。

266デフォルトの名無しさん (ワッチョイ 8d01-2syq [114.48.120.226])2022/01/09(日) 15:08:40.66ID:94EdrQaq0
>>263
ruleは日本語で規則
あなたのいう命名ルールと俺のいう命名規則は同じ

267デフォルトの名無しさん (ワッチョイ 8d63-YELL [114.155.73.208])2022/01/09(日) 15:18:07.99ID:WLNeqQAW0
名前なんて違反しなきゃ好きにつけりゃいい
俺は長くなっても意味がわかる命名派
vとかiとか一文字の変数や定数を好む宗教も強い

268デフォルトの名無しさん (ワッチョイ 8d01-2syq [114.48.120.226])2022/01/09(日) 15:28:05.42ID:94EdrQaq0
>>264
menu要素は非推奨になったし、JavaAcriptしかないのでは
少なくとCSSがブラウザ標準の動作を変更させることはないと思うし、右クリックを検知する方法はないと思う

コンテキストメニューの改変はアクセシビリティが低下する可能性が高いので、慎重に対応する必要はある
ゲームのような独自の操作方法を要求する場合は致し方ないが、多くの場合、ユーザはブラウザ標準の動作を期待する
独自メニューを提供することでブラウザ標準のメニューを使えなくなる事に不満を持つ
独自メニューとブラウザ標準のコンテキストメニューが両方出現するUIなら良いかもしれないが

269デフォルトの名無しさん (ワッチョイ 8d01-2syq [114.48.120.226])2022/01/09(日) 15:29:28.78ID:94EdrQaq0
>>268の誤字修正

× JavaAcriptしかないのでは
○ JavaScriptしかないのでは

270デフォルトの名無しさん (ワッチョイ 5bcb-dXQO [223.132.4.34])2022/01/09(日) 15:42:44.57ID:RPzdd9tK0
適当につけます(´・ω・`)

271デフォルトの名無しさん (ワッチョイ 2301-dXQO [219.23.92.148])2022/01/09(日) 16:11:22.92ID:CpwtZL4w0
>>268
ありがとうございます!
Javascriptを使う必要がある件、了解です。

以前に .net で作ったWindowsアプリをWebアプリに移植しています。
Table上の特定のセルを右クリックしたら独自メニューが表示される仕様になります。
それ以外の場所では ブラウザ標準のコンテキストメニューが表示出来るようにしたいと思っています。

やり初めて間もないのですが、覚えることが多すぎて恐ろしい世界ですね。Webアプリとは。
Javascriptでやるにしても、JQueryかVueかReactか、どれでやるべきか・・・
バックエンドは Djangoですが、自分ひとりでやらないといけないので かなりの修行になりそうです。
あと、AWSのデプロイとか Dockerとか・・・・ 初めてのことばかりで・・・

272デフォルトの名無しさん (ワッチョイ 8d01-2syq [114.48.120.226])2022/01/09(日) 16:51:11.22ID:94EdrQaq0
>>271
デスクトップアプリとWebアプリの一番の違いは実行環境が複数存在していることだろうな
クライアント環境を指定出来る社内向けWebアプリならブラウザを制限できるが、Webアプリを公開するなら、クロスブラウザが必須
デスクトップOSだけでもChrome,Fx,Edgeの対応が必要となる
(Operaもあるが、シェアが小さい)
モバイルOS版のブラウザも含めると更に大変になる
実装状況はcaniuseやMDNの互換表を見ると、ある程度は分かる
https://caniuse.com/

JavaScript標準の書き方を覚えてから、ライブラリ、フレームワークに手を付けるのが良いと思う
jQueryから入った人はDOMの知識が浅くて見当違いの質問をする事が多い
Vue,Reactは完全に別世界だが、DOMやECMAScriptの文法を理解してないと辛い
JavaScriptの基礎はおさえておいて損はない

最も、バックエンドが未着手なら、バックエンドの習得が先かと
JavaScriptもまとめて学習すると、おそらく混乱する

table要素の特定セルのコンテキストメニューの独自化なら大丈夫だと思う
Google スプレッドシートのWebアプリを想起した

273デフォルトの名無しさん (ワッチョイ 2301-dXQO [219.23.92.148])2022/01/09(日) 17:29:38.29ID:CpwtZL4w0
>>272
アドバイス ありがとうございます。
ほんとうに助かります!

幸い 社内関係者が使用するだけの業務用アプリなので ブラウザを限定して開発することが出来ます。
JavaScriptの基本をおさえるほうが良い件、了解です。
入門本を買ってきて 勉強してみます。

バックエンド(Django)はなんとか目処が立ちそうです。
いやぁ、本当にWebアプリの世界はすごい(難しくて 複雑)と思いました。
おまけに技術の変化が激しそうだし・・・
がんばります!

274デフォルトの名無しさん (ワッチョイ 8d01-2syq [114.48.120.226])2022/01/09(日) 18:35:56.14ID:94EdrQaq0
>>273
クライアント環境を制限できるなら、デファクトスタンダードのGoogle Chromeがお勧め
次点でレンダリングエンジンが同じMS Edge

ブラウザシェアはIE1強時代と比べて、大分変わったな…
https://gs.statcounter.com/browser-market-share/desktop/japan/2021

確かに技術の進化はあるが、Web技術は後方互換性重視の設計思想なので、非推奨機能を使わなければ、大半の機能で半永続性が保証されている
HTML3.2は現代のブラウザでも動作するし、ECMAScript3は現役だ
つまり、古いバージョンから新しいバージョンに更新し続ける必要はない
ただし、これはWeb標準機能に限定した理屈でブラウザの独自拡張機能は別
その昔、IEのActiveX機能を使用した社内向けWebアプリはIEが終焉を迎えるとともに、他ブラウザへ移行するために改修を余儀なくされた
現在は昔と比べてブラウザの独自拡張機能が少ないが、ないわけでもない
Web標準機能を使っておけば、他ブラウザの対応も容易なので、注意すると良い

275デフォルトの名無しさん (ブーイモ MMd9-V3hk [202.214.198.57])2022/01/09(日) 19:24:13.83ID:oCAuhuCGM
>>265
Uint8Arrayとかそういう話じゃなくて?

276231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/09(日) 19:56:40.79ID:8qT6W49sd
昨日から何度も失礼します。

ご提示いただいたindexedDBについて調べて、最初、コピペせずに
自分で打ち込んだら、何度修正してもトランザクションでエラーが出たので、
次に某所のコードをコピペしたら、このようなエラーが出てしまいました。

制作環境がスマホでは、トランザクションというか、indexedDBを扱うのは無理なのでしょうか。
スマホの制作環境わかる方少ないかと思いますが、アドバイスいただけたら幸いです。

+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚

277デフォルトの名無しさん (ワッチョイ c55f-gByX [14.11.194.224])2022/01/09(日) 20:16:29.50ID:Km6Rc4Yy0
>>276
某所なんてぼかされても何も分からん
スマホだから使えないなんて話は聞いたことがない

https://caniuse.com/indexeddb

278デフォルトの名無しさん (ブーイモ MMd9-V3hk [202.214.198.178])2022/01/09(日) 20:32:49.24ID:d2WOXC3/M
indexeddbは直で扱うのはしんどいからライブラリ使うといい
localstorageの代わりとして使う程度ならlocalforageがおすすめ

279231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/09(日) 20:34:03.26ID:8qT6W49sd
確かに質問するのにそこぼかしたら駄目ですよね。すみません。

「VB.NET-TIPS などプログラミングについて」というブログの、「JavaScript IndexedDB の使い方2(データ追加)」

というところです。

http://vbnettips.blog.shinobi.jp/javascript/javascript%20indexeddb%20%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%EF%BC%92

280265 (ワッチョイ 8b02-2G4o [121.82.250.131])2022/01/09(日) 20:35:41.88ID:MpHyBZWL0
>>275
BCC[0] = bcc;
BCC[1] = Number(bcc);
BCC[2] = parseInt(bcc);

command = "echo -n " + BCC[0] + BCC[1] + BCC[2] + " > " + TTY_USB;
execsyncs(command);

としてみましたが、どれも 2文字の文字列で出力されてしまいます。コマンドを作る際の連結で文字列にされている感じでしょうか?

昼過ぎに質問を書き込んでから、const _BCC[ '\x00', ~ '\xFF' ] の 256バイトの配列を作成、_BCC[bcc] として目的の値が出力出来る所まで辿り着いたのですが、処理としてはチョット恥ずかしい感じがします。

281265 (ワッチョイ 8b02-2G4o [121.82.250.131])2022/01/09(日) 20:38:48.27ID:MpHyBZWL0
>>280
消しすぎてました。試したのは、

var BCC = new Uint8Array(bcc);
BCC[0] = bcc;
BCC[1] = Number(bcc);
BCC[2] = parseInt(bcc);

です。

282デフォルトの名無しさん (ワッチョイ 8d01-2syq [114.48.120.226])2022/01/09(日) 20:56:22.61ID:94EdrQaq0
>>280
変数commandはString型なので、そこに含まれる値は全てStrong型に変換される

String(10) === "10"

1バイトの文字が必要なら、ASCIIコードの範囲で1文字になるよう調整する必要がある

283デフォルトの名無しさん (ワッチョイ 0332-Cwx9 [133.207.66.224])2022/01/09(日) 21:05:54.69ID:wEbou60s0
>>265
String.fromCharCode(bcc) ではだめなの?(UTF-16だけど)

284デフォルトの名無しさん (ワッチョイ 8b02-2G4o [121.82.250.131])2022/01/09(日) 21:57:44.39ID:MpHyBZWL0
>>282
>>283
有難うございます。
String.fromCharCode(bcc) で目的が達成出来ました。
これで巨大な変換テーブルを人目に晒さずに済みました。
精進いたします。

285デフォルトの名無しさん (ワッチョイ 0b2c-EgL+ [153.136.94.40])2022/01/09(日) 22:58:01.81ID:lzN+drLE0
>>271
スレ立てるまでもない質問はここで 158匹目
http://2chb.net/r/tech/1635193843/538

ここに、YouTube で有名な、雑食系エンジニア・KENTA のサロンの、
Ruby on Rails 初心者用コースの内容を書いておいた

基本的に、Rails以外のフレームワークは、シェアが少ないのでおすすめしない。
学習環境も揃わないので、無理

Railsでは、Railsチュートリアル・Railsガイド・
黒田努の3冊の本・パーフェクト Ruby on Rails・Ruby on Rails 6 エンジニア養成読本とか、
Rubyでは、改訂2版 パーフェクトRuby・改訂2版 Ruby逆引きハンドブックなどの教科書が揃っている

これほど、良い教科書が揃っているフレームワークはない!

Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、
PHP自体がオワコンになってしまったw

日本のウェブ開発の将来は、ほぼKENTAが決めている。
Scala を滅ぼしたのも、KENTA

286デフォルトの名無しさん (ワッチョイ 8d63-YELL [114.155.73.208])2022/01/09(日) 23:10:39.20ID:WLNeqQAW0
>>285
自演するな

287デフォルトの名無しさん (ワッチョイ 0510-94m7 [180.12.82.129])2022/01/10(月) 00:49:36.06ID:iL7OUFIC0
<table style="width:3000px;background:#ff00ff">
<tr>
<td>aaaaaaaaaaaa</td>
</tr>
</table>

<div style="position:fixed;top:50px;left:200px">x=<span id="x">0</span></div>

setInterval(

function(){
document.getElementById("x").innerHTML = window.pageXOffset;
}
,100
);

PCだと左右スクロールさせたときちゃんとwindow.pageXOffsetが表示されるけど
スマホだと右スクロールの場合は0のまんまで左スクロールの場合だけ表示されます。
スマホでもスクロール値ちゃんと取得できるようなやり方はありますか?

288デフォルトの名無しさん (ワッチョイ 8d01-2syq [114.48.120.226])2022/01/10(月) 01:03:26.84ID:RagYY3R10
>>287
scrollイベントでなく、setIntervalを使う理由が何かある?
scrollしてない時にも常に監視したらバッテリの持ちが悪くなりそうだが

289231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/10(月) 05:44:27.44ID:GFg5qhLud
>>277
>>278
ありがとうございました。

290231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/10(月) 07:56:10.03ID:GFg5qhLud
>>277
おっしゃるとおり、トランザクションはブラウザでは正常に動作していました。
トランザクションでエラー起きていたのは、テキストエディタのプレビューから動かしたときだけでした。

しかし、

https://ideone.com/IKQkII

このコードの59行目くらいで、自分のスマホだとエラーが起きるところまではわかったのですが、解決案がわかりません。
アドバイスいただけたら幸いです。

+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚

291デフォルトの名無しさん (ワッチョイ c55f-fEke [14.10.58.225])2022/01/10(月) 09:10:37.59ID:kImY1hGC0
>>290
idb作るときにkey指定したりした?
結構癖のあるDBよ。
https://qiita.com/butakoma/items/2c1c956b63fcf956a137

localForageとかPouchDB使った方が良いのでは?

292231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/10(月) 09:57:44.78ID:GFg5qhLud
>>291
このコードは自分で書いたものじゃなく >>279 で挙げたサイトの完コピなんです。
なので多分ミスはないんじゃないかと思うんですが……。

昨日も薦められましたが、localForageと言うのも少し調べてみます。

それなりの規模のRPGを作ろうとしてまして、キャラ、アイテム、フィールドマップ、
イベントなどなどの情報をセーブするために、出来るだけ格納出来る情報量が多いものを使用したいんですよね。

293デフォルトの名無しさん (テテンテンテン MM8b-fEke [133.106.206.158])2022/01/10(月) 10:26:53.27ID:LkWl6bQKM
>>292
そういう事であればPouchDB一択。
サーバと同期してマスタ撒いたりできる。
サーバはIBM CloudantってDBaaSがあるよ。

294231 (スプッッ Sd03-Ylb5 [1.79.82.91])2022/01/10(月) 10:56:29.90ID:GFg5qhLud
>>293
ありがとうございます。
こちらも調べてみます。

295デフォルトの名無しさん (ワッチョイ 0510-Q8Sl [180.12.82.129])2022/01/10(月) 12:30:07.69ID:iL7OUFIC0
>>288
1:ゲームみたいにリアルタイム処理しているのでsetInterval使ってるから
2:setInterval内に書けばaddeventlistner使わずにプログラムが簡単ですむから
3:addeventlistnerから得た値をsetInterval内の関数に渡すときグローバル変数で渡すけど
setInterval内でいろいろスクロール値やフォームなどの入力値も取得すればグローバル使わなくていいから

296231 (スプッッ Sd03-Ylb5 [1.75.196.141])2022/01/11(火) 10:20:14.57ID:xHId70tjd
連日すみません。

new Objectしたデータ(以下〇〇〇〇とします)をindexedDBで格納しようとしたのですが、
〇〇〇〇[0].nameで実行するとちゃんと格納されたようで
名前を表示してくれるのですが、〇〇〇〇[0]や〇〇〇〇で実行すると、エラーが出てしまいます。

名前などは表示されるのだから、forで無理矢理全部やろうとしたら、indexedDBでは前のデータに上書きされるようで、上手く出来ませんでした。

この〇〇〇〇を格納出来うる解決案などありましたら、教えていただけると幸いです。

連日すみません。

+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚
+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚

297デフォルトの名無しさん (ワッチョイ 0332-Cwx9 [133.207.66.224])2022/01/11(火) 13:20:29.56ID:yML4DU0R0
>>287
次のコードを先頭(<head>部)に追加する。
<meta name="viewport" content="user-scalable=no" />

>>296
>>1
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。

298231 (スプッッ Sd03-Ylb5 [1.75.231.111])2022/01/11(火) 13:48:48.89ID:dFSE8CT0d
>>297  さんはじめ、皆様失礼しました。
コピペ部分除いて、自分が好きなように書き殴ったコードなので、
出来るだけ見せたくなく、あのような半端な質問になってしまいました。申し訳ありません。

現在進行形でサンプルコードを作成していたのですが、打開案が見つかりそうな気がしたので、もう少し自力で頑張ってみます。

299231 (スプッッ Sd03-Ylb5 [1.75.232.179])2022/01/11(火) 17:48:23.29ID:deLc6mHgd
>>296 についてですが、どうやら、データの一つ一つに割り当てた画像の部分を削除すると、上手く機能するようなのですが、
IndexedDBでは、文字列などのオブジェクトと画像は、同時に格納出来ないのでしょうか。

出来ないのであれば、相当な量の手直しが必要になり非常に困ります。
制作開始時期にほんの少し調べて、localstorageで出来るんだな、と高をくくってセーブを後回しにしてしまい、後悔ばかりです。

300デフォルトの名無しさん (ワッチョイ 0b2c-EgL+ [153.136.94.40])2022/01/11(火) 22:47:10.94ID:TAtkceMX0
Ruby on Rails では、画像の保存に、libvips かImageMagick も使う。
それで画像を変換したり、サイズなどをチェックする

チェックしないと、サイズが少なくても、
1px × 10,000px みたいな極端な形状を送られて、
サーバーを攻撃してきて落とされる

だから、縦横もチェックしないといけない

Railsみたいなフレームワークを使っていない人は、
ウェブサービスを作るのは無理だと思う

フレームワーク側で自動的にチェックされる機能を、
すべて自分で作らないといけないから

301デフォルトの名無しさん (ワッチョイ c55f-Krhj [14.11.8.0 [上級国民]])2022/01/11(火) 22:54:59.18ID:1iYs2MCE0
>>299
質問する時は
①やりたい事を明確に書く
②そのために今試している/実装している内容、ソースコードなど
③発生しているエラー等について
の順で書くと良い

ぶっちゃけ何をやろうとしてるのかが全く分からん
画像をIndexedDBに保存したいなら、一回blobに変換しないといかんぞ
https://blog.katsubemakito.net/html5/indexeddb2

302デフォルトの名無しさん (アウアウウー Sa19-gByX [106.128.145.80])2022/01/11(火) 22:59:30.93ID:JNUAUaQda
>>299
IndexedDBでblob保存できるんだから画像が入らない理由はない
そしてHTMLImageElementを丸ごと保管するのは明らかにおかしいし
そこに画像は無いと思うんだが

https://developer.mozilla.org/ja/docs/Web/API/Web_Workers_API/Structured_clone_algorithm

303231 (スプッッ Sd03-Ylb5 [1.75.232.43])2022/01/12(水) 05:59:28.46ID:cpeqqxS8d
https://4.gigafile.nu/0119-b5bf917d41c34039ed485d68891d082e0

ゲームキャラクターのステータスなどと一緒に、歩行グラフィックもまとめて保存していました。

紹介されたサイトなど巡って、考えてみようと思います。

304デフォルトの名無しさん (ワッチョイ c55f-Krhj [14.11.8.0 [上級国民]])2022/01/12(水) 09:14:18.07ID:60+8sbQA0
>>303
>ゲームキャラクターのステータスなどと一緒に、歩行グラフィックもまとめて保存していました。
なんかまた妙な事をやろうとしてるな

普通はimgフォルダを作って、そこに歩行グラフィックとかを格納する
実装部分はキャラクターの状態に合わせてグラフィックを呼び出す、みたいな感じにするぞ

305231 (スプッッ Sd03-Ylb5 [1.75.229.102])2022/01/12(水) 09:55:20.12ID:moNKRHMad
>>304
何となくですが、普通どうするのかわかったような気がします。

アドバイスありがとうございます。

306デフォルトの名無しさん (アウアウウー Sa19-gByX [106.128.147.31])2022/01/12(水) 12:17:05.53ID:/ZdmJSDda
単にリソースを保管して読込を速くしたいならキャッシュを制御すればいい
何が目的でそれを使うのかよく考えないと訳わからんコードになる

307231 (スプッッ Sd03-Ylb5 [1.75.235.161])2022/01/13(木) 08:13:45.35ID:9NWqLsjEd
blobで調べたサイトで出てきた、完成されたコードに、画像を置いて実行したら、エラーが出てしまいました。

【エラーメッセージ】
Putting elephants in IndexedDB
DOMException { stack: "Error: Failed to execute 'transaction' on 'IDBDatabase': One of the specified object stores was not found.↵ at putElephantInDb (http://localhost:2435/storage/emulated/0/index.html:95:34)↵ at XMLHttpRequest.<anonymous> (http://localhost:2435/storage/emulated/0/index.html:84:21)" }

どのへんでエラーが出たのかまではわかったのですが、何故エラーが出たのかわかりません。
コードはコピペです。
解決案等ありましたら、教えていただけると幸いです。

https://52.gigafile.nu/0120-e68fc48424d65f0f7ae137f3f97cbbc0

308デフォルトの名無しさん (ワッチョイ c55f-Krhj [14.11.8.0 [上級国民]])2022/01/13(木) 10:49:49.47ID:BdYH6d7w0
>>307
山ほど言いたい事があるが……
・コードが動かない、っていうなら実行環境も書け
 (JavaScriptはブラウザ単位で動作が異なる場合もあるし、必須)

・初心者ならまずは動くコードを元に改良なり修正なりしろ
 確認したら元ネタのコードは2012年だから、あなたの動作環境で動く補償が無い
 (軽く見ただけでもエディタがエラー吐くレベルの互換性不備が2箇所ぐらいある)
https://dev.mozilla.jp/2012/07/storing-images-and-files-in-indexeddb/

・初学者向けのチュートリアルやってこい
 とりあえず基本を勉強しろ、明らかに実装方針が迷走してる
 エラーを解決できても、この先にエラー地獄になるのが目に見えてる
 とりあえず専門書買うなり、Webで公開されるチュートリアルもあるからやってこい
 (ゲームが作りたいなら以下を見てみろ)
 https://developer.mozilla.org/ja/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript
 http://puyo.sega.jp/program_2020/

309231 (スプッッ Sd03-Ylb5 [1.75.234.197])2022/01/13(木) 12:01:21.75ID:2Kp13/God
動作環境は、Android10 F-51A
Chrome 93.0.4577.62

です。

最初の質問だった画像の表示と、各種データ(質問時、画像保存が別物とは知りませんでした)のセーブ&ロードさえ出来れば、
後はどうにでもなると踏んでいたので、それらについてだけ、こちらで質問してしまいました。

テキストを表示したり、プレイヤーキャラクターを動かしたり、
まだ簡易版ですがワールドマップの自動生成させたり、
いわゆるNPCが動くプログラムなどは、既に組んでいます。

後はここだけなんです、問題は。

スレの皆さんを不快にさせてしまい、申し訳ありませんでした。

310デフォルトの名無しさん (アウアウウー Sa19-gByX [106.146.111.199])2022/01/13(木) 12:34:36.45ID:v0PpJSuUa
やる気はあるみたいだし不快って程じゃない
でも何がしたいのかよく分からない

保存する画像はユーザーがアップロードするの?それともcanvasに描いた内容を変換するの?
元々サーバーにある画像をわざわざDBに入れるとしたら理由が分からない

311231 (スプッッ Sd03-Ylb5 [1.75.208.200])2022/01/13(木) 15:14:42.78ID:EndGOLp+d
>>310



こちらの動画を参考に、自分なりに考えてやった結果が >>296 >>229 なんですよね。
他にやりようある、ありそうってのはわかるんですが、上手く行かないです。

312デフォルトの名無しさん (ワッチョイ c55f-Krhj [14.11.8.0 [上級国民]])2022/01/13(木) 15:18:53.58ID:BdYH6d7w0
>>309
こっちも口調が強くなってすまんな
>最初の質問だった画像の表示と、各種データ(質問時、画像保存が別物とは知りませんでした)のセーブ&ロードさえ出来れば、
今やりたい事は
①データをセーブする(localstorageまたIndexedDB)
②①で保存したデータを読み込んで、セーブした時の状態に戻す
っていう事でいいかな?
だとすると、なおさら画像をDB等に保存したい理由が分からない

もしかしてマップとかプレイヤーの『画像データ』をDBに書き込まないと
ロードした時に復元できない、って思ってる?

313231 (スプッッ Sd03-Ylb5 [1.75.208.229])2022/01/13(木) 16:01:24.15ID:Pj0bwTK9d
>>312
いえ、こちらこそ、気を遣わせて申し訳ありません。

>もしかしてマップとかプレイヤーの『画像データ』をDBに書き込まないと
>ロードした時に復元できない、って思ってる?

そのものズバリでした。
先ほど >>310 さんのレス見て、ん? とは思ったのですが、
やっぱり画像ってセーブとかロードとかするものじゃないんですね。

314231 (スプッッ Sd03-Ylb5 [1.75.208.229])2022/01/13(木) 16:03:06.44ID:Pj0bwTK9d
あと、今やりたいことはまさしくそれです。

315デフォルトの名無しさん (ワッチョイ c55f-Krhj [14.11.8.0 [上級国民]])2022/01/13(木) 16:13:19.06ID:BdYH6d7w0
>>313
よほど特殊な事情が無い限り、DBに画像データを書き込むってことはないな……

例えばマップデータだったら、動画見てると配列で定義してるよね
逆に言えば、その配列情報さえあれば、同じマップを生成する事が出来るからそれだけ保存すれば良い
そうすれば画像データよりも格段に軽い状態で保存できる
プレイヤーの位置情報とかも、座標データを書き出せばそこから位置が復元できる

で、実行環境で出来るか分からんけど
直接サーバー上にファイルを書き出せるなら、localstorageやIndexedDBに拘らなくても
極端な話、テキストとかJSONとかで書き出して
ロードする時にはそのファイルからデータを読み込んで、復元させるっていう方法も取れる

316231 (スプッッ Sd03-Ylb5 [1.75.208.229])2022/01/13(木) 16:44:42.35ID:Pj0bwTK9d
皆様、ありがとうございました。

ここに来るのがこれで最後になるよう、頑張ってみようと思います。

317デフォルトの名無しさん (ワッチョイ 23f0-4goK [61.45.110.150])2022/01/13(木) 20:06:01.17ID:Dm2SSKhE0
WebSockサーバーと接続し、データを受信したら次のデータを要求する様な流れで、
泥のChromeと比べてPCのChromeとEdgeは物凄く遅く、泥と比べて1/5程度の速度なのですが
configで実行速度的な物を設定出来るのでしょうか

泥は4.1の化石でもPCよりずっと早いです

318デフォルトの名無しさん (ワッチョイ 0332-Cwx9 [133.207.66.224])2022/01/13(木) 22:50:17.84ID:QIlO/ODF0
>>317
Chromeの開発ツールで通信速度・CPU性能を意図的に遅くすることができます。
「Chrome Network Throttling」「Chrome CPU throttling」辺りで情報が出ます。

319デフォルトの名無しさん (ワッチョイ 0b2c-EgL+ [153.136.94.40])2022/01/13(木) 23:29:03.91ID:Ia/gMc7B0
画像データは、各マス目の画像の番号の並びを保存する

例えば、1は道路・2は山・3は川とか、
さらに、1~3の画像を保存するか、保存せずにサーバーから送るか

1,2,1
1,3,1
1,3,3

JavaScript のゲームエンジンは、Pixi.js ベースのPhaser とか。
C# なら、Unity とか

このイタリア人はPhaserで、461 の記事を書いている
https://www.emanueleferonato.com/

320デフォルトの名無しさん (ワッチョイ c55f-Krhj [14.11.8.0 [上級国民]])2022/01/14(金) 03:35:28.27ID:2MXtaXlm0
>>316
頑張れよー
次に来る時は質問の回答者になれる事を祈ってるわ

321231 (スプッッ Sd03-Ylb5 [1.75.230.170])2022/01/15(土) 10:23:00.28ID:S4wDIFSqd
たった二日で戻ってきてしまい申し訳ありません。知恵をお貸しいただけたら幸いです。

【環境】
Android10 F-51A
Chrome 93.0.4577.62

【エラーメッセージ】
DOMException { stack: "Error: Failed to execute 'transaction' on 'IDBDatabase': One of the specified object stores was not found.↵ at IDBOpenDBRequest.openReq.onsuccess (http://localhost:2435/storage/emulated/0/index.html:63:22)" }

【期待する結果】
データベースかオブジェクトストアを増やしたいです
index? を増やす? のは試してみましたが、自分では上手く行きませんでした。

【サンプルコード】
https://jsbin.com/zelonizugu/edit?js

322デフォルトの名無しさん (アウアウウー Sa19-gByX [106.146.69.221])2022/01/15(土) 10:52:09.59ID:nH/3h8nXa
かたくなにライブラリを使おうとしない理由はなに?
それだけ教えて

323231 (スプッッ Sd03-Ylb5 [1.75.230.170])2022/01/15(土) 10:57:45.01ID:S4wDIFSqd
>>322
気持ち悪いからです。

いや、ネタとか煽ってるとかじゃなく、本当にです。なんか気持ち悪いんです。

324デフォルトの名無しさん (ブーイモ MMd9-q/K3 [202.214.231.194])2022/01/15(土) 11:44:06.71ID:hsRAWFnHM
せめてライブラリのコードを読んでマネしてみるとか

325デフォルトの名無しさん (ワッチョイ 2361-2G4o [61.214.181.68])2022/01/15(土) 13:39:49.54ID:XtDGDCrq0
createObjectStoreだけしてcreateIndexしてない
画像データそのままぶっこむとかあほみたいなことする必要なくなった?んだし
データベースの基本が分かってないならlocalStorageに戻れば?

326231 (スプッッ Sd03-Ylb5 [1.75.198.160])2022/01/15(土) 14:22:56.89ID:+L4WFDi5d
ライブラリ? とか見ても正直把握しきれず困っていましたが、力業で何とかなりました。

お世話になりました。ありがとうございました。

327デフォルトの名無しさん (ワッチョイ c55f-Krhj [14.11.8.0 [上級国民]])2022/01/15(土) 14:23:41.37ID:gRCv6ifL0
>>321
Qitaの記事そのままコピーしてもそら動かんだろwwww
やりたいならMDNみたいなちゃんとしたチュートリアルからやれ
https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB

あと何度も言うが、なるべく最小の形で実装して
細かく試しながらやれよ、動かないコードをツラツラ書いてもしょうがないだろ

328デフォルトの名無しさん (ワッチョイ 0332-Cwx9 [133.207.66.224])2022/01/15(土) 15:38:38.42ID:ZBFGEo1/0
>>231
問題がぐちゃぐちゃに絡み合ってるなこれ。
a. indexedDB.open() が複数回呼ばれている(dbVersionの値もどうなるか怪しい)
b. storeName / data が途中で上書きされている(他の変数も軒並み上書きされてる)

a. により、onupgradeneeded とか db.createObjectStore の考え方がぐちゃぐちゃになる(DBのバージョン管理が全くできていない)
b. により、想定外の挙動になっている。("itemStore"を2回作ろうとしている。プライマリキーが不正になってる)

次のように変更すれば、動くと思う。
indexedDB.open() が1つになるように書き換える。(dbVersionを意識して書く)
var を使用しないように書き換える。 const を積極的に使うようにする。(const が無理な場合のみ let を使用する)

正直、 localStorage 使う方がいいと思うぞ。localStorage で容量が足りないならば、保存するデータから考え直したほうがいい。

>>322
このスレ、ライブラリの質問禁止になってる(>>1 参照)から、スレ的にはライブラリ使わないでいいと思うぞ

329231 (スプッッ Sd03-Ylb5 [1.75.198.160])2022/01/15(土) 15:58:17.33ID:+L4WFDi5d
>>327
自分もそのサイト参考にしたいんですが、おま環かわからないんですが、よくフリーズするんですよ。
今繋げたんですが、やっぱりこうなりました。

+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚

>>328
アドバイスありがとうございます。
とても助かりました。

330デフォルトの名無しさん (ワッチョイ 8d5f-PF+u [14.11.8.0 [上級国民]])2022/01/15(土) 23:03:48.55ID:gRCv6ifL0
>>329
こういうと元も子もないないけど、
初学者なら一回ちゃんとPC環境で落ち着いて開発した方が良くないか?
PC版開発⇒Android環境で動作するようにテスト&修正っていう方がやりやすいぞ
(MDNのサイトをAndroidで見てる辺り、ちょっと開発環境が気になった)

331デフォルトの名無しさん (ワッチョイ 6b2c-yR06 [153.136.94.40])2022/01/15(土) 23:42:23.10ID:iJzr35B10
>1 に書いてある、
>(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。

たぶん、これは元々無かったのに、荒らしが勝手に入れた。
荒らしはテンプレを勝手に改変して、自分が有利な話題だけに絞る。
自分が嫌な話題をさせないように邪魔する

荒らしは必ず、2回以上書き込んで複数人いるように思わせる。
それで、議論を自分が有利な方向へ持っていく

Python のすべてのスレのテンプレも、荒らしが改変している。
>・当スレにRubyのソースコード類を書くことを禁ず
>・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
>・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨

テンプレ荒らし。
ずっと、荒らしがスレを立てて、テンプレを毎回改変してくる

それをそのまま使っちゃいけない。
必ず削除するか、別のスレを立て直す

この辺の対策は、漏れらは散々やってきた

332デフォルトの名無しさん (ブーイモ MMf1-n9Fx [210.138.179.69])2022/01/15(土) 23:53:50.82ID:6cYxC8yoM
そこでつまづいてるならライブラリ使った方がいいと思うぞ
一応コピペしたら使えるlocalforageのテストコード貼っとくから
あくまでテストコードだからPromise.allとか使ってないけど
https://pastebin.com/f5FtchSD

333331 (ワッチョイ 6b2c-yR06 [153.136.94.40])2022/01/16(日) 01:28:59.06ID:RG8YDX1E0
初心者は、Ruby, jQuery, Lodash みたいな簡単な言語・ライブラリなどを使うと、
時間を削減できて、その分を勉強に回せる

だから荒らしは、それを出来ないように制限してくる。
初心者が勉強して上達するのが嫌なんだろう。
自分が不利になるから

それで、あちこちのスレで、ずっとRuby, jQuery, Lodash 禁止のテンプレを作っている。
漏れらは散々、それらの荒らしと戦ってきた

334デフォルトの名無しさん (ワッチョイ 8d5f-+/2w [14.10.58.225])2022/01/16(日) 02:54:37.36ID:v/bsDKuq0
どの言語でもRubyをゴリ押しするアホが居たからだろ。

335デフォルトの名無しさん (ワッチョイ 8d5f-PF+u [14.11.8.0 [上級国民]])2022/01/16(日) 03:56:51.32ID:tdI2bixr0
RubyガイジがRubyスレ以外の言語で現れるからだろ
しかも質問に対して「Rubyでは~」って言ってRubyのコード貼り付けるし
言い方が悪いけど、Ruby布教したいなら大人しくRubyスレだけでやってくれよ

336デフォルトの名無しさん (ワッチョイ e336-+/CL [123.48.234.219])2022/01/16(日) 06:23:17.74ID:69vcad0C0
何でネットに仲間意識があるんだろう?
不思議だな、リアルに仲間が居ないのか?

337デフォルトの名無しさん (ワッチョイ 8d5f-xVqy [14.11.194.224])2022/01/16(日) 06:38:19.21ID:Lkv6MjG/0
前も言ったがrubyスレでpythonの話してもいいっていうなら考える余地がある
現状自分に都合のいい事押し付けてるだけ

338デフォルトの名無しさん (ワッチョイ cd10-76Y4 [180.12.82.129])2022/01/17(月) 01:32:28.96ID:2Ob1kDrm0
element.addEventListener(

"toucstart",
function(e){

setTimeout(

function(){

document.addEventListener('touchmove', disableScroll, { passive: false });

}
,
2000

);

}

);

function disableScroll(e) {
e.preventDefault();
}

elementを2秒以上タッチしたらスクロール禁止にしたいんだけどうまくいきません
どうすればいいんですか?

339デフォルトの名無しさん (ワッチョイ cd10-76Y4 [180.12.82.129])2022/01/17(月) 01:33:54.40ID:2Ob1kDrm0
訂正:touchstartです

340デフォルトの名無しさん (ワッチョイ 6b2c-Nrkm [153.136.94.40])2022/01/17(月) 01:52:23.96ID:fRpijKvH0
長押しか

Lodash に、そういう関数が無いか?

341デフォルトの名無しさん (ワッチョイ 0b01-frwW [1.112.121.98])2022/01/17(月) 02:08:44.57ID:HXNtZOIm0
>>338-339
touchstartとtouchendのタイムスタンプの差分が2秒以上か確認すれば良い
setTimeoutは不要

342デフォルトの名無しさん (ワッチョイ cd10-pleP [180.12.82.129])2022/01/17(月) 08:35:06.65ID:2Ob1kDrm0
>>341
2秒以上押している間処理実行という場合はどうしたらいいんですか?

343デフォルトの名無しさん (ワッチョイ 0b01-frwW [1.112.121.98])2022/01/17(月) 11:30:42.13ID:HXNtZOIm0
>>342
「toucstartからtoucendまでの間」が押している間

344デフォルトの名無しさん (ワッチョイ cd10-pleP [180.12.82.129])2022/01/17(月) 12:20:33.86ID:2Ob1kDrm0
>>343
touchendだとタッチを離さないとだめなので
タッチを離さないで2秒以上押しっぱなしという意味です

345デフォルトの名無しさん (ブーイモ MM4b-n9Fx [163.49.201.49])2022/01/17(月) 12:35:37.47ID:46yYb1/oM
だからtouchstartから2秒以内にtouchendが無ければ長押し判定でしょ

346デフォルトの名無しさん (ワッチョイ 0b01-frwW [1.112.121.98])2022/01/17(月) 13:25:59.68ID:HXNtZOIm0
>>344
touchstartで処理を開始し、touchendまたは2秒後に処理を停止すれば良い
ボインタ位置も見るならtouchmoveで別の場所に移動した時にも処理を停止すれば良い

347デフォルトの名無しさん (ワッチョイ 1d61-pjxc [60.38.62.97])2022/01/17(月) 14:12:06.81ID:KLYqBwLr0
スクロール始まる前のtouchmoveならpreventDefaultでスクロール禁止できるけど
一旦スクロール開始しちゃったら後のtouchmoveでpreventDefaultしてもスクロールキャンセルできない臭い

348デフォルトの名無しさん (ワッチョイ 4332-sTIO [133.207.66.224])2022/01/17(月) 14:43:40.87ID:/IOfqNlx0
>>338
こゆこと?
指がtouchstartから2秒以上同じ位置に停止していた場合、その後touchend(指を離す)までに発生したtouchmove(スクロール)を中止する。

var element = document.getElementById('element');
let timer, flag = false;
element.addEventListener('touchstart', function(event) {
timer = setTimeout(function() { flag = true; }, 2000);
});
element.addEventListener('touchend', function(event) {
timer = clearTimeout(timer);
flag = false;
});
document.addEventListener('touchmove', function(event) {
if (flag) { event.preventDefault(); }
else if (timer) { timer = clearTimeout(timer); }
}, {passive:false});

>>347
touchmoveが一旦開始すると以降キャンセル不可になるみたいだな

349デフォルトの名無しさん (ワッチョイ cd10-pleP [180.12.82.129])2022/01/17(月) 18:08:34.74ID:2Ob1kDrm0
>>344
if(touch_end_time - touchi_start_time >= 2){関数呼び出し}ってことかな?
>>346
なるほどー
>>348
だいたいそういうことです

350デフォルトの名無しさん (ブーイモ MM4b-R5ER [163.49.207.124])2022/01/17(月) 18:35:14.87ID:S5612HsoM
touchstartでグローバル変数にsetTimeoutを格納した上で、touchendでclrarTimeoutすれば、clearされない場合にのみdisableScroll()が実行される

351デフォルトの名無しさん (アウアウウー Sa21-jKne [106.146.48.51])2022/01/17(月) 20:48:15.45ID:n9KL/cV4a
同じ要素が複数あるときに、スクロールした場所だけにactiveを付与する方法ってないでしょうか?

例えば、pタグが等間隔に10個ほど並んでいて、その場所までスクロールしたらそのタグだけにaddClassを実行。それをスクロールする度に実行するという感じです。

該当のタグ全てに連番でclassを振るという方法から始めてみましたが、「今スクロールが到達しているpタグだけにaddClass」という
振り分けが分からず苦戦しております。
どうかお知恵をお借りできたら嬉しいです

352デフォルトの名無しさん (ワッチョイ 1d61-pjxc [60.38.62.97])2022/01/17(月) 21:02:08.36ID:KLYqBwLr0
>>351
IntersectionObserver

353デフォルトの名無しさん (ワッチョイ 6b2c-Nrkm [153.136.94.40])2022/01/17(月) 23:24:28.34ID:fRpijKvH0
「javascript スクロールしたら表示」で検索!

jQuery のscrollTop() を使うのかな?

354デフォルトの名無しさん (ワッチョイ 4502-jKne [106.167.62.121])2022/01/17(月) 23:52:07.20ID:sHRIiBJ+0
>>352-353
どうもです。

>>353
一応それやってみてるんですけど、その方法だと対象のセレクターが複数ある時に使えなくて・・・

355デフォルトの名無しさん (ワッチョイ 6bdb-9BXF [217.178.96.78])2022/01/18(火) 16:54:34.98ID:k8xAul1v0
ユーゲンガルグ関数がわからん。

356デフォルトの名無しさん (スフッ Sd03-oY3f [49.106.200.84])2022/01/18(火) 17:00:08.36ID:qIbLvF83d
めちゃくちゃ素人質問で申し訳ないんだけど複数のbuttonがある状態で押されたボタンのvalue要素を取得する事ってできる?
他との問題でボタンにidを付与出来ないからclassとnameを使ってなんとかしようとしてたんだけどサッパリわからん……

357デフォルトの名無しさん (ワッチョイ 7501-frwW [114.48.57.211])2022/01/18(火) 18:05:16.94ID:LpXG9iMK0
>>356
event.target.value

358デフォルトの名無しさん (ワッチョイ 4332-sTIO [133.207.66.224])2022/01/18(火) 18:14:12.29ID:i9X1I8m+0
>>356
this.value

359デフォルトの名無しさん (ワッチョイ 056e-KU5Q [138.64.80.208])2022/01/18(火) 19:33:28.72ID:J9BuAn5e0
javascriptでマウスクリックできますか?

360デフォルトの名無しさん (ワッチョイ 7501-frwW [114.48.57.211])2022/01/18(火) 20:52:58.76ID:LpXG9iMK0
>>359
ボタン等の特定要素にはclickメソッドがある
https://developer.mozilla.org/ja/docs/Web/API/HTMLElement/click

clickイベント発火でよければ
https://developer.mozilla.org/ja/docs/Web/API/EventTarget/dispatchEvent

361デフォルトの名無しさん (ワッチョイ 6b2c-Nrkm [153.136.94.40])2022/01/18(火) 22:37:22.43ID:JAqSdPQV0
>>354
>対象のセレクターが、複数ある時に使えなくて

HTML,CSS,Javascript スクロールしたらふわっと表示(jQueryなし)
https://notetoself-dy.com/javascript-scroll/

このサイトでは、すべてのup クラスが付いた要素を、
1つずつループして、show クラスを付けている

<div class="up op">表示1</div>
<div class="up op">表示2</div>

362デフォルトの名無しさん (ワッチョイ fbcb-9BXF [223.132.4.34])2022/01/20(木) 21:45:57.61ID:RhIW6qPa0
javascriptで特定のクラス内の文字列をカットしたいです。
.containerの子要素である、.textをターゲットにしたいです。


しかし、container外にも.textがある可能性も考えられます。
ターゲットをcontainer内に絞るには、どんな関数を組めばいいでしょうか?
https://jsfiddle.net/bgegg/gf324bha/2/

363デフォルトの名無しさん (ワッチョイ 1d61-pjxc [60.38.62.97])2022/01/20(木) 22:05:50.35ID:NuVLsXYX0
function textCutting(selector) {
const limited_number = 7;
document.querySelectorAll(selector).forEach(node => {
node.textContent = node.textContent.trim().substr(0, limited_number);
});
}

textCutting("#container > .text");

364デフォルトの名無しさん (ワッチョイ fbcb-9BXF [223.132.4.34])2022/01/21(金) 19:52:13.30ID:rIwZ3iU60
>>363
ありがとうございます。返信忘れてました。

引数にcontainerを入れておきたいのですが、クラスである場合もあります。
クラスかidどちらでも取ってこれる関数ってありましたか?

365デフォルトの名無しさん (ブーイモ MMf1-R5ER [210.138.176.220])2022/01/21(金) 19:59:06.53ID:SSxUhBiBM
>>364
釣りなのか?

366デフォルトの名無しさん (ワッチョイ 2d01-frwW [36.240.122.28])2022/01/21(金) 20:07:10.92ID:9UlpI2W40
>>364
コードの関数名でぐぐって調べないからそういう質問がでてくる >querySelectorAll

367デフォルトの名無しさん (ワッチョイ fbcb-9BXF [223.132.4.34])2022/01/21(金) 20:35:43.67ID:rIwZ3iU60
そうでした すみません

上の例でいうselecterは親要素のセレクタのことだったんですね

368デフォルトの名無しさん (ワッチョイ 637d-fkY6 [157.65.232.142])2022/01/21(金) 21:49:18.45ID:g1zNjN8q0
一次配列をmatchメソッドみたいに正規表現で検索して、適合するすべての値を返すのってどう書けばいいんですか?

[ あ,い,う,え,お,あか,いし ] ←この配列を/[あい].*?/で検索して[ あ,い,あか,いし ]みたいな結果を得たい
joinメソッドで文字列化してmatchメソッドつかわずに「一次配列を検索」したいんです

369デフォルトの名無しさん (ワッチョイ 6361-pjxc [221.189.66.149])2022/01/21(金) 21:55:09.36ID:b7lSBqdq0
>>368
["あ","い","う","え","お","あか","いし"].filter(s => /[あい].*?/.test(s));

370デフォルトの名無しさん (ワッチョイ 2d01-frwW [36.240.122.28])2022/01/21(金) 21:57:35.84ID:9UlpI2W40
>>368
filterとtest

371デフォルトの名無しさん (ワッチョイ 637d-fkY6 [157.65.232.142])2022/01/21(金) 22:12:34.42ID:g1zNjN8q0
>>369
>>370
おおおお!ありがとうございます助かりました

372デフォルトの名無しさん (ワッチョイ fbcb-9BXF [223.132.4.34])2022/01/22(土) 14:09:45.81ID:NNleZLfU0
要素内から複数の要素(例えば同じクラス名を持つ要素)などを取ってくる場合、htmlcollectionとnodelistのどちらを使うんでしょうか?
どちらということはなく、nodelistの下位にある構造がhtmlcollectionかなとも考えています。

373デフォルトの名無しさん (ワッチョイ 2d01-frwW [36.240.122.28])2022/01/22(土) 14:12:22.41ID:tKSIbGor0
>>372
liveかそうでないかを意識すれば、どちらでも良い
プロパティ、メソッドも少し違う

374デフォルトの名無しさん (ワッチョイ fbcb-9BXF [223.132.4.34])2022/01/22(土) 14:44:09.28ID:NNleZLfU0
https://ideone.com/vndbec
+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚

まず親要素を取り、その後子要素にアクセスしようとしたんですが、foreachは使えないみたいです。
childrenが配列になっていないからかなと思うんですが、インスペクタ見ると配列にはなっているようですが、なぜでしょうか?

>>373
ではhtmlcollection使うことにします。なんとなくとっつきやすかったので。

375デフォルトの名無しさん (ワッチョイ 2d01-frwW [36.240.122.28])2022/01/22(土) 14:58:17.72ID:tKSIbGor0
>>374
HTMLCollectionは配列じゃない
forEachも持ってない
使えるメソッドとプロパティを確認すること

376デフォルトの名無しさん (ブーイモ MM4b-R5ER [163.49.215.211])2022/01/22(土) 15:34:49.54ID:SQae85PjM
childrenに格納されているhtmlCollectionにはforEachメソッドがないので、下記のように書く必要がある
[...children].forEach()

377デフォルトの名無しさん (ワッチョイ fbcb-9BXF [223.132.4.34])2022/01/22(土) 15:50:34.18ID:NNleZLfU0
>>375
nodelistに使うものですよね。ありがとうございました。

>>376
ふつうにlengthとってforで回してもいいんですよね。
ソッチのほうが直感的にわかりやすいかなと。

378デフォルトの名無しさん (ワッチョイ fbcb-9BXF [223.132.4.34])2022/01/22(土) 15:56:19.54ID:NNleZLfU0
>>376
これは何という記述ですか?
ただの、配列化でしょうか?

379デフォルトの名無しさん (ワッチョイ 4332-sTIO [133.207.66.224])2022/01/22(土) 16:13:03.92ID:LEmRhRzh0
>>378
スプレッド構文

380デフォルトの名無しさん (ワッチョイ fbcb-9BXF [223.132.4.34])2022/01/22(土) 16:45:48.19ID:NNleZLfU0
>>379
どうも、見慣れない記述だったので。
こういうのはふつうにforループ回したほうがわかりやすいんでしょうか?
javascript特有の記述というのが難しくて

381デフォルトの名無しさん (ブーイモ MM4b-R5ER [163.49.211.231])2022/01/22(土) 16:57:04.97ID:cpTU2V8CM
特別な理由がない限り、letやforの利用を控えることをオススメする
無意味な状態や副作用をできるだけ排除する構成を心がけよう

382デフォルトの名無しさん (ワッチョイ 2d01-frwW [36.240.122.28])2022/01/22(土) 17:05:10.48ID:tKSIbGor0
>>380
あなたは「何を使うべきか」よりも「どんな機能なのか」を把握することから始めた方が良い
NodeListとHTMLCollectionの選択でHTMLCollectionを選択したかと思えば、HTMLCollectionを理解してないから使いこなせない
理解する前に選択するからそうなる

俺はHTMLCollectionではfor文を使ってるが、特徴を理解していれば何の問題もない
NodeListならfpr-ofを使ってもよい
理解さえしていれば、自ずと選択が出来る
NodeList、HTMLCollection、スプレッド構文、..,etc を理解してから悩むべきだ

383デフォルトの名無しさん (ワッチョイ 2d01-frwW [36.240.122.28])2022/01/22(土) 17:07:49.25ID:tKSIbGor0
× NodeListならfpr-ofを使ってもよい
○ NodeListならfor-ofを使ってもよい
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/for...of

384デフォルトの名無しさん (アウアウクー MM99-nEfH [36.11.228.57])2022/01/22(土) 17:17:07.24ID:JjDEqDMvM
>>381
普通のforで回すよりfor...inとかfor...ofで回した方が要素すぐ扱えて記述少なくて済むのは置いといて
letはvarより使わない方が良いの?
それともforのインデックス用の i を使わない方がシンプルで良いという限定的な条件での話?

385デフォルトの名無しさん (ワッチョイ 2d01-frwW [36.240.122.28])2022/01/22(土) 17:27:40.96ID:tKSIbGor0
>>381
副作用の話は俺も分からなかった
for文に副作用があるとは思えないが

386デフォルトの名無しさん (ブーイモ MM4b-R5ER [163.49.211.231])2022/01/22(土) 17:37:01.92ID:cpTU2V8CM
>>384
現状のvarは「互換性のために残されている」のであって、利用禁止が大前提
その上で、どうしてもconstにできない特別な理由がある場合にだけletを使うってこと

さらにその延長で、forについても使わずに済むなら使わない方が良いってこと

387デフォルトの名無しさん (ワッチョイ cdad-9BXF [110.129.161.126])2022/01/22(土) 17:56:17.90ID:QY+Rk2d60
letもforもどんどん使いなさい

388デフォルトの名無しさん (ワッチョイ 2d01-frwW [36.240.122.28])2022/01/22(土) 17:59:22.62ID:tKSIbGor0
理由不明な禁止ルールを受け入れるようになると、赤の他人の意見を鵜呑みにしておかしなことになるからお勧めはしない
非推奨理由を読んで、受け入れるか判断するのがいいと俺は思う

389デフォルトの名無しさん (アウアウアー Saab-uYS0 [27.85.205.139])2022/01/22(土) 19:12:13.08ID:a9ljOduXa
>>386
なるほど了解。
普通のforで回して処理するよりsomeとかreduceとかのほうが何の処理しようとしてるかわかりやすいしね。
varはブロック内からでもグローバル変数になるからどこから変数内容変更されてるか分かりにくくなり易いから良くないね

390デフォルトの名無しさん (ワッチョイ 1bcb-4V6Q [223.132.4.34])2022/01/22(土) 19:44:53.36ID:NNleZLfU0
>>382
はい

391デフォルトの名無しさん (ワッチョイ 1bcb-4V6Q [223.132.4.34])2022/01/22(土) 19:52:02.18ID:NNleZLfU0
ややこしいのでfor文使うようにします(´・ω・`)、、、

392デフォルトの名無しさん (ワッチョイ 1bcb-4V6Q [223.132.4.34])2022/01/22(土) 19:57:06.18ID:NNleZLfU0
あっ、for of いいですね。
htmlcollectionでなぜforeachが駄目なのか謎ですが。

393デフォルトの名無しさん (ワッチョイ 1bcb-4V6Q [223.132.4.34])2022/01/22(土) 20:26:37.27ID:NNleZLfU0
vscodeについて質問です。
javascriptの補完は完全ではないのでしょうか?
以下のコードのtextContentの部分は候補に出ません。

https://ideone.com/VWu28k

394デフォルトの名無しさん (ブーイモ MM6b-jmS0 [163.49.203.185])2022/01/22(土) 20:44:09.65ID:DzShGNE/M
ここはvscodeスレじゃない
一応答えておくとjavascriptは動的型付けなので常に補完が出る訳じゃない
そういうのを求めてるならtypescriptを使う

395デフォルトの名無しさん (ブーイモ MM6b-hXQo [163.49.210.212])2022/01/22(土) 20:47:52.03ID:yE/sDV/tM
今回は「使えないみたいです」って聞き方ではないのねw
MDNをよく読んだ上で、実際にどう動くのかをブラウザのコンソールで繰り返し施行するといい

396デフォルトの名無しさん (ワッチョイ f501-weGE [126.3.43.63])2022/01/22(土) 21:59:01.76ID:0B2OkF2o0
>>392
HTMLCollectionはArrayのPrototypeを持ってないからforEachはつかえない。
HTMLCollectionでforEachを使いたいなら、Array.Prototype.forEach.callとか。

397デフォルトの名無しさん (ワッチョイ 1bcb-4V6Q [223.132.4.34])2022/01/23(日) 09:03:46.77ID:ltsaqaCQ0
>>396
どちらも配列だと思うんですが、なぜhtmlcollectionだけ使えないのかが分かりません

398デフォルトの名無しさん (ワッチョイ 1bcb-4V6Q [223.132.4.34])2022/01/23(日) 09:04:54.18ID:ltsaqaCQ0
javascriptを書くとき、関数名などに続けて波括弧を書いたほうがわかりやすいと思いますか?

function func(){

console.log("hoge");

}
以下のようにしたほうが構造が分かりやすくないですか?

function func()

{

console.log("hoge");

}

399デフォルトの名無しさん (アウアウウー Sa29-IHB+ [106.146.75.129])2022/01/23(日) 09:10:19.94ID:pqnTeOnra
JavaScriptで配列とはArrayのこと
"配列っぽい"ことと"配列である"ことは全然違う

逆に聞くけどどうやって両方配列であると判断したの?

400デフォルトの名無しさん (ワッチョイ 4bcf-X7eg [153.161.201.240])2022/01/23(日) 09:20:24.21ID:qS6ibVNz0
>"配列っぽい"ことと"配列である"ことは全然違う

初めてやる人にはそんなこと思いもよらないだろうしな

401デフォルトの名無しさん (ワッチョイ 1bcb-4V6Q [223.132.4.34])2022/01/23(日) 09:21:45.33ID:ltsaqaCQ0
>>394
そういうものなのですか。
補完が出ないとちと不安で

402デフォルトの名無しさん (ワッチョイ 7501-3f/3 [36.240.122.28])2022/01/23(日) 10:15:35.55ID:h5wOxsBg0
>>398
配列とは new Arrayもしくは [] のこと
new ArrayでforEachを使えるのはプロパティ参照時に Array.prototype.forEachを参照するから
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
プロトタイプチェーンを理解すべき
https://developer.mozilla.org/ja/docs/Web/JavaScript/Inheritance_and_the_prototype_chain

403デフォルトの名無しさん (ワッチョイ 7501-3f/3 [36.240.122.28])2022/01/23(日) 10:16:08.20ID:h5wOxsBg0
>>399
いわんとすることは分かるが、厳密にはArrayは配列ではない
new ArrayをArrayと書くと誤解を招く
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array

404デフォルトの名無しさん (ワッチョイ 4bdb-4V6Q [217.178.96.78])2022/01/23(日) 11:26:44.19ID:cv61Nq9M0

405デフォルトの名無しさん (ワッチョイ 4b2c-z3gx [153.136.94.40])2022/01/24(月) 05:35:59.89ID:VeWznQkJ0
>>362
.container の子要素(子孫を含めない・直下のみ)である、.text は、.container > .text

親と子を、別々に取得するなら、jQuery で、

<div class="aaa">
<div class="xxx">ああ</div>
<div class="yyy">いい</div>
<div class="xxx">うう</div>
</div>

<div class="aaa">
<div class="xxx">111</div>
<div class="xxx">222</div>
</div>

const parents = $( '.aaa' )
// 子の中で、xxx クラスのものだけを取得する
const children = parents.children( '.xxx' )

children.each( function( ) {
console.log( $( this ).text( ) )
} );

これで、ああ・うう・111・222 が表示されて、
「いい」だけは表示されない

初心者は、素のJavaScript(JS)で書かずに、jQueryを使った方がよい。
JSで書くと、可読性も悪いし、バグってばかりで時間を損する

406デフォルトの名無しさん (ブーイモ MMb9-Hf9d [210.138.176.169])2022/01/24(月) 07:11:58.20ID:bR7FKfqoM
ハゲは、素のjQueryで書かずに、Javascript(JS)を使った方がよい。
jQueryで書くと、プログラミングの本質が理解できていないままだし、ハゲてばかりで毛を損する

407デフォルトの名無しさん (ワッチョイ cd33-4V6Q [58.188.87.43])2022/01/24(月) 17:37:07.00ID:LBRFFVWL0
初心者こそjQuery使わずに書くべき

408デフォルトの名無しさん (ワッチョイ 9510-NoeV [180.12.82.129])2022/01/25(火) 18:13:09.23ID:xKqTlXah0
element.addEventListner(
"click",
function(e){
clearInterval(timer_id);
var timer_id = setInterval(test_func,1000);
}
);
このようにクリックしたとき前回起動したsetIntervalを削除して
新しいsetIntervalをセットしたいんだけど、前回のtimer_idが取得できないのでうまくいきません
どのようにすればできますか?

409デフォルトの名無しさん (ワッチョイ 7501-3f/3 [36.240.125.131])2022/01/25(火) 18:53:59.98ID:d2MfevVf0
>>408
handleEventプロパティを持つオブジェクトにタイマーidを保存する

410デフォルトの名無しさん (ワッチョイ f501-Cd+L [126.4.159.20])2022/01/25(火) 20:54:59.74ID:MGjq+ZUh0
JavascriptってJavaより簡単って聞いたけど、html絡んでくるから難しくないですか?

411デフォルトの名無しさん (ブーイモ MM6b-hXQo [163.49.201.11])2022/01/25(火) 21:56:30.40ID:Il9sj+JJM
>>408
下記のようなグローバルオブジェクトを定義しておいて、その要素として保持しよう

const timer = {}:

412デフォルトの名無しさん (ワッチョイ 9510-i5gI [180.12.82.129])2022/01/25(火) 22:43:16.96ID:xKqTlXah0
>>409>>411
できましたありがとー

また質問だけどsetIntervalとwindow.scrollByを使って自動スクロール中に
手動でスクロールするとclearIntervalで自動スクロールを止めるようにしたいんだけど
自動スクロールも手動スクロールもaddEventListner("scroll",function(e){})が発動して
区別をつけることができないんだけどどうすればいいですか?

413デフォルトの名無しさん (オッペケ Sr41-zaZ3 [126.158.250.9])2022/01/25(火) 23:01:22.01ID:5lVpkzkKr
>>410
WebAPI使わなければいいんでない?

414デフォルトの名無しさん (ブーイモ MM6b-hXQo [163.49.201.11])2022/01/26(水) 01:23:00.34ID:I/6zw4/PM
>>412
e.isTrusted で区別できるかも

415デフォルトの名無しさん (ワッチョイ 9510-i5gI [180.12.82.129])2022/01/26(水) 12:30:28.07ID:XmTyDG1O0
>>414
やってみたけど自動でも手動もでtrueだったので判別できませんでした

416デフォルトの名無しさん (ワッチョイ 7501-3f/3 [36.240.125.131])2022/01/26(水) 12:40:07.38ID:9OS9fT5f0
>>412
自動スクロール中のフラグを作成して、フラグ管理すれば良い

417デフォルトの名無しさん (ワッチョイ 4d61-V3GB [122.16.165.244])2022/01/26(水) 13:12:16.31ID:bkHBqHOK0
>>412
wheel, mousedown、keydownイベントで止めるとか

418デフォルトの名無しさん (ワッチョイ 7501-3f/3 [36.240.125.131])2022/01/27(木) 11:57:20.38ID:ZSUaXKzX0
>>417
mousedownはオート・スクロール・モードのことか
https://atmarkit.itmedia.co.jp/fwin2k/win2ktips/759autoscroll/autoscroll.html

2アクション必要だから、モード検知がやや複雑化しそうだな…

---
自動スクロールを検知して、自動スクロール以外を手動スクロール扱いする方向で考えてた
これなら、キーバインド変更されても対応出来る

419デフォルトの名無しさん (ワッチョイ 1301-tVHJ [123.216.166.161])2022/01/29(土) 02:18:01.02ID:/eUfBI510
oninput="value=value.replace(';','1')"

置換元が特定の全角記号(¥:;@等)の場合、置換先の文字が2回入力されます。
書き方の問題ですか?回避方法はありますか?

chromeとedgeで発生しました。
ieでは発生しませんでした。

420デフォルトの名無しさん (ブーイモ MM8d-FKQo [210.138.179.136])2022/01/29(土) 03:13:10.90ID:wMUjEsRbM
KeyboardEvent.isComposingで変換中か判定したらいい

<input id="test">

const elm = document.querySelector("#test");
elm.addEventListener("keyup",(e)=>{
if(!e.isComposing){
elm.value =
e.target.value.replaceAll(";","1")
}
})

421デフォルトの名無しさん (ワッチョイ 8bdb-dw97 [217.178.96.78])2022/01/29(土) 09:47:04.60ID:/uVNTTXR0
>>410
JavaScriptは初心者向けの簡易言語。

422デフォルトの名無しさん (ワッチョイ 13b1-21ac [123.1.38.203])2022/01/29(土) 23:21:16.05ID:vLNLUfHR0
一応入門書を一通り終えたのでelectronでGUI作ろうと思ったら、予想以上に難しくて挫折した。
electron使いの人いる?
いたらどれだけのレベルにならないと作れないか教えて。

423デフォルトの名無しさん (ワッチョイ 8b2c-Cnlt [153.136.94.40])2022/01/30(日) 00:53:12.46ID:8AeUKyTB0
>>419
Node.js で実行したら、1回しか置換されない

inText = 'あい;;ab;;12';
outText = inText.replace(';', '1');

//=> あい1;ab;;12

424デフォルトの名無しさん (アウアウアー Sa8b-67Xn [27.85.207.48])2022/01/30(日) 02:04:42.24ID:acbp/SqRa
>>422
俺はelectron使いじゃないけど今本屋に並んでる2022年3月号の日経ソフトウエアでElectronでデスクトップアプリ開発特集載ってたよ

425デフォルトの名無しさん (ワッチョイ 1301-tVHJ [123.216.166.161])2022/01/30(日) 12:10:56.23ID:5V9R/BtT0
>>420
これだと普通に置換できますね

>>423
環境によるんですかね

結局こうしました。半角の数字と半角のコロンだけ表示。
.replace(/[0-9:]/g,s => String.fromCharCode(s.charCodeAt(0) - 65248)).replace(/[^\:\d]/g,'').replace('::',':');
最後に[::]→[:]
変なやり方だと思うけど:を二回使う事は無いのでとりあえずOK

replaceどうのこうのではなくて、oninputが2回実行されてるみたいです。
oninput="value=value + 'あ'"
特定の全角記号だと「;あ;あ」、全角英字なら「;あ」

426デフォルトの名無しさん (アウアウエー Sae3-Fqt4 [111.239.155.184])2022/01/30(日) 12:57:51.16ID:hMKxlwO1a
querySelector
で帰ってきたelementのメソッドでcloset()だとRoot方向にしか検索できませんがchild方向にelementを検索する方法はありますか?

427デフォルトの名無しさん (ワッチョイ 1333-6jTK [59.190.4.184])2022/01/30(日) 13:01:07.63ID:/oi//KEc0
chiled方向に検索するのがquerySelectorじゃないのですか?

428デフォルトの名無しさん (アウアウエー Sae3-Fqt4 [111.239.155.184])2022/01/30(日) 13:06:33.56ID:hMKxlwO1a
>>427
documentだけじゃなくてelementに対してもquerySelectorメソッドつかえるんですね。ありがとうございます

429デフォルトの名無しさん (ワッチョイ eb01-Yk3C [1.112.121.19])2022/01/30(日) 13:12:27.53ID:y4il4Rjb0
>>428
必要としてるのは :scope か?
https://developer.mozilla.org/ja/docs/Web/CSS/:scope

430デフォルトの名無しさん (ワッチョイ 1333-6jTK [59.190.4.184])2022/01/31(月) 12:50:53.75ID:rc3LWwE50
excelの配列数式などでAND OR の代わりに * + 等を使ったりしていましたが
javascriptの条件式のなかに&&の代わりに*を使った場合、
違いはありますでしょうか。
*だと左辺がtrueであっても右辺も評価するなどするのでしょうか。

431デフォルトの名無しさん (ブーイモ MMcb-9G6j [163.49.200.36])2022/01/31(月) 13:20:30.75ID:QWw3Y16fM
>>430
そんなもん手元のコンソールに打って直接確認した方が早いと思うけど、そうしたくない理由でもあるの?

432デフォルトの名無しさん (ワッチョイ 9161-bU36 [122.16.165.244])2022/01/31(月) 13:34:41.41ID:KJiW2Lya0
だってただの乗算・加算なのだから一連の計算全部しないと結果は出せないもの
文字列だった場合バグの温床になりかねないので素直に論理演算子使っとけ

433デフォルトの名無しさん (ワッチョイ 1333-6jTK [59.190.4.184])2022/01/31(月) 15:13:48.28ID:rc3LWwE50
ありがとうございます

434デフォルトの名無しさん (ワッチョイ 9956-6WVI [124.25.53.64])2022/02/01(火) 14:41:29.69ID:wfvu5dwy0
> if(undefined){console.log("undefined is true");} else {console.log("undefined is false");}
undefined is false
undefined

> if(!undefined){console.log("!undefined is true");} else {console.log("!undefined is false");}
!undefined is true
undefined

> if(true+console.log("exec")){console.log("true"); }else{console.log('false')}
exec
false
undefined

> if(console.log("exec")*console.log("exec2")){console.log("true"); }else{console.log('false')}
exec
exec2
false
undefined

論理演算子的な打ち切りはしてないね。普通に算術演算子だわw

435デフォルトの名無しさん (ワッチョイ 9956-6WVI [124.25.53.64])2022/02/01(火) 14:46:27.83ID:wfvu5dwy0
普通に手打ちしてたら、空白とかクォートとかセミコロンの打ち方に全然整合性ないでやんの、俺w

436231 (スッップ Sd33-aqeu [49.98.171.121])2022/02/04(金) 16:32:44.06ID:1UhKSGd+d
■質問テンプレート
【環境】Android10 F-51A
Chrome 93.0.4577.62

【何をしたのか】セーブ(サンプルコードの一番下の方で実行)を2回以上実行すると、ロード出来なくなる。

【エラーメッセージ】出ません。

【期待する結果】セーブ、ロードが正常に行われるようにする。

【サンプルコード】
https://ideone.com/BJQ4qV

懲りずにお邪魔します。
解決案など思いついた方いらっしゃったら、よろしくお願いします。

今回でアドバイスを得られない、あるいは私の理解が及ばなかった場合、ココナラなどの利用も検討しています。
解決案は知らんけど、有償で良いならこのサイトがおすすめ、みたいな情報も頂けたら嬉しいです。

437デフォルトの名無しさん (ワッチョイ 8b7b-hTuy [153.185.174.10])2022/02/04(金) 17:05:32.54ID:eOennQVj0
全然見てないしよくわからんけど、なんでセーブとロードを繰り返してるの?

438デフォルトの名無しさん (ブーイモ MMeb-bj7G [133.159.149.63])2022/02/04(金) 17:14:57.96ID:kUcQ1Y3lM
>>436
1. 非同期の基礎を勉強する
2. コールバックAPIをPromisifyしてawaitする

439デフォルトの名無しさん (ワッチョイ 9161-bU36 [122.16.165.244])2022/02/04(金) 17:20:39.40ID:5yD7H7/00
>>436
書き込み、読み込み後にデータベースを閉じてないから2回目のdeleteDatabaseが出来ずに永遠に待ってる
データベースである必要ないならストレージ使えってば

440231 (スッップ Sd33-aqeu [49.98.171.121])2022/02/04(金) 17:21:33.29ID:1UhKSGd+d
>>437
最初のセーブでは、ロード成功するんです。
2回目のセーブをすると、ロードに失敗するんです。
一度目の処理では成功してるけど、二度目で失敗してるのを見て貰うために、今回のコードでは繰り返しにしました。

441デフォルトの名無しさん (ブーイモ MMcb-FKQo [163.49.214.185])2022/02/04(金) 17:22:14.91ID:58zz3a0tM
まず変数はletかconstを使って明示的に宣言する

あと非同期処理の勉強をした方がいい
url先のコードは処理が行われる順番を考慮してない
コードで例示すると
const elm = document.querySelector("#input")
let mail;
elm.oninput = (e) => {
mail = e.target.value;
}
console.log(mail);
みたいなコードを書いてる
oninputはすぐに呼び出されないのに先にmailを参照しているからバグる
他にも色々ありそうだけど自分がパッと見つけられた間違いはこれだけ
(文字が全角になってるのはCloudflare対策)

442デフォルトの名無しさん (ブーイモ MMdd-bj7G [202.214.230.249])2022/02/04(金) 17:23:09.66ID:0CWz3hfAM
変数の宣言方法と変数のスコープについても学んで下さい
”use strict”;使うように

443231 (スッップ Sd33-aqeu [49.98.171.121])2022/02/04(金) 17:27:11.67ID:1UhKSGd+d
>>439
実現出来るかわからないのですが、理想通りに事が進むと、主にマップデータで結構容量食いそうで心配なんです。
そういう心配事は取っ払ってから制作したいもので。転ばぬ先の杖って言うんですかね。

444231 (スッップ Sd33-aqeu [49.98.171.121])2022/02/04(金) 17:27:20.65ID:1UhKSGd+d
みなさま

445231 (スッップ Sd33-aqeu [49.98.171.121])2022/02/04(金) 17:28:39.30ID:1UhKSGd+d
失礼しました。

予想以上に早く、また親切にアドバイスして頂けて嬉しいです。

本当にありがとうございました。

446231 (スッップ Sd33-aqeu [49.98.171.121])2022/02/04(金) 17:36:54.98ID:1UhKSGd+d
今回躓いたところは完璧に解決しました。

皆様、本当にありがとうございます。

447デフォルトの名無しさん (ブーイモ MMcb-FKQo [163.49.214.155])2022/02/04(金) 17:37:47.88ID:fRxFESBHM
>>443
ライブラリ使えって散々言われてたじゃん
使いたくないとか言ってたけど今ライブラリ使ってないプログラムなんてほとんどないぞ

448デフォルトの名無しさん (ワッチョイ 8901-e6rN [126.4.159.20])2022/02/04(金) 23:04:44.52ID:gGuISdVA0
eval関数なしで
テキストボックスに入力されている
5*6*4+56/24のような計算をするにはどうすればいいでしょうか?

449デフォルトの名無しさん (ワッチョイ 8b46-FxgI [153.161.191.103])2022/02/04(金) 23:19:30.94ID:/i5Sn7pz0
再帰下降構文解析でググれ

450デフォルトの名無しさん (スップ Sd03-ey3B [1.72.9.177])2022/02/05(土) 00:01:28.09ID:sD6dJYyZd
eval is evil

451デフォルトの名無しさん (ワッチョイ d501-g7wQ [126.4.159.20])2022/02/05(土) 15:51:37.55ID:7rGxUilP0
>>449
ありがとうございます

ググって見たんですが、かなり難しいですね、知らないコードも多くて挫折しそうです

452デフォルトの名無しさん (ワッチョイ d501-v6+h [126.15.28.3])2022/02/06(日) 14:13:43.12ID:jyf5OL160

453デフォルトの名無しさん (JP 0Ha1-zD41 [126.249.157.89])2022/02/07(月) 07:37:13.78ID:90TSH41+H
グッドモーニングショーで未だにファックス使ってコロナ集計してやんのwって言ってましたけど
特定サイトで入力した個人情報や体調情報などをQRコード化して読み取りパスを設定し
その情報を診療所などで携帯で読み込むと、自動的に院内システムと保健所など供給機関にJSONで送情されるようなの
あっという間にできそうなんだけど
セキュリティ面感がなければ2時間くらいでできそう

454デフォルトの名無しさん (ワッチョイ 355f-CoXB [14.10.58.225])2022/02/07(月) 08:42:42.57ID:2FnRi9wN0
>>453
院内システムは普通インターネットに疎通していない。
Drがインターネット使うのも全部、画面のみ転送のリモートデスクトップ。

455デフォルトの名無しさん (アウアウウー Sa09-4urG [106.146.65.119])2022/02/07(月) 08:56:33.13ID:4W18gTd9a
単機能のシステムなら出来そうだけど
あれもこれもと仕様が膨れ上がって予算もウン十億になり
最終的に使い勝手の悪いガラクタになるのがオチ
https://wedge.ismedia.jp/articles/-/22205?layout=b

456デフォルトの名無しさん (ワッチョイ cb2c-2zGl [153.136.94.40])2022/02/07(月) 12:51:27.00ID:QUqmCtWk0
規格を統一するのが難しい

医療機関は、各SIer でバラバラだろ

457デフォルトの名無しさん (JP 0Ha1-zD41 [126.249.157.89])2022/02/08(火) 06:39:24.19ID:L7XKTsfqH
先進諸国ってシステム規格は統一してるん?
なんで日本だけファックスよ?

458デフォルトの名無しさん (ワッチョイ 2333-2cIz [59.190.4.184])2022/02/10(木) 18:43:10.54ID:yttBwpD00
firefoxを使ってるんですが
マウスのソフトウェアの左クリックの連射機能を使うことがあって
その際にリンクやボタンを多重クリックを避けたいので
特定のエレメントにイベントリスナーでクリックするとstyle.display = 'none'にするようにしたんですが
これが実際に多重クリックになってるかどうかは
どのように判断すればよろしいのでしょうか
ブラウザの開発ツールなどで簡単にわかる方法ありますでしょうか?
それとももう一度同じエレメントにイベントリスナーでクリックした場合
カウンターにインクリメントさせてconsole.logがいいのでしょうか
(この方法も正確に取れているのかは私にはわかりません)

459デフォルトの名無しさん (JP 0Ha1-zD41 [126.249.157.89])2022/02/11(金) 20:34:20.02ID:efWVJIaOH
質問させてください

let ar={a:{a1:1}};
console.log(a1); // ① a1 is not defined

let {a:{a1}}=ar;
console.log(a1); // ② 1

a1を出力したのですが、
①は未定義
②は1が出力されています

どうして①と②の出力結果が異なるのでしょうか?

460デフォルトの名無しさん (ササクッテロラ Spa1-6JR8 [126.193.40.232])2022/02/11(金) 20:42:04.99ID:XbmfRAz/p
>>459
オブジェクトの分割代入されるから。

461デフォルトの名無しさん (ワッチョイ 77f0-B80Q [124.45.127.106])2022/02/12(土) 11:33:13.66ID:RPVXSf4c0
>>459
①のa1はグローバルレキシカルを参照したけど定義されていなかった
②のa1はグローバルレキシカルを参照したらオブジェクトとして登録されていたのでvalueを返した

②は{a:

462デフォルトの名無しさん (ブーイモ MM42-/t+S [49.239.64.187])2022/02/12(土) 11:55:49.55ID:GfpJrBC6M
>>459
>>460が書いてるように3行目は分割代入なんだけど
特にオブジェクトデストラクチャリングと呼ばれる機能
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#object_destructuring

3行目でaとa1という変数が定義される
それ以前はa1という変数が定義されてないからundefined

とりあえずstrictモードを使いましょう

463デフォルトの名無しさん (ワッチョイ 627c-B80Q [43.235.241.201])2022/02/12(土) 23:28:01.59ID:c6xzFFYJ0
何で理解していないのにこんな書き方して分かりませんって質問しているのだろうかw
目的は?

464デフォルトの名無しさん (ワッチョイ 238b-GNxr [210.228.102.1])2022/02/13(日) 11:28:11.91ID:Y75YevLW0
>>462
3行目のaは変数じゃない

465デフォルトの名無しさん (ワッチョイ 3f01-rCQD [126.85.85.31])2022/02/15(火) 16:00:20.18ID:WCBHI7+n0
JavaScript の配列の要素をすべて削除する
https://qiita.com/niwasawa/items/89e86c0fd85ad4591e1c

arr.length = 0 じゃダメなの?

466デフォルトの名無しさん (オッペケ Sr3f-Yp6Q [126.194.119.131])2022/02/15(火) 16:55:47.25ID:6QhYGEARr
arr = null
もしくは
arr = []
じゃダメなの?

467デフォルトの名無しさん (ワッチョイ 3f01-4ITz [126.209.38.115])2022/02/15(火) 20:35:06.19ID:v0u4j5eD0
>>465
いいと思うが、そう思ったなら本人に伝えればいいのに

あと、teratailスレのは誤投稿か?
http://2chb.net/r/tech/1630107050/304

468デフォルトの名無しさん (ブーイモ MMbb-lHx+ [202.214.167.89])2022/02/15(火) 20:41:42.47ID:YCvdbcjXM
自分は arr.length = 0 を使う

>>466
arr が let ならそれでもいいけど、const の場合は再代入出来ない

469デフォルトの名無しさん (オッペケ Sr3f-Yp6Q [126.194.119.131])2022/02/15(火) 21:08:32.51ID:6QhYGEARr
>>468
constなのに長さ0にしちゃっていいの?

470デフォルトの名無しさん (ワッチョイ 3f01-4ITz [126.209.38.115])2022/02/15(火) 21:10:50.44ID:v0u4j5eD0
>>469
constが禁止するのは再代入
プロパティ変更は禁止しない

471デフォルトの名無しさん (オッペケ Sr3f-Yp6Q [126.194.119.131])2022/02/15(火) 22:48:45.41ID:6QhYGEARr
>>470
そういう意味ではなく
constで定義している配列の長さを0にするってことは変更不可として定義してる配列なのになぜか0になってるというバグを生みやすいんじゃないか?

472デフォルトの名無しさん (ワッチョイ af5f-+p08 [14.8.71.128])2022/02/15(火) 23:01:49.17ID:z5poVj2c0
>>471
「変更不可」と「再代入禁止」の区別を付けられるようになろう
君のその認識こそ、不具合を生み出す原因になるよ

473デフォルトの名無しさん (ワッチョイ ab5f-K+Vi [106.73.17.192])2022/02/15(火) 23:03:26.68ID:JA2Mlap+0
別に変更不可って意味でconst使わなくないか?

474デフォルトの名無しさん (オッペケ Sr3f-Yp6Q [126.194.119.131])2022/02/15(火) 23:07:54.82ID:6QhYGEARr
やっぱjavascriptは欠陥言語だよな
定数とオブジェクトでconstの使い方変わるし

475デフォルトの名無しさん (ワッチョイ c6a7-rCQD [153.216.75.243])2022/02/15(火) 23:20:36.81ID:NudRi/Oa0
ワロスw

476デフォルトの名無しさん (スッップ Sd42-qzeC [49.98.169.237])2022/02/15(火) 23:24:11.41ID:oyYnjwf7d

477デフォルトの名無しさん (ワッチョイ afe6-PSJX [14.3.170.77])2022/02/15(火) 23:54:38.03ID:DOsFVpUk0

478デフォルトの名無しさん (ワッチョイ afe6-PSJX [14.3.170.77])2022/02/15(火) 23:54:58.40ID:DOsFVpUk0
いや

大爆

479デフォルトの名無しさん (ワッチョイ af5f-ZaaF [14.10.58.225])2022/02/16(水) 00:38:29.63ID:dZoJOzXw0
欠陥言語か?cのconstと同じでは?

480デフォルトの名無しさん (ワッチョイ c62c-TxqZ [153.136.94.40])2022/02/16(水) 12:21:54.58ID:Nuw/c3FA0
Ruby でも、入れ物と各要素は別。
shallow copy と同じ。動的言語は全てそう。
deep copy, deep freeze などは、誰かが作る必要がある

入れ物をフリーズしても、各要素は変更できる

ary = %w(a b).freeze

ary[ 0 ].upcase!
p ary #=> ["A", "b"]

だから、入れ物と各要素の両方を、フリーズする必要がある

ary_2 = %w(x y).map( &:freeze ).freeze
ary_2[ 0 ].upcase! #=> エラー。変更できない!

481デフォルトの名無しさん (アウアウアー Sa5e-DiUz [27.85.205.92])2022/02/16(水) 22:54:05.43ID:CjOKbN9ya
スレ違いも守れない身勝手なクズ

482デフォルトの名無しさん (ワッチョイ cf10-SFaO [180.12.82.129])2022/02/17(木) 22:37:18.01ID:TmsR/NWJ0
<input type="button" value="aaaaaa" id="test1">
<br>
<input type="button" value="bbbbbb" id="test2">

<スクリプト>

var id_list = ["test1","test2"];

for(let n=1;n<=id_list.length;n++){
var elm = document.getElementById(id_list[n-1]);

elm.addEventListener(
"click",
function(e){
alert(elm.value);
}
);
}
</スクリプト>

aaaaaaボタンをクリックしてもbbbbbbと表示されてしまいます
どこが間違っているんですか?

483デフォルトの名無しさん (ワッチョイ 5232-DrOF [133.207.66.224])2022/02/17(木) 23:03:32.28ID:Np/YPCaB0
>>482
スコープまわりの認識とか?
var を使わずに const, let 使えば意図した通りに動くはず

484デフォルトの名無しさん (アウアウエー Sa7a-LSse [111.239.156.228])2022/02/17(木) 23:21:36.38ID:eqAwClgCa
alert (elm.value)をalert(e.currentTarget.value)に変えたればおけ

485デフォルトの名無しさん (ワッチョイ 238b-FJ3i [210.228.102.1])2022/02/17(木) 23:28:41.09ID:7BD8Ewk+0
alert(this.value)
または
const elm = document.getElementById(id_list[n-1])

486デフォルトの名無しさん (ササクッテロラ Sp3f-/9rH [126.193.40.232])2022/02/17(木) 23:31:46.94ID:U/Ab4M74p
これから新規でスクリプト書くなら、特別な理由がない限りvarは使わずletかconstだけ使うほうが、変なミス起こらなくていいと思う

487デフォルトの名無しさん (ワッチョイ c62c-TxqZ [153.136.94.40])2022/02/18(金) 10:44:02.23ID:tiifqQ9V0
初心者は、jQuery を使えばよい

分かりにくい、this の意味も変えてある

488デフォルトの名無しさん (ワッチョイ c62c-TxqZ [153.136.94.40])2022/02/18(金) 11:35:27.02ID:tiifqQ9V0
jQuery で、ボタンの外側・親にイベントを付けて、親で、子のイベントをキャッチできる

<div id="btn-wrap">
<button class="BtnA BtnAll" value="1">A-1</button>
<button class="BtnA BtnAll" value="2">A-2</button>
<button class="BtnB BtnAll" value="3">B-3</button>
</div>

$( function ( ) {
// 外側・親にイベントを付けて、親で、子のイベントをキャッチする
$( '#btn-wrap' ).on( 'click', function ( event ) {
const value = $( event.target ).prop( 'value' )
console.log( value )
alert( value )
} );
} );

または、共通のclass を付けて、そのクラスだけのイベントをキャッチできる

// .BtnA のみ
$( '.BtnA' ).on( 'click', function ( event ) {
const value = $( this ).prop( 'value' )
console.log( value )
alert( value )
} );

489488 (ワッチョイ c62c-bORD [153.136.94.40])2022/02/18(金) 12:16:47.94ID:tiifqQ9V0
>>488
に追加

セレクターをカンマで区切れば、A またはB でも出来る

// .BtnA or .BtnB のみ
$( '.BtnA, .BtnB' ).on( 'click', function ( event ) {
const value = $( this ).prop( 'value' )
console.log( value )
alert( value )
} );

490デフォルトの名無しさん (ワッチョイ cf10-K2F7 [180.12.82.129])2022/02/18(金) 12:23:50.32ID:aHWUA2kK0
>>483-485
やってみますありがとー

491デフォルトの名無しさん (ブーイモ MMf3-lHx+ [210.138.208.186])2022/02/18(金) 12:38:42.82ID:YjRRevVzM
イベントのバブリングを学ぶにはいい機会(丁度よい題材)だとは思うけど、「初心者に向けて」というエクスキューズでもって今時jQueryを勧める態度には悪意に近いモノを感じる

492デフォルトの名無しさん (スッップ Sd42-qzeC [49.98.169.237])2022/02/18(金) 21:37:34.77ID:rjrdvPAWd
今後廃れていくだけだもんな
新たに学習する必要はないわな

493マッチ棒 (ワッチョイ 3301-BRhT [126.241.27.53])2022/02/19(土) 09:29:33.08ID:SYl7hXba0
こんにちはこのたびはお世話になります
Javaスクリプトの質問ですが
いろいろ煮詰まっておりさしあたり
変数のスコープとオブジェクトのことがよくわからないでして
変数は関数内のみのローカルありますよね
でオブジェクトも
var obj=new obj()
といったインスタンツなら変数とおなじでローカルだったりグローバルだったりするんですかな
まずは以上よろしくお願いします

494デフォルトの名無しさん (オッペケ Sr37-gtTr [126.133.243.36])2022/02/19(土) 09:52:37.76ID:ApZEftHir
もうvarは使うな以上

495マッチ棒 (ワッチョイ 3301-BRhT [126.241.27.53])2022/02/19(土) 12:07:18.29ID:SYl7hXba0
バーよりレッツを使うんですね承知しました。
ブラウザ画面内に表示されたDOMオブジェクトは常にグローバルなんですかね
何もかもがわからん

496デフォルトの名無しさん (ワッチョイ cf2c-mvUX [153.136.94.40])2022/02/19(土) 13:34:02.57ID:XlinVUCj0
window.document.body, window.document.head など、
windowオブジェクトはグローバル

windowが無くても、document.head でも同じ

window.document.head == document.head
//=> true

例えば、Pjax で、ページを作っている場合、
ページ遷移したように見えても、window に追加したオブジェクトは初期化されない。
そのまま残っている

ページの一部分しか変更されていないから。
ページをreload していないから

497デフォルトの名無しさん (テテンテンテン MMff-+Md/ [133.106.146.196])2022/02/19(土) 16:01:34.02ID:c/9+L37GM
Pjax is なに

498デフォルトの名無しさん (ワッチョイ a333-mA98 [112.71.200.123])2022/02/19(土) 18:28:21.70ID:fGIkG9WE0
>>491
むしろ悪意そのものでしょ

499マッチ棒 (ワッチョイ 3301-BRhT [126.241.27.53])2022/02/19(土) 18:38:03.12ID:SYl7hXba0
参考書に、Javaスクリプトにはクラスの概念はない、て書いてあるんですが
もしかして情報が古い?

500デフォルトの名無しさん (ワッチョイ 3f19-v1mi [123.222.1.215])2022/02/19(土) 18:39:00.10ID:9/CFXaUW0
はい

501デフォルトの名無しさん (ブーイモ MM7f-AMcF [163.49.208.227])2022/02/19(土) 18:43:12.48ID:QjUSXh+yM
その本で勉強するのやめたら
varを使ってるのもそのせいだろうし

502デフォルトの名無しさん (ワッチョイ 3301-lOsW [126.163.110.47])2022/02/19(土) 19:02:00.92ID:LKw+j5240
>>499
「クラスの概念がない」は正しい
JavaScriptはプロトタイプベースでclass文は糖衣構文だからな

そういう意味で書かれているのなら正しいといえるが、書籍を持ってない人が文脈を読みとれるはずもない
書籍の正しさを保証するのはその書籍を持っている人だけ

503デフォルトの名無しさん (アウアウエー Sa9f-/VBg [111.239.156.112])2022/02/19(土) 19:05:31.85ID:s68IJWjka
まあvar使ってる時点でES15以前だから読む価値なしですね

時間の無駄なんでその本を投げ捨てろ

504デフォルトの名無しさん (ワッチョイ 3301-lOsW [126.163.110.47])2022/02/19(土) 19:06:29.96ID:LKw+j5240
>>499
あと、正しさを気にするなら、カナ交じり用語を使うのを止めた方がいい

・Javaスクリプト
・バー
・レッツ

505デフォルトの名無しさん (ワッチョイ 137b-mA98 [124.246.130.6])2022/02/19(土) 21:14:26.70ID:WPu6vt5B0
マジレス…

506マッチ棒 (ワッチョイ 3301-BRhT [126.241.27.53])2022/02/19(土) 22:06:51.12ID:SYl7hXba0
こんばんはいつもお世話なります
今日でかなり学習は進みましたありがとうございます
さっそく質問ですが
クロッパーJSという便利ライブラリを見つけて解析しております
ところが
fileReaderでダイヤログを出してjpg画像なりを読んでまずは画面にプレビューしますが、
あっ間違えたのテイで再度fileReaderして別の画像を読み込むのですが
プレビュー画面が前のまま変わらないのです
以上よろしくお願いします

507デフォルトの名無しさん (ワッチョイ 3301-lOsW [126.163.110.47])2022/02/19(土) 22:16:58.88ID:LKw+j5240
>>506
クロームdevtoolでソースcodeを解析してみればいいんじゃないかな
ネタ品質が低くてすまん

508マッチ棒 (ワッチョイ 3301-BRhT [126.241.27.53])2022/02/19(土) 23:27:47.87ID:SYl7hXba0
クロッパーJSの公式デモページ(エマワトソンの写真のやつ)でImport Image with Blob URLsというボタンは
何度でも写真を読み直しできるんですよ
インスタンスをデストロイがカギとは思うのですが

509デフォルトの名無しさん (ワッチョイ 3301-lOsW [126.163.110.47])2022/02/19(土) 23:34:29.04ID:LKw+j5240
>>508
デモページのソースをディフってみたら?

510マッチ棒 (ワッチョイ 3301-BRhT [126.241.27.53])2022/02/20(日) 01:15:27.52ID:vRC3RkLD0
クロッパーのことですけんど
なかなか敷居が高いですわ
インタネッツでもたくさんの人が2回目の読み込みをどうするか質問してますね

511マッチ棒 (ワッチョイ 3301-BRhT [126.241.27.53])2022/02/20(日) 03:05:26.93ID:vRC3RkLD0
ふう、なんとかやれましたよ
大儀であつた

512日記帳 (ワッチョイ 3301-BRhT [126.241.27.53])2022/02/20(日) 16:34:24.33ID:vRC3RkLD0
こんにちは今日も格闘しております
グーグルマップのリーフレットプラグインで、写真を地図に貼り付けています
複数貼った時の処理でまた壁につきあたりました
貼り付け関数で作るインスタンスが「imgovlay」なんですがその名前なら例えばimgovlay.options.cornersってやれば四つ角の座標がとれるですけんど
3枚はったあとからでは1枚目の座標が調べられんとです
これはどんな工夫したらよいのやら
以上よろしくお願いします

513デフォルトの名無しさん (ワッチョイ e35f-nZx7 [106.72.130.65])2022/02/20(日) 17:20:03.63ID:xfffAjua0
日記ならそろそろ個人ブログでも作ってやったら
前にレスくれてる人は無視、相変わらず中途半端なカタカナ表記で聞きたいこともわかりにくいし書いてるコードも貼らない
一応エスパーしとくと、配列でインスタンス全部持っておくだけでは?

514日記帳 (ワッチョイ 3301-BRhT [126.241.27.53])2022/02/20(日) 17:28:08.35ID:vRC3RkLD0
ジェーンスタイルというアプリでこのスッドレを見ておるますが、タグのあるコードのコピペはできないんですよ

515デフォルトの名無しさん (ワッチョイ f35f-F+co [14.11.194.224])2022/02/20(日) 17:31:05.62ID:7vowCzxS0
まず最初に>1-2を丁寧に見るといいよ、というか見て
http://ideone.com/
http://jsfiddle.net/

516日記帳 (ワッチョイ 3301-BRhT [126.241.27.53])2022/02/20(日) 17:50:37.16ID:vRC3RkLD0
はい承知しました
大儀であった

517デフォルトの名無しさん (ワッチョイ 3301-lOsW [126.163.110.47])2022/02/20(日) 18:25:51.02ID:hgnRPi350
ID:vRC3RkLD0はネタ質問と思ってる
全く面白くないが

518デフォルトの名無しさん (ワッチョイ 3f1f-Xmkg [123.217.134.142])2022/02/21(月) 02:08:54.33ID:44J1KF7y0
Chrome拡張機能のjsファイルを修正しようとしているんだけど
(バグが出たのに作者放置で逃亡w)
JSファルダの中にいくつかjsファイルがあるけど、どれが最初に読み込まれるのですか?
また、グローバル変数はファイルを超えて使えますか?

519デフォルトの名無しさん (ブーイモ MM7f-OANQ [163.49.208.129])2022/02/21(月) 04:36:00.42ID:YvtULrNjM
>>518
まずは複数の実行コンテキストが存在することを把握するといい
chromiumのmanifest V2拡張機能はこの年末にサポート終了が予定されているので、その拡張機能がV2の場合はV3に作り直すことをオススメする

520デフォルトの名無しさん (ワッチョイ 63ef-sEiv [202.70.185.138])2022/02/23(水) 08:42:30.40ID:EjF360bu0
質問です。.cgiのページにcanvasの
https://www.google.com/amp/s/torisky.com/javascript%25EF%25BC%259Acanvas%25E3%2581%25AB%25E9%259B%25AA%25E3%2581%25AE%25E7%25B5%2590%25E6%2599%25B6%25E3%2582%2592%25E9%2599%258D%25E3%2582%2589%25E3%2581%259B%25E3%2582%258B/%3famp=1を設定するにはどこのページにコード貼り付ければいいのでしょうか?全部.cgiの中で大丈夫ですか?

521デフォルトの名無しさん (ワッチョイ 63ef-sEiv [202.70.185.138])2022/02/23(水) 10:35:21.54ID:EjF360bu0
HTML部分

<!DOCTYPE html>
<html>
<head>
って書いてるから無理なんかな……index.htmlじゃなくて.cgi直のURLに設定したいんだけど……

522デフォルトの名無しさん (ワッチョイ 3301-BRhT [126.241.27.53])2022/02/23(水) 11:28:37.94ID:hXi3IxJ40
>>521
こんにちは
cgiてのはperlのコトですかね
perlやPHPはHTMLをまるっと吐き出せるんですよ
だからjavascriptの仕掛けのあるHTMLをまず作ってみて、その内容をまるごとcgiでprint文などで出力します

523デフォルトの名無しさん (ワッチョイ 6382-mtTC [202.137.42.243 [上級国民]])2022/02/25(金) 20:59:11.76ID:zW9WpBq20
てst

524デフォルトの名無しさん (ワッチョイ 6382-mtTC [202.137.42.243 [上級国民]])2022/02/25(金) 20:59:52.69ID:zW9WpBq20
C#からJavaScriptをコールしたいのだが、このJavaScriptは.jsファイルに入れるのではなく、
htmlファイル内に書かないといけないのかな?

525デフォルトの名無しさん (ワッチョイ 1710-rCyD [180.12.82.129])2022/03/06(日) 20:50:59.24ID:Ii2qDZic0
setIntervalでtimer1が起動中のときはtimer2を起動させないようにするにはどうやればいいんですか?

526デフォルトの名無しさん (オッペケ Sr0b-wOAn [126.158.147.174])2022/03/06(日) 20:59:50.64ID:EBMcer04r
>>525
setIntervalのラップ関数を作って排他制御する

527デフォルトの名無しさん (ワッチョイ 1710-rCyD [180.12.82.129])2022/03/06(日) 21:36:36.90ID:Ii2qDZic0
>>526
なるほどー
それとsetIntervalも戻り値は0になることはないのですか?

528デフォルトの名無しさん (ワッチョイ 172c-bfGZ [180.52.201.48])2022/03/06(日) 22:53:26.23ID:SX3V4D250
timer の状態を調べる、属性とかは無いの?

529デフォルトの名無しさん (ワッチョイ f701-p0il [114.48.62.41])2022/03/08(火) 21:51:27.12ID:iL0h68YD0
>>528
返り値はただのNumber値
プロパティは埋め込めない

530デフォルトの名無しさん (ワッチョイ f701-p0il [114.48.62.41])2022/03/08(火) 22:09:04.89ID:iL0h68YD0
>>527
戻り値は正の整数

531デフォルトの名無しさん (ワッチョイ bfb0-4NGs [111.216.14.246])2022/03/09(水) 08:20:41.91ID:U0qNtUpH0
数日前からjavascriptやらされてるんだけど質問
ajax関係の処理が例えばJqueryだと$.ajaxとかで終わった時の処理とか
エラーだったときの処理とかで分かれてるじゃない?
こういうAPIへのリクエストは全部まとめたいからsuccessにreturnするfunctionにしたら
使う側では瞬間帰ってきてundefinedになってしまう・・・
asyncなんだから当たり前だと言われたらそれまでなんだけど
そして毎回$.ajaxをそこら中で呼び出すことになる
これってそういう言語だからあきらめろしか無い感じ?
もちろんasyncをfalseにしろという話になりそうだけどブラウザがメインスレッドでやらんほうがいいとか警告出してくるし

532デフォルトの名無しさん (ブーイモ MM1b-S2Ul [202.214.198.70])2022/03/09(水) 08:38:01.00ID:6ktbAzhaM
よく分からんけどコードが間違ってるだけな気がする

533デフォルトの名無しさん (オッペケ Sr0b-p0il [126.253.133.208])2022/03/09(水) 09:30:24.96ID:Cs4PttVsr
>>531
awaitを使えば返り値でとれる
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/await

別スレで似た質問があったが、同一人物ではないよな?
http://2chb.net/r/hp/1478002550/499
質問者の応対が酷かった


lud20220309095422
このスレへの固定リンク: http://5chb.net/r/tech/1636525464/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「+ JavaScript の質問用スレッド vol.124 + YouTube動画>2本 ->画像>11枚 」を見た人も見ています:
+ JavaScript の質問用スレッド vol.129 +
+ JavaScript の質問用スレッド vol.105 +
+ JavaScript の質問用スレッド vol.122 +
+ JavaScript の質問用スレッド vol.131 +
+ JavaScript の質問用スレッド vol.123 +
+ JavaScript の質問用スレッド vol.134 +
JavaScript の質問用スレッド vol.123
JavaScript の質問用スレッド vol.125
総合!靴についての質問スレッド 35足目 (c)3ch.net [無断転載禁止]
【質問】スペイン語学習者用スレッド 14【回答】
囲碁・初心者専用の質問スレッド 第31局
◆◇◆釣り初心者のための質問スレッド200◆◇◆
高校物理についての質問に対して、親切に回答するスレッド
Xbox360購入者&初心者の質問スレッド Part.211
超初心者のための質問スレッド★スピーカー編 66★
超初心者のための質問スレッド★スピーカー編 61★
qa:初心者の質問[スレッド削除]
★PUNK初心者質問スレッドVol.10★
iPhone 質問スレッド part66
【DTM】初心者質問スレッドVol.84ワッチョイ無し
★★Java質問・相談スレッド184★★
★★Java質問・相談スレッド183★★
★★Java質問・相談スレッド184★★
★★Java質問・相談スレッド180★★
スレッドを立てるまでもない質問スレッド Part 358
【PS4】ARK: Survival Evolvedの質問に全力で答えるスレ part.1
質問スレッド@化学板141
世界史なんでも質問スレッド164
Phone 質問スレッド part48
スポーツ車高調質問スレッド36
スポーツ車高調質問スレッド37
スポーツ車高調質問スレッド31
スクリプト言語質問スレッドpart1
Elona初心者質問スレッド その122
Windows 10 質問スレッド Part75
物凄い勢いでMinecraftの質問に答えるスレ63
【MACRO】Google Apps Script 質問スレ【DRIVE】
willcom Javaアプリスレッド vol.5
【初心者歓迎】最新COBOLについての質問スレ
chromeのスプレッドシートについて質問
ブックマークレット【 JavaScript】
Java入門・初心者質問スレ Part.7
Java入門・初心者質問スレ Part.6
Java入門・初心者質問スレ Part.4
Java入門・初心者質問スレ Part.9
ASP.NET MVC 総合スレッド
Perlについての質問箱 65箱目
Perlについての質問箱 64箱目
プログラムの質問なのですが
プログラミング超初心者の質問
Excel VBA 質問スレ Part68
Excel VBA 質問スレ Part79
Excel VBA 質問スレ Part49
Excel VBA 質問スレ Part78
Excel VBA 質問スレ Part65
Excel VBA 質問スレ Part50
Excel VBA 質問スレ Part75
Access VBA 質問スレ Part1
Excel VBA 質問スレ Part73
Excel VBA 質問スレ Part74
Excel VBA 質問スレ Part71
Excel VBA 質問スレ Part62
Excel VBA 質問スレ Part60
Excel VBA 質問スレ Part57
Excel VBA 質問スレ Part55
23:20:05 up 67 days, 18 min, 1 user, load average: 8.18, 8.67, 8.65

in 0.027667045593262 sec @0.027667045593262@0b7 on 062312