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にして見えないようにしてください。文句をつける=荒らしです
0062Name_Not_Found
垢版 |
2018/06/09(土) 19:40:55.00ID:???
>>59
いや、JS2.0とかやってた名残で当初は早いようにも見えたけど
実際は独自実装の非互換性問題とかもあったし、ここ2年くらいはChromeの方が実装早いよ

>>61
難しく考えずとも、変数とはスコープオブジェクトのプロパティのようなものだ
そのスコープにぶら下がる変数はスコープに入る時に全て作られる
そういうことをしなければ。スコープ外でlet aと定義していてスコープ内で同じくlet aと定義している場合、
スコープ内のlet aに達するまでにaを参照した場合スコープ外のaを参照する挙動になってしまう

あるいはそういう挙動でも良かったのかもしれないが、JSではその挙動を是としていないため、
スコープ内で作られる変数はそのスコープに入った段階で作られることになる
仕様での用語としては「CreateBinding」で、スコープ(Environment Record)に対して値を紐付けるための名前を作る作業がある
そしてその変数宣言文に実行が達したら「InitializeBinding」で、値が初期化される
それまでに変数を利用しようとした場合は例外となる

要するに変数の状態としては「created」かどうかと、「initialized」かどうかの2つを考えればいいだけ
関数宣言に関してはブロックが評価される時に、通常の宣言であればcreateされるだけのところを追加でinitializeされるというだけ
0063Name_Not_Found
垢版 |
2018/06/09(土) 20:42:00.96ID:???
>>60の件ですが
clipboardDataの実体はドラッグ&ドロップで使われているDataTransferオブジェクトのようです
JavaScriptリファレンス第六版には、
DataTransferオブジェクトのsetDataメソッドの説明として

ドラッグアンドドロップ操作の最初の dragstart イベントに応答して
ドラッグ元がこのメソッドを呼び出します。
このメソッドはその他のイベントハンドラからは呼び出せません。

とあり、DataTransferオブジェクトというのは自由に読み書きできるようなものでもないようです
ペースト前にデータをJavaScriptでフィルタするのは機構的に不可能なのでしょうか?
006461
垢版 |
2018/06/09(土) 21:56:44.42ID:rjw/LaIP
>>62
変数の挙動は理解しているし、詳細な説明が欲しかったわけではない
「仕様上の文言がどうなっているか」が気になっただけ
0065Name_Not_Found
垢版 |
2018/06/09(土) 23:59:05.12ID:???
Reactを勉強しているものですが、Reactのスレが見つかりませんでした。日本ではマイナーなのでしょうか?
0066Name_Not_Found
垢版 |
2018/06/10(日) 00:54:36.18ID:???
>>64
だからそれも書いてるじゃん
変数周りの仕様としては「created」と「initialized」しか無いって
関数宣言は「Hoistable」に含まれるわけだけど、それは「created」されて「initialized」されるということでしかない
「実体化」などという表現や概念は存在しない
006761
垢版 |
2018/06/10(日) 01:57:27.73ID:AOyPV8Fv
>>66
> 変数周りの仕様としては「created」と「initialized」しか無いって
あなたの解釈はどうでもいいのだよ
知りたいのは一次情報源だけ

> 「実体化」などという表現や概念は存在しない
そんなことはない
http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/10_Execution_Contexts.html#section-10.1.3
0068Name_Not_Found
垢版 |
2018/06/10(日) 02:57:42.92ID:???
React Angular Polymer Vueなんかのフレームワークと
jQueryって同じフレームワークでもなんか別物のような気がするんですが
これらは出来ることは同じなのでしょうか?
0069Name_Not_Found
垢版 |
2018/06/10(日) 11:32:11.73ID:???
>>67
一時情報源だけ知りたいのなら自分で仕様を読めばいいじゃない
https://tc39.github.io/ecma262/
俺もあんたのためにきちんと仕様を読みながら噛み砕いて説明したんだからさ
それをそんな言い方されちゃもうどうしようもないね
0070Name_Not_Found
垢版 |
2018/06/10(日) 11:39:33.94ID:???
>>67
と言うかそこでいう実体化っていうのは、「コンテキストの実体化」だからね
静的なコードという型からその時に使う生きた状態を生成する
つまりインスタンス化するというニュアンスだから
「実行コンテキスト」の項にあるでしょ?
その「変数の実体化」っていうのは今話してる変数の状態や「有効化」の話とは軸がずれている
静的な定義らから生きた変数インスタンスを作るというニュアンスの話
そしてやっぱりちょっと妙な表現でもあるから今の仕様では使われてないよ
0071Name_Not_Found
垢版 |
2018/06/10(日) 12:19:29.70ID:???
>>68
jQueryはライブラリであってフレームワークではありませんよ
それを使っているプログラマが、それを呼び出すコードを書くのがライブラリ
呼び出されるコードを書くのがフレームワークだと誰かが言っていました
0072Name_Not_Found
垢版 |
2018/06/10(日) 14:34:15.01ID:???
>>69
> 俺もあんたのためにきちんと仕様を読みながら噛み砕いて説明したんだからさ
尋ねてもいない事をあなたが勝手に誤解してお節介しただけだろう
「ES2017ではこの文言はどう変わってるんだったか」とちょっとした疑問を口にしただけで、なぜそこまで絡んでくるのか
しかも、なぜか「あなたの言葉」で返ってくる始末
007361
垢版 |
2018/06/10(日) 14:57:34.96ID:Q6IKpI1g
>>72も自分なので、念のため

