X



+ JavaScript の質問用スレッド vol.134 +
■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
2018/06/04(月) 16:22:58.13ID:aMAv4I5k
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください

■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。

■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
0098Name_Not_Found
垢版 |
2018/06/12(火) 00:18:43.22ID:???
あ、ちなみに、ページ内の「ドラッグできます」というのを上の四角の領域にドロップすると要素が移動するというコードです。


それから34行のcurrentTargetとtargetと違いもわからないです。
targetに書き換えるとドラッグしても何も起こらなくなるのはなぜだろう
0099Name_Not_Found
垢版 |
2018/06/12(火) 01:33:58.85ID:???
んなURL持ってくんなよ
しかも度々書籍ステマ・書籍アフィが出てるスレで「コンピュータ、パソコン書籍の出版社」が
アクセス統計でも得たいのか
0100Name_Not_Found
垢版 |
2018/06/12(火) 06:26:12.22ID:???
本買うと特典でサンプルDLできるとかのあれか

本買ってないやつがDLするわけにはいかないし
本買ったやつならURLなんて出さなくてもわかるだろうし
何より本書いたやつか出版社に聞け
0102Name_Not_Found
垢版 |
2018/06/12(火) 12:54:37.96ID:???
>>92
データのID作るときとか便利
ループだとそのループ中でしかできないが
ループ以外でも簡単に連番等つけれる

同じ理屈で数列つくるときに便利。
遅延評価で無限数列つくるときとか。
ま、あんま使わんと思うが。
0103Name_Not_Found
垢版 |
2018/06/12(火) 12:55:33.83ID:???
調べるべき用語が分かってるんだからググった方が絶対いい結果を得られるよ
0104Name_Not_Found
垢版 |
2018/06/12(火) 12:58:21.53ID:???
>>97
$('a').click(function(e){ e.preventDefault(); });

例えばこれなら、a タグによるページ遷移という、デフォルトの動作が取り消される

jQuery のイベントバブリング、preventDefault()・stopPropagation() を参照
0110Name_Not_Found
垢版 |
2018/06/15(金) 15:06:38.85ID:???
パターンマッチ関数って何のためにやるのですか?
回りくどいな、という印象しかなかったのですが
0111Name_Not_Found
垢版 |
2018/06/15(金) 16:35:12.09ID:???
パターンマッチ関数??
それだけ言われても…
0113Name_Not_Found
垢版 |
2018/06/15(金) 17:41:20.29ID:???
処理のメイン部分の記述が簡素になる。
0114Name_Not_Found
垢版 |
2018/06/17(日) 09:54:02.75ID:???
JavaScriptで配列をすごい勢いでループしてる時に
緊急停止ボタンが押されたらブレーキをかけることはできますか
0116Name_Not_Found
垢版 |
2018/06/17(日) 10:24:28.66ID:???
>>115
質問者じゃないけど興味があるので理由を詳しく聞かせてもらいたい
0119Name_Not_Found
垢版 |
2018/06/17(日) 12:35:22.12ID:???
setTimeoutやsetIntervalで再帰させてれば緊急停止できるのでは

