+ JavaScript(ECMAScript)質問用スレッド vol.123 + [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2016/12/21(水) 21:56:53.30ID:xYX0mlO/
プログラマ板の趣旨にあわせてブラウザ限定ではなくサーバーサイドJavaScriptや
トランスパイラなどの関連技術の話題も取り扱うように変わりました。
ECMAScriptの言語仕様の話題。最新ECMAScriptによるモダンな書き方、Promiseやasync/awaitを
使った非同期プログラミング。ES2015、2016、2017等の最新ECMAScriptをブラウザで今すぐ使う方法、
ビルド環境やbowerやnodeのパッケージを使う方法等、モダンなJavaScript環境についての幅広い話をしましょう。

ECMAScript対応実行環境一覧(ブラウザやbabelを含む)
http://kangax.github.io/compat-table/es5/
http://kangax.github.io/compat-table/es6/ (= es2015)
http://kangax.github.io/compat-table/es2016plus/
http://kangax.github.io/compat-table/esnext/

JavaScriptとは?
もともとMozillaの前身のNetscapeが作った言語であり本来のJavaScriptはFirefoxの実装のみです。
JavaScriptの正式な仕様名はECMAScriptです。ですが一般に使われているとおり
ChromeやEdgeで使う言語もJavaScriptとしてこのスレでは扱います。
Firefox等のJavaScript実装は最新のECMAScriptに準拠しています。

※DOMはブラウザが提供しているものでありJavaScript(ECMAScript)の範囲外です。
なのでDOMを使ったプログラミングは原則としてこのスレの対象外です。
DOMはwindowオブジェクト(ブラウザのホストオブジェクト)経由で
参照するもので、window自体、window.document、window.Workerなどです。
これに関する話題はWeb制作板の下記のスレに移動してください。

+ JavaScript & jQuery 質問用スレッド vol.7 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1467906819/
jQuery 質問スレッド vol.7
http://echo.2ch.net/test/read.cgi/hp/1478055094/
+ JavaScript の質問用スレッド vol.131 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1478053599
前スレ + JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1472401404
2020/12/08(火) 23:06:29.69ID:Pb7mIp0t
>>99-101
やはり、いつものゆとりの反応か。
ただ、数年前のお前らは、もっとガキっぽくギャーギャー喚き散らすだけだったが。

結局どこまで行っても平行線だ。俺は間違ってるとは思ってないし、それは君らもだろうから。
なら、どっちが正しいかは第三者(市井の人)が決める、というのが資本主義で、単純には売れたら勝ちというわけだ。
俺はこれもまあ公平なやり方だと思うぜ。

俺はゆとりの次世代が出てくるのを待ってる。
そして彼等には今の君らが享受している以上の環境を用意し、結果的に彼等に君らを殲滅してもらおうと思っている。
勿論、君らが正しければこれは成立しない。君らが勘違いして思い上がっているだけならこれが成立する。
だからこれはそれなりに公平だ。

ちなみに俺は君らに意地悪しようとしているわけではない。
もっとましな場所が欲しいのは今もだし、既に何度か挑戦したが、
ちょっといい感じになるとゆとりが大量に乱入してきてボロボロにされるのを既に複数回経験している。
そこで具体的に「これはこういう理由で駄目だからこうしろ」と改善要求しても、絶対に受け入れないのがゆとりだ。
だから、ゆとりがいる限りどうしようもない。そこで、まずは時宜を待ってる。

結果は10年後に出る。
お互い戦争を楽しもうぜ。


一応突っ込んでおくと、>>100-101って自演失敗か?
まあどっちでもいいんだが。
2020/12/08(火) 23:07:08.21ID:Pb7mIp0t
>>99
俺らとゆとりでは根本的に価値観が異なるのは事実だ。
だから共存出来ないし、ゆとりが5chに押し掛けてきても、幸せになることはない。
だから棲み分けすべきなんだよ。


既に書いたが、5ch世代の価値観は、「知識がある奴が偉い」「正しい情報が偉い」だ。
だから大概は「俺の方が詳しい」というマウント合戦になる。
75が典型的で、以前の5chは全部これだ。

ところがゆとりは
「人格者が偉い」「内容が間違っていたとしても、人格者が言った意見が素晴らしい」(=誰が言ったかが最重要)
という価値観なので、根本的に相容れない。
実際お前らはひたすら俺の人格を攻撃している。
当然お前ら的に重要だからこそ、そこを攻撃するわけだが、5ch的には「だから何」でしかない。

そもそも匿名掲示板は相手が誰であろうが、
つまり変態であろうが人格破綻者であろうが、若造であろうがジジイであろうが、
「何を言ったか」だけが問題で、「誰が言ったか」なんて関係ない、という価値観の者が集う場所だ。
だからゆとりは絶望的に5chに向いてない。その価値観を持ち込まれてもここの連中は無理だ。


その価値観なら、FaceBook/quoraが一番向いてる。
お前らはそっちに行った方が幸せになれるからそうしろ。
2020/12/08(火) 23:07:34.50ID:Pb7mIp0t
5chは上世代の「正しい情報が偉い」と匿名掲示板の「誰が言ったかは関係ない。内容だけで判断」という価値観の場所だ。
それはゆとりの「間違っていても、優しく言う人の情報を尊重する」「どんな人格者が言ったかが最重要」とは二重に相容れない。
だからゆとり的に快適な場所を5chに作るのは無理だ。
それはお前らゆとりで作るしかないんだよ。

そしてその相容れない価値観を無理矢理ここに持ち込まれても、ここ5chが壊れるだけだ。
だから止めろと言っている。
(と言ってもお前らは絶対に聞き入れないのも知ってはいるのだが、
それでも、匿名掲示板上では何故ゆとりを殺さなければならないか、その合理性を
ROMってる第三者が理解してくれれば多少は変わるから、それを期待してここに書いているわけだが)

もし仮にゆとり的場所が5chに出来てしまったら、
5chは今の「老若男女関係なく忌憚無く意見を交わす場所」ではなく、
「ゆとりが言うことが正しい」とされる「ゆとり北朝鮮」になってしまってるはずだ。
それが欲しいのなら自分達で作ればいいだけで、わざわざ5ch壊すなよって話だ。

ただお前らゆとりの問題は、この辺も「分かってて壊してる(確信犯)」のではなく、
コミュ障過ぎてSNSの力学とかまるで理解出来ず、
単に蝿のようにあちこちにたかって全部腐らせて行っているだけの点だ。
だから本当にどうしようもない。
2020/12/09(水) 07:29:04.72ID:xnLoPc54
気持ち悪いので虫かごに入れました
こういう人って自分が嫌われてたり
気持ち悪がられてることに気づかないんだろうね
親の責任だね
2020/12/09(水) 12:54:14.55ID:dL9W0Yn5
>>104
>>104
すみませんでした。
2020/12/09(水) 21:51:54.81ID:/YstjyGo
>>106
それは要らん。
必要なのは、「簡潔で要領を得た説明」と「的確な例え」だ。


キチガイじゃないから謝罪と賠償なんて要求しないし、
俺は管理人でもないから代表して謝罪を受ける立場でもないし、
それ以前に謝られても失った物は取り戻せないし、何も改善しない。
それをお前らゆとりはそういった形だけのごまかしで切り抜けてきたから今もってクズなんだよ。

何度も言っているが、必要なのは建設的な提案だ。繰り返すが、>>78
「長い」と文句を言うのなら、「簡潔で要領を得た説明」、
「例えが悪い」と言うのなら、もっと「的確な例え」を出す努力義務があるんだよ。
そしてそれが出来ないのなら、文句を言うべきではないし、通常は言ってはいけないとされる。
ここら辺はガキ同士の遊びからでも学べる内容で、それが大人になっても理解出来てないのだからゆとりは終わってる。

ちなみにここら辺のマナーはテンプレにもなってるだろ。今回なら「言い出しっぺがやれの法則」だ。
知らなくてもいいけど、何故それがテンプレなのかはまともな知能があれば理解出来るし、
仮に理解出来なくても、そこでテンプレとされている物にはある程度は従う必要があるんだよ。
それはそれなりの合理的な理由があって存在しているのだから。
(だからまあ、馬鹿であっても、喜々としてテンプレを楽しむ連中は無害なんだよ。
お前らゆとりは独自の価値観で他を全く受け入れないから問題なのであって。マジでお前らの頑固さには驚く)

あとついでに言うと、お前らだいぶ性格が屈折してる。
>>78なんて、お前らが言われたら「上から目線ガー」と発狂すると思うが、お前らは他人には平気で言う。
自分がされたら嫌なことは他人にしてはいけません、ってのは幼稚園児でも理解する内容なのに、ゆとりはこれが出来ない。
実はお前らは「上から目線したいし、するけど、されるのは絶対嫌」という、俺にはよく分からんひねくれ方をしているのかなとは思う。
「マウント」も酷いし。俺ら世代は「マウント」(一方的にボコる)ではなく、「突っ張りあい」(お互いにボコる)なんだよ。


>>105
親ガー親ガーなお前は相当キモイと思うぜ。
2020/12/10(木) 07:39:45.16ID:fOOMoAJP
簡潔に。
2020/12/10(木) 21:29:16.19ID:zPBkFjIs
>>108
ゆとり死ね

一言ならこれ。>>90の通り
2020/12/23(水) 02:54:13.29ID:0hcglhBp
templateタグをcloneしてすぐそれにidを追加したいんすけど
なんか無理っぽいですね??
appendした後にその要素を特定する作業(追加した最後の要素を見つける)をしてから
その要素を改めて取得してから、idを追加することはできるみたいですけど
どうにかなりませんかね
2020/12/23(水) 14:54:21.18ID:+DNtEOeU
マルチ
112デフォルトの名無しさん
垢版 |
2021/01/11(月) 03:04:58.47ID:JR6qyFIK
コントローラ側にruby使ってます。
フロント側からExcelファイルを選択して
submitボタンでファイルオブジェクトを送った後に
そのファイルデータをコントローラー側で読み取らせ
コントローラ側から処理結果をフロント画面側に返したいです。
ただ、submitだけだと、コントローラ側に渡して終わりになってしまうので
submitボタン押下時にJS側からPostJsonとかで送って、その結果をJS側に返して、
最終的に画面側に[読み取り成功]or[失敗]みたいにしたいのですが

PostJsonで送っても、ファイルオブジェクトとして渡せないので
困っています。どうしたらよいでしょうか??
2021/01/11(月) 09:11:40.78ID:RwOnRvzI
5ch は、マルチポスト禁止です!
5ch内や、どこかのサイトに書いてある、同じ質問を書いてはいけない!

他の場所の質問を取り消してからじゃないと、書き込んではいけない
2021/01/11(月) 16:16:21.50ID:h7h/pzca
>>112
https://mevius.5ch.net/test/read.cgi/tech/1475332848/699
2021/01/18(月) 08:48:24.03ID:svUqu+sR
paizaのホームにあるコードでHello World表示問題
他言語でもやや難しいのがあるが
Javascriptだけ(言語仕様上仕方無い面もあるが)レベルが違うな
2021/01/18(月) 22:23:47.54ID:NoZiY6OY
>>115
そもそもstdinが無い(からNodeになってる)し、色々無理がある。
ただし他言語もstdinの内容を全く使ってないので、

console.log('Hello, world!');

でいいと思うがな。
2021/01/19(火) 14:45:14.91ID:XSrmGQNg
わざわざ上の方の配列成分にハロワドを.pushしたのは自分だけか
2021/01/19(火) 21:45:43.33ID:RlWrzlQv
process.stdout.end("Hello World");

で終わりやんけ
2021/01/22(金) 02:29:19.24ID:pAC29luX
DOMParserがエンコードに反応しない?為に文字化けするのだが、これってどうすればいいのだ?


地のページはutf-8でエンコードされており、
クロスドメインでXML(rss)を取ってくるのだが、これがShift_JISでエンコードされている。
当然頭には <?xml version="1.0" encoding="Shift_JIS" ?> と書かれている。
Shift_JISのrss単体を別タブで開くとちゃんと読めるが、utf-8のページから取得すると読めない。

utf-8でエンコードされている他サイトのrssは普通に読める。
DOMParserにはエンコードを指定する方法がない。
というより頭に書いてるので自動で切り替わると勝手に信じていたが、そうなってないようだ。
document の inputEncording、characterSet, charset は全て UTF-8 となっている。
ただ、xmlEncodingは Shift_JIS となっているので、全く反応していないわけではないようだ。
なお正しく動くutf-8のrssの場合は、xmlEnfording も UTF-8 となっている。

TextDecoder で何とかしようと文字化けしている文字列に対し charCodeAt や codePointAt で Uint16Array に変換してみたが、
65533(0xfffd)がやたら多いので、そもそもDOMStringに上手く入っていないっぽい。
これはどうすればいいのだ?
2021/01/22(金) 11:10:24.32ID:pAC29luX
>>119
自己解決しました。
サーバー側で content-type:text/plain としていたせいであり、
XMLHttpRequest.overrideMimeType('application/xml'); で直りました。

65533はREPLACEMENT CHARACTERという文字化け用の文字らしく、
DOMStringに変換する時点で失敗しているので、これを辿っていったら判明しました。

サーバー管理者はちゃんとしてくれ。日テレ、お前のことだぞ。(以下URL)
https://www.news24.jp/rss/index.rdf
121デフォルトの名無しさん
垢版 |
2021/02/17(水) 13:56:56.26ID:bo7LOn7s
クロージャーつかって関数内の静的変数つくるテクニックあるじゃん
あれって無駄にややこしくない?
クロージャー使わないでオブジェクト使えばいいんじゃないか?
静的変数と関数を両方オブジェクトのメンバーにすれば
2021/02/17(水) 14:28:58.61ID:ty0uudwM
>>121
それでどうやってオブジェクトでprivateにするんだ?
2021/02/17(水) 16:24:24.66ID:xcIRk5Ik
>>121
> 静的変数と関数を両方オブジェクトのメンバーにすれば
それでも問題ないが、指摘されているようにprivateには出来ない。
ただしJava流のprivateは最早手段が目的化しているし、
俺も当初は戸惑ったが、実際問題として全部publicでも何ら問題はない。
だからチームで方針を決めればいいだけ。
君だけで完結しているのなら、その方針でも困ることはないはず。

> あれって無駄にややこしくない?
これは違う。クロージャの方が簡単だし速いからそうしてる。
あと、このメソッドからのみ参照可能とかが簡単に出来るのも大きい。(これは長期的にはものすごく重要)
よって、君の方式のメリットが全くないから誰も使ってないだけ。

ちなみにJSの場合はfunctionもオブジェクトなのでプロパティを生やしてそこに格納も出来るが、
これもメリットがないから誰もやらないだけ。

なおかなり長期にメンテすると、当初privateだった物をpublic的にする必要が出てきたりする。
この場合は普通は君が言ってるような方法で対応することになる。
2021/02/17(水) 19:45:55.76ID:cBwdq4+S
>>121
最初すごく分かりにくかった。
privateにすれば簡単なのに。
2021/02/17(水) 22:01:08.47ID:3Rkqt+9c
>>121
const makeCounter = (count=0) => () => count += 1
const counter = makeCounter(10)
counter() //=> 11
counter() //=> 12
counter() //=> 13

よくあるような例だけどクロージャ使わない方法でやってみて
2021/02/17(水) 22:10:02.73ID:gjncEnw2
Ruby で言えば、クラスみたいなもの

関数スコープでは、スコープ外の変数にアクセスできないけど、
クラス内では、メソッド・display_abc は、インスタンス変数@abc にはアクセスできる

Rubyでは、クラスとは別に、ブロックスコープというクロージャがある。
このスコープでは、スコープ外の変数にアクセスできる

他の言語では、スコープ外の変数を通さない、厳格な関数スコープが無く、
第一級関数をクロージャとしているから、バグが多い

Rubyだけは関数スコープ内に、ブロックスコープを作るクロージャの2段構造で、
関数スコープが厳格で、引数渡しじゃないと、スコープ外の変数にアクセスできない

class A
def initialize( str )
@abc = str
end

def display_abc
puts @abc
end
end

a = A.new( "xyz" )
a.display_abc #=> xyz
127デフォルトの名無しさん
垢版 |
2021/02/18(木) 09:18:17.34ID:BYtePDJa
javascript で メンバーをprivate にするかpublic にするかの区別が分からんが(全部publicだと思ってる)それは俺には重要じゃない
関数呼び出しを繰り返しても保存される静的変数の話がしたい
それをグローバル変数にせずに関数内に置くためにクロージャを使ってると思ってる
だったらobjectにして関数とひとまとめにするのも同じことじゃないか、と思う
そっちのほうが素直な表現だし

クロージャがそもそも何のために出来たのか? ということが分かれば、腑に落ちるのかもしれんが
そもそもそういうことをするために出来たのだ、ということなら
なんとなくオブジェクトの簡易版という感じがするが
128デフォルトの名無しさん
垢版 |
2021/02/18(木) 09:19:29.54ID:BYtePDJa
>>125
こんな感じ

function myCounterClass(init=0)
{
this.value = init;
this.count = function () {this.value++;};
}

var mycounter = new myCounterClass(10);

mycounter.count();
mycounter.count();
mycounter.count();

document.write(mycounter.value);
129デフォルトの名無しさん
垢版 |
2021/02/18(木) 09:21:11.85ID:BYtePDJa
俺のIDがBYte だ
それとお前らいたんだなw みんなもう死んだのかと思った
2021/02/18(木) 09:23:20.60ID:qR1rH4Mn
>>127
> 関数呼び出しを繰り返しても保存される静的変数の話がしたい

それなら静的変数の話をすればいいじゃねーか
関係ない話をしてるのはお前だろ
131デフォルトの名無しさん
垢版 |
2021/02/18(木) 09:44:32.35ID:BYtePDJa
釈迦に説法だろうが"クロージャ 目的"でググって見つけたこのページが分かりやすかった
これを読むとやっぱりクロージャは言語に用意されてない機能を無理やり使うための便法という感じがする
慣れてしまえば楽なのかもしれんが

https://dev.techdrive.top/entry/2018/08/19/124731
132デフォルトの名無しさん
垢版 |
2021/02/18(木) 10:30:00.23ID:BYtePDJa
あまり深く意味を考えずに

myFunction = (function() {
var x;
var y;

return function(a, b,…) {関数の定義};

})();

とすれば、自分専用の静的変数(ここではx, y) を持つ関数が定義できる、と思っとくのがよさそうだな
2021/02/18(木) 10:38:43.56ID:Ld9H4alj
静的変数ってJavaやC#のstaticの事言ってるんだろうけど、そのJSのはメンバー変数相当
2021/02/18(木) 10:51:12.81ID:1zMeI46+
>>130
気持ちは分かるがくだらん小競り合いは止めとけ。


>>127
脱線するが、何がずれてるかを教えておく。
つまりはお前のプログラミング理論の全体像がデタラメなのでみんな適当にエスパーしてるから迷走してるのだが。

> なんとなくオブジェクトの簡易版という感じがするが (127)
クロージャがオブジェクトの簡易版なのは『周知の』事実だ。
ただしクロージャ(Lisp)の方がオブジェクト(Simula)よりも古い。そしてこれらを体系的に纏めたのがOOP(クラス)になる。
そして今時の若者はOOPから入るのだから、

> 静的変数と関数を両方オブジェクトのメンバーにすれば (121)
これを読んだら、「ああ、クラスね」と取られるんだよ。より正確に言えば、頭の「静的」を除去して、
「変数と関数を両方オブジェクトのメンバーにする」=クラスであり、
「クラスのクロージャでprivateガー」はJSにおいては、またこれ?、だから話がそっちに流れる。
そして君の用途ならクラスでは「静的クラス変数」とするものだから130の言い分になる。

見たところお前はOOP/クラスの使い方を理解出来てない。そして
> 関数内の静的変数つくる
と言っているところをみると、もしかしてCしかやってないタイプか?
Cには確かに関数内static変数がある。(130はおそらくこれを知らない。が、知らなくていいし、知るべきでもない)
ただし一般的に「使うな」とされてきたものだからまともな奴なら使わない。
ところが最近の若者がCを習う際には実用ではなく文法から入るようで、
「こんな機能もあるんだ!」「static知ってる俺スゲー」らしく、「そんなん使うなアホ」と言ったら「老害ガー」と逆ギレされる。
そしてお前もこいつら「若害」と同類なのだと思う。

なお、「使うな」とされてるのは、一部仕様が奇妙で信頼出来ないのと、そもそも使う必要がないからだ。
Cにおいては関数は全てstaticであり、つまり関数のインスタンスは常に一つだから、関数内staticなんてグローバルと大差ない。
2021/02/18(木) 10:51:41.67ID:1zMeI46+
そしてこの辺の雑多な概念を整理して出来上がったのがOOP/クラスだ。
だからクラスを使えば、全て綺麗に書けるようになってる。
逆に言えば、クラスしか使えない言語はエレガントな書き方しか出来ないようになってるが、
クラス文法を使わずにクラスを書けるJSとかだと、グダグダな書き方も出来るというわけだ。

その実例が>>128だ。
this.count はインスタンスに依らず固定値だから、各インスタンスにエントリがあるだけ無駄だ。(メモリを余分に食う)
だからそういったメンバ関数(=メソッド)はプロトタイプに格納して

myCounter.prototype.count = function () {this.value++;};

とし、クラスにするのが正しい。そしてこの場合、valueがインスタンスメンバとなり、private/publicという話が出てくる。

> そっちのほうが素直な表現だし (127)
今お前がやりたいことを記述する場合、もっとも素直な実装は、クラスを使うことなんだよ。
クラスを使うまでもない、というのなら125のようにアロー関数のワンライナーでもいいし、今回ならbindでも代用可能だが、
ちゃんと設計する気ならクラスにしておけ。
周りの連中が最初からクラスの話をしているのもそのため。その用途ならクラスだから。
さらに言うと、Cで言う「関数内静的変数」はクラス文法だと「静的クラス変数」として確保することになってるから、こっちも最初からそういう話になってる。
当たり前だが、クラスは後発の洗練された文法なのだから、先行したグダグダ文法で実装出来たことを記述する能力は持ってる。

ただまあ、127は俺の嫌いなタイプではない。
お前はちゃんと自分で考えてる。ただし浅すぎるが。
でも、文法しか学ぶ気のない最近の若害連中よりは断然いい。
若い連中に知識がないのはある程度仕方ない。考え方とか方向性は合ってるから、他言語とOOPを学べば飛躍すると思うぜ。頑張れ。
2021/02/18(木) 11:38:14.57ID:1zMeI46+
>>131
その手の「プログラミングスクール誘導記事」は全部ゴミだから無視しとけ。
間違いが多すぎる。
初心者的に見分けが付かないのなら、Qiitaやここみたいに、あからさまに間違ってたら突っ込まれる場所だけにしとけ。
あと、MDNは(準)公式だから信頼してもいい。

その記事は典型的な「クラスのprivateをクロージャで」だが、クロージャはprivateを実現する為の物ではない。
むしろ、慣れれば「クロージャがない言語は糞言語だ」と断言出来るようになる。それくらい重要で便利な代物だ。
結果、C++にもJavaにも入って、メジャー言語で使えないのは最早存在しない。
同様にメジャー言語を全制覇した概念はOOP位だ。だから同程度に重要な概念だと言える。
とはいえ、本質的にはクラスとクロージャは同じ概念であり、その実装文法が異なるに過ぎない。
そしてJSは最初からそれを理解していたから、クラスも階層も関数も全部functionになってて、これも初心者が混乱する原因にはなってるが。

だからclass文法なんて使わなくてもクラス(と同等の動作をするもの)はJSでも記述出来、MDNはそうなってるだろ。
class文法はクラス脳の為の補助輪(糖衣構文)であり、本質的な事柄ではない。


と言ってもよく分からないだろうけど、今のお前のレベルからすると、
もうその辺の「プログラミングスクール誘導記事」は読むのを止めた方がいい。マジで全部ゴミだから。
MDN読んどけ。
https://developer.mozilla.org/ja/docs/Learn/JavaScript/Objects/Object-oriented_JS
https://developer.mozilla.org/ja/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript
137デフォルトの名無しさん
垢版 |
2021/02/18(木) 12:01:38.80ID:BYtePDJa
>>133
その通り >>125 >>128 みたいな用途
javascriptでクロージャを使う例としてこういうのが出てくる

cなら関数内のstatic変数でやれるやつ
2021/02/18(木) 12:03:18.73ID:vQ0bM4Ab
>>128
機能的に同じにするなら++は前置でreturnが必要
this.count = function () {return ++this.value;};

クロージャを使わないとthisとnewというJavaScript的にはややこしいものが必要になる
newを忘れるとサイレントにバグる
thisを使ってるのでイベントハンドラやsetIntervalなど関数を受け取る関数にそのまま渡せない

クラスベースになれてるとわかりやすいと感じるかもしれないけど
JavaScript的にはほぼメリットが無いのでクロージャ使うほうが一般的
関数を作って関数を受け渡したい場合に必要もなくnewやthisを使うのは邪魔なので

インスタンスを大量に作るような場合は
prototypeに関数をおいて共有したいので単純なクロージャじゃなくclass相当のものを使う
2021/02/18(木) 12:12:11.21ID:smpReQBN
JavaScriptはクソ。
2021/02/18(木) 12:18:52.22ID:1zMeI46+
>>137
繰り返すが、
> cなら関数内のstatic変数でやれるやつ
これを使うのは止めとけ。ついでに
> document.write(mycounter.value); (>>128)
これも使うのを止めて、console.logにしておけ。
141デフォルトの名無しさん
垢版 |
2021/02/18(木) 12:27:08.76ID:BYtePDJa
>>138
return はそのとおりだ

mycounter.count() をイベントハンドラとして登録してもうまく行くぞ
>>125 のような用途でclosure使うのは、よくよく考えれば理解は出来るし慣れれば作法として普通に使えるようになるとは思うけど土臭く出来ることをエレガントにしようとして変なことになってる気がする
142デフォルトの名無しさん
垢版 |
2021/02/18(木) 12:28:22.65ID:BYtePDJa
「泥臭く」だったわw
2021/02/18(木) 13:46:08.90ID:1zMeI46+
>>141
> mycounter.count() をイベントハンドラとして登録してもうまく行くぞ
bindしないと無理だろ。

あと、エレガントに出来ることを「俺が見慣れてない」という理由だけで泥臭くやるのを強いるのは極めて老害だと思うが。
もし君だけで完結してるのならどうぞご自由にだが。


個人的には関数の仮引数に分割代入をまぶしたもの
> elements.map(({ "length": lengthFooBArX }) => lengthFooBArX); // [8, 6, 7, 9]
> https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions
> https://teratail.com/questions/306663
これは違うだろ、とは思うが。このケースなら以下と書けるのだからそうしろと。
> elements.map(element => element.length); // [8, 6, 7, 9]

というか、関数の仮引数に分割代入をしないと綺麗に書けないケースってあるのか?
144デフォルトの名無しさん
垢版 |
2021/02/18(木) 14:40:23.80ID:BYtePDJa
>>143
mycounter はクラス名じゃなくてオブジェクトだからmycounter.count()はうまく行くと思う
実際にうまく行く
そうじゃないとオブジェクトである意味がない
bind()が必要になるのは、mycounter.count を別の変数に代入したときだろ

bind は今
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
で初めて知ったがトンでもない世界だな
こんな代入アリなのかよ
アリならデフォルトで"bind()"しとけよ、と思う
module はクラスじゃなくてオブジェクトなんだから

> const retrieveX = module.getX;
> retrieveX();
> // 9 を返します。この関数はグローバルスコープで呼び出されるためです。
2021/02/18(木) 17:18:28.59ID:1zMeI46+
>>144
> で初めて知ったがトンでもない世界だな
それはJSでは仕様であり超初心者でも知ってる常識。

> 実際にうまく行く
何か根本的に勘違いしていると思うから、その動くコードを出してみ。
2021/02/18(木) 17:31:17.73ID:qR1rH4Mn
>>131
言語の機能の一つがクロージャー

お前が言ってるのは「やっぱり関数は言語に用意されてない機能を無理やり使うための〜」と
言ってるに過ぎない。

そりゃ言語から関数を取り除いたら、関数は用意されてない機能だろうよw
関数がない言語に関数を付け加えたら、用意されてない機能を無理やり〜になるだろうよw

クロージャーは多くの言語に用意されてる標準的な機能で
それがない言語が無理やり実現しようとしてるだけ。クロージャーがないのはJavaぐらいかなw
147デフォルトの名無しさん
垢版 |
2021/02/18(木) 18:16:30.57ID:BYtePDJa
>>145

function myCounterClass(init=0)
{
this.value = init;
this.count = function () {this.value++; document.getElementById("demo").innerHTML = this.value;};
}

var mycounter = new myCounterClass(10);


これで
"demo"ってIDの領域作って、

それと、
button を作ってそのonclick = "mycounter.count()"  でやってみてくれ

HTMLタグ貼ろうとすると書けない
2021/02/18(木) 19:09:51.10ID:1zMeI46+
>>147
> button を作ってそのonclick = "mycounter.count()"  でやってみてくれ
ああなるほど分かった。お前は今やったらグーで殴られるような書き方をしている。
だから通じないんだ。
お前が参考にしている本かサイトが糞過ぎる。全部捨てて、MDNを読め。
それで解決する。

お前がやってる、HTMLに直に、しかもJavaScript「文字列」を貼るってのは、かなり酷くて、
まともなところでは最初からそんなことは教えない。
だから今時の入門サイトにはそんなことが出来ることすら書いてない。
それはレガシーオブレガシーで、15年前なら許されたかもしれんが、それ以降は多分グーで殴られてる。

ただな、プログラミングスクール誘導記事は講師が糞で知識もアップデートされてないから、そういうことはよくある。
だからそういうサイトを読んでは駄目だ。
onclickなら以下になる。お前のコードとは全然違うだろ。
https://developer.mozilla.org/ja/docs/Web/API/Element/click_event
2021/02/18(木) 19:13:44.87ID:y9RXv00d
やっぱプログラマは言葉であーだこーだ言ってないでコード出してなんぼだな
150デフォルトの名無しさん
垢版 |
2021/02/18(木) 20:06:48.49ID:BYtePDJa
>>148
オメーうぜーわ
ドンだけ能力が高いのか知らんが他人の知識を全否定すな
「老害」呼ばわりされるのも当然だ
2021/02/18(木) 20:39:35.12ID:1zMeI46+
>>150
いやお前の知識は全否定されて然るべきレベルだぞ。
実際、褒めてる奴なんて誰一人いないだろ。

そしてお前はもう既に老害になってる。
新しい書き方は、当然だが古い書き方の問題点を修正して出来てる。
だから、特に問題なければ、新しい書き方で書くべきだ。
この単純な理屈を認められず、自分のやり方に固執するから、老害と言われるわけでさ。

ゆとりは老害の必要条件を「年齢」だとして自分を除外したがるが、そうじゃない。
老害ってのは頭が固いことであり、若くてもお前みたいな奴は該当するんだよ。
(勿論老人に特に多いのは事実として)

とはいえ、まあ、そちらの希望どおり、教えてやらないことにする。
馬鹿なままでいるのも君の自由だし、権利でもある。
2021/02/18(木) 20:42:06.59ID:qR1rH4Mn
>>151
長文の割に中身がなんにもないぞ
2021/02/18(木) 21:01:54.28ID:1zMeI46+
>>152
とんでもない馬鹿向けに常識を説いただけだから、常識があるお前には何の中身もなくて当然。
小1向けの教科書をお前が今読んでも何の意味もないが、小1にとってはあれも重要なのと同じ。


というか、お前も質問者を責めてる側なんだから、俺に噛みついてくるなよ。
俺と話したいのなら、143の件、再掲すると、

> elements.map(({ "length": lengthFooBArX }) => lengthFooBArX); // [8, 6, 7, 9]
> elements.map(({ length }) => length); // [8, 6, 7, 9]
> https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions

仮引数に分割代入をまぶしているこれ、何か意味あるかね?
これをやるメリットが分からん。
2021/02/18(木) 21:08:34.67ID:qR1rH4Mn
やる意味かぁ(苦笑)

まあ、お前のレベルではそうだね
○○しろ→やる意味がわからん

初学者だと勉強中=教科書見て書いてある=○○しろと言われる立場で
自分で何かをしたいという要望がないからそういう流れになるんだよね。

プロは○○しろと言われて、やる意味を考えるんじゃないんだよ
プロは○○したいと思っていて、それを実現する方法を探すんだよ
やる意味がわからないレベルなら、やらなくていいよ
力がつけば○○したいと思うからさ
2021/02/18(木) 21:16:36.79ID:1zMeI46+
>>154
では言い方を変えよう。

通常の記述では綺麗に書けないが、
仮引数に分割代入をまぶせば綺麗に書けるケースはあるか?
2021/02/18(木) 21:28:41.37ID:qR1rH4Mn
これ

> elements.map(({ "length": lengthFooBArX }) => lengthFooBArX); // [8, 6, 7, 9]
> elements.map(({ length }) => length); // [8, 6, 7, 9]
2021/02/18(木) 21:36:41.02ID:1zMeI46+
>>156
それは143で既に言ってるが、
> elements.map(element => element.length); // [8, 6, 7, 9]
の方がいいだろ。


多分お前は以前俺(または俺と勘違いされてる誰か)に馬鹿にされたか何かで、
無理して俺を貶そうとしているのだと思うが、お前では多分無理だと思うぞ。
ただし、こういうモチベーションを俺は否定しない。
実際それで良いアイデアがでてきたらお互いにとって利益だから。
2021/02/18(木) 21:48:50.17ID:vQ0bM4Ab
(...args) => args.map(x=> … ).join("")
とか
(obj, [k, v]) => ({ ...obj, [k]: v });
とか
({a, b, ...rest})=>
とか

できないわけじゃないが分割代入使ったほうがスッキリするケースはある
2021/02/18(木) 22:17:02.71ID:1zMeI46+
>>158
なるほど、基本的にワンライナー向けか。
実質的にはど頭で分割代入してるだけだから、行数ケチれるだけだもんな。
ショートコーダーには便利な機能なのかもしれん。
2021/02/18(木) 22:17:10.38ID:Bh0dg9IZ
javascriptって無限ループしてる事を検知する処理作れる?
マルチスレッドで片方のスレッドでメッセージループ作ってそこに来ない=無限ループしてるって判断でいいんだけど
2021/02/18(木) 22:43:56.38ID:UlBwu06v
>>128
document.write は、HTML を初期化するから、使わない方が良い

>>147
>HTMLタグ貼ろうとすると書けない

5ch は、HTMLのタグを解釈するから、<scr@ipt> タグは書けない。
だから間に、@を入れてる

ls ーl などのコマンド、cmd.exe なども半角では書けない

確かに最近は、onclick なども使わないけど、
5ch でサンプルで示す場合には良いと思う

仕事では、jQuery, addEventListener などを使う

専門家は、この板よりも、web制作管理板の方にいるから、そちらで聞いた方が良い。
この板のスレは、荒らしが出たときに、緊急避難用に作られただけ
2021/02/18(木) 22:46:25.69ID:1zMeI46+
>>160
エスパーするとお前がやるべきなのは無限ループの検出ではなく setTimeout(func, 0);

ただしお前は単発だから ID:BYtePDJa の可能性があるので子細は説明しない。
文句があるのなら次回からは質問するタイミングを考えろ。
163デフォルトの名無しさん
垢版 |
2021/02/18(木) 23:24:04.72ID:BYtePDJa
お前のその「エスパー」とやらで同一人物かどうか見抜けんのか?
見ぬけんだろうな
俺に対して発揮した「エスパー」もてんで頓珍漢だったからな

そういうとこなんだよお前の「老害」は
その暴言、うぬぼれで他人を嫌な気持ちにさせていることに気付かない
他人がjavascriptにどの程度興味を持っているのかについても感じることが出来ない
みんながみんなお前のように真剣にjavascriptの修行をしていると誤解して、まるで師匠が弟子に対するような厳しい態度を取る
こっちはお前に弟子入りしたつもりなどさらさらないのに
いまどき2chでもお前のような勘違い野郎は珍しい
久しぶりだわムカついたの
2021/02/18(木) 23:37:57.72ID:1zMeI46+
>>163
ならそれでいいし、お前が>>160に俺より良い回答が出来れば周りもお前を認めるだけだろ。

お前らゆとりが駄目なのは、喧嘩するにしても駄目な方向にしか行かないことだ。
そうじゃないんだよ。つっても絶対に聞かないんだが。
165デフォルトの名無しさん
垢版 |
2021/02/19(金) 00:10:32.26ID:U7Kfl++T
まだわからねーみたいなだな
お前が、俺にとって何がいいか悪いかを決める資格はねーんだよ
それが分からねーところがお前が「老害」たるゆえんだ
2021/02/19(金) 00:17:50.37ID:/F349RGd
>>165
ならそれでいいから、スレ民にとってお互いに利益があるようにお前も協力しろと言ってるんだよ。
単純には、お前が俺より良い回答を>>160に付ければいいだけ。
167デフォルトの名無しさん
垢版 |
2021/02/19(金) 00:30:48.44ID:U7Kfl++T
人に指図をするな
お前にその権利はない
それだけ知っとけ老害野郎
168160
垢版 |
2021/02/19(金) 08:06:22.61ID:WxeWR4wh
ありがとうございます。質問タイミングかんがえます。。
169160
垢版 |
2021/02/19(金) 08:15:14.60ID:WxeWR4wh
>>162
組込C言語をずっとやっていたため、うまく表現できるかわかりませんがsetTimeoutでは処理の順番がかわるだけでありマルチスレッドにすらならないのでやりたい事とは異なります。

やりたかった事はwatchdogTimerです。片方の処理スレッドで処理を定期的に監視スレッドに通知、監視スレッドにて処理スレッドから定期的な通知が来なければ処理を停止させたいです。
2021/02/19(金) 08:27:37.97ID:7Qyf3bFY
>>169
それは無理。
WebWorkerなりを使うしかない。
2021/02/19(金) 09:45:07.39ID:SQn3IdCj
Workerスレッド使えばできるよ

でもユーザーが入力した任意のコードを実行するのでもなければ無限ループに陥ってることを検出する必要はないと思うんだけどな
2021/02/19(金) 10:42:51.45ID:3r79aovE
>>169
JavaScriptでウォッチドッグタイマが必要になるケースってほぼ無いというかあったことがない

WDTでやるってことはCPUバウンドな処理があって, そのタイムアウトを扱いたいってことだと思うけど, もしその処理が実際にはCPUバウンドじゃなくてI/OバウンドならsetTimeoutを使うべき
本当にCPUバウンドならそれはそれでJavaScriptでやるべきかどうか微妙だけど

どうせJavaScriptでハードリアルタイムなんて出来ないしCPUバウンドじゃないならスレッド分ける意味もない, スレッド分けてもネイティブスレッドとは限らないから素直に基本シングルスレッド非同期のJavaScriptスタイルに慣れる方がいい
2021/02/19(金) 10:43:15.54ID:SUcss9HT
javascriptって初心者向けと言われてるけど、実際はかなり難しくないですか?
174デフォルトの名無しさん
垢版 |
2021/02/19(金) 12:41:37.80ID:ZJMIAFRu
関数型言語ですから、数学的に考えれば簡単ですよ。
2021/02/19(金) 12:48:05.50ID:/F349RGd
>>172
一応突っ込んでおくと、CPUバウンドだからこその setTimeout (=メッセージポンプ)な。
使い方/プログラミング的な意味合いは、君の言ってる setTimeoutループとほぼ同じだが。
176160
垢版 |
2021/02/19(金) 23:11:32.07ID:5sukW+yn
みなさんありがとうございます。WDT質問したものです。
javascriptでハードウェア制御装置しちゃってるんですよね。
webワーカーでワーカースレッド立ててみてもdom操作できないし制約が大きいんですよね。ワーカースレッドとして使いたい所もhtmlタグを追加していて遅くなっている箇所なので詰んでいます。

CPUバウンドなのはわかるのですが処理の途中で止めたいのでsetTimeoutでは区切りにくいです。やっぱり関数抜けないと別の処理が動かないのがネックです。スレッド毎にラウンドロビン(時間でスレッド処理を切替える)はできないですか?
2021/02/19(金) 23:28:10.27ID:8W/4DxSU
そんなシビアなところをブラウザでってのは頑張れとしか言えない
ただ巨大な計算が発生してるというよりDOMで詰まってる雰囲気がするんだけど
どれくらいの頻度で書き換えてるの?
178160
垢版 |
2021/02/19(金) 23:31:25.57ID:5sukW+yn
一度に大量に状態ランプを並べる処理だいたい数百
それに加えて畳込み演算、ajax通信
畳込み演算はwebgl使ったgpgpu利用
179160
垢版 |
2021/02/19(金) 23:33:44.51ID:5sukW+yn
書いていてサーバーサイドの無能っぷりにぷりぷりしてきた
180デフォルトの名無しさん
垢版 |
2021/02/20(土) 09:52:22.47ID:eWwdlcu+
>>173
文法は簡単だしパソコンで何もしなくても使える一番手軽な言語だけど、
Hello world 以上のことをしようとするとほかに覚えなきゃならないことが多くて大変だ
HTML, CSS は必須だし
あと、プロの使う超絶技法が解読不能
jQuery.js なんかだと1万行の関数を引数として渡してる
2021/02/20(土) 09:59:30.33ID:xSEyIqRP
> jQuery.js なんかだと1万行の関数を引数として渡してる
渡してないぞ。何行目から何行目の話してるんだ?
https://code.jquery.com/jquery-3.5.1.js
182デフォルトの名無しさん
垢版 |
2021/02/20(土) 12:25:50.12ID:eWwdlcu+
40行目、最後のfunction(…
} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
2021/02/20(土) 13:40:06.63ID:nR8iJ2Ee
普通にscriptタグで読み込む場合とモジュールとしてインポートの両対応のための定石なので難しく考えずに引数で渡してる関数内だけ見ればおk
2021/02/20(土) 17:07:25.19ID:4GiEl8LD
>>173
ゆとりには無理。
意味に関心を持たず、「道の端を歩け」と言っても「指図するな」とブチ切れるのがゆとり。
ソースは ID:BYtePDJa ID:U7Kfl++T

document.writeの使用は、リアルなら「無差別通り魔殺人」級の犯罪で、
逆に俺にはあの仕様が廃止されない理由が分からん。

今更JSを難しいとか言ってる奴って、根本的にこの「俺様ゆとり体質」で、
自分の気に入らないことを全て否定してきているだけ。
結局、誰かに同意してもらえるまでその投稿を繰り返すんだろうし。
多数の人が「比較的簡単」だと認めてるんだから、それ以上でも以下でもない。
お前にとって難しいならお前が比較的馬鹿なだけ。


そもそもゆとりはプログラマに向いてない。
上記のように、「正しいこと」を「指図」し、「間違ったこと」を「お願い」した場合、
上の世代:正しい(=大正義)を指図(=小悪)>間違い(=大悪)をお願い(=小善)となり、「正しいこと」が選択されるが、
ゆとり:正しい(=小善)を指図(=大悪)<間違い(=小悪)をお願い(=大正義)となり、「間違ったこと」が選択される。
プログラマが相手にしているコンピュータは、一切の間違いを認めない。だからゆとりとは相性が悪い。
これが「いまだにJSを難しいと信じたいゆとり」の実際の姿だと思うよ。
そして誰かが「JSは難しい」(=間違い)と優しく言ってくれる(=大正義)のを待っているわけだ。
2021/02/20(土) 17:07:46.88ID:4GiEl8LD
なお、構ってちゃんならウザイから死ね。
これは俺のみではなく、本当に、プログラミング界隈では構ってちゃんは死ねと思われてるから、止めた方がいい。
構ってちゃん/あげたいちゃんは、もっとウェーイ界隈に行った方がいい。
プログラミング界隈はgeekだnerdだと馬鹿にされてるが、
逆に言えば、そういう奴等の方が向いてるから集まってるだけ。
そうなれないならマジで止めとけ。お互いに不幸なだけだから。

なお、これを「俺が変えてやる!」みたいなのもマジで迷惑だから止めとけ。
根本的な原因は俺らの上司であるコンピュータ様が「コードが正しければok、他は何も関係ない」という価値観であり、
結果的に世界中のプログラマが「朱に交われば赤くなる」でその価値観に染まっている事による。
結果、ゲイもブスもトランスジェンダーも、朝型も夜型も関係ない、
お菓子食べて音楽を聴きながらコーディングしてもガッツリ動くなら問題ない、という連中が集まってる。
そして他界隈からは、あいつらは弛んでる、けしからん、と見られてる。

どっちが良いかはさておき、
この「コードが正しければok、他は何も関係ない」という価値観に染まれないのなら、プログラマには向いてない。
こんな匿名掲示板上ですら、内容が正しいとしても言い方が気に入らない、と感じてるようでは話にならない。
逆に、上司であろうが間違いをキッパリ指摘出来るような奴の方が向いてる。
(まあこの意味では日本は文化的にプログラマに向いて無く、実際酷いわけだが)
2021/02/20(土) 19:57:59.29ID:xSEyIqRP
>>182
それのソースコードはこれな
https://github.com/jquery/jquery/blob/main/src/wrapper.js

> jQuery.js なんかだと1万行の関数を引数として渡してる
これはビルド済みのコードでそうなってるだけで
実際のソースコードは1万行の関数を引数として渡したりしてない

お前はプロの使う超絶技法が解読不能なのではなく
JavaScript業界でよく使われるビルドという基礎知識を知らないだけなのだ
君は、初心者だよ、初心者w
187デフォルトの名無しさん
垢版 |
2021/02/20(土) 20:56:30.97ID:eWwdlcu+
>>184-185
今は、お前より優秀でお前よりまともに人と関われる人多いから、
めんどくさいお前のようなやつはもう邪魔なだけだよ
独りよがりの「指導」で周りのモチベーション下がるし
これを老害と呼ばずしてなんと呼ぶ?
ま、お前が働いていたらの話だがな

>>186

おまえが>>181 で出してきた https://code.jquery.com/jquery-3.5.1.js では1万行の無名関数を渡してるじゃないか
俺はjQuery.js ではそうなってるって書いた
事実そうなっている
wrapper.js を持ち出してきて俺の書いたことを否定するのは筋が通らん
2021/02/20(土) 21:03:03.00ID:xSEyIqRP
>>187
お前が言った1万行ってそれのことだろ?

どうせビルド済みのコードの話でもしてるんだろうと思って
ビルド済みのコードだしたら見事にそれだったじゃないかw
それともそれ(ビルド済み)以外のコードの話をしてたんか?
189デフォルトの名無しさん
垢版 |
2021/02/20(土) 21:16:19.92ID:eWwdlcu+
俺はjquery.js では1万行の関数を渡している と書いた
実際にそうだった
それをお前は勝手にソースでビルド前の関数という前提を自分の中で決めて否定してきた

>>181 でお前はビルドだのソースだの何も書いてないじゃないか
お前の中の基準を黙って適用すなよ
2021/02/20(土) 22:26:24.43ID:xSEyIqRP
>>189
お前が言っていた話は
ビルド済みのコードの話だって認めたんだよねw
2021/02/20(土) 22:44:01.65ID:4GiEl8LD
>>187
お前の周りに「優秀でまともに人と関われる人」がいるのなら、最初からそいつに聞け。
ここで聞くのなら、馬鹿すぎたら馬鹿にされるのも当然。
というより、糞を糞と言われるからこそ、ここには意味があるんだよ。

お前みたいなクズゆとりは5chにもプログラミングにも向いてない。
次からはteratailで聞けよ。お互いにその方が幸せだ。
2021/02/20(土) 22:55:55.05ID:56yjs2OO
なにか因縁のある二人なんかな

とりあえず>>180の「1万行の関数を引数として渡してる」が正しくて
>>181の「渡してないぞ。何行目から何行目の話してるんだ? https://code.jquery.com/jquery-3.5.1.js」は明らかに間違ってるのは確か

1万行の関数渡したところで別に問題ないけどね
193デフォルトの名無しさん
垢版 |
2021/02/20(土) 22:59:13.44ID:eWwdlcu+
>>190
俺はjquery.js でそうなってると書いた
ビルド済みかどうかなんて話はしてない
ビルド済みだというのならそうなんだろう

>>191
俺はお前には聞いてない
>>134-136 で聞かれもせんことをくどくどと書いてきた時からスルーしてた
お前のようなタイプとは絡みたくなかったからだ

お前と絡んだのは
>>143
> bindしないと無理だろ。
とお前から問われたからに過ぎん

俺にはお前の持っている知識は必要ない
2021/02/21(日) 00:39:04.01ID:3C6ImJQN
>>193
スルーしてるだろうな、ってのは予想してたぞ。
むしろ144で反応したことにこちらは驚いた。
IDでNGしてると思ってたからな。

ただ、スルーするのは勿論自由だから、当然俺は何も文句言ってない。
俺が言ってたのは純粋に技術論であり、お前が人格攻撃に切り替えたから俺も「やっぱゆとりはクズだわ」と対応しただけ。
そもそも俺はお前の人格になんて全く興味ない。

お前はスレをまるで読めてない。
俺が143を書いたのは、>>138をサポートする為だ。
自信持って書いてても、即座に否定されたら、「あれ?俺何か勘違いしたか?」と心配になるから、
「お前(138)は間違ってない」と示す為に書いただけ。
あれはお前(141)にレス付けてるが、俺自身はお前からレス来るとは思ってなかった。(だから後半で別の話題に振ってる)

その後「老害」に反応したお前と「ゆとり」に反応した>>152から完全に脱線モードだが、
138は158で『こんな俺に対しても』答えてくれてる。
俺をどう思ってるかは知らんが、少なくともおまえらみたいなクソガキではないのは確実だ。

さてその後162で俺は糞タイミングの悪い160をしばき、俺を殴り足りない152を受けてみた。
152に対して俺より良い回答が出来る状況を作り、そこで上方向の喧嘩に持ち込み、スレの流れを正常化して品質を上げる為だ。
それをお前(167)はクドクドと邪魔しているわけだが、マジでお前何の役にも立ってねえゴミだよ。
まあそれはさておき、この時点で138は技術的にも極めてまとも、
152は俺に食ってかかってくる=少なくとも本人は俺より上だと思っている程度には自信があるのは読みとれる。
となると放置しても2つは回答付くところだが、敢えて先に回答して152による攻撃目標箇所を作ってみた。
毎度お前らが長い長いとうるさいので回答もワンライナーだ。

結局152は受けなかったようだが、結果的にさらに3つ回答付いているのだからこのスレの捨てたものではない。
そして良回答をしている>>172をサポートする為に俺は175を書いた。
172が勘違いしている場所を修正し、結果的に、172にとっても回答したことが利益になるようにする為だ。
(なお170も171も良回答だ。ただしツッコミどころがなかったので放置だが)
2021/02/21(日) 00:40:03.90ID:3C6ImJQN
というわけだ。馬鹿なお前みたいなクズゆとりには分からないだろうが、
俺は質問者をダシにして、良回答者をサポートし、結果的に良回答者が集まるように仕向けている。
ついでにお前みたいな馬鹿は二度とここに来たくなくなるようにも仕向けてる。
スレっていうのはこうやって調整するもんなんだよ。
その辺分かってるのか、興味ないのか、138は淡々としてるけどな。

俺はWeb板には行かないから、俺を嫌いならWeb板に行ってくれ。
それでみんなWeb板に移住し、俺がここに置き去りにされたら、俺の負けで全く問題ない。
そうやって、上方向への競争をするべきなんだよ。

なお勿論このレスも、お前をダシにして、俺が何をしたか/しようとしているか、他のスレ民に説明する為だ。
俺からの知識はいらん、というお前に説明する必要はないからな。
ただ、お前みたいなコミュ症クズゆとりが多いから、ゆとりはゆとりの場所を持てないんだよ。
お前は俺が何をやっていたか、全く理解出来てなかっただろ?
お前はこれまで居た場所も多分それなりに破壊してきてる。
Web上のコミュニティは、コミュ症なお前が理解出来るほど単純な物ではないんだよ。
丁寧に応対すれば良くなるという単純なものでもない。
だからコミュ症なのを自覚して、teratailに引きこもってくれ。
そしてお前の脳内の「優秀でまともに人と関われる人」に質問しとけ。
2021/02/21(日) 01:34:22.48ID:kbkbRMiR
>>192
Linuxのビルド済みのコードを見て機械語で書かれてる
これぞプロの超絶技巧だって言われたら意味不明になるだろ

本来1万行の関数を渡すなんて駄目なやり方
それを指して超絶技巧とか言ってたら間違いを正さなければいけない
意味が180度かわるんだよ。ビルドしたら複雑になるようなものを
ファイルを分割してシンプルにすることこそプロの超絶技巧なわけ
2021/02/21(日) 05:27:22.32ID:x7XX42Aa
>>173
初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017
JavaScript 第6版、2012、David Flanagan

この2つは、表紙にサイの絵が描いてある、サイ本と言われているけど、
これだけでも数言語をやっていないと無理だし、数年は掛かる

要するに言語仕様が滅茶苦茶だから、それをいじくり回すのが、すごく難解。
引掛け・バグつぶしばっかりで、面白くない

だから皆、バックエンドをRuby で書く。
Rubyの本を数冊読む方が、サイ本1冊よりも、遥かに簡単だから

>>176
並列処理は、AWS Lambda/Batch、キュー(SQS)など

仕事なら、言語でやらずに、サービスを使えば?
198デフォルトの名無しさん
垢版 |
2021/02/21(日) 08:23:47.55ID:yNNx6IFm
>>196
自分の間違いも認められないやつに「間違いを正さないといけない」なんていわれてもな

>>194-195
なんかすごいの出てきたw このジジイ井伏鱒二の山椒魚とダブる
2021/02/21(日) 09:05:40.21ID:3C6ImJQN
>>193
あとついでに言っておくと、周りに ID:eWwdlcu+ みたいな「サイコパス老害ゆとり」が居る場合、そいつの言う事を聞いてはいけない。
この「サイコパス老害ゆとり」は確実にさとり世代をイジメ殺す。
俺にはそれが見えてるから、何とかさとりを救おうとしている。
言葉だけは丁寧なはずだが、それに騙されてはいけない。さとりはしたたかに反逆しろ。
(ただし表面的には合わせとけ。こいつはパワハラ/アカハラするタイプだ。気を付けろ)

こいつは
A. 今時クロージャを知らず
B. 今時クラスの使い方も知らず、
C. 今時アロー関数を「エラガントにしようとしすぎて余計に分かりづらい」として認めず、
D. しかし何故かプログラミングについて自信たっぷりで、
E. 質問した癖に質問した場所の悪口を言い、
F. 始めて来た癖に、元々居た住民に出て行けと言わんばかりの態度

こんなテンプレ的「サイコパス老害ゆとり」に遭遇するのは珍しいが、それでも遭遇することは偶にある。
それはやっぱり、実際にゆとり世代にこういう奴が点在していることの証明だから、さとり世代は気を付けないといけない。

ABCについては、お前はどの世界線にいた浦島太郎だよ?だが、問題はDで、
知らないだけならさておき、それを問題だとも認めず逆ギレしているのだから、完全にどテンプレの老害だ。
Eについては、実はゆとりは典型的にこれをやる。コミュ障で「筋」を理解出来ないからだ。
お前がここで聞いた=お前にとってはここが質問するベストプレース、なのだから、それは言ってはいけない(負け)だろ、というのが筋だ。
そして最大の問題はFだ。今時ゆとりでもなかなかこれはない。
典型的な上世代は、「あれ?俺何か間違ったか?」と自省し、
典型的なゆとり世代は、「あ、ここはクソだった。さようなら」と考え、黙って居なくなる。
ところが「サイコパス老害ゆとり」は、「ぼくのおもっているかいとうがでてこなかったのは、そこにいるれんちゅうがくずだから。」
とし、一ミリも自分に問題があったとは考えない。自分=大正義であり、それ以外は全て悪だから。
2021/02/21(日) 09:05:56.83ID:3C6ImJQN
典型的にはこれ
> 俺にはお前の持っている知識は必要ない
今回は俺宛に言ってるが、こいつは間違いなく他の場所でも同じ事を言ってきてる。だから知識が全くアップデートされてない。
そして人格攻撃をしてくるところをみると、少なくとも俺よりは人格者だと思っているのだろうが、
上記Eをしてる時点でクズだし、(ゆとり的には許容されるようだが、少なくとも上世代の連中はこの手の奴はクズに分類する)
Fに至ってはなかなか居ないレベルのサイコパスだ。

だが現実として、居る。
だからさとり世代は「誰の言うことを信じるか」よく考え、しかもあからさまでもなく、したたかに行動しないといけない。
201デフォルトの名無しさん
垢版 |
2021/02/21(日) 10:14:51.80ID:yNNx6IFm
>>73 からの流れ読んだが涙流してワロタわw
おまえこれでよく他人に
> お前はこれまで居た場所も多分それなりに破壊してきてる。
なんて言えたなw

もったいなくてまだ全部読んでない ちょっとずつ楽しんで読むつもりだ
■ このスレッドは過去ログ倉庫に格納されています