2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

JavaScript情報交換所(プログラミング既習者専用)

547 :デフォルトの名無しさん:2020/05/04(月) 22:38:13 ID:Zdi/ARyL.net
いやJavaはひととおりマスターしたから
オブジェクト指向はバッチリ理解している。

JavaScriptは気持ち悪いことが多すぎる。関数が変数に代入できることとか。
まるで物理で光が粒でもあるし波でもあるという二重性のことを習ったときのように頭が混乱する。

このへんの考え方について詳しくコツを教えていただけませんか?

548 :デフォルトの名無しさん:2020/05/04(月) 22:39:31 ID:Zdi/ARyL.net
Javaは体系的にスッキリしてるから実に分かりやすい。
この気持ち悪いJavaScriptは何なの?

549 :デフォルトの名無しさん:2020/05/04(月) 22:52:19 ID:eA9rrZ8d.net
オブジェクト指向の理解とは関係ないJavaScript固有の話だと思うがな。
前半部分は"Object"という名前のオブジェクトがグローバルに存在するということに
想像が及ばないと理解しづらいだろうし、後半は「基本オブジェクト」というwell-definedでない
言葉で説明しているが、これもオブジェクトが他のオブジェクトのプロパティを継承する
prototype継承を知らなければこの文章だけからは理解しにくいだろう。

550 :デフォルトの名無しさん:2020/05/05(火) 00:28:49 ID:esp/1iza.net
>>547
> 関数が変数に代入できることとか。
Javaも出来るようになっただろ
というかメジャー言語で出来なかったのはJavaだけで、それ以外の言語は全部出来てる
Cでもだ
コツ?そりゃお前が何も知らない馬鹿だとちゃんと自覚することだよ
他言語少しでもかじってれば、そんなところで引っかかることはない
(ただしJavaの連中はこのタイプ=他言語なんて全く知らない馬鹿も多いとは聞くが)


>>549
そうか?こいつは分かったつもりの馬鹿だと思うぞ
確認したが、JavaもObjectクラスあるし、使い方としてはJavaのObjectとも同じ立ち位置だ
> クラス ArrayList<E>
> java.lang.Object
> java.util.AbstractCollection<E>
> java.util.AbstractList<E>
> java.util.ArrayList<E>
> https://docs.oracle.com/javase/jp/7/api/java/util/ArrayList.html
これを
> 「Objectオブジェクトは、すべてのオブジェクトの基本オブジェクトである」
と表現されて理解出来てないのだから、Javaもオブジェクト指向も分かってない馬鹿だよ
この部分はまだプロトタイプベースがどうとか以前の問題だ

まあ正直俺はプロトタイプベースに大して戸惑わなかったし、
今でもプロトタイプベースの方がクラスベースより表現範囲が広いので良いと思ってる
そしてこいつはいわゆる「クラス脳」で永遠とプロトタイプベースを理解出来ないのだろう
といっても実際にプロトタイプベースでないと組めないような事をするのは希だし、
クラス脳の為にクラス構文も入ったので、別段問題でもないけど

551 :デフォルトの名無しさん:2020/05/05(火) 02:37:44 ID:rwJ86+M0.net
class Abc
end

多くの言語では、このように継承元を書かずに、クラスを定義した場合は、
Object クラスから直接継承したとみなされる

普通は、継承チェーンを遡ると、Object クラスに突き当たる。
すべてのクラスの祖先

この板のJavaScript のスレは、荒らし対策で緊急避難用に作られたもの。
web 制作管理板のスレへ書き込んだ方がよい

こちらには、荒らししかいない

荒らしは必ず、2回書き込む。
自分のレスに、リンクを付けて「そうだよな」みたいに自演する

多くの人が言ってるように見せかける。
午前、3時とかでも、同時に2つのレスを書くw

552 :デフォルトの名無しさん:2020/05/05(火) 02:42:45 ID:rwJ86+M0.net
ほとんどの言語で、関数も変数に代入できる。
別名みたいなもの。Functor

変数 = f
変数 = f( )

上は、関数の代入で、
下は、関数の呼び出し

( ) が、関数呼び出し演算子

553 :デフォルトの名無しさん:2020/05/05(火) 10:37:45.75 ID:esp/1iza.net
>>551
Web制作板確認したが、相変わらずだな
まあ俺はこのレベルの馬鹿を引き取ってくれることには大賛成だから、どうぞよろしく、でしかないが

554 :549:2020/05/05(火) 10:39:12.27 ID:esp/1iza.net
>>549
お前もprototype継承を特別視過ぎ

> 前半部分は"Object"という名前のオブジェクトがグローバルに存在するということに想像が及ばないと理解しづらいだろうし、
Javaにも全く同じ立ち位置のObjectが存在してる
Javaを知らないか、知っててピンと来ない=単なる馬鹿か

> 後半は「基本オブジェクト」というwell-definedでない言葉で説明しているが
C#でも全く同じ表現だ
> Object クラス
> これは、全 .NET クラスの基本クラスであり、型階層のルートです。
> https://docs.microsoft.com/ja-jp/dotnet/api/system.object?view=netcore-3.1
prototypeベースだからクラスではなくオブジェクトとなっている
だからこの表現で正しいんだよ

> オブジェクト指向の理解とは関係ないJavaScript固有の話だと思うがな。
これもダウト
> 多くの言語では、このように継承元を書かずに、クラスを定義した場合は、Object クラスから直接継承したとみなされる (550)
ホントかよ、と思ったが、少なくともJavaとC#ではそうなるようだ(JavaScriptもだが)
これは本来は言語ではなくフレームワークの仕様であり、C++はそうなのだが、
少なくともJavaとC#は最初からオブジェクト指向大前提(のフレームワークを使う前提)でしか使えない仕様らしい
が、それはさておき、全ての型のルートを持ってボックス化出来るようになっており、それを利用する、というのは、
典型的なオブジェクト指向の使い方であって、JavaScript固有の話でも何でもない
というか、むしろ、JavaScript固有の話なんて何もない
prototypeも別にJavaScriptが発明したものでもない
初見だとそれなりに戸惑う、というだけ
ただしJavaScriptのオブジェクト指向なんてJava/C#のオブジェクト指向からすると全く使い物にならない物だし、
実際にボックス化やアップ/ダウンキャスト等を考える必要なんてほぼ無いだろ

お前自身もオブジェクト指向を正しく理解出来てないのだと思うぜ

555 :デフォルトの名無しさん:2020/05/05(火) 10:56:56 ID:ZXlt5r8n.net
「Objectオブジェクト」といきなり言われて、それがJavaのObjectクラスのようなものと
想像できなくても別に不思議はないかと。

556 :デフォルトの名無しさん:2020/05/05(火) 11:16:54.06 ID:esp/1iza.net
>>555
ねえよ
俺はそれは単なる馬鹿だとしか認識しない
少なくともこの馬鹿はJavaもオブジェクト指向もマスターしてるつもりなんだぜ