概念的にはもはやループじゃなくてタスク管理だけど
0120Name_Not_Found
垢版 |
2018/06/17(日) 14:34:27.38ID:???
> setTimeoutやsetIntervalで再帰させてれば
再起である必要はないね
0121Name_Not_Found
垢版 |
2018/06/17(日) 14:57:27.97ID:???
緊急停止ボタンのクリックイベントでkinkyubrake = trueしておく。
ループではkinkyubrakeがtrueのときはbreakするようにしとけばいい。
0122Name_Not_Found
垢版 |
2018/06/17(日) 16:18:01.04ID:???
再開どうすんの
あ、再開はないのか
0123Name_Not_Found
垢版 |
2018/06/17(日) 17:49:51.65ID:9b6f4Zt8
緊急停止っていみわからんけど
再帰で無限数列とかつくるとオーバーフローでエラーでるが
それを回避するためにsetIntervalに入れるんだが。
そういうことじゃねぇのか?
0124Name_Not_Found
垢版 |
2018/06/17(日) 17:58:49.16ID:???
そりゃ別の問題だろ
jsエンジンの保護機能があって、理解した上でそれを回避する手法を使う
そこにユーザの停止意思は関係ない
0126Name_Not_Found
垢版 |
2018/06/17(日) 20:12:00.03ID:???
皆様ご回答有り難うございます
長い時間がかかる計算をさせているのですが
私のラスクトップはこの時期長時間動かすと熱で落ちてしまいます
その兆候が現れた時に、物理的なUSBボタンが押されたら
全タブの処理を抑えたいと思っています
完全に止まらなくとも構いません
再開はしたいです
0127Name_Not_Found
垢版 |
2018/06/17(日) 20:13:14.81ID:???
なんかラスク食べたくなってきた。買ってこよう。
0128Name_Not_Found
垢版 |
2018/06/17(日) 20:15:51.10ID:???
つまりオーバーフローによる問題を回避するためではなく
エアフローによる問題を回避したいわけですな

ドヤァ
0129Name_Not_Found
垢版 |
2018/06/17(日) 20:18:15.35ID:???
ラスクトップってなんだデスクトップなのかラップトップなのかどっちだ

PCごとスリープさせたらダメなのかね
0130Name_Not_Found
垢版 |
2018/06/17(日) 20:32:27.93ID:???
とりあえずJSの仕事では無さそう
プロセスごとのCPU使用率制御かなんかを調べた方が多分近道
0131Name_Not_Found
垢版 |
2018/06/17(日) 23:23:03.78ID:???
>>116
厳密には同期的繰り返し処理では割り込み処理出来ない
0132Name_Not_Found
垢版 |
2018/06/19(火) 09:33:33.46ID:adLbUfl+
オライリーのサイ本はもう新しいのは出ないんでしょーか?
7版待ってるんですが
0133Name_Not_Found
垢版 |
2018/06/19(火) 12:29:07.22ID:???
一回読んだら次は仕様書見て理解すればいい
0134Name_Not_Found
垢版 |
2018/06/19(火) 23:04:41.37ID:???
今までOOPでやっていた部分をFPで書いていてふと思ったのですが
FPって名前空間汚しまくりじゃないですか?
例えばOOPだと
hoge={sum:()=>{}}
みたいにhogeだけですみますがFPだと
hoge=()=>()=>{};
sum=()=>{};
みたいに延々増えていくような?気がします
そういうものなんでしょうか?
0135Name_Not_Found
垢版 |
2018/06/19(火) 23:50:01.24ID:???
サイの絵の表紙のサイ本
JavaScript 第6版、2012、David Flanagan

初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017

Flanagan は、Java, Ruby など色々な言語の本を書いてる。
最近は、何をやってるのかね?
0136Name_Not_Found
垢版 |
2018/06/20(水) 06:16:56.26ID:???
>>133
>>135
まだ持っていなくこれから学習始めるのに本が欲しかったんですが、第6版は古いから手が出しづらいです。
6版買うくらいならいっそのこと古本の5版でも構いませんか?
0137Name_Not_Found
垢版 |
2018/06/20(水) 06:49:06.68ID:???
良いか悪いかで言ったら俺は悪いと思う
要するにJSの実際はそんなには難しくもないんだけど、
適切な解説が少ないプロトタイプチェーンやスコープチェーンだったり
多くのJSerが曖昧にしてきたであろう基礎的な仕組みに近いところを
まんべんなくそれなりに分かりやすい解説が載ってたっていうのが価値だった

