+ JavaScript の質問用スレッド vol.124 + [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2015/03/22(日) 16:19:45.75ID:nW67tQ7U
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。

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


+ JavaScript の質問用スレッド vol.123 +
http://peace.2ch.net/test/read.cgi/hp/1423915644/

(ライブラリ禁止条項は、多数の意見によって廃止されました。ライブラリの質問もOKです)
2017/12/28(木) 21:32:34.92ID:AeGE7eie
エサ投入(笑)
https://qiita.com/shibukawa/items/19ab5c381bbb2e09d0d9
569デフォルトの名無しさん
垢版 |
2017/12/28(木) 22:08:55.36ID:E7wukrMJ
>>566
荒らしにエサを与えると>>567のようにはしゃぎ出す 二度とエサを与えるな
570デフォルトの名無しさん
垢版 |
2017/12/28(木) 22:14:09.65ID:E7wukrMJ
>>562
ゴミクズの見分け方は簡単
検索すれば一発でわかる事
一次ドキュメントに書かれている事をまとまりのない長文で聞く

二度とエサを与えるな
2017/12/28(木) 23:15:07.71ID:EahqhR5N
>>562
ちなみにお前はどんなスレが欲しいんだ?
或いは、自分が何をやっているのか理解しているか?


君の回答よりもMDNの方が詳しく正確に書いてある。
つまりこのブスはMDNすら読んでいないことが確定的に分かっている。

その上で、回答をするのなら、今後ともMDNすら読んでいない奴が質問を繰り返すことになる。
それが君の望むスレなのか?
或いは、君はゴキブリ韓国人と同様、日本人が集まる場所を破壊するのが目的なのか?

MDNすら読め無い馬鹿が集うスレが欲しいのなら、君らがそれを新たに作るのは自由だ。
ただ、ここはそうじゃない。
最低限ググってから質問しろという、2chではごく当たり前のスレだ。
それを無理に乗っ取って回答を続けることは、背乗りゴキブリ韓国人と同レベルだと理解できてるか?

もっと長期的視点で考えろ。
2017/12/28(木) 23:26:54.90ID:VRkNjdBa
var key = 'a';
// var key = '__proto__';
var obj = {};
obj[key] = obj[key] ? obj[key] + 1 : 1;

文書に出現する、単語の数を数える場合、
その単語が未登録なら1、すでに登録されているなら、1増やす

こういう場合に、たまたま、__proto__ という単語を登録しようとするとバグル。
obj.__proto__ を上書きするから

var wordsMap : Map<String, Int> = new Map();
wordsMap["a"] = 1;
trace(wordsMap["a"]);

上は、Haxe のMap のコードだが、ES4 変換後のコードでは、
wordsMap["$" + key]
のように、キーの前に、$ 文字を連結している

他にも、
var obj = {x : {}};
のように、オブジェクト内のオブジェクトを使う事もできるが、
この方法でも、__proto__ ではバグル
2017/12/28(木) 23:55:13.26ID:AeGE7eie
つまり、キーとしてそういうものが入らないと
断定できるならば問題ない

キーとなるものはコードに書かれている文字のみで
ユーザーが入力したテキストを入れるとかない限り
心配する必要はないということさ
2017/12/29(金) 00:37:14.05ID:h2ZT+2Pd
皇居でブラタモリ
2017/12/29(金) 00:37:48.77ID:h2ZT+2Pd
誤爆失礼w
2017/12/29(金) 13:13:32.16ID:PDOKco2M
Object.prototypeの問題は
obj={__proto__:null}
obj=Object.create()
で解決するから別にそこがオブジェクトリテラルと比べて
殊更取り上げる程のMapの特徴と言うわけでもない
2017/12/30(土) 00:33:29.23ID:GFw+RV/O
Object.create(null)もいいが、Mapの利点はforEachで定義順で列挙可能とか、iterableなオブジェクトを生成しやすいとか、あたりじゃないかね
2017/12/30(土) 12:38:52.32ID:tmNQ0max
全部一次ドキュメントに*日本語でも*記述されてる事だね
ゴミクズ質問者とそれに集るゴミクズ回答者
2017/12/31(日) 11:37:26.89ID:lfwJq0IT
JSに一次ドキュメントはない
コメントほぼ無しの仕様書と二次三次ドキュメントだけ
2017/12/31(日) 13:14:45.77ID:WrKHDnuU
ゴミクズ回答者はWeb標準のドキュメントがMDNに統合される事(既に統合は進んでいる)を知らないようだ

ゴミクズ回答者にとっては、時間と金をかけて必死で積み上げた取って置きの知識だろうけど
今は無料で即時に入手出来るんだよ

Mapの利点を長々と解説してたが、三平方の定理を発見した古代人がドヤ顔で解説してるようで滑稽だったよ
2017/12/31(日) 13:21:58.51ID:QYl5Dlef
だれかMacの利点を話してた人いたっけ?
582デフォルトの名無しさん
垢版 |
2017/12/31(日) 17:46:10.92ID:GvxCaHuK
初歩的な質問失礼。
ある非同期関数があるとき、それをwrapして同期版を作るうまい方法ってないですかね?
fs.open()を使ってfs.openSync()を作るようなイメージ。
2017/12/31(日) 19:02:39.26ID:B2mtcXzM
ないです
2017/12/31(日) 19:05:55.34ID:lWm8BqoC
promise

generator runner は、promise と組み合わせて、非同期処理を同期的に書ける。
つまり例外処理を使える(同じコンテキスト)

co, Koa を使う
2017/12/31(日) 21:46:58.66ID:GvxCaHuK
>>583
やっぱりそうですね。
586584
垢版 |
2017/12/31(日) 22:12:55.50ID:lWm8BqoC
generator runner
非同期のpromise をラップして、同期処理にしたもの

同期f(){
yield 非同期のpromise;
}

yield で、promise が満たされるまで止まる
2017/12/31(日) 22:49:12.39ID:GvxCaHuK
>>586
回答ありがとうございます。
けどこれyieldで止まります?同期f()はgeneratorですよね?
単にnext()でPromiseが返るだけのような。
588584
垢版 |
2017/12/31(日) 23:30:23.91ID:lWm8BqoC
co, Koa を使う

それを見て
589584
垢版 |
2018/01/01(月) 00:11:22.41ID:W1EVIqcJ
yield 非同期のpromise;

yield で、promise が満たされるまで止まるように、iterator, generator を作ると、
ES2017 の、async/await と同じになる

それが、co, Koa なんだろう
2018/01/01(月) 05:14:25.34ID:E9GYpYJ8
>>580
それは二次ドキュメントが統合されるってことだよ
ってか、君は何なん?ゴミクズに野次を飛ばして楽しむ傍聴人?
ドキュメントがあるで済むなら言語質問スレなんていらんがな
2018/01/01(月) 07:54:04.98ID:M7PJ0p4R
>>589
やっぱりなにか勘違いしてる。
async/await使ったってfs.openSync()のような同期処理は無理でしょ。
2018/01/01(月) 09:38:37.62ID:RL3ivRC9
>>590
ドキュメントにそのまま載っている内容を質問する馬鹿は死ねでいいでしょ
ググれないブスも死ねでいい
2018/01/01(月) 12:41:21.48ID:UtygSLzQ
>>592
気持ちは分かるが、説明書を読むのと、人から教えられるのではやっぱ感触が違うからな
ROMってる奴のほうが多いと思うし、その人の為、もしくは例え既知であってももう一度それに付いて考えてみる機会ができたという点で為になってると思うよ
2018/01/01(月) 13:52:41.65ID:RL3ivRC9
>>593
ならねーよ。死ねよ。

考える機会が欲しいのなら、自分でMDNを定期的に読み返せば済む。
自己完結できない奴は上達しないし、そもそもプログラマに向いてない。


小学1年生の教科書を毎年読み返しても、お前みたいな小学1年生レベルの馬鹿から進歩できないだろ。
JavaScriptのスレはマジで酷いぞ。少しは他スレも読んでみるといい。
当然他スレにも初心者は沸いているわけでね。
何故JavaScriptだけこんなに酷いのかは、俺にはいまだによく分からんが。

568のqiita、20年やっててこの程度しか書けないのか?と思うよ。
JavaScripterは、文法にだけやたらこだわっていて、プログラマとしては全く上達してない。
2018/01/01(月) 14:22:31.88ID:E9GYpYJ8
>>594
そんなことないと思うよ
これを機にMapについてより深く知った人も多いと思うし
自分もこれまでMapをどう使ってきたかなって思い起こす機械になったし
沢山の物があるWeb学習において重要なことは、
機会があった時に深く知ることを繰り返すことだと思うよ

基礎を完璧に抑えて応用を学んだ行くというのは不可能
だから時々基礎に立ち返る価値はいつになってもあるし、
例えMDNが90点で、ここの情報が2,30点の集まりだったとしても、
色んな人の色んな角度から情報を理解するってことも重要

JSもだし、Webっていうのは皆で作っていくものだからね
言葉の定義や何が良いことかっていうのも、
その瞬間に世界のJSerやWebデベロッパーが何をどう考えているかで変わってくる
だから文法や文脈に拘るっていうのもとても大切なことで
JSerやWebデベロッパーにとってそのすり合わせのための機会っていうのも重要

正解が無く、むしろその自由さが良いこととされている環境だが、だからこそ常に正解を見つけていかないといけない
だから皆が独自に正解を考えるが、実際その環境で何が正解と言えるかというと皆の意見の総和ということになる
だから自分のこだわりを認めてもらおうと、広めようと躍起になって良く揉めるが、それも環境の進化のために必要なこと
その点中央政権があったり、よりプロプライエタリな他言語環境とは雰囲気が違うのは当然
2018/01/01(月) 14:57:35.96ID:RL3ivRC9
>>595
ゴミクズ韓国人な私はいつまで経っても馬鹿のまま、まで読んだ。


まあとにかく、ググればすぐ分かること、或いはMDNに明示的に書いてあることすらも受け付けるというのなら、
そういう連中を集めて、新しいスレを作ってくれないかな?
何故、既存のスレを乗っ取ろうとする?背乗り韓国人なら死ねよマジで。

韓国人死ね

君がそう思っている。
俺はそうは全く思ってないし、こちらが2chでは主流派だ。
Web流を自負するなら、背乗りではなくて、フォークで決着するべきだ。
何故それをしない?
それで、君達の新しいスレが繁栄し、持続すれば、君達が正しかったことになる。

お前が言っていることは、まんまゴミクズ在日韓国人の言い訳と同じだ。
お前みたいな在日韓国人は死ねとしか思わないね。


既に何度も言っているが、
俺は君たちが新しく作ったスレには行かないし、Web板のスレにも投稿しない。
それで、俺が居るスレと、俺が居ないスレで、どっちが良くなるか勝負しようと何度も誘っている。
俺が居ないスレの方が良いスレになるようなら、俺の存在価値は無い証明になる。
逆に、君たちの居ないスレの方が良いスレになるようなら、お前らがゴミでありゴキブリである証明になる。
こういう、建設的な勝負をしようと既に何度も誘っている。
お前らは受ける勇気もないヘタレだ。属国5000年のヘタレなDNAは伊達ではない、というところか。

再度言う、韓国人死ね
597デフォルトの名無しさん
垢版 |
2018/01/01(月) 17:45:00.75ID:Xbk+w4sV
ある要素にaddEventListenerでイベントリスナを登録したんですが
この要素を削除すればイベントリスナも削除されますか?
見えない所に残ったままになりませんかね?
要素を削除する前にremoveEventListenerをするべきでしょうか?
2018/01/01(月) 19:47:13.85ID:faANOIdg
>>596
なんでネトウヨがJavaScriptスレにいるんだよww
ほんまハゲやなお前は
2018/01/01(月) 22:46:59.46ID:RL3ivRC9
>>598
連呼リアン死ね
2018/01/01(月) 23:10:17.69ID:W1EVIqcJ
>>597
ある要素に、EventListener を付けて、その要素の先祖の要素を削除すると、
EventListener が付いたままになって、メモリリークを起こすのでは?

Backbone では、メモリリークになるけど、
jQuery では、削除した要素の、すべての子孫の要素の、
EventListener も削除するからメモリリークにならない、と何かで読んだことがある

まあ、デバッグして確かめるしかない
2018/01/02(火) 12:07:09.51ID:tr5O7MN9
>>597
>>600
お前らもいい加減死ね

何度目だその質問?だし、
過去スレどころかこのスレ内で既に回答されてるし、
回答600も間違ってるし。

全ての点において救いようがない。


まあそれでも、お前らがそれに価値があると思うのなら、フォークしろ。
つまり、別スレとして新たな方式、お前らが目指している、

・同じ質問を何度でもおk
・ググってすぐ見つかる事も質問してよし
・MDNに明示的に書いてあることも質問してよし
・日本語が不自由でもよし
・間違った回答も歓迎
・ゴキブリ韓国人も歓迎

を作って、試してみればいい。
俺は無理だと思うが、この見立てが間違っているのなら、俺が老害である証明になる。
そうではなく、お前らでまともに成立するスレを作れないのなら、お前らこそが荒らしなんだよ。
マジでそれを自覚して、背乗りは止めろ。誰のためにもならない。

韓国人死ね
2018/01/02(火) 19:51:20.73ID:BCempIdS
フォークは無意味
分けるんなら「質問スレ」を消して両方別名でpart1から始めるべき
2018/01/02(火) 20:43:56.15ID:zTWSIcjp
フォークなんて何の意味もない
質問スレなんだから質問と回答だけを書け
ハゲは消え失せろ
以上
2018/01/02(火) 21:32:54.72ID:tr5O7MN9
一応Web板にも質問スレはあって、そこも十分機能しているわけだから、
お前らが乱入してこなければ、フォークとして機能しているんだよ。
だからとりあえずWeb板に戻って、そこで自由にやってくれないかな?
俺は何度もそっちには口出ししないと宣言している。

お前らに足りないのはIDではなく、お前ら自身の民度だと、お前らにも分かってきていると思うけど、
それでもIDが欲しければ、Web板民で話し合って、
君らで自由にテンプレ作ってIDありの板でスレ立ててみればいい。
それで君らのスレの方が繁栄すれば、君らの勝ちだよ。分かりやすい話だ。

ただなあ、ググレカスなのは2chのみならず、Web全体の文化であり、
何故そうなっているのかすら理解できず、
「ウリが正しいニダ」と声闘をするゴキブリ韓国人級の知能では、どうにもならないとは思うけど。
まあそれでも、やってみて、まずは己の無力さを理解することだね。

韓国人死ね
2018/01/02(火) 21:50:54.97ID:oQl8slaZ
乱入ワロタw
お前のスレじゃねーんだよゴミ
お前が出て行けばそれで誰にとってもハッピーなんだって分からんか?
2018/01/02(火) 22:44:21.14ID:tr5O7MN9
まあ、世界中から韓国人が死滅すれば、世界はずいぶんマシになるよ。
韓国人の一番の問題は、韓国人が何故嫌われているのか全く理解できないことだからね。

韓国人死ね

そしてお前らの問題は、お前らが韓国人と同じ事をやっていることを理解できないことだ。
まずはそれを理解しないと始まらない。
俺が言っている方針、

・まずググレ
・公式ドキュメントに書いてあることを質問するな
・過去スレを読め

なんてのは、2ch/Web全体の文化であって、
少なくとも何故こうなっているのか理解できない馬鹿にこれを凌ぐ物を作ることは出来ない。
君らは君らが馬鹿であることを自覚するところから始めないといけない。本当に終わってる。

俺が出て行っても、状況は変わらんよ。これはWeb全体の文化だから。
相手を追い出しさえすれば全て解決というのは、完全に在日ゴキブリ韓国人の論理だね。


それはそうとして、これは結局例のコピペ「コミュニティの一生」の終末状態であり、
https: dic nicovideo jp/a/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%81%AE%E4%B8%80%E7%94%9F
2chにはこれを防ぐための方策がないのも事実だ。
そこで俺はこれについての対策を持った掲示板を立ち上げたいとは思っているんだが、
仕様についてアイデアがある奴はいるか?

例えば、ふたばの仕様、
・1はスレ内の任意のレスを消せる(style.display = 'none';)
・1によって3回消されたらその人はスレ内BAN
で解決するかね?
或いは、他のアイデアがあれば是非。
2018/01/02(火) 23:03:44.84ID:BCempIdS
自分で調べろというのはごもっともだがそれはどちらかと言うとマナーの範疇
そういう人にググれカスだの半年ROMってろって言うのまで含めて2chの文化だが
それはあくまで背中を押すような一種の愛情表現であって
不愉快だからスレから出て行けというのとは違うけどな
今このスレに大事なのはもっと気軽に馬鹿な質問をしてもらうことで
そういうのを消すことじゃないだろう
2018/01/02(火) 23:09:26.66ID:BCempIdS
つうかなんか悲しいよな
ここはJSを「自ら学ぶ人のための」質問スレッド
つまり質問者のためのスレで、回答者はその質問者を助けるためにいるわけなのにな
いつの間にか自分が嫌いな質問は許さん
自分が好きな回答ができない流れは許さんっていうのが増えたよな
質問者の数が減ったら大事にすべきなのに、むしろ立場が弱くなってきてるよな
2018/01/02(火) 23:18:25.90ID:tr5O7MN9
>>607,608
まあ君がどう思おうが君の勝手だが、
もし俺を追い出したいと思っているのなら、俺にアイデアを出してみてくれないか?
俺がそっちにかかりきりになれば、当然こっちは疎かになるし、win-winだろ。

2chのシステムでは、荒らしに居座られたら対策がない。
そして、今現在はそれ以前の、荒らしが荒らしと自覚できてないという状態だ。
日本語も通じないし、言うこともきかないし、さすがにどうにもならないよ。

韓国人死ね
2018/01/03(水) 00:19:54.04ID:1Yhs3Yxn
>>609
君の末尾の文句は荒らし行為じゃないの?
もしなんでも良いから〇〇死ねと末尾に付ける人が居たとして
君はそれは荒らしだと思わないの?
2018/01/03(水) 00:23:23.76ID:1TXR69Kg
>>610
お花畑死ね
2018/01/04(木) 20:46:48.25ID:iFtzCaCZ
【2chスレの一生】

日本人が良スレを作る

良スレだからゴキブリ韓国人が集まってくる

住み着いたゴキブリ韓国人が居場所を守るために主張し始める

良スレを作った日本人達が見切りをつけて居なくなる

残ったゴキブリ韓国人達がスレを乗っ取る

ゴミスレなので誰も居なくなる


2chはこれを防ぐシステムを持ち合わせていない。
ここが致命的な弱点で、改善すべきだ。
俺は何とかして2chを

・韓国人の居る、現在の2ch
・韓国人の居ない、新しい2ch

にフォークしようとしている。
それで新2chの方が継続的に盛り上がるようなら、

・韓国人は殺すべき

という結論が承認/共有されることになる。
俺はこれを試そうとしている。
アイデア出しだけでも協力してくれれば助かる。
2018/01/05(金) 12:56:13.85ID:u+R3cpJk
例えば手続き的にwordカウントするときkeyを単語、valueをカウンタにするじゃん。
objectなら o['hoge'] += 1 みたいな足しこみやインクリできるけど、Map だと明示的にget して1足してsetするのがセオリーなの?
2018/01/05(金) 13:05:35.59ID:tDnoSwNP
o.get("hoge").value++; ってすればいいよ
2018/01/05(金) 14:55:32.34ID:w3P38fZ2
なるほど、そうやるのか。
ありがとうございました。
2018/01/05(金) 15:04:04.06ID:tDnoSwNP
まあこのvalueが何者であるかに
気づけるかどうかが問題なんだがなw
2018/01/05(金) 15:04:08.28ID:dWX0Moq5
>>613
そう
でも処理速度的にボトルネックになることは無いだろうし
Mapを継承したクラスにincメソッドを実装すればいいと思う
2018/01/08(月) 13:36:18.81ID:TtlW0DEg
React代替のライブラリとしてhyperappがqiitaで話題ですけど、
1kbのライブラリがReact+reduxと代替になるってすごいですよね。
逆になんでReactって単なるUIライブラリなのにこんなにサイズがでかいんですかね?
Reactの優位点ってエコシステムとしてって以外に何があるんですかね?
2018/01/08(月) 15:48:15.94ID:fUd4CoSB
Reactはまんまエコシステムじゃん
ReactNativeだってあるしReactNativeWebだってあるくらいだし
2018/01/09(火) 11:23:44.59ID:3WGrgmwx
代替にならないからに決まってるじゃん
1KBのライブラリなら読めばいいのに
2018/01/09(火) 11:39:04.13ID:6pl2SrRj
>>620
機能だけを観るとreact+redux+非同期ミドルウェア
が1kbのライブラリに置き換わるというのが凄く魅力的なんですけど。

逆にReactにしかできないことが見当たらなくて、じゃあhyperappでいいじゃん
って思っちゃったんですよね。
もちろんiOSとかAndroidで使いたいとなったらReactNativeがある点で優位なんですけど、、、、、いまのところchrome-extensionで使う予定なんで、reactから移行してもいいのかもと思い始めた次第です。
2018/01/10(水) 11:01:01.36ID:AcbVN6ZK
hyperappでいいじゃんと言うけど
それWebAPIも発展してきたしフレームワークもライブラリもそろそろ要らないよねってことだぞ
ただ非同期周りとかちょっとまだ手が届かない所があるよねって感じ
chrome-extensionとか小規模なものだとそれこそ何にも要らないと思うぞ
2018/01/11(木) 03:04:00.15ID:A2H3qaeb
Node.jsで
const exec = require('child_process').exec;
みたいに
モジュール自体じゃなくてモジュールのメンバを変数に代入する書き方がありますが
こういう書き方のメリットは関数名などが短くなることの他にありますか?
どっちみちモジュールを全部読んでから一部をエクスポートしてるだけなので
メモリの節約にはならないですよね
2018/01/11(木) 06:06:01.73ID:aMgNRUKX
メモリの節約にはなるよ
参照のないオブジェクトはGCされるから
2018/01/11(木) 10:35:44.35ID:A2H3qaeb
なるほど…
じゃあ使うものだけを読む方が望ましいですね
ありがとうございました
2018/01/12(金) 00:07:56.61ID:H+rlZVu0
var str = "1\r\n2\r\n3\r\n\r\n4";
var arr = str.split(/\r\n/);

ブラウザでこのarr.lengthを取得すると当然5になります
ですが、WSHのJScriptでarr.lengthを取得すると4になります
何故か空行が削除されてしまうのです
これをマトモに動かすにはどうすればいいのでしょうか?
Windowsは10ですか、多分Windowsのバージョンは関係ないですよね
2018/01/12(金) 00:33:35.90ID:H+rlZVu0
>>626の件ですが
正規表現で文字列を split すると、できた配列から空の要素が消える
http://aligach.net/diary/20060707.html
>文字列で split すると JScript でも空要素は消えない。

というのがありました
これはひどいバグですね・・
628デフォルトの名無しさん
垢版 |
2018/01/12(金) 05:29:30.16ID:HxZ583lI
f(){ g(){h()}}
でhだけが非同期関数の時hが呼び出されるのはfかgのどっちの後ですか?
現在実行中の関数のあとしか書いて無くて、fもgも実行しているのでどちらか
わかりませんでした。
2018/01/12(金) 08:41:18.56ID:bX2X9CX8
その書き方じゃ何を表しているのか正確に分からんし
順番が知りたければ関数にalertでもconsole.logでも置けばいいだけじゃないか
2018/01/12(金) 09:12:36.76ID:0Nl59GCZ
「js 非同期 promise」で検索!
2018/01/12(金) 09:32:36.57ID:H+rlZVu0
非同期関数をその中に書いたら同期関数にできる関数があれば
何も考えずに同期化出来ていいのではないでしょうか?
そういうのはありますか?
2018/01/12(金) 13:15:59.75ID:7wn4t2Jc
同期「的」に書ける方法はあるよ
でも理由があって非同期になってるわけだから、
それが他の部分と必ずしも結合できるとは考えない方がいいし
あんまりこねくり回すとタイミングバグが起きたりもする
その辺きちんと整理できる能力が必要
取り敢えずPromiseとメソッドチェーンを理解してからasync-await
2018/01/12(金) 20:07:58.33
electronでVisualStudioみたいなドッキングやフロートとかができるパネルレイアウトを実現するものはありますか?
2018/01/12(金) 20:12:02.87
質問変えます
VSCodeと同じレイアウト(右のパネル、タブ)を実現するものはありますか?
2018/01/13(土) 00:02:40.02ID:/br76GKn
同期的で思い出したけど、JavaScript・・・じゃないな
ブラウザのDOMの仕様からalert, confirm, promptって廃止されないの?
だってこれら同期的に動くクソだもの
2018/01/13(土) 00:20:03.56ID:UQ6+XXz2
NW.jsはビルドしたファイルを実行すると
ソースディレクトリがテンポラリディレクトリに展開されてそこで実行され
元のexeファイルのあるカレントディレクトリを取得できないという問題があります
ポータビリティを担保するためにカレントディレクトリにデータを保存したいので、
これは望ましくありません
Electronではこういうことはないのでしょうか?
2018/01/13(土) 04:50:51.10ID:xaNBQnI8
>>635
同期で動くのが必ずしも悪いこととは限らない
昔みたいにブラウザごと操作ブロックするものではなくなったし
2018/01/13(土) 05:57:23.59ID:Hqj5QnSW
>>634
VSCodeはelectronで作られている。
VSCodeを作った人たちは、electronでVSCodeのレイアウトを実現したわけだ。
2018/01/13(土) 07:41:37.13ID:9rLeDqe4
>>631-632
generator runner

co, Koa を使う

以下を参照
>>582-591
2018/01/13(土) 07:53:38.29ID:9rLeDqe4
>>636
Electron アプリは、Node.js によって実行される

その際、package.json という設定ファイルに、
"main": "main.js"
とか書くと、そのファイルから起動される

この本を読む

Electronではじめるアプリ開発
~JavaScript/HTML/CSSでデスクトップアプリを作ろう
野口 将人・倉見 洋輔、2017
2018/01/13(土) 08:44:03.82ID:aBZLjG9C
>>639
>以下を参照
>>>582-591

的外れだって突っ込まれてるじゃん。自虐か?
2018/01/13(土) 12:13:53.04ID:v/Is/Qmn
的外れと言う割に的外れでない回答がない件
それもそのはず的外れでないであろう回答をエスパーして
基本的で曖昧な疑問に答えるのは大変すぎるから

だから皆取り敢えずコンテキストが近くて
具体的で為になりそうな点に絞って回答してるというのに
それを的外れというのはそれこそ的外れ
643デフォルトの名無しさん
垢版 |
2018/01/13(土) 13:33:46.15ID:UQ6+XXz2
>>640
ありがとうございます
ただそのくらいは知ってます・・
NW.jsもnode.jsとwebkitから作られていて
両者が非常に良く似ていることからした質問です
ビルドされたバイナリの挙動は実際に使ってみないと分からないので
2018/01/13(土) 13:39:59.76ID:aBZLjG9C
>583 名前:デフォルトの名無しさん[sage] 投稿日:2017/12/31(日) 19:02:39.26 ID:B2mtcXzM
>ないです

「的外れでない回答」はこれだろ?
2018/01/13(土) 15:26:08.02ID:xaNBQnI8
こりゃ一本取られた
確かに矢を放たなければ外れようも無いわな
うまい!
2018/01/13(土) 15:42:03.82ID:lfCPm8HF
クッサ
2018/01/14(日) 00:54:38.03ID:O8f654ld
質問です!
初めてjavascriptでWEBアプリを作ってるんですが、時間によって変化するデータを記録してブラウザに表示させるために
グローバル変数を使用しているのですが、そのデータが50種類近くあり、全てグローバル変数に保持させています。
ネットで調べると、グローバル汚染なる言葉があり、グローバル変数は極力使用するべきでないとありました。
でも、50種類近くのデータを保持し、各関数の中で計算させたりブラウザに数値を表示させるにはグローバル変数でしか無理なんじゃ無いかと思います。
初心者な質問ですがよろしくおねがいします!
2018/01/14(日) 01:11:56.05ID:ShEBZxSB
まあ別に幾らでもやりようはあるが、
その分だとまずコードを今の1/5から1/10ぐらいに減らすべきだろうな
無駄なコードが多すぎるだろう
2018/01/14(日) 03:20:01.37ID:V1AuijCV
electronでデベロッパーツールにログを出力するのはどうすればいいのでしょうか?
console.logするとシェルのコンソールにログが出力されますが
これだとソース版の実行時にしかログが見られません
2018/01/14(日) 07:16:23.50
ソース版?
651デフォルトの名無しさん
垢版 |
2018/01/14(日) 09:01:40.77ID:V1AuijCV
何と言うのか知りませんがバイナリにビルドする前の状態です
2018/01/14(日) 09:37:43.17ID:Ljf3EvZ6
>>649
サンプル通り作ってあるなら
mainWindow.loadURL(`file://${__dirname}/index.html`);
というような感じでindex.htmlをロードして表示していると思うけど
このindex.html内でconsole.logすればデベロッパー内でログを見れる
2018/01/14(日) 11:41:12.08ID:V1AuijCV
>>652
そうなのですか
ありがとうございます
Electronは触った感じNW.jsよりも技術者寄りでイケてる感じがしますが
その分複雑なところがありますね
2018/01/14(日) 12:42:53.06ID:V1AuijCV
>>636の件ですが
Electronの場合はビルドしたバイナリでも、
実行時のカレントディレクトリが正しく取得できました
まぁ当たり前の動作ではありますが・・。
NW.jsの方が古いプロダクトのようですが、
Electronに架橋するのがその歴史的意義で、既に使命を終えたんじゃないかと思います
Electronを触ったらもうNW.jsに戻ろうとは思えません
655デフォルトの名無しさん
垢版 |
2018/01/15(月) 16:39:11.95ID:oyJFiKwa
エディタのVS Code, Atom が、Electron 製だろ

これらのエディタを使ってみれば、Electron で、何でも出来ることが良くわかる
2018/01/15(月) 23:04:54.06ID:A1ZxBlI8
まあバイナリファイルの読み書きさえできれば
なんでもできるのは当たり前なんだけどなw
2018/01/17(水) 13:55:03.66ID:ZK8OrRcg
titleを書き換えるブックマークレットを作っています
chrome開発者ツールのconsoleで
document.title = 'test';
とすると、何の問題もなく書き換わります
が、これを
javascript:document.title = 'test';
としてブックマークに登録してブックマークレットとして実行すると、
titleだけでなくdocumentの内容自体がtestという文字列に置き換わってしまいます
何が間違っているのでしょうか?
2018/01/17(水) 14:30:25.51ID:om4BnoKr
最後にreturn;を加えるといいかも
659愛知人
垢版 |
2018/01/17(水) 14:32:13.86
resList.forEach(resNumber => {
$(`.resListPanel li.resItem[data-number="${resNumber}"]`).clone().appendTo(resListTree);
});

resListの要素数が70個だと2秒もかかるんだがどうする?
660愛知人
垢版 |
2018/01/17(水) 14:41:23.85
const resItemList = resList.map(resNumber => {
return $(`.resListPanel li.resItem[data-number="${resNumber}"]`).clone();
});

これでもほぼ同じ
661愛知人
垢版 |
2018/01/17(水) 14:44:03.32
resList.map(resNumber => {
return $(`.resListPanel li.resItem[data-number="${resNumber}"]`);
});

これでもほぼ同じ
2018/01/17(水) 14:54:28.73ID:ZK8OrRcg
>>658
undefinedを返さないとその値でページを置き換えるようになっているのですね
ありがとうございました
2018/01/17(水) 15:09:47.60ID:ZK8OrRcg
ブックマークレットはaタグのhrefにjavascript:と書いた時と
同じ動作をするもののようです
ここに書いたコードは返り値の返却が求められていることから、
ある種の関数として実行されていると推測します
ですがブックマークレットの解説が書かれたサイトには、
名前空間を汚染しないように即時関数で全体を囲む方がいいと書いてあります
しかしブックマークレットがすでに関数になっているのですから
即時関数にしなくても汚染は防げるのではないかと思ったのですが
どうなのでしょうか?
2018/01/17(水) 15:28:35.60ID:57JGUXKI
逆に聞くけどなんですでに関数になってると思い込んだの?
2018/01/17(水) 16:14:37.66ID:ZK8OrRcg
>>664
returnを書いたら動作するからです
じゃあ違うんですか?
それならなぜreturnと書けるのでしょうか?
2018/01/17(水) 16:42:16.33ID:ZK8OrRcg
<a href="javascript:var a = 1;return;">test</a>
と書いてみたら
SyntaxError: Illegal return statement
と出ました
ブックマークレットはaタグとは似て非なるもののようですね
2018/01/17(水) 16:50:55.42ID:ZK8OrRcg
javascript:var a=1;return;
というブックマークレットと
javascript:alert(a);
というブックマークレットを作り、
最初のブックマークレットを実行してから次のブックマークレットを実行すると
aはundefinedだと言われました
やはりブックマークレットは関数として実行されているようです
aタグの場合は、あるタグで宣言代入した変数を
他のタグのコードから参照できました
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況