自分が何も知らないことを自覚できず、
> (ワラ
とかやってるから馬鹿のままなんだよ
こいつは既に老害化してる
JavaですらJava8(2014)から関数ポインタを使えるようになってる
こいつはこのことすら知らない
といっても実際Java界隈なんてその程度だとは思うが

オブジェクト指向を利用してコードを共通化しようとすると、どうしても
C++のように型消去するか、
JavaやC#やJavaScriptのObjectのような型階層のルートが必要になってくる
これらの言語で全てそれが「Object」という名前で統一されているのは偶然ではない
オブジェクト指向(=ObjectOriented)のルートだからObjectなんだよ
今時のメジャー言語は全てオブジェクト指向出来るようになってるし、
逆に、「Object」とかいう物が出てきたら、これか!とピンと来ない方がおかしい

つっても重ねて言うが、Javaの連中なんてその程度なのも事実だが

557 :デフォルトの名無しさん:2020/05/05(火) 11:26:22.49 ID:GGtHBQ+v.net
>>556
関数ポインタと参照は違うって知ってる?

558 :デフォルトの名無しさん:2020/05/05(火) 11:39:37 ID:esp/1iza.net
>>557
勿論知ってるぞ

Javaのが「関数ポインタ」ではなく「関数参照」だというのならそうなのだろう
見て分かるとおり、俺はJavaは使ってないからその辺は正確ではない

ただぶっちゃけ、ポインタと参照はほぼ等価だし、
C++のようにそれらが別物だと明示的な言語以外では混同してても全く問題ないと思うが
実際、JavaScriptにおいて「参照」を「ポインタ」と言い換えても何ら問題ないだろ

どう見ても俺の揚げ足取りをしようとしているように見えるが、
それが価値あると思うなら頑張ってどうぞ
ただし俺は馬鹿と話す意味はないと見たらすぐ降りる
その場合はお前の勝ちでいい


んで、関数ポインタと参照の違いを知っているお前は、どんな素晴らしい知見を披露してくれるの?
是非よろしく

559 :デフォルトの名無しさん:2020/05/05(火) 11:48:55 ID:n32zrCmj.net
> 実際、JavaScriptにおいて「参照」を「ポインタ」と言い換えても何ら問題ないだろ

だめ。ポインタは数値で置き換えられるアドレスであり
ポインタはアドレス加算などの演算ができるもの
アドレス加算ができない以上それは参照であってポインタではない
そしてJavaで参照はずっと前からできる

560 :デフォルトの名無しさん:2020/05/05(火) 12:10:13 ID:esp/1iza.net
>>559
> そしてJavaで参照はずっと前からできる
Java8で新しく出来るようになったのは、『関数』参照な
話をずらすな
そして>>547が理解出来てないのはこれだ

> ポインタはアドレス加算などの演算ができるもの
> アドレス加算ができない以上それは参照であってポインタではない
それはC++での定義な
RustやGoも「ポインタ」を扱えるが、こちらは最初から加算なんて出来ないようになっている(確か)
少なくともRustやGoの定義する「ポインタ」はそう

というか、C++の参照自体が「ポインタは危険なのでコンパイラ側で対策して『参照』と命名しました」でしかないし、
JavaやC#で言う参照も全くこれと同じなのだが、当然実体は「ポインタ」でしかなく、
当然関数呼び出しの引数にはまんま「ポインタ」が積まれる

というかそこら辺理解出来てないのはやっぱりJavaしか知らない馬鹿だからだ
ポインタと参照が実体は同じだ、ということを理解出来ないのも
(論理的な意味が違うだけで、物理的な意味や値は同じ)


いずれにしてもJavaってのはかなり簡素化された言語で、
コンピューターの実体(物理構造)を知らなくてもいいように出来ている
これ自体はいいことなのだが、
その程度の知識なのに「ポインタと参照は違う(キリッ」とかやるのは間違ってる
自分の知識が全く足りてないことを認めて、きちんと学んだ方がいい
ポインタはCの鬼門だとされているが、現実として、ポインタを扱った方が動作効率が圧倒的によく、
結果的にJavaでもJavaScriptでも、或いは他言語でも、内部動作はポインタで作られているので、
どうしてこういう動きをするのか、どうしてこういう仕様なのか、を理解するのは、ポインタの理解が不可欠だ
ある程度以上のプログラマになる為には、ポインタの理解から逃げているようでは無理だ
これが逆にJavaプログラマが相変わらず糞な遠因でもある

561 :デフォルトの名無しさん:2020/05/07(木) 13:23:56.11 ID:fANici3H.net
>>547
> いやJavaはひととおりマスターしたから
> オブジェクト指向はバッチリ理解している。

>548
> Javaは体系的にスッキリしてるから実に分かりやすい。

プログラミング言語をJavaしか使ったことないJavaおじさんか?

562 :デフォルトの名無しさん:2020/05/07(木) 22:35:41 ID:U9K3TqbR.net
>>561
この話題を続ける意味もないと思うが

Javaおじさんですらないはず
多分Java若者馬鹿老害

Java8で関数ポインタが導入された為、
それ以前に完全にJava7をマスターしている「Javaおじさん」なら導入するかどうかの大議論をしているはず
少なくともJavaの一線で働いている奴が知識を6年間もupdateしてないとは考えづらい
使ったことが無くても、また、(コーディングルール上)職場で使えないとしても、全く知らないというのはない(と思いたい)
そしてオブジェクト指向への理解も皆無だ、これは「Javaおじさん」ならあり得ない

最近の若者はプログラミング言語の選択肢が多く、若干戸惑っているように思える
ぶっちゃけ最初の最初の言語なんてどれでも大差ないのだが、「僕が選んで学んだ言語すごい=僕すごい」をやる奴が多すぎる
こいつも何らかの理由でJavaを選択し、「Javaすごい」とポジショントークをしているだけ
おそらく年齢は20代、プログラミング言語はJavaしか知らず、Java7の本でJavaを勉強した人だ
ただこの時点でこの老害っぷりは酷い
一応言っておくが、年齢ではなく、自分の考え方が絶対に正しいと固執し始めると老害になる
546はもうちょっと真摯にプログラミングをした方がいい

ただしJavaがスッキリ、というか、簡単なのは事実だ
だから大受けした
そしてPythonの方がもっと簡単だから、もっと大受けしつつあるだけ


ただ現実問題として、JavaScriptのオブジェクト指向なんてどうせ使い物にならないから、無視でいい
しかしまた現実として、今現在のシェアはJavaScript>Javaなのだから、
どうしてそうなったのかが理解出来ないうちは「Javaすごい=僕すごい」みたいな幼稚な考え方は止めた方がいい
Java自体が凄かったのも事実だが、それも過去になりつつある

563 :デフォルトの名無しさん:2020/05/12(火) 13:08:44 ID:4J1vnKbM.net
'(シングルクウォーテーション)と"(ダブルクウォーテーション)の使い分けに悩みます。
悩みを消しこれだと自信を持って使う考え方はありますか?
どっちを使ってもいい場合とどちらか限定の使い方があるので気持ち悪いですw

564 :デフォルトの名無しさん:2020/05/12(火) 13:33:40 ID:01D/nxpT.net
>>563
シェルスクリプトだと、'と"とは、展開の有無等であきらかに異なるから、
それにしたがって使い分ける。

どちらも同じって場合は、文字列に空白が含まれる場合や入れ子になる場合に"を使って、
その他、基本的には'でくくってる。
jsやpythonなんかがこれに該当。

"しか使えないバッチファイルは文句なしに"。
ただし、*nix由来のプログラムの場合、オプション内部で'を入れ子で使うことがある。

こんな感じ?

565 :デフォルトの名無しさん:2020/05/13(水) 06:16:03.92 ID:VSt/R8YQ.net
VSCode のデフォルトが、Beautify だろ。
拡張機能のPrettier とか

'・" かどうかは、これらの設定で変わる

HTML の属性が、" で囲むから、それらの文字列をさらに囲むには、' を使う

JavaScript の話は、web 制作管理板の方で聞いてください!
この板には、あまり人がいないから

566 :質問者:2020/05/13(水) 13:14:18.33 ID:5xfr/P29.net
こちらで良いかわかりませんが、
・web上でモニタリングをしたい
・10秒ごとに自動更新
・固定htmlに要素を用意。javascriptで変数を持ち、値によって要素の画像を切り替える。
getElementById(*).src=****
setTimeout(this,10000)
これをサーバーに置いて10人くらいがアクセスしたら、サーバーの負荷はどうでしょうか?
画像切り替えるときにサーバーにアクセスするので、やはりだめでしょうか?
わかる方いましたらお願いいたします。

567 :デフォルトの名無しさん:2020/05/13(水) 13:59:35.07 ID:VSt/R8YQ.net
数枚程度なら、すべての画像を送ってしまって、
ブラウザ側で、スライダーなどで切り替える

Google map みたいに、無数の画像があるなら、
ajax でサーバー側にアクセスして、必要な画像を送ってもらう

JavaScript の話は、web 制作管理板の方で聞いてください!
この板には、あまり人がいないから

568 :デフォルトの名無しさん:2020/05/13(水) 14:02:19.06 ID:WBibu7Ic.net
>>566
いろいろイミフ

>・web上でモニタリングをしたい
誰が何をどうやってモニタリングするの?

>・10秒ごとに自動更新
何を更新するの?

>これをサーバーに置いて10人くらいがアクセスしたら、サーバーの負荷はどうでしょうか?
クライアント側JavaScriptの話でサーバー負荷とどう関係があるの?

569 :デフォルトの名無しさん:2020/05/13(水) 14:12:08.64 ID:shZVwRy5.net
>>564
そうざますかありがとう
どっちみち慣れないうちは混乱しますね
JSだけのエンジニアなら当然その人の哲学や宗教により迷わず判断してると思うけど
こっちはJSは片手間でやっててさわるのが数年ぶりということがあるから混乱しますわ

570 :デフォルトの名無しさん:2020/05/13(水) 14:14:46.69 ID:URUm4HTQ.net
何の要素か知らんが、
「cssで作るスライドショー」とかでググったら答えが落ちてそう

571 :デフォルトの名無しさん:2020/05/13(水) 14:21:07.89 ID:WBibu7Ic.net
>>569
自分で決められないならとりあえずビッグネームのstyle guideに従っとけばいい

JavaScript =>single quote
HTML => double quote
CSS => single quote
https://google.github.io/styleguide/jsguide.html#features-strings-use-single-quotes
https://google.github.io/styleguide/htmlcssguide.html#HTML_Quotation_Marks
https://google.github.io/styleguide/htmlcssguide.html#CSS_Quotation_Marks

572 :質問者:2020/05/13(水) 15:12:19.72 ID:5xfr/P29.net
>>567
ありがとうございます。

>>568

>>・web上でモニタリングをしたい
>誰が何をどうやってモニタリングするの?

やりたい事は、100個のセンサや機械の情報をブラウザ上にリアルタイムで表示して、異常ならば、ブラウザを見てる人に通知したいということです。

>・10秒ごとに自動更新
センサーや機械の情報です。


>>これをサーバーに置いて10人くらいがアクセスしたら、サーバーの負荷はどうでしょうか?
>クライアント側JavaScriptの話でサーバー負荷とどう関係があるの?

javascriptで動的にイメージ画像を切り替えたら、結局サーバーにアクセスすることになってしまうのではと思ったのです。
画像イメージはサーバー上に置かれているので。一回アクセスしたらキャッシュされるかもしれませんが。

>>570
ありがとうございます。

573 :デフォルトの名無しさん:2020/05/13(水) 15:52:15 ID:WBibu7Ic.net
>>572
なるほど

サーバー側のセンサーや機械の状態更新を
クライアントからのアクセスによってトリガーする仕組みだと不味いけど
そうじゃなくてサーバー側ですでに存在してるデータに対して
10人くらいが数秒に1回アクセスするんなら
その負荷は微々たるものだよ

各状態に応じた画像は
最初にモニタリング用画面にアクセスした時に全部ダウンロードさせておいて
数秒に1回AJAXでサーバー側の状態のみ取得してその値によって画面表示を切り替えればいい

574 :質問者:2020/05/13(水) 16:03:47.03 ID:5xfr/P29.net
>>573
そうです。

>最初にモニタリング用画面にアクセスした時に全部ダウンロードさせておいて

この技術がわかりません。何をキーワードにして調べれば良いのでしょうか、すみませんが、お願いいたします。

575 :質問者:2020/05/13(水) 16:51:28.10 ID:5xfr/P29.net
すみません。解決しました。
最初にリロードしたときに正常な画像だけでなく、異常な画像もリンク(表示しない)しておけばよいのですね。
そうしておけばブラウザ側にキャッシュされるので。

576 :デフォルトの名無しさん:2020/05/13(水) 17:25:36.80 ID:WBibu7Ic.net
>>575
いろいろ方法あるけど一番堅いのはCSSスプライト
https://developer.mozilla.org/ja/docs/Web/CSS/CSS_Images/Implementing_image_sprites_in_CSS

他には
- visibility: hidden
- JavaScriptでページロード時に画像を読み込む
- 凡例として異常時の画像も一つ表示しておく
など

この辺の話はJSのプログラミングの話じゃないので
誰か書いてたけどweb制作板で聞いたほうがいいかも

577 :質問者:2020/05/13(水) 17:50:05 ID:5xfr/P29.net
>>576

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

578 :564:2020/05/13(水) 18:01:05 ID:VSt/R8YQ.net
>>569

>>565
にも書いたけど、

VSCode のデフォルトが、Beautify で、拡張機能のPrettier が有名

Ruby on Rails で有名な、Airbnb などのStyle Guide だろ

579 :デフォルトの名無しさん:2020/05/13(水) 18:09:08 ID:VSt/R8YQ.net
>>572
>画像イメージはサーバー上に置かれているので。一回アクセスしたらキャッシュされるかもしれません
確かに、同じファイルパスなら、キャッシュを使う

データは、ajax で、JSON でやりとりすることが定番

580 :質問者:2020/05/14(木) 00:27:54.68 ID:XcM6moP2.net
>>579

はい、ありがとうございます。

581 :デフォルトの名無しさん:2020/06/20(土) 11:09:53 ID:iiFnSxTf.net
できる訳ないだろうなと思いつつ聞くんだけど、javascriptでローカルのファイルを別のディレクトリに移動させたりすることってできる?

582 :デフォルトの名無しさん:2020/06/20(土) 13:24:24 ID:hfA4Ec7B.net
つNode

583 :デフォルトの名無しさん:2020/06/20(土) 13:27:05 ID:hfA4Ec7B.net
つcscript/wscript

584 :デフォルトの名無しさん:2020/06/20(土) 20:45:20.50 ID:iiFnSxTf.net
>>582
これはサーバサイドでjs書いたときの話だもんね

ユーザーがブラウザ操作してる時に動くブラウザ上のjsでファイル操作がしたいんだよなあ
そんなこと出来たらやべーからまあ無理なんだろうけど、なんか代わりの手段ないものか

585 :デフォルトの名無しさん:2020/06/20(土) 21:17:03.49 ID:hfA4Ec7B.net
>>584
プラットフォームとしてブラウザが欲しいのなら electron = chromium + node がそれだろ。
代表アプリはatomとVSCode。
サイトのJSでユーザーのローカルファイルを弄りたいというのなら、それが出来るようなら困るだろ。

586 :デフォルトの名無しさん:2020/06/20(土) 21:21:46.31 ID:hfA4Ec7B.net
>>584
あと、今現在使っていいか、使えるか、というのはあるが、技術的にはActiveX。
wiki読めば大体分かるはず。

587 :デフォルトの名無しさん:2020/06/29(月) 12:03:45.83 ID:Na3g7Gku.net
うんち

588 :デフォルトの名無しさん:2020/06/29(月) 12:04:05.78 ID:Na3g7Gku.net
htmlタグに書くonclick=の中には
JSの処理を直接書くこともfunction(){}と書いてその中に処理を書くことも、どちらもokですか?その違いはありますか?

589 :デフォルトの名無しさん:2020/06/29(月) 12:07:23.28 ID:Na3g7Gku.net
onclick=のあと関数名(関数が入った変数)を書く場合は()は書かないほうがいいですか?書くべきですか?


<button onclick='unko'> or <button onclick='unko()'>

unko=function(){
alert('unko!');
}

みたいなときです。

590 :デフォルトの名無しさん:2020/06/29(月) 12:51:41.62 ID:I7ZZ3pdS.net
最初に喧嘩売ってきてわろた

591 :デフォルトの名無しさん:2020/06/29(月) 12:54:40.10 ID:ze6DZkOI.net
>>588
こういう感じで、直接内容も書けるみたい

on@click='con@sole.log("abc")'

注意! 書き込めないため、@ を入れました

>>589
on@click='unko()'

みたいに、すべて( ) が付いている

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

こちらの板は、web制作管理板が荒らしに荒らされた時に、
緊急避難的に立てられたものだから、今は使われていない

592 :デフォルトの名無しさん:2020/06/29(月) 21:14:29 ID:WKcpUWSm.net
>>587-589
オムツがまだ取れてなくてウンコ臭い初心者はWeb板へ
何度も言われていることだが

それ以前にお前レベルの超超超超初心者はそもそもここ(5ch)に来るべきではない
各自が勝手に意見を言ってるだけだから、それなりの確率で間違いや勘違いはどうしても発生する
それを自分で修正する能力がないうちは、5chを使うのは止めた方がいい
超超超超初心者なら、少なくとも間違っていたら訂正してもらえる場所、
つまり本か信頼出来るWebサイトを参考にするべきだ

なお俺はお前みたいなウンコお漏らし初心者用の本やサイトは知らない
というか、そんな、始めて3時間で通過するレベルの事柄を、ネットで質問しようとすること自体、かなり頭がおかしい
少なくともお前はプログラマには向いてないし、間違って就職しても浮きまくって仲間に入れず不幸な人生になるから止めとけ
それを教えてもらいたければ、「1週間の集中講座ででWebページ開設出来ます!」みたいなセミナーとかに行け
JavaScriptの部を始めて10分後にはそれについて教えてくれるだろう

593 :デフォルトの名無しさん:2020/06/30(火) 01:12:09.33 ID:l6PnVpoX.net
>>552
通りすがりだけどソレみて長年のモヤモヤがはれました、ありがとう。

594 :デフォルトの名無しさん:2020/07/23(木) 00:01:42.43 ID:qAfVnVsp.net
$("div").click(function())

595 :デフォルトの名無しさん:2020/07/23(木) 00:02:03.83 ID:qAfVnVsp.net
$("div").click(function(){
})

596 :デフォルトの名無しさん:2020/07/23(木) 00:05:54.40 ID:qAfVnVsp.net
$("div").click(function(){
$(this).css('background','red');
})

のこの$(this)が$("div")を指す理由はなんですか?
Javaではthisというのはそれを定義したクラスのインスタンスを指すと習いましたが。

597 :デフォルトの名無しさん:2020/07/23(木) 00:38:57.14 ID:cGFBf2BV.net
jQuery, Haxe のthis は、JavaScript/TypeScript のthis とは異なる。
this がwindow を指したり、おかしな部分があるので、それを変えている

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

こちらの板は、web制作管理板が荒らしに荒らされた時に、
緊急避難的に立てられたものだから、今は使われていない

598 :デフォルトの名無しさん:2020/07/23(木) 07:12:59.16 ID:qAfVnVsp.net
>>597
「おかしな部分があるので、それを変えている」とは?

599 :デフォルトの名無しさん:2020/07/23(木) 07:13:47.98 ID:qAfVnVsp.net
thisの正体を見分けるコツはないですか?

600 :デフォルトの名無しさん:2020/07/23(木) 07:32:15.26 ID:/b5pS+w+.net
>>596
> のこの$(this)が$("div")を指す理由はなんですか?

DOM APIとの互換性

例えば、これのイベントハンドラの中身を書き換えるならば
$("div").click(function(){
  $(this).css('background','red');
})

このようになる。(おまけで引数のjQuery eventを追加)
$("div").click(function(event){
  this.style.background = 'red';
})

このイベントハンドラ(function)はDOM APIと互換性があるので全く同じように使える。
(引数のeventはjQuery eventではなくDOM APIの eventだがある程度の互換性がある)
divElement.addEventListener('click', unction(event){
  this.style.background = 'red';
})

つまりイベントハンドラをDOM APIのものと互換性があるようにしているのが理由
そうすることで、コードを相互に変換しやすくなる。
例えば後からjQuery化するときなど少しずつ移植できる。

601 :デフォルトの名無しさん:2020/07/23(木) 07:36:27.79 ID:/b5pS+w+.net
>>599
thisは実行時に変わるからコードを見てもわからない
つまり呼び出されているコードを見てもわからない。
「誰が呼び出しているか?」を知る必要がある。

同じthisであっても「あれ」に登録して「あれ」から
呼び出されれば「それ」とは違うthisの場合がある。

だからthisが何かは仕様を調べるしかない
関数の引数にobjが入ってる場合、このobjの正体はなんですか?と
言ってるのと同じ質問だよ

602 :デフォルトの名無しさん:2020/07/23(木) 07:39:49 ID:/b5pS+w+.net
>596
Javaではthisを変えられることができないが
JavaScriptはthisは呼び出し側で与えるオブジェクト
JavaScriptだけではなくRubyやPerlなどいくつかの言語は呼び出し側でthisを変更できる

603 :デフォルトの名無しさん:2020/07/23(木) 08:18:34.22 ID:qAfVnVsp.net
>>600-602
ありがとうございます。
深いですね。
まだちゃんと理解できてないですが
ゆっくり吟味して考えてみます。

604 :デフォルトの名無しさん:2020/07/23(木) 08:20:56.24 ID:qAfVnVsp.net
this=eventとなっているということかな?

605 :デフォルトの名無しさん:2020/07/23(木) 08:24:35.38 ID:/b5pS+w+.net
>>604
違うぞ。eventはおまけ。thisの話とは直接関係ない

606 :デフォルトの名無しさん:2020/07/23(木) 08:25:10.27 ID:/b5pS+w+.net
ようするにjQueryはブラウザ標準のDOM APIと
互換性をもたせて作られているということ

607 :デフォルトの名無しさん:2020/07/23(木) 20:38:07.50 ID:QHkNbR5l.net
>>599
ID:/b5pS+w+ の言っていることは全面的に正しいが、補足すると、
> thisの正体を見分けるコツはないですか?
こんな事を言っている時点で糞サイト(或いはゴミ本)に騙されているから止めとけ。
見分ける必然性も意味もない。単なる暗黙の引数程度でしかなく、
実際にそれなりに組織的にコーディングするとcallはそれなりに使う。

DOM APIのthisがe.currentTargetを指すのはそもそもJava用の仕様、
つまりJavaでもクライアントスクリプトを書けるようにする為の仕様らしい。(とここ5chで聞いた)
しかし現在はJavaで書く奴なんて一人もいないし、JavaScriptにおいてはe.targetを全面的に使うのが正しい。
理由は、
1. thisにはe.currentTargetが入っているが、マトモなサイトなら通常はbubbleを利用する為、e.target主体で書くことになる。
 つまりこの仕様のthisでは使い物にならない。
2. e.currentTragetで役に立つ場合は、Elementに直接onXXXかaddEventListenerした場合だが、
 こんな事をやっているのはjQueryを使っている程度の簡単なサイトだけ。
 やれば分かるがbubbleを利用した方が実行効率もよく、コードも綺麗になるから、マトモなサイトは全部そうしてる。
 ただし、Elementに直接貼った方が直感的で分かりやすいので、jQueryのような簡単/初心者向けの場合には活用される。
 (なおjQueryでもbubble主体で書くことは可能ではあるが、それをやるとjQueryの意味がほぼ無くなるので普通はやってないと思う)

608 :デフォルトの名無しさん:2020/07/23(木) 20:39:00.72 ID:QHkNbR5l.net
3. それなりに組織的にコーディングすると、どうしてもイベントハンドラで共通の関数を使いたい要求が出てくる。
 しかしイベントハンドラだとthisがe.currentTargetによって潰されているので、共通関数をクロージャ(最終段はグローバル)で掴むしかないが、
 クロージャはクローズ(追加不能だしコード配置が限定される=C++で言うクラスはクローズ、namespaceはオープンと同じ意味のクローズ)ので、
 現実的には使いにくく、俺はイベントハンドラを集めたオブジェクト(その中に共通関数も入っている)をthisとしてcallし直して、
 イベントハンドラ内ではthis.my_sub_function()で共通関数を呼べるようにしている。
 この場合、thisは単なるオブジェクトなので、継承出来るのがいい。(共通関数の共通関数を__proto__側に追い出せる)
 どうせthisが使い物にならない仕様なので他の連中も同様にやっているとは思う。

なお俺はjQuery不要派だがjQuery自体は初心者には分かりやすく偉大だと思っている。
実際にjQueryを使っていて問題ないのなら使うこと自体も悪いことではない。
ただしそれは世の中のマトモなサイト≒ガチのプログラマーが本気で書いたサイトではほぼ使われていない手法だということも理解しておいた方がいい。
といっても今の君には分からないだろうが、イベントハンドラ内でthisをe.currentTargetとして利用することはガチのサイトではほぼ無い、ということ。
今はどうせ何も分かってない状態なんだろうから、それならイベントハンドラ内ではthisを使わずe.currentTargetを使う癖を付けた方が多分いい。
それ以前にbubbleを使うようにした方がいいが。

609 :デフォルトの名無しさん:2020/07/23(木) 20:41:48.09 ID:QHkNbR5l.net
といっても多分さっぱり何がなにやら、だと思うが、そういうものだと思っておいてくれ。
質問の質問を受けていたら話が進まないのでそれは断る。

610 :デフォルトの名無しさん:2020/07/23(木) 21:58:10.24 ID:k24nyzXR.net
>>607
>  (なおjQueryでもbubble主体で書くことは可能ではあるが、それをやるとjQueryの意味がほぼ無くなるので普通はやってないと思う)

イベントのキャプチャフェーズとバブリングフェーズの話をしてるなら
jQueryはバブリングフェーズしか対応してません
jQueryの意味がなくなる?なぜですか?

そもそもIE8以前がキャプチャフェーズに対応してないので
それ以前からあるjQueryでは実装が不可能です。
(jQuery 4.0では実装されるらしい)


間違ったことを書かないでください

611 :デフォルトの名無しさん:2020/07/23(木) 22:00:14.35 ID:k24nyzXR.net
>>608
> 現実的には使いにくく、俺はイベントハンドラを集めたオブジェクト(その中に共通関数も入っている)をthisとしてcallし直して、
> イベントハンドラ内ではthis.my_sub_function()で共通関数を呼べるようにしている。
> この場合、thisは単なるオブジェクトなので、継承出来るのがいい。(共通関数の共通関数を__proto__側に追い出せる)

やめましょう。無関係のイベントハンドラをまとめることは
単一責任の原則に違反しています。

612 :デフォルトの名無しさん:2020/07/23(木) 22:01:00.61 ID:k24nyzXR.net
>>608
> イベントハンドラ内でthisをe.currentTargetとして利用することはガチのサイトではほぼ無い、ということ。
いいえ。殆どがthisを使っています。e.currentTargetは冗長なだけです。

613 :デフォルトの名無しさん:2020/07/23(木) 22:41:43.25 ID:k24nyzXR.net
>>607
> DOM APIのthisがe.currentTargetを指すのはそもそもJava用の仕様、
> つまりJavaでもクライアントスクリプトを書けるようにする為の仕様らしい。(とここ5chで聞いた)

逆です。Javaではe.currentTargetを使い、thisは使えません。
(当時の)Javaでは言語仕様上の制限でイベントハンドラとして関数を使用することはできません。
イベントハンドラはオブジェクトである必要があります。

イベントハンドラ自体がオブジェクトであるため、thisはイベントハンドラオブジェクトになります。
そのためJavaでthisは使えません。

また昔のIEはaddEventListnerがなくattachEventを使いますが。
attachEventの場合thisはwindowでありe.currentTargetではありません。
つまり初期のIEのDOM APIはもちろんJavaでも使えますが
event.srcElement(e.currentTarget相当)しか実装されてないということです。
thisがe.currentTargetなのはJavaScriptのために作られた仕様です。

614 :デフォルトの名無しさん:2020/07/23(木) 22:44:12.81 ID:k24nyzXR.net
>>607
> JavaScriptにおいてはe.targetを全面的に使うのが正しい。
いいえ。e.targetは廃止されてます。
https://developer.mozilla.org/ja/docs/Web/API/Event/target

わざと正反対のことを書いてるんですかね?

615 :デフォルトの名無しさん:2020/07/23(木) 22:47:04.66 ID:QHkNbR5l.net
>>610
キャプチャフェーズの話はしてない。
なお俺の判断では、キャプチャフェーズは余程のパッチ当て以外では使うべきではない。
あれは使わないでも十分組めるし、そもそもキャプチャフェーズを使わなければならないシチュエーションがまるでない。
だから俺は何であの仕様が入れられたのか不明なのだが、君はそれが分かるか?
具体的に、キャプチャフェーズのユースケースを知りたい。

> jQueryの意味がなくなる?なぜですか?
jQueryは基本的に
queryしたElementに何か(この場合はイベント追加)するのを宣言スタイルで短く分かりやすく書けるのが売りだろ。
バブル主体で書くとそもそもqueryしないから、jQueryを使う意味がないんだよ。
それはやれば分かる。分からないのはやってないからでしかない。

> やめましょう。無関係のイベントハンドラをまとめることは
> 単一責任の原則に違反しています。
無関係ではないんだよ。
そしてその考え方がJava的オブジェクト指向の限界であり、JavaでGUIを誰もやらない理由だよ。
いずれにしても、JavaのGUIなんてキングオブゴミだし、GUIに関してはJava的オブジェクト指向は一旦捨てた方がいい。
実際、.NETにしても、データはバインディングでグローバルストア方式になってるだろ。
(末端のオブジェクトにデータを持たせている風に見せているが、
現実問題としてそれだと状態のセーブが出来なくて(やりにくくて)いきなり詰むから、実際はバインディングでゴニョゴニョ出来るようにしている)
だからJava的な、末端のオブジェクトにデータもイベント関数も全部持たせる、というのがGUIに絶望的に向いてないんだよ。
だからJavaではろくなGUIが作れない、というよりは無駄に苦労するので誰もやらない。その結果が今だ。

> いいえ。殆どがthisを使っています。e.currentTargetは冗長なだけです。
それは君がbubbleを使ってないから。jQueryもだがフレームワーク等は仕様はDOMAPIに合わせているだろうけど、
実際にbubbleの場合はe.currentTargetなんて使い物にならないから当然thisも使わない。
これもやれば分かるだけのこと。君はやってないだけ。

616 :デフォルトの名無しさん:2020/07/23(木) 22:49:01.44 ID:k24nyzXR.net
>>615
> バブル主体で書くとそもそもqueryしないから

そういう意味ですか?
意味不明なので他のわかりやすいサイトを
探し出してください

617 :デフォルトの名無しさん:2020/07/23(木) 22:49:21.91 ID:k24nyzXR.net
×そういう意味ですか?
○どういう意味ですか?

618 :デフォルトの名無しさん:2020/07/23(木) 22:50:10.57 ID:k24nyzXR.net
>それは君がbubbleを使ってないから。

bubbleを使うとやらのコードを書いてください

619 :デフォルトの名無しさん:2020/07/23(木) 22:53:40.02 ID:k24nyzXR.net
Description: The current DOM element within the event 「bubbling」 phase.
https://api.jquery.com/event.currentTarget/

620 :デフォルトの名無しさん:2020/07/23(木) 22:53:41.19 ID:QHkNbR5l.net
>>613
いや俺はthisがオブジェクトそのものだと聞いたが、
まあJavaの仕様については俺は詳しくないし、いずれにしてもスレチだし、この話は止めよう。

>>614
それは初耳だが、
LS見た限り当然載っているから移動されただけではないか?
そのページのLSの所押すと割と丁度いい場所に飛ぶから見てみればいい。

やれば分かるが、バブルで組んだ場合にe.target無しでは組めない。
廃止されるにしても、名前が変わって何かが定義されるとかであって、丸々捨てられることはないよ。
そしてbubbleを使わずに一々全Elementにイベントを付けていくのは完全に旧式であって、
マトモなサイトでは誰もそんなことやってない。
それも確認してみればいい。

621 :デフォルトの名無しさん:2020/07/23(木) 22:54:31.55 ID:k24nyzXR.net
jQuery event.currentTarget
日本語訳 説明:イベントバブリングフェーズ内の現在のDOM要素。

622 :デフォルトの名無しさん:2020/07/23(木) 22:55:20.17 ID:k24nyzXR.net
>>620
だからjQueryはバブルしかサポートしてないし、
jQueryのevent.currentTargetは(DOM APIと同じで)
イベントバブリングフェーズ内の現在のDOM要素。

623 :デフォルトの名無しさん:2020/07/23(木) 22:57:37.04 ID:k24nyzXR.net
>>620
> そしてbubbleを使わずに一々全Elementにイベントを付けていくのは完全に旧式であって、

jQueryでは全Elementにイベントハンドラを使えずに、
ocumentエレメントにイベントハンドラを付ける場合このように書きます。

$(document).on('click', 'a', function() {
 $(this).css("background": "red");
});

知ってましたか?w

624 :デフォルトの名無しさん:2020/07/23(木) 23:16:41.69 ID:k24nyzXR.net
https://jsfiddle.net/m8q15376/

例えばこの2つのコードはイベントハンドラをつけてるところは違いますが
同じよう動作をします。thisが使えない?何の話でしょうかねw

$("#id1").on('click', 'a', function() {
 $(this).css("background", "red");
});

$("#id2 a").on('click', function() {
 $(this).css("background", "red");
});

625 :デフォルトの名無しさん:2020/07/23(木) 23:18:15.34 ID:QHkNbR5l.net
>>622
君と話が通じないのは君がbubble主体で組んだことがないからだよ。
ただし、bubbleの重要性に触れた『初心者向け』サイトは皆無で、俺が知ってるのはuhyohyoだけ。
気になるならそこでも読むんだね。
或いはそこら辺のまともなサイト、ガチの商用サイトだとbubbleを使ってない方が珍しい(と思いたい)から、見てみるとか。
ただし日本のサイトは割とまじで糞で、20年前と同じですねー、ってのも普通にあるからそういうところは駄目だが。
(ここ5chもそうだし)

ちなみに2度目だが、フェースの話はしてない。
イベントがバブルするのを「イベントバブル」と言うんだよ。
これはWPF等でも使われているからJavaScriptのローカル用語ではなくてプログラミング用語だ。
(といっても俺が知っている限りイベントバブルを最初に実装したフレームワークはHTMLで、
それらをWPF等も採り入れたから当然同じ用語になっているだけだが)
そしてそれをbubbleと(短く短くとうるさいお前ら用に)略して言っているだけ。
もう一度言うが、フェーズの話はしてないし、そもそも既に書いたように俺はキャプチャフェーズの存在価値が分からない。
今のところの見方では、あれは不要な仕様だと思う。
jQueryでも対応してないのなら、実際それで困ることはないからだろ。


>>623
知ってる。そしてそれだとjQueryを使う意味が無い=生のDOMAPIでも同様に書けるだろ
だからみんなjQueryを捨て始めてるだけ。
勿論君のようにjQueryが無いと死んじゃう人がそれに抗っているのも知ってる。

626 :デフォルトの名無しさん:2020/07/23(木) 23:21:08.33 ID:k24nyzXR.net
もうわかりましたね? ID:QHkNbR5l はイベントデリゲーションのことを
バブルなんて言ってるわけです(笑)

https://developer.mozilla.org/ja/docs/Web/API/Event/target
> event.target プロパティは、イベントデリゲーションを実装するために使用できます。

所詮オレオレ用語を使うレベルなんですよ

627 :デフォルトの名無しさん:2020/07/23(木) 23:22:10.11 ID:QHkNbR5l.net
>>624
だからそれ明らかにイベントバブル使ってないじゃん。
それを>>623形式で書いた時にe.targetが無いとどうしようもないでしょ。
それを言ってるんだよ。

628 :デフォルトの名無しさん:2020/07/23(木) 23:22:48.51 ID:k24nyzXR.net
>>625
> 知ってる。そしてそれだとjQueryを使う意味が無い=生のDOMAPIでも同様に書けるだろ

では生のDOM APIを使ってe.targetなしで書いてみてください。
できますか? jQueryはe.targetなしで書きました。

629 :デフォルトの名無しさん:2020/07/23(木) 23:23:26.39 ID:k24nyzXR.net
>>627
> だからそれ明らかにイベントバブル使ってないじゃん。]

最初に言ったよね?イベントバブル使うコードかけって
なんでお前かけないの?

630 :デフォルトの名無しさん:2020/07/23(木) 23:24:31.81 ID:k24nyzXR.net
>>627
1. jQueryのコードはイベントバブルしか使わない(使えない)
2. >>623のコードはe.targetを使ってない

ここまではいいですかねぇ(呆れ)

631 :デフォルトの名無しさん:2020/07/23(木) 23:28:46.58 ID:QHkNbR5l.net
>>626
まあ君との話はもうする価値がないから終わりにするけど、
イベントバブルはオレオレ用語ではないと思うよ。
イベントデリゲーションってのは確かにそこにあるが、初めて聞いたが。

e.targetについては、
> 複数の要素に同じイベントハンドラを割り当てて、どれかでイベントがあったときに何かさせたいような場合、e.target はとてつもなく有用なものです。
> 複数の要素に同じイベントハンドラーを割り当てて、どれかでイベントがあったときに何かさせたいような場合、e.target はとてつもなく有用なものです。
と、重要だからか?まじで2回書いてあるし、それが廃止とか使用禁止とかにはならないよ。
https://developer.mozilla.org/ja/docs/Learn/JavaScript/Building_blocks/Events

632 :デフォルトの名無しさん:2020/07/23(木) 23:28:53.91 ID:k24nyzXR.net
> イベントバブルを最初に実装したフレームワークはHTMLで、

笑うしかないわw HTMLがフレームワークとかw

633 :デフォルトの名無しさん:2020/07/23(木) 23:29:21.73 ID:k24nyzXR.net
> イベントデリゲーションってのは確かにそこにあるが、初めて聞いたが。

はい、初めて聞くレベル

634 :デフォルトの名無しさん:2020/07/23(木) 23:29:24.10 ID:HWiYfbuZ.net
>>614
そのMDNの廃止されたって言うのは以前の仕様書が廃止って意味じゃないの?

635 :デフォルトの名無しさん:2020/07/23(木) 23:30:10.44 ID:k24nyzXR.net
> e.targetについては、
> 複数の要素に同じイベントハンドラを割り当てて、どれかでイベントがあったときに何かさせたいような場合、e.target はとてつもなく有用なものです。

↓このコードが複数の要素に同じイベントハンドラを割り当てて、どれかでイベントがあったときに何かさせているコード

https://jsfiddle.net/m8q15376/

$("#id1").on('click', 'a', function() {
 $(this).css("background", "red");
});

636 :デフォルトの名無しさん:2020/07/23(木) 23:56:14.14 ID:k24nyzXR.net
まとめ

こいつはイベントデリゲーション(複数の要素に同じイベントハンドラを割り当てるコード)を
jQueryで書いているコードを見たことがない、もしくは見たことあっても気づかないで
jQueryでもDOM APIと同じように書くしかないはずだ!だからjQueryを使う意味がない!と考えていたようだが
そのイベントデリゲーションこそjQueryでシンプルに書けるコードの一つだったという話です。

637 :デフォルトの名無しさん:2020/07/24(金) 00:01:31.32 ID:2LubhzPR.net
>>633
というかね、「イベントバブル」をオレオレ用語だと噛みついてくる時点でお前はどうかしてる。
JavaScript使ってて今まで聞いたことがないってのは本当に酷い。

MDNにも「イベントのバブリング」とは書いてある。
> https://developer.mozilla.org/ja/docs/Web/Guide/Events/Creating_and_triggering_events
uhyohyoでも「イベントバブリング」って言ってる。
> https://uhyohyo.net/javascript/3_3.html
-ing形だから通じないって事も無いだろうし、そもそもbubbleフェーズを表すと勘違いしても大体通じる内容でしかない。
そこで噛みついてくる意味が分からん。

JavaScriptが世のGUIを席巻しつつあるのは、イベントバブルの功績が大きい。
これがあるのと無いのとでは、GUIの組みやすさの次元が違うんだよ。
だから.NETもWPFで、GTKでもGTK+3から採用されてる。(Qtは知らん)

それを全く使わずにJavaScriptのGUIを語るのは完全に間違ってる。
そこら辺がjQueryしか出来ない人(つまり君とか)の問題だと思うよ。
jQueryしか出来ない人が馬鹿にされているのは君も知っているだろ?そういうことだよ。

638 :デフォルトの名無しさん:2020/07/24(金) 00:22:53.71 ID:fMjVnhWI.net
お前のオレオレ用語っていうのは「バブル主体」だアホめ
なんだよバブル主体って(笑)

639 :デフォルトの名無しさん:2020/07/24(金) 00:24:19.77 ID:fMjVnhWI.net
>>637
> JavaScriptが世のGUIを席巻しつつあるのは、イベントバブルの功績が大きい。

だから、イベントバブルじゃなくてイベントデリゲーションな(笑)
何がオレオレ用語なのかわかってない。
用語の使い方を間違ってんだよお前は。

jQueryはイベントバブルを使ってる

640 :デフォルトの名無しさん:2020/07/24(金) 00:25:21.34 ID:fMjVnhWI.net
何度も言うがjQueryを使うということは
イベントバブルを使ってるということだ

641 :デフォルトの名無しさん:2020/07/24(金) 00:28:52.61 ID:fMjVnhWI.net
ちなみにイベントデリゲーションという用語は
MDNでも使われているが、jQueryが最初に使った用語なんじゃないかと思ってる。

もともとはjQueryでイベントデリゲーションを使う時
delegateというメソッドを使っていたから。それが廃止になりonに統一された。

onに統一された結果、jQueryでイベントデレゲーションを使ったコードと
使ってないコードの差異が減って、e.targetを使わずにthisでコードが書けるようになった。

jQueryでイベントデレゲーションを使うのは、DOM APIを使うよりも
格段にシンプルに書けるようになっている
無関係のイベントハンドラを統合するという単一責任の原則に反するコードを書くことなく
イベントデレゲーションを使うことが可能になっている。

642 :デフォルトの名無しさん:2020/07/24(金) 00:33:37.06 ID:2LubhzPR.net
>>638-640
半島に帰れ

643 :デフォルトの名無しさん:2020/07/24(金) 01:22:11.42 ID:2LubhzPR.net
>>627
訂正、>>624でもバブルを利用しているようだ。

jQueryはこの形式だとDelegated event handlers として扱われ、
on時点でサブクエリして一致した子要素に付けるのではなく、
内部的にバブルしてきたイベントを使い、実行時にクエリして一致を確かめるようだ。(後半部は予想、実装依存)
https://api.jquery.com/on/

だから確かにバブルを利用してはいるが、これだともっさり遅くはなる。(とはいえGUIの場合は大抵問題にはならない)
jQueryは使ってないし今後も使う予定もないので仕様には詳しくなく、見た目で判断してしまった。
なるほど何だかんだで上手く出来てはいる。

が、まあ、いずれにしてもこれをDOMAPIだけで書くのも別段苦労しないし、
jQuery内部でe.targetを使っているだけで、e.targetが無ければjQuery自体が組めないだけでしかない。


>>641
イベントデリゲーションの方がかなりオレオレ用語だと思うが。
確かにMDNには書いてあるが、俺は今まで聞いたこともなかったし、そもそもそれを「デリゲーション(キリッ」とかいうのもどうかしてると思うが。
OOPで言う委譲に当たるから「デリゲーション」なんだろうが、それはOOPで言う「継承か委譲か」、という話とは全然違っていて、
単に親要素でしかなく、子要素とは何の関わりもない。(一応包含してはいるが)
だから無理やりOOP的な解釈をすれば「デリゲート」しかないのだろうけど、
それは、世の中の全てを無理矢理OOPで解釈するJava脳みたいな感覚を受け、
Java以外で普通にOOPを分かっている奴からしたら相当気持ち悪い使い方だし、実際に流行ってもないだろ。
これが気持ち悪いと思わないのは君がOOPを理解してないからだよ。
ただし俺はGUI自体がOOPにフィットしないと思っているから、GUIしかやらないのなら理解している必要はないとも思うけども。

そして君は都合の悪い>>634は無視なのか?
既に言ったが、現在の状況でe.targetが無くなることはない。
ただ、あの辺デタラメに拡張して仕様がグダグダなので、整理しろよな、とは思うが。

644 :デフォルトの名無しさん:2020/07/24(金) 01:48:12.97 ID:2LubhzPR.net
ちなみにgoogle、

イベントバブル 約 22,500,000 件 (0.43 秒)
イベントデリゲーション 約 23,600 件 (0.28 秒)

645 :デフォルトの名無しさん:2020/07/24(金) 06:57:14 ID:9v9Epd9J.net
バブリングフェーズとイベントデリゲーションはバスタブとミカンくらい意味が違うがおんなじもんだと思ってたわけ?w

バブリングフェーズはイベント伝搬のステージのことで、
div
a
a
という構造ならhtmlからdiv→aと伝搬してくるのがキャプチヤリングフェーズ。
その後a→divとhtmlまで戻っていくのがバブリングフェーズ。

イベントデリゲーションは2つのaにイベントパンドラ設定するよりdiv1つに設定してaのイベントまとめてハンドルしてもらいましょうというやり方。

a(子)のイベントハンドリングをdiv(親または祖先)に委譲(delegate)するからイベントデリゲーション。

ちんちんとマンチェスターユナイテッドくらい意味が違うけどおんなじもんだと思ってたわけ?w

646 :デフォルトの名無しさん:2020/07/24(金) 07:07:22.97 ID:fMjVnhWI.net
>>643
イベントバブルっていうのはイベントがバブルのように上に上がっていくってだけで
一つのイベントハンドラで処理を行うって意味じゃねーんだよw
あーほ

647 :デフォルトの名無しさん:2020/07/24(金) 07:07:57.79 ID:fMjVnhWI.net
>>643
> だから確かにバブルを利用してはいるが、これだともっさり遅くはなる。(とはいえGUIの場合は大抵問題にはならない)
遅くなるの理由が何もないwww

648 :デフォルトの名無しさん:2020/07/24(金) 07:09:14.13 ID:fMjVnhWI.net
>>643
> 確かにMDNには書いてあるが、俺は今まで聞いたこともなかったし、

それがすべて。お前が無知なだけ

649 :デフォルトの名無しさん:2020/07/24(金) 07:10:55.78 ID:fMjVnhWI.net
結局の所 >>636 の まとめで書いたとおり

こいつはイベントデリゲーション(複数の要素に同じイベントハンドラを割り当てるコード)を
jQueryで書いているコードを見たことがない、もしくは見たことあっても気づかないで
jQueryでもDOM APIと同じように書くしかないはずだ!だからjQueryを使う意味がない!と考えていたようだが
そのイベントデリゲーションこそjQueryでシンプルに書けるコードの一つだったという話です。


そのイベントデリゲーションこそjQueryでシンプルに書けるコードの一つだったという話です。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

650 :デフォルトの名無しさん:2020/07/24(金) 07:27:42.03 ID:fMjVnhWI.net
>>643
> が、まあ、いずれにしてもこれをDOMAPIだけで書くのも別段苦労しないし、

だから最初に書けと言ってる。なんで書かないのか?

651 :デフォルトの名無しさん:2020/07/24(金) 08:10:38.59 ID:2LubhzPR.net
>>645
お前が日本語が出来なくていろいろ勘違いしてるだけだろ。

まず示したように、「イベントデリゲーション」なんて言葉は誰も使ってないから止めとけ。
イベントバブルの説明に必ず出てくる言葉なら、使用頻度=ヒットページ数も1:1になるはずであって、
約1000:1ってのは誰も使ってないって事でしかない。

> バブリングフェーズとイベントデリゲーションはバスタブとミカンくらい意味が違うがおんなじもんだと思ってたわけ?w
俺は同じ物だとは一言も言ってない。それを勝手に誤解しているのはお前の日本語が韓国人レベルだからだ。
ただ、これらは表裏一体であって、イベントがバブルしなければ纏めるも何もないので、
お前が思っているほど区別する意味もない。
お前みたいな文系馬鹿はやたら細かく区別して意味無くドヤる傾向があるが、プログラミングってのはそもそもそういうものではない。

実際問題として、イベントバブルを説明する際に、
確かに「バブルしてくるイベントを親で捕らえて纏めて処理する」事を示す名詞が欲しい、というのはあるだろう。
ただ、誰もそこで「イベントデリゲーション」なんて言葉を使ってないから1000:1の使用頻度になってる。
実際は、「バブルしてくるイベントを親で捕らえて」とそのまま言っているのだと思う。
ただそもそもバブルさせる=親で捕らえて纏めて処理する大前提だから、それ含めてイベントバブルでも大して問題ないんだよ。

652 :デフォルトの名無しさん:2020/07/24(金) 08:10:58.84 ID:2LubhzPR.net
同様にお前が無駄に拘っているのが以下だが、
> > イベントバブルを最初に実装したフレームワークはHTMLで、
> 笑うしかないわw HTMLがフレームワークとかw (>>632)
HTML/CSS/JavaScriptはほぼ常にセットで使われていて、どれだと区別する意味はないし、
確かに厳密にはどれでもないからWebAPIとか別括りにされてるが、そこに拘る意味もない。
俺は「イベントバブルを最初に実装した『フレームワークが』がHTMLだと言った。
お前的には「プラットフォーム」か、または別用語が適切なのかもしれんが、
いずれにしても言葉というのはコミュニケーションの手段であって、つまり通じるかどうかが最重要であって、
明らかに通じているのに揚げ足取りしているつもり?でドヤって来るのも頭おかしいとしか思えないが。
(オレオレ用語を使うなってのは「通じないから使うな」ということであって、オレオレ用語を使うこと自体が悪いというわけではない)

お前いつものjQuery厨か?
ならお前はここ2〜3年、まるで成長してないな。


>>650
むしろお前がそれを書けないと言っているに近いが、それをお前は認めるか?
日本語が通じない馬鹿なお前の為に敢えて言い直すと、
お前が「僕は書けませんから書いてみてください」と言うのなら書くが、
あまりに簡単すぎてお前の馬鹿さが際だつだけだぞ。


いずれにしても、脱jQueryなんてのが出てくるのはjQueryを使う意味がなくなりつつあるからであって、
お前がそれを気に入らなくても、それは事実として認めるしかないし、
実際にjQueryから輸入された仕様もあるのだからjQuery自体が糞だったわけでもないんだよ。
ただ、役割を終えつつある、というだけの話であってさ。

653 :デフォルトの名無しさん:2020/07/24(金) 08:42:13.69 ID:9v9Epd9J.net
バブリングフェーズとイベントデリゲーションはバスタブとミカンくらい意味が違うがおんなじもんだと思ってたわけ?w

654 :デフォルトの名無しさん:2020/07/24(金) 08:55:46.07 ID:fMjVnhWI.net
> まず示したように、「イベントデリゲーション」なんて言葉は誰も使ってないから止めとけ。



https://developer.mozilla.org/ja/docs/Web/API/Event/target
event.target プロパティは、イベントデリゲーションを実装するために使用できます。

https://developer.mozilla.org/en-US/docs/Web/API/Event/target
The event.target property can be used in order to implement event delegation.

655 :デフォルトの名無しさん:2020/07/24(金) 08:56:14 ID:9v9Epd9J.net
> まず示したように、「イベントデリゲーション」なんて言葉は誰も使ってないから止めとけ。

えーっと、ボクチン英語が分かりませーんという話かな?www
英語
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_delegation
日本語
https://developer.mozilla.org/docs/Learn/JavaScript/Building_blocks/Events#Event_delegation

656 :デフォルトの名無しさん:2020/07/24(金) 08:58:29.43 ID:L9K/ZYyg.net
URLからしてイベントデリゲーション使ってるなw
誰も使ってない用語とは…?w

657 :デフォルトの名無しさん:2020/07/24(金) 08:58:39.33 ID:fMjVnhWI.net
>>651
> イベントバブルの説明に必ず出てくる言葉なら、

でてくるわけねーだろw
イベントバブル=イベントデリゲーションじゃねーんだから

DOM APIのイベントモデルではイベントバブルがデフォルトで使われる
イベントモデルの説明でバブルフェーズとキャプチャフェーズの話は出る
だがイベントデリゲーションはかならず使うものではない

お前が、イベントバブル=イベントデリゲーション (つまり同じ意味)だと
勘違いしてるから、使用頻度=ヒットページ数も1:1になるという間違った結論になってる

イベントデリゲーションはかならず使うものじゃないんだから
イベントデリゲーションの方が数は少なくなるのは当たり前

658 :デフォルトの名無しさん:2020/07/24(金) 09:03:00.98 ID:9v9Epd9J.net
プッチンプリンとにんにく卵黄は同じものだ!
その証拠に、卵黄にんにくのほうが検索ヒット数が少ない!!

にんにく卵黄なんて用語は誰も使ってない!
プッチンプリンが正しい!!


???wwwww

659 :デフォルトの名無しさん:2020/07/24(金) 09:08:11.32 ID:fMjVnhWI.net
>>652
> 俺は「イベントバブルを最初に実装した『フレームワークが』がHTMLだと言った。

HTMLの仕様にイベントバブルなんてものはない
DOM APIの仕様だ

「イベントバブルを最初に実装した」というのはどういう意味か言ってみ
上の要素でイベントを捕まえて処理することではないのはもう理解してるよな

お前は「イベントがDOM要素の下位から上位へバブルのように登っていくこと」を実装した。
と言ってるわけだが、自分で理解してるのか?

660 :デフォルトの名無しさん:2020/07/24(金) 09:09:27.92 ID:fMjVnhWI.net
>>652
> むしろお前がそれを書けないと言っているに近いが、それをお前は認めるか?

だからさっさと書けよ。お前をテストしてやってるに決まってるだろw
最初からコード書けと言ってるのになんで書けないのは
お前がそれを書けないと言っているに近いが、それをお前は認めるか?

661 :デフォルトの名無しさん:2020/07/24(金) 09:21:46.61 ID:fMjVnhWI.net
脱jQueryなんて言葉が出てきても、脱jQueryが進んでいないのは事実だろ

https://w3techs.com/technologies/history_overview/javascript_library/all/y

jQuery
2017年1月 71.9%
2018年1月 73.1% (+0.1%/月)
2019年1月 73.6% (+0.05%/月)
2020年1月 74.2%
同年2月 74.4% (+0.2%/月)※1ヶ月経過時点
同年6月 75.5% (+0.26%/月))※5ヶ月経過時点
同年7月 76.0% (+0.3%/月)※6ヶ月経過時点

今年はなぜかjQueryのシェアの増加が加速してきてるんだわ。
最初の1ヶ月で0.2%しか増えてなかったのに、
6ヶ月後は1.2%増ではなく1.8%増、増加スピードが上がってる

後半さらに増加スピードが上がるとは思えないが、
このペースだと今年は1年で4%も増える可能性だってある。
ここ数年1%程度しか増えていなかったのに不思議だ

脱jQueryなんて所詮言葉だけだったということだ

662 :デフォルトの名無しさん:2020/07/24(金) 09:24:24.50 ID:2LubhzPR.net
>>657
> イベントデリゲーションはかならず使うものじゃないんだから
> イベントデリゲーションの方が数は少なくなるのは当たり前
ここが違う。
バブルを利用する時点で「親で纏めて処理する」大前提なんだよ。これも既に言ったが。
逆に、バブルだけしても親で処理しないのなら意味無いだろ。
(まあバブル自体は勝手にするのだが)

だからイベントバブルの説明の際には必ず「親で処理する」事が含まれるんだよ。
これもお前みたいな文系馬鹿は「知識」としてそれぞれを別々にインストールしているから分からないのだろうが、
イベントバブルの説明=イベントバブル自体とその使い方の説明=当然親でイベントを纏めて処理する=「イベントデリゲーション」も説明される
なんだよ。イベントバブルをお前はJavaScriptの「知識」として捕らえ、
「バブルフェーズとキャプチャフェーズ」もまた別の知識であり、
「イベントデリゲーション」も全く別の手法として「別知識」としているから駄目なんだ。

イベントバブルだけ理解しても、普通は、「ほ〜ん、で?何が嬉しいの?」となるから、どうやって使うか、何が美味しいかまで説明されてる。
だけどそこでは誰も「イベントデリゲーション」と言ってないから1000:1の使用頻度になってる。
ただし実際にイベントバブルを活用するにはそれなりの知識と設計が必要であり、
初心者には無理だから初心者用サイトでの説明は皆無で、既に言ったとおり俺が知っているのはuhyohyoだけ。
そしてここら辺が有機的に繋がっているのを理解出来ないのは君が「イベントバブルを活用するのは難しい初心者」レベルだから。

お前は相変わらず初心者のままなんだよ。

663 :デフォルトの名無しさん:2020/07/24(金) 09:30:06.20 ID:fMjVnhWI.net
> バブルを利用する時点で「親で纏めて処理する」大前提なんだよ。これも既に言ったが。

誰が言ってるんですか?
そうであってほしいという願望ですよねw

664 :デフォルトの名無しさん:2020/07/24(金) 09:35:52.90 ID:2LubhzPR.net
>>659
> DOM APIの仕様だ
まあ厳密にはあれはDOMに入れるべき物でもないんだよ。
だから今も「For web developers(non-nomative)」という中途半端な扱いになってる。
あれはDOMと言うよりはプログラミングモデルであって、本来は別仕様を起こすべきなのだが、
それを言いだしたらきりがないから現状はDOMに突っ込まれているだけでさ。

> 「イベントバブルを最初に実装した」というのはどういう意味か言ってみ
> お前は「イベントがDOM要素の下位から上位へバブルのように登っていくこと」を実装した。
そうだぞ。俺はそう言ったんだ。
イベントがバブルするGUIフレームワークというのは、俺が知ってる中ではHTML/CSS/JavaScriptが初だよ。
それ以前の、XやMFC、.NET(Forms)ではバブルしない。

むしろお前は何をどう勘違いして俺に突っかかってきてるんだ?


>>660
お前が簡単に書けるのなら書かないよ。書く意味もないし。
それってconsoleログ知ってる俺スゲー的なレベルであって、そんなもん一々コード書いてても時間の無駄だろ。


>>661
そう思うのならそれでいいと思うが。
必死にjQueryにすがるからおかしくなるだけで。
必要ない人はjQueryを使わないし、実際必要なくなりつつあるだけの話で、必要だと思えば使い続ければいいし、それだけだろ。

665 :デフォルトの名無しさん:2020/07/24(金) 09:39:24.99 ID:2LubhzPR.net
>>663
なら逆に、「イベントバブルを利用するが親ではイベントを処理しない」方式で何か有効活用出来るか?
それがあれば「大前提」ってのは俺の勘違いだと認めるが。

666 :デフォルトの名無しさん:2020/07/24(金) 09:39:35.00 ID:fMjVnhWI.net
さて、どこに親で処理すると書いてあるのでしょうか?w
https://en.wikipedia.org/wiki/Event_bubbling

Use of Event Bubbling
To handle cases where one event has more than one handler,
event bubbling concept can be implemented. The major use of
event bubbling is the registration of default functions present in the program.
In recent times, not many developers use event capturing or bubbling in particular.
It is not necessary to implement event bubbling; it may become complicated for
the users to keep track of the actions getting executed because of an event.[1]

英語は読めるけど(あんたために、でも面倒なので)Google翻訳しますねw

イベントバブリングの使用
1つのイベントに複数のハンドラーがある場合を処理するために、イベントバブリングの概念を実装できます。
イベントバブリングの主な用途は、プログラムに存在するデフォルト関数の登録です。
最近では、特にイベントキャプチャやバブリングを使用する開発者は多くありません。
イベントバブリングを実装する必要はありません。イベントのために実行されるアクションを
ユーザーが追跡するのは複雑になる場合があります。[1]



「1つのイベントに複数のハンドラーがある場合を処理するため」というのは
要素をクリックしたときに、クリックした要素→それが含まれた親要素→さらにそれらが含まれた親要素と
複数の要素(の複数のクリックイベントハンドラ)が実行されるわけです。
これがイベントバブリングの例として上げられています。

そして主な用途はデフォルト関数(デフォルト処理)の登録です。
またイベントキャプチャやバブリングを使用する開発者は多くないとまで書いてあります。
親でまとめて処理する話はでてきていません。

面白いですね(笑)

667 :デフォルトの名無しさん:2020/07/24(金) 09:41:46.92 ID:fMjVnhWI.net
>>664
> むしろお前は何をどう勘違いして俺に突っかかってきてるんだ?

何をどうって、jQueryはイベントバブリングしかサポートしてないのに
jQueryでイベントバブルを使うと意味がないと言っただろw

どういう意味ですか?jQueryはイベントバブルしか使いませんよ?
イベントバブルを使うということは親で処理するって意味じゃありませんよ?
わかってますかw

668 :デフォルトの名無しさん:2020/07/24(金) 09:42:35.90 ID:fMjVnhWI.net
>>665
> なら逆に、「イベントバブルを利用するが親ではイベントを処理しない」方式で何か有効活用出来るか?
英語のwikipediaにかいてある。

> それがあれば「大前提」ってのは俺の勘違いだと認めるが。
それがあったのでお前の勘違いだと認めるようにw

669 :デフォルトの名無しさん:2020/07/24(金) 09:43:33.55 ID:fMjVnhWI.net
>>664
> イベントがバブルするGUIフレームワークというのは、俺が知ってる中ではHTML/CSS/JavaScriptが初だよ。

HTML/CSS/JavaScriptのいずれの仕様でもありません。

DOMの仕様です。DOMです。Javaでも使えるDOMです。
何度言えば理解できるんだ?

670 :デフォルトの名無しさん:2020/07/24(金) 09:48:58.90 ID:2LubhzPR.net
>>666
wikiじゃねーかよ!そりゃ書いた奴が分かってねえんだよ。
既に言ったが、世の中のGUIフレームワークはイベントバブルをこぞって採用してる。
.NETはWPFから、GTKは3から。Qtは知らんが間違いなく採用はされるかその方向の筈。
理由も既に言ったとおり、バブルが出来れば非常に効率よくGUIを実装出来るから、
それに慣れると、バブルが出来ないフレームワークなんてゴミにしか見えなくなるから。


>>667-669
どうにもお前とは話が噛み合わないからこの辺で終わりにしておこう。
色々既に言ったとおりだ。気になるなら読み返してみてくれ。

671 :デフォルトの名無しさん:2020/07/24(金) 09:49:55.44 ID:fMjVnhWI.net
>>670
> wikiじゃねーかよ!そりゃ書いた奴が分かってねえんだよ。

お前はwikipedia以外のなにか信用できるものを持ってきたか?
お前の意見はwikipedia以下だってことは理解してるか?

672 :デフォルトの名無しさん:2020/07/24(金) 09:52:19.09 ID:fMjVnhWI.net
>>670
jQueryは最初からイベントバブルを採用してるのを知らないで
イベントバブルだとjQueryの意味がなくなる!

といった話はどうなったの?w

別の話に逃げたねw

673 :デフォルトの名無しさん:2020/07/24(金) 10:00:24.59 ID:fMjVnhWI.net
まとめ更新

こいつはイベントバブルの用途をイベントデリゲーション(複数の要素に同じイベントハンドラを割り当てるコード)しかしらず
イベントバブル=イベントデリゲーションのことだ!と思い込んでオレオレ用語で「イベントバブルを実装!」と言っていた
こいつは自分にしか理解できない間違った用語の使い方を指定ながら、コミュニケーションがどうとか語っていた

こいつはMDNにかかれているイベントデリゲーションのページを見せても
世の中で使われてない!と強弁した。

こいつはHTML/CSS/JavaScriptがイベントバブルを実装した最初のフレームワークだと言った。
(当たり前がHTMLはマークアップ言語、CSSはスタイルシート、JavaScriptは言語で
どれにもイベントバブルに関する実装など存在しない。イベントバブルはDOMで規定されている)

こいつはjQueryは最初からイベントバブルに対応していたことも知らず、
(というか古いIEがイベントバブルしか実装されていなかったのでキャプチャフェーズに対応するのは不可能)
イベントバブルを使うとjQueryを使う意味がないと言った。

そしてjQueryで書いているコードを見たことがない、もしくは見たことあっても気づかないで
jQueryでもDOM APIと同じように書くしかないはずだ!だからjQueryを使う意味がない!と言っていた。
jQueryで(イベントバブルではなくw)イベントデリゲーションで実装してるコードを見せても
イベントバブルを使ってない!とか意味のわからないことを言った。

イベントデリゲーションこそjQueryだとDOM APIよりもシンプルに書けるコードの一つだった

こいつは脱jQueryが進んでいない現状を示しても、その事実を受け入れることができなかった

674 :デフォルトの名無しさん:2020/07/24(金) 10:01:50.66 ID:fMjVnhWI.net
jQueryおじさん完全勝利(笑)

675 :デフォルトの名無しさん:2020/07/24(金) 10:12:17.88 ID:2LubhzPR.net
>>671
一応読んだぞ。

まあそう思うのは自由だが、それは最初に書いてあるとおり、
> To handle cases where one event has more than one handler, event bubbling concept can be implemented. The major use of event bubbling is the registration of default functions present in the program.
つまり一つのElementに複数のイベントハンドラを付けたい時にバブルを活用出来るとか、
或いはrootにデフォルトのイベントfunctionを付けておけばそれを「上書き」する際に活用出来る、みたいなわけだが、
そんな使い方してるサイトなんて無いぞ。というかそんなことしたら怒られると思うが。
複数付けたければ普通にaddEventListenerすればいいだけだし、
サイトのスクリプトがユーザースクリプトその他によって「上書き」される前提で書いているサイトなんてほぼ無い。
あるにしてもこんな邪道なやり方ではなく、「サイトのスクリプトをオフにする」という、公式な無効化機能が付いてる。
というか、そうじゃないとお互いに困るだろ。お前はそれも分からないレベルなのだろうけど。


>>672
逃げたって何の事よ?
jQueryが採用しているとかそういう話ではなくて、
そもそもバブルは(お前が拘っている『DOMの仕様』なのだから)jQueryとは関係なく、勝手にする物だ。
そしてバブルを利用した書き方=親で纏めて処理する方式なら、
jQueryの得意とするqueryをすることがないからjQueryを使う意味がない、と言ったんだよ。
それはお前が本当に『書ける』というのならすぐに分かる話だろ。
お前はやっぱり書けないのだと思うよ。

676 :デフォルトの名無しさん:2020/07/24(金) 10:13:31.15 ID:fMjVnhWI.net
もう負け逃げしたようだが、
イベントバブルの一番のユースケースはこれなんだよ

<a href="link">link<span>test<span></a>

1. aのクリックイベントハンドラ
2. spanのクリックイベントハンドラ

両方のイベントハンドラを設定することができ
両方のイベントハンドラが発動する
これがwikipediaに書いてあったことの具体的な意味

そのイベント発動を行うフェーズがバブリングフェーズとキャプチャフェーズの二種類あり
バブリングフェーズにおいて下位の要素から上位の要素に伝搬することを
イベントバブリング(イベントバブル動作)という
(イベントバブルだけでは意味が不明確)

677 :デフォルトの名無しさん:2020/07/24(金) 10:15:13.60 ID:fMjVnhWI.net
>>675
まだ繰り返すのかw

> jQueryの得意とするqueryをすることがないからjQueryを使う意味がない、と言ったんだよ。

めんどくさいから突っ込まなかったことろを再掲するとかアホやなぁ
「queryをすること」ってなんだよ。どういう意味なのか言ってみ
queryしているコードを書いてみろって

678 :デフォルトの名無しさん:2020/07/24(金) 10:17:09.02 ID:fMjVnhWI.net
先に書いてやるか
jQueryでqueryすること(意味がよくわからんが)と言われれば
普通に思いつくのは、$('#id1"') とかなわけだが

>>624で「イベントデリゲーション」を使ったコードでも
このようにqueryしてますがなにか?


https://jsfiddle.net/m8q15376/
$("#id1").on('click', 'a', function() {
 $(this).css("background", "red");
});

679 :デフォルトの名無しさん:2020/07/24(金) 10:18:57.42 ID:fMjVnhWI.net
>>675
> つまり一つのElementに複数のイベントハンドラを付けたい時にバブルを活用出来るとか、

そんなことは英語に書いてない

> To handle cases where one event(一つのイベントが) has more than one handler (一つ以上のハンドラを持っている場合), event bubbling concept can be implemented.

「一つのElementに複数のイベントハンドラを付けたい」などとは書いていない。

680 :デフォルトの名無しさん:2020/07/24(金) 10:20:19.73 ID:fMjVnhWI.net
せっかくGoogle翻訳もしてやったのに
英語読めないなら、ちゃんと日本語も読めよ(笑)

681 :デフォルトの名無しさん:2020/07/24(金) 10:23:00.47 ID:fMjVnhWI.net
>>675
> そもそもバブルは(お前が拘っている『DOMの仕様』なのだから)jQueryとは関係なく、勝手にする物だ。

お前最初に、バブルは勝手にするものじゃなくて
親でまとめてイベント処理することだって言ってたじゃんwww

自分が使っていた用語が間違っていましたって認めたの?

682 :デフォルトの名無しさん:2020/07/24(金) 10:42:49.37 ID:2LubhzPR.net
>>677
> queryしているコードを書いてみろって
それはお前が>>623,624で既に書いてるだろ。
jQueryが美味しいのは、getElementByIdとか長たらしいこと書かずに$('#id')と書けるとか、
HTMLCollectionなのに単発のDOMみたいに扱えてforやforEach等のループを自前で書く必要がないとか、そういうところだろ。

そして俺が言ってるのは、親にeventhandlerを付けるのならその辺のおいしさが全くなくなる、ということだよ。

ただまあ、jQueryがそこまで好きならjQueryで一生書けばいいとも思うけど。
俺は必要ないから今後とも使わないだけであって。

683 :デフォルトの名無しさん:2020/07/24(金) 10:44:01.60 ID:2LubhzPR.net
>>681
> 親でまとめてイベント処理することだって言ってたじゃんwww
そうだぞ。イベントバブルを活用する=親で纏めて処理する、だ。
それ以外のまともな使い方は俺は知らん。(以下に続く)

>>679
おお、確かに読み間違えてる。
一つのイベントが複数のイベントハンドラを持ちたい場合か。
しかし何だそりゃ?て話だがな。
一つのイベントに複数のハンドラを持たせたい為にバブルさせてそれぞれの階層で処理させて結果的に複数処理するってのは、
実際の動きを説明していると言えばそうだが、これの為にバブルを活用するのは間違いだと思うが。

ただまあ、wikiはこの辺デタラメに書く奴が居るからそこまでは信用しない方がいい。
Cの日本語wikiとかも結構デタラメだったりするし。

逆に、本当にこのケース「一つのイベントに複数のハンドラを持たせたい為」にバブルを利用して、
それ以外の方法では美しく実装出来ないケースがあれば確かに俺の勘違いだと認めるが、あるか?
何度も言ってるが、俺はそれがないから「バブルを利用する=親で纏めて処理」だと思っているわけでさ。

或いはこの記述、ユーザ目線ではなくブラウザ目線で書かれている?
mouseleave/outの違いとか、
確かにmouseoutは一つのイベントを複数階層で処理して結果的に複数のハンドラを一つのイベントに与えている、とは言えるけども。
https://developer.mozilla.org/en-US/docs/Web/API/Element/mouseleave_event

684 :デフォルトの名無しさん:2020/07/24(金) 10:44:43.06 ID:fMjVnhWI.net
>>682
> そして俺が言ってるのは、親にeventhandlerを付けるのならその辺のおいしさが全くなくなる、ということだよ。

だからその親にeventhandlerを付けるコード書けって言ってるんだが?
俺はそれがすごく読みづらくなって、jQueryで書いたらシンプルになると知ってるわけ
さっさと書けよ。ここまで言って書かないのは、
お前がそれを書けないと言っているに近いが、それをお前は認めるか?

685 :デフォルトの名無しさん:2020/07/24(金) 10:45:17.15 ID:fMjVnhWI.net
>>683
> 一つのイベントが複数のイベントハンドラを持ちたい場合か。
> しかし何だそりゃ?て話だがな。

知らんのね(笑)

686 :デフォルトの名無しさん:2020/07/24(金) 10:46:32.32 ID:fMjVnhWI.net
>>683
> 逆に、本当にこのケース「一つのイベントに複数のハンドラを持たせたい為」にバブルを利用して、
> それ以外の方法では美しく実装出来ないケースがあれば確かに俺の勘違いだと認めるが、あるか?

俺の勘違いだと認めるがと言っておきながら、
wikipediaの例を出したら認めなかっただろ
嘘つきだよなw

687 :デフォルトの名無しさん:2020/07/24(金) 10:48:00.94 ID:fMjVnhWI.net
> 何度も言ってるが、俺はそれがないから「バブルを利用する=親で纏めて処理」だと思っているわけでさ。

jQueryはイベントバブルにしか対応してないから、
すべてがイベントバブルを利用してるの
親でまとめて処理してなくてもイベントバブルを利用してるの

688 :デフォルトの名無しさん:2020/07/24(金) 10:52:08.90 ID:fMjVnhWI.net
> 逆に、本当にこのケース「一つのイベントに複数のハンドラを持たせたい為」にバブルを利用して、
> それ以外の方法では美しく実装出来ないケースがあれば確かに俺の勘違いだと認めるが、あるか?

一つのイベント・・・click
それ以外の方法では美しく実装出来ないケース・・・google map

お前の勘違いだって認めようねw

689 :デフォルトの名無しさん:2020/07/24(金) 11:03:32.54 ID:9v9Epd9J.net
プッチンプリンとにんにく卵黄は同じものだ!
その証拠に、にんにく卵黄のほうが検索ヒット数が少ない!!

にんにく卵黄なんて用語は誰も使ってない!
プッチンプリンが正しい!!


???wwwww

690 :デフォルトの名無しさん:2020/07/24(金) 11:09:00.66 ID:2LubhzPR.net
>>684-687
まあやはり堂々巡りか。

wikiに書いてる使い方で活用出来るかについては考えてはみるよ。
ただし、既に言ったが、今のところ俺はそんなの見たこと無いが。

お前が勘違いしているのは、デタラメな使い方でもちゃんとした使い方だ!と思っていること。
それは文系初心者プログラマにも多い、全ての文法を使える人が上級者だ!と勘違いしていたりするのにも近い。

実際はそうじゃない。
例えばキャプチャフェーズとかも実装されているから確かに使えるが、俺はそれを上手く使っている例を見たことがない。
正確に言えば、まともに設計すればキャプチャフェーズなんて必要な事がないから、誰も使ってないだけだが。
バブルにしても、邪道な使い方はいくらでも出来るが、そうではなくて、
正しい使い方=それ以外の方法ではそれ以上に美しく実装出来ない使い方なのか、ということだよ。
「一つのイベントに複数のハンドラ」も、addEventListerを複数行えば普通に実装出来る。
バブルさせる意味はないし、実際、バブルしない.NET(Forms)等でもこれは普通に可能だ。

だからまあ、君にも分かる書き方をするなら、
・バブルしないX、MFC、.NET(Forms)、GTK2等でも書ける事=バブルを活用しているわけではない
・バブルしないX、MFC、.NET(Forms)、GTK2等では出来ない書き方=バブルを活用している
なんだよ。そして複数のイベントをサブスクライブするのは.NET(Forms)は出来るから、
それはバブル必須ということにも、バブルを活用していることにもならない。
そしてその場合にはJavaScriptでも「バブル」ではなくaddEventListerを複数行うのが正道だよ。

691 :デフォルトの名無しさん:2020/07/24(金) 11:10:04.24 ID:2LubhzPR.net
>>688
> 一つのイベント・・・click
> それ以外の方法では美しく実装出来ないケース・・・google map
うむ、これについて詳しくよろしく。

692 :デフォルトの名無しさん:2020/07/24(金) 11:12:00.44 ID:fMjVnhWI.net
>>690
堂々巡りなのはお前が間違いを認めないからだろ

jQueryの話をなかったことにするな。

お前がレスするのを逃げてるのはこれだな

先に書いてやるか
jQueryでqueryすること(意味がよくわからんが)と言われれば
普通に思いつくのは、$('#id1"') とかなわけだが

>>624で「イベントデリゲーション」を使ったコードでも
このようにqueryしてますがなにか?


https://jsfiddle.net/m8q15376/
$("#id1").on('click', 'a', function() {
 $(this).css("background", "red");
});

693 :デフォルトの名無しさん:2020/07/24(金) 11:12:45.73 ID:fMjVnhWI.net
>>691
> うむ、これについて詳しくよろしく。

すでにお前は逃げてるからなw
先にお前の勘違いだったって認めろ。

先に認める文章をお前が書け
そうしたら説明してやるから

694 :デフォルトの名無しさん:2020/07/24(金) 11:17:44.62 ID:2LubhzPR.net
>>693
逃げてるも何も、そのやり方が正道でなければそりゃ認めないよ。
既に言っているし、君も知っているはずだが、プログラミングなんて糞な書き方は無限に出来るわけでさ。

ふと考えたが、eをもしかしてmutable扱いか?
これは若干邪道だけども、そうしないと無理(それ以外での実装では大量なコードが必要)ならそれもありではあるが。

695 :デフォルトの名無しさん:2020/07/24(金) 11:19:41.76 ID:fMjVnhWI.net
>>694
言い訳はいいからさ、>>692のコードをお前がいうコードで書き直してみろって
ここまで言って書かないのは、
お前がそれを書けないと言っているに近いが、それをお前は認めるか?

まだこれ認めてないよな?

696 :デフォルトの名無しさん:2020/07/24(金) 11:20:24.05 ID:fMjVnhWI.net
こいつは何一つコードを書かない
俺はすでに書いている

697 :デフォルトの名無しさん:2020/07/24(金) 11:21:33.78 ID:2LubhzPR.net
>>694 訂正
693と思ったが、見る限りほぼ「読みとり専用」だから無理だな。
https://developer.mozilla.org/ja/docs/Web/API/Event

698 :デフォルトの名無しさん:2020/07/26(日) 04:16:24.04 ID:GfAtypzY.net
誰かjsで書ける珍しいコードのせてくれや

699 :デフォルトの名無しさん:2020/07/26(日) 21:49:52.62 ID:f+jrD57t.net
>>698
ど素人かど初心者ほど訳の分からないコードを書くから、そういうの探せば?
Web板で聞いた方が受けると思うけど。実際その程度の連中で埋め尽くされてるし。

700 :デフォルトの名無しさん:2020/07/27(月) 17:27:45.80 ID:2I3xUck9.net
>>699
なるほど 納得

701 :デフォルトの名無しさん:2020/07/27(月) 18:00:07.01 ID:2I3xUck9.net
javascript玄人もいったんこの解説みろ
http://re-file.com/18k/1677/

702 :デフォルトの名無しさん:2020/07/27(月) 19:33:11 ID:SDAq9vDF.net
>>701のリンク先
俺以外もう見なくていいぞw

【メキシコ】麻薬カルテル、ライバル組織の女を拘束、手足を縛り生きたまま解体 - 18禁グロ

▼カテゴリ - 18禁グロには一部、異様・奇怪・猟奇的・暴力シーン・グロテスクな表現が含まれていますので、閲覧制限をしています。

1. 18歳未満は閲覧禁止です。
2. 耐性が無い方は閲覧しないでください。
3. 閲覧は自己責任でお願い致します。

※上記、18歳以上で同意できる方は入室してください。
PASS:7777

703 :デフォルトの名無しさん:2020/07/27(月) 21:36:02 ID:2I3xUck9.net
例えばパスワードとかで、エンター押したら実行するよーにするにはどーしたらいんかね?

704 :デフォルトの名無しさん:2020/07/27(月) 21:45:23.89 ID:GH3PnKGv.net
<form action="〜" method="post">
<input type="password" name="pass">
<input type="submit">
</form>

705 :デフォルトの名無しさん:2020/07/27(月) 22:05:10.71 ID:P2Gsimd7.net
HTML, CSS, JavaScript の質問は、web制作管理板で聞いてください!

この板のスレは、荒らしが出た時に、緊急避難用に一時的に立てたものなので

706 :デフォルトの名無しさん:2020/07/27(月) 22:09:15.60 ID:2I3xUck9.net
>>705
ごめんなちゃい

707 :デフォルトの名無しさん:2020/07/27(月) 22:11:54.64 ID:fnBRfBHK.net
いいってことよ

708 :デフォルトの名無しさん:2020/07/27(月) 23:32:47.58 ID:QhcinMDB.net
そういやあっちどうなってんのかな?って思って見てみたが、
>>596ってマルチポストをこっちに収斂したのかよ!
https://mevius.5ch.net/test/read.cgi/hp/1568714120/471

thisが何か分からないレベルの奴は永久にWeb板に引きこもってろ。
というか、お前ら何がやりたいんだ?
全部初心者スレにするから、お前らも完全に知ってるくだらない話題につき合わないといけないわけであって、
そんなスレばかりではお前らにとってもメリットが無いだろ。
他人の手助けをするのはいいが、手助けばかりして自身が成長できないようなら意味無いだろ。
今回のは完全にjQuery廚が悪いようだが。

jQuery厨も結局全く成長しておらず、俺の最初の話が全く通じてないのもかなり酷い。
それで向こうでブッ叩かれたからってこっちに来るのは迷惑でしかないから止めてくれ。
お前(jQuery厨)の問題は、前から言ってるが、書いてるコードの規模が小さすぎる事だ。
少し大きなのを書けば、俺が言ってるように、イベントハンドラが単発の単純な関数で終わることはなくなって、
共通変数/関数をどこに配置すべきかを考えるようになるんだよ。
お前はそこにすら至ってないから俺が何を言っているのかさっぱり理解出来ない。
そして一行で書ける関数に異様に拘るわけだ。

709 :デフォルトの名無しさん:2020/07/27(月) 23:33:18.10 ID:QhcinMDB.net
俺はその上の「構成」について現在の俺なりの考えを述べた。
食いついてくるかどうかは君らの勝手だが、俺が思うに、今の君らに必要なのはここだと思うんだよ。
だから先鞭を付けてみたわけだ。

俺的区分で
初心者:一通り分かってなくて苦労してるレベル
中級者:一通り抑えているから、動けばいいのなら何とでも出来るレベル
上級者:最初からほぼ最適な構造で構成出来るレベル
として、Web板の連中にも中級者はそこそこ居るからおそらく中級者スレは回せる。
だとすればお前らが今やるべきは『中級者スレを建設して回すこと』であって、そこでは、

1. 文法事項の質問は初心者スレでやれ
2. 妥当な実装方法が複数ある場合、どう使い分けるべきかを議論
3. オレオレ的カッコイイ構成を披露、どうだカッコイイだろ!とやって糞ならブッ叩かれて改修点を回収

とかなんだよ。今回で言えば、イベントの捕捉方法には代表して2つのやり方があるが、
1. Elementに直接onXXX または addEventListener で捕捉
2. bubbleしてきたイベントを親で捕捉
このどちらをどう使い分けるか、ということ。
そして俺はもう「bubble主体で組む方が断然いい」と結論を出してしまっているからそれを書いた。
そんなん当たり前、と思っているのなら無視でいいが、「そうじゃない!」と思ってるのなら食いついてくるべきだし、
それ以前の「どう使い分ければいいの?」と思っているのなら、『中級者スレ』を建設して、
その中で君ら同士で喧々諤々やるべきなんだよ。
勿論リアルでやれてればそれが一番いいんだけど、リアルでは言いにくかったりするんだろ?
だったらそれが君らが上達する一つの真っ当な方策だよ。
そしてそこでは一通りも書けないレベル、つまり文法事項を一通り抑えてない奴は別スレで、でいいんだよ。
そんな奴混じっても邪魔でしかないだろ。

710 :デフォルトの名無しさん:2020/07/27(月) 23:34:59.54 ID:QhcinMDB.net
で、ここで問題になるのがいわゆる「意識高い系」という言い方で、最近これについてネットでも反省してる奴が散見されるが、
正直俺はどちらの意見もイマイチ賛同出来ないのだな。
多分上記のように「一定以下の奴は切り捨てる」を公言すると「意識高い系ガー」と無駄に攻撃される。
これは、人は誰でも置いて行かれるのは不快なものだし、人数も初心者>>>中級者なのは常だから、
「初心者が中級者を攻撃する便利なキーワード」として『意識高い系』が出来たからそれを使う奴は一定の割合で出てくる。
それで結果的に芽を摘み(=集団を上に引っ張れる奴を挫き)、結果的に糞しかなくなってる、というのが反省の中身だ。
ただ俺はこれもイマイチしっくり来ない。ぶっちゃけ両方ゴミだな、と思っている。つまり、
ゆとり文化で「意識高い系ガー」と言って集団を下に引っ張るのも糞だが、
そもそも「意識高い系」の連中も「俺達は高い=お前らは低い」という、
無駄に見下す事をしてきた(正確にはそういう奴が多い)から嫌われてると思う。

そもそもネット以前のオタク(プログラマ含む)は基本的に一人でやってて、
「俺スゲーだろ!」と自慢する場所も無かったから、完全に自己完結してた。
だから見下すとか、そういうのは基本的になかった。
ところが昨今は無駄に見栄を張れるようになって、食べログでも食べてもないのにレビューを書き、インスタではリア充を装ってもう疲れた、
みたいなのが沢山居るから、「スゲープログラマを装っている糞プログラマ」も多々居て、
そいつらは他人を見下す事によって己の凄さを担保するようなメンタルだから、
そんな奴等に対して「意識高いだけの糞」と言いたくなるのも分かる。
というわけでどっちも糞だな、というのが俺の見解ではある。

が、現実問題として、お前らの大学に幼稚園児が乱入してきて走りまわられても、邪魔でしかないだろ。
同様に、君らが前に進む為の場所にとって初心者が邪魔なら、普通に排除していいんだよ。
初心者の為のスレは別にあり、初心者はそこで問題ないのだから。
というのをだな、どうせ見えた展開になるだろうから、先に言っておく。
つまり、妥当ではない批判にくじけずに前に進め、ということ。

711 :デフォルトの名無しさん:2020/07/27(月) 23:35:38.29 ID:QhcinMDB.net
ちなみに君らはこんなスレでも多少沸いてくるように、周りを見ている、という点は素晴らしい。
いや、JSはそういう状況だから仕方ないのかもしれんが、
Javaは>>547のような奴が普通に居るし、これは最近はC#の連中も同様になりつつある。

で、今の君らに必要なのは、文法ではもう問題がない人同士で、
「何をどう記述すべきか」を議論することだよ。それは良い中級者スレになる。
JavaScriptは構造に対しても非常に柔軟で、それは他の型あり言語、例えばC++で同じ構造で書くのと比べて段違いに楽に書ける。
逆に言えば、いろんな構造をお試し的に書いても、他言語より同じ時間で沢山の構造を試せるから、
中級者から上級者にステップアップするには有利な言語だと思う。
問題は、JS的糞、例えばセミコロンガーに嵌ってしまう馬鹿が多い、という点であって。

712 :デフォルトの名無しさん:2020/07/28(火) 00:26:55.97 ID:nl0WhoWH.net
一言で言えば糖質

713 :デフォルトの名無しさん:2020/08/28(金) 00:01:02.51 ID:6GH+yyLXR
ブログは最初の1円稼ぐまでが地獄【初心者が挫折しない3つのコツ】
https://www.youtube.com/watch?v=X0j5njcpRms&t=42s
ブログで稼げない人の”致命的な勘違い”
https://www.youtube.com/watch?v=C2JrYuumLOM
【ブログvsYouTube】どっちが稼げる?集客しやすい?
https://www.youtube.com/watch?v=gsu9LxA6Cto
【収益10倍】全ブロガーはWEBマーケターになるべし
https://www.youtube.com/watch?v=PQ6Fk2nKBM4
大学生がやるべきことは「社会の理不尽を知ること」。
https://www.youtube.com/watch?v=zNvj3eN2W2c
Webライターvsブログ!今稼ぐならどっち?【僕ならこうする】
https://www.youtube.com/watch?v=GVjYRrGI5mQ
ブログや副業が辛い人は大チャンスです。
https://www.youtube.com/watch?v=_VUrR9Y1470
一生稼げない敗者のマインド3選【過去の失敗談から語る】
https://www.youtube.com/watch?v=U2htO9B2YGU
有料noteやBrainで継続的に稼ぐ3つの方法【コンテンツ販売】
https://www.youtube.com/watch?v=d31w1Q5UtA4
アフィリエイトの始め方と稼ぐための基礎知識【超初心者向け】
https://www.youtube.com/watch?v=n1cCjSMnG_E

714 :デフォルトの名無しさん:2020/09/12(土) 21:45:44.66 ID:ybxdKypc.net
webpackについて伺いたいんですけど、webpackは将来的には不要になるライブラリって認識は間違ってないですか?
あとbabelとかも

715 :デフォルトの名無しさん:2020/09/22(火) 15:57:49.10 ID:uSjSk1xMZ
70億円調達のネットショップ作成サービスhey、「我の弱い人同士の組織力」武器にEC市場シェア拡大目指す
https://www.businessinsider.jp/post-219205
【劇団ノーミーツ1】役者も客も会わないオンライン演劇で7000人動員。制作チームは全員20代、半分は会社員
https://www.businessinsider.jp/post-219184
「ガーナのゴミ」がなぜ1点500万円の作品に変わるのか
https://www.businessinsider.jp/post-208314?itm_source=article_link&itm_campaign=/post-219184&itm_content=https://www.businessinsider.jp/post-208314
利用、無料。日本版衛星データプラットフォーム「Tellus」がすごい理由…“宇宙の視点”でビジネスはこう変わる
https://www.businessinsider.jp/post-219279
「起業ブーム」が新たなフェーズに 大学発ベンチャーへの想い
https://forbesjapan.com/articles/detail/35527
かつて学者がやっていたことを、今は起業家がやっている
https://diamond.jp/articles/-/232874
番号やアドレス不要の無料通話アプリRe-mo登場 ドワンゴが配信開始
https://japanese.engadget.com/ios-dwango-re-mo-072853620.html
10年間使い続けた WordPress を辞めた理由  a-blog cms を選んだユーザーのお話
https://webtan.impress.co.jp/u/2020/09/14/37485
「KFC創業者は65歳で起業した」遅咲き経営者4人の成功法則
https://president.jp/articles/-/38719

716 :デフォルトの名無しさん:2020/10/02(金) 10:09:07.53 ID:EkM/KECH.net
WEB Components のラッパーを書きました。
公式:https://strnote.com/static/CompElem.html

ライセンスはMIT
Veu.js, React.js などより大幅に低水準なラッパーなので、そのぶん改造は楽です

717 :デフォルトの名無しさん:2020/10/13(火) 01:31:02.46 ID:dvOlOvK/.net
JavaScriptの実装について知りたいんですがChromiumのソース読めばいいんでしょうか?

718 :デフォルトの名無しさん:2020/10/17(土) 08:56:08.19 ID:N1gX0TwH.net
>>717
https://v8.dev/docs/source-code

719 :デフォルトの名無しさん:2020/10/17(土) 08:59:43.06 ID:syR+vJZ+.net
>>718
ありがとうございますm(_ _)m

720 :デフォルトの名無しさん:2020/11/04(水) 11:18:33.79 ID:/5L/Dxz6.net
パラッパラッパー

721 :デフォルトの名無しさん:2020/11/12(木) 01:41:53.08 ID:ZurnA+Eap
デキる人ほどフリーランス化する?★働き方改革
https://www.youtube.com/watch?v=ALflcwYOJtQ
年収890万円以下は社会のお荷物★騙される労働者
https://www.youtube.com/watch?v=CAp-ZrJpF54
騙されたくなかったら勉強しろ★他人のルールは損をする
https://www.youtube.com/watch?v=s176O6qKuPw
底辺の99%は一生底辺★10年後が見えない同僚たち
https://www.youtube.com/watch?v=4Mfiwn2sPD8
稼ぎたければ働くな★4千万円ぽっちも稼げないのはなぜ?
https://www.youtube.com/watch?v=Fi7bILN4wes
サラリーマン思考では儲からない理由
https://www.youtube.com/watch?v=iW6oAo0q0ZI

722 :デフォルトの名無しさん:2021/03/07(日) 23:11:04.14 ID:bNghcsY5.net
ゲームのコアライブラリ書いてるけど
async/await のお世話に頼らないと無茶だと痛感
不定個のPromise配列をパイプライン処理すんの無理だわな

723 :デフォルトの名無しさん:2021/03/07(日) 23:24:25.00 ID:bNghcsY5.net
書けなくもないけど、書いてるうちにゲシュタルト崩壊起こしかけるぅ orz

724 :デフォルトの名無しさん:2021/06/12(土) 15:43:59.92 ID:TONJAMor.net
プロならLPIのHTML5レベル2は持ってて当たり前なのでしょうか?

725 :デフォルトの名無しさん:2021/06/12(土) 21:20:44.77 ID:uQ7TEz17.net
>>724
俺はWeb系ではないが、採用条件として明示してあるのでなければ、無視でいいと思う。

一般にIT系では採用時に資格は重視されない。理由は簡単で、
・進化が早く、資格として整備された時(数年後)には既に陳腐化している。
・精々数時間で50-100問(数分/問)を課すテストで計れるのは、「知識」であって、「実力」ではない。
だから逆に言えば、ほぼ進化がなく、それなりに知識が必要だとされる分野は、資格も話題にはなってる。
これは他スレ読めば分かると思うけど、JAVA/オラクル/MS位だね。その他は全部ゴミだと思っていい。
進化も早く、知識も浅くて済むJSでは、今後とも資格は主流にはならないよ。

なおみんな「実力」は計りたがっており、テストで計れれば画期的だから、資格ビジネスも乱立するわけだが、
実際はこれは出来ない。理由はこれまた非常に簡単で、タイムスパンが全然違うから。
現代のプロのIT現場では通常の「テスト」のように、数分で完了するような仕事はない。
(その程度だとアマチュアでも問題なく出来てしまうため、今のプロには回ってこない)
人を採用するような規模の企業での実際の仕事は、数ヶ月〜1年くらいのスパンになるから、
テストで計れる「知識量」よりも、分からないことをWeb等で調べる「検索力」「応用力」、
或いは同僚に聞いたり教えたり仲良くやっていける「コミュ力」、
そしてプログラミングの本質である「設計力」が問われ、テストに比べれば時間制限なんて無いに等しい。
だから「テスト」で計ること自体がそもそも無理なんだ。

726 :デフォルトの名無しさん:2021/06/12(土) 21:21:07.32 ID:uQ7TEz17.net
ちなみに、何でそんな勘違いをしているのか知らんが、
・採用の際に言われたのなら、それはやるしかない。
 それは最低限の知識としてそこで線を引く、ということだから。
・そうでないのなら、学んだことを学んだとおりにグダグダ言わずにやる能力=学歴だから、
 勉強してマシな学歴を目指した方がいい。
勉強すれば何とかなる事柄なら、勉強が得意な奴=学歴で採用した方がいいし、
実際、企業の採用で学歴を重視されるのはこれだから。

もう学歴とかいう年齢ではないのなら、変に資格に拘るよりは、
・自分でサイトを作ってそこのコードも自分で書いて、それを見せた方がいい。
資格で計れるのは一定の知識があるかどうかだけだが、実際のサイトとコードでは、実力を示せる。
だから、採用側もやる気があれば必ず見る。(実際にWeb系の奴等もこれは言ってる)
まあ少なくとも、テストや資格で実力が計れる、なんて思ってるIT系の奴は一人もいないから、
IT系の資格ゴテゴテの奴が来たりすると逆に引かれると思うから、それは止めとけ。

727 :デフォルトの名無しさん:2021/06/12(土) 23:41:34.70 ID:TONJAMor.net
返信ありがとうございます。

728 :デフォルトの名無しさん:2021/06/13(日) 11:51:30.32 ID:DaJnimMO.net
>>724
そんなもんうちの会社の連中はほとんど持ってる。
あの程度が取れない奴はヤバい。

729 :721:2021/06/13(日) 13:42:06.32 ID:dsZW3Lb4.net
嘘くせー。

こう言うとキレられるのだろうけど、敢えて言っとく。
資格ビジネスでは受験者数が利益に直結するので、胴元連中は当然「すばらしい」と吹聴してるが、全部嘘だ。
実際は、「会社の連中はほとんど持ってる」のなら、その資格を持っていたところで「引く手あまた」なんて事にはならない。
むしろ「足切り」に使われるべきであるが、正直、これもない。
同様に「会社の連中は殆ど持ってる」のなら、現状どおりの採用活動でその程度の連中は十分に確保出来てる、ということだから。

そもそもそんな簡単に取れる資格で「引く手あまた」なんて事にはなり得ないし、
ググったところ360時間程度と書いてる奴が居るが、なら「半年も実務すれば余裕」って事だから、わざわざ取る価値もない。
(誰でも取れるような資格なんて意味がない)

それ以前に、会社の連中なんてそんな真面目じゃない。
もっとまともなTOEICですら自前で受ける奴なんて皆無で、昇進時に最低○○点が必要だからとか、社員は全員一律に、だから受けてるのであって、
わざわざ誰でも取れるような資格を取りに行くような連中はただの資格コレクターであり、ヤベェ連中だよ。
だから逆に言えば、この手の資格でも取らせないと勉強しない連中が多いから、報奨金を出す会社もあるようだ。
まあこれは人事戦略としては正しいのだが、そもそもWeb系って人事すら居ない規模の会社が多いだろ。

730 :721:2021/06/13(日) 13:42:40.11 ID:dsZW3Lb4.net
だからまあ、>>728が本当だとすると、
「あの程度が取れない奴はヤバい」ってことで、入社1年目の目標、2年目では義務、という雰囲気にして、
結果的に全員受験させて底上げ(最低限度の知識の確保)を目指すのは、人事戦略としては一見ありのように見えるが、
しかし実際に落ちた奴が居たとして、クビも切れないのなら虐めるネタにしかならないだろ。
だから、全員受かるか、落ちた奴をいびり倒して辞めさせるか出来ないと、余計に悲惨なことになる。
だからあんまりこれもないと思うんだよね。

まあいずれにしても、資格ビジネスをやってる奴は居るし、連中は都合のいいブログとかもデタラメに書きまくってるから、そういうのに騙されないように。
ドラッグストアの薬剤師のように、その資格がないとHTML5を取り扱ってはいけないのならみんな取るけど、
そうじゃないのだから取得するモチベーションも普通はないんだよ。

731 :721:2021/06/13(日) 15:18:32.08 ID:dsZW3Lb4.net
が、まあ、見ずに文句ばかり言うのもアレなんで、一応サンプル問題もチラッと見てみたが、糞だな。
これ知っててどうする?とか、こんなの覚えてる意味無いだろ、とか、そういうのばっかりだ。

ただまあ、IT系の資格って、どれもこれもこの手の糞なのも事実。
それは政府がやってるのも全部含めてだから、そもそもプログラミングが試験に向いてないんだよ。
勿論問題を作ってる馬鹿共が実はプログラマじゃないってのも大きいにしても。


実際は、新しい仕様はガンガン追加されるから、勉強してた頃には存在してなかった物に普通に遭遇することになる。
だから、覚えていることよりは、調べて正しく判断出来るかの方が重要で、
このテスト自体はCBTだからMDNを読みながら回答するのもありなのだろうけど、
実際はそれでは間に合わないのだろうし、やはり、よろしくはないね。

とはいえ、テストでプログラミングの実力を計りたいってのは需要はあるし、永遠の課題でもある。
俺はプログラミングはcraft(工芸、手技)に近く、テストしたければ絵と同様「実技」(絵ならデッサン)でやるしかないと思うけど、
これはプログラミングはknowledge(知識)であると考える奴(=この手のテストを作るような奴)には受け入れがたい思想なんだよ。
だからこんな感じに、昔からなってる。


ああそういえばgoogleは入社テストに実技を課すらしいぜ。
> 一次面接は電話で技術的質問をされました。二次面接は電話で会話をしながら、オンライン共有されたドキュメントにいくつかコードを書きました。
> https://note.com/neko_chan0214/n/n3a64bc1e1412
つまり電話品質の英語を聞き取れるかどうか、そこで「○○を修正してくれ」と指示出して的確にコードが修正されるか、を見てるわけだが、
極めて妥当だよね。これに問題なければリモートワークの下っ端としては十分なんだから、雇う分に問題はない。
(googleの場合は要らなくなったら簡単にクビも切れるし。なお就職後の本人は「思ってたのと違う」と萎えてたらしいが、よくは知らん)

732 :721:2021/06/13(日) 20:17:57.82 ID:dsZW3Lb4.net
>>724
駄目押しで言っておくと、こんな過疎っているところでそんなアンケートなんてやらないことだよ。
そんなことを聞く=自分で判断する能力がないって事だから、
デタラメなら突っ込まれる程度の人数が居る場所でないと嘘を吹き込まれてしまう。
(どうしても5chでやりたければマ板か嫌儲かな?)

俺は競プロや今回のプログラミング資格のような、
「ちょっと勉強して○○を取得するだけで人生バラ色」を吹聴している連中は基本的に詐欺師だと見てる。
だから我慢がならない。これがグダグダ言ってる理由。
>>728 が胴元の自演の可能性すらあるわけだし。


ただ、普通に考えれば分かる筈なんだけどね。
ITドカタがブラックだと言われて久しい。
(5ch発の例の「ブラック会社に勤めてるんだが、もう俺は限界かもしれない」もそれ)
だからそんな、精々数百時間の勉強で抜け出せる方法があるのなら、みんなやってるよ。
それ以前からある基本情報技術者とかでも、そんな都合のいい話は無いだろ。
学歴にしたって、3-6年間頑張って勉強してもままならないからこそ、それなりの価値があるわけであって。

現在、SESとかプログラミングスクールも乱立してて、
彼等は「プログラミングスクールに通って資格を取ってSESに入ればバラ色」と言うわけだけど、全部嘘だから。
だからどこでそんな資格のことを聞いたのかは知らんが、とにかく止めとけ。
既にプログラマとしてやってて、趣味で資格を集めてるのならどうぞ御勝手にだが、
わざわざ尋ねる=現在はプログラマではないのであれば、
技術レベルの保証にもならず、勉強したところで実力にもならない資格に対して、エネルギーを注ぐべきではない。
問題も、サイトを作って動かしてみれば普通に分かるだろ、程度の物でしかないから、
実際に手を動かしてサイトを作って、それを示した方がいい。
(ただしゆとりは絶対にこれをやらず、
「手を動かさずに効率的に学ぶのだ!」みたいな妙な信仰があるのも事実だし、
ぞれ以前に、ゆとりは上記の「普通に考える」を全くやらないのが問題なわけだが)

733 :デフォルトの名無しさん:2021/06/13(日) 21:58:17.40 ID:dsZW3Lb4.net
ちなみにどれだけ酷いかを一応言っておくとだな、サイトは以下で
https://www.html5exam.jp/measures/sample.html
https://www.html5exam.jp/measures/lv2_1.html

第一問:
obj.key-sampleってのが最悪で、そもそもチェインケースはJSというかプログラミング言語一般で使わない。(使えない)
だから最初何が言いたいのか分からなかった。
ただしHTMLには入ってしまっているのでそこはキャメルケース、つまりkeySampleにすることになってる。
だから普通ではあり得ない状況をわざわざ作ってるんだよこれは。
文法の細かい隅を付く為だけど、そもそもそういう使い方はしないようにコーディングルールが制定されてるはず。

マジで、JSでチェインケースを常用してる馬鹿なんて見たことがない。


第二問:
console.log(typeof [1, 2] + typeof null); もおかしくて、普通は
console.log(a, b); とか、コンマ区切りで出力させた方が断然いいから、こんなの知っておく意味はない。

typeof [] === 'object' と
typeof null === 'object' 、特に後者はJSでの実装ミス(仕様バグ)だから知っておく必要はあるけど、だから何?程度。
本当はtypeofを多用すること自体がプログラミング理論的には間違いだとされつつあるので、
Rustみたいに「型スイッチ撲滅しようぜ」ってノリの方が正しい。この場合こんなもん知らなくてもいいし。


とまあ、こんな問題出してて出題者は誰々です!っていわれてる方がヤベーんじゃねえの?と思うレベル。
その他もざっくり見たけど同様だよ。
ただしまあ、初心者あるある集ではあるのかもしれんが。

734 :デフォルトの名無しさん:2021/06/16(水) 17:15:31.15 ID:V9AslF47.net
>>724
こんなもんすぐに取れるはwwwwwwwwwwwwwwwwwwwwww
引っ掛け問題以外は、プロだったら誰でも知ってることばっかり。

735 :デフォルトの名無しさん:2021/12/28(火) 16:40:18.70 ID:ChI3TD7z.net
JavaScript classes are still the same as before,
except that the super keyword has been added internally.

Therefore, what you couldn't do before, you still can't do now.

Some people say that class definitions can be used to create code that is easy
to understand, but
However, I am not sure if it is easy
to understand for anyone.
I also feel that hiding the prototype makes it harder
for beginners to understand the essence of JavaScript.

You have to understand what kind of replacement the class syntax is internally
before you can learn it.
It's not a good way to learn.
But once you understand it,
I don't think there's any need to bother using classes.


Translated with www.DeepL.com/Translator (free version)

736 :デフォルトの名無しさん:2021/12/28(火) 18:47:52.24 ID:JyRJ6HRN.net
それだけの長文を連投する情熱ってどこから発生するの?

737 :デフォルトの名無しさん:2022/09/04(日) 10:45:48.62 ID:gMMLSyjY.net
JavaScriptの正規表現後読みのブラウザ対応表が(ずいぶん前から)MDNから落ちているのだけど、
何処かに有れば教えてくれ。(下記ページ内、ブラウザサポート部分)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions/Assertions

これchrome以外は全然駄目で見捨てられてるのか?

738 :デフォルトの名無しさん:2022/09/04(日) 12:37:49.60 ID:FTTWPGH/.net
>>737
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp
のlookbehind assertions。safariが未対応

739 :デフォルトの名無しさん:2022/09/04(日) 13:19:42.31 ID:gMMLSyjY.net
>>738
ありがとう。助かりました。てかそっちに纏めてるのか。

740 :デフォルトの名無しさん:2022/11/30(水) 14:57:54.07 ID:puhqr6nn.net
ぼやき
MDN見て、セレクトボックスで beforeinput イベントを使おうとして、試してみたら発火しない
なんでだーと思ったら英語版には beforeinput イベントは input と textarea だと書いてあった
日本語訳の select が誤記載だったというオチ

登録してまで指摘投げる気はないので、編集できる人がここ見たらそのうち修正されるかなあと書き込み

741 :デフォルトの名無しさん:2022/11/30(水) 15:16:11.94 ID:G0TyVVXA.net
>>724
っていうか応用以上の情報処理試験でも言えるけど
落ちるような人にプロ名乗って欲しくない

742 :デフォルトの名無しさん:2022/11/30(水) 15:25:02.52 ID:G0TyVVXA.net
>>731
>俺はプログラミングはcraft(工芸、手技)に近く、テストしたければ絵と同様「実技」(絵ならデッサン)でやるしかないと思うけど

ここは賛成

743 :デフォルトの名無しさん:2022/11/30(水) 15:34:48.91 ID:G0TyVVXA.net
>>736
他人と少しでも仕事したことあるなら言いたくなることもあるだろう

744 :デフォルトの名無しさん:2022/12/21(水) 19:56:54.56 ID:ZLSsY0as.net
ブラウザ上で
別タブでページ開く→開いたページ操作→ページ全体あるいはDOMツリーの一部をスクショ
って可能ですかね?
素直にパペッター使った方がいいかな?

745 :デフォルトの名無しさん:2022/12/21(水) 20:53:36.23 ID:YF8SK8D8.net
>>744
今ググって知ったレベルだが、html2canvas使えば出来るらしい。
ただ、別タブを操作するには、そのページ内でJSを動かすかブラウザ拡張とかにしないといけない。
意味不明なら、意味が分かる方(=Puppeteer)を使う方が早いのではないかと。
自分がスクショ取りたいだけなら何でもいいし。

ユーザーにそのページのスクショ採らせて送らせる、というのならJSだが、
html2canvasはブラウザのレンダリングと異なることもあるらしいので。
(と言うほど問題ないのだろうし、見れば差異は分かるからデバッグ用途には十分だが)

746 :デフォルトの名無しさん:2022/12/21(水) 22:22:38.47 ID:TTkvZ9O6.net
>>745
サンガツ
要件的にパペッターが正解っぽいのでこっちで頑張るます

747 :デフォルトの名無しさん:2022/12/24(土) 18:22:53.96 ID:DZHz5J2C.net
高精度タイマ(performance.now())の精度を上げる(落とさない)オプションを知ってたら教えてくれ。

他のスレ見ててCORS回避のオプションがあることを初めて知った。
https://mevius.5ch.net/test/read.cgi/tech/1659855460/472
なら高精度タイマの精度を落とさないオプションも多分あると思って探したが、辿り着けない。
今見つけた限りで、一番多い一覧があったサイトは以下。
https://peter.sh/experiments/chromium-command-line-switches/

748 :デフォルトの名無しさん:2022/12/26(月) 03:08:30.89 ID:qg5Yi6nt.net
>>738-739
4年半以上かけてsafariでもようやく今月実装された
bugs.webkit.org/show_bug.cgi?id=174931

749 :デフォルトの名無しさん:2023/03/04(土) 11:08:58.95 ID:BmFTVnYF.net
JSの条件式はifを使わなくても色々書けて楽しい。

750 :デフォルトの名無しさん:2024/03/03(日) 21:51:15.73 ID:BcWORH9H.net
>>737-739と同じだが、
また正規表現先読み/後読みのブラウザ対応表が行方不明になってる。
どこにあるか知ってる人がいたら教えてよろしく。

751 :デフォルトの名無しさん:2024/03/03(日) 23:23:16.95 ID:7fNlciS5.net
>>750
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Regular_expressions

752 :デフォルトの名無しさん:2024/03/03(日) 23:42:51.53 ID:BcWORH9H.net
>>751
早速ありがとう。助かります。
つか、RegExp等のページ先頭でアナウンスしてる「正規表現について…」が"Guide"行きで、
この"Reference"に繋がってるリンクがないんだな。だから俺はGuide側で迷子になってた。

753 :デフォルトの名無しさん:2024/03/19(火) 11:12:20.58 ID:N0+FD4yc.net
if () {}やfor () {}など}の後に;をつける人ってどれくらいいるんだろう?
ESLintの警告でやったほうがいいのかなぁと思ったり思わなかったり