だけどその他の部分のテクニックとかも肌感覚が古くなってきてるし、
今なら当然合わせて知っておきたいクラス構文やモジュールなんかも学べないしな
まあ物好きでお金と時間に余裕があるなら、
一旦ES5までの知識を付けて個別にアップデートしていってもいいとは思うが
0138Name_Not_Found
垢版 |
2018/06/20(水) 07:35:11.72ID:???
>>137
ありがとうございます
第6版も古いからオライリーに拘らず他所の新しい本の方がよいでしょうか?
0139Name_Not_Found
垢版 |
2018/06/20(水) 12:15:51.98ID:???
Javascriptで、生成されたオブジェクトを終了するために、
VBSで言うところのNothingを使いたいのだけれど、
どうも使わない感じみたいで、困ってます。

Javascriptでは、もしかしてnullとか使うでしょうか?
ヒントでもいいので教えてください。
0140Name_Not_Found
垢版 |
2018/06/20(水) 12:20:28.72ID:???
変数にnull代入
参照してる変数が無くなればgcがいつか解放する
0142Name_Not_Found
垢版 |
2018/06/20(水) 12:33:17.45ID:???
>>138 わからん
サイ本のように一昔前は中級者や中級者になりたい人向けという幅広い括りで取り敢えず読んどけという本もいくつかあったが、
今の時代は難しい
0143Name_Not_Found
垢版 |
2018/06/20(水) 13:13:57.05ID:???
大昔におけるオライリー本ですら有効性はクエスチョンマークだった

今や書籍の価値なんてGCに回収されてる
0144Name_Not_Found
垢版 |
2018/06/20(水) 13:27:31.60ID:???
> 今や書籍の価値なんてGCに回収されてる

どういう意味?
0145Name_Not_Found
垢版 |
2018/06/20(水) 17:15:47.10ID:???
>>142
どうもありがとうございます
参考になりました
0146Name_Not_Found
垢版 |
2018/06/21(木) 16:52:49.08ID:???
Javapcriptのスリープ実装って永遠の課題なんか?
代替手段はどれも使いづらいし、
何でこんなことになっとんのや?
0147Name_Not_Found
垢版 |
2018/06/21(木) 20:35:03.15ID:???
俺のスニペット帳より。元ネタは確かtry-puppeteerサイトのコード
なぜか5ちゃんのセキュリティゲートウェイに引っ掛かったので全角で貼る。
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));

