[過去ログ] + JavaScript の質問用スレッド vol.124 + (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
118: (アメ MM17-8G9t [218.225.234.214]) 2021/11/23(火)10:52 ID:AKV1HaX9M(2/2) AAS
あまりにも面倒くさいため、誰もJavaでGUIを作らなくなりました。
やる気とAWT,Swingなど道具立てはあったのです。
ただJavaがクソ過ぎた。
イベントドリブンで必須のリスナー登録はこんな感じ(笑)
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("clicked");
}
});
省9
119: (ワッチョイ 9af0-9IQd [219.121.80.140]) 2021/11/23(火)11:43 ID:9dlC3Wki0(2/2) AAS
うん、わかった
確かにその通りです
120: (ワッチョイ 8b01-wksM [126.243.168.20]) 2021/11/23(火)15:55 ID:MdPJopiF0(1) AAS
Android StudioではまだJava言語で開発が必要だったような
121
(1): (ワッチョイ 1333-BhQk [59.190.185.22]) 2021/11/27(土)15:29 ID:czi6N/jr0(1/4) AAS
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 ID:YexJKObKM(1) AAS
>>121
まずは自分で試して比べろよ
123
(2): (ワッチョイ 1333-BhQk [59.190.185.22]) 2021/11/27(土)20:27 ID:czi6N/jr0(2/4) AAS
コードはこんな感じでいいですか?
外部リンク:jsfiddle.net
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 ID:czi6N/jr0(3/4) AAS
IronというChromeベースのブラウザでも試したところ
FirefoxからJSFiddleを開いてそこで走らせた時間と同じような結果になりました
125
(2): (ワッチョイ 2110-ZQOw [180.12.82.129]) 2021/11/27(土)22:00 ID:w/hwUzDX0(1) AAS
element.addEventListener(
"mousemove",
function(e){alert(e.offsetX);}
);

このfunction(e)の部分はfunction(aaa,e,bbb){}のように引数を複数設定することはできますか?
e以外を渡すにはグローバルしかできないんですか?
126
(1): (ワッチョイ 3332-m/w5 [133.207.66.224]) 2021/11/27(土)23:25 ID:QiKYnGor0(1) AAS
>>123
Firefox の Math.max() が激重っぽい(1万回の関数呼び出しが重い?)
三項演算子とかにすれば JSFiddle と同じくらい早くなる
127: (ワッチョイ 1333-BhQk [59.190.185.22]) 2021/11/27(土)23:48 ID:czi6N/jr0(4/4) AAS
>>126
ありがとうございます。
Math.maxを使わず、
配列のまま計算させたほうがいいみたいですね。
3つ目もMath.maxを使ってますが使わないようにしても、
こちらはMath.max関数の呼び出し回数が1周1回なせいか短縮されませんでした。
128
(1): (ブーイモ MM8b-/4Ud [133.159.151.119]) 2021/11/28(日)12:42 ID:TNNdgbH5M(1) AAS
>>123
1つめのバグっとるよ
2つめのは連続する数が大きいのでも確かめないとパフォーマンス特性が分からない

jsbench.meみたいなところで試すといい
アルゴリズムのオーダー考えれば単純ループが一番高速
129
(2): (ワッチョイ 3332-m/w5 [133.207.66.224]) 2021/11/28(日)21:15 ID:P+UGlIn90(1) AAS
>>125
引数を複数設定できる。ただし、第一引数以外は何も渡されない。(デフォルト引数なんかの例外もある)
thisを渡せる。bind()とhandleEvent()を含むオブジェクトで渡せる。
130: (ワッチョイ 1333-BhQk [59.190.185.22]) 2021/11/28(日)21:21 ID:PdYmCZpH0(1) AAS
>>128
ありがとうございます
サイトは次使う時に使って見たいと思いますw
131
(1): (テテンテンテン MM8b-PefI [133.106.57.30]) 2021/11/28(日)21:29 ID:eSM912u0M(1) AAS
>>125
どんな使い方をするのか想定コードを教えて

あと代入されるaaa,bbbの値はいつ確定する?
呼び出し時に確定するなら変数で置いとくしか無いし
関数定義する時点で確定してるなら引数にする必要が無い
132
(3): (ワッチョイ 2110-kHZs [180.12.82.129]) 2021/11/29(月)12:33 ID:nUjIBrRJ0(1) AAS
>>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 ID:kIPjw4qWM(1) AAS
>>132
それだと結局グローバル変数参照してるのと同じじゃない?
わざわざ引数経由する理由がない
134: (ワッチョイ c101-gtDo [126.243.41.97]) 2021/11/29(月)13:23 ID:T3PYHNfj0(1/2) AAS
>>132
>>129の方法ではダメなのか?
135
(1): (ワッチョイ 5961-MeBs [114.150.87.142]) 2021/11/29(月)15:20 ID:0iOICyJy0(1) AAS
定期的にaddEventListener自体から引数渡したいって人出てくるけど
仮にできたとしてもaddEventListenerした時点で値が固定されることが考えから抜け落ちてるよね
>>132
引数渡したいならイベントハンドラに関数式使えば済むけど
複数のイベント仕込むなら一連の動作をこんな感じでclassかオブジェクトにした方が楽よ
外部リンク:jsfiddle.net
136
(1): (ブーイモ MM45-/4Ud [210.138.176.81]) 2021/11/29(月)15:41 ID:cAtmNTK4M(1) AAS
クロージャ使えば普通にできるやろ
それに参照型ならaddEventListenerした後からでも値を変えられるよ
137: (ワッチョイ 1b46-D8AZ [111.98.111.65]) 2021/11/29(月)18:56 ID:QQHq1BUR0(1) AAS
var か
1-
あと 865 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.012s