754 :デフォルトの名無しさん:2024/03/19(火) 13:05:44.14 ID:d3TWJjaW.net
>>753
> }の後に;をつける人
C/C++/C#/Java等、セミコロン省略禁止の言語でもそこに付ける奴はいない。
つかお前根本的に勘違いしてるからきちんと確認しろ。

そしてその程度ならどっちでもいいからさっさと次に進め。
セミコロンを打つ打たないに拘り始めたら無駄に足踏みして上達しなくなる。
絵を描くのが目的なのに、鉛筆の削り方に拘りすぎて絵を描かなくなるようなものだ。
コードも同様、書いて動かしての反復で上達するのであって、書かないのではどうにもならない。
(書く前に考えろ、というのはあるが、今のお前はそのレベルに達してない)

通常はリンターの警告を全部無くすようにする。
これはリンター製作者がお前よりJSに詳しいという仮定だ。
少なくとも分かるようになってリンター製作者の思惑も見えてきてウザくなるまではそうするべき。
そもそも警告が出てる箇所を間違ってると思うから、まずお前は全部リンターに従うべきだろうよ。

755 :デフォルトの名無しさん:2024/03/19(火) 13:35:59.75 ID:d3TWJjaW.net
>>753
と思ったが、もしかしてPythonやRuby等、セミコロン書かない言語の出身か?
ならJSの文法がユルイ所は全部無視して、さっさと進めばいい。

一応セミコロン書かない派閥もあるし、そのコーディングルールもある。
(ESLintもno-unexpected-multiline指定でセミコロン無しルールで動くらしい)
リンターを通すのが目的ではなく、アプリケーション開発の生産性を上げる為にリンターを通すのだから、
自分が書き慣れたスタイルで行くべき。
(ただそこに引っかかる程度ならお前はまずセミコロン必須言語で修行すべきとも思うが)

756 :デフォルトの名無しさん:2024/04/15(月) 17:37:52.87 ID:O2slytZi.net
ESLintで思い出したが最近大型更新されたけどWebでチェックできる https://eslint.org/play は大幅に機能が減ったね
BrowserやGreasemonkey用のconfigが消えてて残念

757 :デフォルトの名無しさん:2024/04/28(日) 21:54:09.25 ID:zlR73q8o.net
スレ立てあらしスクリプト対抗age

466 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver.24052200