await sleep(5000);
0148Name_Not_Found
垢版 |
2018/06/21(木) 21:09:31.87ID:???
>>146
Atomics APIでできるよ
Atomics.wait()とすればそのまんまスリープする
ただメインスレッドでは禁止されてる場合が多い
メインで待機しちゃうとUIが止まっちゃうからね
でもWorkerなんかではSharedArrayBufferと組み合わせて効果的に使えるよ
ただ今は例のCPUサイドチャネル攻撃脆弱性問題のおかげで
情報が抜けてしまうのでデフォルト無効にされてるが
0149Name_Not_Found
垢版 |
2018/06/21(木) 23:38:00.72ID:???
でもAtomics APIってJavaScriptじゃなくて
ブラウザのAPIですよね?
NodeJSでは使えませんよね?
0150Name_Not_Found
垢版 |
2018/06/22(金) 12:49:32.69ID:???
>>149
違う。列記としたECMAScriptの仕様だからV8にも載ってるしNodeでも使える
ただマルチスレッド動作が上手く行くかはわからんが
0152Name_Not_Found
垢版 |
2018/06/22(金) 13:10:01.25ID:???
chrome、firefox、edge、safari などメジャーブラウザ全てでメインスレッドでは使えない。ワーカー内でしか使えない。
実質役立たず。
0153Name_Not_Found
垢版 |
2018/06/22(金) 14:09:38.16ID:???
つまり俺みたいな奴ってことだな
0154Name_Not_Found
垢版 |
2018/06/22(金) 19:53:35.82ID:???
そもそもメインで待機なんてされたら迷惑も良いとこ
0155Name_Not_Found
垢版 |
2018/06/22(金) 19:59:45.83ID:???
そういうruby信者みたいな情けない言い方はやめろ
やるやらないとできるできないは違う
できるけど理由があってやらない、が一番かっこいい
0156Name_Not_Found
垢版 |
2018/06/22(金) 20:38:55.29ID:???
要素Aがあって
<div id="A"></div>
この要素Aに要素Bを動的に入れ子したとき
<div id="A"><div id="B"></div></div>
要素Aが膨らんだので
要素Aの大きさを取得したいのですがどうやってやりますか?
(そもそもAが膨らまないように、、みたいな話ではなく単純に、
予想外に膨らんでしまった要素のサイズを取得してみたい、という用途です)
0157Name_Not_Found
垢版 |
2018/06/22(金) 20:59:14.80ID:???
scriptをbodyの末尾に置けばreadyハンドラを待つ必要ないと思いますが
このやり方に何か問題ありますか?
0159Name_Not_Found
垢版 |
2018/06/22(金) 22:21:10.44ID:???
>>155
簡単にできるけど、理由があって禁止されたんだよ
最初期はそういう縛りなく実装されてた
理由があるなら最初からできないほうが良い
過剰に自由なことはデメリットのほうが大きい
0160Name_Not_Found
垢版 |
2018/06/22(金) 22:27:28.54ID:???
>>157
要素にJSを適応したい場合はカスタムエレメントを使うこと
そうすれば要素が出現する前に定義できるし、
出現した瞬間に効果が適応される
コンポーネント化もしやすい
0161Name_Not_Found
垢版 |
2018/06/22(金) 22:31:28.54ID:???
まず適用と適応の区別をつけろ
0162Name_Not_Found
垢版 |
2018/06/23(土) 18:58:40.28ID:???
こういう人ってネット以外でも周りの人の会話に対して一々ケチをつけるのだろうか?
0163Name_Not_Found
垢版 |
2018/06/23(土) 19:08:18.04ID:+g3NNQ6c
低脳くやしいのうwwwww
0164Name_Not_Found
垢版 |
2018/06/23(土) 20:57:32.52ID:???
低能を悔しがらせようと思ってJS質問スレでそんなレスをしたのか
0165Name_Not_Found
垢版 |
2018/06/23(土) 20:59:11.34ID:???
えマジで悔しかったのか
0166Name_Not_Found
垢版 |
2018/06/23(土) 21:21:45.34ID:???
うん。マジで悔しかった
0167Name_Not_Found
垢版 |
2018/06/23(土) 21:36:08.78ID:???
適応はadapt
適用はapplyとかadoptやな
0168Name_Not_Found
垢版 |
2018/06/23(土) 21:51:33.46ID:???
効果が「適用」される
だとしてもおかしいがな
効果が反映される
とかだろ
0170Name_Not_Found
垢版 |
2018/06/23(土) 23:43:14.39ID:???
いや違うだろ
言葉の組み立てとしては正しくともニュアンス的にな
「誰々が何々を適用する」は自然だが「誰々が何々を反映する」はより不自然
つまりは「反映」よりも「適用」と言ったほうが誰がそれをするのかイメージされやすいんだよ

そして今回のように「(自然と、勝手に)〜される」と言いたいのなら
「誰によってか」を意識させにくい「反映される」のほうが適切
0171Name_Not_Found
垢版 |
2018/06/24(日) 00:05:37.04ID:???
>>158
ありがとうございます

>>160
カスタムエレメントというのは聞き慣れない言葉ですが
それは素のJavaScriptで出来るのでしょうか?
なんかフレームワークっぽい響きがありますが
0172Name_Not_Found
垢版 |
2018/06/24(日) 00:11:00.59ID:???
日本語的には「効果が」に続く言葉としては「反映」「適用」どちらもおかしいんじゃないか