>>70
> その「変数の実体化」っていうのは今話してる変数の状態や「有効化」の話とは軸がずれている

俺からすれば、俺が書いた「独り言(>>61)」にあなたが勝手に絡んできただけなんだがな
で、俺の趣旨は「宣言が巻き上げされるのではなく、宣言した結果、実体化される変数初期化処理が巻き上がる」
変数宣言も関数宣言も巻き上げなんて発生していない
関数スコープにある変数は、実行コンテキストに入る段階で「変数が実体化」されるだけだ

「変数の実体化」がES3の用語である事は61で書いた通り
で、俺は「ES2017ではこの文言はどう変わってるんだったか」と書いた
詳しくは読んでいないが、おそらく関係するにはこの辺りで、俺が欲しいのは「ES2017の文言」
http://www.ecma-international.org/ecma-262/8.0/#sec-executable-code-and-execution-contexts
あなたはなぜか「あなたの言葉」で説明してきた
そして、一時情報源を求めたら、なぜか ES2019 https://tc39.github.io/ecma262/ を持ち出してきた

仕様書は必要になれば読むが、今の時点でそこまで切羽詰まって読む必要性はない
ただの独り言で誰かに答えてもらう事を期待していたわけでもない
答えてくれるのは有り難いが、俺への返信は全てピントがずれているんだよ
0074Name_Not_Found
垢版 |
2018/06/10(日) 15:28:19.00ID:SGg1sNhW
まだやっとるのか巻き上げの話w
そんな話時間の無駄のような気がするわ
物理の真理でもあるまいし
時間の無駄

プログラミングなんて使えりゃ良いんだよ
JSの仕様策定にかんよしてるのでないなら
もっと別のこと勉強しろ
0075Name_Not_Found
垢版 |
2018/06/10(日) 15:53:33.14ID:???
仕様を読まなければ、無駄にクロスブラウザする事もあるから時間の無駄ではないけど、否定から前向きな結論は出ないだろうね
独り言に絡まれたのは同情するわ
0076Name_Not_Found
垢版 |
2018/06/10(日) 16:05:06.46ID:???
というか、絡まれて火の粉を払っている方はともかく、絡んでいる方が望む終着点が読めん
0077Name_Not_Found
垢版 |
2018/06/10(日) 16:06:05.78ID:???
用語は根拠をもって統一すべきとは確かに思う

そしてもし詳しいなら実務に影響あるところを書いてくれるとうれしいんだが
宣言と初期化の違いが、実際のコーディングにどう影響するのか

アローを含む変数格納の関数と巻き上げの話にしても
その変数を介さずに中身を直接呼ぶ方法がないんだし
「巻き上げなんて無かった」と考えてコード書いていけばそれで良い話にも思える
0078Name_Not_Found
垢版 |
2018/06/10(日) 16:13:57.91ID:???
>>76
絡んでいる方は「一つの論題」に皆が参画している感覚なんじゃない?
>>70の下記一文は「一人一人にスレッドがある」と考えていない節があって、そこで61と齟齬が発生している印象

> その「変数の実体化」っていうのは今話してる変数の状態や「有効化」の話とは軸がずれている
0079Name_Not_Found
垢版 |
2018/06/10(日) 16:27:21.22ID:???
>>78
なるほど、確かにそういう人は少なからずいるな…
008061
垢版 |
2018/06/10(日) 16:51:48.21ID:Q6IKpI1g
>>77
> 「巻き上げなんて無かった」と考えてコード書いていけばそれで良い話にも思える

それで良いと思う
元々、ECMAScript には「巻き上げ」という概念はなく、誰かが hoisting と言い出したのが始まり
今では仕様上に hoisting も出てきてはいるけど、本質ではないと思う
実践的な部分では変数初期化のタイミングさえ覚えれば良い
基本的な部分だけまとめると、

- 「関数呼び出しされるタイミング」で関数宣言/変数宣言(var)の変数が初期化される
- let,const変数も同様に初期化されるが、TDZでは RefarenceError (TDZは仕様外の用語)
- グローバルコードでは先頭で関数宣言/変数宣言(var)の変数が初期化される

「関数式」「アロー関数」は単体で宣言する機構がないので、他のスコープから呼び出すなら変数宣言/引数などに絡めて使う
0081Name_Not_Found
垢版 |
2018/06/10(日) 17:07:16.04ID:???
>実践的な部分では変数初期化のタイミングさえ覚えれば良い

覚える必要あんのか?
変数は「初期化するコード」より前のタイミングで使うな、なんならブロック先頭で網羅的に初期化しろ、で済む話では?
0082Name_Not_Found
垢版 |
2018/06/10(日) 21:03:36.41ID:???
>>73
俺からすれば最初>>62は君に対する返答でもたしかにあったけど、
君だけへの返答ではなくそれまでの流れを含めた視聴者に対するまとめを書いただけで
別に君に変数の仕組みを解説したつもりはない