効果とは通常は一定の結果をあらわす言葉
何かに対して、規則・ルール・設定などを反映・適用した結果、あらわれるのが効果
一定イベントに特定の処理を当てはめる際も同様

逆に、設定画面で設定を変更したときに押すボタンが「適用」なのは正しい
0173Name_Not_Found
垢版 |
2018/06/24(日) 04:24:09.05ID:???
いや、「適用」が使える場面は限られるよ
プロフィール画面で、公開ルールを設定する場合には使えるけれど
ニックネームなどを設定する場合には使えない
「適用」っていうのは値をそのまま当てはめるような場合ではなく
応用して使う場合にのみ使える言葉

例えば同じようなケースでも、マイプロフィール画面で
「プロフィールに『A』スタイルを適用する」とは言えるけれど
「プロフィールのスタイルを『A』で適応する」とは言えない
Aというスタイルは適用できても、スタイルの名前を指定する際は「適用」は使えない
0174Name_Not_Found
垢版 |
2018/06/24(日) 05:04:49.53ID:???
>>173
ようするに「を」はOKだけど
「で」は適切じゃないって話?

○ プロフィールに『A』スタイルを適用する
× プロフィールに『A』スタイルで適用する

○ プロフィールのスタイルに『A』を適応する
× プロフィールのスタイルに『A』で適応する
0175Name_Not_Found
垢版 |
2018/06/24(日) 05:54:28.06ID:???
>>174
厳密には違う
キャラクターメイキングで
「彼女」に「我慢強い性格」を適用する
に比べて
「彼女の性格」に「我慢強い」を適用する
は明らかに不自然だろう

後者はよく捉えたとしても結局
「彼女の性格」に「我慢強いという性格」を適応すると言ってるのと同じだ
そして先にも言ったようにただ固定値を貼り付けるだけであればあるほど「適用」というのは不適切

例えば、ゲーム開始以降に
「彼女の性格」に「より我慢強い」を適用する
なら
「彼女の性格」に「より我慢強い」を設定する
よりは適切だ
0176Name_Not_Found
垢版 |
2018/06/24(日) 07:03:04.54ID:???
要するにAがBにただなるときはAにBを適用するというなということか
0177Name_Not_Found
垢版 |
2018/06/24(日) 08:09:40.94ID:???
>>175
> キャラクターメイキングで
> 「彼女」に「我慢強い性格」を適用する
> に比べて
> 「彼女の性格」に「我慢強い」を適用する
> は明らかに不自然だろう

いやべつに?

だって、性格の他に髪型とか身長があるだろ?
「彼女の髪型」に「ショートヘア」を適用するは自然だけど、
「彼女」に「ショートヘアの髪型」を適用するとか
「彼女」に「150cmの身長」を適用するとか冗長じゃん
0178Name_Not_Found
垢版 |
2018/06/24(日) 11:12:37.93ID:???
往生際が悪いぞ。いずれにせよ「適応」は間違いだ
0179Name_Not_Found
垢版 |
2018/06/24(日) 11:21:56.62ID:???
「適応」あってるじゃんか
言い返せないから、往生際が悪いとか
意味不明なこと言って逃げたんでしょ?
0181Name_Not_Found
垢版 |
2018/06/24(日) 11:43:03.57ID:???
>>173
>ニックネームなどを設定する場合には使えない
>「適用」っていうのは値をそのまま当てはめるような場合ではなく
>応用して使う場合にのみ使える言葉

・法令を適用する
・3秒ルールを適用する

応用じゃないんだが。辞書ひいてこい