そこに君が>>64で突っ込んできたから、それ「も」書いてると言った
君は「自分の言葉」と思ったかもしれないが、仕様書のURLは、「あえて」記載しなかった
ただ俺はきちんと必要ならすぐ調べられるように仕様上の用語は含ませた
そこは確かに君を強く意識して行ったことだけど
先にも言ったとおり全体としては君の質問へのど直球の回答ではないので
君の期待通りの返信では無いのは悪しからず

そして>>78の言う通り、俺が>>62などで書いた文章は以前の話を含めて書いているため
その後のそれらに対するレスは、>>61だけではない流れ上で考えさせて貰っている
君がやけに>>61に拘ってたことには失礼ながら今気づいたが、俺はそんなちっぽけなところなんて見続けていない
0083Name_Not_Found
垢版 |
2018/06/10(日) 21:14:46.91ID:???
>>73
あとこれは完全に別件として問いたいことだが、
なぜES2017に拘る?
俺はES2017というのは最新仕様の言い換えだろうなと思ったから
より適切な最新のドラフトを案内した

今回の件でES2017に拘る理由がわからない
ES3,5や、letやconstが入ってその辺りに変更が入った2015を見てみるというのはまだ分かる
でもES2017なんて中途半端なところを拘って見たがる理由って一体全体なんだ?
今を知りたいのなら最新のドラフトの方がいいぞ、多少読みやすくもされてるし
0084Name_Not_Found
垢版 |
2018/06/10(日) 22:36:17.46ID:???
一次情報云々の話ならそもそも実体化とかいう訳語が怪しいんだが
誰かがそう決めたの?
0085Name_Not_Found
垢版 |
2018/06/11(月) 08:47:51.79ID:???
>>81
それはポリシーの問題
それでいい人もいれば、良くない人もいる
const房と根本的に同じ問題
0086Name_Not_Found
垢版 |
2018/06/11(月) 09:52:34.11ID:???
>>85
ちょっとおかしくね
>>80を理解したところで初期化jsコードより先に使っちゃダメなのは確かで
初期化jsコードより後に使うなら>>80は無意味では
問題おきてデバッグする時にもまず役に立たない知識
0087Name_Not_Found
垢版 |
2018/06/11(月) 10:06:20.55ID:???
知っていると実益があるかどうか
var,let,constはそれぞれ性質が違いしかも一方だけでコードを書くことができる
選択の余地ひいては実益があり、実益をどう判断するかのポリシー問題

変数の巻き上げやTDZや宣言・初期化とか用語・説明の話は実益あるのか
0088Name_Not_Found
垢版 |
2018/06/11(月) 11:12:20.90ID:???
俺様が満足していればどうでも良いんだよ
0090Name_Not_Found
垢版 |
2018/06/11(月) 12:40:18.54ID:???
実益があるのかって、単純に何事も内部構造をできるだけ分かって使う方がより良いと思うけど。
クラッチやエンジンの仕組みを何も知らないで感覚だけで覚えるのと、理屈で理解してるのとでは違いがあると思う
0091Name_Not_Found
垢版 |
2018/06/11(月) 13:18:48.10ID:???
巻き上げ周りの知識があったら書き方がどう変わるのかってやつだな
自動車の例でいえば、仕組みを知ってれば効率良い運転に繋がる可能性もあろう
0092Name_Not_Found
垢版 |
2018/06/11(月) 15:55:56.82ID:???
ジェネレーター関数って使い道ありますか・・?
0093Name_Not_Found
垢版 |
2018/06/11(月) 15:57:10.40ID:???
フレームワーク作者とかは使うんじゃない?
0094Name_Not_Found
垢版 |
2018/06/11(月) 18:37:23.63ID:???
通常のジェネレータはあんまり使い道はないが
asyncになるとイベント的なことに使えるのでかなり重要な存在
これがあれば、whileループみたいに描くしか無いところをfor awaitで書ける
0095Name_Not_Found
垢版 |
2018/06/11(月) 19:18:59.97ID:???
でもそれwhileループで書けば良いんですよね?
0096Name_Not_Found
垢版 |
2018/06/11(月) 22:32:05.39ID:???
そうでもないと思う
ジェネレータの良いところは、継続状態と返り値が同時に抽象化されてることだから
for awaitならそれを抽象化されたまま自然と扱えるが、
whileを使った場合その抽象化システムを丁寧に自分で組み立てるか、
その場その場で適応的に書くか、もしくは妥協しないといけない
0097Name_Not_Found
垢版 |
2018/06/11(月) 23:47:57.05ID:FHvAGVIA
ftp%3A//ftp2.shuwasystem.co.jp/pub/book/javascpermas/chap09.zip
これのsec04/dragdrop.htmlの26,36行のpreventDefault()ってなにを取り消してるの??
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:???
まず適用と適応の区別をつけろ
■ このスレッドは過去ログ倉庫に格納されています

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