「(入力した)ニックネーム(設定)を」「(今使っているソフトウェアに)適用する」
字面だけ見てもダメ
0183Name_Not_Found
垢版 |
2018/06/24(日) 12:12:38.85ID:???
いやなら法令を変えてみせろ
0189Name_Not_Found
垢版 |
2018/06/24(日) 22:22:03.01ID:???
Microsoftに喧嘩売ってるな
もっとやれ
0190Name_Not_Found
垢版 |
2018/06/24(日) 23:30:02.76ID:???
しれっと応用にすり替えてんじゃねーよ適応は間違いだろうがw
0192Name_Not_Found
垢版 |
2018/06/25(月) 00:51:38.93ID:???
「適用」が
>応用して使う場合にのみ使える言葉
かどうか、って話だろ?
0193Name_Not_Found
垢版 |
2018/06/25(月) 03:20:49.95ID:???
substringとsubstrのメソッド名ってちょっと適当すぎるのでは?
0194Name_Not_Found
垢版 |
2018/06/25(月) 04:59:47.75ID:???
初心者です。JavaScriptを簡単な電卓代わりに使おうと思うのですが
平方根などを知りたいときにMath.sqrt(5)などとやるのが面倒です。
この組み込みオブジェクトの宣言を取っ払って
sqrt(5)とやるだけでMath.sqrt(5)が実行されるようにするにはどうすればいいですかね。
というかそうでなくても例えばPythonのように
import math as m
とやれば
m.sqrt(5)
のようにタイプしやすくなりますがJavaScriptでもそのようなことがしたいです。
0195Name_Not_Found
垢版 |
2018/06/25(月) 06:05:07.09ID:???
原点に戻ったほうが良いぞ
まず英語版Windowsはどうなっているか?
https://i-msdn.sec.s-msft.com/dynimg/IC8950.gif
↑この機能がapplyだ

俺に認識では
・設定を反映させて閉じるのが OK
・設定を反映させないで閉じるのが Cancel
・設定を反映させて閉じないのが Apply だ

OK、Cancel、Appyにダイアログを閉じる or 閉じない
という意味がないことは同意するよな?
で、閉じる閉じないを省略しつつ、簡潔に書くと

・この設定内容でOK
・この設定内容をCancel
・この設定内容でApply

あとは日本語の問題だ

この設定内容[で/を]応用・・・言わない
この設定内容[で/を]応用する・・・言わない
この設定内容で適用・・・ぎりぎり言う
この設定内容を適用・・・言う
この設定内容で適用する・・・言う
この設定内容を適用する・・・言う

これは翻訳の問題なので(意味はApplyが適切だと英語版Windowsで決定されてる)
応用という言葉は適切ではなく、適用がふさわしい

応用して使うとかいうのは意味不明。だって「テコの原理の応用」。とか
そういう使い方をする用語なんだから。設定内容を応用するとか言わないでしょ?
0196194
垢版 |
2018/06/25(月) 06:11:51.73ID:???
194ですが自己解決しました。すいません。
とりあえず
推奨案
 m=Math
 console.log(m.sqrt(5))
最適案
 with (Math) {
  console.log(sqrt(5))
 }
だったので後者を採用しました。
0197Name_Not_Found
垢版 |
2018/06/25(月) 06:15:55.40ID:???
>>173がそもそも的はずれなのは、

「適用」がニックネームに対して行う操作ではなく
ダイアログに対して行う操作であることに気づいてないからだな

プロフィールという設定があるとして
「Aスタイル」というのは「プロフィール」の選択値
「適用」というのは「プロフィールの設定ダイアログ」に対する操作

「プロフィールにAスタイル」を「適用」するんじゃなくて、
「プロフィールとしてAスタイルを選択した設定内容」で「適用」するが正しい

そこがごっちゃになるから的はずれなことを言うわけさ

この設定内容で設定した値を使うわけだから「適用」
応用っていってしまうと、
(この設定内容は使わずに)この設定内容を応用して何かを作ってそれを使う
というニュアンスになってしまう


設定内容に対しての「適用」はどんな場面でも使えるよ。
そもそもOKしてダイアログを閉じないってだけなんだから
OKの代わりとし使える
■ このスレッドは過去ログ倉庫に格納されています

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